可以使用Java中的ClassLoader来读取jar包下的配置文件。
使用ClassLoader的getResourceAsStream方法来读取jar包下的配置文件,代码示例如下:
```java
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class ReadConfigFromJar {
public static void main(String[] args) {
// 使用ClassLoader加载配置文件
InputStream inputStream = ReadConfigFromJar.class.getClassLoader().getResourceAsStream("config.properties");
Properties properties = new Properties();
try {
// 加载配置文件
properties.load(inputStream);
// 获取配置项的值
String value = properties.getProperty("key");
System.out.println(value);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述示例代码中,通过`ClassLoader.getResourceAsStream("config.properties")`方法来获取配置文件的输入流,然后使用Properties类加载输入流并获取配置项的值。需要注意的是,配置文件必须位于classpath下。
另外,需要将配置文件的路径以正确的相对路径方式传递给`getResourceAsStream`方法。如果配置文件位于jar包的根目录下,则直接使用文件名即可,如果配置文件位于jar包的子目录下,则需要将目录路径和文件名一起传递,例如`"config/sub_config.properties"`。