로 실행됩니다.
당신은 예를 들어
import java.awt.EventQueue;
import java.awt.HeadlessException;
import java.io.File;
import java.io.IOException;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class WhereAmI {
public static void main(String[] args) {
new WhereAmI();
}
public WhereAmI() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
} catch (InstantiationException ex) {
} catch (IllegalAccessException ex) {
} catch (UnsupportedLookAndFeelException ex) {
}
try {
String path = new File(".").getCanonicalPath();
JOptionPane.showMessageDialog(null, "I was started in " + path);
} catch (IOException exp) {
exp.printStackTrace();
}
}
});
}
}
... 같은 것을 사용하여이를 테스트 할 수 있습니다. 컴파일 할 때 나는이 위치로 디렉토리를 변경하고 실행하면 항아리는 /Volumes/Disk02/DevWork/personal/java/projects/wip/StackOverflow/WhereAmI/dist
에있는 java -jar WhereAmI.jar
이
내가 /Volumes/Disk02/DevWork/personal/java/projects/wip/StackOverflow/WhereAmI
디렉토리를 변경하고 실행하면 출력 java -jar dist/WhereAmI.jar
는
출력
실행 컨텍스트가 변경되었습니다. Jar 파일을 두 번 클릭하면 시스템에 따라 동일한 문제가 발생합니다. 그것은 짧은 커팅이나 실제 Jar 일 수도 있습니다.
이렇게하면 상대 리소스를 사용하는 경우 Jar이 리소스와 관련하여 올바른 위치에서 실행되는지 확인해야합니다. 이를 달성하는 방법
은 OS에 따라 달라집니다
더블 클릭이 javaw를을하지 자바를 시작, 참조 : http://stackoverflow.com/questions/1997718/difference-between-java-exe-and-javaw-exe – morpheus05
"내부의 무언가가 효과가 없다"는 것은 무엇을 의미합니까? –
둘 사이의 주요 차이점은 실행 위치의 컨텍스트입니다. 명령 행에서 실행할 때 실행 컨텍스트는 java 명령을 실행 한 디렉토리가됩니다. Jar 파일을 두 번 클릭하면 컨텍스트가 시스템에 따라 달라집니다. System.out.println (새 파일 ("."). getCanonicalPath()); – MadProgrammer