paquetes - ejecutar.class java
Ejecutando java en el paquete desde la lĂnea de comandos (5)
Esto se debe a que si está declarando un paquete en su archivo java, entonces el compilador JAVA cree que tiene la misma arquitectura de carpeta en su sistema. En su caso, el compilador Java que busca One como paquete y luego test.class. O, para ser muy específico, mire dentro de su archivo .class para ver qué ruta está buscando. Por favor, eche un vistazo a la imagen de abajo (en mi caso uso Hello y Tester)
Como puede ver, la ruta en la imagen es Hello / Tester (mi ejemplo de caso), por lo que la arquitectura debería ser como Hello-> Tester.
Y si no tiene la misma arquitectura y desea crear la misma mientras compila, use el comando javacp.
He leído las preguntas publicadas anteriormente. Algunos son vagos y ninguno resolvió mi problema, así que me veo obligado a preguntar nuevamente.
Tengo dos clases simples,
package One;
import One.Inner.MyFrame;
public class test
{
public static void main(String args[])
{
MyFrame f= new MyFrame();
}
}
Y la otra clase es,
package One.Inner;
import java.awt.*;
import javax.swing.*;
public class MyFrame extends JFrame
{
public MyFrame()
{
setPreferredSize(new Dimension(400,560));
setVisible(true);
}
}
Estoy en la carpeta base "básica" en Windows cmd. Yo compilo usando
basic> javac *.java -d .
Se crea una carpeta y una subcarpeta.
cd One
basic/One> java test
Esto genera un gran conjunto de errores. Muchas respuestas dirigidas a especificar la ruta completa que no funcionó. Mis clases están en One, por lo que especificar One usando -cp tampoco funcionó.
La siguiente línea de código Haralan Dobrev resuelve el problema.
java -cp ../ one.Test
Lo ejecutarías como:
java One.Test
... pero desde el directorio raíz ( basic
), no desde el directorio One
. Siempre se especifica el nombre de clase completo .
Ah, y los nombres de los paquetes en Java deberían estar en minúsculas, por lo que deberían ser one
y one
one.inner
, no One
y One.Inner
. One.Inner
. Solo una convención, pero que casi todos siguen.
Si el directorio es:
basic/One
Ejecute java desde el directorio base del paquete:
basic>java One.test or basic>One.test <optional arguments>
(Lo ideal sería que el paquete fuera en minúsculas y en mayúsculas):
basic>java one.Test
Si recibe mensajes de ''no existe'', entonces el comando java no puede encontrar las clases a las que hace referencia en su clase. Puede señalarlos con la opción -cp (''.'' Significa ''aquí'', y puede agregar tantos lugares como desee dividido por '';'' en Windows y '':'' en Linux).
basic>java -cp . one.Test
or
basic>java -cp .;../../someJar.jar;c:/someDirectory/classesDirectory one.Test
al crear una clase con un paquete, si desea ejecutarlo desde cmd, debe crear un directorio con el mismo nombre del paquete; coloque el .class en él y luego puede ejecutarlo fácilmente; por ejemplo, creó una clase con el nombre "one" y esta clase en el paquete con el paquete de nombres, debe ejecutar estos comandos
1 javac one.java
después de la compilación creó un directorio con el paquete de nombres, después de eso ejecute este comando
2 java pack.one
Nota:
todo esto debe hacerse en el directorio de trabajo actual y el nombre "uno" lo elegí aquí como nombre de archivo y nombre de clase principal. Todos sabemos que el primer nombre utilizado en el primer comando es el nombre de archivo y el segundo es el nombre de clase principal