5

我正在尝试构建 GNU Classpath 0.98 和 JamVM 1.5.2。
按照 JamVM 自述文件,我做了“配置”;制作; 在 jamVM 上进行安装,它工作正常。

然后我将 jamvm 和 Sun javac 添加到路径中。
然后使用 GNU Classpath 我这样做了:

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

我收到了这个错误:

javac 失败(请参阅 config.log)

在 上config.log,我看到 javac 找不到 VMStackWalker(它是 jamvm 特定的)我将 jamvm 类添加到 CLASSPATH 中,然后出现此错误:

Java VM jamvm 失败(请参阅 config.log)

在 上config.log,我看到 jamvm 找不到java.lang.Class

怎么了?!

4

4 回答 4

1

找到它!

http://sourceforge.net/forum/message.php?msg_id=7193290

于 2009-04-17T07:05:49.250 回答
1

为 Ubuntu12.04 编译 GNU 类路径的步骤: https ://groups.google.com/forum/#!topic/jruby-gsoc/-fnKnP7zxbI

为 Ubuntu 12.04 编译 JamVM 的步骤: https ://groups.google.com/forum/#!topic/jruby-gsoc/uJ6RlVvHR-0

于 2013-06-22T22:48:17.140 回答
0

试试ecj,classpath需要java编译器,sun sdk在这里好像不行

于 2010-04-26T11:00:13.120 回答
0

我的 Mac OS X 10.11 历险记:

虚拟机

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

GNU 类路径

花了一点时间:

# 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

如果您make现在,编译将失败并显示 java_io_VMConsole.c:80:19: error: use of undeclared identifier 'IUCLC'. 我最终在谷歌上搜索了那个符号是什么——它是一个八进制 01000,并将它添加到源代码中:

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

在那之后,./configure 一直抱怨你javac不是 GCJ。它看起来像 GNU Classpath 的一个老错误,我发现提到了类似的问题。正如您在下面看到的,./configure它已损坏并且不能javacgcj.

我最终只是编辑./configure

  • 一开始,我加了一行export JAVAC=$(which javac)
  • 我用JAVAC_IS_GCJ=no

现在,./configure应该通过,但make不会。

我对为 生成的所有Makefiles内容./configure进行了grep,然后如果有带有参数的备用行,则-fsource=用(这是一个gcj特定标志)注释掉行,或者只是用.-fsource-sourcefsourcesource

最后一步,我必须编辑顶层并从行中Makefile删除- 它没有编译并出现错误:$(EXAMPLESDIR)SUBDIRS = ...

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

它建成了!

我运行它时出错,但这是一个完全不同的故事......

$ 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

(如果我设法运行它,我会更新答案)

于 2015-12-30T15:55:21.413 回答