gpt4 book ai didi

java - 如何编译这个java应用程序

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:16 24 4
gpt4 key购买 nike

我需要在 Windows 上从这段代码编译 Java 应用程序:

http://www.falstad.com/vector3dm/base.java

要提到的评论

// this file must be run through cpp with one of BUILD_E, BUILD_V,
// BUILD_M defined before compiling with java compiler. This was done
// to reduce class file sizes.

不知道是什么意思。 cpp 是否代表 C++ 编译器?如何在此 java 代码上运行它?我在代码中看到了一些#define 语句。作为 Java 代码,我希望“javac base.java”能够正常工作

谁能解释一下我需要做什么才能编译代码。

谢谢。

编辑:

@Ahmed Masaud:
我从 annarres 网站下载了 anarres-cpp-bin-1.2.6.tar.gz 并解压到我的 JDK 目录中。这是我现在拥有的:

C:\Program Files\Java\jre6\bin\base.java

C:\Program Files\Java\jre6\lib\anarres-cpp.jar

C:\Program Files\Java\jre6\lib\gnu.getopt.jar

运行您指定的命令时

java -Xmx128M -cp lib/anarres-cpp.jar:lib/gnu.getopt.jar org.anarres.cpp.Main -o base-e.java -DBUILD_E base.java

这是我得到的:

Exception in thread "main" java.lang.NoClassDefFoundError: org/anarres/cpp/Main Caused by: java.lang.ClassNotFoundException: org.anarres.cpp.Main at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: org.anarres.cpp.Main. Program will exit.

看起来它找不到'org.anarres.cpp.Main'

最佳答案

CPP 表示 C 预处理器,而不是 C++。他们要求您做的是使用特定定义运行它:

如果你使用的是 linux,你可以输入

  cpp -o base-e.java -DBUILD_E base.java

这将创建一个 base-e.java 文件,该文件使用 base.java 中的 BUILD_E 选项

如果你使用的是windows grab mcpp:

http://mcpp.sourceforge.net/download.html

并使用 mcpp 做同样的事情。

还有一个替代的 jcpp,它是用 java 编写的 C 预处理器:

http://www.anarres.org/projects/jcpp/

可能是更好的选择。

jcpp 非常接近 GNU cpp;因为它是基于它的,所以上面的命令行应该可以工作,并且该站点上提供了预编译版本,因此:

java -Xmx128M -cp lib/anarres-cpp.jar:lib/gnu.getopt.jar org.anarres.cpp.Main -o base-e.java -DBUILD_E base.java

正确的命令行:

java -Xmx128M -cp ./lib/anarres-cpp.jar:./lib/gnu.getopt.jar: org.anarres.cpp.Main -DBUILD_E base.java > base-e.java

jcpp 中没有-o 标志支持

确保将 base.java 放在 anarres-cpp-bin-1.2.6 文件夹中,然后从那里运行上面的命令。

然后您可以将 base-e.java 移动到任何您喜欢的地方。

或者,您可以在命令行等上提供 base.java 和 base-e.java 的完整路径。

关于java - 如何编译这个java应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com