ANT (mittlerw. ProGuard) und JDK 1.6

Status
Nicht offen für weitere Antworten.

Saxony

Top Contributor
Hiho,

ich wollte mal wissen, wieso bei mir ANT meine JDK Installation nicht findet?

Installiert habe ich JDK 1.6.

Ein ant.java.version liefert aber "1.5".

Läuft nun mein ANT Skript, wird erst einmal alles ordentlich kompiliert. Wenn aber nun mein Build weiter läuft kommt diese Meldung:

Meldung hat gesagt.:
(Can't process class file [com/MyCompany/MyClass.class]
(Unsupported version number [50.0] for class file format))

Das sieht für mich so aus, als ob ANT zwar mit der 6er Version kompiliert (deswegen version number [50.0]), dann aber im weiteren Verlauf mit JDK 1.5 die jars bauen will!?!

JAVA_HOME habe ich als Systemvariable auf mein JDK 1.6 base directory gesetzt (C:\Programme\Java\jdk1.6.0)!
Verwenden tue ich Apache Ant 1.6.5.

bye Saxony
 

Saxony

Top Contributor
Mittlerweile habe ich festgestellt, dass da eine Exception von ProGuard kommt:

Exception hat gesagt.:
(Can't process class file [com/MyCompany/MyClass.class] (Unsupport
ed version number [50.0] for class file format))
at proguard.ant.ProGuardTask.execute(ProGuardTask.java:204)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
at org.apache.tools.ant.Task.perform(Task.java:364)
at org.apache.tools.ant.Target.execute(Target.java:341)
at org.apache.tools.ant.Target.performTasks(Target.java:369)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe
cutor.java:40)
at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
at org.apache.tools.ant.Main.runBuild(Main.java:668)
at org.apache.tools.ant.Main.startAnt(Main.java:187)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)

Heißt dass nun, dass ProGuard (wahrscheinlich mit 1.5 erstellt) keinen Code obfukiert, welcher mit 1.6 kompiliert wurde?

Außerdem bleibt die Frage wieso Ant nur ein Java 1.5 erkennt - hierzu steht aber in der Ant Hilfe folgendes:

Ant Hilfe hat gesagt.:
ant.java.version
the JVM version Ant detected; currently it can hold the values "1.2", "1.3", "1.4" and "1.5".

Im Ant manual steht weiterhin:

Ant Manual hat gesagt.:
For the current version of Ant, you will also need a JDK installed on your system, version 1.2 or later required, 1.5 or later strongly recommended. The later the version of Java , the more Ant tasks you get.

Dies bedeutet Ant kann nicht mehr als 1.5 anzeigen (ant.java.version) und kommt somit auch mit einem JDK 1.6 klar. Somit müsste der Fehler also beim Obfuscator ProGuard liegen!

Als Version habe ich hier: ProGuard, version 3.3.2

Naja ich schau mal obs ein mit 1.6 kompiliertes ProGuard gibt.

bye Saxony
 
M

maki

Gast
Startest du Ant von der Kommandozeile, oder aus einer IDE heraus?
 

SnooP

Top Contributor
klar - wenn das ein ProGuard-Task ist und der nur 1.5 kann... kann er wohl mit 1.6er kompilierten class Dateien nix anfangen. Gerade nen Obfuscator muss ja ganz genau wissen, wie das mal gedacht war ;) ... Ant ist es letztlich egal, welches jdk verwendet wird - für den javac Task wird ja auf ein externes java verwiesen - z.B. wird bei eclipse da ja gerade nicht der eclipse-compiler benutzt.
 

Saxony

Top Contributor
So mit nem ProGuard Version 4.1 funktioniert es nun endlich.

Muss man erstmal drauf kommen, dass das von ProGurad und net von Ant kommt. :D

Naja nu freu ich mich. Ja ich arbeite mit Ant von Konsole aus.

bye Saxony
 

Saxony

Top Contributor
SnooP hat gesagt.:
klar - wenn das ein ProGuard-Task ist und der nur 1.5 kann... kann er wohl mit 1.6er kompilierten class Dateien nix anfangen. Gerade nen Obfuscator muss ja ganz genau wissen, wie das mal gedacht war ;) ... Ant ist es letztlich egal, welches jdk verwendet wird - für den javac Task wird ja auf ein externes java verwiesen - z.B. wird bei eclipse da ja gerade nicht der eclipse-compiler benutzt.

Jo habs zeitgleich zu deinem Posting am eigenen Leib erfahren. :D

bye Saxony
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben