使用java获取系统信息(嵌入页面)

时间:2010-03-02 13:25:21

标签: java

有什么方法可以获得系统信息,比如处理器/ ram等(最好是跨平台,在浏览器中)?

我希望在网站上实现这一点,所以我需要在flash或java applet中使用它。

4 个答案:

答案 0 :(得分:3)

试试这个applet程序。

import com.sun.servicetag.SystemEnvironment;
import java.lang.management.ManagementFactory;
public class Config extends java.applet.Applet{
   public void paint(java.awt.Graphics g){
        g.drawString("Hi.. This is Venkatesh..",50,10);
        SystemEnvironment se = SystemEnvironment.getSystemEnvironment();
        g.drawString("CpuManufacturer:"+se.getCpuManufacturer(),50,40);
        g.drawString("HostID:"+se.getHostId(),50,60);
        g.drawString("Host Name:"+se.getHostname(),50,80);
        g.drawString("OS Architecture:"+se.getOsArchitecture(),50,100);
        g.drawString("OS Name:"+se.getOsName(),50,120);
        g.drawString("OS Verstion:"+se.getOsVersion(),50,140);
        g.drawString("Serial no:"+se.getSerialNumber(),50,160);
        g.drawString("System model:"+se.getSystemModel(),50,180);
        g.drawString("System Manufacturer:"+se.getSystemManufacturer(),50,200);
        com.sun.management.OperatingSystemMXBean mxbean = (com.sun.management.OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
        g.drawString("Available Processors:"+mxbean.getAvailableProcessors(),50,220);
 g.drawString("TotalRAM:"+mxbean.getTotalSwapSpaceSize()/(1024*1024*1024)+""+"GB",50,240);
  g.drawString("RAM SIZE :" + (mxbean.getTotalPhysicalMemorySize()/(1024*1024*1024))+ " GB ",50,260);
    }
}


<Applet Code="HelloWorld.class" width="150" height="150">
</Applet>

答案 1 :(得分:2)

您可以使用SIGAR。 http://support.hyperic.com/display/SIGAR/Home

请注意,它是根据GPL许可的。除非您将其用于内部应用程序或开源应用程序,否则它可能不适合您。

答案 2 :(得分:1)

有关RAM信息,请查看this thread - &gt;所以请使用java.lang.managament包或查看thisthat answer

要获取其他一些RAM信息,请执行以下操作:

Runtime.getRuntime().availableProcessors()
Runtime.getRuntime().maxMemory();

或者获取有关操作系统等的信息,请尝试:

System.getProperties().list(System.out);

SIGAR似乎是此任务的唯一开箱即用的库。

答案 3 :(得分:1)

“您好,

Java我认为这是两者中更具限制性的选择,就你可以从客户端提取的内容而言。

Flash会通过Capabilities类给你一些信息,它的安全性比Java稍微宽松一些,所以我认为这是你最好的选择。

package {
    import flash.display.Sprite;
    import flash.system.Capabilities;

    public class CapabilitiesExample extends Sprite {
        public function CapabilitiesExample() {
            showCapabilities();
        }

        private function showCapabilities():void {
            trace("avHardwareDisable: " + Capabilities.avHardwareDisable);
            trace("hasAccessibility: " + Capabilities.hasAccessibility);
            trace("hasAudio: " + Capabilities.hasAudio);
            trace("hasAudioEncoder: " + Capabilities.hasAudioEncoder);
            trace("hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo);
            trace("hasMP3: " + Capabilities.hasMP3);
            trace("hasPrinting: " + Capabilities.hasPrinting);
            trace("hasScreenBroadcast: " + Capabilities.hasScreenBroadcast);
            trace("hasScreenPlayback: " + Capabilities.hasScreenPlayback);
            trace("hasStreamingAudio: " + Capabilities.hasStreamingAudio);
            trace("hasVideoEncoder: " + Capabilities.hasVideoEncoder);
            trace("isDebugger: " + Capabilities.isDebugger);
            trace("language: " + Capabilities.language);
            trace("localFileReadDisable: " + Capabilities.localFileReadDisable);
            trace("manufacturer: " + Capabilities.manufacturer);
            trace("os: " + Capabilities.os);
            trace("pixelAspectRatio: " + Capabilities.pixelAspectRatio);
            trace("playerType: " + Capabilities.playerType);
            trace("screenColor: " + Capabilities.screenColor);
            trace("screenDPI: " + Capabilities.screenDPI);
            trace("screenResolutionX: " + Capabilities.screenResolutionX);
            trace("screenResolutionY: " + Capabilities.screenResolutionY);
            trace("serverString: " + Capabilities.serverString);
            trace("version: " + Capabilities.version);
        }
    }
}

示例来自: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/

为了检测速度,您需要进行基准测试。

提示:通过在javascript,flash或java中监控实例渲染/计算时间,您可以根据实际性能动态改变应用程序的行为,而不是在启动之前运行基准测试应用程序(正如我见过别人那样)。例如:    线程1:监视和更改数据(例如旋转立方体中的旋转度)。    线程2:进行繁重的计算和渲染。

(使用线程在Java中很容易,但是在flash中你需要对你的处理进行分块,并且需要在显示器上检查繁重的代码以确定如何继续)。

提示2:有许多公共基准测试,因此您可以通过运行基准测试并与基准测试结果数据库进行比较来缩小运行的CPU类型。

希望这有帮助!

干杯