jar包路径包含感叹号怎么办
时间: 2023-07-09 18:24:07 浏览: 126
如果 jar 包路径中包含感叹号,那么需要对感叹号进行转义,否则在使用 `ClassLoader.getResource()` 方法时会报错。具体来说,需要将感叹号替换为 `%21`。以下是一个示例代码:
```java
String jarPath = "path/to/your/jar!file.jar";
jarPath = jarPath.replaceAll("!", "%21"); // 将感叹号替换为 %21
URL resourceUrl = YourClassName.class.getClassLoader().getResource(jarPath);
String jarFolderPath = Paths.get(resourceUrl.toURI()).toString();
```
在这个示例中,我们首先将 jar 包路径中的感叹号替换为 `%21`。然后,我们使用 `ClassLoader.getResource()` 方法来获取 jar 包中某个文件夹的路径。最后,我们使用 `Paths.get()` 方法来获取文件夹的路径。
需要注意的是,在将感叹号替换为 `%21` 时,只需要替换路径中的感叹号,不需要替换 jar 包名称中的感叹号。
相关问题
jar包路径怎么获取
获取jar包路径可以使用以下代码:
```
String jarPath = YourClassName.class.getProtectionDomain().getCodeSource().getLocation().getPath();
```
其中,`YourClassName`是你的Java类名。这段代码获取了当前类所在的jar包路径。如果你想获取其他jar包的路径,可以将`YourClassName`替换为目标类的类名。注意,在某些特殊情况下,这种方法可能会返回空字符串或者错误的路径。
yml文件获取jar包路径
在yml文件中获取jar包路径可以使用`${java.class.path}`来获取classpath。在yml文件中可以这样写:
```yaml
my:
path: ${java.class.path}
```
这样就可以将`my.path`设置为当前运行程序的classpath路径。当然,前提是你已经将jar包放到了classpath路径下。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)