当前位置: 技术问答>linux和unix
关于Linux下安装j2sdk的CLASSPATH设置问题?
来源: 互联网 发布时间:2015-06-29
本文导语: 我在RedHat下装了j2sdk1.4.2_04,安装完成后,按照一些文章介绍设置profile文件中的PATH及CLASSPATH变量,然后写了一段小程序编译运行正常,但是当我用java -jar Java2Demo.jar试图运行demo/jfc/Java2D/中的示例程序时,提示出错! ...
我在RedHat下装了j2sdk1.4.2_04,安装完成后,按照一些文章介绍设置profile文件中的PATH及CLASSPATH变量,然后写了一段小程序编译运行正常,但是当我用java -jar Java2Demo.jar试图运行demo/jfc/Java2D/中的示例程序时,提示出错!
说是不认识命令中-jar参数
[root@RedHat9 Java2D]# java -jar Java2Demo.jar
Warning: -jar not understood. Ignoring.
Exception in thread "main" java.lang.NoClassDefFoundError: Java2Demo.jar
at 0x40268e17: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/./li
bgcj.so.3)
at 0x4025bc8e: java.lang.Error.Error(java.lang.String) (/usr/lib/./libgcj.so.
3)
at 0x4025d6b6: java.lang.LinkageError.LinkageError(java.lang.String) (/usr/li
b/./libgcj.so.3)
at 0x4025eb36: java.lang.NoClassDefFoundError.NoClassDefFoundError(java.lang.
String) (/usr/lib/./libgcj.so.3)
at 0x402ad075: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
at 0x4024fc4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
at 0x4021c8ac: _Jv_RunMain(java.lang.Class, byte const, int, byte const, bool
ean) (/usr/lib/./libgcj.so.3)
at 0x08048910: ?? (??:0)
at 0x42015574: __libc_start_main (/lib/tls/libc.so.6)
at 0x080486c1: ?? (??:0)
后来我用gij -jar Java2Demo.jar运行,还是出错,说是找不到javax.swing.XXX
[root@RedHat9 Java2D]# gij -jar Java2Demo.jar
Exception in thread "main" java.lang.InternalError: Unexpected exception while d
efining class java2d.Java2Demo: java.lang.ClassNotFoundException: javax.swing.JP
anel
at 0x40268e17: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/./li
bgcj.so.3)
at 0x4025bc8e: java.lang.Error.Error(java.lang.String) (/usr/lib/./libgcj.so.
3)
at 0x402691fa: java.lang.VirtualMachineError.VirtualMachineError(java.lang.St
ring) (/usr/lib/./libgcj.so.3)
at 0x4025d62e: java.lang.InternalError.InternalError(java.lang.String) (/usr/
lib/./libgcj.so.3)
at 0x4025ac2f: java.lang.ClassLoader.defineClass(java.lang.String, byte[], in
t, int, java.security.ProtectionDomain) (/usr/lib/./libgcj.so.3)
at 0x4025aa13: java.lang.ClassLoader.defineClass(java.lang.String, byte[], in
t, int) (/usr/lib/./libgcj.so.3)
at 0x402f1f2e: java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/
./libgcj.so.3)
at 0x40248197: gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) (/us
r/lib/./libgcj.so.3)
at 0x4025a904: java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/u
sr/lib/./libgcj.so.3)
at 0x402488d9: _Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) (/usr/lib/
./libgcj.so.3)
at 0x40244cdd: java.lang.Class.forName(java.lang.String, boolean, java.lang.C
lassLoader) (/usr/lib/./libgcj.so.3)
at 0x40244d9f: java.lang.Class.forName(java.lang.String) (/usr/lib/./libgcj.s
o.3)
at 0x402ad01d: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
at 0x4024fc4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
at 0x4021c8ac: _Jv_RunMain(java.lang.Class, byte const, int, byte const, bool
ean) (/usr/lib/./libgcj.so.3)
at 0x08048910: ?? (??:0)
at 0x42015574: __libc_start_main (/lib/tls/libc.so.6)
at 0x080486c1: ?? (??:0)
[root@RedHat9 Java2D]#
然后我又用javac编译解出来的源代码还是说找不到Swing,我把lib下的dt.jar,tools.jar,jre/lib都加到CLASSPATH中还是不行,但是用Appletviewer运行Html文件中的Applet却可以执行。
这到底是什么原因啊?
说是不认识命令中-jar参数
[root@RedHat9 Java2D]# java -jar Java2Demo.jar
Warning: -jar not understood. Ignoring.
Exception in thread "main" java.lang.NoClassDefFoundError: Java2Demo.jar
at 0x40268e17: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/./li
bgcj.so.3)
at 0x4025bc8e: java.lang.Error.Error(java.lang.String) (/usr/lib/./libgcj.so.
3)
at 0x4025d6b6: java.lang.LinkageError.LinkageError(java.lang.String) (/usr/li
b/./libgcj.so.3)
at 0x4025eb36: java.lang.NoClassDefFoundError.NoClassDefFoundError(java.lang.
String) (/usr/lib/./libgcj.so.3)
at 0x402ad075: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
at 0x4024fc4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
at 0x4021c8ac: _Jv_RunMain(java.lang.Class, byte const, int, byte const, bool
ean) (/usr/lib/./libgcj.so.3)
at 0x08048910: ?? (??:0)
at 0x42015574: __libc_start_main (/lib/tls/libc.so.6)
at 0x080486c1: ?? (??:0)
后来我用gij -jar Java2Demo.jar运行,还是出错,说是找不到javax.swing.XXX
[root@RedHat9 Java2D]# gij -jar Java2Demo.jar
Exception in thread "main" java.lang.InternalError: Unexpected exception while d
efining class java2d.Java2Demo: java.lang.ClassNotFoundException: javax.swing.JP
anel
at 0x40268e17: java.lang.Throwable.Throwable(java.lang.String) (/usr/lib/./li
bgcj.so.3)
at 0x4025bc8e: java.lang.Error.Error(java.lang.String) (/usr/lib/./libgcj.so.
3)
at 0x402691fa: java.lang.VirtualMachineError.VirtualMachineError(java.lang.St
ring) (/usr/lib/./libgcj.so.3)
at 0x4025d62e: java.lang.InternalError.InternalError(java.lang.String) (/usr/
lib/./libgcj.so.3)
at 0x4025ac2f: java.lang.ClassLoader.defineClass(java.lang.String, byte[], in
t, int, java.security.ProtectionDomain) (/usr/lib/./libgcj.so.3)
at 0x4025aa13: java.lang.ClassLoader.defineClass(java.lang.String, byte[], in
t, int) (/usr/lib/./libgcj.so.3)
at 0x402f1f2e: java.net.URLClassLoader.findClass(java.lang.String) (/usr/lib/
./libgcj.so.3)
at 0x40248197: gnu.gcj.runtime.VMClassLoader.findClass(java.lang.String) (/us
r/lib/./libgcj.so.3)
at 0x4025a904: java.lang.ClassLoader.loadClass(java.lang.String, boolean) (/u
sr/lib/./libgcj.so.3)
at 0x402488d9: _Jv_FindClass(_Jv_Utf8Const, java.lang.ClassLoader) (/usr/lib/
./libgcj.so.3)
at 0x40244cdd: java.lang.Class.forName(java.lang.String, boolean, java.lang.C
lassLoader) (/usr/lib/./libgcj.so.3)
at 0x40244d9f: java.lang.Class.forName(java.lang.String) (/usr/lib/./libgcj.s
o.3)
at 0x402ad01d: gnu.gcj.runtime.FirstThread.run() (/usr/lib/./libgcj.so.3)
at 0x4024fc4c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/./libgcj.so.3)
at 0x4021c8ac: _Jv_RunMain(java.lang.Class, byte const, int, byte const, bool
ean) (/usr/lib/./libgcj.so.3)
at 0x08048910: ?? (??:0)
at 0x42015574: __libc_start_main (/lib/tls/libc.so.6)
at 0x080486c1: ?? (??:0)
[root@RedHat9 Java2D]#
然后我又用javac编译解出来的源代码还是说找不到Swing,我把lib下的dt.jar,tools.jar,jre/lib都加到CLASSPATH中还是不行,但是用Appletviewer运行Html文件中的Applet却可以执行。
这到底是什么原因啊?
|
编辑~/.bash_profile
把安装的java环境加进去
JAVA_HOME=/(路径)
JRE_HOME=/(路径)
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH(如果想不出现上面的问题,请把$PATH放在后面,放在前面的优先检查,所以就找不到后面的,因为redhat9本身有java)
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH JAVA_HOME JRE_HOME CLASSPATH
把安装的java环境加进去
JAVA_HOME=/(路径)
JRE_HOME=/(路径)
PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH(如果想不出现上面的问题,请把$PATH放在后面,放在前面的优先检查,所以就找不到后面的,因为redhat9本身有java)
CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH JAVA_HOME JRE_HOME CLASSPATH
|
楼主看一下java -version命令,如果不认是说明没有安装好,具体设置我也忘了,看一下《JAVA核心编程》(core java)里面有详细的介绍