6

我找到了一个 javacode并想在我的项目中使用它。它包含我JDK没有的这些导入:

import com.sun.awt.AWTUtilities;
import com.sun.jna.Native;
import com.sun.jna.platform.WindowUtils;

我参考了太阳网站,发现了这个下载页面:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

是否需要从 SUN 网站全部下载JDKJRE替换?我JDK的是第 6 版并且是最新的。

谢谢你们

4

3 回答 3

10

JNA是一个附加库而不是标准 api 的一部分,您必须下载它(在这里)并将其包含在您的类路径中。

该类AWTUtilities仅作为 api 的实现细节与 sun jvm 一起分发,因此可能会发生变化,这可能会破坏任何依赖它的程序(如果可能,请不要使用它)。

WindowUtils可以在 platform.jar 中找到,您可以在与 jna 相同的页面上找到它。

于 2011-02-09T14:36:05.010 回答
5

你的 JDK 应该有com.sun.awt.AWTUtilities. 它在rt.jar.

也许问题(对于该文件)是您的 IDE 排除了构建路径的父级......因为直接使用这些类是一个坏主意。

课程com.sun.jna不在. rt.jar它们显然可以在 a 中找到jna.jar,尽管我还没有找到一个好的下载位置。(如果你使用 Maven,试试这个。)

于 2011-02-09T04:50:07.177 回答
4

除非万不得已,否则不应使用任何 com.sun 软件包。这些被认为是实现细节,它们不是 JDK API 的一部分。它们可以在版本之间任意更改,因此当您尝试升级 JDK 版本时它们可能会导致问题。

com.sun 类几乎总是被“官方”类包裹——你应该使用它们。您可以在万不得已的情况下使用它们,但它们已经是 JDK 下载的一部分,因此不需要额外下载。

编辑:看起来你是对的,你确实需要下载一些额外的罐子。JNA jar 在 maven Central (http://mvnrepository.com/artifact/com.sun.jna/jna/3.0.9) 上可用。特别是如果这是您找到的代码片段,我强烈建议您不要直接使用 com.sun 包。

于 2011-02-09T04:48:00.850 回答