Ejecutar .jar

La práctica que llevo haciendo durante estos días y sobre la cual te he preguntado varias veces, la terminé pero tengo problemas para ejecutarla.
En el output me sale este mensaje:
Init:
Deps-jar:
Compile:
Not copying the libraries.
To run this application from the command line without Ant, try:
java -jar "C:\Nonograma\dist\Nonograma.jar"
jar:
BUILD SUCCESSFUL (total time: 0 seconds)
Y mi práctica me dice que tiene que ser de esta forma.
El programa se deberá poder invocar desde la línea de comandos de Linux (ó
Windows) con la siguiente sintaxis:
tiny_mce_markergt; java nonograma [-i] [-h] [fichero]
Los argumentos son:
-i: Indica que se trata de resolver la variante inversa
-h: Muestra una ayuda
El programa leerá los datos del fichero que se le pase como argumento. Ej:
C:\> java nonograma valores.txt <ENTER>
C:\> java nonograma -i dibujo.txt <ENTER>
o también desde la entrada estándar (stdin):
C:\> java nonograma < valores.txt <ENTER>
o también usando pipe (tubería)
C:\> type valores.txt | java nonograma <ENTER>
Y saca por la salida estándar la matriz resuelta.
Los programas que no permitan esta funcionalidad estarán suspensos.
Mi problema está en que no se ejecuta y lo he probado de todas las formas posibles y revisé la práctica varias veces y no tiene fallos aparentes, ¿cómo puedo ejecutarlo?.
Muchas gracias de nuevo, que el terminar o no esta práctica repercute en terminar este año o el que viene la carrera.

1 respuesta

Respuesta
1
Otia que responsabilidad..
Bueno, por lo que parece, no esta encontrando bien un .class o un .jar
lo que tienes que hacer es ver si te ha creado un .jar con todas las clases. Ten en cuenta que solo se puden ejecutar con el comando java el .class que lleve dentro el método main. Para ejecutar los .jar necesitas teclear java -jar
Así pues, en el mismo directorio en el que se te compilan las clases, intenta ejecutar java y el nombre de tu programa
Ya me contaras
Le di a Run Main Project y este es mi nuevo mensaje y no conozco el porque de esa Excepción.
Init:
deps-jar:
Compile:
run:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at nonograma.Main.main(Main.java:17)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
---------------------
La clase es esta.
public class Main {
    public static void main(String[] args) {
        if (args.length > 3) {
            Inversa.ayuda(); }
        else if ((args[0].equals("-i") ) || (args[1].equals("dibujo.txt"))) {
            Entrada_Salida.EntradaInversa();
            Inversa.inversa(Entrada_Salida.matriz);
            Entrada_Salida.SalidaInversa(); }
        else if (args[0].equals("valores.txt")) {
            Entrada_Salida.Entrada();
            Vectores.inicializarVectores();
            Backtraking.hallarValorMax(Entrada_Salida.filas);
            Backtraking.resolver(Entrada_Salida.matriz);
            Entrada_Salida.Salida(); }
        else if ((args[0].equals("-h"))||(args[1].equals("-h"))) {
            Inversa.ayuda();
        }
        else {
            Inversa.ayuda(); }
    }
Mire y sí tenía los .class de cada clase, pero solo tengo un .jar que es el general "Nonograma.jar"
Gracias.
Este error si que es más claro y típico, te esta diciendo que estas accediendo a un elemento del array en una posición que no existe. En este caso, como el único array que manejas es el de args, que lo rellena el programa con los argumentos que tu escribes cuando ejecutas el programa, esta vacío en una de las posiciones a la que accede, posiblemente args[1].
Pon un if que maneje el numero exacto de elementos del args para que no te pase eso

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas