私は別の質問に触発されました: Java システム プロパティを使用するためのベスト プラクティス
現在、Java システム プロパティと可能な値の完全なリストを探しています。私はそれらの使用を簡素化するために単純なクラスに取り組んでいます (興味がある場合は、ソースと背景情報 (私のブログ)を入手してください)。このクラスでは、次のことを提供しようとしています。
- Java システム プロパティへのシンプルで一貫したアクセス (文字列定数なし)
- 利用可能なプロパティとその可能な値の完全なドキュメント - IDE 内 (つまり、オートコンプリート、インライン Javadoc)
- 戻り値および/または命名の矛盾を修正
- java.io.tmpdir が存在することを確認してください - 実際、それが私がこれをすべて行っている主な理由です:)
完全なドキュメントと利用可能なプロパティの完全なリスト (利用可能性が JVM に大きく依存するものであっても) を入手するには、 source をダウンロードして実行し、結果を投稿してください。それに応じてクラスを更新し、指定された場所で利用できるようにします。うまくいけば、それがあなたの何人かのライブを楽にするでしょう:)
編集:
System.getProperties()で説明されている標準プロパティや、システムで利用可能なすべてのプロパティを探しているわけではありません。システム プロパティの包括的なリストを作成しようとしています。ベンダー、jvm、またはバージョンに関連するものであっても、存在することが保証されておらず、ドキュメントがまばらまたは見つけにくいものです。のようなプロパティ
- 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
(これは本当の質問ではなく、クラウドソーシングの問題であることはわかっています。誰も気にしないことを願っています)
報奨金:
この質問には正解がないため、報奨金は新しいシステム プロパティを最も多く発見した人に授与されます。ヒントとして、非標準の JVM (J2ME、Android、GCJ、OpenJDK、Apache Harmony など) と JVM 上の共通言語 (Groovy、Scala、JRuby など) をテストすると、特に成果が得られるはずです。
現在のリーダー:
- rsp 19 発見された特性
- ボリス14の発見された特性
- Joa Ebert 8 発見されたプロパティ
- Suraj Chandran 1 件の物件を発見
ところで、最終結果を Maven アーティファクトとしてリリースし、十分な情報が得られ次第、中央リポジトリにアップロードする予定です。
更新: 公開リポジトリ、ついに
SystemProperty.javaは、 molindo-utils プロジェクトの一部として、GitHub で利用できるようになりました。molindo-utils は現在、Sonatypeの OSS リポジトリから 1.0-SNAPSHOTとして入手できます。リリースの準備が整うとすぐに、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>