Han me envía un código de Java (escrito con Eclipse) que se produjo en una postal. Cuando descomprimido, que tenía los siguientes archivos:
- .settings
- org.eclipse.jdt.core.prefs
- bin
- anon
- Discovery.class
- Main$1.class
- Main.class
- Server.class
- src
- anon
- Discovery.java
- Main.java
- Server.java
- .classpath
- .project
- jssc.jar
Cuando trato de ejecutar el jssc.jar desde la línea de comandos, aparece un mensaje que dice que ningún atributo principal de manifiesto. He descomprimido el archivo JAR para ver el manifiesto y lo que contenía:
- JSSC: con una gran cantidad de archivos de "clase" en el interior
- libs: con las carpetas que contienen los archivos para cada sistema operativo
- META-INF: con un manifiesto de archivo
Por lo tanto, parece que hay un manifiesto. Sin embargo, cuando lo abro aparece:
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.6.0_45-b06 (Sun Microsystems Inc.)
X-COMMENT: Main-Class will be added automatically by build
¿Qué tengo que hacer? ¿Cómo agrego el archivo jar a BuildPath?
Si se trató de ejecutarlo con el comando: java -jar jssc.jar
y no tratar de usar el siguiente comando
java -cp jssc.jar anon.Main
Lo anterior le dirá JVM para cargar jssc.jar en su ruta de clase y luego ejecutar el método principal en la clase principal.
Actualización: si el programa Java necesita más clases que existen en las clases jssc.jar ellos añaden en la opción -cp con ';' carácter separador.
Por ejemplo:
java -cp jssc.jar;bin/anon/;libs/a.jar;libs/;.... anon.Main