Question

J'essaie de construire GNU Classpath 0.98 et JamVM 1.5.2.
Suite au fichier Lisez-moi de JamVM, j'ai configuré ;faire;make install' sur jamVM, et cela a fonctionné.

J'ai ensuite ajouté jamvm et Sun javac au chemin.
Ensuite, avec GNU Classpath, j'ai fait ceci :

./configure --enable-jni --disable-gtk-peer --disable-gconf-peer --disable-plugin

J'ai eu cette erreur :

Le javac a échoué (voir config.log)

Sur le config.log, Je vois que Javac ne trouve pas VMStackWalker (qui est spécifique à JAMVM) J'ai ajouté les classes JAMVM au ClassPath, puis j'ai eu cette erreur:

La machine virtuelle Java jamvm a échoué (voir config.log)

Sur le config.log, je vois que jamvm ne trouve pas java.lang.Class.

Qu'est-ce qui ne va pas?!

Était-ce utile?

Autres conseils

Étapes à suivre pour la compilation de GNU Classpath pour Ubuntu12.04: https://groups.google.com/forum/#!topic/ JRuby-GSOC / -fnKnP7zxbI

Étapes à suivre pour compiler jamvm pour Ubuntu 12.04: https://groups.google.com/forum/#!topic / jruby-GSOC / uJ6RlVvHR-0

essayer CJE, classpath besoin d'un compilateur java, et le soleil sdk semble pas bien ici

Mes aventures sous Mac OS X 10.11 :

JamVM

construit avec make clean && CFLAGS="-m32" ./configure.

Chemin de classe GNU

j'en ai pris un peu plus :

# 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

Si tu make maintenant, la compilation échoue avecjava_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'.Je ai fini par chercher sur Google quel est ce symbole - c'est un 01000 octal, et je l'ai ajouté directement à la source :

vim ./native/jni/java-io/java_io_VMConsole.c
# add this line in the beginning of the file: #define IUCLC   0001000

Après cela, ./configure continue de se plaindre de votre javac n'étant pas GCJ.Cela ressemble à un vieux bug de GNU Classpath, j'ai trouvé des mentions de problèmes similaires.Comme vous le voyez ci-dessous, ./configure est cassé et ne fonctionnera avec aucun javac autre que gcj.

J'ai fini par éditer ./configure:

  • au début, j'ai ajouté une ligne export JAVAC=$(which javac)
  • J'ai remplacé l'affectation conditionnelle par JAVAC_IS_GCJ=no

Maintenant, ./configure devrait passer, mais make ne le fera pas.

J'ai saisi tout le Makefiles que ./configure généré pour -fsource=, puis j'ai commenté les lignes avec -fsource (c'est un indicateur spécifique à gcj) s'il y avait une ligne alternative avec -source argument, ou simplement remplacé fsource avec source.

Dernière étape, j'ai dû modifier le niveau supérieur Makefile et supprimer $(EXAMPLESDIR) depuis SUBDIRS = ... ligne - il n'a pas été compilé avec une erreur :

./gnu/classpath/examples/CORBA/NamingService/Demo.java:99: error: 
    package gnu.classpath.tools.tnameserv does not exist
      gnu.classpath.tools.tnameserv.Main.main(args);"

Ça a construit !

J'ai eu des erreurs en l'exécutant, mais c'est une histoire totalement différente...

$ 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

(Je mettrai à jour la réponse si je parviens à l'exécuter)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top