[英]How do you specify the classpath when running the javac command?
我正在嘗試將Bar.java
導入Foo.java
,我的目錄結構如下:
.
└─bar
└─Bar.java
└─foo
└─Foo.java
所以我創建Bar.java
:
package bar;
public class Bar {}
和Foo.java
:
import bar.Bar;
public class Foo {}
我從foo
目錄運行javac
:
javac Foo.java -cp ../bar
並收到錯誤:
Foo.java:1: error: package bar does not exist
我的理解是-cp
選項應該用於指向所需的 class ( Bar.java
)。 有人可以闡明我做錯了什么嗎?
Package bar 不存在,因為提示符或終端“工作目錄”在 foo 中。
最簡單的是,創建一個文件夾 java2 並將兩個文件夾放入其中,並將存儲文件夾用作終端或提示符的“系統工作目錄”,但是,一起編譯的普通“包”層次結構都在頂級起始目錄樹中。
例如
/com/foo/ and /com/bar
So your package would look com.foo and com.bar Put the com folder in the java2(simply a name you can use any name for the storage folder)folder. class 文件頂部的導入語句應添加 com 目錄以導入其他文件。 只需在 java2 文件夾中執行命令
javac /com/foo/Foo.java
-cp 用於指定包含dependent.jar 庫進行編譯。
如果 Foo 不導入 Bar 則需要像 Foo 一樣單獨編譯。
When framework API libraries are made its the user program requires to mark a starting point to unload the jar or look for a package folder and is traditionally "com", however, it does not distinguish which API until a folder lower so your package folder really應該結構化
/com/mypersonalapi/foo /com/mypersonalapi/bar
com.mypersonalapi.foo com.mypersonalapi.bar
你需要像這樣給出:
javac Foo.java -cp ..
當您按照問題所示提供類路徑時,它需要文件夾“bar”下的 package “bar”; 這不是故意的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.