簡體   English   中英

運行 javac 命令時如何指定類路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM