java代码获取jar包所在的文件位置
时间: 2023-10-08 11:03:45 浏览: 97
可以使用以下代码获取当前运行的jar包所在的文件位置:
```java
String jarFilePath = new File(YourClassName.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath()).getParentFile().getPath();
```
其中,`YourClassName`是你要获取jar包所在位置的类名。这段代码会获取当前类所在的jar包文件位置的父目录路径。如果你想要获取其他jar包的位置,在`YourClassName`中填写对应的类名即可。
相关问题
java在执行jar包时,获取执行jar包所在的文件位置
可以使用以下代码获取执行jar包所在的文件位置:
```java
String jarPath = YourClass.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
```
其中,`YourClass` 是你想要获取执行jar包位置的类名。这段代码会获取该类所在的jar包位置,因为在执行jar包时,该类也会被打包进去。
注意,该方法在IDE中运行时会返回项目编译后的class文件所在的位置,而不是jar包所在的位置。因此在测试时要注意。
java获取包所在jar_JAVA 获取jar包所在的文件夹
在 Java 中,可以通过以下步骤获取包所在的 JAR 文件:
1. 获取该包的类加载器 ClassLoader,例如:
```java
ClassLoader classLoader = MyClass.class.getClassLoader();
```
2. 使用 ClassLoader 的 getResource() 方法获取该包所在的 JAR 文件的 URL,例如:
```java
URL url = classLoader.getResource("com/example/myclass/package/");
```
其中,"com/example/myclass/package/" 是该包所在的目录路径。
3. 通过 URL 所表示的文件路径获取 JAR 文件的绝对路径,例如:
```java
String jarPath = url.getPath().split("!")[0];
```
这里的 split("!")[0] 表示将 URL 路径按照 "!" 分隔符分成两部分,取第一部分即可得到 JAR 文件的路径。注意,这里得到的路径是 URL 编码后的路径,需要使用 URLDecoder.decode() 方法进行解码。
完整代码示例:
```java
import java.net.URL;
import java.net.URLDecoder;
public class Main {
public static void main(String[] args) {
ClassLoader classLoader = Main.class.getClassLoader();
URL url = classLoader.getResource("com/example/myclass/package/");
String jarPath = url.getPath().split("!")[0];
try {
jarPath = URLDecoder.decode(jarPath, "UTF-8");
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(jarPath);
}
}
```
注意,以上方法只适用于从 JAR 文件中加载的类,如果是从其他地方加载的类,则可能无法获取 JAR 文件路径。
阅读全文