Java 从eclipse运行时,os.arch表示为x86_32,但jar表示为amd-64#64
发现一个特殊的问题。 我运行了一个简单的Java程序来查找os.arch版本,然后我得到了正确的32位X86体系结构,但当我作为Jar运行时,我得到了AMD64#64作为输出 下面是我正在使用的代码 系统S.O.p-Java 从eclipse运行时,os.arch表示为x86_32,但jar表示为amd-64#64,java,windows,operating-system,system,Java,Windows,Operating System,System,发现一个特殊的问题。 我运行了一个简单的Java程序来查找os.arch版本,然后我得到了正确的32位X86体系结构,但当我作为Jar运行时,我得到了AMD64#64作为输出 下面是我正在使用的代码 系统S.O.p- --->x86 --2--->32 从Eclipse运行- import javax.swing.JFrame; import javax.swing.JOptionPane; public class CHECK extends JFrame { publ
- --->x86
- --2--->32
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class CHECK extends JFrame
{
public CHECK ()
{
JOptionPane.showMessageDialog( null, System.getProperty("os.arch")+" # " +System.getProperty("sun.arch.data.model"));
}
/**
* @param args
*/
public static void main ( String[] args )
{
// TODO Auto-generated method stub
new CHECK();
}
}
但当我以可运行的Jar运行时-
我的系统详细信息-
“os.arch”系统属性返回JRE的比特数,而不是操作系统本身
从
如果您使用的是32位版本的eclipse,则可能会发生这种情况
编辑
关于AMD64
86-64(也称为x64、x86_64和amd64)是x86指令集的64位版本
您是否正在运行32位版本的Eclipse?尽管它仍然不应该将os.arch显示为32位。amd64更为正确,尽管它对于英特尔处理器来说似乎有违直觉。该体系结构实际上是X86_64。您的eclipse是32位还是64位,因为eclipse正在使用另一个JVM(X86),请检查您在项目中使用的jdk是什么,从命令行将其更改为使用相同的jdk,并向我们显示结果。检查您的eclipse版本,如果您使用的是32位JVM,它将被愚弄。请参见类似问题的此答案