java - ruta - Cómo ejecutar un archivo JAR
obtener la ruta de mi proyecto en java (12)
Creé un archivo JAR como este:
jar cf Predit.jar *.*
Ejecuté este archivo JAR haciendo doble clic en él (no funcionó). Así que lo ejecuté desde el prompt de DOS así:
java -jar Predit.jar
Lanzó excepciones de "Falló para cargar la clase principal". Así que extraje este archivo JAR:
jar -xf Predit.jar
y ejecuté el archivo de clase:
java Predit
Funcionó bien No sé por qué el archivo JAR no funcionó. Por favor, dime los pasos para ejecutar el archivo JAR
Agregando a otras respuestas
Si el archivo jar no tiene ningún punto de entrada y solo desea proporcionar la clase manualmente ,
java -jar <jar file location> <class to run in jar>
para responder la pregunta, puede ser
java -jar Predit.jar Predit
Debe especificar una clase principal en el manifiesto del archivo jar.
El tutorial de Oracle contiene una demostración completa, pero aquí hay otra desde cero. Necesitas dos archivos:
Test.java:
public class Test
{
public static void main(String[] args)
{
System.out.println("Hello world");
}
}
manifest.mf:
Manifest-version: 1.0
Main-Class: Test
Tenga en cuenta que el archivo de texto debe finalizar con una nueva línea o retorno de carro. La última línea no se analizará correctamente si no termina con una nueva línea o retorno de carro.
Entonces corre:
javac Test.java
jar cfm test.jar manifest.mf Test.class
java -jar test.jar
Salida:
Hello world
Java
class Hello{
public static void main(String [] args){
System.out.println("Hello Shahid");
}
}
manifest.mf
Manifest-version: 1.0
Main-Class: Hello
En línea de comando:
$ jar cfm HelloMss.jar manifest.mf Hello.class
$ java -jar HelloMss.jar
Salida:
Hello Shahid
Para ejecutar jar, primero debes crear
bote ejecutable
entonces
java -jar xyz.jar
comando funcionará
Si no desea crear un manifiesto solo para ejecutar el archivo jar, puede hacer referencia a la clase principal directamente desde la línea de comando cuando ejecuta el archivo jar.
java -jar Predit.jar -classpath your.package.name.Test
Esto establece qué clase principal ejecutar en el archivo jar.
Si no desea tratar con esos detalles, también puede utilizar los asistentes jar de exportación de Eclipse o NetBeans.
Tengo esta estructura de carpeta:
D: / JavaProjects / OlivePressApp / com / lynda / olivepress / Main.class D: / JavaProjects / OlivePressApp / com / lynda / olivepress / press / OlivePress.class D: / JavaProjects / OlivePressApp / com / lynda / olivepress / olives / Kalamata .class D: / JavaProjects / OlivePressApp / com / lynda / olivepress / olives / Ligurian.class D: / JavaProjects / OlivePressApp / com / lynda / olivepress / olives / Olive.class
Main.class
está en el paquete com.lynda.olivepress
Hay otros dos paquetes:
com.lynda.olivepress.press
com.lynda.olivepress.olive
1) Cree un archivo llamado "Manifest.txt"
con dos líneas, primero con clase principal y una segunda línea vacía.
Main-Class: com.lynda.olivepress.Main
D: / JavaProjects / OlivePressApp / Manifest.txt
2) Crear JAR con Manifiesto y punto de entrada de clase principal
D: / JavaProjects / OlivePressApp> jar cfm OlivePressApp.jar Manifest.txt com/lynda/olivepress/Main.class com/lynda/olivepress/*
3) Ejecutar JAR
java -jar OlivePressApp.jar
Nota: com/lynda/olivepress/*
significa que incluye los otros dos paquetes mencionados anteriormente, antes del punto 1)
Tienes que agregar un manifiesto al jar, que le dice al tiempo de ejecución java cuál es la clase principal. Crea un archivo ''Manifest.mf'' con el siguiente contenido:
Manifest-Version: 1.0
Main-Class: your.programs.MainClass
Cambie ''your.programs.MainClass'' a su clase principal real. Ahora coloque el archivo en el Jar-file, en una subcarpeta llamada ''META-INF''. Puede usar cualquier utilidad ZIP para eso.
Un enfoque muy simple para crear archivos .class, .jar.
Ejecutando el archivo jar No hay necesidad de preocuparse demasiado por el archivo manifiesto. Hazlo simple y elgant.
Java sample Hello World Program
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Compilando el archivo de clase
javac HelloWorld.java
Creando el archivo jar
jar cvfe HelloWorld.jar HelloWorld HelloWorld.class
o
jar cvfe HelloWorld.jar HelloWorld *.class
Ejecutando el archivo jar
java -jar HelloWorld.jar
O
java -cp HelloWorld.jar HelloWorld
antes de ejecutar la comprobación de jar Clase principal: classname está disponible o no en el archivo MANIFEST.MF . MANIFEST.MF está presente en jar.
java -jar filename.jar
Eclipse Runnable JAR File
Crear un proyecto Java - RunnableJAR
- Si se utilizan archivos jar , agréguelos a la ruta de compilación del proyecto.
- Seleccione la clase que tenga main () mientras crea el archivo Runnable Jar.
Clase principal
public class RunnableMainClass {
public static void main(String[] args) throws InterruptedException {
System.out.println("Name : "+args[0]);
System.out.println(" ID : "+args[1]);
}
}
Ejecute el archivo Jar usando el programa java ( cmd ) proporcionando argumentos y obteniendo el resultado y visualización en la consola de eclipse.
public class RunJar {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
String jarfile = "D://JarLocation//myRunnable.jar";
String name = "Yash";
String id = "777";
try { // jarname arguments has to be saperated by spaces
Process process = Runtime.getRuntime().exec("cmd.exe start /C java -jar "+jarfile+" "+name+" "+id);
//.exec("cmd.exe /C start dir java -jar "+jarfile+" "+name+" "+id+" dir");
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream ()));
String line = null;
while ((line = br.readLine()) != null){
sb.append(line).append("/n");
}
System.out.println("Console OUTPUT : /n"+sb.toString());
process.destroy();
}catch (Exception e){
System.err.println(e.getMessage());
}
}
}
En Eclipse para encontrar atajos :
Ayuda ► Contenido de la ayuda ► Guía de usuario de desarrollo Java ► Referencias ► Menús y acciones
java -classpath Predit.jar your.package.name.MainClass