2011-06-09 149 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:选中” :)