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.
Mit 1.5 geschriebenes Programm 1.4 kompatibel machn
So wie die Überschrift schon sagt. Ich hab gedacht, dass ich das java proggy mitsamt der classfile und allen classfiles die irgendwie durch Vererbung verbunden mit der sind von der man das Objekt braucht welches es in 1.4 nicht nicht gibt(huchje kompliziert^^) in ein jar packe. Geht das dann oder nimmt er zB Befehle nicht die in ner java umgebung auf nem anderen Rechner gleich heißen sollte und bei mir igrendwie leicht verändert drin sin (als Beispiel zB ArrayList<E> vs. ArrayList)?
solange keine spezifischen Java 1.5 Elemente verwendet worden sind, könnte das funktionieren. Du bringst aber selber gleich das Beispiel mit den Generics, die sind in 1.4 nicht vorhanden und lassen sich ohne Quelltextänderung auch nicht rückportieren.
BTW wofür brauchst du das eigentlich, ist es denn nicht möglich auf der Zielumgebung eine entsprechenden JRE zu installieren?
hi.
d.h. dass ich selbst wenn ich hier die Klasse ArrayList aus 1.5 mitliefer und ebenso sämtliche klassen von denen ArrayList erbt is auf einem Rechner mit 1.4 trotzdem kein ArrayList<E> bekannt?
Der/bzw. die Zielrechner stehen in der Schule und haben alle javaumgebung 1.4 :-(
hi.
d.h. dass ich selbst wenn ich hier die Klasse ArrayList aus 1.5 mitliefer und ebenso sämtliche klassen von denen ArrayList erbt is auf einem Rechner mit 1.4 trotzdem kein ArrayList<E> bekannt?
Exakt, weil Generics sind Spracherweiterungen, die die JRE 1.4 nicht beherrscht. An dieser Stelle herrscht keine Abwärtskompatibilität von 1.5 nach 1.4
mhhh...allerdings existieren die Generics doch zur Programmlaufzeit garnicht mehr, hilft das nicht?
Aber ohne Quelltextänderung sehe ich trotzdem no chance, probier mal mit nem 1.4 Compiler zu kompilieren, an den fehlermeldungen siehst du, wo du ändern musst, wenn du Glück hast ist das nicht zuviel...
In order to support generic types, some modifications are necessary to the Java programming language, the Java virtual machine1, and the Java APIs. The notable changes to the Java APIs are related to the Collection hierarchy in the java.util package, changes to the java.lang.Class class, and the java.lang.reflect package so that it is possible to examine a type, method, constructor or field declaration and obtain generic type information. If you like to learn about the exact changes, please see JSR 14: Adding Generics to the Java Programming Language.
Der JBuilder kann allerdings auch irgendwie Klassen mit Generics so übersetzen das sie unter 1.4 oder 1.3 laufen, man darf nur keine Methoden oder Klassen benutzen die nicht auf den älteren VM´s vorkommen benutzen.
Der retrowaever sieht schon mal ziemlich gut aus ;-)
Ich hab inzwischen mein Programm nochmal überdacht und hab es tatsächlich geschafft noch was von den Generics wegzukriegen.
vielleicht gibts ja auch ne Möglichkeit das letzte auf 1.4 umzuschreiben, nur schaff ich das mit meinem unzureichenden Kenntnissen nicht. wenns nicht geht nehm ich halt nen retroweaver und wenn ich inner Schule den code brauch darf ich ihn halt dort nicht compilieren...
Code:
public ArrayList<File> searchFile(File dir, String find) {
File[] files = dir.listFiles();
ArrayList<File> matches = new ArrayList<File> ();
if (files != null) {
for (int i = 0; i < files.length; i++) {
if (files[i].getName().equalsIgnoreCase(find)) { // überprüft ob der Dateiname mit dem Suchstring
// übereinstimmt. Groß-/Kleinschreibung wird
// ignoriert.
matches.add(files[i]);
}
if (files[i].isDirectory()) {
matches.addAll(searchFile(files[i], find)); // fügt der ArrayList die ArrayList mit den
// Treffern aus dem Unterordner hinzu
}
}
}
return matches;
}
und das funktioniert dann? Muss ich dass auf eine ArrayList ohne <file> anders zugreifen, also zB.: noch meinem programm sagen das etwa ArrayList.get(1) ein File is oder weiß das proggy das? weil mit <file> weiß es das ja...
Wenn das mit einem Java 5 Compiler kompilert wird geht's aber trotzdem nicht. Es sei denn das compilance Level wird gesenkt, und dann weiß ich nicht ob er die Schleife akzeptiert.
wer redet vom 1.4 compiler? ich rede vom 1.5 compiler.
ansonsten würde die aussage der [1.4] compiler generiert 1.4 kompatiblen bytecode auch noch weniger sinn machen :bahnhof: :autsch:
wer redet vom 1.4 compiler? ich rede vom 1.5 compiler.
ansonsten würde die aussage der [1.4] compiler generiert 1.4 kompatiblen bytecode auch noch weniger sinn machen :bahnhof: :autsch:
nö, wieso, wenn ich mit 1.5 schreibe, habich auch nen 1.5 compiler.
mein post bezog sich eigentlich auch nur auf wildcards "die for-each Schleife gibt's in Java 1.4 nicht" weiß gar nich was du dich da einmischst :O