Java jar无法访问资源

时间:2015-10-08 13:23:33

标签: java jar filenotfoundexception

我需要执行一个jar文件,该文件使用位于某些子文件夹中的一些文件。

例如,目录树可以是这样的:

jar_root/
├── executable.jar
├── folder1/
│    └── required_file1.txt
│
├── folder2/
│    └── required_file2.txt
│
├── other_folder/
│   └── ...
└── other_file.txt

在此示例中,executable.jar需要访问required_file1required_file2

我需要从另一个目录执行jar,所以我尝试了这个命令:

java -cp /path/to/jar_root/ -jar /path/to/jar_root/executable.jar <options>

但我得到的是FileNotFoundException上的required_file1(我猜Exception会提出相同的required_file2

如何让jar工作?

请注意,我无法修改广告素材,因此我无法按照this(和其他)回答的建议使用getResourceAsStream。< / p>

1 个答案:

答案 0 :(得分:2)

这取决于jar中的代码如何尝试访问文件。如果是通过相对路径,那么只有从相应的工作目录启动程序才能工作,例如:

cd /path/to/jar_root/ 
java -jar executable.jar <options>

另一种方法是通过绝对路径引用文件,或者从类路径引用文件而不是文件系统路径。