[英]com.sun.jna.Pointer cannot be cast to com.sun.jna.platform.win32.WinDef.LPARAM
[英]Can not use JNA: com.sun.jna.Library is not accessible
I am trying to use JNA, because I want to work with a.dll that was written in c++ and the rest of my code is in Java. 但是,如果我嘗試導入 JNA 類 Eclipse 聲稱“類型 com.sun.jna.Library 不可訪問”。
我的 IDE 似乎看到 JNA 在我的庫中,因為當我鍵入“import com.sun.j”時,它會將.jna 和 .Z68995FCBF432492D40484D04A9D2 文件中的其他包
我創建了一個單獨的項目來查看它是否在那里工作,但它只是不起作用。
I have downloaded the latest.jar (jna-5.8.0.jar and jna-platform-5.8.0.jar) files from the jna Github (https://github.com/java-native-access/jna/blob/ master/README.md ),我已通過項目將它們添加到 class 路徑->配置構建路徑->添加外部 JARs
我將 Eclipse 與 javaSE-13 一起使用。
package Testtest;
import com.sun.jna.Library;
import com.sun.jna.Native;
import com.sun.jna.Platform;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Package 結構:
Test
|-- src
| |-- TestTest
| | |-- Main.java
| |-- module-info.java
|-- JRE System Library [JavaSE-13]
|-- Referenced Libraries
|-- jna-5.8.0.jar
|-- jna-platform-5.8.0.jar
正如評論中提到的@greg-449 ,您有一個模塊化項目,由您的src
目錄(包根目錄)中存在module-info.java
文件表示。
您在這里有三個選擇:
module-info.java
JRE 8 或更早版本上運行(或將您的項目兼容級別更改為)module-info.java
模塊描述符,以便在沒有模塊的情況下運行程序module-info.java
)以添加指令requires com.sun.jna
。 如果您使用的是 jna jna-platform
,則還requires com.sun.jna.platform
。
Structure
或PointerType
),您將需要在項目中open
包含這些子類到com.sun.jna
的任何包,因為它們使用反射來訪問您的子類。 (這里有多個選項,但open TestTest to com.sun.jna
是最接近 JDK8 的行為。)。 我知道這只是一個測試設置,但考慮一個反向 DNS 樣式的 package 名稱和模塊描述符。jna-jpms-5.8.0
和jna-platform-jpms-5.8.0
JARs 作為依賴項,因為它們有自己的模塊描述符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.