2017-04-07 3 views
0

Das Using the GNU Compiler Collection Handbuch für gcc Version 6.3.0 zeigt Unterstützung für die Sprachoption -x java auf Seite 28 (Seite 42 der pdf). Der Versuch, diese auf debian Strecke:gcc -x Java auf Debian Stretch

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

installieren, was das erforderliche Paket zu sein scheint:

$ 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 

Allerdings habe ich die Nachricht gleichen Fehler, wenn gcc danach ausgeführt wird. In der Tat in /usr/bin, keine ausführbare Datei ecj1 wurde installiert, und läuft apt-cache search ecj1 schlägt kein anderes Paket als das, das ich installiert habe.

$ 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 

Irgendwelche Vorschläge, was ich sonst noch versuchen könnte, um das laufen zu lassen?

Antwort

1

Der GNU Compiler für Java installiert sein:

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

Verwenden apt-Datei nach Paketen suchen ecj1 als Datei enthält. Beachten Sie, dass apt-cache nur nach Paketnamen/Beschreibungen sucht, die mit der Suche übereinstimmen.

Nach der Installation konnte ich es laufen

$ gcj-4-9 HelloWorld.java 

anstelle von gcc verwenden.

Obwohl gcj ein Front-End für gcc ist, funktionierte gcc nicht für mich und beschwerte sich darüber, dass der Klassenpfad nicht gesetzt wurde. Um gcc zum Laufen zu bringen, würde es wahrscheinlich einen anderen, komplexeren Befehl erfordern.

Wenn Sie eine Klasse kompilieren, die eine Hauptmethode enthält, verwenden Sie die Option --main.

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

Vielen Dank Luc. Ich werde daran denken, 'apt-file' zu ​​verwenden. Bei debian stretch sieht es so aus, als wäre 'gcj-6' das zu installierende Paket, das den fehlenden 'ecj1'-Fehler beseitigt. Ich habe immer noch einen fehlenden Klassenpfadfehler beim Kompilieren von HelloWorld.java, aber ich werde es herausfinden. –

+0

@SvenWilliamson Ich habe den gleichen fehlenden Klassenpfad Fehler bei der Verwendung von gcc. Ich habe es geschafft, es mit gcj selbst arbeiten zu lassen. Siehe die aktualisierte Antwort. –

+0

läuft 'gcj-6' selbst gibt mir einen Verknüpfungsfehler (kann' -lgcj' nicht finden), also habe ich 'sudo apt-get install libgcj17-dev', aber das hat das Problem nicht beseitigt. Vielen Dank Ihre Hilfe trotzdem :) –