Java Usage TrackerはJava Runtime Environments (JRE)のシステムでの使用状況をトラッキングします。Java Usage Trackerの出力は、カンマで区切られたプレーン・テキストのレコードで、JREバージョン、実行中のアプリケーションおよびその他の詳細が含まれます。このレコードは、ファイルに追加されるか、User Datagram Protocol (UDP)パケットで、ネットワーク経由で送信されます。
Java Usage Trackerのシステム要件
Java Usage Trackerは、Oracle Java SEサブスクリプションおよびその他のレガシー製品(Oracle Java SE Advanced、Oracle Java SE Suiteなど)の一部として使用できます。
Java Usage Trackerは、JDKのすべての現行バージョンでサポートされています。
ノート:
JDK 7、JDK 6u25以降、JDK 5u38以降およびJDK 1.4.2_35以降には、Java Usage Trackerが含まれていました。これらのバージョンのJDKはサポートされなくなりました。Java Usage Trackerの出力
次は、Java Usage Trackerからの出力の例で、Javaアプリケーションの呼出し1件のレコードです。わかりやすくするために改行を追加しましたが、各レコードは次のように1つのテキスト行として表示されます。
"javaws application",
"Mon Sep 26 13:10:14 EDT 2022",
"MY-COMPUTER/192.0.2.0",
"https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TreeDemoProject/:
sourceURL=https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TreeDemoProject/TreeDemo.jnlp
app_model=<Base64 encoded data>",
"C:\Java\jre1.8.0_351",
"1.8.0_351",
"25.351-b10",
"Oracle Corporation",
"Oracle Corporation",
"Windows 10",
"amd64",
"10.0",
"-Xbootclasspath/a:C:\Java\jre1.8.0_351\lib\deploy.jar;C:\Java\jre1.8.0_351\lib\javaws.jar;
C:\Java\jre1.8.0_351\lib\plugin.jar -Xverify:remote -Djava.security.manager
-Djava.security.policy=file:C:\Java\jre1.8.0_351\lib\security\javaws.policy
-DtrustProxy=true -Djnlpx.home=C:\Java\jre1.8.0_351\bin
-Djnlpx.origFilenameArg=TreeDemo.jnlp -Djnlpx.remove=false -Djnlpx.splashport=60867
-Djnlpx.jvm=C:\Java\jre1.8.0_351\bin\javaw.exe ",
"C:\Java\jre1.8.0_351\lib\deploy.jar",
"user.home=C:\Users\MYUSER my.custom.property=null "
次の表では、このカンマで区切られた行の各々の値について説明します。
例 | 説明 |
---|---|
|
起動のタイプ。次のいずれかの値です。
アプリケーションによるアプリの実行またはブロックを許可するデプロイメント・ルール・セット(DRS)がある場合は、起動の種類を示す値の後に、次のいずれかの値を指定します。
DRSの実行ルールまたはブロック・ルールがない場合は、起動の種類を示す値の後に、次のいずれかの値を指定します。
|
|
日付と時刻 |
|
|
|
Javaコマンド(mainクラスまたはjarファイルの名前)と、存在する場合は引数のリスト(スペース区切りのリスト) Java Web Startアプリケーションは、次の形式を持ちます。
アプレット呼出しは、次の形式を持ちます。
パラメータ |
|
JREを含んでいるディレクトリ( |
|
Javaバージョン( |
|
JVMバージョン( |
|
Javaベンダー( |
|
JVMベンダー( |
|
オペレーティング・システム名( |
|
オペレーティング・システム・アーキテクチャ( |
|
オペレーティング・システム・バージョン( |
|
JVM引数(スペース区切りリスト)。JVM引数がない場合は空になります。この情報が利用できない場合は |
|
クラス・パス( |
|
Java Usage Trackerプロパティ・ファイルで指定されているすべての追加システム・プロパティの |
Java Usage Tracker出力内のスペースを含む項目
スペース区切りリストのフィールドでは、スペースを含む項目を引用する場合に異なる引用符が使用されます(デフォルトでは一重引用符「'
」)。既存の引用符は二回出力されます。
たとえば、次のコマンドを考えます:
/jdk1.8.0_20/bin/java
-Dfoo1="a b"
-Dfoo=\"
-jar c:\\Program\ Files\\Java/jdk1.6.0_25/demo/jfc/Java2D/Java2Demo.jar
Java Usage Trackerは、これらのシステム・プロパティを次のように出力します(わかりやすくするために改行を追加しました)。
"'-Dfoo1=a b' -Dfoo="" ",
"-jar c:\Program Files\Java/jdk1.6.0_25/demo/jfc/Java2D/Java2Demo.jar",
""
8u20より前のバージョンのJREでは、Java Usage Trackerは、フィールドを引用符で囲みません。
Java Usage Trackerの有効化と構成
Java Usage Trackerは、デフォルトで無効です。有効化して構成するには、usagetracker.properties
という名前のプロパティ・ファイルを作成します。「サンプルのJava Usage Trackerプロパティ・ファイル」を参照してください。
JRE 8u152以降の場合、Java Usage Trackerを使用してシステム上のすべてのJREを追跡するには、usagetracker.properties
ファイルをファイル・システム内の中央の場所に配置します。次に示すように場所はオペレーティング・システムによって異なります。
-
Windows:
%ProgramFiles%\Java\conf\
(Windows x64)または%ProgramFiles(x86)%\java\conf\
(Windows x86) -
LinuxおよびSolaris:
/etc/oracle/java/
-
macOS:
/Library/Application Support/Oracle/Java/
Java Usage Trackerを使用して特定のJREを追跡する場合は、usagetracker.properties
ファイルをファイル・システム内の中央の場所に置かないでください。usagetracker.properties
ファイルはディレクトリ<JRE directory>/conf/management/
(9よりも前のJREリリースでは<JRE directory>/lib/management/
)に配置します。Java Usage TrackerをJDK用とJRE用のどちらで構成するかにより、パス名が異なる点に注意してください。
異なるプロパティ・ファイルを使用する場合、コマンド行でそれをシステム・プロパティ-Dcom.oracle.usagetracker.config.file
に指定して、柔軟性をさらに高めることができます。次の例では、Java Usage Trackerはプロパティ・ファイル/path/usagetracker.properties
を使用します。
java -Dcom.oracle.usagetracker.config.file=/path/usagetracker.properties MyApplication
JVMは、次の場所で順番にusagetracker.properties
ファイルを検索します。見つかった最初のファイルを使用し、Java Usage Trackerを有効化して構成します。
-
システム・プロパティ
によって指定されたパス-Dcom.oracle.usagetracker.config.file
-
ファイル・システム内の中央の場所(JRE 8u152以降)
-
<JRE directory>/conf/management/
(9よりも前のJREリリースでは<JRE directory>/lib/management/
)
ノート:
Java Usage Trackerを有効化するには、作成するusagetracker.properties
ファイルが、少なくとも次のいずれかのプロパティの有効な値を含む必要があります。
-
com.oracle.usagetracker.logToFile
-
com.oracle.usagetracker.logToUDP
Java Usage Trackerのプロパティ
この項では、Java Usage Trackerプロパティ・ファイルで指定できるプロパティを説明します。
これらのプロパティは、Java Usage Trackerプロパティ・ファイルでのみ設定されます。コマンド行で設定されません。これは、Java Usage TrackerがJREユーザーまたは既存のアプリケーションに影響を与えたり相互作用したりしないためです。
ノート:
バックスラッシュ(\
)が、プロパティ・ファイルのエスケープ文字です。従って、ディレクトリまたはドライブ文字を含むファイル・パスを指定する場合、ディレクトリの区切り記号として、スラッシュ(/
)またはエスケープしたバックスラッシュ(\\
)を使用します。
プロパティ | 説明 |
---|---|
|
このプロパティは、追加のJavaプロパティと、その値を記録するために使用します。 このプロパティの値は、プロパティのカンマ区切りリストです。たとえば (改行は無視してください):
|
|
JVM引数フィールドと追加のプロパティ・フィールドにスペースが含まれる項目を引用するために使用される文字または文字列。デフォルト値は、一重引用符( このプロパティは、JRE 8u20以降で使用できます。 |
|
ログ・ファイル・サイズの上限(単位はバイト)。ロギング試行時にファイル・サイズが所定の値以上の場合、その試行はキャンセルされます。 このプロパティが設定されない場合、ログ・ファイルに上限はありません。 |
|
このプロパティが指定された場合、Usage Trackerがレコードを書き込むファイルの完全修飾パス名。 パス名では、
|
|
このプロパティが指定された場合、Java Usage TrackerはUDPパケットで指定されたリモート・ホストにログインします。たとえば (改行は無視してください):
IPアドレスを指定すると高速になることがあります。ただし、この解決方法によりJVMまたはアプリケーションの起動が遅延することはありません。 UDPパケットを受信できるサンプル・アプリケーションの詳細は、「Java Usage Trackerのサンプル: UDPパケットの受信側」を参照してください。 |
com.oracle.usagetracker.maxFieldSize |
すべての単一フィールドの制限(バイト単位)。デフォルトは制限なしです。 このプロパティは、JRE 8u152以降で使用できます。 |
com.oracle.usagetracker.maxSize |
レコード全体の制限(バイト単位)。デフォルトは制限なしです。 このプロパティは、JRE 8u152以降で使用できます。 |
|
フィールドを引用するために使用される文字または文字列。デフォルト値は、二重引用符( このプロパティは、JRE 8u20以降で使用できます。 |
com.oracle.usagetracker.sendTruncatedRecords |
このプロパティは、JRE 8u152以降で使用できます。 |
|
ログ・ファイルのエントリを区切る文字または文字列。デフォルトはカンマ( |
|
このプロパティをtrueに設定すると、エラー情報を標準エラー・ストリームに報告することができます。これは診断の目的でのみ推奨されます。 |
サンプルのJava Usage Trackerプロパティ・ファイル
Java Usage Trackerプロパティ・ファイルを作成するには、次の例をテンプレートに使用できます。シャープ記号(#)から始まる行はコメントです。
# UsageTracker template properties file.
# Copy to <JRE directory>/conf/management/usagetracker.properties
# (or <JRE directory>/lib/management/usagetracker.properties for
# JRE releases prior to 9) and edit, uncommenting required settings, to enable.
# Settings for logging to a file:
# Use forward slashes (/) because backslash is an escape character in a
# properties file.
# com.oracle.usagetracker.logToFile = ${user.home}/.java_usagetracker
# Settings for logging to a UDP socket:
# com.oracle.usagetracker.logToUDP = hostname.domain:32139
# (Optional) Specify a file size limit in bytes:
# com.oracle.usagetracker.logFileMaxSize = 10000000
# If the record should include additional Java properties,
# this can be a comma-separated list:
# com.oracle.usagetracker.additionalProperties =
# Additional options:
# com.oracle.usagetracker.verbose = true
com.oracle.usagetracker.separator = ,
com.oracle.usagetracker.quote = "
com.oracle.usagetracker.innerquote = '
Java Usage Trackerのサンプル: UDPパケットの受信側
次のサンプルUsageServerTracker.java
は、Java Usage Trackerデータをリスニングする単純なアプリケーションです。
/*
* Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* -Redistribution of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* -Redistribution in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of Oracle or the names of contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any kind. ALL
* EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
* OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN")
* AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE
* AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
* INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY
* OF LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed, licensed or intended
* for use in the design, construction, operation or maintenance of any
* nuclear facility.
*/
import java.net.InetAddress;
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.io.IOException;
import java.net.SocketException;
import java.io.File;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
/**
* A daemon that listens for and logs UsageTracker information.
*/
public class UsageTrackerServer {
static boolean verbose = false;
boolean initialized = false;
String logFileName = null;
File logFile;
OutputStreamWriter writer;
int port = 32139;
InetAddress address = null;
DatagramSocket socket;
private static final int BUFFERSIZE = 65536;
long received = 0;
boolean running = true;
/**
* Main entry point for starting this daemon.
*/
public static void main(String [] args) {
try {
UsageTrackerServer uts = new UsageTrackerServer(args);
uts.run();
} catch (Exception e) {
System.out.println("UsageTrackerServer: " + e.getMessage());
if (verbose) {
e.printStackTrace();
}
System.exit(1);
}
}
public static void usage() {
System.out.println("UsageTrackerServer [-v] [-o filename] [host]:port\n" +
"e.g. UsageTrackerServer -o usagetracker.out :32139\n");
}
/**
* Initialize a UsageTrackerServer given some arguments.
*/
UsageTrackerServer(String [] args) throws Exception {
boolean usage = false;
for (int i=0; i<args.length; i++) {
if (args[i].equals("-?") || args[i].equals("--h")) {
usage = true;
break;
} else if (args[i].equals("-v")) {
verbose = true;
} else if (args[i].equals("-o")) {
logFileName = args[i+1];
i++;
} else if (args[i].contains(":")) {
// parse [address]:port
int colon = args[i].indexOf(':');
if (colon > 0) {
try {
address = InetAddress.getByName(
args[i].substring(0, colon));
} catch (Exception ae) {
System.out.println("UsageTrackerServer: " +
"problem setting listen address: " + ae);
usage = true;
}
}
try {
port = Integer.parseInt(args[i].substring(colon+1));
} catch (NumberFormatException nfe) {
System.out.println("UsageTrackerServer: cannot set port: " +
args[i].substring(colon+1));
usage = true;
}
} else {
usage = true;
}
}
// Argument failure or request for usage gets the usage message only:
if (usage) {
usage();
return;
}
// Otherwise, continue to proper initialization:
socket = null;
try {
if (address != null) {
socket = new DatagramSocket(port, address);
} else {
socket = new DatagramSocket(port);
}
} catch (SocketException se) {
throw new Exception("problem creating socket: " + se);
}
if (logFileName != null) {
try {
File logFile = new File(logFileName);
if (verbose) {
System.out.println("Using logfile: " + logFileName);
if (logFile.exists()) {
System.out.println("File exists, will append.");
}
}
FileOutputStream fos = new FileOutputStream(logFile, true);
writer = new OutputStreamWriter(fos, "UTF-8");
} catch (IOException ioe) {
throw new Exception("problem using file " + logFileName + ": " +
ioe);
}
}
initialized = true;
}
public void run() throws Exception {
if (!initialized) {
return;
}
Runnable r = null;
if (writer == null) {
r = new UsageTrackerServerRunnable(socket);
} else {
r = new UsageTrackerServerRunnable(socket, writer);
}
Thread t = new Thread(r, "UsageTrackerServerRunnable");
t.start();
t.join();
}
/**
* Runnable that listens and logs.
*/
private class UsageTrackerServerRunnable implements Runnable {
DatagramSocket listenSocket;
OutputStreamWriter writer = null;
UsageTrackerServerRunnable(DatagramSocket socket) {
listenSocket = socket;
}
UsageTrackerServerRunnable(DatagramSocket socket,
OutputStreamWriter writer) {
this(socket);
this.writer = writer;
}
public void run() {
byte [] buf = new byte[BUFFERSIZE];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
// Ready to receive data
if (verbose) {
String addr = listenSocket.getLocalAddress().getHostAddress();
if (addr.equals("0.0.0.0")) {
addr = "localhost";
}
System.out.println("UsageTrackerServer: ready to receive on " +
addr + ":" + listenSocket.getLocalPort());
}
while (running) {
try {
listenSocket.receive(packet);
String dataReceived = new String(packet.getData(), 0,
packet.getLength());
// The format of a UsageTracker record contains a newline at
// the end; if that is missing, we have a truncated/corrupt
// packet.
if (!dataReceived.endsWith("\n")) {
System.out.println("Incomplete message received: " +
"size = " + packet.getLength() + ", data = " +
dataReceived);
dataReceived = dataReceived + "\n";
}
received++;
if (verbose) {
System.out.println("Received message size: " +
dataReceived.length());
}
if (writer != null) {
writer.write(dataReceived, 0, dataReceived.length());
writer.flush();
} else {
System.out.print(dataReceived);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
}
}
次に示すのはこのサンプルの実行例です。
java UsageTrackerServer -v -o usagetracker.out :32139
-
-v
オプションはverboseです。このオプションを指定すると、サンプルは追加情報を表示します。 -
-o
オプションは、ログ・ファイルの名前を指定できるようにします;このオプションを指定しない場合、サンプルは標準出力にメッセージを出力します。 -
この例では、UDP受信者は、ポート32139上のローカルホスト・アドレスでリスニングします。JRE (Java Usage Trackerが有効化され構成されている)がデータを送信すると、受信側はデータをファイル
usagetracker.out
に送信します。ポート番号は任意ですが、使用することができ、JREで構成されているポートと一致する必要があります。複数のインタフェースが存在する場合、形式hostname:portまたはipaddress:portを使用してポートを指定する必要がある場合があります。
Java Usage Trackerのエラーと例外
レコードのロギング時にJava Usage Trackerがエラーまたは例外に遭遇しても、現在動作しているアプリケーションを中断しません。
プロパティ・ファイルでプロパティoracle.usagetracker.verbose
が指定されていないかぎり、Java Usage Trackerはエラーを報告しません。
Java Usage Trackerログ・ファイルで使用されるディスク領域の管理
Java Usage Trackerログ・ファイルのサイズは小さいものですが、ログ・ファイルを定期的に切捨て、圧縮、アーカイブ、または削除することをお薦めします。Java Usage Trackerがログ・ファイルにレコードを逐次追加する場合、利用可能なディスク・スペース領域について確認したり、ログ・ファイルの切捨て、削除、圧縮などの管理タスクを実行して影響を最小限にしようとしたりすることはありません。
さらに、プロパティ・ファイルのoracle.usagetracker.logFileMaxSize
プロパティで、ログ・ファイルの最大サイズをバイト単位で指定できます。
Java Usage Trackerの制限事項
Java Usage Trackerは、JVMが起動する前にJavaランチャによって処理されるJavaコマンド行オプションを記録できません。たとえば、Java Usage Trackerは、Java HotSpotクライアントとサーバーVMをそれぞれ選択するコマンド行オプション
と-client
を記録しません。また、アプリケーションが即座に終了する場合、プロセスが終了するのを停止しないため、Java Usage Trackerが記録しない場合があります。
-server
Java Usage Trackerのよくある質問
いくいつかのよくある質問に対する回答は、次の場所にあります。
Java Usage TrackerはJDKの範囲内で非公開のJREに影響を及ぼしますか。それとも影響を及ぼすのはスタンドアロンのJREだけですか。
コンピュータにJDKがインストールされている場合、1つのJREがjreサブディレクトリにあります。これが質問で指している非公開のJREです。Java Usage Trackerは、非公開のJREとスタンドアロンのJREの両方の使用状況を記録しますが、それぞれ独自のconf/management/usagetracker.properties
ファイルを介して別々に構成されることに注意してください。
Java Usage Trackerは、JDKツールの使用状況を記録できますか。
Java Usage Trackerが有効の場合、jmapやjstackなど、JDKに付属するツールの使用状況が記録されます。
Java Usage Trackerは、ネイティブのJavaアプリケーションによって作成されたJVMの使用状況を記録しますか。
はい。ネイティブのアプリケーションがJava Native Interface (JNI)を使用してJVMを作成する場合、Java Usage Trackerはこの呼出しを空白のJavaコマンドとともに記録します。
java -jar file.jarに類似した呼出しは、Java Usage Trackerによって追跡されますか。
はい。
Oracleは、Java Usage Trackerによって記録されるデータを少しでも捕捉しますか。
いいえ。JREインストールの管理者として、Java Usage Trackerから取得された使用状況データは、選択したファイルに格納されるか、指定したUDPホストおよびポートに送信されます。このデータを独自ネットワークから離れさせるファシリティはありません。(理論的には、ファイアウォールで可能な場合、UDPホストがリスニングするポートはリモートとして構成できますが、それは期待または推奨される使用法ではありません。)
ネイティブ・アプリケーション、アプレット、および拒否されたアプリケーションに関して、ログ・レコードはどのように表示されますか。
次に示すのは、ネイティブ・アプリケーションのログ・レコードの例です(わかりやすくするために改行を追加しました)。
"VM start",
"Mon Sep 26 13:08:33 EDT 2022",
"MY-COMPUTER/192.0.2.0",
"Main",
"C:\Java\jre1.8.0_351",
"1.8.0_351",
"25.351-b10",
"Oracle Corporation",
"Oracle Corporation",
"Windows 10",
"amd64",
"10.0",
"-Dmy.custom.property=myvalue ",
".",
"user.home=C:\Users\RGALLARD my.custom.property=myvalue "
次に示すのは、アプレットのログ・レコードの例です。
"plugin2",
"Mon Sep 26 14:00:48 EDT 2022",
"MY-COMPUTER/192.0.2.0",
"https://docs.oracle.com/javase/tutorial/deployment/applet/deployingApplet.html:
jnlp_href=examples/dist/applet_ComponentArch_DynamicTreeDemo/dynamictree_applet.jnlp
launchjnlp= codebase_lookup=false code=appletComponentArch.DynamicTreeApplet.class
codebase=https://docs.oracle.com/javase/tutorial/deployment/applet/ width=375
archive=examples/dist/applet_ComponentArch_DynamicTreeDemo/DynamicTreeDemo.jar height=375
app_model=<Base 64 encoded data>",
"C:\Java\jre1.8.0_341",
"1.8.0_341",
"25.341-b10",
"Oracle Corporation",
"Oracle Corporation",
"Windows 10",
"x86",
"10.0",
"-Xbootclasspath/a:C:\Java\jre1.8.0_341\lib\deploy.jar;C:\Java\jre1.8.0_341\lib\javaws.jar;
C:\Java\jre1.8.0_341\lib\plugin.jar -Djava.security.manager -D__jvm_launched=16873846471
-D__applet_launched=16873824704 ",
"C:\Java\jre1.8.0_341\lib\deploy.jar",
"user.home=C:\Users\CURRENT-USER my.custom.property=null "
次に示すのは、セキュリティ設定によって拒否されたJava Web Startアプリケーションのログ・レコードの例です。
"javaws application denied [by user]",
"Mon Sep 26 13:42:49 EDT 2022",
"MY-COMPUTER/192.0.2.0",
"https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TreeDemoProject/:
sourceURL=https://docs.oracle.com/javase/tutorialJWS/samples/uiswing/TreeDemoProject/TreeDemo.jnlp
app_model=<Base 64 encoded data>",
"C:\Java\jre1.8.0_351","1.8.0_351",
"25.351-b10",
"Oracle Corporation",
"Oracle Corporation",
"Windows 10",
"amd64",
"10.0",
"-Xbootclasspath/a:C:\Java\jre1.8.0_351\lib\deploy.jar;C:\Java\jre1.8.0_351\lib\javaws.jar;
C:\Java\jre1.8.0_351\lib\plugin.jar -Xverify:remote -Djava.security.manager
-Djava.security.policy=file:C:\Java\jre1.8.0_351\lib\security\javaws.policy
-DtrustProxy=true -Djnlpx.home=C:\Java\jre1.8.0_351\bin
-Djnlpx.origFilenameArg=TreeDemo.jnlp -Djnlpx.remove=false -Djnlpx.splashport=61230
-Djnlpx.jvm=C:\Java\jre1.8.0_351\bin\javaw.exe ",
"C:\Java\jre1.8.0_351\lib\deploy.jar",
"user.home=C:\Users\CURRENT-USER my.custom.property=null "
以前の形式のレコードに対する、JRE 8u20以降の引用動作を無効にする方法。
Java Usage Trackerプロパティ・ファイルで、次の2行を使用して空白の引用符を設定します。
com.oracle.usagetracker.quote=
com.oracle.usagetracker.innerQuote=
ドキュメントのアクセシビリティについて
Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。
Oracle Supportへのアクセス
サポートを購入したオラクル社のお客様は、My Oracle Supportを介して電子的なサポートにアクセスできます。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。
Java Platform, Standard Edition Java Usage Trackerガイド, リリース1
E64861-06
2022年10月
Copyright © 2014, 2022, Oracle and/or its affiliates.