我是一個相對的Java新手,所以如果問題似乎有點基本的道歉。我在這裏搜索答案的高低,我沒有找到任何有用的東西。如何在包含外部java包的情況下在命令行上編譯我的主Java程序?
問題:
雖然我能夠外部包集成到從IDE環境中我的Java程序,我試圖做從運行在一個獨立的,基本包調用命令行一個非常基本的程序這是我編寫的文件 - 我只是在做這一切,因爲我想對Java程序包與主程序的關係有一個自下而上的理解。
我有我的桌面上一個名爲MyProgram.java坐在一個程序:
import org.somepackage;
public class MyProgram {
public static void main(String arguments[]) {
System.out.println("Programme up and running...");
Human myHuman = new Human();
myHuman.scream();
}
仍然在桌面上,然後我有我命名SRC另一個文件夾,在其內部的我已創建對應於包名必要的子文件夾,即./src/org/somepackage - 和在該位置上,我有包含以下內容定義了人類類Human.java文件:
package org.somepackage;
public class Human {
public void scream() {
System.out.println("I exist!!");
}
}
我然後在桌面上創建一個文件夾類,又和在命令行中運行以下編譯命令:
javac -d ./classes/ ./src/org/packagename/Human.java
這種運行良好和創造的 - 如預期 - 內的Human.class文件./ classes/org/packagename/location。
然而,當我倒下是當我再嘗試編譯MyProgram.java在命令行上,即
javac -cp ".:./classes/" MyProgram.java
正如你所看到的,我的類路徑中包含了對當前位置的引用( (「。」),它包含對類文件夾(「./classes/」)的引用,它是org.somepackage包的子文件夾的基本位置(./ classes/org/somepackage/)可以找到Human.class文件。
在這個階段,我只是期待Java引擎編譯MyProgram.java到程序MyProgram.class - 但是,相反,我得到一個錯誤:
MyProgram.java:1:錯誤:包組織不存在
我一直在關注這裏列出的說明:
https://www3.ntu.edu.sg/home/ehchua/programming/java/J9c_PackageClasspath.html
,我似乎沒有偏離說明 - 但我無法找到關於Stackoverflow或其他任何地方的解釋,說明編譯失敗的可能原因。如果有人有一個想法,你的幫助將非常感激。
感謝,
我的第一篇運行MyProgram ,在提交問題幾分鐘後,我就解決了我的問題 - 謝謝你真是太棒了!代碼現在正在工作... – GoingMush
@GoingMush好問題包含一半的答案。當您的所有代碼都有效時,根據網站規則將答案標記爲已接受。 – fxrbfg