2016-04-01 5 views
0

Ich habe meine Java-Dateien in Unterverzeichnisse sortiert, um es sauberer zu machen, und fragte mich, ob es möglich ist, auf JARS und Quelldateien zuzugreifen und dann Klassendateien in einem anderen angegebenen Ordner in einem javac-Befehl zu platzieren?javac mehrere Befehlsoptionen

Standardmäßig habe ich meine JAR-Datei in/lib, Java-Dateien in/src und einen leeren Ordner mit dem Namen/bin, wo meine Klassendateien liegen sollten.

Wenn meine Java & Klassendateien oberste Ebene und nur das Gefäß wurde in einem Unterverzeichnis mein Terminal-Befehl ist zu kompilieren waren:

javac -cp .:./lib/mysql-connector-java-5.1.38-bin.jar Test.java 

ich so weit verstehen, dass ich -cp muß das Glas zu finden, aber würde Außerdem muss -d angegeben werden, wo die Klassendateien platziert werden sollen und -sourcepath, um die Quelldateien zu finden (würde ich nicht nur src/Test.java brauchen?).

Wie würde ich in der Lage sein, dass eine legale Eingabe für Terminal machen?

Eine höhere Frage wäre, gibt es eine Möglichkeit, ein Skript zu erstellen, um diesen javac-Befehl jedes Mal in Linux auszuführen? Das wäre sehr nett zu wissen.

Vielen Dank! Zugriff auf Gläser und Quelldateien und legen Sie dann Klassendateien in einer anderen angegebenen Ordner in einem javac Befehl

Antwort

0

zuerst Ihre Frage

... ist möglich zu beantworten?

Ja. Verwenden Sie -cp, um den Klassenpfad anzugeben, und -d, um das Zielverzeichnis anzugeben. Beachten Sie, dass Klassendateien je nach Paketnamenhierarchie in Unterverzeichnisse des Zielverzeichnisses geschrieben werden.

Wenn Sie inkrementell kompilieren möchten, ist es sinnvoll, das Verzeichnis -d in den Klassenpfad aufzunehmen. Für einen nicht-inkrementellen (sauberen) Build, entfernen Sie zuerst alles im Verzeichnis -d.

Wie würde ich in der Lage sein, dass eine rechtliche Eingabe für Terminal machen?

javac -d bin -cp bin:./lib/mysql-connector-java-5.1.38-bin.jar Test.java 

Ein Schritt Frage aus, dass wäre es eine Möglichkeit, ein Skript zu erstellen, den javac Befehl jedes Mal unter Linux laufen zu lassen?

Jedes Mal was?

  • Ja, es ist möglich, Skripte in Linux zu schreiben. Relativ einfach in der Tat, wenn Sie einfache Dinge tun. (Ich bin sicher, dass Sie einige Tutorials zum Shell-Scripting finden könnten.)

  • Ja, es ist möglich, ein Skript zu schreiben, um den javac Befehl auszuführen.

  • Ja ist es möglich, ein Skript zu schreiben, um den javac Befehl und andere Dinge zu starten ... vor oder nachher.

  • Ist es eine gute Idee? Bis zu Ihnen zu entscheiden.

  • Aber es gibt bessere Möglichkeiten, (besonders) große Java-Anwendungen zu erstellen, als Ad-hoc-Shell-Skripte zu schreiben. Ich empfehle, dass Sie sich die Zeit nehmen, sich über portable Java-Build-Tools wie Ant, Maven und Gradle zu informieren.