我已经在Windows 7上安装了CYGWIN仿真终端以便使用GCC,我知道它可以编译太多语言,我可以正确地使用它但不知道如何用它来编译java文件?< / p>
答案 0 :(得分:7)
您是否阅读过本手册? gnu java
他们有一个名为gcj的编译器,专门用于Java语言。
答案 1 :(得分:4)
如果有人在 2016年9月30日之后阅读此问题:
用于Java的GNU编译器( GCJ )已已停产,并且不再属于GNU编译器集合(GCC)的一部分,如{ {3}}。
答案 2 :(得分:2)
GCC is a front-end编译几种语言(GNU Pascal,Mercury,Cobol,GNU Modula-2,Modula-3,GHDL,PL / 1,GCC Unified Parallel C ...)。
目前主要的GCC发行版包含C(gcc)的前端, C ++(g ++),Objective C,Fortran,Java(GCJ),Ada(GNAT)和Go。
GCJ相当于javac,但正如您所看到的,最新消息是2009年。
答案 3 :(得分:2)
除了接受的答案之外,我建议不要使用GCC根据以下帖子编译Java:Java JRE vs GCJ。 Javac是一个更好的选择!但是,如果您使用GCC将Java编译为本机代码(可能),那么仍然值得一看。在我看来,GCJ已经死了(最后一次新闻更新是在2009年!https://gcc.gnu.org/java/index.html)
答案 4 :(得分:2)
GCC Java编译器
曾几何时,存在GCC Java前端,但它已被弃用。
值得注意的是,该软件包是not present anymore in Ubuntu 18.04, but it was in Ubuntu 16.04。
为什么会被解雇:Java JRE vs GCJ
只是为了好玩,我们可以在旧的Docker容器中试用这个历史软件。但TODO:我今天无法在Ubuntu 16.04或14.04位客户身上使用它,而且我懒得调试它。但我发誓,当我第一次回答这个问题时,我至少有一次工作。
Main.java
public class Main {
public static void main(String args[]) {
System.out.println("hello world");
}
}
编译并运行:
sudo apt-get install gcj-4.8 libgcj16-dev
gcj-4.8 -c Main.java
gcj --main=Main -o Main Main.o
./Main
编译失败:
gcj-4.8: error: libgcj.spec: No such file or directory
相关:https://bugs.launchpad.net/ubuntu/+source/gcj-4.0/+bug/24906