2009-10-28 53 views
18

Tengo 2 clases dentro del mismo paquete. Ambas clases tienen el método principal en ellas. Ahora quiero construir un archivo jar. Quiero construir 2 archivos jar que usan diferentes funciones principales como principal predeterminado.cómo configurar la clase principal predeterminada en java?

por ejemplo

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

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

¿Cómo lo hacen en NetBeans IDE?

Encontré la respuesta. U puede hacerlo fácilmente en netbeans: 1) haga clic derecho en project> properties> run> seleccione la clase frm y la lista desplegable. Tan simple en netbeans. Rocas de Netbeans!

+0

no funciona para mí. Lo configuro para la clase A, pero todavía está ejecutando la clase anterior. Yo creo que es un error. Es por eso que odio netbeans. Hace que las cosas simples sean difíciles. – Alex

+0

Esta respuesta funcionó para mí. Solo tuve que poner un main en la clase y NetBeans lo detectó y lo ejecutó –

+0

Para Eclipse (este aparece en Google): https://stackoverflow.com/a/12811633/1599699 – Andrew

Respuesta

19

En el archivo jar sólo podría añadir a su manifest.mft

Main-Class : A 

el archivo JAR A continuación, sería ejecutable y llamarían la principal correcta.

sobre cómo hacer esto en Netbeans se puede ver en esto: Producing executable jar in NetBeans

1

Puede establecer el atributo de clase principal en el manifiesto del archivo jar para apuntar a qué archivo que desea ejecutar automáticamente.

0

La mejor manera es manejar esto en un script Ant. Puede crear 2 tareas diferentes para los 2 archivos jar. Especifique la clase A como la clase principal en el archivo manifst para el primer jar. de manera similar, especifique la clase B como la clase principal en el archivo de manifiesto para el segundo jar.

puede ejecutar fácilmente las tareas Ant de Netbeans.

3

Si está creando 2 archivos JAR ejecutables, cada uno tendrá su propio archivo de manifiesto, y cada archivo de manifiesto especificará la clase que contiene el método main() que desea utilizar para iniciar la ejecución.

En cada archivo JAR, el manifiesto habrá un archivo con la siguiente ruta/nombre dentro de la jarra - META-INF/MANIFEST.MF

Hay maneras de especificar los archivos alternativamente nombradas como el manifiesto de un JAR utilizando el JAR command-line parameters.

La clase específica que desea utilizar se especifica utilizando Main-Class: package.classname dentro del archivo META-INF/MANIFEST.MF.

En cuanto a cómo hacer esto en Netbeans - no estoy seguro de la parte superior de mi cabeza - Suelo usar IntelliJ y/o Eclipse y generalmente construyo el JAR a través de ANT o Maven de todos modos.

1

Si las dos jarras que desea crear son básicamente iguales, y la única diferencia es la clase principal que se debe iniciar desde cada una, puede colocar todas las clases en una tercera jarra. Luego crea dos jarras con solo un manifiesto en cada una. En el archivo MANIFEST.MF, nombre la clase de entrada con el atributo Main-Class.

Además, especifique el atributo Class-Path. El valor de esto debería ser el nombre del archivo jar que contiene todo el código compartido. A continuación, despliegue los tres archivos jar en el mismo directorio. Por supuesto, si tiene bibliotecas de terceros, también se pueden enumerar en el atributo de ruta de clase.

5

Asumiendo tu mi.tarro tiene una clase 1 y clase 2 con un principal definido en cada uno, sólo puede llamar a Java como esto:

java my.jar class1 

java my.jar class2 

Si es necesario especificar otras opciones para Java sólo asegúrese de que están delante del my.jar

java -classpath my.jar class1 
+5

'java-classpath my.jar class1' le permite ejecutar JAR que en realidad no tienen un conjunto de 'Main-Class'. –

19

Haga clic derecho en el nodo del proyecto en la ventana Proyectos y elija Propiedades del proyecto. entonces encuentra run, allí puedes configurar tu clase principal ,, ** en realidad lo obtuve de netbeans ayuda por defecto

+0

buen atajo para hacer esto – toxicate20

0

Como comentario, tuve que permitir que un cliente ejecutara una clase en un jar que significaba que el manifiesto el archivo no se pudo modificar (no se podía esperar que hicieran eso). Gracias a la entrada de Anthony y el comentario de samy-Delux, esto es lo que el cliente puede ahora ejecutar para acceder a la principal de la clase específica:

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

Pulse F11 para construir y la ejecución del programa. Una vez que ejecutas el programa, tendrás una lista de clases. Seleccione su clase principal de la lista y haga clic en Aceptar para ejecutar.

8

puede hacer clic derecho en el proyecto, seleccione "configurar configuración" y luego "Personalizar", a partir de allí puede elegir su clase principal. ScreenShot

Cuestiones relacionadas