Sunteți pe pagina 1din 10

Cómo Crear y Firmar un JAR

(Con netbeans)

Saludos Chic@s, veremos como crear un JAR, para utilizar nuestros Applet en una
página Web.

Para el ejemplo tendremos un proyecto llamado Prueba y dentro del cual tendremos dos
clases (Main.java y Dos.java)

Donde Main.java contiene lo siguiente:

package prueba;

import java.applet.Applet;
import java.awt.Graphics;
import java.io.BufferedWriter;
import java.io.FileWriter;

public class Main extends Applet{


private String datos="";
@Override
public void init() {
try{
BufferedWriter escritura =
new BufferedWriter(new FileWriter("c:\\uno.txt"));
escritura.write("hola mundo");
escritura.newLine();
escritura.close();
datos ="Hemos Escrito en el archivo";
}catch(Exception e){
datos="No podemos escribir";
e.printStackTrace();
}
}
@Override
public void paint(Graphics g) {
g.drawString(datos, 10, 10);
}
}
Esta clase posee una propiedad llamada datos, la cual se llenará en el método init del
Applet con un mensaje “Hemos Escrito en el archivo” en caso que podamos escribir el
archivo, y “No podemos escribir” en caso de que no podamos escribir en el archivo.
Trataremos de escribir la palabra “hola mundo”
Si ejecutamos esta clase desde Netbeans veríamos:

William Valdovinos
Y al revisar en archivo “c:\uno.txt”, comprobamos que su contenido es “hola mundo”

William Valdovinos
Y la clase Dos.java, contiene:

package prueba;

import java.applet.Applet;
import java.awt.Graphics;

public class Dos extends Applet{

@Override
public void paint(Graphics g) {
g.drawString("Estoy en el Applet Dos", 10, 10);
}
}

Esta clase lo único que realiza es escribir el texto “Estoy en el Applet Dos”, si la
ejecutamos desde Netbeans veríamos:

William Valdovinos
Ahora crearemos un archivo JAR desde Netbeans

Le damos al nombre del proyecto en “Projects” con el segundo botón del Mouse y
escogemos “Clean and Build”

Como mensaje de salida veríamos:

Donde:
C:\Documents and Settings\Alumno\Mis documentos\NetBeansProjects\Prueba\dist\Prueba.jar
Es la ubicación de JAR creado.

William Valdovinos
Ahora para el ejemplo crearemos una página HTML que utilice nuestro Applet. Para el
ejemplo crearemos la página en el mismo directorio donde esta nuestro JAR.

index.html

<html>
<head>
<title>Prueba de Applet</title>
</head>
<body>
<applet code="prueba/Dos.class" archive="Prueba.jar">
</applet>
</body>
</html>
Donde: prueba/Dos.class es el Packaged y la clase que quiero visualizar en mi HTML, y
Prueba.jar, el JAR que contiene esa clase.

Si visualizamos la página en algún explorador, veríamos:

Ahora si modificamos la página y la dejamos:

index.html
<html>
<head>
<title>Prueba de Applet</title>
</head>
<body>
<applet code="prueba/Main.class" archive="Prueba.jar">
</applet>
</body>
</html>

William Valdovinos
Si visualizamos la página en algún explorador, veríamos:

Qué paso, no podemos escribir, si nos fijamos en la consola apareció lo siguiente:

java.security.AccessControlException: access denied (java.io.FilePermission c:\uno.txt write)


at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkWrite(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileWriter.<init>(Unknown Source)
at prueba.Main.init(Main.java:13)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Desde el Applet no nos esta dejando escribir en un archivo. Para


poder hacer esto, debemos firmar el JAR creado.

William Valdovinos
Para firmarlo, abriremos una consola de D.O.S. (inicio-> ejecutar-> cmd) y nos
posicionaremos en la carpeta bin del jdk.
Lo primero que debemos hacer es crearnos una clave para firmar
Escribiremos el siguiente comando:

keytool.exe -genkey -alias <alias> -v

donde <alias>, se debe representar con un nombre que utilizaremos para firmar nuestro
JAR

Ejemplo:

Nos pedirá los siguientes datos:


Cuáles son su nombre y su apellido?
Cuál es el nombre de su unidad de organización?
Cuál es el nombre de su organización?
Cuál es el nombre de su ciudad o localidad?
Cuál es el nombre de su estado o provincia?
Cuál es el código de país de dos letras de la unidad?
Para el ejemplo se ingreso lo siguiente:

William Valdovinos
Luego nos pedirá confirmar lo datos, con un mensaje como el siguiente:
Es correcto CN=william valdovinos, OU=desarrollo, O=AIEP, L=santiago,
ST=santiago, C=CL?
[no]: si

Y le diremos que si.

Luego aparecerá un mensaje similar al siguiente:

Generando bit 1.024 par de claves DSA y certificado autofirmado


(SHA1WithDSA) para: CN=william valdovinos, OU=desarrollo, O=AIEP,
L=santiago, ST=santiago, C=CL
Escriba la contraseña clave para <prueba>
(INTRO si es la misma contraseña que la del almacÚn de claves): 123456
En el cual deberemos volver a ingresar la contraseña y por ultimo saldrá el siguiente
mensaje:

[Almacenando C:\Documents and Settings\Alumno\.keystore]

Ya tenemos la clave para firmar el JAR, ahora lo firmaremos:

Continuamos en D.O.S. y escribimos

jarsigner.exe "c:\Documents and Settings\Alumno\Mis


documentos\NetBeansProjects\Prueba\dist\Prueba.jar" prueba -verbose

Donde:
“C:\Documents and Settings\Alumno\Mis
documentos\NetBeansProjects\Prueba\dist\Prueba.jar” es la ruta del JAR que
firmar.
Y prueba es el alias con el que firmaremos

Luego nos pedirá la contraseña:


Enter Passphrase for keystore:
Y escribimos nuevamente la contraseña creada.

William Valdovinos
En el ejemplo quedaría:

Ya esta firmado nuestro JAR ya lo podemos utilizar, así que volvamos a visualizar
nuestra página.

William Valdovinos
Ahora al abrir la página nos aparece el siguiente mensaje:

Al cual le daremos ejecutar, para permitir la escritura en nuestro archivo, ahora la


página muestra:

Y el archivo esta con el dato enviado.

Espero les sirva.

William Valdovinos

S-ar putea să vă placă și