簡體   English   中英

遺留 Java 項目的奇怪導入行為

[英]Weird import behavior on legacy Java project

目前正在使用 NetBeans 8.1 處理一個舊項目 (Java 6),但我遇到了導入問題。

假設我有包 A 和 B。包 A 有一個包含一些導入的文件,而 B 有另一個包含其他導入的文件。 我在包 B 中添加了一個新的 Java 類,所有導入都不起作用,錯誤是The import [class] cannot be resolved 但隨后我將相同的 Java 類移動到包 A 並且所有導入都正常工作。 如果我然后從包 B 中引用包 A 中的這個類,它會給我該類的相同錯誤。

有趣的是,這只發生在我進行清理和構建時,IDE 沒有顯示任何錯誤行,並且錯誤在控制台中以黑白而不是紅色顯示。

我還嘗試在包 A 中創建一個新包並將文件放在那里,它確實有效。 所以我假設有一個設置不允許導入工作。 是的,我正在使用的導入與 Java 6 兼容。以下是一些正在使用的導入示例:

import java.util.concurrent.atomic.AtomicReference;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import org.apache.log4j.Logger;

遺憾的是,更新系統是不可能的,因為它是一個必須保持運行的遺留系統。 另請注意,這是該項目第一次添加新文件,因此可能是來自 netbeans 的硬編碼配置或其他可能導致此問題的東西 (gwt?)。

是否還有其他測試可以查看問題出在哪里? 也許這在當時是一個普遍問題?

所以我設法解決了這個問題。 基本上這是一個 NetBeans 問題。 我從 NetBeans 中刪除了該項目,然后再次重新打開它,導入它所需的依賴項,並且成功編譯而沒有提到的錯誤。

然后,我通過使用在其他類上“壞”的導入繼續進行測試,這些類由於某種原因不像新導入那樣,並且它們也運行良好。

所以基本上解決方案似乎是一種更長的方法來“關閉然后重新打開”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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