Java 如何获取已执行的.jar文件的路径?
在Java中,如何获取已执行的.jar文件的路径 我尝试使用Java 如何获取已执行的.jar文件的路径?,java,jar,Java,Jar,在Java中,如何获取已执行的.jar文件的路径 我尝试使用System.getProperty(“user.dir”)但这只给了我当前的工作目录,这是错误的,我需要.jar文件直接位于的目录的路径,而不是“pwd”。取自: 可能是java.class.path属性 如果您知道jar文件的名称,并且它位于类路径中,您可以在那里找到它的路径,例如使用一个小正则表达式。您可以指定为什么需要该路径吗?如果您需要从jar文件访问某些属性,您应该查看ClassLoader.getSystemClassLo
System.getProperty(“user.dir”)代码>但这只给了我当前的工作目录,这是错误的,我需要.jar文件直接位于的目录的路径,而不是“pwd”。取自:
可能是java.class.path属性
如果您知道jar文件的名称,并且它位于类路径中,您可以在那里找到它的路径,例如使用一个小正则表达式。您可以指定为什么需要该路径吗?
如果您需要从jar文件访问某些属性,您应该查看ClassLoader.getSystemClassLoader()
不要忘记,您的类不是存储在jar文件中所必需的。
// if your config.ini file is in the com package.
URL url = getClass().getClassLoader().getResource("com/config.ini");
System.out.println("URL=" + url);
InputStream is = getClass().getClassLoader().getResourceAsStream("com/config.ini");
try {
if (is != null) {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
else {
System.out.println("resource not found.");
}
}
catch (IOException e) {
e.printStackTrace();
}
问候。从哪里来?JAR文件本身内部?是的,来自JAR文件本身内部的代码。这不起作用,当按照指示使用时,返回JRE的路径。谢谢你!需要访问与.jar文件存储在同一目录中的config.ini文件。请查看ClassLoader#getResource/#findResource。如果配置文件位于jar外部,则不确定它是否可以工作。这仅在资源位于类路径中时才起作用。如果不是,您需要知道它的位置,并创建一个InputStream来访问它的内容。
// if your config.ini file is in the com package.
URL url = getClass().getClassLoader().getResource("com/config.ini");
System.out.println("URL=" + url);
InputStream is = getClass().getClassLoader().getResourceAsStream("com/config.ini");
try {
if (is != null) {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
else {
System.out.println("resource not found.");
}
}
catch (IOException e) {
e.printStackTrace();
}