[英]Java Package Does Not Exist Error
所以在根目錄下有一個文件夾/usr/share/stuff
在 stuff 中有一堆 java 文件,頂部有package org.name
定義
我正在運行javac test.java
其中test.java
在子域中
我將/usr/share/stuff
添加到我的 class 路徑中。
在test.java
的頂部,我添加了import org.name
但我收到package does not exist
錯誤...為什么?
它們是否在正確的子目錄中?
如果將/usr/share/stuff
放在類路徑上,則使用package org.name
定義的文件應位於/usr/share/stuff/org/name
。
編輯:如果您還不知道這一點,您可能應該閱讀有關了解 classpath 的文檔。
編輯 2 :抱歉,我沒有意識到您在談論/usr/share/stuff
的 Java 源文件。 它們不僅需要位於適當的子目錄中,而且您還需要編譯它們。 .java
文件不需要在classpath 上,而是在source path 上。 (生成的.class
文件需要在classpath 上。)
如果它們不在正確的目錄結構下,您可能會逃脫編譯,但它們應該是,否則至少會生成警告。 生成的類文件將位於正確的子目錄中(如果您指定了-d
則在任何位置)。
您應該使用類似javac -sourcepath .:/usr/share/stuff test.java
,假設您已將/usr/share/stuff
下的.java
文件放在/usr/share/stuff/org/name
(或根據它們的包名稱適當的任何東西)。
只是重新導入沒有用。 以下為我工作。
文件 -> 使緩存無效/重新啟動
然后
構建 -> 重建項目
這將重新導入 maven 項目。
我遇到了這個問題,當我嘗試在我的應用程序中使用打包為.jar
的主題時,它在調試應用程序時工作,但在構建/導出應用程序時卻沒有。
我通過解壓縮jar
解決了它,並手動將其內容添加到我的構建文件夾中,結果如下:
project/
│
├── build
│ └── classes
│ ├── pt
│ │ └── myAppName ...
│ └── com
│ └── themeName ...
├── src
└── lib
我不再有錯誤,我的應用程序加載了預期的主題。
通過命令行手動編譯時我遇到了完全相同的問題,我的解決方案是我沒有包含 -sourcepath 目錄,這樣所有子目錄 java 文件也將被編譯!
右鍵單擊下拉列表底部的 Maven 項目 Maven >> reimport
它適用於我缺少的依賴
您需要在/usr/share/stuff
有org/name
目錄,並將您的org.name
包源放在此目錄中。
如果您在使用Kotlin 時遇到這個問題並且有
kotlin.incremental=true
kapt.incremental.apt=true
在gradle.properties 中,那么您需要暫時刪除它以修復構建。
成功構建后,您可以再次添加這些屬性以加快使用 Kotlin 時的構建時間。
您應該在 gradle 構建文件 (build.gradle) 中添加以下行
dependencies {
compile files('/usr/share/stuff')
..
}
如果您有 2020 版本,那么您很可能會遇到一個錯誤,就像我遇到的那樣。 嘗試了多種方法,但對我有幫助的是一件非常簡單的事情。 設置 -> 構建、執行、部署 -> 構建工具 -> Maven。 勾選覆蓋本地存儲庫,但保留默認值。 申請,好的。 你可以得到一個錯誤,沒關系。 只需按屏幕右側 Maven 選項卡中的“重新加載所有 Maven 項目”按鈕(兩個圓形箭頭,看起來像常規的刷新按鈕)。 也許清理並安裝。 應該在那之后工作。
我提出這個問題是因為將文件從一個文件夾帶到另一個文件夾導致了這個錯誤。 修復它的命令如下。 我在多個目錄中有相同的 package,它只查看其中一個目錄。
因此,如果它是一個 Maven 項目,請嘗試mvn clean install --update-snapshots
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.