Pergunta

Eu estou tentando construir GNU Classpath 0,98 e JamVM 1.5.2.
Após o readme JamVM, eu fiz 'configure; faço; make install' na JamVM, e funcionou.

Eu, então, JamVM adicionado e javac Sun para o caminho.
Em seguida, com GNU Classpath Eu fiz isso:

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

Eu tenho esse erro:

O javac falhou (ver config.log)

No config.log, vejo que javac não consegue encontrar VMStackWalker (que é específico do JamVM) Eu adicionei as classes JamVM ao CLASSPATH, então eu tenho esse erro:

O JamVM Java VM falhou (ver config.log)

No config.log, vejo que JamVM não consegue encontrar java.lang.Class.

O que há de errado?!

Foi útil?

Outras dicas

Passos para compilar GNU Classpath para Ubuntu12.04: https://groups.google.com/forum/#!topic/ jruby-GSoC / -fnKnP7zxbI

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

TJCE tentativa, necessidade classpath um compilador Java e SDK sol parece haver nenhuma boa aqui

Meu Mac OS X 10.11 aventuras:

JamVM

construído com make clean && CFLAGS="-m32" ./configure .

GNU Classpath

levou um pouco mais:

# 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

Se você make agora, a compilação falha com java_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'. Acabei googling o que esse símbolo é - é um octal 01000, e acrescentou -lo direto à fonte:

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

Depois disso, ./configure continua reclamando sobre o seu javac não ser GCJ. Parece um velho bug do GNU Classpath, eu encontrei menções de problemas semelhantes. Como você pode ver abaixo, ./configure está quebrado e não vai funcionar com qualquer javac diferente gcj.

I terminou apenas editar ./configure:

  • no começo, eu adicionei um export JAVAC=$(which javac) linha
  • I substituído atribuição condicional com JAVAC_IS_GCJ=no

Agora, ./configure deve passar, mas make não.

Eu grepped todo o Makefiles que ./configure gerado para -fsource=, e em seguida, comentada linhas com -fsource (é uma bandeira específica-gcj) Se houvesse um linhas alternadas com argumento -source, ou fsource apenas substituído com source.

A última etapa, eu tive que Makefile edição de nível superior e $(EXAMPLESDIR) de exclusão da linha SUBDIRS = ... - não compilar com um erro:

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

É construído!

Eu tenho erros de executá-lo, mas ??que é uma totalmente diferente história ...

$ 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

(Eu vou atualizar a resposta se eu conseguir executá-lo)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top