使用引用的jar

时间:2015-09-22 23:43:28

标签: java jar classpath

我构建了一些Java桌面应用程序,它们都引用了我也制作的常见Java类库。我在Netbeans之外运行此设置时遇到问题。我将所有的jar(库和程序)复制到一个文件夹中,但是当我尝试运行任何程序时,他们崩溃说他们找不到公共库中的某些类。

我之前从未尝试过这种情况......我做错了什么?我打赌它与类路径有关,我正在研究它。这是错误消息:

D:\LAB\FIUBA\Stock84885\bin>java -jar Stock84885OrderReceiver.jar
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: core/ILogger
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
        at java.lang.Class.privateGetMethodRecursive(Unknown Source)
        at java.lang.Class.getMethod0(Unknown Source)
        at java.lang.Class.getMethod(Unknown Source)
        at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
        at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: core.ILogger
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        ... 7 more

(ILogger是公共类库中的一个类)。

1 个答案:

答案 0 :(得分:1)

在IDE外部执行程序时,应该在类路径中包含所有依赖项jar。

   -cp <class search path of directories and zip/jar files>

试试这个:

java -cp "lib/*" com.example.Main

将lib /替换为包含依赖项jar的目录,将com.example.Main替换为包含main方法的类。

确保文件Stock84885OrderReceiver.jar包含在类路径中

相关问题