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.