PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Win 7 x64 - gcj-Java Compiler unter Windows benutzen


Watson007
2012-07-14, 18:05:28
kennt sich hier jemand mit dem gcj-Java-Compiler aus, der aus Java-Programmen nativen Code erzeugt?

http://de.wikipedia.org/wiki/GNU_Compiler_for_Java

ich wollte ihn mal testen und habe ihn mitsamt cygwin heruntergeladen.
nach dem Herunterladen habe ich unter Windows versucht den gjc auszuführen (in der Kommandozeile), aber es ergab die Fehlermeldung "Zugriff verweigert".
Zuerst dachte ich an fehlenden Zugriffsrechten, aber dann habe ich im Explorer gesehen dass die gcj.exe - genauso wie die gcc.exe - nur 1 kb groß ist, das kann nicht sein.

Dann nochmal von andere Mirror runtergeladen, aber die Dateien sind immer noch 1 kb groß. Was habe ich falsch gemacht, gibt es woanders Binär-Packages?

Wie ist das dann eigentlich rechtlich gesehen, der gcj basiert auf den freien GNU Classpath-Bibliotheken - heisst das man muss mit dem gcj erzeugte Programme dann wieder unter GPL stellen?
EDIT: moment steht ja da: GNU Classpath ist lizenziert unter der GNU GPL. Da Classpath weitgehend kompatibel zu den Klassenbibliotheken von Sun oder IBM ist, gelten Programme, die Classpath verwenden nicht als abgeleitete Werke. Durch eine Ausnahmeregelung in der Lizenz[1] dürfen auch proprietäre Programme gegen die freie Klassenbibliothek gelinkt werden.

EDIT2: oder ist es das mit der gcj-3.exe? gemäß diesem Tutorial

http://www.autexier.de/jmau/dev/gcj.html

verwendet man aber den Befehl "gcj". Vielleicht hat ja auch eine Verknüpfung vom Installer nicht geklappt...

EDIT3: jetzt gehts (mit gcj-3.exe halt und dem Tutorial). Leider viele Fehlermeldungen vom Compiler mit ungültigen Eingabezeichen in den Quellcodedateien....

Watson007
2012-07-15, 15:04:45
ich habe jetzt mal diese simple Java-Klasse erstellt:

public class Main
{

/**
* TODO Add method comment here
*
* @param args
*/
public static void main(String[] args)
{
System.out.println("Hallo!");

}

}


und wollte dann den gcj ausführen:

gcj-3 --main="Main.java" -o Main.exe c:\Pfad\Main.java

aber das ergab diese Fehlermeldung:

in function 'main': .... undefined reference to 'Main::java::class$'

was bedeutet das, die Main-Klasse ist doch praktisch leer?

EDIT: hat sich auch erledigt, statt --main="Main.java" muss man --main="Main" eingeben. Schlechte Fehlermeldung....

Watson007
2012-07-15, 16:34:46
schade der gcj unterstützt offenbar keine Generics bei Interfaces, somit kann ich ihn leider nicht für mein Projekt verwenden. Er meldet mir nämlich da bei einem Interface, dass er { und nicht < erwartet.