OSが64ビットか32ビットかを判断する最良の方法は何ですか?
私はいくつかのOSに直接アクセスし、それにソフトウェアをインストールするとします。しかし、OSが32ビットか64ビットかを判断する方法は
OSは何でもかまいません
私が意味することは-OSが64ビットか32ビットかを判断するための最良かつ一般的な方法は何ですか?つまり、私は一般的に話しているのです。私は誰かのマシンにOSをインストールしていません。OSベースを決定するように指示した場合-64または32?それならあなたはどうしますか?
あなたの知識を共有してくれてありがとう。シュガー。
多くのUnixライクなシステムでは、次のように入力できます。
uname -a
FreeBSDの場合は次のようになります。
FreeBSD whiplash 8.0-STABLE FreeBSD 8.0-STABLE #1:
Tue Mar 9 15:38:19 CET 2010 root@beast:/usr/obj/usr/src/sys/WHIPLASH AMD64
(AMD64は、このカーネルが64ビットであることを意味します)
Linuxの場合:
Linux softy.vm 2.6.18-128.el5 #1 SMP
Wed Jan 21 10:44:23 EST 2009 i686 athlon i386 GNU/Linux
(i386は、このカーネルが32ビットであることを意味します)
MacOSXの場合:
Darwin iMac.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009;
root:xnu 1456.1.25~1/RELEASE_X86_64 x86_64
(x86_64は、このカーネルが64ビットであることを意味します)
WindowsでCMDスクリプトを使用してアクションを実行する場合は、次のようなバッチファイルを開始できます。
@echo off
if %PROCESSOR_ARCHITECTURE% == x86 (
goto :x86
) else (
goto :x64
)
:x86
start "foo.exe"
goto :eof
:x64
start "bar.exe"
goto :eof
GUIウェイ
X86で始まる場合は32ビット、それ以外の場合は64ビットです。
cmd.exeを使用
入る SET PROCESSOR_ARCHITECTURE
x86は32ビットを意味し、それ以外の場合は64ビットです。
Powershellを使用
入る $env:PROCESSOR_ARCHITECTURE
意味はcmd.exeを使用する場合と同じです
注意してください
64ビットアーキテクチャには2つの異なるタイプがあります。
1つはx64用のAMD64で、もう1つはItanium用のia64です(この値が正確に同じかどうかはわかりませんが、どの値でも機能しませんでした)
Linuxの愚かな方法:
カーネルcat/proc/kallsymsを識別するには、カーネルのシンボルが32ビット幅か64ビット幅かを確認します。次に、カーネルが32ビットまたは64ビットであることがわかります。
ユーザーアプリケーションの場合は、次のコマンドを実行します。$ file/bin/ls lsコマンドが32ビットか64ビットかを確認するには、OSに32ビットと64ビットの両方のアプリケーションが含まれている可能性があるため、これは間違いではありません。
@ paradroid-ブレインストーミングをありがとう^^
これをJava配布するプログラムに使用します。Windowsユーザーがjavacを使用する必要があります。このスクリプトは、アーキテクチャをチェックし、デフォルトのブラウザでJDKの適切なバージョンへのダウンロードを開きます...
@echo off
Title Dragon's JDK Downloader - Runedev Script Compiler
goto menu
:menu
echo.
echo What would you like to do?
echo.
echo 1. Download JDK?
echo 2. Compile Scripts?
echo 3. Quit
echo.
:choice
set /P C=1,2,3?
if "%C%"=="3" goto quit
if "%C%"=="2" goto compile
if "%C%"=="1" goto download
goto choice
:download
if %PROCESSOR_ARCHITECTURE% == x86 (
goto :x86
) else (
goto :x64
)
:x86
START http://cds.Sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-windows-i586.exe?BundledLineItemUUID=q9.J_hCupJ8AAAEsXThZDfyg&OrderID=zHCJ_hCujC0AAAEsUjhZDfyg&ProductID=_omJ_hCwMp4AAAEsQIMcKluK&FileName=/jdk-6u23-windows-i586.exe
goto :eof
:x64
START http://cds.Sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u23-windows-x64.exe?BundledLineItemUUID=CMyJ_hCu.vEAAAEsWu9ZDfyf&OrderID=RZ.J_hCuAVkAAAEsUO9ZDfyf&ProductID=ZUuJ_hCwEmwAAAEsOoMcKluK&FileName=/jdk-6u23-windows-x64.exe
goto :eof
:compile
SET cc=javac
SET cflags=
SET scripts=Scripts
SET scriptspre=%scripts%\Precompiled
SET jarpathfile=Settings\path.txt
IF NOT EXIST "%jarpathfile%" (
ECHO Path file does not exist. Please run Runedev and try again.
GOTO menu
)
FOR /F "delims=" %%G IN (%jarpathfile%) DO SET jarpath=%%G
CALL FindJDK.bat
IF NOT EXIST %scripts%\*.Java (
ECHO No .Java script source files found.
GOTO menu
)
ECHO Compiling scripts
ECHO. > "%scripts%\.class"
DEL /F /Q "%scripts%\*.class" > NUL
"%cc%" %cflags% -cp "%jarpath%" %scripts%\*.Java
:end
PAUSE
EXIT
:quit
exit
:end