2012-04-27 37 views
1

我正在處理來自另一個StackOverflow後的示例代碼 - Java - How to take a screenshot fast,但我遇到了一些問題。在項目中包含JNA代碼 - 編譯錯誤

我從其Github repository下載了JNA文件,然後將該文件複製到JAR文件中,並將其放入我的程序所在的同一文件夾中。但是當我嘗試編譯我的程序時,它給了我很多錯誤,如下所示:

C:\Users\windows\Desktop\testPrintScreen>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; 
+0

你是否抓取了存儲庫中的所有文件?此外,它更好地下載單獨鏈接的項目並將其構建到JAR中,然後將該JAR鏈接到您的項目。 – Perception 2012-04-27 03:36:17

回答

1

我目前沒有Windows機器,但下面的變體應該可以正常工作。在命令窗口中更改到一個方便的目錄,然後:

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

請記下最後一個路徑,你需要編譯你的JNA程序時要包括的類路徑中。您可能還需要在dist文件夾中包含其他一些JAR文件。


*編輯* 基於把你的附加註釋它似乎你的代碼是使用舊的API JNA的。請參閱此SO帖子以獲取有關如何解決該問題的更多信息 - JNA W32API - Where are they?

+0

感謝您的答覆,但窗戶不會jit git克隆..它是linux命令正確..但無論如何.thanks .. – Eric 2012-04-27 03:57:01

+0

是的,這就是爲什麼我說,需要一個變種的命令。在Windows上,你可以使用[cygwin](http://www.cygwin.com/),然後你幾乎可以運行我的答案。或者,您可以使用您最喜歡的[Windows Git客戶端](https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=windows+git+clients)下載代碼。 – Perception 2012-04-27 03:59:08

+0

我想我知道什麼問題.. W32API丟失了,你知道在哪裏可以找到它嗎?我發現了一些,但它在java文件中。所以我編譯它,但它給了我很多錯誤.. – Eric 2012-04-27 05:39:28