tes*_*stk 2 java resources jar filepath pathname
我正在尝试获取位于 java jar 之外的文件的路径,但我不想使用绝对路径。一个例子:假设 jar 位于 ~/lib/myjar.jar 并且该文件位于同一文件夹中。我尝试的是这样的,但失败了:
File myfile = new File(this.getClass().getResource("../../../").toURI());
Run Code Online (Sandbox Code Playgroud)
注意:我的包是 com.contro.gui,这就是为什么我有“../../../”,以便访问“root”
我不确定如何访问该文件。有什么建议吗??如果我要访问的文件位于 ~/res/ 这样的其他文件夹中怎么办?
如果该文件与 jar 位于同一目录中,我认为这会起作用(感觉相当 hacky,但是......):
URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
File myfile = new File(url.toURI());
File dir = myfile.getParentFile(); // strip off .jar file
Run Code Online (Sandbox Code Playgroud)
(尚未对此进行测试,但似乎可行。当然,仅适用于基于文件的 jar)。
如果文件位于某个随机位置,我认为您需要传递参数或检查“已知”位置,例如user.home. (或者,您始终可以将文件放入 jar 中以供使用getResource()。)
| 归档时间: |
|
| 查看次数: |
6595 次 |
| 最近记录: |