Aprende Java Aprende Php Aprende C++ Aprende HTML 5 Aprende JavaScript Aprende JSON Aprende MySQL Aprende SQLServer Aprende Visual Basic 6 Aprende PostgreSQL Aprende SQLite Aprende Redis Aprende Kotlin Aprende XML Aprende Linux VSC Aprende Wordpress Aprende Laravel Aprende VueJS Aprende JQuery Aprende Bootstrap Aprende Netbeans Aprende Android
Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube Sigueme en TikTok Sigueme en Whatsapp
Home / Ejercicios / Java / Ejecutar JAR con parámetros de entrada

Ejecutar JAR con parámetros de entrada

Por jc mouse martes, diciembre 18, 2012

Java nos permite pasar parámetros a una aplicación empaquetada en un *.JAR mediante el MAIN de nuestro programa, pero claro esta, debemos preparar a nuestro programa para que acepte y utilice esas variables, en este tuto implementaremos un programa sencillo que solicitara dos parámetros de entrada los cuales mostrara en pantalla, caso contrario nos muestra un mensaje de error.

Que utilizaremos y que necesitamos saber.

  • IDE Netbeans en cualquiera de sus versiones
  • Conocer del manejo de la consola de windows y de sus comandos MS-DOS

Comencemos.

1. Creamos un nuevo proyecto en netbeans el cual constara de su main respectivo y de un JFrame que llamaremos «interfaz.java»

Sample
– Sample.java
– interfaz.java

2. El Main: Esta clase ejecuta nuestra aplicación java, pero también esta clase tiene como parámetros de entrada un Array de tipo String, es este array el cual contiene las variables que vienen desde el exterior.

Utilizararemos un TRY-CATCH para gestionar los errores que puedan ocurrir (no enviar parámetros)  y caso contrario, se mostrara la interfaz con los parámetros de entrada. Puede verse que en la  forma de llamar a nuestra interfaz, incluimos la variable ARGS, nuestro JFrame creado desde netbeans, no tiene esa variable declarada y por tanto nos dará error, debemos modificar la clase «interfaz.java».

import javax.swing.JOptionPane;
/**
 * @website http://jc-mouse.net/
 * @author Mouse
 */
public class Sample {

    public static void main(String[] args) {
        try{          
            //LLama a la interfaz pasando el array de parametros que entra por pa lariable args
            new interfaz( args ).setVisible(true);            
        }
        catch ( ArrayIndexOutOfBoundsException e )
        {            
            //si no existen parametros muestra error y termina programa
            JOptionPane.showMessageDialog(null,"Error: No se pasaron argumentos. Necesita 2");
            System.exit(0);
        }
    }
}

3. la clase interfaz.java:

Nuestra interfaz consta de un JTextArea (nombre: jTextArea1) donde mostraremos los parámetros de entrada, eso con respecto al diseño exterior, pero como ya dijimos más arriba, debemos modificar la clase en si.

Lo primero que cambiaremos sera el constructor de clase, por defecto, al crear la clase desde netbeans, tiene la siguiente forma:

 public interfaz() {
    initComponents();
 }

Cambiaremos este constructor por:

 public interfaz( String[] args ) {
        initComponents();
        //Se colocan los paramemtros de entrada en el JTextArea
        this.jTextArea1.setText(""
                + "Parametro 1: " + args[0] +"\n"
                + "Parametro 2: " + args[1]
                );
    }

Como se ve, añadimos el array ARGS como parámetro de entrada en el constructor, ademas colocamos las variables del array en el JTextArea. args[0] para el primer elemento, args[1] para el segundo y así sucesivamente.

Pero aun nos falta modificar algo mas, bajamos un poco y buscamos en el editor la siguiente instrucción.

     /* Create and display the form */
     java.awt.EventQueue.invokeLater(new Runnable() {
         public void run() {         
                new interfaz().setVisible(true);
         }

Esta instrucción es la que llama a nuestro JFrame y que seguramente te estará mostrando error, cambiamos un poco su forma, aumentamos las siguientes lineas de código:

        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                String args[] = new String[2];
                new interfaz( args ).setVisible(true);
            }
        });

Explicación: Añadimos un Array con una longitud de 2 elementos, si quisiéramos más valores , solamente modificamos su tamaño.

esta nuevo ARRAY, se lo pasamos al constructor como parámetro de entrada y ya esta todo listo.

Eso es todo, compilamos y construimos el JAR, si lo ejecutamos directamente desde el IDE, nos saldrá una ventana de alerta que nos dice que no tienen parámetros de entrada, eso es lo que declaramos en la clase MAIN.

Para ejecutar esta JAR y pasar los parámetros de entrada, utilizaremos un archivo BATCH el cual ejecutara el JAR desde la linea de comandos y al cual le añadimos los parámetros de entrada a continuación del nombre de la aplicación, de la siguiente forma.

java -jar Sample.jar "Hola Mundo" "Adios Mundo Cruel"

Ahora para ejecutar el archivo *.BAT hay diferentes formas, ya sea directamente desde la consola o creando un script o un exe en .NET por ejemplo, las opciones son varias. En este ejemplo utilizamos la consola de windows.

dale play

TIPS.

SI queremos ejecutar este ejemplo desde el IDE de netbeans, debemos, hacer clic derecho en el proyecto e ir a sus PROPIEDADES, después buscamos la opción RUN y donde dice Arguments (agumentos), se añaden los parámetros de entrada, separados por un espacio cada uno de ellos. Despues ya ejecutamos la aplicación como hacemos siempre.

Ejemplo del tutorial AQUI

Tags

Artículos similares

Hola mundo en Netbeans

De los diferentes IDE’s que existen para crear aplicaciones para android, lamentablemente Netbeans es una de las m[...]

Obtener Metadatos de un ResultSet

En este post mostramos un ejemplo de uso de la interface ResultSetMetaData el cual se extiende Wrapper que es una interf[...]

Migrar proyecto Netbeans a Eclipse

En ocasiones por motivos cualesquiera que sea queremos pasar proyectos hechos en netbeans a Eclipse, Netbeans cuenta con[...]

Agrega imagenes en un JComboBox

Para agregar imágenes a un JComboBox, partiremos de un proyecto Netbeans con la siguiente estructura: Tenemos dos clases[...]

Bloquear orientación de la pantalla

Cuando escribimos aplicaciones para android debemos tener cuidado al diseñar la interfaz en la posición que tomaran los[...]

Juego de memoria para niños (Código Fuente)

En un post anterior, desarrollamos un swing para simular un efecto FLIP  y recibí algunos mensajes pidiéndome un ejemplo[...]