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
有什么建议我可以尝试让它运行吗?
答案 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