由于本地开发用的是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 查看支持字符编码
分享到:
相关推荐
### Windows程序移植到Linux的关键知识点 #### 一、概述与背景 在软件开发领域,将一个操作系统上的程序移植到另一个操作系统上是一项常见的需求。本文主要探讨的是如何将原本运行于Windows平台的应用程序移植到...
- 添加源文件(.c):通过“Add”->“Add File...”将源文件添加到工程中。 5. **解决警告与错误**: - 移植过程中可能会遇到错误或警告,需要逐个排查解决。在这个例子中,虽然报错已经解决,但仍有大量警告未...
### Windows代码移植到Linux的关键知识点 #### 一、编码格式的重要性 在进行Windows代码向Linux环境的移植过程中,首先需要注意的是编码格式的问题。由于不同操作系统对文本文件的编码支持可能存在差异,因此确保...
3. **恢复与移植**:将备份的数据库文件转移到Windows服务器,然后使用`db2 restore`命令恢复数据库。可能需要处理操作系统级别的差异,如文件路径、权限等。 4. **配置调整**:根据Windows的特性调整DB2的配置参数...
"从Windows到Linux的C程序移植研究" 本文研究了从Windows到Linux的C程序移植,介绍了Linux系统的安装和开发环境的搭建,探讨了C程序移植的方法和经验,并结合实际程序移植结果进行了分析。 Linux系统安装和开发...
### DB2数据库从AIX操作系统移植到Windows XP的详尽步骤与关键技术点 在IT行业中,数据迁移是一项常见的任务,特别是在不同的操作系统之间进行时。本文将深入探讨如何将DB2数据库从AIX操作系统移植到Windows XP环境...
【将Linux代码移植到Windows的简单方法】 在IT领域,跨平台编程是一个常见的需求,特别是当需要将Linux上的代码应用于Windows环境时。由于Linux和Windows操作系统底层架构和库的差异,移植C/C++代码并不简单。然而...
此应用不仅可以满足在Windows系统上的日常使用,还具备跨平台特性,能够轻松移植到Linux操作系统上,体现了Qt的跨平台兼容性。 【描述】中的关键知识点主要包括以下几个方面: 1. **Qt框架**:Qt是一个开源的C++...
"Linux下的程序移植到Windows" Linux下的程序移植到Windows需要修改的地方是非常重要的,因为Linux和Windows是两种不同的操作系统,它们之间存在很多差异。因此,在移植程序时需要注意许多问题,本文将介绍其中的...
其中包含两个东东: 一个windows数据类型在Linux下进行转换的头文件,在需要时直接引入此头文件(#include "WinToLinux.h")即可,比较实用。...一个从Windows向Linux的C和C++代码移植的文档说明,也很有用。
Linux-X 鼠标指针移植到 Windows 系统方法 Linux-X 鼠标指针移植到 Windows 系统方法是指将 Linux 系统下的鼠标指针主题移植到 Windows 系统上,并在 Windows 系统中安装和使用的方法。本文档将详细介绍移植的步骤...
综上,移植 lwip 至 Windows 平台是一项复杂的工作,涉及到内存管理的调整、线程模型的适配以及多线程同步机制的选择。通过细致的移植工作,可以在 Windows 开发环境中充分利用其强大的调试工具,从而提高 lwip 应用...
总的来说,这个知识点涉及了如何将一个开源的C语言日志库EasyLogger移植到Windows平台,包括对源代码的适配(如添加pthread库)、在Visual Studio 2012中的工程构建,以及如何利用这个移植版在Windows开发中进行日志...
"亦步亦趋的代码移植——从Linux到Windows的代码移植" 代码移植是指将原本运行在某一个操作系统平台上的代码移植到另一个操作系统平台上,使其能够在新的平台上正确地运行。文章主要讲解了从Linux到Windows的代码...
《Windows应用移植到Arm平台指南》 随着技术的发展,越来越多的设备开始采用Arm架构的处理器,包括各种嵌入式系统、移动设备以及个人电脑。Windows操作系统也开始支持Arm平台,为开发者提供了新的机遇与挑战。本...
在跨平台开发中,将Windows动态链接库(DLL)移植到Linux系统是一项具有挑战性的任务。Windows和Linux在操作系统架构和API调用上存在显著差异,但通过一些技术手段,可以实现这一目标。本篇文章将深入探讨如何在...
【Visual C++ 编制的Windows动态库移植到Linux】专题介绍 动态链接库(DLL)在Windows和Linux操作系统中都是实现代码复用的重要手段,但两者之间存在格式和调用方式的差异,使得直接移植变得复杂。这篇文章主要探讨...
本项目涉及到将μCOS-II V2.83的工程从ADS1.2环境移植到MDK4.2(Keil uVision)环境中,以适应TQ2440开发板。以下将详细讲解这个过程中的关键知识点。 首先,**μCOS-II** 是一款开源的RTOS,适用于微控制器,提供...
本话题聚焦于如何将FATFS移植到Windows操作系统,以便在Windows环境下利用C语言库函数进行文件操作。我们将详细探讨FATFS的结构、移植过程以及与Windows API的交互。 FATFS的核心在于其对FAT(File Allocation ...