PDA

View Full Version : Problema coi file Jar di java!


Mazza2
28-11-2002, 22:29
ho fatto un programma nel quale viene settata l'icona in alto a sinistra diversa sa quella standard di java.

dopodiche' ho creato il jar inserendo all'interno di esso le due classi di cui e' formato il programma e il file icona.jpg che e' l'icona che metto in alto a sinistra.

quando faccio partire il programma dal jar in alto a sinistra non si vede nulla.

che path devo usare all'interno del programma per vedere l'immagine quando e' tutto messo nel jar?

l.golinelli
29-11-2002, 09:02
Se metti l'indirizzo normale dell'immagine devi lasciare l'immagine fuori dal File Jar...

Altrimenti devi mettere come indirzzo dell'immagine qualcosa come:

Class.forName.getResource("file_immagine"); // + o -

Allora puoi inserire l'immagine nel file Jar.



:rolleyes:

l.golinelli
29-11-2002, 09:10
Non sono sicuro di quello che ho detto...

Prova a guardare nelle demo del JDK come fanno...

:(

PGI
29-11-2002, 13:11
//jar mcf0 manifest.txt Esperimento.jar Esperimento.class immagini/

import javax.swing.*;
import java.net.*;
import java.awt.*;

class Esperimento extends JFrame {
public static void main(String[] arg) {
Esperimento th=new Esperimento();
}

Esperimento() {
this.getContentPane().add(new JTextArea());
this.setSize(400,400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
try {
ClassLoader loader=getClass().getClassLoader();
URL fileLocation=loader.getResource("immagini/spunky.GIF");
Image img=Toolkit.getDefaultToolkit().getImage(fileLocation);
this.setIconImage(img);
} catch (Exception e) {
System.out.println(e);
System.exit(0);
}
this.show();
}
}


Il separatore tra cartelle deve essere "/" e la stringa è "case sensitive", per questo ho scritto "spunky.GIF" e non "spunky.gif".

Ciao.

Mazza2
29-11-2002, 23:28
ho un altro problema,... come faccio ad eseguire un file .txt (aprendo notepad) che e' dentro al jar?

Mazza2
30-11-2002, 15:18
su dai un aiutino:D

Mazza2
30-11-2002, 21:37
up

PGI
01-12-2002, 09:24
Se devi aprirlo proprio con notepad allora devi estrarre il contenuto del file tramite il metodo "url.openStream()", creare un file temporaneo, aprirlo con "Runtime.getRuntime().exec("notepad tempFile.txt")" e, una volta modificato, ricacciarlo dentro all'archivio con un "JAROutputStream" e poi cancellare il file temporaneo.

Un po' più semplice sarebbe creare una miniclasse java che faccia da surrogato di "Notepad.exe" (che, diciamocelo, non è Word :D ) e lì le cose cambiano perchè puoi a prire e salvare il file direttamente dall'archivio.

Tra le due soluzioni la prima è più divertente ma la seconda è più "rapida".

Ciao.

deviation
06-12-2002, 12:01
Scusate una domanda:
il manifest.txt come deve essere fatto?? :confused:

cat78
10-12-2002, 21:10
http://java.sun.com/j2se/1.4/docs/guide/jar/jar.html

:)