在项目中包含 JNA 代码 - 编译错误



我正在使用另一个StackOverflow帖子中的示例代码 - Java - 如何快速截屏,但我遇到了一些问题。

我从它的 Github 存储库下载了 JNA 文件,然后将该文件复制到 JAR 文件中,并将其放入我的程序所在的同一文件夹中。但是当我尝试编译我的程序时,它给了我很多错误,如下所示:

C:UserswindowsDesktoptestPrintScreen>javac JNAScreenShot.java
JNAScreenShot.java:12: error: package com.sun.jna.platform.win32 does not exist
import com.sun.jna.platform.win32.W32API;
                             ^
JNAScreenShot.java:129: error: package com.sun.jna.platform.win32 does not exist
interface GDI32 extends com.sun.jna.platform.win32.GDI32 {
                                              ^
JNAScreenShot.java:58: error: cannot find symbol
bufferedImageFromBitmap(GDI32.HDC        blitDC,
                             ^
symbol:   class HDC
location: interface GDI32
JNAScreenShot.java:59: error: cannot find symbol
                        GDI32.HBITMAP    outputBitmap,
                             ^
symbol:   class HBITMAP
location: interface GDI32
JNAScreenShot.java:60: error: cannot find symbol
                        GDI32.BITMAPINFO bi) {
                             ^
 symbol:   class BITMAPINFO
 location: interface GDI32
JNAScreenShot.java:151: error: package com.sun.jna.platform.win32 does not exist
interface User32 extends com.sun.jna.platform.win32.User32 {

有谁知道发生了什么?是进口部分导致了问题吗?这些是我的进口:

import com.sun.jna.Native;
import com.sun.jna.platform.win32.W32API;
import com.sun.jna.win32.W32APIOptions;

我目前没有 Windows 机器,但下面的变体应该可以正常工作。在命令窗口中更改为方便的目录,然后:

git clone https://github.com/twall/jna.git
cd jna
ant
cd dist
pwd

记下最后一个路径,在编译 JNA 程序时,您需要将其包含在类路径中。您可能还需要在 dist 文件夹中包含一些其他 JAR。


*编辑*根据您的其他注释,您的代码似乎使用的是较旧的 JNA API。有关如何解决此问题的更多信息,请参阅此SO帖子 - JNA W32API - 它们在哪里?

最新更新