Pregunta

Estoy intentando compilar GNU Classpath 0.98 y JamVM 1.5.2.
Siguiendo el archivo Léame de JamVM, hice 'configurar;hacer;make install' en jamVM y funcionó.

Luego agregué jamvm y Sun javac a la ruta.
Luego con GNU Classpath hice esto:

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

Recibí este error:

El javac falló (ver config.log)

Sobre el config.log, Veo que Javac no puede encontrar vmstackwalker (que es específico de JAMVM) Agregué las clases JAMVM al classpath, luego obtuve este error:

El jamvm de Java VM falló (consulte config.log)

Sobre el config.log, veo que jamvm no puede encontrar java.lang.Class.

¡¿Qué ocurre?!

¿Fue útil?

Otros consejos

Pasos para la compilación de GNU Classpath para Ubuntu12.04: https://groups.google.com/forum/#!topic/ jruby-GSoC / -fnKnP7zxbI

Pasos para compilar JamVM para Ubuntu 12.04: https://groups.google.com/forum/#!topic / jruby-GSoC / uJ6RlVvHR-0

ecj tratar, la ruta de clase necesita un compilador Java y SDK sol parece haber ninguna buena aquí

Mis aventuras con Mac OS X 10.11:

JamVM

construido con make clean && CFLAGS="-m32" ./configure.

Ruta de clases GNU

tomó un poco más:

# 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 usted make ahora, la compilación falla conjava_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'.he finalizado googleando cual es ese símbolo - es un 01000 octal y lo agregó directamente a la fuente:

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

Después de eso, ./configure sigue quejándose de tu javac no ser GCJ.Parece un error antiguo de GNU Classpath, encontré menciones de problemas similares.Como ves a continuación, ./configure está roto y no funciona con ningún javac otro que gcj.

Terminé simplemente editando ./configure:

  • al principio agregué una línea export JAVAC=$(which javac)
  • Reemplacé la asignación condicional con JAVAC_IS_GCJ=no

Ahora, ./configure debería pasar, pero make no.

Recogí todos los Makefiles eso ./configure generado para -fsource=, y luego comentó las líneas con -fsource (es una bandera específica de gcj) si hubiera líneas alternativas con -source argumento, o simplemente reemplazado fsource con source.

Último paso, tuve que editar el nivel superior. Makefile y eliminar $(EXAMPLESDIR) de SUBDIRS = ... línea: no se compiló con un error:

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

¡Se construyó!

Recibí errores al ejecutarlo, pero esa es una historia totalmente diferente...

$ 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

(Actualizaré la respuesta si logro ejecutarla)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top