java获取jar包同目录下的文件路径
时间: 2023-10-26 10:19:07 浏览: 194
可以使用以下代码获取jar包同目录下的文件路径:
```java
String filePath = new File(getClass().getProtectionDomain().getCodeSource().getLocation().getPath()).getParent() + "/file.txt";
```
这段代码中,`getClass().getProtectionDomain().getCodeSource().getLocation().getPath()`获取到的是当前正在执行的jar包的路径,再通过`getParent()`方法获取到jar包所在目录的路径,最后与文件名拼接即可获取到文件的完整路径。
相关问题
Java如何根据jar包中资源文件的路径获取jar包路径
在Java中,可以通过以下代码获取Jar包路径:
```java
String jarPath = getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
```
如果想要获取Jar包中某个资源文件的路径,可以使用以下代码:
```java
String resourcePath = getClass().getResource("/path/to/resource").getPath();
```
其中,`/path/to/resource` 是资源文件的路径,相对于Jar包的根目录。请注意,在Windows系统中,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 文件路径。
阅读全文