IDEA编译工程和配置FTP远程部署图文教程

第一步:如下图点击configuration进入第二步(因为我已经配置了192.168.0.73所以有一个)

第二步:红框依次向下填写名字自己随便定义方便记录,(注:type我用的是SFTP而非FTP所以选择SFTP)SFTP host远程主机ip ,port一般默认就行,root path是项目对应远程映射的地址(也可以在mapping里面配置如果不配置就以这个mapping),下来用户名密码这个不用说了,Web server root URL:验证地址

 

第三步:配置mapping,mapping可以配置多个,因为我class和jsp、xml这些与对应服务器上的地址不一致所以我配置了多个

 

以上三步就是IDEA编译工程和配置FTP远程部署的图文教程。

大家可以发现映射配置好后变绿颜色了,没配置的没变颜色(父亲目录不会体现子目录的状态)

大家可以在1图中看到有下载和上传的按钮,也在以在指定文件上面右击就有上传按钮

Windows MySQL免安装版的下载与配置

1.MySQL下载地址:

https://dev.mysql.com/downloads/mysql/5.7.html#downloadshttps://dev.mysql.com/downloads/mysql/

下载对应版本32位还是64位

下载完成后解压,我是在D:\work\mysql-5.7.22-winx64

2.配置环境变量

依次操作:开始==》计算机==》右键==》属性==》高级系统设置==》环境变量

找到path将mysql bin目录添加进去,在末尾曾加 ;D:\work\mysql-5.7.22-winx64\bin

win10可以直接新建D:\work\mysql-5.7.22-winx64\bin

3.初始化MySQL

以管理员身份启动命令与提示符,输入:mysqld –initialize

其中可能报data目录找不到可以在mysql更目录建立data目录如D:\work\mysql-5.7.22-winx64\ 下

然后等待几秒种,可以看到mysql安装目录中出现了data的文件夹,表示初始化完成。图是我安装成功后截的

4.安装MySQL服务

以管理员身份运行命令与提示符,输入命令:  mysqld -install

net start mysql

如果安装失败可按如下操作在进行一次:

1.移除已注册服务:mysqld remove

2.初始化:mysqld –initialize       注意:保持data目录为空否则报异常

3.注册服务:mysqld -install

4.启动服务:net start mysql

 

5.设置root密码

大家也可以用这种方法重置mysql密码

先停止mysql服务 net stop mysql 运行 mysqld –skip-grant-tables

新启动命令与提示符输入 mysql

输入 update user set authentication_string=password(‘123456′) where user=’root’; 大功告成

【转】Centos 配置eth0 提示Device does not seem to be present

一.故障现象:
[root@c1node01 ~]# service network restart
Shutting down loopback insterface:                                                       [   OK  ]
Bringing up loopback insterface:                                                            [   OK  ]
Bringing up interface eth0:  Device eth0 does not seem to be present,delaying initialization.                    [FAILED]
解决办法:
[root@c1node01 ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
[root@c1node01 ~]# reboot ………………
[root@c1node01 ~]# service network restart
Shutting down loopback insterface:                                                         [   OK   ]
Bringing up loopback insterface:                                                              [   OK   ]
Bringing up interface eth0:                                                                     [   OK   ]
[root@c1node01 ~]#
二.另一种方法
造成这样的原因,是因为在虚拟机(Vmware)中移动了Centos系统对应的文件,导致重新配置时,网卡的MAC地址变了,输入ifconfig -a,找不到eth0
·······
安装完一个centos虚拟机,又拷贝一份,开机后网卡无法正常启动,报错:Device eth0 does not seem to be present,
delaying initialization

解决:# mv /etc/sysconfig/network-scripts/ifcfg-eth0
sysconfig/network-scripts/ifcfg-eth1

vim
sysconfig/network-scripts/ifcfg-eth1

修改DEVICE=”eth0″
为DEVICE=”eth1″

可删掉uuid、物理地址

然后重启启动网卡尝试下

三.比第一种更深入一点

故障前的操作:

DELL刀片装的是CentOS6.3的操作系统,网卡识别的是em1和em2,由于工作需要做了槽位调整,并启动了刀片

 

故障现象:

启动后网络不通,通过iDRAC登录后route查看缺省路由正常;

重启网络服务:

[root@nodeA ~]# service network restart Shutting down loopback insterface: [ OK ] Bringing up loopback insterface: [ OK ] Bringing up interface em1: Device em1 does not seem to be present,delaying initialization. [FAILED]

 

分析问题和解决:

之前在别的文章中我们提过70-persistent-net.rules文件,所以看了一下:

[root@nodeA ~]# vi /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key.

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1e”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1c”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

发现NAME的名称不正确,依次将上述红色字体中的eth0改为em1,eth1改为em2;

*切记:网卡编号由MAC地址大小决定,MAC越小网卡编号越小;

如下:

…………

# PCI device 0x14e4:0x163a (bnx2)

SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1e”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”em2″

# PCI device 0x14e4:0x163a (bnx2) SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”24:b6:fd:ab:76:1c”, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”em1″

保存退出~!

[root@nodeA ~]#reboot

………………

问题解决~!

【求助 help!!!】js中正则啥都一样为何结果不一样

第一个true第二个false为啥,求大神解释?

 

<!DOCTYPE html>
<html lang=”en”>
<head>
<meta charset=”UTF-8″>
<title>Title</title>
</head>
<body>
<script type=”text/javascript” >
var $test = “^.*\\.res$”;
var regex = new RegExp($test, “gi”);
alert(regex.test(“12321.res”));
alert(regex.test(“12321.res”));
</script>
</body>
</html>

如何优化VMWare虚拟机的运行速度

虚拟机是个好东西,但是对电脑有一定的要求。尤其对做工控的来说都需要安装一些大型的软件(其中WINCC最难装,对系统要求较高。而且像WIN 7 64位的就别想装上去了,如果改系统后那4G以上的内存不就浪费了嘛!!所以虚拟机就是你们的福音),只要是系统,东西装多了就会卡、慢。那对虚拟机的优化就是必需的啦。
我的电脑配置:

注:主要是这三个方面,内存要大,一般4G就够用了,我的是8G。

绝招1:编辑对应的VMWare虚拟机镜像后缀为 VMX 的文件(用记事本就能编辑),添加一行参数:mainMem.useNamedFile = “FALSE” 没此参数前虚拟机运行时会在本机产生的后缀为VMEM的文件。虚拟机上的内存读写 = 本机VMEM文件的读写,那要虚拟机速度快当然就困难啦。但有得必有失——加上这个参数后暂停虚拟机速度就慢很多,突然断电就更难保证数据的完整性咯。

绝招2:事先声明,这个设置需要本机的内存足够大,否则可能适得其反,普通机器用默认参数就可以了。虚拟机上的 Edit(编辑)——preferences(偏好设定)——Memory(内存),
默认是:Allow some virtual machine memory to be swapped(允许虚拟机上的内存部分写入本机的页面文件),
改为:Fit all virtual machine memory into reserved host RAM(将所有虚拟机内存都写到本机内存)。

优化方法(1)

1、打开VMware7.1.2(推荐这个版本)选择要优化的虚拟机,点击“编辑虚拟机的配置”

如何优化VMWare虚拟机的运行速度

2、在虚拟机配置中,可以将不必要的设备给删除,比如软盘驱动器,虚拟打印机。点击选中相应的设备之后,再点下面的“移除”即可。

如何优化VMWare虚拟机的运行速度

3、然后选中硬盘,点击右边的“实用程序”,选择“碎片整理”。

如何优化VMWare虚拟机的运行速度

4、之后虚拟机便开始虚拟硬盘的整理,这对读写操作的性能提升是有帮助的。等待整理完成出现下面的的提示。

如何优化VMWare虚拟机的运行速度

5、虚拟机外部配置的优化就此完成了,体验一下效果吧。

优化方法(2)

1、首先打开VM后  点击 菜单栏中的编缉—首选项

如何优化VMWare虚拟机的运行速度

2、选 择内存 — 选到调整所有虚拟机内存使其适应预留的主机(RAM)F

如何优化VMWare虚拟机的运行速度

3、设完内存后  接着

1.优先级

2.把已抓取输入  设为高

   3.取消两个快照选项

如何优化VMWare虚拟机的运行速度

4、 设完优先级后

1.接着点击  设备

2.取消虚拟机运行时在主机上禁用自动运行

3.双击–确定

如何优化VMWare虚拟机的运行速度

 

5、设完首选项置 后接着双击 编缉你安装的虚拟机系统设置

如何优化VMWare虚拟机的运行速度

 

6、1.选项

2.高级

3.把已抓取输入设为高

4.收集调试信息设成无 并 把禁用内存页面修整 勾选

5.双击 –确定

因此简单优化的操作 就完成了 如果你的使用虚拟机时也觉得卡不仿可以试试以上的操作

 

如何优化VMWare虚拟机的运行速度

为intellij idea添加YUI Compressor支持

概念:YUI Compressor 是一个用来压缩 JS 和 CSS 文件的工具。

IDEA添加外部插件-yuicompressor压缩js/css步骤: 
1、下载yuicompressor.2.4.8.jar 
2、选择File–>Settings: 
 
3、选择Tools—>External Tools,点击右侧的“+”: 
 
4、填写信息: 
Name就是给菜单的名称,Group是分组,都可以随便写,Description是功能描述可选
Show in是我们的菜单按钮显示的位置
Tool settings是最重要的设置,
第一栏我们填写“java” 表示用java执行;
第二栏是我们的命令,也就是执行YUI Compressor的命令: “-jar D:\tools\JetBrains\myplugins\yuicompressor-2.4.8.jar –type js –charset utf-8 $FilePath$ -o $FileNameWithoutExtension$.min.js”
两个$符之间的是Idea的变量,可以通过后面的Insert macro 按钮查找,比如$FilePath$是我们选中的文件的完整路径,$FileNameWithoutExtension$是出去后缀的文件名,其中的“D:\tools\JetBrains\myplugins\yuicompressor-2.4.8.jar”是YUI Compressor的jar包路径。
–type文件类型是js还是css可以参考YUI Compressor文档
第三栏是设置工作空间,这里配置我们选择压缩文件的路径$FileDir$。
Options中的几个按钮看名称就能知道,第一个是执行后同步文件,第二个是执行时打开控制台;
也可以过滤输出

5、选中js文件,右键,选择External Tools—>js compress:

利用Fiddler调试线上JS代码

大家平时肯定都用过火狐的Firebug或者谷歌的调试工具来调试JS,但非常遗憾的是我们不能针对线上的代码进行实时调试。

(因为我们往往本地测试通过,上线后却是各种想不到的bug.)

今天我就分享一下如何用Fiddler来调试线上的JS代码.

首先下载安装Fiddler

其次找到要调试的js如下图我这里以full.js为例

然后配置Fiddler如图

注意圈主部分中间是规则可以自己定义Rule Editor 是远程服务器js的地址(http://blog.9ohou.com/wp-content/themes/Jianux/js/full.js)紧接着是本地js地址(我的js在d盘根目录所以是D:\full.js)注意只有选中规则才可编辑

下面是我加入的代码

alert(“这是我加的测试线上调试js例子”);

最后是测试结果

CentOS安装lrzsz

1.   Yum安装命令

yum install lrzsz

安装失败参考:http://blog.csdn.net/moranxue/article/details/44460589

2.   下载安装包

进入tmp目录

cd /tmp

下载安装包

wgethttp://www.ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz

解压到当前目录

tar zxvf lrzsz-0.12.20.tar.gz && cdlrzsz-0.12.20

进入解压目录lrzsz-0.12.20

cd lrzsz-0.12.20

执行安装命令并指定安装路径为/usr/local/lrzsz(默认安装路径为:/usr/local)

./configure –prefix=/usr/local/lrzsz

编译

make install

清理编译时的临时文件

make clean

进入bin文件夹下 建立连接需要在这个文件夹下

cd /usr/bin

设置rz命令链接

ln -s /usr/local/bin/lrz rz

设置sz命令链接

ln -s /usr/local/bin/lsz sz

addEventListener attachEvent和解决IE 6 7 8 this指向错误

标准浏览器中可以使用addEventListener()函数来给DOM元素绑定事件,使用removeEventListener()函数移除事件绑定,而IE6 IE7 IE8不支持addEventListener()和removeEventListener(),只能使用attachEvent()和detachEvent()方法。IE从IE9开始支持addEventListener和removeEventListener.
addEventListener()和attachEvent()的区别主要有以下几点:

  • addEventListener(type, handler, capture)有三个参数,其中type是事件名称,如click,handler是事件处理函数,capture是否使用捕获,是一个布尔值,默认值为false,第三个参数可以省略不写。
    attachEvent(‘on’ + type, handler)有两个参数,其中type是事件名称,如click,第一个参数必须是onxxxx,handler是事件处理函数,IE6 IE7 IE8不支持事件捕获,只支持事件冒泡,所以不存在第三个参数。
    关于事件冒泡:如果一个元素和它的各层上级素都设置了相同的事件,比如click事件,那么冒泡是指,事件触发时,首先触发最底层元素的事件,然后依次逐层递进触发上一级元素的相同事件,就像泡泡从水底冒到水面一样。
    而与事件冒泡相反,事件捕获的顺序是,从页面的根元素开始依次逐层向下级触发事件。
    IE6-8只支持事件冒泡不支持事件捕获,Google Chrome/Firefox/Safari/Opera等标准现代浏览器支持事件捕获和事件冒泡。
    如果只想在最底层执行事件处理函数,阻止事件向上层元素冒泡,也就是说如果要阻止事件冒泡,标准浏览器可以使用event.stopPropagation(),IE6 7 8可以使用设置window.event.cancelBubble=true来处理
  • addEventListener如果绑定多个事件处理函数,事件触发时按绑定顺序依次调用事件处理函数,attachEvent绑定多个事件处理函数,事件触发时从最后一个函数依次逆向调用处理函数。
  • 在IE6 IE7 IE8浏览器中,使用了attachEvent或detachEvent后事件处事函数里面的this指向window对象,而不是触发事件的元素,文末有解决方案。
  • 如果一个事件在绑定以后又有解除绑定的需要,可以使用removeEventListener(),参数和addEventListener一样,IE6 IE7 IE8使用detachEvent()方法,参数和attachEvent()一样,注意,想要移除绑定的事件处理函数,绑定事件时不能使用匿名函数,而需要将事件处事函数单独写成一个函数。否则无法移除绑定的事件处理函数,因为只有绑定的事件处理函数才能移除,而匿名函数和匿名函数是互不相同的,即使两个匿名函数代码完全一样,本质上同一匿名函数的代码写两次也是两个不同的函数。
    下面以addEventListener为例

<a id=”xc”>点击</a>

<script type=”text/javascript”>

function handler(){

alert(this.innerHTML);

}

var object=document.getElementById(‘xc’);

xc.addEventListener(‘click’,handler,false);//添加事件处理函数

xc.removeEventListener(‘click’,handler,false);//移除事件处理函数

/*下面这种使用匿名函数的方式添加的事件处理函数是不能移除的,因为两个匿名函数虽然代码一样,但他们是两个不同的函数

xc.addEventListener(‘click’,function(){

 

                        alert(this.innerHTML);

},false);

xc.removeEventListener(‘click’,function(){

alert(this.innerHTML);

},false);

*/

</script>

 

  • 所添加的事件必须是事件对象支持的事件,比如给window对象添加click事件就不会成功,因为window没有click事件
  • 解决IE6 IE7 IE8 attchEvent this指向window的方法:

   要解决IE6 IE7 IE8 attachEvent this指向错误,有至少以下三种方法:

  • 使用事件处理函数.apply(事件对象,arguments),代码如下
    以下代码仅适用于IE6 IE7 IE8
    这种方式的缺点是绑定的事件无法取消绑定,原因上面已经说了,匿名函数和匿名函数之间是互不相等的。

<a id=”xc”>点击</a>

<script type=”text/javascript”>

var object=document.getElementById(‘xc’);

function handler(){

alert(this.innerHTML);

}

object.attachEvent(‘onclick’,function(){

handler.call(object,arguments);

});

</script>

  • 使用事件源代替this关键字
    以下代码仅适用于IE6 IE7 IE8,这种方式完全忽略this关键字,但写起来稍显麻烦。

<a id=”xc”>点击</a>

<script type=”text/javascript”>

function handler(e){

e=e||window.event;

var _this=e.srcElement||e.target;

alert(_this.innerHTML);

}

var object=document.getElementById(‘xc’);

object.attachEvent(‘onclick’,handler);

</script>

  • 自己写一个函数完全代替attachEvent/detachEvent,并且支持所有主流浏览器、解决IE6 IE7 IE8事件绑定导致的先绑定后执行问题。
    下面是完美兼容addEventListener/removeEventListener和attachEvent/detachEvent的函数,支持Google Chrome/Firefox/Safari/Opera/IE 6 7 8 9 10 11等所有主流浏览器,能够完美解决IE6 IE7 IE8 this指向错误,能够纠正IE6 IE7 IE8中事件先绑定后执行的错误。
    为了避免代码被编辑器修改,请下载附件测试。不要直接复制下面的代码。
    注意,本函数是全局函数,而不是DOM对象的成员方法。

<a id=”xc”>点击</a>

<script type=”text/javascript”>

/*

* 添加事件处理程序

* @param object object 要添加事件处理程序的元素

* @param string type 事件名称,如click

* @param function handler 事件处理程序,可以直接以匿名函数的形式给定,或者给一个已经定义的函数名。匿名函数方式给定的事件处理程序在IE6 IE7 IE8中可以移除,在标准浏览器中无法移除。

* @param boolean remove 是否是移除的事件,本参数是为简化下面的removeEvent函数而写的,对添加事件处理程序不起任何作用

*/

function addEvent(object, type, handler, remove){

if(typeof object!=’object’||typeof handler!=’function’) return;

try{

object[remove?’removeEventListener’:’addEventListener’](type,handler,false);

}catch(e){

var xc=’_’+type;

object[xc]=object[xc]||[];

if(remove){

var l=object[xc].length;

for(var i=0;i<l;i++){

if(object[xc][i].toString()===handler.toString()) object[xc].splice(i,1);

}

}else{

var l=object[xc].length;

var exists=false;

for(var i=0;i<l;i++){

if(object[xc][i].toString()===handler.toString()) exists=true;

}

if(!exists) object[xc].push(handler);

}

object[‘on’+type]=function(){

var l=object[xc].length;

for(var i=0;i<l;i++){

object[xc][i].apply(object,arguments);

}

}

}

}

/*

* 移除事件处理程序

*/

function removeEvent(object,type,handler){

addEvent(object,type,handler,true);

}

</script>

<script type=”text/javascript”>

function handler(){

alert(this.innerHTML);

}

var object=document.getElementById(‘xc’);

addEvent(object,’click’,handler);

//如果要测试绑定事件,请先删除下面这一行。

removeEvent(object,’click’,handler);

</script>