gcc -x java on debian stretch

时间:2017-04-07 12:57:38

标签: java linux gcc debian

gcc版本6.3.0的Using the GNU Compiler Collection手册表示支持第28页的语言选项-x java(pdf第42页)。在debian伸展上尝试这个:

$ gcc -x java HelloWorld.java
gcc: error trying to exec 'ecj1': execvp: No such file or directory

安装似乎是必需的包:

$ sudo apt-get install ecj1
Reading package lists... Done
...
Unpacking ecj1 (3.11.1-1) ...
Setting up ecj1 (3.11.1-1) ...
....
Reading state information... Done

但是,在此之后运行gcc时,我收到相同的错误消息。事实上,在查看/usr/bin时,没有安装任何可执行文件ecj1,并且运行apt-cache search ecj1并不建议任何其他软件包而不是我安装的软件包。

$ gcc --version
gcc (Debian 6.3.0-11) 6.3.0 20170321

$ uname -a
Linux right 4.8.0-1-amd64 #1 SMP Debian 4.8.5-1 (2016-10-28) x86_64 GNU/Linux

有什么建议我可以尝试让它运行吗?

1 个答案:

答案 0 :(得分:1)

必须安装Java的GNU编译器:

$ apt-get install gcj-4.9 gcj-4-9-jdk

使用 apt-file 搜索包含 ecj1 的软件包作为文件。请注意, apt-cache 仅搜索与搜索匹配的包名称/描述。

安装完成后,我可以使用

运行它
$ gcj-4-9 HelloWorld.java

而不是gcc。

尽管gcj是gcc的前端,但gcc并没有为我工作,并且抱怨没有设置类路径。要使gcc正常工作,可能需要一个不同的,更复杂的命令。

如果您正在编译包含main方法的类,请使用--main选项。

$ gcj-4-9 --main=HelloWorld HelloWorld.java