java - Myclass.class.getProtectionDomain().getCodeSource() 返回空路径

标签 java eclipse path jvm executable-jar

我正在尝试使用以下方法查找正在运行的 jar 文件的位置:

File jarFile = new File(JarPath.class.getProtectionDomain().getCodeSource().getLocation().toURI());

当我在 IDE (eclipse) 上运行它时,它会返回正确的路径。 但是当我将 jar 作为可执行文件运行时,返回的代码源是

rsrc:./

关于如何获得正确路径的想法?

最佳答案

尝试不同的方法来获取位置。

String jarFilePath = ClassLoader.getSystemClassLoader().getResource(".")
        .toURI()
        .getPath()
        .replaceFirst("/", "");

这会让您到达 jar 文件的父位置。

C:/Users/Roshana Pitigala/Desktop/

您仍然需要添加文件名和扩展名 (jarFileName.jar)。

关于java - Myclass.class.getProtectionDomain().getCodeSource() 返回空路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32050178/

相关文章:

path - 在命令提示符中以编程方式获取 system32 路径

go - 如何使用 golang 在本地主机系统中创建临时目录

java - Spring Webflow 2 bean 定义的架构

java - Eclipse 编辑器期望我开始和结束一个 block

java - 如何在 Java 中捕获 shell 命令的退出状态?

java - GL_QUADS 以我不希望的方式渲染

C++ 启动失败。找不到二进制文件

linux - 由 Master bash 脚本定义的库路径,但必须在每个终端 session 中运行它,如何提高效率?

java - 如何检测RGB是否完全透明?

java - WebSocket 在 Firefox 中建立两个连接