题
我正在尝试构建 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
.
怎么了?!
其他提示
步骤来编译GNU类路径Ubuntu12.04: https://groups.google.com/forum/#!topic/ JRuby的GSOC / -fnKnP7zxbI
步骤来编译JamVM为Ubuntu 12.04: https://groups.google.com/forum/#!topic / JRuby的GSOC / uJ6RlVvHR-0
尝试ECJ,类路径需要一个Java编译器,以及太阳的SDK似乎没有在这里好
我的 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
已损坏且无法与任何设备一起使用 javac
以外 gcj
.
我最终只是编辑 ./configure
:
- 一开始,我添加了一行
export JAVAC=$(which javac)
- 我将条件赋值替换为
JAVAC_IS_GCJ=no
现在, ./configure
应该通过,但是 make
惯于。
我 grep 了所有的 Makefiles
那 ./configure
生成用于 -fsource=
, ,然后用注释掉行 -fsource
(这是一个 gcj 特定的标志)如果有替代行 -source
争论,或者只是替换 fsource
和 source
.
最后一步,我必须编辑顶级 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
(如果我设法运行它,我会更新答案)