2013-11-23 2 views
1

간접적으로 파일에 전달 된 명령 줄 인수를 가져 오려고합니다. 이것은 클래스 로더를 통해로드 된 클래스가 활용할 수있는 프로그램이므로 프로그램의 기본 메소드에 액세스 할 수 없습니다. 그러나 RuntimeMXBeanjavadoc 위에 읽는간접적으로 명령 줄 인수 받기

RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean(); 
List<String> arguments = RuntimemxBean.getInputArguments(); 

내가 인수의 나머지를 얻는 방법을 알아낼 수 없습니다

는 내가 통해 JVM 인수를 얻을 수 있습니다 알고 있습니다.

String arguments = System.getProperty("sun.java.command") 

그러나 또한 자바의 모든 구현에서 작동하지 않습니다 :

은 또한을 통해 재미 명령 줄 실행을 얻기 위해 시도했습니다. 이게 가능한가? 그렇다면 어떻게 될까?

편집 : 설명을 위해 클래스 파일을로드하는 원래 프로젝트를 수정할 수있는 권한이 없습니다.

+0

관련 항목 : http://stackoverflow.com/questions/5061367/how-to-get-the-command-line-arguments-from-another-class-with-java 및 http://stackoverflow.com/questions/54686/how-to-get-a-list-of-current-open-windows-process-with-java –

답변

1

저는이 유형의 문제에 익숙하지 않지만로드하려는 클래스의 인스턴스 필드와 기본 프로그램 인수를 저장하는 필드를 만들 수 없습니다. 그런 다음 인스턴스 필드에 값을 할당하십시오. 논쟁?

+0

또는 생성자를 호출 할 때 클래스의 인수 복사본을 전달하거나 복사본을 전달하십시오. 메소드 함수. – steveha

+0

더 자세히 설명 했어야하지만, 전체적인 생각은로드 된 클래스에 인수가 제공되지 않는다는 것입니다. (그리고 저는이 클래스를로드하는 프로젝트의 작성자가 아닙니다). 어떤 종류의 접근 자에 대한 변경 요청을 생성하는 것을 고려해 보았습니다. 그러나 전반적으로이 문제를 간접적으로 처리하는 방법에 대해 궁금합니다. – Rogue

+0

@Rouge이 경우, 나는 무엇을해야할지 모른다. 죄송합니다! – 0x277F