Soy consciente de que los archivos jar deben tener un atributo manifest.mf Main-Class: para tener un punto de entrada y hacer que el archivo jar sea ejecutable. Ahora, tengo un archivo jar que he creado a continuación. Las clases son parte del paquete de burritos. Mi archivo MANIFEST.MF se ve así:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.1
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path:
X-COMMENT: Main-Class will be added automatically by build
Main-Class: burrito.Main
, y cuando intento compilar y ejecutar a través de lo siguiente:
jar -cvf Burrito.jar Customer.class Main.class Server
.class Store.class MANIFEST.MF
*added manifest
adding: Customer.class(in = 2800) (out= 1424)(deflated 49%)
adding: Main.class(in = 1147) (out= 757)(deflated 34%)
adding: Server.class(in = 3954) (out= 2094)(deflated 47%)
adding: Store.class(in = 3950) (out= 2190)(deflated 44%)
adding: MANIFEST.MF(in = 203) (out= 158)(deflated 22%)*
Yo obtengo:
Burrito.jar
*java -jar Burrito.jar
no main manifest attribute, in Burrito.jar*
He intentado de varias formas, también probando el modificador -m (cvfm). He intentado lo siguiente:
java -cp Burrito.jar burrito.Main
tanto como
java -cp Burrito.jar Main
, que ambos me dicen Error: no se pudo encontrar o cargar la clase principal
He estado estudiando detenidamente los foros y parece que no puedo 'Google' para encontrar una solución aquí. Por supuesto, el jar de Netbeans funciona, pero necesito crear el mío propio. He echado un vistazo al frasco de Netbeans y veo que tengo dos carpetas, burrito y META-INF. Por supuesto, el archivo de manifiesto está en la carpeta META-INF, y la carpeta de burrito contiene los archivos de clase. No estoy seguro de imitar esto exactamente, y estaría feliz de simplemente hacer que este programa se ejecute.
¿Algún consejo o sugerencia?
Quieres algo como esto:
jar -cvfm Burrito.jar MANIFEST.MF burrito/Customer.class burrito/Main.class burrito/Server.class burrito/Store.class
El primer argumento después de las opciones corresponde a la f
bandera (el archivo a crear), y el segundo argumento corresponde a la m
bandera (el archivo de manifiesto), y todos los demás argumentos son los archivos para agregar al JAR. Debe asegurarse de que la estructura de carpetas en el JAR coincida con el paquete de Java, por lo que si burrito.Main
es la clase, entonces la necesita burrito/Main.class
en el JAR, y de manera similar para las otras clases.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras