
JAVA/JNI/JNA
JAVA/JNI/JNA
柳鲲鹏
建立了编程学(编程基本功、平台化编程)、六石管理学等几个流派。
每涉及一个领域,都是顶级砖家。在这些领域中,如果遇到问题,最后肯定是搜索到本博客。
展开
-
cannot access class (in module java.desktop) because module java.desktop does not export
【代码】cannot access class (in module java.desktop) because module java.desktop does not export。原创 2023-12-11 14:00:42 · 611 阅读 · 0 评论 -
jackjson下载地址
三个链接:https://github.com/FasterXML/jackson-databindhttps://github.com/FasterXML/jackson-annotations/wikihttps://github.com/FasterXML/jackson-core一番搜索:Central Repository: com/fasterxml/jackson/core原创 2023-10-28 11:59:21 · 890 阅读 · 0 评论 -
摄像头分辨率从高到低排序(Java List)
【代码】摄像头分辨率从高到低排序(Java List)原创 2023-10-10 19:09:02 · 101 阅读 · 0 评论 -
JAVA反编译工具:JADX-GUI、JEB、GDA
JAVA无处不在,自然的工具繁多,连反编译都有很多。没有他们,我们这水平……原创 2023-10-10 17:49:40 · 723 阅读 · 0 评论 -
JAVA中JFrame/JDialog/Frame/Dialog的getParent()研究
Dialog没有无参构造器。注意,有意思的事情出现了。原创 2023-08-21 09:38:45 · 163 阅读 · 0 评论 -
JAVA应该考虑引入unsigned关键字
学过C的都知道unsigned什么意思,实际上这个是非常好用的。JAVA在设计时就没有用这个想法,说是可以扩展到。这个想法还能说错,有时确实不方便。所以我觉得可以考虑引入这个关键字。原创 2023-08-07 10:33:50 · 166 阅读 · 0 评论 -
module java.desktop does not export sun.awt to unnamed module @12390a8b
【代码】module java.desktop does not export sun.awt to unnamed module @12390a8b。原创 2023-03-28 08:20:39 · 2519 阅读 · 7 评论 -
对于JAVA的instanceof关键字改进想法
JAVA有一个关键字,instanceof,用来判断是不是某个类的实例。实际使用中,感觉并不方便。原创 2023-03-27 08:11:29 · 161 阅读 · 0 评论 -
java.awt.FontFormatException: Unsupported sfnt C:\Windows\Fonts\mstmc.ttf
【代码】java.awt.FontFormatException: Unsupported sfnt C:\Windows\Fonts\mstmc.ttf。原创 2022-11-21 14:18:04 · 812 阅读 · 1 评论 -
全网首发:什么都对,报错java.lang.NoClassDefFoundError: com/sun/jna/Library
把jna.jar/jna-platform.jar复制到jre/lib/ext下。从jna 5.10开始,有了本地库。原创 2022-11-16 10:37:04 · 1160 阅读 · 0 评论 -
Java3D/J3D/Jogamp测试代码
不同平台需要对应的本地编译库。原创 2022-11-20 08:16:05 · 279 阅读 · 0 评论 -
Java中BufferedImage的用法,如何读取保存一个图片
【代码】Java中BufferedImage的用法,如何读取保存一个图片。原创 2022-11-04 16:55:56 · 2290 阅读 · 0 评论 -
全网首发:Java在LINUX上系统上加载OpenCV so库的范例代码
这个范例不一定能跑起来。原因就是依赖库加载的问题。关键的一句就是要正确找到so包。原创 2022-09-27 11:01:19 · 1397 阅读 · 0 评论 -
apktoo.jar官方下载网址链接
提供下载的不少,官方下载找了一会。具体是:Apktool - A tool for reverse engineering 3rd party, closed, binary Android apps.原创 2022-04-09 14:35:12 · 1303 阅读 · 0 评论 -
JAVA反编译工具下载
Java Decompiler原创 2022-03-20 09:13:54 · 827 阅读 · 0 评论 -
JAVA加载一个目录下有依赖关系本地库的通用代码
具体参考:全网首发:Linux自带opencv库的JAVA调用失败/java.lang.UnsatisfiedLinkError:libopencv_ml.so.405: 无法打开共享对象文件_柳鲲鹏-优快云博客原创 2022-03-09 08:12:21 · 3746 阅读 · 0 评论 -
(已解决)MAC JAVA错误:Cocoa AWT: Not running on AppKit thread 0 when expected
具体错误:2022-02-25 09:16:25.302 java[547:10409] Cocoa AWT: Not running on AppKit thread 0 when expected. ( 0 libawt_lwawt.dylib 0x000000010eaacb88 -[AWTWindow windowDidResignKey:] + 43 1 CoreFoundation 0x00007fff原创 2022-02-25 09:22:50 · 666 阅读 · 0 评论 -
没有加载jawt导致java.lang.UnsatisfiedLinkError
出错之后,反复检查代码,什么都对。后来抱着试试的态度,预先加加载了jawt,就不再出错了。 原因是因为本地库中使用了awt的东西,所以需要预先加载。原创 2022-02-18 09:39:31 · 376 阅读 · 0 评论 -
全网首发:j3d/jogl多个崩溃分析总结
很久以前同事决定使用J3D。而J3D依赖于jogamp(jogl/gluegne)。于是吾辛辛苦苦编译通过(mips/loongarch编译结果是全网首发),以为总算可以交差了。其实这才是麻烦的开始。LINUX闪退1 同事抱怨经常闪退。吾有时间终于分析了一番。成功解决。全网首发:分析及解决com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required_柳鲲鹏-优快云博客 让测试同事试了一下,原创 2022-02-17 15:57:03 · 428 阅读 · 2 评论 -
全网首发:分析及解决com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required
详细错误com.jogamp.opengl.GLException: J3D-Renderer-1: createImpl ARB n/a but required, profile > GL2 requested (OpenGL >= 3.1). Requested: GLProfile[GL3bc/GL3bc.hw], current: 3.1 (Compat profile, compat[ES2, ES3], FBO, hardware) - 3.1 Mesa 20.0.8 at原创 2022-02-08 10:15:25 · 1487 阅读 · 0 评论 -
JAVA万能:JNLP在浏览器上以WEB方式运行JAVA程序
这几天研究jogamp死机问题,下载了对方的demo。demo应该是web方式,看到其中的jnlp文件有点奇怪,以前没见过啊。于是搜索了一下,震惊了: Java Network Launching Protocol (JNLP,java网络加载协议) ,通过JCP(Java Community Process)的JSR-56的开发, JNLP解决了很多先前用java开发针对客户端的功能的问题。一个JNLP客户端是一个应用程序或者说服务,它可以从宿主于网络的资源中加载应用程序。如果你使用JNLP打包原创 2022-01-28 09:42:57 · 1709 阅读 · 0 评论 -
JDK/Java在屏幕缩放时Toolkit.getScreenResolution()的结果
初步测试结论如下:在LINUX上,一直是96 在WINDOWS上:100%:96125%:120150%:144175%:168。 这个应该是相当于DPI。当DPI变大,屏幕像素没有变化,自然的内容就会变大。原创 2022-01-20 09:11:07 · 855 阅读 · 0 评论 -
OpenJDK8 JAVA应用窗口在不同缩放比例下的表现(Linux)
LINUX都一样,所以不区分。由图可知,窗口并没有同步缩放。即:功能不正常。100%125%150%原创 2022-01-19 14:40:59 · 614 阅读 · 0 评论 -
OpenJDK8 JAVA应用窗口在不同缩放比例下的表现(Windows10)
右键,显示设置,缩放与布局100%125%150%175%原创 2022-01-19 14:21:54 · 584 阅读 · 0 评论 -
JAVA:获得当前执行路径的办法
比如吾在开发时调试功能,当前路径是哪个?有点明白,也不确定。这个时候,还是老老实实的检查一下:public static String getCurrentRunningDir(){ File f = new File(""); try { String dir = f.getCanonicalPath(); System.out.println("Current Dir:"+dir); return dir; }原创 2022-01-14 14:20:01 · 413 阅读 · 0 评论 -
java中Error(UnsatisfiedLinkError)与Exception是有差异的
如下代码是可以编译通过的:try{ System.load(file.getAbsolutePath());}catch (java.lang.Error e){ continue;}catch (java.lang.Exception e){ continue;}catch抓的实际上是Throwable原创 2022-01-11 09:23:24 · 361 阅读 · 0 评论 -
全网首发:Linux自带opencv库的JAVA调用失败/java.lang.UnsatisfiedLinkError:libopencv_ml.so.405: 无法打开共享对象文件
本来以为,修改了rpath之后,问题就解决了。结果依然说库找不到(库在同目录下)。具体来说:Exception in thread "main" java.lang.UnsatisfiedLinkError: /home/wuxi/eclipse-workspace/FontTest/lib-native/libopencv_java455.so: libopencv_ml.so.405: 无法打开共享对象文件: 没有那个文件或目录 at java.lang.ClassLoader$Native原创 2022-01-10 16:32:20 · 2434 阅读 · 0 评论 -
java.lang.UnsatisfiedLinkError: Library not loaded: @rpath/libo.dylib Reason: image not found
detailException in thread "main" java.lang.UnsatisfiedLinkError: /Users/taishansoft/eclipse-workspace/FontTest/lib-native/libopencv_java420.dylib: dlopen(/Users/taishansoft/eclipse-workspace/FontTest/lib-native/libopencv_java420.dylib, 1): Library not l原创 2022-01-07 15:34:56 · 622 阅读 · 0 评论 -
解决办法:java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_eye(III)J
具体错误java.lang.UnsatisfiedLinkError: org.opencv.core.Mat.n_eye(III)J at org.opencv.core.Mat.n_eye(Native Method) at org.opencv.core.Mat.eye(Mat.java:402)解决办法使用System.load()手动加载本地(dll/so/dylib)库。如果使用System.loadLibrary(),则要保证java.library.path中要有包含本地原创 2022-01-07 11:07:19 · 2376 阅读 · 0 评论 -
java3d/j3d源码位置
看了一下日期,多年没有维护了。有时也有心无力,咱这样的一个大国,这么多程序员,竟然只吃现成的。java3d-coreGitHub - hharrison/java3d-core: Fork of the javax.media.j3d packagejava3d-utilhttps://github.com/hharrison/java3d-utils...原创 2021-12-30 15:11:48 · 524 阅读 · 0 评论 -
全网首发:祝贺编译成功loongarch64 jna-5.10.0及难点说明
编译个jna也值得庆贺?还真是。比如jna4.6,全是JAVA代码,不需要C代码。现在5.10.0(可能5系列都如此?)就需要编译C代码了,而且不同CPU需要不同的代码。这就是说CPU厂家必须及时移植。 编译下来的体会,难点有两个:找到移植到loongarch64的libffi源码 本来这不是个问题,结果龙芯在github上有两个开源区,loongson的libffi是已经移植的,loongarch的libffi没有移植。已移植到loongarch64的libffi源码目录_柳鲲鹏-C原创 2021-12-24 14:23:11 · 1554 阅读 · 0 评论 -
全网首发:There is an incompatible JNA native library installed on this system/6.1.2/4.0.1
这个错误很难遇到。吾也是编译JNA才遇到。网上查了半天,完全无用。后来反复思考实验,终于成功解决。 错误原因,就是你使用的jna.jar中的libjnidispatch.so编译有问题。去下载一个别人编译好的jna.jar即可。比如:支持loongarch64的jna-5.10.0.zip-Java文档类资源-优快云下载 如果是编译,解决之前很难,解决之后就会发现,原来如此简单。具体解决办法(在jna的native目录):编译产生头文件ant javah修改Makefi原创 2021-12-24 14:21:57 · 2089 阅读 · 2 评论 -
已移植到loongarch64的libffi源码目录
这个目录是没有的:GitHub - loongarch64/libffi: A portable foreign-function interface library.这个目录就有了:GitHub - loongson/libffi: A portable foreign-function interface library.原创 2021-12-24 08:19:57 · 997 阅读 · 0 评论 -
JNA简单范例
C头文件#ifndef __JNATEST_H__#define __JNATEST_H__#define LOG_HERE() printf("%s-%d\n", __func__, __LINE__)void test_jna();#endifC代码#include <stdio.h>#include "jnatest.h" void test_jna(){ LOG_HERE(); printf("called from JAVA\n");原创 2021-12-24 08:14:16 · 575 阅读 · 0 评论 -
龙芯提供的jna-4.5.2,没有libjnidispatch.so,也能用
在龙芯上使用JNA一直有问题,想自己编译也无法通过。于是就想能不能使用源安装。试了还可以:LINUX通过apt安装jna_柳鲲鹏-优快云博客 今天就想再次自行编译jna。打开安装的jna.tar/jna-platform.tar,竟然没有找到libjnidispatch.so!没有这个东西,JNA能工作?或者这个so是后来版本才需要?...原创 2021-12-23 15:03:28 · 1519 阅读 · 0 评论 -
全网首发:LINUX编译JNA:编译libffi
下载源码全网首发:LINUX编译JNA:编译产生jna.jar_柳鲲鹏-优快云博客_jna源码编译编译libfficd nativecd libffi./autogen.sh./configuremake原创 2021-12-23 13:27:53 · 770 阅读 · 0 评论 -
全网首发:编译jna:dispatch.h:30:34: fatal error: com_sun_jna_Function.h: 没有那个文件或目录
这个错误怎么来的?是编译jna native部分,使用了make编译的结果。解决办法:产生libjnidispatch.soant产生com_sun_jna_Function.hant javah原创 2021-12-23 11:30:25 · 905 阅读 · 0 评论 -
build.xml:391: javac doesn‘t support the “nativeheaderdir“ attribute
意思还是很明白的,javac不支持nativeheaderdir属性。 解决办法很简单,打开build.sh,去掉这个属性,继续编译。 <javac classpathref="compile.path" source="${compatibility}" target="${compatibility}" destdir="${classes}" includeantruntime="fal原创 2021-12-23 10:51:04 · 481 阅读 · 0 评论 -
全网首发:成功解决UOS系统上运行JAVA程序任务栏名称问题
C代码,找到了几种解决办法。经过一番焦头烂额的努力,终于把JAVA问题也解决了。具体指:LINUX给进程内容窗口改名的代码_柳鲲鹏-优快云博客原创 2021-12-20 17:12:45 · 620 阅读 · 0 评论 -
编译JAVA的错误: 编码ascii的不可映射字符
修改JDK源码,加了点注释,结果编译出错了。怎么办?把代码文件另存为UTF8 javac带参数编译javac -encoding UTF8 吾编译OpenJDK8遇到这个问题。也不知道哪里调用javac。怎么办?先把javac改名javac-encoding 再写一个shell,调用${JAVA_HOME}/bin/javac-encoding -encoding UTF8 ${@:+"$@"}...原创 2021-12-20 14:05:46 · 521 阅读 · 0 评论