我受到另一个问题的启发:Best Practice for Using Java System Properties
我'm currently looking for a complete list of Java system properties and possible values. I'正在研究一个简单的类来简化它们的使用(如果你有兴趣,get the source和background info (my blog)) . 通过这个课程,我尝试提供以下内容:
-
对Java系统属性的简单且一致的访问(无String常量)
-
可用属性及其可能值的完整文档 - 在我的IDE中(即自动完成,内联Javadoc)
-
修复返回值和/或命名的不一致性
-
确保java.io.tmpdir存在 - 实际上这是我做这一切的主要原因:)
要获得完整的文档和可用属性的完整列表(即使是可用性严重依赖JVM的那些),我希望您download the source,运行它并发布您的结果 . 我会相应更新课程,并在指定地点保持可用状态 . 希望它能缓解你们中的一些人的生活:)
编辑:
我不是在寻找System.getProperties()描述的标准属性或我系统上可用的所有属性 . 我确保存在并且其文档稀疏或难以找到 . 属性如
-
sun.desktop(仅限Linux,例如"gnome"),
-
awt.toolkit(仅限Mac,例如apple.awt.CToolkit)
-
sun.cpu.endian(仅限Sun JVM)
-
......
我希望让其他人运行我的代码并发布他们的结果,以便以易于使用的Java枚举的形式编译一个全面的列表(包含属性及其可能值的大量文档),例如:
String file = SystemProperty.JAVA_IO_TMPDIR + "file.txt";
代替
String tmp = System.getProperty("java.io.tmpdir");
if (!tmp.endsWith(File.separator)
tmp += File.separator;
new File(tmp).mkdirs(); // make sure tmp exists
String file = tmp + "file.txt";
所以请运行该代码并发布您的发现 . 这是一个简单的脚本,可以帮助您入门:
#!/bin/bash
# download and run
# you should really look at the code first, as you can't be sure
# that I'm a trustworthy guy ;)
wget -N http://techblog.molindo.at/files/SystemProperty.java
javac SystemProperty.java
java SystemProperty
(我知道这不是一个真正的问题,而是人群采购的东西 . 我希望没有人介意)
Bounty:
由于这个问题没有正确的答案,奖金将颁发给发现大多数新系统属性的人 . 作为提示:在JVM(Groovy,Scala,JRuby,...)之上测试非标准JVM(J2ME,Android,GCJ,OpenJDK,Apache Harmony,...)和常用语言应该特别容易 .
现任领导人:
-
rsp 19发现了属性
-
Boris 14发现了属性
-
Joa Ebert 8发现了属性
-
Suraj Chandran 1发现了 property
顺便说一句,我打算将最终结果作为Maven工件发布,并在我有足够的输入后立即将其上传到中央存储库 .
UPDATE: Public Repository, finally
SystemProperty.java现在可以在GitHub上获得,作为molindo-utils project的一部分 . molindo-utils目前可用作1.0-SNAPSHOT through Sonatype's OSS repository . 一旦它准备好发布,它也将同步到Maven中心 .
<repositories>
<repository>
<id>oss.sonatype.org</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases><enabled>false</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>at.molindo</groupId>
<artifactId>molindo-utils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
9 回答
OS AIX 5.3,Java版本:
SystemProperty输出:
从System.getProperties的javadoc,只保证这些:
这是来自64位Linux(Fedora 11),Sun Java的输出:
而且,为了好玩,使用gcj java运行时来自同一系统的输出:
Windows工作站:
CentOS工作站:
好主意,这是我的输出
Mac OS X v10.6.2(雪豹)
JRockit的
java版"1.6.0_05"
Java(TM)SE运行时环境(版本1.6.0_05-b13)
BEA JRockit(R)(构建R27.6.0-50_o-100423-1.6.0_05-20080626-2105-windows-ia32,编译模式)
Apache Harmony
Apache Harmony启动程序:(c)版权所有1991,2009 Apache Software Foundation或其许可方(如适用) .
java版"1.5.0"
Apache Harmony(1.5.0)
DRLVM(11.2.0)
pre-alpha:不完整或兼容
svn = r885602,(2009年12月1日),Windows / ia32 / msvc 1500,发布版本
http://harmony.apache.org
列出你所有的:
你今天错过了一个非常重要的属性:“sun.awt.exception.handler”它有助于捕获evt-thread上的异常 .