xenial repositorio paquete java

java - repositorio - ubuntu packages xenial



¿Cómo compilar paquetes en java? (4)

Cuando esté intentando compilar la clase java, use la opción ''-d'' (destino) para especificar dónde se deben ubicar los archivos .class.

javac -d "classes" AccountBalance.java

y cuando ejecute su programa, asegúrese de que esa misma carpeta esté incluida en su ruta de clase:

java -classpath "classes" MyPack.AccountBalance

He escrito un programa de paquete simple:

//A simple package package MyPack class Balance { String name; double bal; Balance(String n, double b) { name=n; bal=b; } void show() { if(bal<0) System.out.println("-->"); System.out.println(name+ ": $:" +bal); } } class AccountBalance { public static void main(String args[]) { Balance current[]=new Balance[3]; current[0]=new Balance("A.K.Juwatkar",123.123); current[1]=new Balance("A.P.Dhoke",345.67); current[2]=new Balance("Anil Sarang",100.98); for(int i=0;i<3;i++) current[i].show(); } }

Estoy usando Ubuntu 10.04 y cuando lo compilo usando

java MyPack.AccountBalance

Recibo el siguiente mensaje:

Exception in thread "main" java.lang.NoClassDefFoundError: MyPack/AccountBalance Caused by: java.lang.ClassNotFoundException: MyPack.AccountBalance at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:205) at java.lang.ClassLoader.loadClass(ClassLoader.java:321) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) Could not find the main class: MyPack.AccountBalance. Program will exit.

¿Qué está mal? Por favor, ayúdame. He instalado openjdk, ¿necesito instalar algo más? Estoy usando Ubuntu 10.04, por favor ayúdame


Intente crear la carpeta llamada MyPack y mueva los archivos .class en ella o use la siguiente línea de comandos para compilar el código java y mueve los archivos .class a la carpeta MyPack .

javac YourFileName.java -d .

y correr usando

java MyPack.AccountBalance

Echa un vistazo a la herramienta javac

Desde la herramienta doc: De forma predeterminada, el compilador coloca cada archivo de clase en el mismo directorio que su archivo fuente. Puede especificar un directorio de destino independiente con -d (consulte Opciones, a continuación).

y tutorial del package .


Lo mejor es compilar y ejecutar las clases desde fuera de los paquetes:

Primero compilas con javac:

$javac MyPack/AccountBalance.java

esto creará un nuevo archivo en la carpeta MyPack llamada AccountBalance.class

entonces puedes ejecutarlo:

$java MyPack.AccountBalance

Por cierto: no se recomienda que los nombres de los paquetes comiencen con mayúscula.


Si está compilando y ejecutando con frecuencia a través de los comandos javac y java , use

javac MyJavaClass.java && java MyJavaClass

Esto compilará la clase y luego ejecutará la clase que acaba de compilar.

Nota: Reemplace && con ; si utiliza Windows PowerShell.