java - 执行JAR时,得到ExceptionInInitializerError : version. properties not found

标签 java eclipse jar derby qt-jambi

我一直在用 Eclipse 编写一个在 IDE 中完美运行的小项目。然后我通过 Eclipse 构建了一个可运行的 .jar 文件(它应该包括 jar 本身内的每个依赖库)。

我在我的项目中使用了 3 个库:

  • derby.jar
  • qtjambi-4.7.1.jar
  • qtjambi-win32-msvc2008-4.7.1.jar

然后我使用这个命令(在 windows 中):

java -jar prova.jar

我明白了:

Connected to database

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: java.lang.ExceptionInInitializerError: version.properties not found!
    at com.trolltech.qt.Utilities.<clinit>(Unknown Source)
    at com.trolltech.qt.QtJambi_LibraryInitializer.<clinit>(Unknown Source)
    at com.trolltech.qt.QtJambiObject.<clinit>(Unknown Source)
    at WAAAGH.main(WAAAGH.java:52)
    ... 5 more


如您所见,derby.jar 正在按预期工作(“连接到数据库”),但是 Qt-Jambi 出现了一个我无法理解的错误。有什么想法吗?


编辑: WAAAGH 是包含主要方法的类,第 52 行包括:

QApplication.initialize(args);

最佳答案

QtJambiObject 是如何加载的?你把它打包到你的 prova.jar 里了吗?丢失的文件 version.properties 应该是顶级相同 jar 的一部分(不在任何子目录中)。看来您还没有将它打包到顶层的 prova.jar 中。参见 this解释它是如何加载的。

在命令行上指定所有 jar 和主类可能会更好:

java -classpath prova.jar;derby.jar;qtjambi-4.7.1.jar;qtjambi-win32-msvc2008-4.7.1.jar <your main class>

替换; with : 如果你在 *nix 上运行

关于java - 执行JAR时,得到ExceptionInInitializerError : version. properties not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608765/

相关文章:

java - JAXB 解码以增加 pojo

java - 从 java 源创建 .jar 不起作用

java - 如何从 JAR 应用程序中动态加载类以在另一个 JAR 中使用?

Java 8 - 永久代支持 - 替代方案

java - 如果 java 函数的返回值是仅在运行时已知的两个可能对象之一,我的 java 函数应该返回什么对象?

android - 为什么 Eclipse 不再显示项目 'correctly'?

java - GWT 开发者插件未运行

eclipse - 如何以编程方式重置 Eclipse RCP 透视图

java - 如何将在 Eclipse 中制作的小程序变成可以在 Web 浏览器中运行的程序?

java - Android RecyclerView :java. lang.NullPointerException : CartRecyclerAdapter$CustomViewHolder. getAdapterPosition()' 在空对象引用上