wie GNU Classpath und JamVM bauen
Frage
Ich versuche, GNU Classpath 0.98 und JamVM 1.5.2 zu bauen.
Im Anschluss an die JamVM readme habe ich ‚configure; machen; make install‘auf der jamvm, und es hat funktioniert.
Ich habe dann jamvm und Sun javac auf den Weg.
Dann mit GNU Classpath Ich tat dies:
./configure --enable-jni --disable-gtk-peer --disable-gconf-peer --disable-plugin
Ich habe diesen Fehler:
Die javac fehlgeschlagen (siehe config.log)
Auf der config.log
, sehe ich, dass javac nicht VMStackWalker finden (was jamvm spezifisch)
Ich fügte hinzu, die jamvm Klassen CLASSPATH, dann habe ich diesen Fehler:
Die Java VM jamvm fehlgeschlagen (siehe config.log)
Auf dem config.log
, ich sehe, dass jamvm nicht java.lang.Class
finden.
Was ist los?!
Lösung
Andere Tipps
Schritte zum Kompilieren GNU Classpath für Ubuntu12.04: https://groups.google.com/forum/#!topic/ jruby-GSOC / -fnKnP7zxbI
Schritte zum Kompilieren JamVM für Ubuntu 12.04: https://groups.google.com/forum/#!topic / JRuby-GSOC / uJ6RlVvHR-0
versuchen ecj, Classpath einen Java-Compiler benötigen, und Sonne sdk scheint nicht gut, hier zu sein
My Mac OS X 10.11 Abenteuer:
JamVM
mit make clean && CFLAGS="-m32" ./configure
gebaut.
GNU Classpath
nahm ein bisschen mehr:
# If you already made an attempt
make clean
## If you don't --disable-tools. I didn't have antlr, so I downloaded it.
#curl -O http://www.antlr.org/download/antlr-4.5.1-complete.jar
./configure --disable-gtk-peer --disable-gconf-peer \
--disable-tools # for tools: --with-antlr-jar=antlr-4.5.1-complete.jar
Wenn Sie jetzt make
, Kompilation nicht mit
java_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'
. Ich landete googeln, was das Symbol ist - es ist ein Oktal-01000, und fügte hinzu, es direkt an die Quelle:
vim ./native/jni/java-io/java_io_VMConsole.c
# add this line in the beginning of the file: #define IUCLC 0001000
Danach wird configure hält beschweren sich über Ihre javac
nicht GCJ ist. Es sieht aus wie ein alter Bug von GNU Classpath, ich habe erwähnt ähnliche Probleme gefunden. Wie Sie unten sehen, ./configure
gebrochen ist und nicht mit jedem javac
andere als gcj
arbeiten.
ich am Ende nur die Bearbeitung ./configure
:
- am Anfang, habe ich eine Linie
export JAVAC=$(which javac)
- I ersetzt bedingte Zuweisung mit
JAVAC_IS_GCJ=no
Jetzt sollte ./configure
passieren, aber make
nicht.
ich alle Makefiles
grep, die für ./configure
erzeugt -fsource=
, und dann entweder auf Kommentar Linien mit -fsource
(es ist ein gcj spezifische Flag), wenn es eine alternative Linien mit -source
Argument war, oder einfach nur ersetzt fsource
mit source
.
Die letzten Schritt, ich hatte Top-Level-Makefile
und löschen $(EXAMPLESDIR)
von SUBDIRS = ...
Linie zu bearbeiten - es hat kompiliert nicht mit einem Fehler:
./gnu/classpath/examples/CORBA/NamingService/Demo.java:99: error:
package gnu.classpath.tools.tnameserv does not exist
gnu.classpath.tools.tnameserv.Main.main(args);"
Es gebaut!
habe ich Fehler laufen, aber , die eine ganz andere ist Geschichte ...
$ DYLD_FALLBACK_LIBRARY_PATH=/usr/local/classpath/lib/classpath \
/usr/local/jamvm/bin/jamvm -verbose:class -verbose:jni Test
...
Failed to open library /usr/local/classpath/lib/classpath/libjavanio:
dlopen(/usr/local/classpath/lib/classpath/libjavanio.so,
1): image not found]
...
Exception occurred while printing exception (java/lang/NoClassDefFoundError)...
Original exception was java/lang/UnsatisfiedLinkError
(Ich werde die Antwort aktualisieren, wenn ich es schaffe, um sie auszuführen)