Ich versuche gerade, ein Spiel zu entwickeln, und der Dateipfad ändert sich, wenn ich es exportiere. HierDateipfad beim Exportieren ändern
ist der Code:
package random;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
public class Troll extends JFrame{
/**
*
*/
private static final long serialVersionUID = 4176461585360667597L;
public static BufferedImage img;
public static void main(String[] args){
File f = new File("troll.png");
try{
if(f.exists()){
System.out.println("ITS THERE! :D");
img = ImageIO.read(f);
} else {
System.out.println("DOESNT EXIST, REAL PATH IS: " + f.getAbsolutePath());
}
}catch(Exception e){
e.printStackTrace();
}
new Troll();
}
public Troll(){
init();
}
public void init(){
setSize(1200,800);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public void paint(Graphics g){
g.drawImage(img, 500, 350, this);
}
}
Wenn ich führen Sie es durch Eclipse-(The IDE Ich verwende), es läuft gut und es zeigt das Bild. Wenn ich es als jar exportiere und es mit Jar2Exe Software in eine exe konvertiere, erscheint das Bild nicht und in der Konsole steht, dass der absolute Pfad für das Bild auf meinem Desktop ist. Aber wenn ich die exe mit 7-Zip öffne, ist das Bild in der exe.
Wie kann ich es exportieren, so dass, wenn der Benutzer es ausführt, das Programm den Dateipfad finden und das Bild anzeigen kann, anstatt zu denken, dass es auf meinem Desktop ist?
Bezug genommen auf beide Antworten, aber weiter: Anwendungsressourcen werden zum Zeitpunkt der Bereitstellung zu eingebetteten Ressourcen, so dass es ratsam ist, auf sie zuzugreifen, als ob sie gerade jetzt wären. Auf ein [tag: embedded-resource] muss nicht die Datei, sondern die URL zugreifen. Siehe [Info. Seite für eingebettete Ressource] (http://stackoverflow.com/tags/embedded-resource/info) zum Erstellen der URL. –