我正在尝试执行Zeo 解码器查看器(一个Java应用程序)在Linux上,我不知道我应该如何做到这一点。
我已将程序和所需的库(全部位于 jar 文件中)放在 /opt/zeo/ 目录中,然后尝试以下操作:
miernik@przehyba:/opt/zeo$ ls
appframework-1.0.3.jar joda-time-1.6.jar swing-worker-1.1.jar ZeoDecoderViewer.jar
miernik@przehyba:/opt/zeo$ java -jar ZeoDecoderViewer.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/jdesktop/application/SingleFrameApplication
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Caused by: java.lang.ClassNotFoundException: org.jdesktop.application.SingleFrameApplication
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 12 more
Could not find the main class: com.myzeo.viewer.ZeoDecoderViewer. Program will exit.
miernik@przehyba:/opt/zeo$
我是不是在做一些基本的、严重错误的事情?
答案1
通常答案会涉及类路径和-cp
参数,但是文档对于这个特定的项目,问题很清楚:
将 jar 文件和 lib 文件夹提取到您选择的目录。
其他三个 jar 预计位于名为 的子文件夹中lib
,而不是与“主”jar 位于同一目录中。