2011-06-09 66 views
2

我已經在NetBeans中創建了一個項目,它下載了一些第三方的Bouncy城​​堡,它提供了一些Java加密API。我也下載了源代碼,並根據包名將它們放在src文件夾下。但是我的項目中有幾個java文件顯示爲紅色,並顯示錯誤。這裏是一個如 -在NetBeans中編譯問題

getparams() in org.bouncycastle.jce.provider.JCEECPrivateKey cannot implement 
       getParams() in rg.bouncycastle.jce.interfaces.ECKey 
found : java.security.spec.ECParameterSpec 
required: rg.bouncycastle.jce.ECParameterSpec 

但奇怪的是,當我真正編譯從NetBeans中的代碼,編譯成功,結果被創建的最終jar文件。但是,編譯說明如下:

Note: Some input files use or override a deprecated API. 
Note: Recompile with -Xlint:deprecation for details. 
Note: Some input files use unchecked or unsafe operations. 
Note: Recompile with -Xlint:unchecked for details. 

我的問題是:爲什麼即使某些文件似乎有錯誤,編譯也會經歷?我可以忽視這些是良性的嗎?

如何在NetBeans中使用-Xlint進行編譯,因爲我正在通過單擊項目和「清理並生成」選項進行編譯。

+1

「**與-Xlint重新編譯:棄用的細節**」是不是一個錯誤。它只是告訴一些java類使用了一些被新的java SE中的其他方法取代的被廢棄的方法。 – 2011-06-09 13:23:15

+0

-NetBeans中的Xint在項目屬性,運行或編譯選項下設置 - 我認爲 – vector 2011-06-09 13:24:46

回答

1

看起來你有一個命名衝突。您可能有

import java.security.spec.*; 
import rg.bouncycastle.jce.*; 

但是兩個軟件包都定義了ECParameterSpec。 如果這是您的問題,您可以使用rg.bountycaslte.jce.ECParameterSpec myvar = ...明確定義變量類型,也可以添加導入語句import rg.bouncycastle.jce.ECParameterSpec;來指定您真正想要的變量類型。

0

同意@Harry Joy,棄用不是錯誤。如果可以,您必須避免使用已棄用的方法或API。因爲我們不知道Oracle何時會在下一版本的JDK中刪除此棄用的方法。

如果要在NetBeans中使用-Xlint:deprecation進行編譯,可以右鍵單擊項目節點(在檢查器窗口中),然後選擇「屬性」。

在屬性窗口中,選擇生成>編譯。請搜索「其他編譯器選項」字段,然後將Xlint:deprecation放在此字段中。完成之後,您可以按OK按鈕。

順便說一句,你可以通過在該領域的任何其他選項,如「Xlint:選中」 :)