Jag försökte göra en jarfil där jag använder tre classfiler och en textfil för att lagra data i, Men det gick inte så bra för jarfilen startade inte. Är det något speciellt man måste skriva i koden innan man skapar en jarfil som innehåller en textfil?
Jarfil som innehåller textfil
3 svar · 454 visningar · startad av jthunders
Hur hämtar du upp din textfil?
Edit... Äh, jag förtydligar direkt istället.
Normalt när någon börjar med programmering så tenderar personen att vilja peka ut resurser hårt genom att antingen ge hela sökvägen (t.ex. D:\Java\Demo\HalloWorld\hej.gif) eller relativt (t.ex. .\hej.gif).
Det funkar inte när man sedan packar ner det i en jarfil. För att få tag på t.ex. hej.gif från en JAR-fil så gör man såhär:
// Hämta klassladdaren
ClassLoader cl = this.getClass().getClassLoader();
// Skapa bilderna
Icon saveIcon = new ImageIcon(cl.getResource("bilder/hej.gif"));
Icon cutIcon = new ImageIcon(cl.getResource("bilder/hejdå.gif"));
...
Exemplet förutsätter att du har skapat en JAR-fil där bilderna finns i katalogen bilder.
Exemplet är mer eller mindre "lånat" från Sun för att användas i den Java-kurs jag är lärare i. Se http://java.sun.com/j2se/1.5.0/docs/guide/javaws/developersguide/development.html#retrieving
har testat använda ClassLoader verkar även funka på txt men av nån anledning vägrar jar filen starta.
så här ser koden ut:
String filnamn = "Filnamn.txt";
ClassLoader cl = ClassLoader.getSystemClassLoader();
rintWriter ufil;
ufil = new PrintWriter(new BufferedWriter(new FileWriter (cl.getResource(filnamn).getFile())));
Då kommer nästa sak i alltihopa. Jag antar att du har en klass som har en Main-metod? Denna klass ska du peka ut i något som kallas för Manifest. Det är en fil som kan innehålla en massa saker men framför allt en rad som det står "Main-Class: <vilken klass som ska startas>"
Se http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/jar.html
http://www.captain.at/programming/java/executable-java-application.php har en ganska bra beskrivning också.