通过命令行将外部依赖项添加到jar文件

阅读问题后,我设法运行了一个.jar文件,该文件具有外部依赖项,位于jar文件中:

/usr/lib/jvm/java-8-jdk/bin/java -classpath /usr/local/bin/kiaragen.jar:/home/kiara/AppLab/KIARA/kiaragen/src/main/resources/org/fiware/kiara/generator/idl/templates/*:/usr/lib/jvm/java-8-jdk/jre/lib/*:/home/kiara/AppLab/KIARA/kiaragen/lib/*  org.fiware.kiara.generator.kiaragen

其中/usr/local/bin/kiaragen.jar是要执行的文件。现在,我试图运行一个依赖于.class文件的不同版本:

/home/kiara/AppLab/KIARA/IDL-Parser/target/classes/com/eprosima/idl/parser/exception/ParseException.class

将文件添加到类路径:

/usr/lib/jvm/java-8-jdk/bin/java -classpath /usr/local/bin/kiaragen-0.2.0.jar:/home/kiara/AppLab/KIARA/IDL-Parser/target/classes/com/eprosima/idl/parser/exception/ParseException.class:/home/kiara/AppLab/KIARA/kiaragen/src/main/resources/org/fiware/kiara/generator/idl/templates/*:/usr/lib/jvm/java-8-jdk/jre/lib/*:/home/kiara/AppLab/KIARA/kiaragen/lib/*  org.fiware.kiara.generator.kiaragen

给出以下异常:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: com/eprosima/idl/parser/exception/ParseException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: com.eprosima.idl.parser.exception.ParseException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 7 more

为什么?

.jar的清单文件与以前相同:

$ cat META-INF/MANIFEST.MF 
Manifest-Version: 1.0
Main-Class: org.fiware.kiara.generator.kiaragen

如何将.class文件添加到类路径?

尼伯(JB Nizet)

您不了解什么是类路径。classpath是jar文件和目录的集合,Java在其中查找类(以及类加载器加载的其他资源)。

如果程序使用该类com.foo.Bar,则类路径中必须不是文件/somedirectory/com/foo/Bar.class目录路径中必须是目录/somedirectory或包含该类的jar文件。

然后,从该基本目录或jar文件中,类加载器将查找与类名称相对应的文件:

com.foo.Bar --> com/foo/Bar.class

这是必不可少的,因为它允许Java一次访问数百个类,而不必在类路径中列出这数百个类文件。在类路径中,您需要的是包含这数百个类的目录或jar。

另请注意,该/usr/lib/jvm/java-8-jdk/jre/lib/*路径也不得位于classpath中。Java知道在哪里可以找到JRE本身的库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SourceSafe通过命令行将文件添加到特定项目目录中

来自分类Dev

通过命令行将元数据添加到opus文件

来自分类Dev

通过命令行将文件添加到Xcode项目?在Xcode中使用project.pbxproj文件?

来自分类Dev

通过命令行将项目添加到解决方案

来自分类Dev

如何通过命令行将条目永久添加到系统的PATH变量中?

来自分类Dev

通过命令行将TFS服务器组添加到访问级别

来自分类Dev

通过命令行将其他父属性添加到JSON

来自分类Dev

Simulink - 通过 MATLAB 命令行将 While 迭代器模块添加到子系统

来自分类Dev

使用命令行将文件添加到macOS上的Dock

来自分类Dev

Windows 7命令行将组“用户”添加到文件

来自分类Dev

如何使用命令行将跟踪器更改/添加到.torrent文件?

来自分类Dev

使用命令行将哈希添加到文件

来自分类Dev

如何通过命令行将文件附加到Mailgun?

来自分类Dev

如何从命令行(Unix)将外部库(OpenCV .jar文件)添加到Java构建路径

来自分类Dev

通过命令行将多个图像作为专辑封面添加到mp3中

来自分类Dev

如何通过命令行将多个电子邮件地址添加到SSL证书?

来自分类Dev

通过命令行添加动态依赖项

来自分类Dev

在批处理模式下从命令行将专辑封面添加到mp3 / ogg文件吗?

来自分类Dev

如何在OS X上从命令行将文件添加到VLC播放列表?

来自分类Dev

在命令行上将多个jar添加到classpath

来自分类Dev

从命令行将AD域用户添加到sudoers

来自分类Dev

从命令行将AD域用户添加到sudoers

来自分类Dev

如何从命令行将导入添加到REPL?

来自分类Dev

如何从命令行将dll-override添加到wine配置?

来自分类Dev

如何使用内置命令行将条目添加到/ etc / hosts

来自分类Dev

从命令行将应用程序添加到收藏夹

来自分类Dev

如何将外部依赖项(jar文件)添加到android studio?

来自分类Dev

如何在Windows上使用命令行执行具有外部依赖项的jar文件?

来自分类Dev

有没有一种方法可以从命令行将源文件添加到Visual Studio项目中?

Related 相关文章

  1. 1

    SourceSafe通过命令行将文件添加到特定项目目录中

  2. 2

    通过命令行将元数据添加到opus文件

  3. 3

    通过命令行将文件添加到Xcode项目?在Xcode中使用project.pbxproj文件?

  4. 4

    通过命令行将项目添加到解决方案

  5. 5

    如何通过命令行将条目永久添加到系统的PATH变量中?

  6. 6

    通过命令行将TFS服务器组添加到访问级别

  7. 7

    通过命令行将其他父属性添加到JSON

  8. 8

    Simulink - 通过 MATLAB 命令行将 While 迭代器模块添加到子系统

  9. 9

    使用命令行将文件添加到macOS上的Dock

  10. 10

    Windows 7命令行将组“用户”添加到文件

  11. 11

    如何使用命令行将跟踪器更改/添加到.torrent文件?

  12. 12

    使用命令行将哈希添加到文件

  13. 13

    如何通过命令行将文件附加到Mailgun?

  14. 14

    如何从命令行(Unix)将外部库(OpenCV .jar文件)添加到Java构建路径

  15. 15

    通过命令行将多个图像作为专辑封面添加到mp3中

  16. 16

    如何通过命令行将多个电子邮件地址添加到SSL证书?

  17. 17

    通过命令行添加动态依赖项

  18. 18

    在批处理模式下从命令行将专辑封面添加到mp3 / ogg文件吗?

  19. 19

    如何在OS X上从命令行将文件添加到VLC播放列表?

  20. 20

    在命令行上将多个jar添加到classpath

  21. 21

    从命令行将AD域用户添加到sudoers

  22. 22

    从命令行将AD域用户添加到sudoers

  23. 23

    如何从命令行将导入添加到REPL?

  24. 24

    如何从命令行将dll-override添加到wine配置?

  25. 25

    如何使用内置命令行将条目添加到/ etc / hosts

  26. 26

    从命令行将应用程序添加到收藏夹

  27. 27

    如何将外部依赖项(jar文件)添加到android studio?

  28. 28

    如何在Windows上使用命令行执行具有外部依赖项的jar文件?

  29. 29

    有没有一种方法可以从命令行将源文件添加到Visual Studio项目中?

热门标签

归档