在NetBeans中编译问题

时间:2011-06-09 13:20:06

标签: java netbeans compiler-construction

我在NetBeans中创建了一个项目,下载了一些Bouncy城​​堡的第三方罐子,它提供了一些java加密API。我还下载了源代码并按照包名将它们放在src文件夹下。但是我的项目中的一些java文件显示为红色且有错误。这是一个如 -

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进行编译,因为我通过单击项目和“清理并生成”选项进行编译。

2 个答案:

答案 0 :(得分:1)

看起来你有命名冲突。你可能有

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

但两个包都定义ECParameterSpec。 如果这是您的问题,您可以使用rg.bountycaslte.jce.ECParameterSpec myvar = ...显式定义变量类型,也可以添加导入语句import rg.bouncycastle.jce.ECParameterSpec;以指定您真正想要的那个。

答案 1 :(得分:0)

同意@Harry Joy,弃用不是错误。如果可以,您必须避免使用弃用的方法或API。因为我们不知道Oracle何时会在JDK的下一版本中删除这个已弃用的方法。

如果要在NetBeans中使用-Xlint:deprecation进行编译,可以右键单击项目节点(在检查器窗口中),然后选择“属性”。

在“属性”窗口中,选择“生成”>编译。请在“附加编译器选项”字段中搜索,然后在此字段中输入Xlint:deprecation。完成后,您可以按OK按钮。

顺便说一句,您可以传递该字段中的任何其他选项,例如“Xlint:unchecked”:)