Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从eclipse运行时,os.arch表示为x86_32,但jar表示为amd-64#64_Java_Windows_Operating System_System - Fatal编程技术网

Java 从eclipse运行时,os.arch表示为x86_32,但jar表示为amd-64#64

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

发现一个特殊的问题。 我运行了一个简单的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
{
    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,它将被愚弄。请参见类似问题的此答案