从 Java Applet 获取 Windows Service Pack 版本?
我正在写一个Java Applet。 当在Windows 上运行时,我需要能够获取客户端操作系统版本,例如Windows XP SP3 或Windows 2000 SP4。
我目前可以使用以下内容:
String os_name = System.getProperty( "os.name" );
String os_version = System.getProperty( "os.version" );
System.out.println( "Running on " + os_name + "(" + os_version + ")" );
它将输出类似“在 Windows 2000 (5.0) 上运行”的内容,这很棒,但我也需要能够获取服务包版本。
有人知道如何从 Java 小程序中获取 Windows 计算机的底层服务包版本吗? (无需抛出 AccessControlException,或者理想情况下无需对小程序进行自签名)。
提前谢谢了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
简而言之,您无法在不引发 AccessControlException 的情况下获取
sun.os.patch.level
属性的值。小程序有安全限制。
您唯一能做的就是阅读已签名的小程序和小程序的策略文件
Put simply you can't get the value of the
sun.os.patch.level
property without throwing an AccessControlException.Applets have security restrictions imposed on.
The only thing you can do is to read on signed applets and policy files for applets
要获取操作系统版本(主要、次要、构建、服务包),您可以使用 JNA 此处的文档 以及任意数量的 Windows 库(version.dll、kernel32.dll、user32.dll 等)。 我的项目基于 Daniel Doubrovkine 的项目操作系统和硬件信息。 他的项目还将查询我不需要的硬件。 好处是它还允许您读取/写入注册表。
To get the OS version (major, minor, build, service pack) you can use JNA Documentation Here and any number of the windows libraries (version.dll, kernel32.dll, user32.dll, etc). I based my project on Daniel Doubrovkine's project Operating System and Hardware Information. His project will also query the hardware, which I didn't need. The nice thing is it will also allow you to read/write to the registry.
我认为你可以使用“sun.os.patch.level”属性来获取它:
i think you can get it using the 'sun.os.patch.level' property:
您可以对您的java小程序进行自签名:(
窃取自:http://www.captain.at/编程/java/)
所以,只要你不介意这个小对话框......
You can self-sign your java applet:
(stolen from: http://www.captain.at/programming/java/)
So, as long as you don't mind about this little dialog box...