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

miércoles, 17 de agosto de 2016

Filtrar datos de un jTable a partir de una búsqueda en JTextField


Una de las acciones indispensables en un sistema informático, son si duda las búsquedas. Las búsquedas de registros implica presentar al usuario la información que necesita y hacerlo de la manera más fácil para el usuario.


En lo personal me gusta añadir el método de ir filtrando la información de una tabla mientras el usuario escribe y así se va viendo la información aproximada de lo que el usuario está buscando.

Para hacer esto distingo dos opciones:

1.- Filtrar los datos previamente cargados en la tabla.
2.- Filtrar y mostrar los datos de la tabla de acuerdo a lo que haya directamente en las bases de datos de donde se toma la información visualizada en la tabla.

Cada una de las opciones anteriores tiene sus ventajas y desventajas, la principal ventaja de la opción 1, es que los datos se mostrarán relativamente más rápido ya que la información ya está en la tabla, su principal desventaja es, que si hay cambios en la base de datos, esos registros no se mostrarán. En la opción dos, la ventaja principal es que los registros mostrados en la tabla están actualizados ya que se toman directo de la base de datos, desventaja principal, suponiendo que haya muchos registros, cada búsqueda se tardará para ir a la base de datos.

Ahora, el código para filtrar los datos solamente de la tabla es el siguiente:
Primero se crea el siguiente método:

/* declarar la siguiente variable en la clase*/
DefaultTableModel dm;

/* Método filtro*/
private void filtro(String consulta, JTable jtableBuscar){
        dm = (DefaultTableModel) jtableBuscar.getModel();
        TableRowSorter<DefaultTableModel> tr = new TableRowSorter<>(dm);
        jtableBuscar.setRowSorter(tr);
        tr.setRowFilter(RowFilter.regexFilter(consulta));
}

Para invocar al método, se debe hacerlo en el evento <key released> del JTextField utilizado para buscar registros y se invoca de la siguiente manera:

/*A éste método se le envía el texto a buscar obtenido del JTextField, considerar si es necesario estandarizar a mayúsculas o minúsculas, además se envía la tabla en la que se desea que se realice el filtro, de este modo el método se puede reutilizar en diferentes tablas*/
filtro(jtxtBuscarNombre.getText().toUpperCase(), jtableConsultas);

El método de filtrar las filas del JTable que coincidan con lo que se esté escribiendo obtenido directamente desde la base de datos, es un poco más extenso, tanto en código como en explicación.

No lo explicaré, mejor pueden descargar el ejemplo completo de github para que lo puedan probar.






Gracias por visitar.

martes, 24 de mayo de 2016

Algunos TIPS al programar en JAVA


Entiendo que como programadores o desarrolladores, tenemos ya nuestra pila de "Trucos y Tips" a la hora de programar, así como también solucionar o encontrar los "Errores", los catch, que no contemplamos o que simplemente no sabíamos que ocurrián.

Como ya mencioné, cada quien crea sus propios trucos con base a sus experiencias, pero no está de más saber trucos de alguien más:

Les presentaré una serie de trucos y métodos que son los más usuales que siempre se requieren a la hora de programar en JAVA.

1.- Siempre crear el paquete main o principal el cual inicie todo el programa



Desde mi punto de vista, éste es el tip más importante, además, de que es esencial en caso de querer crear el Jar al final. Como sabran, para poder crear un Jar, es necesario que solo exista un main en todo el software, por lo tanto al programar, crear una estructura parecida a la imagen de arriba.

La clase principal donde está el único main de todo el software, yo siempre la coloco en un paquete separado a todas las demás, también separo las clases de las interfaces gráficas, de los recursos, y de las imágenes.

De este modo es mucho más fácil el desarrollo, desde mi punto de vista claro.

Entonces, mi clase  principal donde está el único main, lo único que hará es crear y visualizar la primera interfaz Gráfica (JFrame), de todo el software, y de ahí parte todo lo demás.

Ejemplo de mi código en la clase principal donde contiene el main:

[...]
/*
 * Nombre de la clase: Principal
 * Descripción: esta clases es la principal, desde aquí se invocan a las demás
 *  interfaces para que inicie el programa completo.
 */
package gestionbasedatos;

import gestionbasedatos.interfaces.LoginBD;
import gestionbasedatos.interfaces.SplashScreen;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
 *
 * @author m2 <linuxitos@gmail.com>
 */
public class Principal {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch(ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e){
            System.err.println("Error Look GUI: "+e.getMessage());
        }
        SplashScreen s=new SplashScreen();
        s.setVisible(true);
        try {
            Thread.sleep(10000);
        } catch (InterruptedException ex) {
            Logger.getLogger(Principal.class.getName()).log(Level.SEVERE, null, ex);
        }
        s.dispose();
        SwingUtilities.invokeLater(new Runnable(){
            @Override
            public void run(){
                /*Aquí crean el objeto hacía su aplicación, para hacer visible*/
                LoginBD nuevaSesion = new LoginBD();
                nuevaSesion.setVisible(true);
            }
        });        
    }
    
}
[...]

2.-  Agregar javadoc a todos los métodos y clases

Esto no creo que sea solo un tip, sino una oligación de todo desarrollador;
En Java es sencillo, solo basta posicionarse sobre el método, presionar la tecla Alt+Enter y lo agrega automáticamente:

Ejemplo:

[...]
/**
     * Método que devuelve el valor de un campo espéficico que se le indique lo retorna como string
     * si la consulta cuenta con muchas filas, se quedará con el último valor
     * @param rel
     * @param campo
     * @return String
     * @throw SQLException.
    */
    public String obtenerCampo(ResultSet rel, String campo){
       String valCampo =new String();
       try{
            while(rel.next()){ 
                valCampo=rel.getString(campo);
            }
        } catch (SQLException ex) {
            System.out.println("Error: "+ex.getMessage());
        }
        return valCampo;
    }
[...]

Si no quieren, escribir toda la documentación o comentarios en un momento dado, entonces, solo agreguen lo más importante y después la terminan.

Documentar su código no solo los ayudará a ustedes cuando no se acuerden qué hace cada uno de los mil método que tienen en su código, sino que también ayudará a otros en caso de que desarronen en grupos.

También debo decir, que su código se verá más profesional, esto es de cada quien, pero es una excelente prática hacerlo.

3.- Evitar cerrar todo el  PROGRAMA al dar CLIC en la opción Cerrar de la Vetana:

Quizas no en todos los programas se requiera inahabilitar esta opción, pero algunos casos es importante preguntar al usuario si realmente desea cerrar o si simplemente no cerrar el programa sino que te regrese a otra ventana.

Para esto, yo utilizo el siguiente código:

//Se inhabilita que al presionar el botón cerar de la ventana salga del programa
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
//Se agrega de Listener para que éste detecte cuando se presione el botón 
//cerrar y ejecute otra accion, por ejemplo hacer visible una ventana anterior.
addWindowListener(new java.awt.event.WindowAdapter() {
    @Override
    public void windowClosing(java.awt.event.WindowEvent evt) {
        //Acción a realizar contrario a salirse del programa
    }
});

4.- Crear métodos para reutilización


La idea es la siguiente: Supongamos que en el ejemplo anterior, se requiere regresar a una ventana anterior al presionar el botón cerrar de la ventana, pero también, hay que actualizar la información que se haya capturado en la ventana actual antes de cerrar. Además, tenemos un botón de "Cerrar", entonces, el código que se ejecutará en botón cerrar de la ventana, también se utilizará en el botón cerrar que agregamos nosotros, por ente, para no duplicar el mismo código, crear un método, y solo se invocaría el método en ambas opciones:

Ejemplo:

[...]
//Método creado
private void close(){
    consultas.cargarPacientesTablas(jtableInfoActFisica);
    consultas.actualizarDatosGenerales();
    regAModiExp.setVisible(true);
    this.dispose()
}
[...]
[...]
//Cuando se detecte clic en el botón de cerar ventana quedaría así
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
    @Override
    public void windowClosing(java.awt.event.WindowEvent evt) {
       close();
    }
});
[...]

Y cuando se de clic en el botón cerrar que se agregó en la ventana quedaría aśi:
[...]
private void jbCerarActionPerformed(java.awt.event.ActionEvent evt) {
   close();
}
[...]

Y con eso se dismiyen las líneas de código, y se hace uso de la Reutilización.

5.- Centrar todas las ventanas al iniciar el programa:



Para lograr que las ventanas de todo nuestro Software a desarrollar se centre automáticamente, es necesario agregar lo siguiente:

[...]
initComponents();
setLocationRelativeTo(null); //esto hace que se centre de manera utomática
[...]
Es necesario agregarlo a cada JFrame que se cree. El orden también es necesario, ya que si no lo hacen en ese orden, les lanzará una excepción.

6.- Agregar ícono a nuestro Software


Muchos podrán decir que no es necesario, pero la personalización de un Software es lo que lo hace ser más llamativo, así que, para agregar el ícono yo utilizo el siguiente código:


[...]
initComponents();
/*Tiene que ser después de initiComponents*/
Image icon = Toolkit.getDefaultToolkit().getImage(getClass().getResource("../images/favicon.png"));
setIconImage(icon);
[...]

Obviamente es necesario crear el ícono previamente, guardarlo dentro del proyecto, y agregarlo a cada JFrame que se cree.

7.- Agregar ícono a nuestro Software

Izquierda utilizando el tema default de Java, Derecha adaptado al tema del SO.
Hacer que la interfaz se adapte al estilo de ventanas y botones del sistema en el que se ejectue el software y que no utilice el default de Java.

Para esto, yo agrego el siguiente código al inicio de donde inicia la ejecución del primer JFrame:


[...]
try{
   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        }catch(ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e){
    System.err.println("Error Look GUI: "+e.getMessage());
}
[...]

8.- En las excepciones agregar más información

Esto también lo recomiendo, pero es de cada quien de cómo encuentra sus errores en el código, sobre todo por las excepciones:

Lo que yo hago en cada error de una posible Excepción, es mostrar el con System.out.println("");, pero agregando el nombre del método en el que ocurra el error:

Ejemplo:


[...]
     /**
     * Método que realiza la desconexión con la BD.
     * @return boolean
     */
    public boolean desconectar(){
        boolean desconecta=false;
        try {
           conexion.close();
           desconecta=true;
           System.out.println("Clase conexión: desconexión exitosa");
        } catch (SQLException e) {
           System.out.println("Error en método desconectar: " + e.getMessage());
        }
        return desconecta;
    }
[...]

De esta manera me doy cuenta de dónde más o menos está el error.


Bueno, por ahora solo les dejo esos tips, espero y les sean de utilidad. Gracias por visitar.

jueves, 5 de mayo de 2016

Guardar imágenes en PostgreSQL desde Java


Esta es la versión 2.0.0 de Black-List utilizando una base de datos en PostgreSQL, aunque no sea mucha la diferencia con MySQL, ciertos métodos y tipos de datos no son iguales o no se llaman igual. Por lo tanto me decidí a armar el mismo proyecto para ambos gestores de bases de datos.

Esta versión contiene lo siguiente:
  • Guardado de fechas en PostgreSQL.
  • Abrir link desde clic sobre JLabel.
  • Guardado y recuperación de imágenes guardas en PostgreSQL usando tipo de dato BYTEA.
  • Recuperación de las fechas y colocadas en una tabla
  • Colocado de fechas en un JDateChooser
  • Guardado de contraseñas encriptadas en md5 en PostgreSQL
  • Validación de usuarios a través de la contraseña encriptadas
  • SplashScreen con barra de progreso modificable.
  • Modificar la información del usuario en configuración de la cuenta.
  • Login.
  • Creación de usuarios.
  • Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  • Altas, bajas, modificaciones, busquedas en la BD.
  • Uso de JDialog.
  • Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  • Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  • Uso de ícono para la aplicación.
  • Deshabilitar la opción del botón cerrar.
  • Uso de abrir y regresar a otro jframe.
  • Uso de clases.
  • Uso de objetos completos.
  • Manipulación de objetos como registros.
  • Incluye Script de la BD.

LInk de Descarga




Algunas Capturas








miércoles, 4 de mayo de 2016

Guardar imágenes en MySQL


En esta ultima versión, de Black-List, agrgué una nueva funcionalidad, la de guardar imágenes en MySQL como Bytes, y luego recuperarlas y visualizarlas en un jlabel, además, las imágenes que se guardan, las redimensiono al tamaño del jlabel en la que se van a colocar.


No se diga más, el link de descarga aquí: 

Algunas capturas




Cualquier sugerencia o duda no olviden comentar.

jueves, 28 de abril de 2016

ABC en base de datos Postgresql desde Java


La versión anterior de este programa 1.0.0, aun utilizaba la decoración de ventanas por default de Java o el que nos da Netbeans, en este caso lo actualizé y ahora se adapta a la interfaz que se utiliza en el SO en el que se ejecute, por ejemplo, toda la interfaz que ahora ven en las imágenes, es de gtk, si lo ejecutan en windows, automáticamente utilizará se adaptará al gui de la interfaz de windows.

Lo pueden descargar desde mi sitio de GItHub, desde ahora lo subiré a ese sitio, ya que mega al parecer está por ser cerrado, y si eso pasa realmente, pues los archivos alojados ahí, se perderán.





Algunas capturas de pantalla:

Caulquier duda o sugerencia en los comentarios por favor.

miércoles, 27 de abril de 2016

Altas, Bajas y Consultas base de datos PostgreSQL desde Java


Para los que ya ejecutaron y probaron mi software de gestión de base de datos mysql desde java, ahora les presento la versión para postgresql, en su versión 9.5 de postgresql.

Incluye:
  1. Guardado de fechas en mysql
  2. Recuperación de las fechas y colocadas en una tabla
  3. Colocado de fechas en un JDateChooser
  4. Guardado de contraseñas encriptadas en md5 en mysql
  5. Validación de usuarios a través de la contraseña encriptadas
  6. SplashScreen con barra de progreso modificable.
  7. Modificar la información del usuario en configuración de la cuenta.
  8. Login.
  9. Creación de usuarios.
  10. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  11. Altas, bajas, modificaciones, busquedas en la BD.
  12. Uso de JDialog.
  13. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  14. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  15. Uso de ícono para la aplicación.
  16. Deshabilitar la opción del botón cerrar.
  17. Uso de abrir y regresar a otro jframe.
  18. Uso de clases.
  19. Uso de objetos completos.
  20. Manipulación de objetos como registros.
  21. Incluye Script de la BD, para ser ejecutado desde pgAdmin o psql.

Lo pueden descargar desde mi sition de github: https://github.com/jesusferm/gestionbasedatospostgresql/

Este programa no incluye lo siguiente:
  1. Módulo de respaldo de la BD.
  2. Restauración de la BD.
En las actualizaciones siguientes subiré esa parte.

lunes, 25 de abril de 2016

Validar JTextField que acepte números decimales


A veces es necesario validar campos de texto de tal modo que el usuario cometa el mínimo error posible, ya que siempre es posible que lo haga.

Recientemente necesité validar unos jtextfield, en donde soloa aceptaban números decimales, pero no reduje el código siguiente:
Si alguien conoce algún métod mucho menor, favor de comentar:
if(jtxtPeso.getText().length() >= 8){
        evt.consume();
}
 char car = evt.getKeyChar();
 char text[];
 int count = 0;
 text = jtxtPeso.getText().toCharArray();
 for(int i = 0 ; i< text.length; i++){
        if(text[i] == '.'){
                count++;
       }
 }
 if(count>=1 && evt.getKeyChar() == '.'){
       evt.consume();
 }
  if((car!='0' && car!='1' && car!='2' && car!='3' && car!='4' && car!='5'
                && car!='6' && car!='7' && car!='8' && car!='9' && car!='.')){
            getToolkit().beep();
            evt.consume();
 }
Este código se agrega en el evento siguiente del jtextfield:

private void jtxtPesoKeyTyped(java.awt.event.KeyEvent evt) {

}


Y espero sus comentarios

sábado, 19 de marzo de 2016

Gráficas en Java

Hoy les presento un ejemplo de gráficas en java, los ejemplos no son mios, los transcribí a java desde el canal de youtube de Nestor Guzman, https://www.youtube.com/watch?v=zS8pW1lPk5k.

En su canal él no compartió los archivos, así que me tomé el tiempo para transcribirlos, y ahora lo pueden descargar desde aquí.




Algunas capturas del programa:




Gracias por comentar.

jueves, 3 de marzo de 2016

Contraseñas encriptadas :BDListaNegra


Esta es la versión 1.0.2 de BDListaNegra, ahora ya tiene las contraseñas encriptadas en MD5, toda esta cadena se guarda en la base de datos.

No lo describo más y pueden descargarlo desde el repositorio en GitHub https://github.com/jesusferm/gestionbasedatos

Comenten en caso de dudas.

sábado, 27 de febrero de 2016

Splash Screen, MySQL Admin, Login desde Java


Hoy les presento la versión 2.0.1 del mini programa gestion de base de datos, la nueva versión incluye:
  1. SplashScreen con barra de progreso modificable.
  2. Respaldar la base de datos
  3. Restaurar la base de datos
  4. Modificar la información del usuario en configuración de la cuenta:
Anteriormente traía también:
  1. Login.
  2. Creación de usuarios.
  3. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  4. Altas, bajas, modificaciones, busquedas en la BD.
  5. Uso de JDialog.
  6. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  7. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  8. Uso de ícono para la aplicación.
  9. Deshabilitar la opción del botón cerrar.
  10. Uso de abrir y regresar a otro jframe..
  11. Uso de clases.
  12. Uso de objetos completos.
  13. Manipulación de objetos como registros.
  14. Incluye Script de la BD.
 El proyecto lo puden descargar desde mi página de GitHub 
Les dejo aquí algunas capturas de pantalla.
 Logín de la aplicación.


Interfaz principal de la aplicación.

Configuración de la información del usuario loegado.

Respaldo y restauración de la base de datos.

Ventana de guardado del archivo de respaldo de la BD

Ventana de apertura del archivo de restauración de la BD.

Información  AcercaDe de la aplicación.

Ventana de creación de nuevos usuarios, en caso de que no cuente con usuario.

En las próximas versiones, crearé la interfaz de recuperar contraseña y encriptar la contraseña en la base de datos.

Cualquier duda comentar por favor.

sábado, 20 de febrero de 2016

Splash Screen con Barra de progreso en Netbeans


A veces es necesario personalizar más los programas que desarrollamos en Java, hoy les presento un Splash Screen, simple, con una barra de progreso. En el código les muestro dónde deben iniciar el jframe de la aplicación que se debe abrir una vez finalizada la ejecución del splasg screen.

En este ejemplo, solo muestro el texto de cargando archivos, base de datos, ect, pero también lo pueden modificar agregando imágenes, y que la imagen simule el proceso de iniciando aplicación. Aún así, el Splash Screen es muy simple de utilizar.

Les dejo el link de descarga del código completo y algunas capturas de pantalla.
https://mega.nz/#!eN4VhaSQ!_-gW-21zeNTtbG0aSFCiKeoNzYWlzXPgERsSP0jQfI4


Próximamente subiré un código completo con, splash screen, login contra mysql en java.

jueves, 4 de febrero de 2016

Login con MySQL y JAVA


Hace poco subí un proyecto desarrollado en java, el cual consistía en realizar las funciones básicas en una base de datos. Como son altas, bajas, consultas y modificaciones.

Esto fue la primera parte del miniproyecto, ya que son las funciones que nos piden los profesores en las materias de programación con java.

Ahora, lo que hice fue incluir un login, es decir, que el usuario antes de entrar, pudiera logearse, dar de alta otro usuario. Aún falta varias cosas, por ejemplo, cambio de contraseña, recuperar contraseña, encriptar la contraseña, entre otras cosas.

Pero, con este proyecto aunque sea sencillo, incluye lo siguiente:
  1. Login.
  2. Creación de usuarios.
  3. Detección al presionar enter: es decir, que cuando se presiona enter en un cuadro de texto automáticamente se ejecuta la acción correspondiente.
  4. Altas, bajas, modificaciones, busquedas en la BD.
  5. Uso de JDialog.
  6. Búsqueda datos mientras se escribe: es decir, se van filtrando los registros al escribir.
  7. Detección de la tecla scape: es decir, en algunas ventanas, se detecta la tecla scape, para indicar que se cancela la edición o modificación.
  8. Uso de ícono para la aplicación.
  9. Deshabilitar la opción del botón cerrar.
  10. Uso de abrir y regresar a otro jframe..
  11. Uso de clases.
  12. Uso de objetos completos.
  13. Manipulación de objetos como registros.
  14. Incluye Script de la BD.


Y pues no se diga más entonces, aquí está el proyecto completo.
https://mega.nz/#!vYhTRD7R!pX9mleE_rFb8hDIWCMZcwEP6ccUWRaRmnEKJGej_51w

Si tienes dudas no olivden comentar, además si alguien quiere implementar las demás funciones, adelante, podemos crear un repositorio en GITHUB.

sábado, 14 de noviembre de 2015

Solucionar error: ErrorTable 'performance_schema.session_variables' doesn't exist de MySQL mostrado en Netbeans

Recientemente instalé MySQL en Fedora 23 después de haber actualizado. Continuando con las instalaciones de los diferentes programas que utilizo y probando cada uno de ellos, me percaté del siguiente error que mostraba Netbeans al intentar ejecutar un aplicación desarrollada en java utilizando mysql como base de datos.

El mensaje del error es:
ErrorTable 'performance_schema.session_variables' doesn't exist



Al principio creí que se debía a las contraseñas del usuario de mysql, o que tal vez el jar estaba desactulizado, pero no era así. En internet encontré la siguiente instrucción de línea de comando para solucionar el error:
mysql_upgrade -u root -p --force
Luego reiniciar el servicio de mysql:
sudo /bin/systemctl restart  mysqld.service

Y con eso se soluciona el error:

Finalmente pude ejecutar mi programa:


Gracias por visitar. Si gustan descargar la aplicación lo tengo en mi sitio de github https://github.com/jesusferm/gestionbasedatos

Fuentes: 
http://stackoverflow.com/questions/31967527/table-performance-schema-session-variables-doesnt-exist
http://www.tecposter.com/fix-mysql-error-table-performance_schema-session_variables-doesnt-exist/

viernes, 19 de junio de 2015

Agregar texto al final de un archivo existente desde Java

EL siguiente programa en java añade texto al final de un archivo de texto.
El proyecto completo lo pueden descargar desde aquí

O el código principal es:
public void agregarTextoAlfinal(String nombreArch){
        int i;
        try {
            FileWriter fstream = new FileWriter(nombreArch, true);
            BufferedWriter out = new BufferedWriter(fstream);
            for(i=0;i<10;i++){
                out.write("Visita http://linuxgx.blogspot.mx/ "+i+"\n");
            }
            out.close();
        } catch (IOException ex) {
            System.out.println("Error: "+ex.getMessage());
        }
 }
Para crear previamente el archivo pueden usar este método:
public void crearArchivo(String archivo){
        FileWriter fwArchTemp;
        try {
            fwArchTemp = new FileWriter(archivo);
            BufferedWriter bwArchTemp;
            bwArchTemp = new BufferedWriter(fwArchTemp);
            try (PrintWriter wrArchTemp = new PrintWriter(bwArchTemp)) {
                wrArchTemp.print("Visita http://linuxgx.blogspot.mx/\n");
                wrArchTemp.close(); /*Cerrando archivo de escritura*/
            }
            bwArchTemp.close(); /*Cerrando apertura de archivo*/
            fwArchTemp.close();
        } catch (IOException ex) {
            System.err.println("Error: "+ex.getMessage());
        }
}
Bueno, espero que les sirva de algo.

martes, 28 de abril de 2015

Instalar JDK de Oracle en Fedora posteriores a 16

http://www.oracle.com/technetwork/java/javase/downloads/index.html
Como se sabe, Java es un lenguaje de programación más utilizado por los programadores. Aunado a esto es necesario instalar las librerías y paquetes necesarios para poderlo utilizar.
A continuación les mostraré como instalar JDK y JRE en la versión más reciente hasta la fecha de esta publicación. Pero en general la instalación es la misma, lo único que cambia es la versión del paquete a instalar.

1. Descargar los paquetes JDK y JRE desde la páguina oficial de Oracle.


2. Instalar los paquetes descargados.

 Para instalar los paquetes descargados pueden simplemente ir al directorio en el que se encuentren los paquetes y dar doble clic sobre cada uno. O pueden abrir la terminal y ejecutar lo siguientes comandos.
Acceder a la ruta de ubicación de los paquetes previamente descargados:
## Instalación de JDK
sudo rpm -Uvh jdk-8u45-linux-x64.rpm
## Instalación de JRE
sudo rpm -Uvh jre-8u45-linux-x64.rpm

3. Configurar JDK/JRE

Nota seleccionar únicamente una de las dos opciones
Usar la versión más reciente de Java JDK:
## Para java ##
sudo alternatives --install /usr/bin/java java /usr/java/latest/jre/bin/java 200000
## para javaws ##
sudo alternatives --install /usr/bin/javaws javaws /usr/java/latest/jre/bin/javaws 200000
Usar una versión absoluta de Java JDK:
## java ##
sudo alternatives --install /usr/bin/java java /usr/java/jdk1.8.0_45/jre/bin/java 200000
## javaws ##
sudo alternatives --install /usr/bin/javaws javaws /usr/java/jdk1.8.0_45/jre/bin/javaws 200000
Usar la versión más reciente de Java JRE:
## para java ##
sudo alternatives --install /usr/bin/java java /usr/java/latest/bin/java 200000
 
## para javaws ##
sudo alternatives --install /usr/bin/javaws javaws /usr/java/latest/bin/javaws 200000
Usar una versión absoluta de Java JRE:
## para java ##
sudo alternatives --install /usr/bin/java java /usr/java/jre1.8.0_45/bin/java 200000
 
## para javaws ##
sudo alternatives --install /usr/bin/javaws javaws /usr/java/jre1.8.0_45/bin/javaws 200000

Y con eso finaliza la instalación de los paquetes. Para corroborar la versión instalada se puede utilizar el comando:
java -version
Y mostrará un mensaje parecido al siguiente:
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)

Si por alguna razón, el comando java -version no muestra el resultado que se visualiza aquí, entonces es probable que muestre este:

openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b13)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)
 Esto indica que no se está usando la versión de Oracle, sino más bien la versión OpenJDK, para cambiar OpenJDK por Oracle JDK visitar: http://linuxgx.blogspot.mx/2015/04/cambiar-openjdk-por-oracle-jdk-en-fedora.html

Cambiar OpenJDK por Oracle JDK en Fedora


Anteriormente se explicó como instalar JDK o JRE. Al instalar dichos paquetes, a veces ya se tiene instalado OpenJDK, por ente no toma el JDK de Oracle, sino que se queda con la versión de OpenJDK.

Cambiar java

Para cambiar java se utiliza el siguiente comando:
sudo alternatives --config java
Y muestra los programas instalados que proporcionan java:
Hay 3 programas que proporcionan 'java'.

  Selección    Comando
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-31.b13.fc21.x86_64/jre/bin/java
   2           /usr/java/jdk1.8.0_45/jre/bin/java
   3           /usr/java/jre1.8.0_45/bin/java
Presione Intro para mantener la selección actual[+], o escriba el número de la selección:
Nota: el símbolo [+] indica qué programa se está usando actualmente para ejecutar java 
Para seleccionar una opción es necesario indicar el número y presionar enter y con eso finaliza la selección del entorno java.


Cambiar javaws

El cambio del entorno javaws es la misma dinámica que el anterior, el comando a utilizar es:
sudo alternatives --config javaws
Y mostrará como resultado:
Hay 2 programas que proporcionan 'javaws'.

  Selección    Comando
-----------------------------------------------
*  1           /usr/java/latest/jre/bin/javaws
 + 2           /usr/java/jdk1.8.0_45/jre/bin/javaws

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:
Si por alguna razón les es necesario configurar javaws entonces también es necesario configurar libjavaplugin.so o libjavaplugin.so.x86_64 dependiendo de la arquitectura del SO.
Los comandos a utilizar son:
Para x86
sudo alternatives --config libjavaplugin.so
Para x86_64
sudo alternatives --config libjavaplugin.so.x86_64

Cambiando javac

Los comando para configurar javac son:
sudo alternatives --config javac
Y mostrará un resultado parecido al siguiente:
Hay 2 programas que proporcionan 'javac'.

  Selección    Comando
-----------------------------------------------
*+ 1           /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.45-31.b13.fc21.x86_64/bin/javac
   2           /usr/java/jdk1.8.0_45/bin/javac

Presione Intro para mantener la selección actual[+], o escriba el número de la selección:

Finalizando la instalación

Como parte de la actualización o cambio de OpenJDK por Oracle JDK es necesario actualizar las variables de entorno, lo siguientes comandos se utilizan para eso:
export JAVA_HOME="/usr/java/latest"
export JAVA_HOME="/usr/java/jdk1.8.0_45"
export JAVA_HOME="/usr/java/jre1.8.0_45"

Fuente: http://www.if-not-true-then-false.com/2014/install-oracle-java-8-on-fedora-centos-rhel/