如何使用Java确定Windows的32位或64位架构?
我试图找出的是我的JRE是32位还是64位.
是的,我尝试过,java -version / -showversion / -fullversion但它没有说任何有用的东西(至少对我没用).
这就是我做的时候java -version:
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode)
所以我可以访问的是一个压缩的JRE的bin文件夹,安装和设置了一个不同的JRE,这不是我试图检查的版本.
有任何想法吗?
我正在使用Launch4J来启动我的Java应用程序,如果系统上存在x64 JRE,则Launch4J似乎更喜欢它.
不幸的是我的应用程序无法在64位JVM上运行,因为我正在加载32位DLL,这是不可能的,并导致UnsatisfiedLinkError.
有没有办法强制/欺骗Launch4J只使用32位JVM?
我有一个Java应用程序,我想为用户提供编译Java源代码的能力(使用JavaCompiler接口)
如果用户在JRE上运行应用程序,我的应用程序应该告诉用户没有JavaCompiler实例可用.
那么如何在java程序中检测JDK或JRE?
Java是否有任何可以调用的API,可以知道进程或.exe文件是32位还是64位? - 而不是运行代码的JVM
在我的Java应用程序中,我需要一个可用于32位和64位的JNI库.我不想发送我的应用程序的两个不同版本,所以我想运送两个库的应用程序,应用程序必须确定自己要加载哪个库(foobar32.so或foobar64.so).我怎么做?
我想要尝试加载第一个,如果这引发异常,那么我加载第二个但这听起来很难看.
是否有一些系统属性我可以检查以确定是否使用32位Java或64位Java来运行我的应用程序?我知道有一些os.arch属性,但根据这个答案,返回值似乎是不可预测的.
那么让应用程序决定是否加载32位或64位JNI库的最佳方法是什么?
我有一个签名的Java小程序,利用已安装的第三方DLL在我的Java应用程序中使用卡扫描程序组件.在64位计算机上,有一些库旨在用于64位体系结构,因为这些库的原始版本仅在x86上运行.
问题是它们的名称不同......
library.dll
在x64上我应该使用...
library64.dll
我必须调用loadLibrary在我的applet中按名称加载适当的库,但要加载我需要预先确定系统架构的正确库.我知道我可以捕获一个UnsatisfiedLinkError,但这真的很难看,我想尽可能避免这种情况.我也无法假设库的安装位置.
任何想法如何从Java应用程序中解决这个问题?
java ×7
64-bit ×3
x86 ×2
32bit-64bit ×1
dll ×1
eclipse ×1
eclipse-jdt ×1
eclipse-rcp ×1
launch4j ×1
windows ×1