2017-04-07 46 views
0

gcc版本6.3.0的Using the GNU Compiler Collection手冊指示支持第28頁(pdf第42頁)上的語言選項-x java。 Debian的拉伸嘗試這樣的:debian stretch上的gcc -x java

$ 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

的GNU Java編譯器必須安裝:

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

使用的apt-文件搜索包含ecj1作爲一個文件包。請注意,apt-cache只搜索與搜索匹配的軟件包名稱/說明。

安裝後,我使用能夠

$ gcj-4-9 HelloWorld.java 

,而不是GCC來運行它。

儘管gcj是gcc的前端,但gcc並沒有爲我工作,並且抱怨沒有設置類路徑。爲了讓gcc工作,它可能需要一個不同的,更復雜的命令。

如果您正在編譯包含main方法的類,請使用--main選項。

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

非常感謝你。請記住繼續使用'apt-file'。在debian擴展中,它看起來像'gcj-6'是安裝的軟件包,它可以擺脫缺少的'ecj1'錯誤。編譯HelloWorld.java時我仍然缺少類路徑錯誤,但是我想清楚了。 –

+0

@SvenWilliamson在使用gcc時,我得到了相同的缺少類路徑錯誤。我設法讓它使用gcj本身工作。查看更新後的答案。 –

+0

運行'gcj-6'本身給我一個鏈接錯誤(找不到'-lgcj'),所以我做了'sudo apt-get install libgcj17-dev',但是這並沒有消除這個問題。感謝你的幫助無論如何:) –