Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

lunes, 14 de febrero de 2011

Ejecutar el RMA (Remote Monitoring Agent) en línea de comandos -Linux y/o Windows

El RMA es una herramienta que nos permite iniciar,suspender, reiniciar y matar un agente JADE; entre otras cosas.

El RMA lo podemos descargar de la página oficial de JADE, (tienen que registrarse previamente para poder proceder a descargarlo y pueden bajar todos los archivos con el jadeAll.zip o bien si sólo quieren el RMA descarguen el jadeBin.zip) y una vez descargado lo descomprimiremos y guardamos en una carpeta, la carpeta donde voy a guardarlo será JADE1

Pues bien, ahora que ya lo tenemos en nuestra carpeta ahora nos dispondremos a abrir una línea de comandos (o terminal para los Linuxeros) y mediante los comandos nos posicionaremos en la carpeta donde hemos descomprimido nuestro archivo descargado y posteriormente entraremos a la carpeta descomprimida.

Si han descomprimido la carpeta con el mismo nombre que tenía el comprimido entonces su carpeta debería tener un nombre parecido a este 'JADE-bin-4.0.1' o simplemente 'jade' (Si tienes problemas o dudas, consulta la nota que está al final).

SUGERENCIA: Para efectos prácticos, les recomiendo que todo esto lo hagan sobre el Escritorio (desktop), esto con el fin de ahorrar tiempo al momento de cambiar y redireccionar rutas en la línea de comandos y/o terminal, o bien, para cuando todo esto es sólo para alguna tarea de alguna materia.

Aquí les dejo una tabla de los comandos para posicionarse en un directorio tanto en Windows como en Linux.
Comando en: Windows Linux Ejemplo
Ir a una ruta hija cd cd cd Desktop
Regresar a ruta padre cd.. cd .. (espaciado) cd.. | cd ..
Mostrar directorio dir ls dir | ls



 Pues bueno... ahora que estamos dentro de la carpeta descomprimida nos posicionaremos en la carpeta jade (cd jade) y posteriormente a la carpeta lib (cd lib).








Ahora con el siguiente comando (tanto en Linux como en Windows sirve) invocaremos al RMA(cuiden  mayúsculas y minúsculas):

java -cp jade.jar jade.Boot -gui

Si esto les da algún error o muestra un mensaje relacionado con el host entonces escriban:

java -cp jade.jar jade.Boot -gui -host 127.0.0.1








Con esto el RMA iniciará...

Una vez que se haya abierto ahora podremos disponer tambiénde 4 herramientas que nos proporcionan, las más usadas son la de el envío de mensajes ( con Dummy Agent) y el Agente Sniffer (sniffer Agent) el cual puede ver los mensajes entre los agentes que uno desee.

NOTA: NO IMPORTA EL NOMBRE QUE LE DEN A SU CARPETA DESCOMPRIMIDA, LO IMPORTANTE ES ENCONTRAR Y POSICIONARSE EN LA CARPETA "lib" YA QUE DENTRO DE ESTA SE ENCUENTRA EL "jade.jar". PARA NO PERDERSE PUEDEN ABRIR LA CARPETA DESDE EL MISMO ESCRITORIO Y VER LA RUTA EN LA BARRA DE DIRECCIONES.










Espero les sirva de algo, ¡Saludos!

domingo, 2 de enero de 2011

Ciclo for-each en java

"En algún sitio, algo increíble espera ser descubierto..."

En lenguajes como Python, Php, entre otros, existe un ciclo denominado "for each", lo que hace este ciclo es asignar el valor de una colección a una variable.
Este ciclo fue implementado en java a partir de la versión 5 y aunque se generan los mismos resultados que un for normal, su sintáxis es más sencilla.
   for (tipo variable : colección)

Como observamos, creamos el ciclo for  y dentro de este declaramos la variable del tipo de la colección seguida de dos puntos y por último colocamos la colección de datos(Vectores, Listas ligadas, etc...).

Veamos un ejemplo:

public class CicloFor
{
 //declaramos un arreglo estático
   static String vector[ ]={"Este es " , " un ejemplo del " , " ciclo for-each"};
  public static void main(String [ ]args)
     {
         for(String salida : vector)
             System.out.print(salida);//imprimimos y el resultado se muestra en una sola línea
             System.out.println( );
    } 
}//fin de la clase

El resultado es el siguiente:

 Como se habran dado cuenta,  lo que hace el ciclo es asignar en la variable cada valor que contiene el vector "vector" de manera automática. Lo cual también es equivalente a que hicieramos esto:


public class CicloFor
{
 //declaramos un arreglo estático
   static String vector[ ]={"Este es " , " un ejemplo del " , " ciclo for-each" };
public static void main(String [ ]args)
  {
         for(int i= 0; i < vector.length ; i ++) 
             System.out.print( vector[ i ] );
             System.out.println( );
  } 
}//fin de la clase




Este ciclo nos ahorra ciertas cosillas, al mismo tiempo que nos evita posibles errores de programación tales como errores de cálculo en los tamaños de las colecciones.

lunes, 27 de diciembre de 2010

Vectores, arrays estáticos en Java (Creación)

"Todo cabe en un jarrito, sabiéndolo acomodar..."

Muchas veces nos encontramos con la necesidad de agrupar muchos elementos en uno solo, los arrays, vectores o matrices son aquellos que nos permiten realizar tales actos.

¿Qué son los vectores?

Los Vectores no son más que un conjunto de elementos agrupados que tienen algo en común. Estos nos permiten agrupar en un sólo objeto más objetos, siempre y cuando pertenezcan al tipo del array creado.

Java nos permite dos formas de crear un vector: De forma estática y de forma dinámica.

He aquí primero de forma estática, ya que si se requiere algo dinámico es mejor usar "Listas Ligadas" (Que serán presentadas en otra entrada).


Creacion de un array:

tipo nombre_variable[ ]= new tipo[tamaño ];

Como verán es creado igual que cualquier otro objeto, se declara el tipo su nombre y se instancia, pero para que java entienda que es un vector, al nombre (antes o después) se colocan unos corchetes, y cuando se crea el objeto también se le asignan corchetes, dentro de los cuales se les asignará el tamaño, este tamaño va a ser el mismo durante su tiempo de ejecución, es por eso que se le dice estático.

Ejemplos:

En este ejemplo el vector se declara y posteriormente, en el constructor, se crea.

class miVector
{
  int vec[ ];//declaramos el objeto de tipo entero

  public miVector( )//Por lo regular los vectores se inicializan en el constructor
  {
    //creamos el objeto con un tamaño para 10 enteros, Aquí la variable no usa corchetes
     vec=new int[10];
   }
}


En este otro ejemplo se crea un vector y se construye en una sola línea

class miVector
{
public static void main(String[ ]args)
 {
   int vec[ ]=new vec[10];
 }
}
También podemos generar un vector con datos ya almacenados, los datos ya predefinidos se encontraran entre llaves y separados por comas:

Por ejemplo:
    int vector[ ]={0,1,2,3,4}// Un vector entero de 5 elementos
    String vec[ ]={"Armando","Beto","Carmen","Daniel"}// Vector cadena de 4 elementos

Por el momento mi intención era la de mostrar cómo se declara un arreglo, en la siguiente entrada mostraremos cómo posicionarse y cómo llenarlo.

sábado, 10 de julio de 2010

Definiciones de un método en Java

Bueno para adentrarnos en el mundo de la POO, especialmente en la programación en java, vamos a explicar qué es un método, cómo crearlo y como invocarlo.

¿Qué es un método? Un método generalmente es un conjunto o bloque de instrucciones o bien estos métodos pueden estar vacíos, los métodos pertenecen a las clases, de hecho todas las clases contienen al menos un método este método lo conocemos como el constructor de la clase.


¿Para qué nos sirven los métodos?-Los métodos son subrutinas o subprogramas que van a ser tratadas como las acciones que puede realizar un objeto o clase, en mi opinion un método facilita mucho las cosas de ver cómo funciona un programa ayudandonos a identificar más rápido un problema.

En su sintaxis más simple un método es creado de la siguiente forma
public void metodo1( )
{
Cuerpo del método, el cuerpo del método se delimita entre llaves
}
Lo que hacemos en este método es declarar que es un método público( public) es decir que puede ser accedido y usado por los objetos, que no retorna ningun valor (void, veremos como retornar valores) y por último los paréntesis vacíos indican que no tiene argumentos, los argumentos son valores los cuales son usados dentro del método.

¿Qué tipos de métodos existen?. Al menos hay cuatro tipos de métodos, estos son:
  1. Constructor: Este método es el predefinido en cualquier clase, aunque no lo creemos, al crear el objeto se llama al constructor, este se encarga de inicializar todo lo que exista en la clase. Clase obj=new Clase( );
  2. De Instancia: Aquellos que se obtienen de la clase al momento de crearla. obj.metodo1( );
  3. Estáticos: Aquellos que no necesitan crear un objeto, basta llamar a la clase que lo contiene Clase.metodo1( );. Pero si se llaman desde el main de la clase donde se creó, basta con escribir el nombre del método seguido de parentesis metodo1( );
  4. Main: este método es el que detecta java para ejecutar nuestra aplicación public static void main(String[]args).
¿Cuáles son sus características?: Los métodos tienen ciertas características como:
  1. Colocar argumentos los argumentos son valores que se colocan entre los paréntesis del método para que este trabaje con ellos, dentro de ellos se declaran los tipos de datos a recibir seguido de una variable asignada a ese tipo de dato, para asignar varios argumentos se coloca una coma "," entre cada argumento, .
public void metodo1(String cad, int x, int y)

{

código....

}




obj.metodo1("hola",23,50);

2.No devolver valores: Si no desea asignar valores y simplemente ejecutar un método la palabra reservada void nos indicará que el método no devolverá valor alguno


public void metodo( )
{
código....
}



3.Retorno de valores
El retorno o devolución de valores es un tema interesante, un método nos puede ayudar por ejemplo para hacer una operación y el resultado asignarlo en una variable.
Para que un método nos devuelva un valor, debemos de colocar el tipo de dato que nos debe de regresar.

public int metodo( )

{
return 3;

}
int variable=obj.metodo( );

De este método por el momento nos vamos a centrar en tres cosas:
  1. Primero, al colocarle el tipo de dato al método después de la palabra public le indicamos al compilador que el método debe de devolvernos un valor de tipo entero.
  2. Segundo, para devolver un tipo de dato utilizaremos la palabra return seguido del valor a devolver (en este caso devolveremos el número tres), podemos retornar variables o valores siempre y cuando sean iguales al tipo de dato que el método tenga asignado a.
  3. Tercero, no está por demás decir que el valor que retorne el método debe ser asignado de preferencia a una variable del mismo tipo del valor a obtener.

Cabe aclarar que en el constructor de las clases y en el método main nunca se retornará ningún valor.



Para finalizar los métodos son un punto importante en la POO como vimos hay formas muy variadas de crear un metodo, desde uno sencillo hasta uno complejo, lo importante es que los sepamos usar correctamente.

Saludos.

viernes, 2 de julio de 2010

Nuestro Primer programa en Java, leer datos

Bien en este programa voy a incluir muchas cosas que realmente tendrían que estar escritos por separado, pero es hora de iniciar la programacion.
Si han buscado en otros lados, el programa más sencillo sería uno donde muestre en pantalla: "Hola Mundo".

En este programa vamos a hacer algo un poco más avanzado pero que sea fácil de entender.
También importaremos una paqueteria que viene en el JDK (ya explicado en otra entrada, pero les recuerdo que es el JDK es el kit de herramientas que proporciona java para programar) que nos permitirá leos por teclado. Cualquier libreria o paqueteria se coloca al principio del programa

Así que abriremos un editor de texto (como un block de notas en windows o en Linux el gedit) y nuestro archivo será guardado con el nombre de la clase y con la extensión .Java (rograma1.JAVA )
He aquí el código, más abajo está la explicación detallada:


Importamos la librería para leer datos.
import java.io.*;
Ahora creamos el cuerpo de la clase, su cuerpo se delimita entre llaves { } y con la palabra clave class seguido del nombre de la clase:
class Programa1
{
Cuerpo de la clase aqui se escribirá el código escrito a continuación.
}

Declaramos una variable para almacenar datos de tipo String.
String cadena;


Ahora crearemos un método (también ya explicado anteriormente en otra publicacion) llamado capturar :

public void capturar()

{
Cuerpo del método, aquí se escribirá el código siguiente
}

Y mandamos a mostrar dos mensajes:
System.out.println("Bienvenido a Programar en Java");

System.out.print("Por favor escribe una palabra ");

Procedemos a pedir datos desde teclado utilizando un capturador de excepciones(esto se hace utilizando un 'try { } catch { }'no te preocupes lo explicaremos después), esto se hace aun dentro del método:

try

{
Cuerpo del try, aquí irá el código siguiente.
}

Clase para leer datos desde teclado, asignamos la clase a una variable del mismo tipo.

BufferedReader linea=new BufferedReader(new InputStreamReader(System.in) );

Y mediante un método de la clase anterior (readLine( ) ahora usado por la variable 'linea') asignamos el valor que obtenga del teclado a la variable 'cadena'.

cadena=linea.readLine();

Y lo mostramos

System.out.println("Escribiste la palabra "+cadena);

Ahora cerramos el try y creamos el 'catch(nombreDeLaExcepcion variable)', un 'catch' se coloca después del cuerpo del try y sirve para controlar una situación en caso de un error al momento de capturar datos.
catch(Exception e)

{


Cuerpo del catch. aquí irá el código siguiente.

}
En caso de que se presente un error al momento de escribir datos mostramos un mensaje.
System.out.println("Hubo un Error");

El cuerpo de nuestro método 'capturar( )' ha terminado.


Por último, el siguiente método es el que necesita java para ejecutar nuestro programa. Es importante que tenga esta estructura porque java lo identifica mediante el nombre 'main' indicando que es el que va a ejecutar.

public static void main(String[]args)

{
Cuerpo del método main.
}


En este método lo que haremos es definir una variable llamada 'objeto' que es de tipo "Programa1" y a esta variable se le asignará el objeto que en realidad es la clase con la que se define el tipo de dato de la variable 'objeto'. El objeto (en este caso "Programa1") se creará con el operador new colocando el nombre de la clase y seguido de unos paréntesis.


Después de haber asignado el objeto a la variable, esta podrá usar los métodos del objeto, en este caso el método capturar( ).

public static void main(String[]args)

{


Programa1 objeto=new Programa1();

objeto.capturar();


}

Y hasta aquí termina el cuerpo de la clase y del método.

Ahora compilamos y ejecutamos.

Cosas a tener en cuenta:

  • Antes que otra cosa, cualquier instruccion termina con ";".
  • Al crear la clase DEBE TENER EL MISMO NOMBRE DEL ARCHIVO donde está siendo escrito (Ejemplo, si se llama tu archivo "programa.java", tu clase se debe de llamar "class programa.
  • El método main es esencial si la aplicación se quiere correr, en este método pondremos todo lo que queremos que aparezca al momento de ejecutarse.
  • Después de haber colocado el operador new, el nombre de la clase con paréntesis indica que es el constructor de la clase, el constructor es un método que existe en la clase por defecto (aunque el programador tambien lo puede modificar)

El código queda de la siguiente forma

import java.io.*;

class Programa1

{

String cadena;

public void capturar()

{

System.out.println("Bienvenido a Programar en Java");


System.out.print("Por favor escribe una palabra ");


try

{

BufferedReader linea=new BufferedReader(new InputStreamReader(System.in) );


cadena=linea.readLine();



System.out.println("Escribiste la palabra "+cadena);

}
catch(Exception e)


{


System.out.println("Hubo un Error");


}


}






public static void main(String[]args)

{


Programa1 objeto=new Programa1();




objeto.capturar();



}



}


Bueno, eso es todo, si tienen dudas con gusto las responderé y espero que esto les haya ayudado.