Linux上的运行自开发的JAR包,并替换默认JDK
今天把Windows上的消息收发平台部署到Linux上,始终不正确,执行java -version一直是jdk1.4.
最后解决方法如下: www.zhishiwu.com
1:修改/etc/profile文件
Linux代码
[root@localhost server]# vi /etc/profile
在文件最后增加JAVA_HOME、PATH配置
Linux代码
JAVA_HOME=/weblogic/jdk160_18
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
2:执行/etc/profile文件后,再查看版本,已经是上面配置的JDK6了,我直接使用的
Weblogic的jdk。
www.zhishiwu.com
从windows下拷贝去的JDK,要注意是否是能在Linux下用的,我就是把Windows
下安装的
JDK拷去,结果悲催了半天。。
Linux代码
[root@localhost server]# . /etc/profile
[root@localhost server]# java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Server VM (build 16.0-b13, mixed mode)
4:为要执行的java类,配置CLASSPATH,我这里有一堆log4j等外部的jar包:
Linux代码
[root@localhost server]# export CLASSPATH=.:$CLASSPATH:./ipayrelay-server.jar:
./lib/log4j-1.2.16.jar:./lib/jxl.jar:./lib/commons-beanutils.jar:./lib/commons-collections.
jar:./lib/commons-digester.jar:./lib/commons-logging.jar:./lib/commons-pool.jar:
./lib/lucene-core-3.6.1.jar:./lib/mail.jar:./lib/metouia.jar:./lib/QSAdminGUI.jar:./lib
/QuickServer.jar:.
/lib/quickserver
_config.dtd:./lib/quickserver_config.xsd:./lib/QuickServerClient.jar:./lib/ipayrelay
-client.jar:./lib/
commons-codec-1.7.jar:./lib/commons-httpclient-3.1.jar
5:最后执行打好的jar包:
Linux代码
[root@localhost server]#java -cp $CLASSPATH com.mfhcd.ipayrelay.server.Server
6:将上述内容制成脚本执行,我的脚本ipayrelay.sh
Java代码
#!/bin/sh
source /etc/profile
export CLASSPATH=.:$CLASSPATH:./ipayrelay-server.jar:./lib/log4j-1.2.16.jar:.
/lib/jxl.jar:./lib/
commons-beanutils.jar:./lib/commons-collections.jar:./lib/commons-digester.
jar:./lib/commons-logging.jar:./lib/commons-pool.jar:./lib/lucene-core-3.6.1.jar:./lib/mail.jar:./lib/metouia.jar:./lib/QSAdminGUI.jar:./lib/QuickServer.jar:.
/lib/quickserver_
config.dtd:./lib/quickserver_config.xsd:./lib/QuickServerClient.jar:./lib/ipayrelay-
client.jar:./lib/
commons-codec-1.7.jar:./lib/commons-httpclient-3.1.jar
java -cp $CLASSPATH com.mfhcd.ipayrelay.server.Server
#!/bin/sh是执行命令的脚本固定的开头, source /etc/profile是将该文件的内容
解释执行一遍,
让JAVA_HOME生效。 www.zhishiwu.com
7:脚本可能有字符集问题,需要转码,转码后即可解决/bin/sh^M: bad interpreter
这种报错:
Linux代码
[root@localhost server]# dos2unix ipayrelay.sh
8:最后执行脚本,前给脚本授权,我是将当前目录下的文件及其子文件全部授权了,
为了方便调用
Java代码
[root@localhost server]#chmod -R 777 .
9:最后执行脚本:
Linux代码
[root@localhost server]# ./ipayrelay.sh