2010-03-05 2 views
1

gcj로 컴파일 된 Java 프로그램에서 사용자가 프로그램을 시작하기 위해 실행 한 실행 파일의 이름을 찾는 방법이 있습니까?gcj로 컴파일 된 Java 프로그램의 이진 이름

C에서 argv [0] (main 내부에서부터)는 이름이지만 Java에서 main에 주어진 args 배열은 주 클래스에 대한 인수 만 포함합니다. 일반적인 java 명령 줄을 사용하여 실행하면 실행 파일이 항상 java (또는 java.exe)이기 때문에 의미가 있습니다.

그러나 gcj로 컴파일 된 Java 프로그램을 실행할 때 사용자가 실행 한 실행 파일의 이름이 유용한 정보 일 수 있습니다. 이상적으로는 읽기/proc (그리고 Windows에 상응하는 것이 무엇이든지)와 같은 특정 플랫폼 접근법에 의지하지 않고 그 이름을 찾고 싶지만 아마 불가능할 것입니다.

답변

6

Google 코드 검색에서 많은 검색을 한 후 프로그램 이름이 gnu.gcj.progname 속성에 숨겨져있는 것을 발견했습니다. 샘플 프로그램 : gnu.gcj.progname 너무 libgcj Runtime Properties에 설명되어 있습니다, 그래서 다행히도 이것은 단지 내부 구현 세부되지 않습니다 :

public class ProgName { 
    public static void main(String... args) { 
     System.out.println(System.getProperty("gnu.gcj.progname")); 
    } 
} 

편집은 추가 할 수 있습니다.

+1

감사합니다. –

관련 문제