jdk
Paloma Centenera Centenera
El entorno de desarrollo
Principales carpetas de C:\Archivos de Programa\Java\jdk
src.zip: este archivo comprimido contiene el código fuente de todas las clases
que forman el lenguaje Java.
jre: Java Runtime Environment. Máquina virtual de Java sin herramientas de
desarrollo.
include: ficheros de cabecera (.h) utilizados en el desarrollo de la máquina virtual
de Java. La JVM está desarrollada en C/C++.
demo y sample: directorios con ejemplos de aplicaciones desarrolladas en Java.
lib: directorio donde se pueden encontrar las bibliotecas de clases del JDK.
bin: herramientas y utilidades del JDK tales como el compilador, el depurador,
etc. Algunas de las herramientas disponibles en este directorio se detallan en los
siguientes puntos.
2
Variables de entorno
3
4
4
Compilador de java
Desde la línea de comando:
>javac clase.java
>javac clase1.java clase2.java
>javac *.java
5
Opciones javac
•La opción -d establece un directorio de destino para escribir los
archivos ".class".
•La opción -sourcepath establece una ruta de búsqueda de código
fuente.
•La opción -cp o -classpath establece la ruta, o rutas separadas
por ” ; “ , de búsqueda para encontrar clases externas
compiladas previamente. Volveremos al tema de Classpath .
•La opción -version imprime la información de la versión del
compilador.
•La opción –g genera toda la información de depuración, incluidas
las variables locales. De forma predeterminada, solo se genera el
número de línea y la información del archivo de origen.
•La opción –verbose produce una salida detallada, que incluye
información sobre cada clase cargada y cada archivo de origen
compilado.
6
Lanzador de aplicaciones
Desde la línea de comando
>java clase
7
Depurador de aplicaciones
Ejecutar en modo depuración desde la línea de comando:
>jdb ClaseInicial
despues:
run: comenzar la ejecución del programa a depurar. Es importante haber colocado antes los
breakpoints o puntos de control en los lugares donde es interesante el estudio del valor de
las variables, atributos, etc., y en general del estado de la ejecución.
stop: permite poner un breakpoint en el código, es decir, un punto en el cual se va a
detener la ejecución del programa que se está depurando. Esto nos permite estudiar la
ejecución de un programa en un punto concreto de dicha ejecución.
Un ejemplo puede ser el siguiente:
stop at ClaseInicial:34 (breakpoint en la línea 34 de ClaseInicial)
step: ejecuta la siguiente instrucción. Muy útil para ejecutar algunas partes del programa
que se pretende depurar de instrucción en instrucción.
cont: continua la ejecución del programa que se está depurando después de un breakpoint.
hread: selecciona el hilo que pasa a ser el hilo de ejecución actual de entre todos los hilos
de ejecución de nuestro programa. Fundamental para la depuración de aplicaciones
multihilo.
where: volcado de la pila del programa. Muy útil para saber en qué parte de la ejecución
8
estoy, es decir, qué método se está ejecutando y desde que métodos se ha llamado.
8
Make
make es una herramienta de Unix para simplificar la construcción de programas
ejecutables desde muchos módulos.
make lee reglas (especificadas como una lista de entradas objetivo) de un archivo Makefile
creado por el usuario.
make solo reconstruirá cosas que necesitan ser reconstruidas (objetos o ejecutables que
dependen de archivos que han sido modificados desde la última vez que se construyeron
los objetos o ejecutables).
Usando make
Cree un Makefile que enumere las reglas para construir el ejecutable. El archivo
debe llamarse 'Makefile' o 'makefile'. Esto solo debe hacerse una vez, excepto cuando se
agregan nuevos módulos al programa, el Makefile debe actualizarse para agregar nuevas
dependencias de módulos a las reglas existentes y para agregar nuevas reglas para
construir los nuevos módulos.
Después de editar los archivos del programa, reconstruya el ejecutable
escribiendo :
% make
Se puede ejecutar un objetivo específico del Makefile escribiendo:
% make target_label
9
Instalación de make en windows
Ejecute la instalación en GitBashgit:
Winget install GnuWin32.make
Editar las variables del entorno
Nueva variable:
make c:\Program Files(x86)\GnuWin32\bin\make
Añadir a path:
c:\Program Files(x86)\GnuWin32\bin
10
Ejemplo de archivo makefile
compilar:limpiar
mkdir bin
javac src/dominio/Localidad.java -d bin
javac -cp bin src/dominio/Persona.java -d bin
javac -cp bin src/aplicacion/Principal.java -d bin
ejecutar:compilar
java -cp bin aplicacion.Principal
limpiar:
rm -rf bin
11
Un makefile más completo
P=Main
SRC_DIR=src
jar_file = $(P).jar
compilar:limpiar
mkdir bin
find src -name *.java | xargs javac -cp bin -d bin
jar:compilar
jar cvfm $(jar_file) manifest.txt -C bin .
ejecutar:compilar
java -cp bin aplicacion.$(P)
limpiar:
rm -rf bin
javadoc:compilar
find . -type f -name "*.java" | xargs javadoc -d html -encoding utf-8 -docencoding utf-8 -
charset utf-8
run: jar
@echo "Manifest-Version: 1.0" > manifest.txt
@echo "Class-Path: ./lib/*:./bin" >> manifest.txt
@echo "Main-Class: $(P)" >> manifest.txt
@echo "" >> manifest.txt
java -jar $(jar_file)
12
Generador de documentación: javadoc
Aplicación para generar documentación. Comentarios /**…..*/
Tags:
13
13
Ejemplo
/**
* Inserta un título en la clase descripción.
*Al ser el título obligatorio, si es nulo o vacío se lanzará
* una excepción.
* * @param titulo El nuevo título de la descripción.
* @throws IllegalArgumentException Si titulo es null, está vacío o contiene sólo espacios.
*/
public void setTitulo (String titulo) throws IllegalArgumentException {
if (titulo == null || titulo.isBlank()) {
throw new IllegalArgumentException("El título no puede ser nulo o vacío"); }
else
{ this.titulo = titulo; }
}
14
Ejemplo javadoc
15
15
package Practica2;
Ej /**
* Clase que representa un círculo.
e * @version 1.0
m * @author Miguel Ángel y Paloma */
pl public class Circulo {
o private int x; // coordenadas del centro
private int y; // coordenadas del centro
jav private int r; // radio del círculo
ad /**
* Crea un círculo.
oc * @param x La coordenada x del centro en el plano.
* @param y La coordenada y del centro en el plano.
* @param r El radio del círculo.
*/
public Circulo(int x, int y, int r) {
this.x=x; this.y = y; this.r = r;
}
/**
* Cálculo del área.
16
* @return El área del círculo.
*/
https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javadoc.html16
@Override
/**
* Dibuja el círculo definido en c
* @return El área del círculo.
*/
public void paint(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(c.xCentro(), c.yCentro(), c.radio(), c.radio());
}
}
package Practica2;
/**
*
* @author Paloma
*/
public class EJDrawCirculo {
public static void main(String[] args) {
/**
* Dibuja define un círculo y lo dibuja haciendo uso de las clases Circulo y DrawCircle
*/
Circulo c=new Circulo(150,150,100);
17
new DrawCircle(c);
}
} 17
package Practica;
public class EJSerieAleatoriosD {
public static void main(String[] args) {
SerieAleatoriosD s=new SerieAleatoriosD(20);
s.generarSerieDeAleatorios();
}
}
18
18