有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java获取错误文件<init>在Ubuntu终端中运行可执行jar时

标题说明一切

我必须在终端上运行我的java应用程序项目

所以我在Eclipse中制作了可执行jar

我已经尝试了所有三个选项

但我的错误并没有消失

这个程序在eclipse中运行得很好,但当我以可执行jar格式运行时,它会出错

邮件附在下面

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NullPointerException
    at java.io.File.<init>(File.java:251)
    at com.zinnaworks.iis.DBFileLoader.loadDBFile(DBFileLoader.java:17)
    at com.zinnaworks.iis.Main.main(Main.java:23)
    ... 5 more

我想我应该把重点放在文件上

如果你有任何解决方案或很好的参考资料,请分享

:D谢谢

=====================收到一些反馈后================================= 谢谢

也许这部分可以作为线索

我的命令行是

java -jar IISDB_C.jar

结果:

java.io.FileNotFoundException: file:/home/juneyoungoh/IISDB_C.jar!/com/zinnaworks/iis/conf/iis.properties (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at java.io.FileInputStream.<init>(FileInputStream.java:97)
    at com.zinnaworks.iis.conf.PropertyLoader.loadProp(PropertyLoader.java:14)
    at com.zinnaworks.iis.Main.main(Main.java:21)

这些都是事实。 1.我在eclipse中制作了一个可执行jar。 2.非法入境者。属性文件就在那个路径中(IISDB_C.jar!/com/zinnaworks/iis/conf/iis.properties),但我不知道那是什么方法 3.每个其他文件都会出现相同的错误,因为它们都是由属性文件中定义的字符串初始化的

附言 我不知道如何使用-Dmp选项。所有路径都是在相对路径中设计的,并包含在jar文件中


共 (1) 个答案

  1. # 1 楼答案

    我用InputStream对象解决了这个问题。 坦率地说,我不知道为什么我们必须使用这个,但要成功地正常工作。 这是我编辑的代码

    InputStream in = PropertyLoader.class.getResourceAsStream("/your/package/right/here/property.files");
                prop.load(in);
                in.close();
    

    不管怎样,多亏了@morgano。 没有他的建议,我找不到哪个部分有问题:D