Para ejecutar el archivo de clase Java desde la línea de comandos, la sintaxis es:
java -classpath /path/to/jars <packageName>.<MainClassName>
donde packageName (generalmente comienza con com
o org
) es el nombre de la carpeta donde está presente su archivo de clase.
Por ejemplo, si el nombre de su clase principal es Aplicación y el nombre del paquete Java de su aplicación es com.foo.app
, entonces su archivo de clase debe estar en la com/foo/app
carpeta (carpeta separada para cada punto), por lo que ejecuta su aplicación como:
$ java com.foo.app.App
Nota: $
indica el indicador de shell, ignórelo al escribir
Si la clase no tiene ningún package
nombre definido, sólo tiene que ejecutar como: java App
.
Si tiene otras dependencias de jar, asegúrese de especificar su parámetro classpath con -cp
/ -classpath
o usando la CLASSPATH
variable que apunta a la carpeta con sus archivos jar / war / ear / zip / class . Entonces, en Linux, puede prefijar el comando con:, CLASSPATH=/path/to/jars
en Windows, debe agregar la carpeta a la variable del sistema. Si no se establece, la ruta de la clase de usuario consta del directorio actual ( .
).
Ejemplo practico
Dado que hemos creado un proyecto de muestra usando Maven como:
$ mvn archetype:generate -DgroupId=com.foo.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
y hemos compilado nuestro proyecto mvn compile
en nuestro my-app/
directorio, generará nuestro archivo de clase en target/classes/com/foo/app/App.class
.
Para ejecutarlo, podemos especificar la ruta de clase a través -cp
o ir directamente a ella, verifique los ejemplos a continuación:
$ find . -name "*.class"
./target/classes/com/foo/app/App.class
$ CLASSPATH=target/classes/ java com.foo.app.App
Hello World!
$ java -cp target/classes com.foo.app.App
Hello World!
$ java -classpath .:/path/to/other-jars:target/classes com.foo.app.App
Hello World!
$ cd target/classes && java com.foo.app.App
Hello World!
Para verificar su clase y el nombre del paquete, puede usar la herramienta de desensamblaje de archivos de clase Java, por ejemplo:
$ javap target/classes/com/foo/app/App.class
Compiled from "App.java"
public class com.foo.app.App {
public com.foo.app.App();
public static void main(java.lang.String[]);
}
Nota: javap
no funcionará si el archivo compilado se ha ofuscado.