Using the GNU Compiler Collection gcc
6.3.0 版的手册在第 28 页(pdf 的第 42 页)表示支持语言选项 -x java
。在 debian stretch 上尝试这个:
$ 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
关于我还可以尝试让它运行的任何建议吗?
最佳答案
必须安装用于 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
关于java - gcc -x java on debian stretch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43278805/