【发布时间】:2014-01-20 10:38:16
【问题描述】:
我有 64 位安装的 CENTOS v6.5 final。
我有一个 32 位编译的 Java 应用程序,我使用 Eclipse 中的 WindowBuilder/SWT Designer/SWT/Composite 创建。
该应用程序在 Windows 7 上完美运行,我在 Windows 7 命令提示符下创建了 Java 应用程序:
java -cp "bin/*;lib/*" PkgNetAccelerator32.netAcceleratorApp
lib文件夹里面是swt.jar,还有我自动创建的Manifest.jar文件。是的,我下载了 Linux 版本的 swt.jar 以在 CENTOS 上使用,并将该文件放在 /lib 文件夹中。我复制了 /bin 和 /lib 并将这两个文件夹放在“/home/jmr/Documents/NetAccelerator/Java”。
当我尝试从 CENTOS 机器上的终端窗口启动 Java 应用程序时收到以下错误的问题。提示是:
[jmr@sarah-linux Java]$ java -cp "bin/*;lib/*" PkgNetAccelerator32.netAcceleratorApp
Error: Could not find or load main class PkgNetAccelerator32.netAcceleratorApp
我的全局环境变量列表中没有定义 CLASSPATH 或 JAVA_HOME,尽管我设置了 -cp 选项。如上所述,CENTOS 机器上的 swt.jar 是 Linux 版本。
这是来自 Java 的版本信息:
[jmr@sarah-linux Java]$ java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.4.el6_5-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)
文件夹布局很好。
[jmr@sarah-linux Java]$ ls -l bin
total 8
drwx------. 3 jmr jmr 4096 Dec 30 12:43 org
drwx------. 2 jmr jmr 4096 Dec 30 12:56 PkgNetAccelerator32
[jmr@sarah-linux Java]$ ls -l lib
total 1828
drwx------. 2 jmr jmr 4096 Dec 31 13:18 Linux
-rwxr-xr-x. 1 jmr jmr 7994 Dec 30 14:08 Manifest.jar
-rwxr-xr-x. 1 jmr jmr 124252 Dec 26 13:06 resty-0.3.2.jar
-rwxr-xr-x. 1 jmr jmr 1727233 Dec 31 13:18 swt.jar
drwx------. 2 jmr jmr 4096 Dec 31 13:18 Windows
[jmr@sarah-linux Java]$ ls bin/PkgNetAccelerator32/
netAcceleratorApp$1.class netAcceleratorApp.class
我不知道如何解决这个问题。
无论如何,我尝试了以下方法,但出现以下错误:
[jmr@sarah-linux Java]$ java -cp "bin/[An/*;lib/*" -jar lib/Manifest.jar PkgNetAccelerator32.netAcceleratorApp
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2531)
at java.lang.Class.getMethod0(Class.java:2774)
at java.lang.Class.getMethod(Class.java:1663)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
想法?
【问题讨论】:
标签: java linux eclipse centos swt