Run .class from console

0

I'm trying to run a .class from the windows console, the folder structure where I have the classes is the following:

C:
\Programa
        \com
            \index
                Clase.class

The Class class:

public class Clase {


    public static void main(String[] args) {

        System.out.println("Hola");

    }
}

From the cmd:

C:\Programa> java -cp com/index/Clase

When executing this sentence I get this message:

Sintaxis: java [-options] class [args...]
           (para ejecutar una clase)
   o  java [-options] -jar jarfile [args...]
           (para ejecutar un archivo jar)
donde las opciones incluyen:
    -d32          usar un modelo de datos de 32 bits, si está disponible
    -d64          usar un modelo de datos de 64 bits, si está disponible
    -server       para seleccionar la VM "server"
                  La VM por defecto es server.

    -cp <ruta de acceso de búsqueda de clases de los directorios y los archivos zip/jar>
    -classpath <ruta de acceso de búsqueda de clases de los directorios y los archivos zip/jar>
                  Lista separada por ; de directorios, archivos JAR
                  y archivos ZIP para buscar archivos de clase.
    -D<nombre>=<valor>
                  definir una propiedad del sistema
    -verbose:[class|gc|jni]
                  activar la salida verbose
    -version      imprimir la versión del producto y salir
    -version:<valor>
                  Advertencia: Esta función está anticuada y se eliminará
                  en una versión futura.
                  es necesario que se ejecute la versión especificada
    -showversion  imprimir la versión del producto y continuar
    -jre-restrict-search | -no-jre-restrict-search
                  Advertencia: Esta función está anticuada y se eliminará
                  en una versión futura.
                  incluir/excluir JRE privados de usuario en la búsqueda de versión
    -? -help      imprimir este mensaje de ayuda
    -X            imprimir la ayuda sobre las opciones que no sean estándar
    -ea[:<nombre_paquete>...|:<nombre_clase>]
    -enableassertions[:<nombre_paquete>...|:<nombre_clase>]
                  activar afirmaciones con la granularidad especificada
    -da[:<nombre_paquete>...|:<nombre_clase>]
    -disableassertions[:<nombre_paquete>...|:<nombre_clase>]
                  desactivar afirmaciones con la granularidad especificada
    -esa | -enablesystemassertions
                  activar afirmaciones del sistema
    -dsa | -disablesystemassertions
                  desactivar afirmaciones del sistema
    -agentlib:<nombre_bib>[=<opciones>]
                  cargar la biblioteca de agente nativa <nombre_bib>, como -agentlib:hprof
                  véase también -agentlib:jdwp=help y -agentlib:hprof=help
    -agentpath:<nombre_ruta_acceso>[=<opciones>]
                  cargar biblioteca de agente nativa con el nombre de la ruta de acceso completa
    -javaagent:<ruta_acceso_jar>[=<opciones>]
                  cargar agente de lenguaje de programación Java, véase java.lang.instrument
    -splash:<ruta_acceso_imagen>
                  mostrar una pantalla de presentación con la imagen especificada
Consulte http://www.oracle.com/technetwork/java/javase/documentation/index.html para obtener más información.

I do not understand the reason why I do not run the class, do you hear this error?

    
asked by nachfren 15.07.2018 в 11:19
source

2 answers

1

With -cp you simply specify the classpath , that is, where the virtual machine will look for the classes and packages that you need to run your program. The last parameter that you pass to java is the name of the class (package included) that you want to execute.

Try with:

java -cp . com.index.Clase 
    
answered by 15.07.2018 / 11:48
source
1
  

java -cp com / index / Class

  • cp indicates that you pass the classpath (a list of directories and / or jars). By default its value is the current directory, so you run from C:\Programa you do not need it, and if you run from another location it's -cp C:\Programa .

  • The route to execute is not passed as the route to the class, but as the full name of the class in java. That is, [packge1].[package2]...[Clase] , or com.index.Clase .

    The idea is that with the CP you indicate where the JVM should load the classes and then you indicate it by java name (not by route) of which of the classes should execute the main .

  • So

    java [-cp C:\Programas] com.index.Clase
    
        
    answered by 15.07.2018 в 11:49