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?!

War es hilfreich?

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top