4 svar
102 visningar
Mimamed är nöjd med hjälpen!
Mimamed 19
Postad: 19 okt 2019

Bilder och filer visas inte efter att ha exporterat java projektet till en "runnable JAR file"

hello
Här är en beskrivning av programmerings problemet jag har stött på och fastnat i.


Jag programmerar i java med eclipse.

 

I min programm så använder vi oss av bilder och andra typer av filer för olika syften så som tex bilder att använda som bakgrund i ett fönster eller ljudfiler för att spela upp ljudeffekter för knappar osv. I eclipse(programmeringsprogrammet) körs filen perfekt utan problem.

 

problemet kommer in när vi exporterar projektet till en körbar java fil(runnable jar). Den Körbara filen vi exportera projektet till körs precis som vi hadde programerat den att göra men alla filer vi använt oss, alltså ljud, bilder osv är inte åtkommliga som om de inte exporterades med i projektet.


Om vi bryter ner problemet i enklaste form så har jag programerat en vanligt fönster som ska visa en bild(pap.PNG).
bilden är bevarad i en "source folder" i projektet. Se bild nedan


Därefter exporterar filen till "runnable jar" såhär (se bild nedan)


Detta blir resultatet efter att ha exporterat


Bilden är borta.


Jag förstår att felet kan vara i sättet jag får fram bilden alltså kod rad  23 (se bild nedan)


Jag har försökt att lösa den genom att byta ut den med tex koden: Class1.class.getResource("pap.PNG");


och liknande kod som har med "getResource" att göra och inget verkar ha löst det. Antingen blir det ett fel medelande eller så sker samma resultat. Hjälp

Per9411 4
Postad: 1 dec 2019

För det första använd inte special teken som å,ä,ö pga att de kan skapa buggar i programmering.

Sen en bra tips är att köra System.out.print. 

Så kör en System.out.print på bild och se vad du får för något resultat. :)

Mimamed 19
Postad: 3 jan 2020
Per9411 skrev:

För det första använd inte special teken som å,ä,ö pga att de kan skapa buggar i programmering.

Sen en bra tips är att köra System.out.print. 

Så kör en System.out.print på bild och se vad du får för något resultat. :)

På vilket sätt menar du?

 

Jag förstår inte hur du vill jag ska använda system.out.print för att testa saken du vill testa

Tegelhus 179
Postad: 3 jan 2020

Har stött på liknande problem och det var rätt drygt att lösa. Antar att bilderna ligger i JAR-filen?

Prova med något i stil med

URL imageURL = ImageLoader.class.getResource("/" + imageName);

Image image = ImageIO.read(imageURL)

Att köra / i början av vägen till bilden kan hjälpa, det gör att programmet utgår från "botten" av JAR-filen och letar därifrån

Laguna 11023
Postad: 4 jan 2020

Är 'bild' både en klass och namnet på en variabel? Det finns ingen koppling jag kan se mellan dem, så du måste göra något med variabeln bild så att den kopplas till variabeln pan.

Svara Avbryt
Close