2009-10-28 13 views
18

동일한 패키지 내에 2 개의 클래스가 있습니다. 두 클래스에는 모두 main 메소드가 있습니다. 이제 jar 파일을 만들고 싶습니다. 기본 메인으로 다른 주요 기능을 사용하는 2 개의 jar 파일을 만들고 싶습니다.Java에서 기본 기본 클래스를 설정하는 방법은 무엇입니까?

예를 들어

class A 
{ 
    public static void main(String args[]) 
    { 
    //do something 
    } 
} 

class B 
{ 
    public static void main(String args[]) 
    { 
    //do something 
    } 
} 

어떻게 그것을 넷빈즈 IDE에서해야합니까?

답변을 찾았습니다. U netbeans에서 쉽게 할 수 있습니다 : 1) 프로젝트> 속성> 실행을 마우스 오른쪽 버튼으로 클릭하고 클래스 frm을 선택하고 목록을 드롭 다운합니다. netbeans에서 간단합니다. Netbeans 바위!

+0

나를 위해 작동하지 않습니다. 나는 그것을 A 클래스로 설정했지만 여전히 오래된 클래스를 실행 중이다. 나는 그것이 버그라고 생각한다. 그래서 나는 넷빈을 싫어합니다. 그것은 단순한 일을 어렵게 만듭니다. – Alex

+0

이 대답은 저에게 효과적이었습니다. 그냥 클래스에 메인을 두어야하고 NetBeans가이를 감지하고 실행합니다 –

+0

Eclipse의 경우 (Google에 표시됨) : https://stackoverflow.com/a/12811633/1599699 – Andrew

답변

19

jar 파일에서 그냥 jar 파일이 실행 가능 한 후 manifest.mft

Main-Class : A 

이를 것입니다 추가 할 수 올바른 주를 부를 것이다. 당신이 볼 수 넷빈즈에서이 작업을 수행하는 방법에 대한

: Producing executable jar in NetBeans

1

당신은 어떤 당신이 자동으로 실행하려면 파일을 가리 키도록 jar 파일의 Manifest에 Main-Class 속성을 설정할 수 있습니다.

0

가장 좋은 방법은 Ant 스크립트에서 이것을 처리하는 것입니다. 2 개의 jar 파일에 대해 2 개의 다른 태스크를 작성할 수 있습니다. 첫 x 째 jar의 manifest 파일에서 클래스 A를 기본 클래스로 지정하십시오. 비슷하게 클래스 B를 두 번째 jar의 매니 페스트 파일에서 기본 클래스로 지정합니다.

Netbeans에서 Ant 작업을 쉽게 실행할 수 있습니다.

3

2 개의 실행 가능한 JAR 파일을 만드는 경우 각 실행 파일은 자체 매니페스트 파일을 가지며 각 매니페스트 파일은 실행을 시작하는 데 사용하려는 main() 메서드가 포함 된 클래스를 지정합니다. 각 JAR 파일에서

는 매니페스트는 JAR 내부의 다음 경로/이름의 파일이있을 것입니다 - META-INF/MANIFEST.MF

JAR command-line parameters를 사용하여 JAR의 매니페스트와 같은 양자 택일라는 이름의 파일을 지정하는 방법이 있습니다.

사용할 특정 클래스는 META-INF/MANIFEST.MF 파일 내에서 Main-Class: package.classname을 사용하여 지정됩니다.

Netbeans에서 수행하는 방법 - 내 머리 꼭대기에서 잘 모르겠다 - 나는 대개 IntelliJ 및/또는 Eclipse를 사용하고 일반적으로 ANT 또는 Maven을 통해 JAR을 빌드합니다.

1

만들려는 두 개의 jar가 거의 동일하고 유일한 차이점은 각각에서 시작해야하는 기본 클래스 인 경우 모든 클래스를 세 번째 jar에 넣을 수 있습니다. 그런 다음 각각에 매니페스트가있는 두 개의 항아리를 만듭니다. MANIFEST.MF 파일에서 Main-Class 속성을 사용하여 항목 클래스의 이름을 지정하십시오.

또한 Class-Path 특성을 지정하십시오. 이 값은 모든 공유 코드를 포함하는 jar 파일의 이름이어야합니다. 그런 다음 세 개의 jar 파일을 모두 동일한 디렉토리에 배치하십시오. 물론 타사 라이브러리가 있으면 Class-Path 속성에도 나열 할 수 있습니다.

5

당신의 가정.단지 각에 정의 된 주와 클래스 1과 Class2의를 가지고, 당신은 다음과 같은 자바를 호출 할 수 있습니다 : 당신이 자바에 다른 옵션을 지정해야하는 경우

java my.jar class1 

java my.jar class2 

단지 만들 그들이 my.jar 전에 있는지

java -classpath my.jar class1 
+5

'java -classpath my.jar class1' 실제로'Main-Class' 세트가없는 JAR을 실행할 수 있습니다. –

19

프로젝트 창에서 프로젝트 노드를 마우스 오른쪽 단추로 클릭하고 프로젝트 속성을 선택하십시오. 그 다음 실행을 찾을 수 있습니다. 기본 클래스를 설정할 수 있습니다. ** 실제로 netbeans 기본 도움말에서 가져 왔습니다.

+0

좋은 바로 가기 – toxicate20

0

주석으로 고객이 항아리에서 클래스를 실행할 수 있도록 허용해야했습니다. 즉, 파일을 수정할 수 없습니다 (그렇게 할 수는 없습니다).

java -cp c:\path\to\jar\jarFile.jar com.utils.classpath -e -v textString 
0

F11 키를 눌러 빌드하고 프로그램을 실행 : 감사는 안토니와 새미 - 디럭스의 의견에 의해 게시물이 고객이 지금은 특정 클래스의 주요 액세스하기 위해 실행할 수있는 것입니다. 프로그램을 실행하면 클래스 목록을 갖게됩니다. 목록에서 주 수업을 선택하고 실행하려면 확인을 클릭하십시오.

8

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "설정 구성"을 선택한 다음 "사용자 정의"를 선택하면 기본 클래스를 선택할 수 있습니다. ScreenShot

관련 문제