Hej!
Hur gör man en exekverbar jar-fil av en applikation, som kan köras vart som helst? Har lyckats med att göra en exekverbar jar-fil, men den fungerar inte utanför den katalog som den skapades i. :l
MVH Rex
6 svar · 501 visningar · startad av Rex Nemo
Hej!
Hur gör man en exekverbar jar-fil av en applikation, som kan köras vart som helst? Har lyckats med att göra en exekverbar jar-fil, men den fungerar inte utanför den katalog som den skapades i. :l
MVH Rex
Ta en titt på installationsprogrammet InstallAnywhere. Det är ett mycket bra program för att skapa installationspaket. Skapar paket som installeras/avinstalleras på ett "riktigt sätt".
Man kan göra installationspaket för flertalet plattformar.
Man kan välja att installera med en bestämd JRE så att det inte blir nåt strul där. + en massa annat trevligt.
Det finns en version som är helt gratis, det enda du behöver göra är att registrera dig för att få tag i en kod som dom skickar till dig.
Kanske inte exakt vad du letar efter, men det kan kanske va till nytta ändå :)
Kika här http://www.installanywhere.com/
Tack för tipset ps, men jag är ute efter att få veta vad jag kan ha gjort för fel, och vad det är jag måste göra för att kunna exekvera en jar-fil utanför den mapp där den har skapats.
MVH Rex
Kan det vara så att du använder package men att filerna inte ligger i kataloger i Jar filen? Eller att du anroppar någon fil som inte ligger i Jar filen men som ligger i den katalog där du har skapat din jar fil.
/Viktor
Tack för tipset Viktor!
Problemet verkar vara en textfil och några bilder som programmet inte kan hitta. Detta är det felmeddelande jag får för textfilen:
C:\Mina dokument\Mina projekt\Java>java -jar Parser.jar
Exception in thread "main" java.io.FileNotFoundException: .\text\laf.txt (Det går inte att hitta filen)
Om jag kommenterar bort anropet till textfilen, får jag igång programmet, men då saknas bilderna. Bilderna ligger i en mapp som heter bilder och textfilen ligger i en mapp som heter text. Varför kan inte programmet hitta dessa, fastän jag vet att de finns med i jar-filen?
Jag antar att du bara använder dig av "File f = new File(".\text\laf.txt");" för att få tag på filen? Det funkar jättebra om man vet var filerna står.
Om man inte vet det så kan man använda sig av snutten (jag öppnar en bild, men jag tror du fattar teorin...:
try{
URL fileurl = ClassLoader.getSystemResource(filename);
image = this.getToolkit().getImage(fileurl);
}
...
/Lime
Tack för hjälpen Lime!
Jag undrar om felet kan bero på att jag har skapat jar-filen på fel sätt, så här har jag gjort jar-filen:
1. Skapat en META-INF mapp som innehåller en MANIFEST.MF-fil.
2. Använt WinZip för att zippa de filer och mappar som ska vara med.
3. Använt ZipAnywhere för att öppna zip-filen och skapa en exekverbar jar-fil.
Om jag försöker att skapa jar-filen från prompten enligt de instruktioner som står i javas jar-tutorial (jar cvf Parser.jar *), får jag bara ett felmeddelande där det står att jag har angett fel kommando eller filnamn.
Så här ser MANIFEST.MF ut för tillfället (har provat olika kombinationer):
Main-Class: Parser
Varför funkar inte sökvägarna, jag zippar ju med mappar och allt, det borde väl göra att sökvägarna bibehålls? Jar bygger ju på zip, så det borde väl funka?
Anropet till textfilen ser ut så här:
private static void hämtaLookAndFeel() throws IOException, FileNotFoundException
{
BufferedReader laf = new BufferedReader(new FileReader(".\\text\\laf.txt"));
String strLookAndFeel = laf.readLine();
ändraLookAndFeel(strLookAndFeel);
Meny.visaCheckboxar(strLookAndFeel);
}
... och anropet till en av bilderna ser ut så här:
private static JButton btnStart = new JButton(new ImageIcon(".\\bilder\\start.gif"));
MVH Rex