Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo an Alle!
Wenn ich mein Project als jar Datei exportiere (Eclipse) werden meine ganzen Bilder vom Ordner Bilder nicht angezeigt!
Ich habe schon gelesen das eine jar Datei keinen pfad mehr hat aber wenn ich die bilder in C:Bilder speichere funktioniert es doch auch mit pfad!
wenn ich die Bilder im gleichen Ordner wie die Klassen abspeicher funktioniert es zwar als jar Datei aber wenn ich dann aus eclipse heraus starte funktioniert es nicht!
Auserdem zeigt es wenn ich die exportierte jar Datei starte nur die png Dilder an aber nicht die jpg!
ich werde so langsam irre im Kopf bitte helft mir!???:L:shock:
Wie darin beschrieben, rate ich, mal die JAR-Datei auszupacken. JAR-Dateien sind auch "nur" ZIP-Dateien.
Dann kannst du probieren, ob alle Dateien/Bilder drin sind, die du vermutest UND ob das Programm in ausgepackter Form läuft.
Danke schon mal im voraus !
wenn ich ""ImageIcon img = Toolkit.getDefaultToolkit.getImage("./Bilder/e-mail.png");"" eingebe dann ist getDefaultToolkit.getImage rot unterstrichen und zeigt fehler an
""getDefaultToolkit cannot be resolved or is not a field""
Das mit rechtsklick und use as a source Folder hat funktioniert
In Eclipse siehst du in der Debug-View ja den Aufruf von javaw. Diese Zeile kannst du mit rechter Maustaste anklicken und dir die Properties anzeigen lassen. Da wird dir die genaue Command-Line angezeigt, die Eclipse verwendet hat um dein Programm zu starten.
Genau dieses Kommando musst du von der Kommandozeile angeben.
Hallo Leute!
Ich habe mich da leider vertan!
Ich hatte einen Order der Bilder hieß auf dem Desctop und da waren die gleichen Bilder drinn wie auf den Pfaden!
Also funktioniert es natürlich nicht! Mein Fehler sorry!!!???:L;oops:
Wenn ich kurz zusammenfassen darf was ich bis jetzt gelesen und wie ich diese Situation interpretiert habe.
1. Du moechtest dass die Bilder, die du in deinem Projekt verwendest beim Builden in das jar kopiert werden?
2. Nun hast du das Problem das dein angegebener Pfad nicht dem in deinem Projekt entspricht?
Ich hoffe dies soweit richtig verstanden zu haben. Wie turtle bereits sagte schau dir einfach Mal die neue Struktur nach dem Builden im jar an.
Jetzt wirds ein bisschen tricky, denn ich glaube ich hatte bereits ein aehnliches Problem.
Nachdem du dein Projekt gebuildet hast erhaelst du dein jar. Die Ordnerstruktur ist nun evtl. nicht mehr identisch mit der in deinem Projekt. Daraus folgt das deine angegebenen Pfade nicht mehr stimmen. Was die einfachste aller Loesungen waere ist du musst ein / vor dein Pfad setzten z.B "dies/ist/mein.png" -> "/dies/ist/mein.png ansonsten wird es dir wohl nicht erspart bleiben die files direkt aus den Path im .jar auszulesen. Ein kleiner Tip, Rueckwaertsnavigieren funktioniert hier nicht!!! Also "../" macht dich hier nicht gluecklich du kannst nur vorwaerts navigieren. Sprich die Bilder muessen im Path (Dieser Classpath hat nichts mit dem von Windows zu tun, das ist der "Hauptpfad" in deinem jar) sein. Auf diesen Hauptpfad hast du in deinem Projekt spaeter direkten Zugriff hier ein kleines Bsp. . Evtl. hilft diese ungenuegende Erklaerung in die richtige Richtung zu deuten damit du dein Problem geloest bekommst.
Danke HansimGlück auch wenn ich dadurch leider nicht weiter komme !
Die Bilder werden im Jar abgespeichert und wenn ich die jar entpacke sind die Bilder auch drin!
Wenn ich nun in dem entpackten jar file auf ein bild klicke und mir den pfad anzeigen lasse zeigt er mir den Pfad an in dem ich es entpackt habe!
Ich will ja aber das wenn ich mit doppeltklick die jar starte das die bilder dann angezeigt werden!
Wenn der pfad von den Bildern nun ein anderer ist als in meinem Projeckt wie finde ich den Pfad heraus?
Ich will den Pfad von den Bildern in der (uhnentpackten) jar angeben!
Ich rate dir mal meinen Blog-Eintrag durchzulesen.
Ich habe nur kurz in dein Programm geschaut und mir sind mehrere Dinge aufgefallen.
Erstens setzt du die Controls (Labels) ohne Layout-Manager. Dies macht man nicht da es sehr sehr schwer ist, das zu verwalten. Ich habe das mal geändert und zumindest alle drei Labels auf ein JPanel gesetzt mit GridBaglayout. (Eigentlich nehme ich immer jgoodies-Formlayout, wollte es aber nicht auch noch ändern).
Weiterhin erbst du von JFrame und das mache ich praktisch nie. Du überschreibst nämlich NICHTS von JFrame sondern setzt nur gewisse Eigenschaften, also keinen Grund von JFrame zu erben. Ich erbe aber von JPanel, denn du setzt ja diverse Controls (Labels) auf dem JPanel und überschreibst das Verhalten, wenn man auf eins klickt.
Du hast diverse Bildchen (IMG*.png) überhaupt nicht in der JAR-Datei drin, also können diese auch nicht angezeigt werden.
Natürlich, und das ist der grösste Fehler, willst du Bilder so laden
Java:
new ImageIcon("./Bilder/e-mail.png");
Das geht nicht, wie im Blog beschrieben, aus einer JAR-Datei heraus. Daher solltest du die Bilder über den ClassPath lade
Java:
new ImageIcon(Fenster2.class.getResource("/images/itunes.png")
Dieses geht immer, wenn der ClassPath richtig gesetzt ist, also auch innerhalb einer JAR.
Ich habe mal meinen Source beigefügt, indem die gröbsten Dinge geändert wurden Und meine JAR habe ich auch angehängt und einen Screenshoz wie es bei mir aussieht.
PS: Ach ja, noch etwas...
Ich bin auch Anhänger von clean-code und meine,dass ein Programm LESBAR sein muss. Daher sind beispielsweise Variablen wie jl2 oder jL1 mir ein Graus. Was spricht dagegegen
die Variable lblInternetImage oder lblTunesImage zu nennen? Dann wissen wir und auch du noch in zwei Tagen, wofür das Label da ist.
Zeilen wie diese
Java:
System.out.println(e1);
e1.printStackTrace();
sind ebenfalls Unfug
Java:
e1.printStackTrace();
reicht vollkommen.
Java:
package test;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Fenster2 extends JPanel {
private int anzahl;
public String Eingabe;
public Fenster2() {
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[] { 1, 1, 1, 0 };
gridBagLayout.rowHeights = new int[] { 1, 0 };
gridBagLayout.columnWeights = new double[] { 0.0, 0.0, 0.0,
Double.MIN_VALUE };
gridBagLayout.rowWeights = new double[] { 0.0, Double.MIN_VALUE };
setLayout(gridBagLayout);
final JLabel lblInternetImage = new JLabel();
lblInternetImage.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
String sURL = "http://google.de";
java.awt.Desktop desktop = java.awt.Desktop.getDesktop();
if (desktop.isSupported(java.awt.Desktop.Action.BROWSE)) {
try {
java.net.URI uri = new java.net.URI(sURL);
desktop.browse(uri);
} catch (Exception e1) {
System.out.println(e1);
e1.printStackTrace();
}
}
}
});
lblInternetImage.setIcon(new ImageIcon(Fenster2.class
.getResource("/images/internet.png")));
GridBagConstraints gbc_jl = new GridBagConstraints();
gbc_jl.anchor = GridBagConstraints.NORTHWEST;
gbc_jl.insets = new Insets(0, 0, 0, 5);
gbc_jl.gridx = 0;
gbc_jl.gridy = 0;
add(lblInternetImage, gbc_jl);
final JLabel lblTunesImage = new JLabel();
lblTunesImage.setIcon(new ImageIcon(Fenster2.class
.getResource("/images/itunes.png")));
GridBagConstraints gbc_jl2 = new GridBagConstraints();
gbc_jl2.anchor = GridBagConstraints.NORTHWEST;
gbc_jl2.insets = new Insets(0, 0, 0, 5);
gbc_jl2.gridx = 1;
gbc_jl2.gridy = 0;
add(lblTunesImage, gbc_jl2);
final JLabel lblEmailImage = new JLabel();
lblEmailImage.setIcon(new ImageIcon(Fenster2.class
.getResource("/images/e-mail.png")));
GridBagConstraints gbc_jl3 = new GridBagConstraints();
gbc_jl3.anchor = GridBagConstraints.NORTHWEST;
gbc_jl3.gridx = 2;
gbc_jl3.gridy = 0;
add(lblEmailImage, gbc_jl3);
}
public static void main(String[] args) {
JFrame frame = new JFrame("Fenster");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Fenster2 fenster2 = new Fenster2();
frame.add(fenster2);
frame.pack();
frame.setVisible(true);
}
}
Hallo turtle
Ich wünsche noch ein frohes neues (auch wenn es bissle spät ist war aber nicht daheim!)
Ich habe mal deinen code komplett kopiert (und abgeändert von Fenster 2 auf Fenster 3) um zu schauen ob es bei mir auch funktioniert!
Leider tut es das nicht!
Deine jar funktioniert super bei mir!
Habe ich in der Baumstruktur einen Fehler??
Bei mir sind in der entpackten jar Datei die Meta-inf , test , und die Bilder
Bei dir sind in der entpackten jar Datei die Meta-inf , test , und der Ordner Images wo die Bilder drin sind!
Ich bekomme einfach den Ordner Images nicht in die (entpackte) jar Datei er macht die Bilder einfach immer direckt hinein!???:L