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.
Ich habe Windows möchte mit javac mein Programm compilieren und erhalte stets Fehlermeldungen wie :
[code =Java]
LinkedTreeMap city = (LinkedTreeMap).....
^
(error: cannot find symbol)
[/java]
in Eclipse funktioniert alles super toll.
Zusätzlich: ich habe eine referenzierte Library, welche auf meinem System unter einem anderen Datenträger liegt.
Wie nun kann ich das Programm korrekt kompilieren.
In Eclipse habe ich @suppressingWarnungen und ähnliches getätigt.
Wenn das Programm so funktionieren würde, wäre ich trotz Warnung zufrieden.
LinkedTreeMap ist ja kein Bestandteil von Java SE. Daher musst Du den Classpath angeben.
Ich gehe mal von einer externen Bibliothek aus, sagen wir mal gson-2.8.5.jar. Dann kompilierst Du z. B. unter Windows (unter Linux wäre ein Doppelpunkt der Pfadtrenner) mit
Vielen Dank. Das hat funktioniert. Jetzt erhalte ich beim Starten des Programms jedoch noch einen Fehler:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/gson/Gson
at Weather.jsonToMap(Weather.java:291)
at Weather.getData(Weather.java:335)
at Weather.wetterAktuell(Weather.java:448)
at Weather.main(Weather.java:208)
Caused by: java.lang.ClassNotFoundException: com.google.gson.Gson
vielleicht zur Erklärung was ich gemacht habe. Ich habe die gson Datei direkt in den Ordner src/... reinkopiert und dann wie du gesagt hast kompiliert.
Ich hoffe, Du machst das nur aus einem Spieltrieb heraus.
Bei kleinen Projekten kann man das noch manuell machen, für größere (mehrere Pakete) würde ich ein Build-System wie maven oder gradle einsetzen.
Die Kompilierung wie oben mache ich nur für Kleinstprojekte, wenn ich z. B. hier fürs Forum etwas schreibe. Normalerweise spielt es für mich dann keine Rolle, dass .class- und .java-Dateien sich im gleichen Ordner befinden.
Man kann src- und build-Verzeichnis auch vernünftig trennen und manuell ein ausführbares Jar erstellen.
Eine Sache vll noch:
Das hat vielleicht jetzt nicht direkt mit dem Eintrag was zu tun, aber gibt es eine schönere Möglichkeit ein Programm zu starten, als ein Bashskript den Pfad des Programms anzugeben und somit das Javaprogramm zu starten?
ich habe ja keine .exe Datei
Mich stört dabei das schwarze Fenster was immer offen bleibt, klar ich könnte es ggf. minimiert starten.
Wenn ich das Programm jetzt sinnvoll nutzen möchte, wie gehe ich da am Besten vor?
ggf. Umgebungsvariablen setzen? Vielleicht denke ich auch einfach zu kompliziert dabei.
Was ich will ist eine Verknüpfung, ich drück doppelklick und das Programm startet wie jedes andere Programm und ich seh nur das was ich in Eclipse auch sehe
Schreib eine Textdatei, sagen wir mal manifest.txt, mit folgendem Inhalt
Code:
Class-Path: gson-2.8.5.jar
Main-Class: Weather
und erzeuge ein Jar:
Code:
jar cvfm app.jar manifest.txt *.class
Danach solltest Du per
Code:
java -jar app.jar
die Anwendung starten können. Genauso gut dürfte das dann per Doppelklick funktionieren - ohne Konsolenfenster (der Doppeklick startet javaw statt java).
Danke hat funktioniert. Jedoch hatte ich zuerst den Fehler kein Hauptmanifestattribut gefunden.
Erst als ich in der manifest.txt nochmal ein newLine gemacht hab, also ein Enter hat es funktioniert.