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 ein Projekt in NetBeans 1.7.2 mit Java 1.7.
Nun würde ich gerne das gesamte Projekt in eine JAR kompilieren.
Allerdings habe ich einen PPC Mac mit OS X 10.5.8 und leider gibt es wohl kaum eine Möglichkeit eine höhere JRE als die 1.5 darauf laufen zu lassen.
Kann ich mein Java 1.7 Projekt in eine Java 1.5 JAR-Datei kompilieren?
jar ist erstmal jar, ohne Versionierung. Es kommt nun beim Ausführen dieser jar darauf an, ob der code, der für java 1.7 geschrieben worden ist, mit einer 1.5 JRE funktioniert, Du müsstest also erstmal die relevanten Unterschiede herausfinden.
Nun, derzeitiger Status ist, dass ich eine JAR in Java 1.7 kompiliert habe, die unter Mac mit JRE 1.5 zu Fehlern kommt.
Kann ich denn nicht den Compiler in JavaBeans 1.7.2 irgendwo einstellen, sodass dieser in einer älteren Java-Version kompiliert?
Bei meinem Programm verwende ich nur Standard-Java, d.h ein paar Swing-Elemente usw.. Es sollte ansich alles in 1.5 laufen.
Gibt es einen Weg, das komplette Projekt auf seine Versionsbestandteile zu überprüfen, sodass ich weiß, was ich ändern muss, um es zu einem 1.5-Projekt zu machen?
gibt es die Klasse erst seit Version 1.6 Der Code ist also schlich inkompatibel zu 1.5 und kann nicht einfach umgestellt werden. Viel mehr musst du die Klassen, die es in 1.5 nicht gab aus dem Programm rauswerfen und es anders programmieren.
Oder du probierst die fehlenden Klassen als eigene zum Projekt hinzuzufügen.
Java ist ja OpenSource, d.h. ich könnte doch theoretisch die Klasse GroupLayout.Group und all ihre Abhängigkeiten kopieren. Allerdings stelle ich mir das ein wenig kompliziert vor.
Ich weiß nicht, wieviel an GroupLayout so dran hängt, es kann schon einiges sein.
Aber in der Theorie geht es sicher, eventuell sind nur ein paar Anpassungen am Code nötig. Vielleicht gibt es auch schon ne Lösung für das Problem "1.6 Klassen in 1.5" Google doch einfach mal
aber ich frage mich natürlich wie du überhaupt eine jar mit der version 1.5 erstellen kannst, die Komponenten der 1.6 nutzt..., dann sollte eigentlich dein code einige fehler aufwerfen, oder irre ich mich?!
Ich bin ehrlich gesagt auch etwas verwundert über dieses nicht gerade erfreuliches Ereignis, aber NetBeans meldet keine Fehler. Auch beim Ausführen mit JRE 7 gibts keine Fehler. Nur auf meinem PPC Mac OS X 10.5.8, wo nur Java 1.5 drauf ist/kann, bekomm ich dann den o.g. Fehler.
na gut, als ich vor einiger Zeit ein Projekt von 7 auf 1.6 umgstellen musste, erhielt ich im Quellcode einige Fehler, bspw. [c]JCombobox<String> jcbGender[/c] warf Compilefehler, allerding arbeite ich mit eclipse
Seltsam, die verwende ich auch, doch meldete er mir bei 1.5 keinen Fehler. ???:L
Ich habe zuvor auch mit Eclipse gearbeitet, jedoch finde ich NetBeans besser. Der UI Manager ist einfach unschlagbar und bei Eclipse gibts nicht wirklich etwas.
Außerdem nimmt einem NetBeans sehr viel ab, was Events und Listeners angeht. Die Codegenerierung und die Sicherheit vor versehentlichem Zerstören funktioniert auch erste Sahne bei NetBeans.
Für mich bleiben daher keine Argumente mehr für Eclipse übrig.
Klingt jetzt vielleicht "n00bish", aber schon mal versucht deine Source-Files via Console mit
Code:
java -source 1.5 -target 1.5 Klasse.java
zu compilen ? Weil spätestens der Oracle-Compiler vom Oracle JDK wird dir da einiges an Fehlern melden wenn du versuchst Klassen zu verwenden die es in 1.5 noch nicht gab.
Wenn irgendeine IDE (gleich ob NetBeans oder Eclipse) meint diese sehr wichtigen Fehlermeldungen zu unterdrücken, oder diese auf Grund des eigenen mitgelieferten Compilers überhaupt nicht kennt, dann würde ich mal wenigstens dafür von der IDE wieder auf Console wechseln.
btw : ein JAR kann man nicht "compilen", denn ein JAR ist lediglich ein ZIP welches um das Java-spezifische Verzeichnis "META-INF/" erweitert wird. Das was du compilen kannst ist dein Source, mehr aber auch nicht. Sowas sollte man eigentlich wissen.
Anmerkung : wenn deine App halt eine bestimmte Java-Version als Minimum vorraussetzt, dann würde ich mir an deiner Stelle nicht mal die Mühe machen versuchen zu wollen es auf einer älteren VM zum laufen zu bringen. Ich würde höchstens die betroffenen User darauf Hinweisen das auf Grund des fehlenden Supports der VM die App das Ziel-System ebenfalls nicht unterstützt ... und fertig.
(Warum versuchen eigentlich immer wieder einige sowas auf biegen und brechen zu "umgehen" nur um dann feststellen zu dürfen das es einfach nicht geht ? Kann man nicht gleich sagen : meine App braucht min. Java7, und Plattformen auf denen diese nicht verfügbar ist werden nicht unterstützt ? Scheinbar denken einige nicht so einfach.)