Wie kann ich feststellen, ob eine ausführbare 64-Bit- oder 32-Bit-Knotendatei installiert ist?


88

Auf meinem Windows-PC habe ich nodejs installiert. Ich möchte feststellen, ob es 64-Bit oder 32-Bit ist. Wie kann man das feststellen? Ich habe ausgeführt

node --help

aber das scheint keine Möglichkeit zu haben, mir die gewünschten Informationen zu geben.


coderwall.com/p/0eds7q Ich bin mir nicht sicher, ob es hilft, da es nur auf den Betriebssystembogen hinweist.
Silviu Burcea

Antworten:


110

Führen Sie dies über die Befehlszeile aus:

node -p "process.arch"

Es wird 'arm', 'ia32' oder 'x64' zurückgegeben.


Arbeitete wie ein Zauber in Win 10.
Machado

Lief wie am Schnürchen!
Gásten

61

Wenn der Knoten installiert und ausführbar ist, können Sie ihn einfach ausführen

c:\> node -p "process"    

und Sie sollten den Inhalt der processVariablen formatiert sehen. Dort die Tasten archund platformzeigt Ihr Betriebssystem an. Im folgenden Beispiel ist es einWindows 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 : {
        ...
    }
}

Großartige Arbeit, nicht verwendetrequire ('os');
Andrew

3
Was platformsagt das aus? Sagt nicht arch: x64, platform: win32, dass Sie 32-Bit-Knoten in 64-Bit-Prozessor ausführen?
Sampathsris

2
@Krumia: Nun, "win32" bezieht sich häufig auf die API, die Windows NT unter diesem Namen für 32-Bit-Programme eingeführt (und Windows 9x später [eine Teilmenge von] implementiert) hat. Als MS später die API anpasste, um sowohl 32-Bit- als auch 64-Bit-Programme zu unterstützen, führte dies natürlich dazu, dass der ursprüngliche Name "win32" etwas verwirrend wurde, da die Leute ihn jetzt manchmal verwenden, um speziell auf die 32-Bit-Variante der API zu verweisen oder speziell an den i386 ABI; Folglich ist die Bezeichnung dieser API als "win32" etwas aus der Mode gekommen. Es wird jedoch auch für die 64-Bit-Version der API verwendet.
SamB

@Krumia: Der Sinn all dessen ist: Sehr wahrscheinlich win32gibt das nichts darüber an, wofür der Befehlssatz node.js erstellt wurde. Darüber hinaus ist es wahrscheinlich, x64dass dies darauf hinweist, dass es sich tatsächlich um einen 64-Bit-Build handelt. (In
beiden

29

Wenn es sich um ein Windows-Betriebssystem handelt, gehen Sie einfach einen alten Weg. Verwenden Sie dazu den Windows Task-Manager .

Hier ist mein Versuch: -

Einfach nodean der Eingabeaufforderung ausführen .

C:\> node

Dadurch wird der Knoten in den REPL-Modus versetzt (angezeigt durch ein >Symbol). Öffnen Sie nun den Task-Manager (Strg + Umschalt + Esc), um die node.exeProzessdetails anzuzeigen. Meins ist unter Windows 10 64-Bit mit Knoten 32-Bit installiert. Stellen Sie sicher, dass Sie die Spalte "Plattform" aktivieren, um 32-Bit / 64-Bit-Informationen anzuzeigen.

Geben Sie hier die Bildbeschreibung ein


4
Ab Windows 10 scheint dies zu fehlen.
Meirion Hughes

2
@MeirionHughes Nein, Sie müssen diese Spalte speziell zur Ansicht hinzufügen. Klicken Sie mit der rechten Select columns
Maustaste auf

23

in mac

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

in Fenstern

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

3
Das gibt Betriebssystemarchitektur, nicht Knoten
grisevg

3
Ich habe unter Windows 10 64bit mit node.js 6.4.0 32bit getestet und es kehrte zurück ia32, es ist also nicht die Betriebssystemarchitektur
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.Quelle: nodejs.org/api/os.html#os_os_arch
André Werlang

4

Nun, die Art, wie ich vorschlage, ist überhaupt nicht gut. Sie können zu C wechseln: Gehen Sie dann zu Programme und suchen Sie dort den Ordner nodejs. Wenn es gefunden wird, führen Sie eine 64-Bit-Version aus. Überprüfen Sie die Programme (x86). Wenn es dort gefunden wird, wird eine 32-Bit-Version ausgeführt.


1
Der Knoten js wurde möglicherweise irgendwann in der Vergangenheit an einem benutzerdefinierten Speicherort auf dem System installiert. In diesem Fall ist dies überhaupt nicht die Lösung.
Megha Dev

2

Dies löst Ihr Problem wahrscheinlich nicht direkt, da ich nicht weiß, wie Sie unter Windows das gleiche Verhalten fileerzielen können. Wenn Sie jedoch den Befehl auf einem Unix- oder Linux-System verwenden, erfahren Sie, wie die Prozessorarchitektur einer ausführbaren Datei funktioniert:

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

Wenn Sie Cygwin installiert haben, bin ich mir ziemlich sicher, dass es einen fileBefehl enthält, oder Sie könnten online nach ähnlichen Programmen suchen, die unter Windows funktionieren.


Mit dem fileBefehl von GnuWin32 bekomme ich PE32+ executable for MS Windows (console) Mono/.Net assemblyfür 64-Bit-Programme und PE32 executable for MS Windows (console) Intel 80386 32-bitfür 32-Bit-Programme
Daniel Kullmann

1

Starten Sie einfach den Knoteninterpreter, indem Sie ihn ausführen node. Dann process.envgibt es einen JSON mit allen Informationen, die Sie benötigen. Mein Versuch hat einen PROCESSOR_ARCHITECTURE: 'AMD64'Eintrag darin.

Ich finde auch

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


1
AFAIK dies sagt Ihnen nur, was Ihr Prozessor kann; Wenn der Wert AMD64 ist, können weiterhin 32-Bit-Programme ausgeführt werden.
Daniel Kullmann

0

Geben Sie den Knoten REPL mit dem Befehl 'node' ein.

Die Eingabeaufforderung ändert sich zu>

Verwenden Sie dann die folgenden Informationen, um die gewünschten Informationen zu erhalten.

  1. require ('process'). arch ==> Dies gibt die Version der Knotenarchitektur an.
  2. require ('process'). platform ==> Dies gibt die Architektur der Kompilierungsplattform an
  3. require ('process'). release und require ('process'). release.libUrl ==> gibt auch Auskunft über die Version und Architektur
  4. require ('process'). config.variables.host_arch ==> Dies gibt auch die Version der Knotenarchitektur an.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.