2014-01-19 2 views
0

에 의해 수행되는 j2me 응용 프로그램에 서명하기 위해 Java에서 GUI 응용 프로그램을 만들고 싶습니다만 명령 행 인터페이스 응용 프로그램입니다. 그래서 저는 그것을 라이브러리로 사용하고 프로그램에서 매개 변수를 전달하려고합니다. 어떻게 할 수 있습니까?라이브러리로 명령 줄 인터페이스 app 사용

답변

1

jar는 클래스의 라이브러리 일 뿐이며 명령 줄에서 실행할 수 있다는 사실은 클래스의 main 메소드가 있기 때문에 발생합니다.

: 옵션의 설정이 축소 선도,

public static void main(String[] args) { 
    int exitStatus = -1; 

    try { 
     new JadTool().run(args); 
     exitStatus = 0; 
    } catch (Exception e) { 
     System.err.println("\n" + e.getMessage() + "\n"); 
    } 

    System.exit(exitStatus); 
} 

불행하게도, run() 방법은 개인이다, 그래서 다른 클래스에서 직접 호출하면 작동하지 않습니다 jadtool의 source is available으로 그것의 주요 매우 간단 쉽게 알 수

  1. @WilliamMorrison의 런타임을 통한 해결책 - 실제로 라이브러리 호출이 아니지만 작동 할 것입니다.
  2. 는 경우에하는 것은()`편집`performAddJarSigCommand (문자열 PAR1, 문자열 PAR2 ...) '로 변환하고'실행을 제거 할 수 있도록 Any way to Invoke a private method?
+0

은 현재 난 단지,''performAddJarSigCommand (문자열 []에 인수)가 필요 참조 커맨드 라인에서 의존성을 제거하고 소스를 재 구축하기위한'main' 메소드는 라이브러리로 사용할 수 있습니까? –

+2

@Dark_Prince 네, 할 수 있습니다. 나는 그것을 커버하기 위해 나의 대답을 업데이트했다. –

+0

@Dark_Prince'performAddJarSigCommand' 또한 private 메소드이기 때문에 동일한 제안이 여전히 적용됩니다. – fvu

2

체크 아웃 Runtime 명령을 실행할 수 있습니다. 이를 사용하여 명령 행 인터페이스 라이브러리를 시작할 수 있습니다.

편집 : 아, 이전에 신중하게 읽지 않았습니다. Java 라이브러리를 사용하는 경우 별도의 프로세스를 시작하는 것이 가장 좋은 방법은 아닙니다.

프로젝트에서 JadTool jar를 참조하기 만하면됩니다. 필요한 기능을 라이브러리에서 액세스 할 수없는 경우 소스를 편집하고 다시 컴파일하십시오. JadTool의 라이센스가 이것을 허용하는지 확인하십시오.

소스 편집을 거부하거나 허용하지 않는 경우 리플렉션을 사용하여 필요한 개인 실행 메소드를 호출 해보십시오.

관련 문제