【发布时间】:2015-11-06 13:01:01
【问题描述】:
我希望我的代码能够在直接从 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 文件时返回的绝对路径不正确。返回的路径是
当我使用代码时
String path = url.toURI();
File = new File(path);
path = path.getAbsolutePath();
再次从 netbeans 运行时它工作正常,但在运行 jar 文件时显示错误“URI 不是分层”错误。
我的问题是,直接从 jar 运行应用程序时如何获取文件的绝对路径。 我不想读取文件的内容,我只需要绝对路径作为字符串!
【问题讨论】:
-
不要尝试使用文件路径访问 JAR 中的资源。由于它们位于 JAR 文件中,因此它们不是文件系统的一部分(因此无法使用文件路径访问)。只需使用
getResourceAsStream(..)检索 InputStream,然后从 InputStream 中读取数据。 -
我不想读取数据,我只需要路径作为字符串!
-
如果你不想读取数据,你想用它做什么?检查是否存在?
-
没有。这是一个lisp文件,我想通过从java执行lisp函数从lisp命令(加载文件路径)加载它
-
另外,在我的应用程序中,我想在 UI 上显示文件的路径
标签: java netbeans jar classloader filepath