- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码在 JAR 文件内运行,我需要获取该文件的完整路径。例如,我的 JAR 名为 example.jar,位于 D:\example\所以我需要通过该 jar 内的一些代码获取“D:\example\example.jar”。我尝试了很多方法来获取该路径,但没有一个能正常工作。
其中之一是
getClass().getProtectionDomain().getCodeSource().getLocation().toURI().getPath()
很多人说这对他们有用,但对我来说它返回“rsrc:./”。
之后我进行了搜索,我注意到我的 MANIFEST.MF 包含以下内容:
Manifest-Version: 1.0
Rsrc-Class-Path: ./
Class-Path: .
Rsrc-Main-Class: Example
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
我不知道这意味着什么,但如果我删除 Rsrc 的东西并用它替换其他东西,它会说 jar 坏了。我认为这就是它不起作用的原因。有谁知道这是什么意思吗?
PS:我正在使用 BAT 文件运行 JAR。
最佳答案
我也偶然发现了这个问题,并将我的调查留在这里,供将来问自己 rsrc
含义的人使用。
我正在使用 Eclipse Mars 1 并尝试将我的项目导出为可运行的 JAR。在那里我可以选择库处理并在以下之间做出决定:
要测试的线路是
System.out.println(MyClass.class.getProtectionDomain().getCodeSource().getLocation());
JAR 文件的名称是 MyJar.jar(将放在桌面上),项目的名称和文件夹是 MyProject。
结果:
文件:/C:/Users/admin/Desktop/MyJar.jar
rsrc:./
文件:/C:/Users/admin/Desktop/MyJar.jar
file:/C:/Development/workspace/MyProject/target/classes/
我为此编写了一个方便的方法:
public class SystemUtils {
/**
* Let no one instanciate this class.
*/
private SystemUtils() {}
/**
* If the current JVM was started from within a JAR file.
* @return <code>Boolean.TRUE</code> if it is, <code>Boolean.FALSE</code> if it is not, <code>null</code> if unknown.
*/
public static Boolean executedFromWithinJar() {
Boolean withinJar = null;
try {
String location = SystemUtils.class.getProtectionDomain().getCodeSource().getLocation().toString();
if (location.startsWith("rsrc:")
|| location.endsWith(".jar") && !new File(location.substring(location.indexOf(':') + 1)).isDirectory())
withinJar = Boolean.TRUE;
else
withinJar = Boolean.FALSE;
}
catch (Exception ex) {/* value is still null */}
return withinJar;
}
}
关于java - 获取正在运行的 JAR 文件的路径返回 "rsrc:./",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37902711/
如果你做 dumpbin/header 它会给你所有 7 个部分的数据转储。 。数据 .idata .rdata .reloc .rsrc 。文本 .textbss 其中 .rsrc 和 .idata
我的代码在 JAR 文件内运行,我需要获取该文件的完整路径。例如,我的 JAR 名为 example.jar,位于 D:\example\所以我需要通过该 jar 内的一些代码获取“D:\exampl
我明白了; java.net.MalformedURLException: unknown protocol: rsrc 我不完全确定如何处理这个未知的协议(protocol)。我正在使用简单的 RM
我明白了; java.net.MalformedURLException: unknown protocol: rsrc 我不完全确定如何处理这个未知协议(protocol)。我正在使用简单的 RMI
如何使用 DeRez 从 iTunes.rsrc 获取图像?我只想要 png 或标准图像文件。谢谢。 最佳答案 这有效: DeRez -only 'PNG ' /Applications/iTunes
http://static.ak.fbcdn.net/rsrc.php/117600/css/base.css http://static.ak.fbcdn.net/rsrc.php/z4HBM/ha
这个问题已经有答案了: hadoop java.net.URISyntaxException: Relative path in absolute URI: rsrc:hbase-common-0.9
当我尝试使用Unity的Facebook SDK 6.0时,有时可以正常工作,有时会出现以下错误消息: 解决主机超时:Integrated-plugin-canvas-rsrc.fbsbx.com U
我已经构建了一个 Maven jar。 list 看起来像 Build-Jdk: 1.7.0_55 Main-Class: com.abc.Locator Class-Path: ./ lib/act
我使用 javafx 创建了一个示例应用程序。由于网络限制,无法安装e(fx)clipse等fxpackaging工具 我使用 eclipse(版本 4.5.1)创建了 jar当我在 cmd 中使用以
我有一个连接到 HBASE 的 map reduce 作业,但我不知道我在哪里遇到了这个错误: Exception in thread "main" java.lang.reflect.Invocat
我是一名优秀的程序员,十分优秀!