Java 编译到Netbeans中的64位目标

Java 编译到Netbeans中的64位目标,java,opencv,dll,loadlibrary,Java,Opencv,Dll,Loadlibrary,我制作了一个64位应用程序,这意味着它在Netbeans中使用64位DLL OpenCV for Java,并且使用inherit Run函数可以很好地工作,但是如果我尝试构建它并运行jar,它会给我这个错误 java.lang.UnsatisfiedLinkError: no opencv_java246 in java.library.path at java.lang.ClassLoader.loadLibrary(Unknown Source) at java.lang.

我制作了一个64位应用程序,这意味着它在Netbeans中使用64位DLL OpenCV for Java,并且使用inherit Run函数可以很好地工作,但是如果我尝试构建它并运行jar,它会给我这个错误

java.lang.UnsatisfiedLinkError: no opencv_java246 in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at org.chimeras1684.ui.operation.NewDriverUI.main(NewDriverUI.java:43)

我环顾了一下,问题似乎是Netbeans运行64位的函数构建,而构建函数是32位的。有没有办法强制生成64位的版本?或者这个问题是我看不到的其他问题?

您是如何运行jar文件的?双击?您是否考虑过系统安装的jvm可以是32位的?Java字节码没有“位大小”,它完全依赖于运行的jvm。Java没有为64位或32位构建字节码的概念。您选择在其中运行它的JVM决定了位数。有没有办法让jar自动运行在64位中?是的,我双击java程序启动后,您无法“更改”位深度,因为jvm已经启动。。。java中没有真正的编程方式来实现这一点。但是,您可以检测其是否为64位,并相应地继续/终止。32位/64位java没有太大区别,除了64位java可以分配更多内存这一事实,除非您的外部库从64位执行中受益匪浅,否则我建议编译32位版本的库。