2016-05-24 8 views
0

Ich versuche meinen Quellcode zu kompilieren, der in verschiedene Pakete unterteilt ist. Ich schrieb einen Quelltext und listete darin alle Pfade der Java-Dateien auf. Ich habe auch eine Make-Datei und schrieb die folgenden Zeilen:Kompilieren von Java-Quellcode unter Linux

compile: bin 
    javac -d bin -cp biuoop-1.4.jar @sources.txt 
run: 
    java -cp biuoop-1.4.jar:bin Ass5Game 2 4 
bin: 
    mkdir bin 

die biupoop ist eine integrierte JAR-Datei ich benutze.

, nachdem ich das Make verwenden lobe der Computer sagt:

javac -d bin -cp biuoop-1.4.jar @sources.txt 
javac: file not found: animations\Animation.java 
Usage: javac <options> <source files> 
use -help for a list of possible options 
make: *** [compile] Error 2. 

wie kann ich die Dateien in Pakete zusammenstellen?

+1

Was ist das aktuelle Verzeichnis, das Sie von dem Anruf ausgeben und wo sind die Quellen im Verhältnis zu diesem Ort? – hotzst

+0

Warum verwenden Sie Makefiles für Java? Es funktioniert, ich denke, aber es gibt Build-Tools wie Maven und Gradle (mehr https://github.com/tkruse/build-bench), die Java-Projekte viel einfacher zu machen. – zapl

+0

Ich bin im Benutzerverzeichnis, und ich habe eine "src" -Datei, in der es einige Pakete gibt. Zum Beispiel ist einer der Pfade "animations \ Animation.java". – yairabr

Antwort

5

Der Schlüssel ist in dieser Fehlermeldung:

javac: file not found: animations\Animation.java 

Notieren Sie sich den umgekehrten Schrägstrich. Ein * nix, Wege sind getrennt mit Schrägstrich (/), nicht Backslash (\). Wenn Sie stattdessen die \ in Ihrem sources.txt zu / ändern, wird es funktionieren (vorausgesetzt, Sie führen dies in dem Verzeichnis, das ist ein Unterverzeichnis von).

Beispiel Lauf:

 
$ cat animation/Animation.java 
package animation; 

public class Animation { 
    public static final void main(String[] args) { 
     System.out.println("Success"); 
    } 
} 
$ cat sources.txt 
animation/Animation.java 
$ javac -d bin @sources.txt 
$ java -cp bin animation.Animation 
Success 
+0

Das Problem war, dass ich die folgende Zeile hinzufügen musste: find src -name "* .java"> sources.txt auf dem Makfile – yairabr

+0

@yairabr: Yup. Das wird indirekt das tun, was ich oben gesagt habe. –

Verwandte Themen