làm thế nào để xác định xem tôi đã cài đặt tệp thực thi nút 64 bit hay 32 bit?


89

Trên máy tính Windows của tôi, tôi đã cài đặt nodejs. Tôi muốn xác định xem nó là 64 bit hay 32 bit. Làm thế nào người ta có thể xác định điều đó? Tôi đã thực hiện

node --help

nhưng điều đó dường như không có bất kỳ tùy chọn nào để cung cấp cho tôi thông tin mong muốn.


coderwall.com/p/0eds7q Không chắc liệu nó có hữu ích không vì nó chỉ chỉ ra khung hệ điều hành.
— Silviu Burcea

Câu trả lời:


111

Chạy điều này từ dòng lệnh:

node -p "process.arch"

Nó sẽ trả về 'arm', 'ia32' hoặc 'x64'.


Làm việc như một sự quyến rũ trong Win 10.
— Machado

Làm việc như người ở!
— Gásten

61

Nếu nút được cài đặt và thực thi, bạn có thể chỉ cần chạy

c:\> node -p "process"    

và bạn sẽ thấy nội dung của processbiến được định dạng. Ở đó các phím archvà platformcho biết hệ điều hành của bạn. Trong ví dụ dưới đây, nó là mộtWindows 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 : {
        ...
    }
}

Làm tốt lắm, không sử dụngrequire ('os');
— andrew

3
Nói gì platform? Không arch: x64, platform: win32nói rằng bạn đang chạy nút 32 bit trong bộ xử lý 64 bit?
— sampathsris

2
@Krumia: Chà, "win32" thường dùng để chỉ API mà Windows NT đã giới thiệu (và Windows 9x sau này đã triển khai [một tập hợp con của]) dưới tên đó cho các chương trình 32-bit. Khi MS sau đó điều chỉnh API để hỗ trợ cả chương trình 32 bit và 64 bit, điều này tự nhiên dẫn đến tên ban đầu "win32" trở nên hơi khó hiểu, vì bây giờ đôi khi mọi người sử dụng nó để chỉ cụ thể đến biến thể 32 bit của API hoặc với i386 ABI cụ thể; do đó, việc gọi API này là "win32" đã hơi lỗi thời. Tuy nhiên, nó vẫn được sử dụng ngay cả cho phiên bản 64-bit của API.
— SamB

@Krumia: Điểm chung của tất cả là: rất có thể win32nó không chỉ ra bất cứ điều gì về tập lệnh node.js được xây dựng để làm gì. Hơn nữa, có thể là x64dấu hiệu cho thấy đây thực chất là một bản dựng 64-bit. (Dù bằng cách nào, nó chắc chắn là một hệ điều hành 64 bit, vì bạn không thể chạy các tệp nhị phân x64 trên một hệ điều hành 32 bit.)
— SamB

29

Nếu nó trên hệ điều hành Windows, chỉ cần đi theo cách cũ .. bằng cách sử dụng Windows Task Manager .

Đây là nỗ lực của tôi: -

Chỉ cần chạy nodetừ dấu nhắc lệnh.

C:\> node

Điều này sẽ đưa nút vào chế độ REPL (được >biểu thị bằng ký hiệu). Bây giờ hãy mở Trình quản lý tác vụ (Ctrl + Shift + Esc) để xem node.exechi tiết quy trình. Của tôi là trên Windows 10 64-bit với nút 32-bit được cài đặt. Đảm bảo bạn bật cột 'Nền tảng' để xem thông tin 32-bit / 64-bit.

nhập mô tả hình ảnh ở đây


4
kể từ cửa sổ 10 điều này dường như bị thiếu.
— Meirion Hughes

2
@MeirionHughes nope, bạn cần thêm cụ thể cột này vào chế độ xem. Kích chuột phải vào bất kỳ cột và chọnSelect columns
— Maria Ines Parnisari

23

trong mac

$ node
 > require('os').arch()

trong cửa sổ

c:\> node
> require('os').arch()

3
Cung cấp cho kiến trúc hệ điều hành, không nút của
— grisevg

3
Tôi đã thử nghiệm trên Windows 10 64bit với Node.js 6.4.0 32bit và nó trở lại ia32, vì vậy nó không phải là kiến trúc hệ điều hành
— Bernardo Ramos

3
@grisevg The os.arch() method returns a string identifying the operating system CPU architecture for which the Node.js binary was compiled.nguồn: nodejs.org/api/os.html#os_os_arch
— André Werlang

4

Vâng, cách tôi đang đề xuất không phải là một cách tốt. Bạn có thể chuyển đến C: sau đó đi tới Tệp Chương trình và tìm kiếm thư mục nodejs ở đó. Nếu nó được tìm thấy thì bạn đang chạy phiên bản 64 bit khác, hãy kiểm tra trên Program Files (x86). Nếu nó được tìm thấy ở đó thì bạn đang chạy phiên bản 32 bit.


1
Node js có thể đã được cài đặt trên hệ thống trong quá khứ tại một vị trí tùy chỉnh. Trong trường hợp đó, đây không phải là giải pháp.
— Megha Dev

2

Điều này có thể không trực tiếp giải quyết vấn đề của bạn, vì tôi không biết cách tốt nhất để có được hành vi tương tự trên Windows, nhưng sử dụng filelệnh trên hệ thống Unix hoặc Linux sẽ cho bạn biết kiến ​​trúc bộ xử lý của tệp thực thi:

$ file `which node`
/usr/local/bin/node: Mach-O 64-bit executable x86_64

Nếu bạn đã cài đặt Cygwin, tôi khá chắc chắn rằng nó cung cấp filelệnh hoặc nếu không, bạn có thể kiểm tra trực tuyến các chương trình tương tự hoạt động trên Windows.


Sử dụng các filelệnh từ GnuWin32, tôi nhận được PE32+ executable for MS Windows (console) Mono/.Net assemblycho các chương trình 64-bit, và PE32 executable for MS Windows (console) Intel 80386 32-bitcho các chương trình 32-bit
— daniel kullmann

1

Chỉ cần khởi động trình thông dịch nút bằng cách chạy node. sau đó, process.envđưa ra một json với tất cả thông tin bạn yêu cầu. Thử của tôi có một PROCESSOR_ARCHITECTURE: 'AMD64'mục trong đó.

Tôi cũng tìm thấy

ProgramFiles: 'C:\\Program Files', 'ProgramFiles(x86)': 'C:\\Program Files (x86)' ProgramW6432: 'C:\\Program Files'


1
AFAIK điều này chỉ cho bạn biết bộ xử lý của bạn có khả năng gì; nếu giá trị là AMD64, nó vẫn có thể chạy các chương trình 32-bit.
— daniel kullmann

0

Nhập REPL của nút bằng lệnh 'nút'.

Lời nhắc sẽ thay đổi thành>

Sau đó, sử dụng phần sau để có được thông tin mong muốn-

  1. request ('process'). Arch ==> điều này sẽ cung cấp phiên bản kiến ​​trúc nút.
  2. request ('process'). platform ==> điều này sẽ cung cấp kiến ​​trúc của nền tảng biên dịch
  3. request ('process'). release and demand ('process'). release.libUrl ==> cũng cung cấp thông tin về phiên bản và achitecture
  4. request ('process'). config.variables.host_arch ==> điều này cũng sẽ cung cấp cho phiên bản kiến ​​trúc nút.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.