有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

windows 7如何在Java中获得双击或执行的正确路径?

我的java jar安装在c:\program files<i do not know>\i do not know\here.jar中。当用户执行我的应用程序时

我总是在这里得到c:\uesrs\\。jar及其失败

String Windows7HomeEditionProgramFileDirectroyStruct = System.getProperty("user.dir");

如何获得双击或执行的正确路径

详细信息(测试了两个答案,但都没有说明罐子的位置):

试试看(1)

new File(".").getAbsolutePath();
or

new File(".").getCanonicalPath();

C:\Users\sun>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1
\dist\JavaApplication1.jar"
C:\Users\sun\.

试试看(2)

ClassLoader.getSystemClassLoader().getResource(".").getPath();

C:\Users\sun>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1
\dist\JavaApplication1.jar"
Exception in thread "main" java.lang.NullPointerException
        at javaapplication1.JavaApplication1.main(JavaApplication1.java:18)

跟进:

String test = JavaApplication1.class.getProtectionDomain().getCodeSource().getLocation().getPath();

C:\>java -jar "C:\Users\sun\Documents\NetBeansProjects\JavaApplication1\dist\Jav
aApplication1.jar"
/C:/Users/sun/Documents/NetBeansProjects/JavaApplication1/dist/JavaApplication1.
jar

共 (3) 个答案

  1. # 1 楼答案

    “user.dir”系统属性将返回JAR文件的工作目录。宾雅明的回答也是如此

    您正在寻找包含正在执行的JAR文件的目录。在this thread中提出了一个类似的问题,答案可能会对你有所帮助

  2. # 2 楼答案

    使用user.dir将始终为您提供Windows中的用户目录

    试试这个:

    ClassLoader.getSystemClassLoader().getResource(".").getPath();
    
  3. # 3 楼答案

    您可以这样获取当前目录:

    String path = new File(".").getAbsolutePath();
    

    使用“user.dir”得到的是用户目录