getResourceAsStream()在eclipse中工作正常,但在jar中失败

时间:2018-08-28 16:54:38

标签: java eclipse maven jar classloader

我的(maven)项目看起来像这样:

+ scr/main
++ java
+++ myPackage
++++ MyClass.java
++ resources
+++ python
++++ PythonScript.py

我现在尝试像这样将py脚本加载到我的java类中:

String s = File.separator;
ClassLoader cl = myClass.getClass().getClassLoader();
cl.getResourceAsStream(s + "python" + s + "PythonScript.py"));

在Eclipse中执行时,效果很好。 但是,当我尝试在jar文件中执行此操作时,我得到的只是NULL ...

我的jar文件如下:

+ MyJar.jar
++ python
+++ PythonScript.py

1 个答案:

答案 0 :(得分:2)

Windows中的

File.separator\\,因此在尝试从jar文件中获取资源时它将无法工作。使用"/"既可以在Eclipse中使用,也可以在jar中使用。

String s = "/"; //File.separator;
ClassLoader cl = myClass.getClass().getClassLoader();
cl.getResourceAsStream("python" + s + "PythonScript.py"));