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

domingo, 8 de septiembre de 2019

OpenJDK - Sin restricciones en producción


Como muchos sabéis la licencia de Oracle JAVA ha cambiado desde que ha llegado JAVA 11 (y ya estamos por la 12, y la 13 a punto de salir...)

A nivel de escritorio y uso "no profesional" no nos afecta. 

Pero si necesitamos utilizarlo en un servidor (con Tomcat por ejemplo), tenemos un pequeño problema, hay que pasar por caja.

La alternativa es usar OpenJDK en lugar del JDK que siempre hemos descargado de la web de Oracle.

Se puede descargar desde su web oficial: https://openjdk.java.net/

Si trabajamos en sistemas Linux no hay ningún problema, ya que por defecto al realizar la instalación de JAVA por defecto ya está utilizando el OPENJDK.

Para sistemas Windows es un pelín más complicado, pero nada que no podamos hacer en menos de cinco minutos.

Lo primero que tenemos que hacer es descargar el OpenJDK:


El de Windows está en esta ruta: 

https://download.java.net/java/GA/jdk12.0.2/e482c34c86bd4bf8b56c0b35558996b9/10/GPL/openjdk-12.0.2_windows-x64_bin.zip



Unos minutos después...

Lo descomprimimos en la carpeta que más nos interese. Por ejemplo: "C:\Java\openjdk-12.0.2"

Esto nos dejará los ejecutables en la carpeta: "C:\Java\openjdk-12.0.2\bin"

Y después de esto, sólo tenemos que ir a las variables del sistema operativo:

Y añadir la ruta anterior a la variable PATH.



Con esto, si ejecutamos en una consola ("cmd") de Windows el comando: "java -version" nos debería aparecer una respuesta como ésta:



Y después de esto ya tenemos nuestro sistema listo para utilizar OpenJDK.

domingo, 28 de enero de 2018

Instalando Java 8 de Oracle en linux (Ubuntu Server 16)


Ahora mismo estoy instalando todo lo necesario en el servidor de Conquista Castilla y León, y para empezar, lo primero que hago es instalar JAVA.

El sistema operativo va a ser un Ubuntu Server 16 LTS.

Yo quiero instalar "Oracle Java 8". Por defecto en los repositorios de Ubuntu no esta disponible esta versión, para instalarla tenemos que ejecutar estos comandos:

  1. sudo apt-get update : actualizamos repositorios
  2. sudo add-apt-repository ppa:webupd8team/java: añadimos un nuevo repositorio donde se encuentra la versión de Java que nos interesa
  3. sudo apt-get update : actualizamos repostitorios (ahora con el software del nuevo añadido)
  4. sudo apt-get install oracle-java8-installer: instalamos java
Podemos verificarlo con el comando: "java -version"

Por cierto, la imagen de arriba es "Duke" que como muchos sabéis es la mascota de Java.


lunes, 20 de abril de 2015

Maven entra en Juego



Hoy quiero hacer una pequeña introducción sobre Maven.

Aunque no es fundamental para un desarrollador de Java, sí que es un primer paso que nos facilitará la vida en cualquier proyecto que vaya creciendo.

Si quieres empezar a utilizar un nuevo framework o librería lo más normal del mundo es descargarte los ficheros necesarios, copiarlos a tu carpeta de librerías, incluirlas en tu proyecto y a codificar.

Esto que a priori, parece algo sencillo, se puede empezar a complicar: la librería A, puede requerir la libreria B, y ésta a su vez la C, pero B requiere también D, y esta última no se lleva bien con la última versión de C...

Y aquí llega Maven para ayudarnos.

¿Qué es Maven? 

Es una herramienta para gestionar y construir proyectos. Entre otras funcionalidades nos ayuda a gestionar dependencias, y eso es lo que vamos a ver en este artículo.

¿Cómo funciona?

Maven introduce el concepto de Artefacto: es una librería y todo lo necesario para que ésta funcione bien (dependencias, configuración,...)

Cuando en un proyecto se utiliza Maven, existe el fichero "pom.xml", aquí se introduce la lista de todas las librerías (dependencias).

Todas se descargan en un repositorio común de nuestro disco duro sin que tengamos que preocuparnos por ellas.

¿Cómo uso Maven? 

Ahora mismo esta herramienta ya está integrada en la mayoría de IDEs de desarrollo ("Eclipse" entre otros).

¿Un ejemplo?

En todo proyecto siempre solemos necesitar escribir logs, para eso normalmente yo utilizo la librería "log4j". 

La manera tradicional para usar esta librería sería ir a su web: http://logging.apache.org/log4j/1.2  para desacargarla. Pero con Maven lo que tenemos que hacer es buscar sus datos en el repositorio central de Maven.

Para esto vamos a buscarla en esta web: http://mvnrepository.com, buscamos log4j y después de un par clicks llegamos a esta URI: http://mvnrepository.com/artifact/log4j/log4j/1.2.17. En la pestaña de abajo podemos ver el formato de Maven para utilizar esta dependencia:

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

El proyecto "MavenLogExample" esta cargado en Eclipse, inicialmente está configurado sin Maven y tiene la librería dentro del proyecto.

Tiene una clase y en su método Main sólo hay estas líneas:

try {                          
    PropertyConfigurator.configure("log4j.properties");
    log.info("Sistema de log iniciado");                        

} catch (Exception e) {
    e.printStackTrace();  
}

Dentro del proyecto esta la carpeta "lib" que contiene el .jar de "log4j".

Vamos a empezar a usar Maven en este proyecto y a quitarnos la librería del proyecto (con esto ahorramos mucho espacio, imaginaros un proyecto con cien librerías).

Primer paso: darle al proyecto naturaleza Maven

Seleccionamos el proyecto, botón derecho del ratón, pulsamos "Configure" y "Convert to Maven Project".




Nos aparece esta pantalla:



Podemos rellenar los datos "name" y "description" o pulsar "Finish".

Tardará unos segundos en generarnos el fichero "pom.xml". Y aparecerá en la pantalla así:


Si queremos ver cómo es el fichero, podemos pinchar en la última pestaña inferior: "pom.xml"

Veremos que contiene algo parecido a esto:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>MavenLogExample</groupId>
  <artifactId>MavenLogExample</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>


Segundo Paso: configuración de nuestra librería

Nosotros vamos a añadir la dependencia de "log4j" dentro de <dependencies/> que se escribe después de </build> . Nos quedará así:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>MavenLogExample</groupId>
<artifactId>MavenLogExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
</dependencies>
</project>

Ahora ya podemos borrar la librería del proyecto y eliminar su dependencia de la configuración.


Si volvéis a ejecutar veréis que todo funciona perfectamente.

Tenéis este proyecto en nuestro repositorio público: https://bitbucket.org/tecnificados/public

Hay dos commits: el inicial sin Maven y el segundo con Maven y sin la librería de log dentro del proyecto.

Espero que os sea útil.

sábado, 21 de marzo de 2015

Repositorios Git


En los últimos diez años los repositorios de código han tenido una evolución constante.

Todos los que llevamos un tiempo en este mundo hemos cambiado de repositorio al menos tres veces.

Yo  mismo empecé utilizando "Source Safe", después "Subversion" y ahora "Git".

El origen de Git viene de Linux, de hecho, está diseñado por Linus Torvalds. Está pensado como repositorio distribuido, vamos a explicar qué quiere decir esto.

Los anteriores repositorios eran centralizados: necesitabas estar conectado a un servidor (donde se almacenaba el código), para poder realizar las subidas y las actualizaciones.

Ahora con Git, lo que haces es realizar los "commits" en nuestro propio ordenador, y cuando tenemos una conexión a Internet, realizamos las subidas ("push") al servidor donde se encuentra todo el código.

Ahora mismo, hay dos repositorios "gratuitos" donde se alojan los proyectos de código más importantes:
En ambos cuando te das de alta tienes disponibles varias herramientas además del repositorio, tienes wikis, gestores de incidencias,...

Nosotros en Tecnificados utilizamos Bitbucket, porque te permite tener repositorios tanto públicos como privados en la versión gratuita. En Github en el modo "free" sólo pueden ser públicos.

Ahora mismo Git está integrado con las principales herramientas de programación tanto en Eclipse como en Visual Studio si tienes un directorio conectado con un repositorio de Git estos compiladores reconocen el sistema de control de versiones y te permiten realizar las operaciones directamente sin herramientas adicionales.

Nosotros sin embargo sí utilizamos una aplicación para esto. Concretamente "Source Tree": http://www.sourcetreeapp.com/ Es la que recomienda Bitbucket, pero se puede utilizar con cualquier repositorio de Git o Mercurial.

En esta URL tenéis nuestro repositorio público: https://bitbucket.org/tecnificados/public.

Aquí tenéis un proyecto de Java muy básico (Factorial), que usaremos de ejemplo en futuros post.

miércoles, 16 de abril de 2014

Tomcat y Eclipse: compañeros de camino II


Ahora que ya tenemos nuestro entorno de pruebas listo, vamos a preparar nuestro entorno de desarrollo.

Escribir paso a paso cómo montar este entorno es un poco latoso, y he pensado que mejor hacerlo con vídeos. Y al final he preparado dos:

a) descargas de Java y Eclipse
b) configuración del entorno de desarrollo

En el primero utilizo estas URLs:
Y únicamente me descargo la JDK y IDE para J2EE. 



 
En el segundo preparo el entorno de desarrollo en estos pasos:
  1. Instalación de la JDK de Oracle (todavía pienso en la JDK de Sun).
  2. Descompresión de Eclipse.
  3. Ejecutamos eclipse, creamos un nuevo proyecto web.
  4. A este proyecto le asignamos como servidor Tomcat7, el cual se descarga automáticamente.
  5. Creamos en el proyecto una JSP con un bucle y probamos que funciona.
Aunque en el vídeo seleccione JAVA 8, luego he tenido que retroceder por problemas de compatibilidad. Lo comento por si os pasa también a vosotros.

Está al doble de la velocidad normal, me parecía un poco pesado ver cómo se descomprime un zip a velocidad normal.

Aquí lo tenéis:



Con esto la creación de los entornos ya está hecha.

Lo siguiente que quiero hacer es un pequeño proyecto de navegación clásica de JSP a Servlet y de Servlet a JSP, y desplegarlo en el entorno de pruebas.

Nos vemos.