【发布时间】:2018-10-11 09:20:02
【问题描述】:
我有一个文件夹libs,其中包含多个 JAR,并且我有一个使用这些库中的一些类的应用程序(比如说MyTest.jar)。我需要的是使用-cp (-classpath) 参数运行MyTest.jar,它将文件夹libs 中的所有JAR 完全添加到类路径中。
我已经尝试过java -cp E:\libs -jar MyTest.jar。但是,这似乎根本没有加载库,从我得到的这个错误中可以看出(它指出它找不到库类之一me.darksidecode.simpleconfigs.Config):
Exception in thread "main" java.lang.NoClassDefFoundError: me/darksidecode/simpleconfigs/Config
at me.darksidecode.KekGUI.<init>(KekGUI.java:31)
at me.darksidecode.KekGUI.main(KekGUI.java:63)
Caused by: java.lang.ClassNotFoundException: me.darksidecode.simpleconfigs.Config
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)
... 2 more
抛出异常的行是:
Config testcfg = new Config("hello = world");
其中Config (me.darksidecode.simpleconfigs.Config) 是SimpleConfigs.jar 库的一个类,它存在在我的libs (E:\libs) 文件夹中并且有效。
无济于事,我还尝试明确指定库之一 (SimpleConfigs.jar):java -cp E:\libs\SimpleConfigs.jar -jar MyTest.jar。发生同样的错误。
我怎样才能让它工作?
编辑:看来我必须在MyTest.jar 的 MANIFEST.MF 文件中指定类路径。这里我遇到了一个新问题:我只能在Class-Path 中指定确切的 JAR 名称,如下所示:
Class-Path: /E:/libs/SimpleConfigs.jar
它就是这样工作的。但是当我尝试指定整个目录时:
Class-Path: /E:/libs/
它再次开始抛出上述错误 (java.lang.NoClassDefFoundError)。
【问题讨论】:
-
@SeverityOne 谢谢,虽然现在我遇到了不同的问题。更新了我的帖子。
-
如果您的问题得到解决,您应该写下答案或删除帖子。如果你有一个新问题,你应该开始一个新的线程。
标签: java cmd jar classpath executable-jar