我希望我的代码能够直接从jar运行应用程序时获取文件路径(如字符串)。这是我的尝试
URL url = LispConnector.class.getResource("/Aima/aima/quicklisp/setup.lisp");
String path = url.getFile();
File f = new File(path);
path = f.getAbsolutePath();
path = path.replace("\\", "/");
虽然当我从netbeans运行应用程序时这很好,但是当我直接运行jar文件时,返回的absoulte路径不正确。返回的路径是
当我使用代码时
String path = url.toURI();
File = new File(path);
path = path.getAbsolutePath();
再次从netbeans运行时它工作正常,但显示错误" URI不是分层的"运行jar文件时出错。
我的问题是,如何直接从jar运行应用程序时获取文件的绝对路径。 我不想读取文件的内容,我只需要将absoulte路径作为字符串!
答案 0 :(得分:0)
由于我的项目依赖于这些文件,我决定通过在build.xml中添加这些行来将文件夹复制到dist /文件夹
<target name="-post-compile">
<copy todir="${dist.dir}/aima">
<fileset dir="aima/"/>
</copy>
</target>
<target name="-post-compile">
<copy todir="${dist.dir}/aima">
<fileset dir="aima/"/>
</copy>
</target>
现在我不需要使用GetResource()或GetResourceAsStream()。