如何确定我是否安装了64位或32位节点可执行文件?

run*_*ero 86 node.js

在我的Windows PC上我安装了nodejs.我想确定它是64位还是32位.怎么能确定呢?我执行了

node --help
Run Code Online (Sandbox Code Playgroud)

但似乎没有任何选择可以给我所需的信息.

Che*_*het 96

从命令行运行:

node -p "process.arch"
Run Code Online (Sandbox Code Playgroud)

它将返回'arm','ia32'或'x64'.


Sve*_*415 60

如果已安装并可执行节点,则只需运行即可

c:\> node -p "process"    
Run Code Online (Sandbox Code Playgroud)

你应该看到process格式化变量的内容.有键archplatform指示您的操作系统.在下面的例子中,它是一个Windows 7 x64

{
    title : 'Administrator: C:\\Windows\\System32\\cmd.exe - node  ',
    version : 'v0.10.36',
    moduleLoadList :
    [   'Binding evals',
        ...
        'Binding signal_wrap',
        'NativeModule string_decoder'],
    versions : {
        http_parser : '1.0',
        node : '0.10.36',
        v8 : '3.14.5.9',
        ares : '1.9.0-DEV',
        uv : '0.10.30',
        zlib : '1.2.8',
        modules : '11',
        openssl : '1.0.1l'
    },
    arch : 'x64',
    platform : 'win32',
    argv : ['node'],
    execArgv : [],
    env : {
        ALLUSERSPROFILE : 'C:\\ProgramData',
        HOMEDRIVE : 'C:',
        JAVA_HOME : 'C:\\Program Files\\Java\\jdk1.8.0_05',
        NODEJS : 'C:\\Program Files (x86)\\nodejs\\',
        NUMBER_OF_PROCESSORS : '4',
        OS : 'Windows_NT',
        Path : 'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;',
        PATHEXT : '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY',
        PROCESSOR_ARCHITECTURE : 'AMD64',
        PROCESSOR_IDENTIFIER : 'Intel64 Family 6 Model 42 Stepping 7, GenuineIntel',
        PROCESSOR_LEVEL : '6',
        PROCESSOR_REVISION : '2a07',
        ProgramData : 'C:\\ProgramData',
        ProgramFiles : 'C:\\Program Files', 
        'ProgramFiles(x86)' : 'C:\\Program Files (x86)',
        ProgramW6432 : 'C:\\Program Files',
        PROMPT : '$P$G',
        PUBLIC : 'C:\\Users\\Public',
        PYTHON : 'C:\\Python34',
        SESSIONNAME : 'Console',
        SystemDrive : 'C:',
        SystemRoot : 'C:\\Windows',
        windir : 'C:\\Windows',
        windows_tracing_flags : '3'
    },
    features : {
        ...
    },
    config : {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 什么'平台'说什么?不是`arch:x64,platform:win32`说你在64位处理器中运行32位节点? (3认同)
  • @Krumia:嗯,"win32"经常指的是Windows NT为32位程序在该名称下引入的API(以及Windows 9x后来实现的[子集]).当MS稍后调整API以支持32位和64位程序时,这自然导致原始名称"win32"变得有些混乱,因为现在人们有时使用它来专门指代API的32位变体或者特别是i386 ABI; 因此,将此API称为"win32"已经过时了.但是,它仍然用于64位版本的API. (2认同)

one*_*iew 29

如果是在Windows操作系统上,只需使用Windows任务管理器即可通过旧式方式进行操作.

这是我的尝试: -

只需node从命令提示符运行.

C:\> node

这将使节点进入REPL模式(用>符号表示).现在打开任务管理器(Ctrl + Shift + Esc)以查看node.exe进程详细信息.我的Windows是64位,安装了32位节点.确保启用"平台"列以查看32位/ 64位信息.

在此输入图像描述

  • 从Windows 10开始,这似乎不见了. (4认同)
  • @MeirionHughes不是,您需要专门将此列添加到视图中。右键单击任何列,然后选择“选择列” (2认同)

小智 22

在mac

$ node
 > require('os').arch()
Run Code Online (Sandbox Code Playgroud)

在窗户

c:\> node
> require('os').arch()
Run Code Online (Sandbox Code Playgroud)

  • 这给了OS架构,而不是节点 (3认同)
  • 我在Windows 10 64bit上测试了node.js 6.4.0 32bit并返回了`ia32`,所以它不是OS架构 (3认同)
  • @grisevg`os.arch()方法返回一个字符串,标识为Node.js二进制文件编译的操作系统CPU体系结构.source:https://nodejs.org/api/os.html#os_os_arch (3认同)

jez*_*jez 4

这可能不会直接解决您的问题,因为我不知道在 Windows 上获得相同行为的最佳方法,但file在 Unix 或 Linux 系统上使用该命令会告诉您可执行文件的处理器架构:

$ file `which node`
/usr/local/bin/node: Mach-O 64-bit executable x86_64
Run Code Online (Sandbox Code Playgroud)

如果您安装了 Cygwin,我很确定它提供了一个file命令,否则您可以在线检查可在 Windows 上运行的类似程序。