由于本地开发用的是jdk1.6,在AIX系统中需要1.6版本的,必须在root下安装,否则可能出现不能执行情况。
一、检查系统
root@sdteleb#oslevel
6.1.0.0
root@sdteleb# bootinfo -y ##显示AIX机器硬件是32位还是64位
64
root@sdteleb# bootinfo -K ##显示AIX系统内核是32位还是64位
64
因此,系统需要安装64位的jdk,即64-bit Java 6 SDK
二、网上有很多,我参考的是 http://maxhighsky.blog.163.com/blog/static/30775179201063013620468/
当然不修改系统变量也可以,只需要在写shell时的jre是安装的1.6的。
三、遇到的问题:
1,由于要执行shell,直接从别的地方拷贝过来的,总是报错。由于有特殊字符,别的命令都看不到,特殊符号^M只有在vi编辑器中才能看到,用more看不到。去掉特殊字符即可。
2,Could not find the main class: .. Program will exit.
shell中CLASSPATH=后面的内容不要换行;另起一行要追加CLASSPATH=
3,The java class could not be loaded. java.lang.UnsupportedClassVersionError: (com/inspur/eoms/JobAutoClient) bad major version at offset=6
版本号不对应。jdk版本应该是1.6的
4,CLASSPATH=$CLASSPATH:../lib/wsdl4j-1.5.1.jar:../lib/junit-3.8.1.jar
+ /usr/java6_64/jre/bin/java -classpath . com.inspur.eoms.JobAutoClient /u1/tmn/application/jobauto/file/job.txt
Exception in thread "main" java.lang.NoClassDefFoundError: junit.framework.AssertionFailedError
at java.lang.J9VMInternals.verifyImpl(Native Method)
at java.lang.J9VMInternals.verify(J9VMInternals.java:72)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
Caused by: java.lang.ClassNotFoundException: junit.framework.AssertionFailedError
at java.net.URLClassLoader.findClass(URLClassLoader.java:434)
at java.lang.ClassLoader.loadClass(ClassLoader.java:653)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
at java.lang.ClassLoader.loadClass(ClassLoader.java:619)
... 3 more
解决:shell中CLASSPATH=后面的内容不要换行;另起一行要追加CLASSPATH=
5,java工程的绝对路径:
如果shell中有cd /u1/tmn/application/jobauto/bin,其为relativelyPath是当前路径
String relativelyPath=System.getProperty("user.dir");
某个文件夹如conf下
relativelyPath+"/conf/client.properties");
6,乱码问题:
在windows下编码及shell文件都用GBK形式;结果传到AIX系统上执行时,执行程序,调用服务生成文件或传送的字符串都是乱码:参考http://blog.sina.com.cn/s/blog_4c5d0b4b0100b9t1.html
在Windows中文环境下正常编写原程序,用默认的方式编译生成class文件,在运行的时候,我们需要制定参数, $JAVA_HOME/jre/bin/java –Dfile.encoding=GB18030 -classpath $CLASSPATH com.inspur.eoms.JobAutoClient "${jobauto}",系统环境使用默认英文即可,这样JVM就不会根据系统的环境设定默认字符集,而是所有输入输出都使用我们指定的字符集,这样不但解决了英文环境下的中文输出问题,而且还解决了偏僻字的显示问题。
7,shell有关参数:
#!/usr/bin/ksh
set -x
LANG=zh_CN;export LANG
cd /u1/tmn/application/jobauto/bin
PATH=$PATH:/usr/java6_64/jre/bin/:/usr/java6_64/bin
export PATH
JAVA_HOME=/usr/java6_64
export JAVA_HOME
CLASSPATH=$CLASSPATH:../lib/axis.jar:../lib/activation.jar:../lib/axis-ant.jar:../lib/castor-0.9.5.2.jar
CLASSPATH=$CLASSPATH:../lib/wsdl4j-1.5.1.jar:../lib/junit-3.8.1.jar
export CLASSPATH
$JAVA_HOME/jre/bin/java –Dfile.encoding=GB18030 -classpath $CLASSPATH com.mypackage.JobAutoClient
8,locale -a 查看支持字符编码
引用http://yjzagan2003.iteye.com/blog/963989
分享到:
相关推荐
Windows代码移植到Linux
windows linux 程序 移植
keil工程向IAR进行移植,主要目的是习惯IAR和SourceInsight编程界面风格,也为了熟悉两个平台之间的联系与区别,本文档详细描述了整个工程移植过程的错误解决办法,具有一定的借鉴意义,最后移植完成解决报错,还...
db2数据库从AIX操作系统移植到windows XP
其中包含两个东东: 一个windows数据类型在Linux下进行转换的头文件,在需要时直接引入此头文件(#include "WinToLinux.h")即可,比较实用。...一个从Windows向Linux的C和C++代码移植的文档说明,也很有用。
Linux拥有丰富各种源代码资源,但是大部分...本文将以一个实际的例子(Tar)来说明如何把Linux代码移植到 Windows平台上。移植过程将尽量少修改代码,以便代码的运行逻辑不会发生任何变动。保留绝大部分软件主要功能。
从Windows到Linux的C程序移植研究.pdf
Linux下的程序移植到windows上需要修改的地方
windows 应用移植到 Arm平台指南
windows环境下用Qt制作的记事本,实现新建文件,保存文件,和文件另存为三个功能。
Jbuilder工程移植到Eclipse的详细图解。把Jbuilder2005下创建的工程移植到Eclipse下,详细说明
此文档经本人亲测,移植成功后编制的手册,现分享出来让喜欢自己制作或者移植鼠标指针的人做为引路书,按文档里一步步来你一定可以将linux上喜欢的鼠标主题移植到windows系统上进行安装使用。
2440TEST工程移植到Iar,工程还没有完成
Visual C 编制的Windows动态库移植到Linux.pdf
windows程序移植到linux上的一些关键字的转换: 如DWORD、BOOL、HANDLE等转换
亦步亦趋的代码移植——从Linux到Windows的代码移植.pdf
如何将lvgl移植到嵌入式linux
亲测可用,经典的扫雷、蜘蛛纸牌等,很不错!
完美移植到Eclipse