Windows、macOS、Linux にまたがる Java でコンピュータの一意の識別子を決定することには課題が伴います。これを実現するためのいくつかの方法を以下に示します。
ネットワーク インターフェイスの MAC アドレスを取得するのが一般的な方法です。ただし、複数のアダプターを備えたシステムでは、正しい MAC アドレスを選択することが困難になる場合があります。さらに、ラップトップを別のネットワーク アダプタ (例: Wi-Fi からイーサネット) に接続すると、以前に保存された MAC アドレスが無効になる可能性があります。
このアプローチこれには、WMI を使用してシステムのシリアル番号を照会することが含まれます。 WMI と対話するには、com4j ライブラリを使用する必要があります。例:
<code class="java">ISWbemLocator wbemLocator = ClassFactory.createSWbemLocator(); ISWbemServices wbemServices = wbemLocator.connectServer(...); ISWbemObjectSet result = wbemServices.execQuery("Select * from Win32_SystemEnclosure"); for(Com4jObject obj : result) { ISWbemObject wo = obj.queryInterface(ISWbemObject.class); System.out.println(wo.getObjectText_(0)); }</code>
Linux および Mac OS の場合、lshw、system-profiler SPHardwareDataType、または ip リンクなどのシステム コマンドを実行して取得できます。
結論として、Java での一意のコンピュータ ID の取得には、プラットフォームが異なると課題があります。選択する方法は、オペレーティング システムの特定の要件と制限によって異なります。提供されたコード スニペットと提案は、さらに詳しく調べるための出発点として役立ちます。
以上がJava で一意のコンピュータ識別子を取得する方法: クロスプラットフォーム ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。