--- a/jdk/.hgtags Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/.hgtags Mon Aug 01 10:06:09 2016 -0700
@@ -371,3 +371,4 @@
6fda66a5bdf2da8994032b9da2078a4137f4d954 jdk-9+126
7a97b89ba83077ca62e4aa5a05437adc8f315343 jdk-9+127
9446c534f0222b4eecfd9d9e25ab37c4fd4400a5 jdk-9+128
+47699aa2e69ec2702542dc73eb01de3bfb61aea0 jdk-9+129
--- a/jdk/make/copy/Copy-java.base.gmk Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/make/copy/Copy-java.base.gmk Mon Aug 01 10:06:09 2016 -0700
@@ -166,18 +166,7 @@
POLICY_SRC := $(JDK_TOPDIR)/src/java.base/share/conf/security/java.policy
POLICY_DST := $(CONF_DST_DIR)/security/java.policy
-POLICY_SRC_LIST :=
-
-ifeq ($(OPENJDK_TARGET_OS), windows)
- POLICY_SRC_LIST += $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/conf/security/java.policy
-endif
-
-# Allow imported modules to modify the java.policy
-ifneq ($(IMPORT_MODULES_CONF), )
- POLICY_SRC_LIST += $(wildcard $(IMPORT_MODULES_CONF)/java.base/security/java.policy.extra)
-endif
-
-POLICY_SRC_LIST += $(POLICY_SRC)
+POLICY_SRC_LIST := $(POLICY_SRC)
$(POLICY_DST): $(POLICY_SRC_LIST)
$(MKDIR) -p $(@D)
@@ -189,6 +178,30 @@
################################################################################
+DEF_POLICY_SRC := $(JDK_TOPDIR)/src/java.base/share/lib/security/default.policy
+DEF_POLICY_DST := $(LIB_DST_DIR)/security/default.policy
+
+DEF_POLICY_SRC_LIST := $(DEF_POLICY_SRC)
+
+ifeq ($(OPENJDK_TARGET_OS), windows)
+ DEF_POLICY_SRC_LIST += $(JDK_TOPDIR)/src/java.base/$(OPENJDK_TARGET_OS)/lib/security/default.policy
+endif
+
+# Allow imported modules to modify the java.policy
+ifneq ($(IMPORT_MODULES_CONF), )
+ DEF_POLICY_SRC_LIST += $(wildcard $(IMPORT_MODULES_CONF)/java.base/security/java.policy.extra)
+endif
+
+$(DEF_POLICY_DST): $(DEF_POLICY_SRC_LIST)
+ $(MKDIR) -p $(@D)
+ $(RM) $@ $@.tmp
+ $(foreach f,$(DEF_POLICY_SRC_LIST),$(CAT) $(f) >> $@.tmp;)
+ $(MV) $@.tmp $@
+
+TARGETS += $(DEF_POLICY_DST)
+
+################################################################################
+
ifeq ($(CACERTS_FILE), )
CACERTS_FILE := $(JDK_TOPDIR)/src/java.base/share/conf/security/cacerts
endif
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java Mon Aug 01 10:06:09 2016 -0700
@@ -61,17 +61,25 @@
"\u4F7F\u7528\u65B9\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
"",
"\u5727\u7E2E\u30AA\u30D7\u30B7\u30E7\u30F3",
- " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306A*.pack\u30D5\u30A1\u30A4\u30EB\u3092\u5727\u7E2E\u305B\u305A\u306B\u51FA\u529B\u3057\u307E\u3059",
- " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5727\u7E2E\u51FA\u529B\u3092gzip\u3067\u5F8C\u51E6\u7406\u3057\u307E\u3059",
- " -G\u3001--strip-debug \u5727\u7E2E\u4E2D\u306B\u30C7\u30D0\u30C3\u30B0\u5C5E\u6027\u3092\u524A\u9664\u3057\u307E\u3059",
+ " -r\u3001--repack jar\u3092\u518D\u5727\u7E2E\u307E\u305F\u306F\u6B63\u898F\u5316\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001",
+ " jarsigner\u306B\u3088\u308B\u7F72\u540D\u306B\u9069\u3057\u307E\u3059",
+ " -g\u3001--no-gzip \u30D7\u30EC\u30FC\u30F3\u306A\u5727\u7E2E\u30D5\u30A1\u30A4\u30EB\u3092\u51FA\u529B\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u3001",
+ " \u30D5\u30A1\u30A4\u30EB\u5727\u7E2E\u30E6\u30FC\u30C6\u30A3\u30EA\u30C6\u30A3\u306B\u3088\u308B\u5727\u7E2E\u306B\u9069\u3057\u307E\u3059",
+ " --gzip (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5727\u7E2E\u51FA\u529B\u3092gzip\u3067",
+ " \u5727\u7E2E\u306E\u5F8C\u51E6\u7406\u3092\u884C\u3044\u307E\u3059",
+ " -G\u3001--strip-debug \u5727\u7E2E\u4E2D\u306B\u30C7\u30D0\u30C3\u30B0\u5C5E\u6027(SourceFile\u3001",
+ " LineNumberTable\u3001LocalVariableTable",
+ " \u3001LocalVariableTypeTable)\u3092\u524A\u9664\u3057\u307E\u3059",
" -O\u3001--no-keep-file-order \u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u60C5\u5831\u3092\u8EE2\u9001\u3057\u307E\u305B\u3093",
" --keep-file-order (\u30C7\u30D5\u30A9\u30EB\u30C8)\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306E\u9806\u5E8F\u4ED8\u3051\u3092\u4FDD\u6301\u3057\u307E\u3059",
- " -S{N}\u3001--segment-limit={N} \u30BB\u30B0\u30E1\u30F3\u30C8\u5236\u9650\u3092\u51FA\u529B\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8N=1Mb)",
+ " -S{N}\u3001--segment-limit={N} \u30BB\u30B0\u30E1\u30F3\u30C8\u30FB\u30B5\u30A4\u30BA\u3092\u5236\u9650\u3057\u307E\u3059(\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u7121\u5236\u9650)",
" -E{N}\u3001--effort={N} \u5727\u7E2E\u306E\u8A66\u884C(\u30C7\u30D5\u30A9\u30EB\u30C8N=5)",
- " -H{h}\u3001--deflate-hint={h} \u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u8EE2\u9001\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -H{h}\u3001--deflate-hint={h} \u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u8EE2\u9001\u3057\u307E\u3059: true\u3001false",
+ " \u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
" -m{V}\u3001--modification-time={V} \u5909\u66F4\u6642\u9593\u3092\u8EE2\u9001\u3057\u307E\u3059: latest\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
- " -P{F}\u3001--pass-file={F} \u6307\u5B9A\u3055\u308C\u305F\u5727\u7E2E\u3055\u308C\u3066\u3044\u306A\u3044\u5165\u529B\u8981\u7D20\u3092\u8EE2\u9001\u3057\u307E\u3059",
- " -U{a}\u3001--unknown-attribute={a} \u4E0D\u660E\u306E\u5C5E\u6027\u30A2\u30AF\u30B7\u30E7\u30F3: error\u3001strip\u307E\u305F\u306Fpass(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -P{F}\u3001--pass-file={F} \u6307\u5B9A\u3055\u308C\u305F\u5165\u529B\u8981\u7D20\u3092\u305D\u306E\u307E\u307E\u8EE2\u9001\u3057\u307E\u3059",
+ " -U{a}\u3001--unknown-attribute={a} \u4E0D\u660E\u306E\u5C5E\u6027\u30A2\u30AF\u30B7\u30E7\u30F3: error\u3001strip",
+ " \u307E\u305F\u306Fpass(\u30C7\u30D5\u30A9\u30EB\u30C8)",
" -C{N}={L}\u3001--class-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
" -F{N}={L}\u3001--field-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
" -M{N}={L}\u3001--method-attribute={N}={L} (\u30E6\u30FC\u30B6\u30FC\u5B9A\u7FA9\u5C5E\u6027)",
@@ -79,7 +87,8 @@
" -f{F}\u3001--config-file={F} Pack200.Packer\u30D7\u30ED\u30D1\u30C6\u30A3\u306B\u30D5\u30A1\u30A4\u30EBF\u3092\u8AAD\u307F\u8FBC\u307F\u307E\u3059",
" -v\u3001--verbose \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5197\u9577\u6027\u3092\u9AD8\u3081\u307E\u3059",
" -q\u3001--quiet \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
- " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
+ " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ",
+ " ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
" -?\u3001-h\u3001--help \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
" -V\u3001--version \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
" -J{X} \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059",
@@ -92,18 +101,23 @@
" \u30EC\u30A4\u30A2\u30A6\u30C8\u5B9A\u7FA9(RUH\u306A\u3069)\u306FJSR 200\u306B\u3088\u3063\u3066\u5B9A\u7FA9\u3055\u308C\u307E\u3059\u3002",
"",
"\u518D\u5727\u7E2E\u30E2\u30FC\u30C9\u3067\u306F\u3001JAR\u30D5\u30A1\u30A4\u30EB\u304C\u5727\u7E2E/\u89E3\u51CD\u30B5\u30A4\u30AF\u30EB\u3067\u66F4\u65B0\u3055\u308C\u307E\u3059:",
- " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
+ " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n",
+ "",
+ "\u7D42\u4E86\u30B9\u30C6\u30FC\u30BF\u30B9:",
+ " 0 (\u6210\u529F\u3057\u305F\u5834\u5408)\u3001>0 (\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u305F\u5834\u5408)"
}
},
{UNPACK_HELP, new String[] {
"\u4F7F\u7528\u65B9\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
"",
"\u89E3\u51CD\u30AA\u30D7\u30B7\u30E7\u30F3",
- " -H{h}\u3001--deflate-hint={h} \u8EE2\u9001\u3055\u308C\u305F\u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059: true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
+ " -H{h}\u3001--deflate-hint={h} \u8EE2\u9001\u3055\u308C\u305F\u30C7\u30D5\u30EC\u30FC\u30C8\u30FB\u30D2\u30F3\u30C8\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059:",
+ " true\u3001false\u307E\u305F\u306Fkeep(\u30C7\u30D5\u30A9\u30EB\u30C8)",
" -r\u3001--remove-pack-file \u89E3\u51CD\u5F8C\u306B\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u524A\u9664\u3057\u307E\u3059",
" -v\u3001--verbose \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u5197\u9577\u6027\u3092\u9AD8\u3081\u307E\u3059",
" -q\u3001--quiet \u5197\u9577\u6027\u3092\u6700\u4F4E\u30EC\u30D9\u30EB\u306B\u8A2D\u5B9A\u3057\u307E\u3059",
- " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306FSystem.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
+ " -l{F}\u3001--log-file={F} \u6307\u5B9A\u306E\u30ED\u30B0\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F",
+ " System.out ('-'\u306E\u5834\u5408)\u306B\u51FA\u529B\u3057\u307E\u3059",
" -?\u3001-h\u3001--help \u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3057\u307E\u3059",
" -V\u3001--version \u30D7\u30ED\u30B0\u30E9\u30E0\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u307E\u3059",
" -J{X} \u30AA\u30D7\u30B7\u30E7\u30F3X\u3092\u57FA\u790E\u3068\u306A\u308BJava VM\u306B\u6E21\u3057\u307E\u3059"
--- a/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java Mon Aug 01 10:06:09 2016 -0700
@@ -56,22 +56,30 @@
{SKIP_FOR_REPACKED, "\u7531\u4E8E\u5DF2\u91CD\u65B0\u6253\u5305\u800C\u8DF3\u8FC7: {0}"}, // parameter 0:filename
{WRITE_PACK_FILE, "\u8981\u5199\u5165 *.pack \u6587\u4EF6, \u8BF7\u6307\u5B9A --no-gzip: {0}"}, // parameter 0:filename
{WRITE_PACKGZ_FILE, "\u8981\u5199\u5165 *.pack.gz \u6587\u4EF6, \u8BF7\u6307\u5B9A --gzip: {0}"}, // parameter 0:filename
- {SKIP_FOR_MOVE_FAILED, "\u7531\u4E8E\u79FB\u52A8\u5931\u8D25\u800C\u8DF3\u8FC7\u91CD\u65B0\u6253\u5305: {0}"}, // parameter 0:filename
+ {SKIP_FOR_MOVE_FAILED, "\u7531\u4E8E\u79FB\u52A8\u5931\u8D25\u800C\u8DF3\u8FC7\u89E3\u5305: {0}"}, // parameter 0:filename
{PACK_HELP, new String[] {
"\u7528\u6CD5: pack200 [-opt... | --option=value]... x.pack[.gz] y.jar",
"",
"\u6253\u5305\u9009\u9879",
- " -g, --no-gzip \u8F93\u51FA\u65E0\u683C\u5F0F\u7684 *.pack \u6587\u4EF6, \u4E0D\u538B\u7F29",
- " --gzip (\u9ED8\u8BA4\u503C) \u4F7F\u7528 gzip \u5BF9\u6253\u5305\u8FDB\u884C\u540E\u5904\u7406",
- " -G, --strip-debug \u6253\u5305\u65F6\u5220\u9664\u8C03\u8BD5\u5C5E\u6027",
+ " -r, --repack \u518D\u6B21\u6253\u5305\u6216\u89C4\u8303\u5316 jar, \u9002\u5408\u4E8E ",
+ " \u4F7F\u7528 jarsigner \u8FDB\u884C\u7B7E\u540D",
+ " -g, --no-gzip \u8F93\u51FA\u65E0\u683C\u5F0F\u7684\u5305\u6587\u4EF6, \u9002\u5408\u4E8E",
+ " \u4F7F\u7528\u6587\u4EF6\u538B\u7F29\u5B9E\u7528\u7A0B\u5E8F\u8FDB\u884C\u538B\u7F29",
+ " --gzip (\u9ED8\u8BA4\u503C) \u4F7F\u7528 gzip \u5BF9\u5305\u8F93\u51FA\u8FDB\u884C",
+ " \u538B\u7F29\u540E\u5904\u7406",
+ " -G, --strip-debug \u6253\u5305\u65F6\u5220\u9664\u8C03\u8BD5\u5C5E\u6027 (SourceFile,",
+ " LineNumberTable, LocalVariableTable",
+ " \u548C LocalVariableTypeTable)",
" -O, --no-keep-file-order \u4E0D\u4F20\u8F93\u6587\u4EF6\u6392\u5E8F\u4FE1\u606F",
" --keep-file-order (\u9ED8\u8BA4\u503C) \u4FDD\u7559\u8F93\u5165\u6587\u4EF6\u6392\u5E8F",
- " -S{N}, --segment-limit={N} \u8F93\u51FA\u6BB5\u9650\u5236 (\u9ED8\u8BA4\u503C N=1Mb)",
+ " -S{N}, --segment-limit={N} \u9650\u5236\u6BB5\u5927\u5C0F (\u9ED8\u8BA4\u4E3A\u65E0\u9650\u5236)",
" -E{N}, --effort={N} \u6253\u5305\u6548\u679C (\u9ED8\u8BA4\u503C N=5)",
- " -H{h}, --deflate-hint={h} \u4F20\u8F93\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
+ " -H{h}, --deflate-hint={h} \u4F20\u8F93\u538B\u7F29\u63D0\u793A: true, false",
+ " \u6216 keep (\u9ED8\u8BA4\u503C)",
" -m{V}, --modification-time={V} \u4F20\u8F93 modtimes: latest \u6216 keep (\u9ED8\u8BA4\u503C)",
- " -P{F}, --pass-file={F} \u4F20\u8F93\u672A\u89E3\u538B\u7F29\u7684\u7ED9\u5B9A\u8F93\u5165\u5143\u7D20",
- " -U{a}, --unknown-attribute={a} \u672A\u77E5\u5C5E\u6027\u64CD\u4F5C: error, strip \u6216 pass (\u9ED8\u8BA4\u503C)",
+ " -P{F}, --pass-file={F} \u4F20\u8F93\u672A\u66F4\u6539\u7684\u7ED9\u5B9A\u8F93\u5165\u5143\u7D20",
+ " -U{a}, --unknown-attribute={a} \u672A\u77E5\u5C5E\u6027\u64CD\u4F5C: error, strip",
+ " \u6216 pass (\u9ED8\u8BA4\u503C)",
" -C{N}={L}, --class-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
" -F{N}={L}, --field-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
" -M{N}={L}, --method-attribute={N}={L} (\u7528\u6237\u5B9A\u4E49\u7684\u5C5E\u6027)",
@@ -79,7 +87,8 @@
" -f{F}, --config-file={F} \u8BFB\u53D6\u6587\u4EF6 F \u7684 Pack200.Packer \u5C5E\u6027",
" -v, --verbose \u63D0\u9AD8\u7A0B\u5E8F\u8BE6\u7EC6\u7A0B\u5EA6",
" -q, --quiet \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
- " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
+ " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, ",
+ " \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
" -?, -h, --help \u8F93\u51FA\u6B64\u6D88\u606F",
" -V, --version \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
" -J{X} \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM",
@@ -92,18 +101,23 @@
" \u5E03\u5C40\u5B9A\u4E49 (\u4F8B\u5982 RUH) \u7531 JSR 200 \u5B9A\u4E49\u3002",
"",
"\u91CD\u65B0\u6253\u5305\u6A21\u5F0F\u901A\u8FC7\u6253\u5305/\u89E3\u5305\u5468\u671F\u66F4\u65B0 JAR \u6587\u4EF6:",
- " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n"
+ " pack200 [-r|--repack] [-opt | --option=value]... [repackedy.jar] y.jar\n",
+ "",
+ "\u9000\u51FA\u72B6\u6001:",
+ " \u5982\u679C\u6210\u529F\u5219\u4E3A 0; \u5982\u679C\u51FA\u73B0\u9519\u8BEF, \u5219\u4E3A\u5927\u4E8E 0 \u7684\u503C"
}
},
{UNPACK_HELP, new String[] {
"\u7528\u6CD5: unpack200 [-opt... | --option=value]... x.pack[.gz] y.jar\n",
"",
"\u89E3\u5305\u9009\u9879",
- " -H{h}, --deflate-hint={h} \u8986\u76D6\u5DF2\u4F20\u8F93\u7684\u538B\u7F29\u63D0\u793A: true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
+ " -H{h}, --deflate-hint={h} \u8986\u76D6\u5DF2\u4F20\u8F93\u7684\u538B\u7F29\u63D0\u793A:",
+ " true, false \u6216 keep (\u9ED8\u8BA4\u503C)",
" -r, --remove-pack-file \u89E3\u5305\u4E4B\u540E\u5220\u9664\u8F93\u5165\u6587\u4EF6",
" -v, --verbose \u63D0\u9AD8\u7A0B\u5E8F\u8BE6\u7EC6\u7A0B\u5EA6",
" -q, --quiet \u5C06\u8BE6\u7EC6\u7A0B\u5EA6\u8BBE\u7F6E\u4E3A\u6700\u4F4E\u7EA7\u522B",
- " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216\u5BF9\u4E8E System.out \u6307\u5B9A '-'",
+ " -l{F}, --log-file={F} \u8F93\u51FA\u5230\u7ED9\u5B9A\u65E5\u5FD7\u6587\u4EF6, \u6216",
+ " \u5BF9\u4E8E System.out \u6307\u5B9A '-'",
" -?, -h, --help \u8F93\u51FA\u6B64\u6D88\u606F",
" -V, --version \u8F93\u51FA\u7A0B\u5E8F\u7248\u672C",
" -J{X} \u5C06\u9009\u9879 X \u4F20\u9012\u7ED9\u57FA\u7840 Java VM"
--- a/jdk/src/java.base/share/classes/java/lang/SecurityManager.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/java/lang/SecurityManager.java Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -227,9 +227,10 @@
*
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This field is subject to removal in a
+ * future version of Java SE.
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected boolean inCheck;
/*
@@ -260,9 +261,10 @@
* @see java.lang.SecurityManager#inCheck
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
public boolean getInCheck() {
return inCheck;
}
@@ -340,12 +342,13 @@
*
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*
* @see java.lang.ClassLoader#getSystemClassLoader() getSystemClassLoader
* @see #checkPermission(java.security.Permission) checkPermission
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected ClassLoader currentClassLoader() {
ClassLoader cl = currentClassLoader0();
if ((cl != null) && hasAllPermission())
@@ -386,12 +389,13 @@
*
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*
* @see java.lang.ClassLoader#getSystemClassLoader() getSystemClassLoader
* @see #checkPermission(java.security.Permission) checkPermission
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected Class<?> currentLoadedClass() {
Class<?> c = currentLoadedClass0();
if ((c != null) && hasAllPermission())
@@ -408,10 +412,10 @@
* <code>-1</code> if such a frame cannot be found.
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
- *
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected native int classDepth(String name);
/**
@@ -444,12 +448,13 @@
*
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*
* @see java.lang.ClassLoader#getSystemClassLoader() getSystemClassLoader
* @see #checkPermission(java.security.Permission) checkPermission
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected int classLoaderDepth() {
int depth = classLoaderDepth0();
if (depth != -1) {
@@ -472,9 +477,10 @@
* name is on the execution stack; <code>false</code> otherwise.
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected boolean inClass(String name) {
return classDepth(name) >= 0;
}
@@ -488,10 +494,11 @@
*
* @deprecated This type of security checking is not recommended.
* It is recommended that the <code>checkPermission</code>
- * call be used instead.
+ * call be used instead. This method is subject to removal in a
+ * future version of Java SE.
* @see #currentClassLoader() currentClassLoader
*/
- @Deprecated(since="1.2")
+ @Deprecated(since="1.2", forRemoval=true)
protected boolean inClassLoader() {
return currentClassLoader() != null;
}
--- a/jdk/src/java.base/share/classes/javax/crypto/CryptoPermissions.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/javax/crypto/CryptoPermissions.java Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,9 +37,7 @@
import java.io.BufferedReader;
import java.io.ObjectStreamField;
import java.io.ObjectInputStream;
-import java.io.ObjectInputStream.GetField;
import java.io.ObjectOutputStream;
-import java.io.ObjectOutputStream.PutField;
import java.io.IOException;
/**
@@ -132,15 +130,18 @@
*
* @see isReadOnly
*/
+ @Override
public void add(Permission permission) {
- if (isReadOnly())
+ if (isReadOnly()) {
throw new SecurityException("Attempt to add a Permission " +
"to a readonly CryptoPermissions " +
"object");
+ }
- if (!(permission instanceof CryptoPermission))
+ if (!(permission instanceof CryptoPermission)) {
return;
+ }
CryptoPermission cryptoPerm = (CryptoPermission)permission;
PermissionCollection pc =
@@ -161,6 +162,7 @@
* in the PermissionCollection it belongs to, false if not.
*
*/
+ @Override
public boolean implies(Permission permission) {
if (!(permission instanceof CryptoPermission)) {
return false;
@@ -170,7 +172,13 @@
PermissionCollection pc =
getPermissionCollection(cryptoPerm.getAlgorithm());
- return pc.implies(cryptoPerm);
+
+ if (pc != null) {
+ return pc.implies(cryptoPerm);
+ } else {
+ // none found
+ return false;
+ }
}
/**
@@ -179,6 +187,7 @@
*
* @return an enumeration of all the Permissions.
*/
+ @Override
public Enumeration<Permission> elements() {
// go through each Permissions in the hash table
// and call their elements() function.
@@ -453,7 +462,7 @@
final class PermissionsEnumerator implements Enumeration<Permission> {
// all the perms
- private Enumeration<PermissionCollection> perms;
+ private final Enumeration<PermissionCollection> perms;
// the current set
private Enumeration<Permission> permset;
@@ -462,17 +471,20 @@
permset = getNextEnumWithMore();
}
+ @Override
public synchronized boolean hasMoreElements() {
// if we enter with permissionimpl null, we know
// there are no more left.
- if (permset == null)
+ if (permset == null) {
return false;
+ }
// try to see if there are any left in the current one
- if (permset.hasMoreElements())
+ if (permset.hasMoreElements()) {
return true;
+ }
// get the next one that has something in it...
permset = getNextEnumWithMore();
@@ -481,6 +493,7 @@
return (permset != null);
}
+ @Override
public synchronized Permission nextElement() {
// hasMoreElements will update permset to the next permset
// with something in it...
@@ -496,8 +509,9 @@
while (perms.hasMoreElements()) {
PermissionCollection pc = perms.nextElement();
Enumeration<Permission> next = pc.elements();
- if (next.hasMoreElements())
+ if (next.hasMoreElements()) {
return next;
+ }
}
return null;
}
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_de.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_de.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ weil die Ausf\u00FChrung auf einem Server-Class-Rechner erfolgt.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n -classpath <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n Eine durch {0} getrennte Liste mit Verzeichnissen, JAR-Archiven\n und ZIP-Archiven zur Suche nach Klassendateien.\n -mp <Modulpfad>\n -modulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Modulverzeichnis darstellt.\n -upgrademodulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Verzeichnis von Modulen darstellt, die upgradef\u00E4hige\n Module im Laufzeitimage ersetzen\n -m <modulename>[/<mainclass>]\n Das anf\u00E4ngliche Modul, das aufgel\u00F6st werden soll, und der Name der Hauptklasse,\n die ausgef\u00FChrt werden soll, wenn keine Angabe durch das Modul erfolgt\n -addmods <modulename>[,<modulename>...]\n Root-Module, die zus\u00E4tzlich zum anf\u00E4nglichen Modul aufgel\u00F6st werden sollen\n -limitmods <modulename>[,<modulename>...]\n Schr\u00E4nkt die Gesamtzahl der beobachtbaren Module ein\n -listmods[:<modulename>[,<modulename>...]]\n Listet die beobachtbaren Module auf und beendet den Vorgang\n -D<name>=<value>\n Legt eine Systemeigenschaft fest\n -verbose:[class|gc|jni]\n Aktiviert die Verbose-Ausgabe\n -version Druckt Produktversion und beendet das Programm\n -showversion Druckt Produktversion und f\u00E4hrt fort\n -? -help Druckt diese Hilfemeldung\n -X Druckt Hilfe zu Nicht-Standardoptionen\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n Aktiviert Assertions mit angegebener Granularit\u00E4t\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n Deaktiviert Assertions mit angegebener Granularit\u00E4t\n -esa | -enablesystemassertions\n Aktiviert System-Assertions\n -dsa | -disablesystemassertions\n Deaktiviert System-Assertions\n -agentlib:<libname>[=<options>]\n L\u00E4dt native Agent Library <libname>, z.B. -agentlib:jdwp\n siehe auch -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n L\u00E4dt native Agent Library nach vollem Pfadnamen\n -javaagent:<jarpath>[=<options>]\n L\u00E4dt Java-Programmiersprachen-Agent, siehe java.lang.instrument\n -splash:<imagepath>\n Zeigt Startbildschirm mit angegebenem Bild an\n @<filepath> Liest Optionen aus der angegebenen Datei\n
+java.launcher.opt.footer =-cp <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n -classpath <Klassensuchpfad von Verzeichnissen und ZIP-/JAR-Dateien>\n Eine durch {0} getrennte Liste mit Verzeichnissen, JAR-Archiven\n und ZIP-Archiven zur Suche nach Klassendateien.\n -mp <Modulpfad>\n -modulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Modulverzeichnis darstellt.\n -upgrademodulepath <Modulpfad>...\n Eine durch {0} getrennte Liste mit Verzeichnissen, in der jedes Verzeichnis\n ein Verzeichnis von Modulen darstellt, die upgradef\u00E4hige\n Module im Laufzeitimage ersetzen\n -m <modulename>[/<mainclass>]\n Das aufzul\u00F6sende anf\u00E4ngliche Modul und der Name der auszuf\u00FChrenden Hauptklasse,\n wenn nicht durch das Modul angegeben\n -addmods <modulename>[,<modulename>...]\n Root-Module, die zus\u00E4tzlich zum anf\u00E4nglichen Modul aufgel\u00F6st werden sollen\n -limitmods <modulename>[,<modulename>...]\n Gesamtzahl der beobachtbaren Module einschr\u00E4nken\n -listmods[:<modulename>[,<modulename>...]]\n Beobachtbare Module auflisten und Vorgang beenden\n --dry-run VM erstellen, aber Hauptmethode nicht ausf\u00FChren.\n Diese dry-run-Option kann n\u00FCtzlich sein, um\n Befehlszeilenoptionen wie die Modulsystemkonfiguration zu validieren.\n -D<name>=<value>\n Systemeigenschaft festlegen\n -verbose:[class|gc|jni]\n Verbose-Ausgabe aktivieren\n -version Produktversion drucken und Vorgang beenden\n -showversion Produktversion drucken und fortfahren\n -? -help Diese Hilfemeldung drucken\n -X Hilfe zu Nicht-Standardoptionen drucken\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n Assertions mit angegebener Granularit\u00E4t aktivieren\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n Assertions mit angegebener Granularit\u00E4t deaktivieren\n -esa | -enablesystemassertions\n System-Assertions aktivieren\n -dsa | -disablesystemassertions\n System-Assertions deaktivieren\n -agentlib:<libname>[=<options>]\n Native Agent Library <libname> laden, z.\u00A0B. -agentlib:jdwp,\n siehe auch -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n Native Agent Library nach vollst\u00E4ndigem Pfadnamen laden\n -javaagent:<jarpath>[=<options>]\n Agent f\u00FCr Java-Programmiersprachen laden, siehe java.lang.instrument\n -splash:<imagepath>\n Startbildschirm mit angegebenem Bild anzeigen\n @<filepath> Optionen aus der angegebenen Datei lesen\n
See Weitere Einzelheiten finden Sie unter http://www.oracle.com/technetwork/java/javase/documentation/index.html.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed Ausf\u00FChrung im gemischten Modus (Standard)\n -Xint Nur Ausf\u00FChrung im interpretierten Modus\n -Xbootclasspath/a:<Verzeichnisse und ZIP-/JAR-Dateien durch {0} getrennt>\n H\u00E4ngt an das Ende des Bootstrap Classpath an\n -Xdiag Zeigt zus\u00E4tzliche Diagnosemeldungen an\n -Xdiag:resolver Zeigt Resolver-Diagnosemeldungen an\n -Xnoclassgc Deaktiviert Klassen-Garbage Collection\n -Xincgc Aktiviert inkrementelle Garbage Collection\n -Xloggc:<file> Protokolliert GC-Status in einer Datei mit Zeitstempeln\n -Xbatch Deaktiviert Hintergrundkompilierung\n -Xms<size> Legt anf\u00E4ngliche Java-Heap-Gr\u00F6\u00DFe fest\n -Xmx<size> Legt maximale Java-Heap-Gr\u00F6\u00DFe fest\n -Xss<size> Legt Java-Threadstackgr\u00F6\u00DFe fest\n -Xprof Gibt CPU-Profilingdaten aus\n -Xfuture Aktiviert strengste Pr\u00FCfungen, antizipiert zuk\u00FCnftigen Standardwert\n -Xrs Reduziert Verwendung von BS-Signalen durch Java/VM (siehe Dokumentation)\n -Xcheck:jni F\u00FChrt zus\u00E4tzliche Pr\u00FCfungen f\u00FCr JNI-Funktionen durch\n -Xshare:off Kein Versuch, gemeinsame Klassendaten zu verwenden\n -Xshare:auto Verwendet gemeinsame Klassendaten, wenn m\u00F6glich (Standard)\n -Xshare:on Erfordert die Verwendung gemeinsamer Klassendaten, sonst verl\u00E4uft der Vorgang nicht erfolgreich.\n -XshowSettings Zeigt alle Einstellungen an und f\u00E4hrt fort\n -XshowSettings:all\n Zeigt alle Einstellungen an und f\u00E4hrt fort\n -XshowSettings:vm Zeigt alle VM-bezogenen Einstellungen an und f\u00E4hrt fort\n -XshowSettings:properties\n Zeigt alle Eigenschaftseinstellungen an und f\u00E4hrt fort\n -XshowSettings:locale\n Zeigt alle gebietsschemabezogenen Einstellungen an und f\u00E4hrt fort\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> liest andere Module\n unabh\u00E4ngig von der Moduldeklaration\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exportiert <package> in andere Module\n unabh\u00E4ngig von der Moduldeklaration\n -Xpatch:<module>=<file>({0}<file>)*\n Modul mit Klassen und Ressourcen in JAR-Dateien oder Verzeichnissen\n au\u00DFer Kraft setzen oder erg\u00E4nzen\n -Xdisable-@files Deaktiviert weitere Argumentdateierweiterung\n\nDie -X-Optionen sind keine Standardoptionen und k\u00F6nnen ohne Vorank\u00FCndigung ge\u00E4ndert werden.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nDie folgenden Optionen sind f\u00FCr Mac OS X spezifisch:\n -XstartOnFirstThread\n f\u00FChrt die main()-Methode f\u00FCr den ersten (AppKit) Thread aus\n -Xdock:name=<Anwendungsname>"\n \u00DCberschreibt den in der Uhr angezeigten Standardanwendungsnamen\n -Xdock:icon=<Pfad zu Symboldatei>\n \u00DCberschreibt das in der Uhr angezeigte Standardsymbol\n\n
+java.launcher.X.macosx.usage=\nDie folgenden Optionen sind f\u00FCr Mac OS X spezifisch:\n -XstartOnFirstThread\n main()-Methode f\u00FCr den ersten (AppKit) Thread ausf\u00FChren\n -Xdock:name=<application name>\n Den im Dock angezeigten Standardanwendungsnamen \u00FCberschreiben\n -Xdock:icon=<Pfad zu Symboldatei>\n Das im Dock angezeigte Standardsymbol \u00FCberschreiben\n\n
java.launcher.cls.error1=Fehler: Hauptklasse {0} konnte nicht gefunden oder geladen werden
java.launcher.cls.error2=Fehler: Hauptmethode ist nicht {0} in Klasse {1}. Definieren Sie die Hauptmethode als:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_es.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_es.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ porque la ejecuci\u00F3n se est\u00E1 llevando a cabo en una m\u00E1quina de clase de servidor.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <ruta de acceso de b\u00FAsqueda de clases de los directorios y archivos zip/jar>\n -classpath <ruta de acceso de b\u00FAsqueda de clases de los directorios y archivos zip/jar>\n Lista separada por {0} de directorios, archivos JAR\n y archivos ZIP para buscar archivos de clase.\n -mp <ruta_m\u00F3dulo>\n -modulepath <ruta_m\u00F3dulo>...\n Lista separada por {0} de directorios, cada directorio\n es un directorio de m\u00F3dulos.\n -upgrademodulepath <ruta_m\u00F3dulo>...\n Lista separada por {0} de directorios, cada directorio\n es un directorio de m\u00F3dulos que sustituye a los m\u00F3dulos\n actualizables en la imagen de tiempo de ejecuci\u00F3n\n -m <nombre_m\u00F3dulo>[/<clase_principal>]\n m\u00F3dulo inicial que resolver y nombre de la clase principal\n que ejecutar si el m\u00F3dulo no la especifica\n -addmods <nombre_m\u00F3dulo>[,<nombre_modulo>...]\n m\u00F3dulos ra\u00EDz que resolver, adem\u00E1s del m\u00F3dulo inicial\n -limitmods <nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]\n limitar el universo de los m\u00F3dulos observables\n -listmods[:<nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]]\n mostrar los m\u00F3dulos observables y sale\n -D<nombre>=<valor>\n definir una propiedad del sistema\n -verbose:[class|gc|jni]\n activar la salida verbose\n -version imprimir la versi\u00F3n del producto y sale\n -showversion imprimir la versi\u00F3n del producto y sale\n -? -help imprimir este mensaje de ayuda\n -X imprimir la ayuda de opciones no est\u00E1ndar\n -ea[:<nombre_paquete>...|:<nombre_clase>]\n -enableassertions[:<nombre_paquete>...|:<nombre_clase>]\n activar afirmaciones con la granularidad especificada\n -da[:<nombre_paquete>...|:<nombre_clase>]\n -disableassertions[:<nombre_paquete>...|:<nombre_clase>]\n desactivar afirmaciones con la granularidad especificada\n -esa | -enablesystemassertions\n activar afirmaciones del sistema\n -dsa | -disablesystemassertions\n desactivar afirmaciones del sistema\n -agentlib:<nombre_bib>[=<opciones>]\n cargar biblioteca de agentes nativos <nombre_bib>, por ejemplo, -agentlib:jdwp\n ver tambi\u00E9n -agentlib:jdwp=help\n -agentpath:<nombre_ruta>[=<opciones>]\n cargar biblioteca de agentes nativos por ruta completa\n -javaagent:<ruta_jar>[=<opciones>]\n cargar agente de lenguaje de programaci\u00F3n Java, ver java.lang.instrument\n -splash:<ruta_imagen>\n mostrar pantalla de bienvenida con la imagen especificada\n @<ruta_archivo> leer opciones del archivo especificado\n
+java.launcher.opt.footer =\ -cp <ruta de acceso de b\u00FAsqueda de clases de los directorios y archivos zip/jar>\n -classpath <ruta de acceso de b\u00FAsqueda de clases de los directorios y archivos zip/jar>\n Lista separada por {0} de directorios, archivos JAR\n y archivos ZIP para buscar archivos de clase.\n -mp <ruta_m\u00F3dulo>\n -modulepath <ruta_m\u00F3dulo>...\n Lista separada por {0} de directorios, cada directorio\n es un directorio de m\u00F3dulos.\n -upgrademodulepath <ruta_m\u00F3dulo>...\n Lista separada por {0} de directorios, cada directorio\n es un directorio de m\u00F3dulos que sustituye a los m\u00F3dulos\n actualizables en la imagen de tiempo de ejecuci\u00F3n\n -m <nombre_m\u00F3dulo>[/<clase_principal>]\n m\u00F3dulo inicial que resolver y nombre de la clase principal\n que ejecutar si el m\u00F3dulo no la especifica\n -addmods <nombre_m\u00F3dulo>[,<nombre_modulo>...]\n m\u00F3dulos ra\u00EDz que resolver, adem\u00E1s del m\u00F3dulo inicial\n -limitmods <nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]\n limitar el universo de los m\u00F3dulos observables\n -listmods[:<nombre_m\u00F3dulo>[,<nombre_m\u00F3dulo>...]]\n mostrar los m\u00F3dulos observables y salir\n --dry-run crear VM pero no ejecutar m\u00E9todo principal.\n Esta opci\u00F3n --dry-run puede ser \u00FAtil para validar las\n opciones de l\u00EDnea de comandos como la configuraci\u00F3n del sistema de m\u00F3dulo.\n -D<nombre>=<valor>\n definir una propiedad del sistema\n -verbose:[class|gc|jni]\n activar la salida detallada\n -version imprimir la versi\u00F3n del producto y salir\n -showversion imprimir la versi\u00F3n del producto y continuar\n -? -help imprimir este mensaje de ayuda\n -X imprimir la ayuda de opciones no est\u00E1ndar\n -ea[:<nombre_paquete>...|:<nombre_clase>]\n -enableassertions[:<nombre_paquete>...|:<nombre_clase>]\n activar afirmaciones con la granularidad especificada\n -da[:<nombre_paquete>...|:<nombre_clase>]\n -disableassertions[:<nombre_paquete>...|:<nombre_clase>]\n desactivar afirmaciones con la granularidad especificada\n -esa | -enablesystemassertions\n activar afirmaciones del sistema\n -dsa | -disablesystemassertions\n desactivar afirmaciones del sistema\n -agentlib:<nombre_bib>[=<opciones>]\n cargar biblioteca de agentes nativos <nombre_bib>, por ejemplo, -agentlib:jdwp\n ver tambi\u00E9n -agentlib:jdwp=help\n -agentpath:<nombre_ruta>[=<opciones>]\n cargar biblioteca de agentes nativos por ruta completa\n -javaagent:<ruta_jar>[=<opciones>]\n cargar agente de lenguaje de programaci\u00F3n Java, ver java.lang.instrument\n -splash:<ruta_imagen>\n mostrar pantalla de bienvenida con la imagen especificada\n @<ruta_archivo> leer opciones del archivo especificado\n
See http://www.oracle.com/technetwork/java/javase/documentation/index.html para obtener m\u00E1s informaci\u00F3n.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed ejecuci\u00F3n de modo mixto (por defecto)\n -Xint solo ejecuci\u00F3n de modo interpretado\n -Xbootclasspath/a:<directorios y archivos zip/jar separados por {0}>\n agregar al final de la ruta de acceso de la clase de inicializaci\u00F3n de datos\n -Xdiag mostrar mensajes de diagn\u00F3stico adicionales\n -Xdiag:resolver mostrar mensajes de diagn\u00F3stico de resoluci\u00F3n\n -Xnoclassgc desactivar la recolecci\u00F3n de basura de clases\n -Xloggc:<archivo> registrar el estado de GC en un archivo con registros de hora\n -Xbatch desactivar compilaci\u00F3n en segundo plano\n -Xms<tama\u00F1o> definir tama\u00F1o de pila Java inicial\n -Xmx<tama\u00F1o> definir tama\u00F1o de pila Java m\u00E1ximo\n -Xss<tama\u00F1o> definir tama\u00F1o de la pila del thread de Java\n -Xprof datos de salida de creaci\u00F3n de perfil de CPU\n -Xfuture activar las comprobaciones m\u00E1s estrictas, anticip\u00E1ndose al futuro valor por defecto\n -Xrs reducir el uso de se\u00F1ales de sistema operativo por parte de Java/VM (consulte la documentaci\u00F3n)\n -Xcheck:jni realizar comprobaciones adicionales para las funciones de JNI\n -Xshare:off no intentar usar datos de clase compartidos\n -Xshare:auto usar datos de clase compartidos si es posible (valor por defecto)\n -Xshare:on es obligatorio el uso de datos de clase compartidos, de lo contrario se emitir\u00E1 un fallo.\n -XshowSettings show all settings and continue\n -XshowSettings:all\n mostrar todos los valores y continuar\n -XshowSettings:vm show all vm related settings and continue\n -XshowSettings:properties\n mostrar todos los valores y continuar\n -XshowSettings:locale\n mostrar todos los valores relacionados con la configuraci\u00F3n regional y continuar\n -XaddReads:<m\u00F3dulo>=<otro_m\u00F3dulo>(,<otro_m\u00F3dulo>)*\n <module> lee otros m\u00F3dulos,\n independientemente de la declaraci\u00F3n del m\u00F3dulo\n -XaddExports:<m\u00F3dulo>/<paquete>=<otro_m\u00F3dulo>(,<otro_m\u00F3dulo>)*\n <m\u00F3dulo> exporta <paquete> a otros m\u00F3dulos,\n independientemente de la declaraci\u00F3n del m\u00F3dulo\n -Xpatch:<m\u00F3dulo>=<archivo>({0}<archivo>)*\n Anular o aumentar un m\u00F3dulo con clases y recursos\n en directorios o archivos JAR\n -Xdisable-@files desactivar la ampliaci\u00F3n de archivos de argumentos\n\nLas opciones -X no son est\u00E1ndar y est\u00E1n sujetas a cambios sin previo aviso.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nLas siguientes opciones son espec\u00EDficas para Mac OS X:\n -XstartOnFirstThread\n ejecuta el m\u00E9todo main() del primer thread (AppKit)\n -Xdock:name=<nombre de aplicaci\u00F3n>"\n sustituye al nombre por defecto de la aplicaci\u00F3n que se muestra en el Dock\n -Xdock:icon=<ruta de acceso a archivo de icono>\n sustituye al icono por defecto que se muestra en el Dock\n\n
+java.launcher.X.macosx.usage=\nLas siguientes opciones son espec\u00EDficas para Mac OS X:\n -XstartOnFirstThread\n ejecutar el m\u00E9todo main() del primer thread (AppKit)\n -Xdock:name=<application name>\n sustituir al nombre por defecto de la aplicaci\u00F3n que se muestra en el Dock\n -Xdock:icon=<ruta de acceso a archivo de icono>\n sustituir al icono por defecto que se muestra en el Dock\n\n
java.launcher.cls.error1=Error: no se ha encontrado o cargado la clase principal {0}
java.launcher.cls.error2=Error: el m\u00E9todo principal no es {0} en la clase {1}, defina el m\u00E9todo principal del siguiente modo:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_fr.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ car vous ex\u00E9cutez une machine de classe de serveur.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n -classpath <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n Liste de r\u00E9pertoires, d''archives JAR\n et d''archives ZIP s\u00E9par\u00E9s par des {0} dans laquelle rechercher les fichiers de classe.\n -mp <chemin de module>\n -modulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules.\n -upgrademodulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules qui remplace des modules\n pouvant \u00EAtre mis \u00E0 niveau dans l''image d''ex\u00E9cution\n -m <modulename>[/<mainclass>]\n module initial \u00E0 r\u00E9soudre et nom de la classe principale\n \u00E0 ex\u00E9cuter si elle n''est pas indiqu\u00E9e par le module\n -addmods <modulename>[,<modulename>...]\n modules racines \u00E0 r\u00E9soudre en plus du module initial\n -limitmods <modulename>[,<modulename>...]\n limitation de l''univers de modules observables\n -listmods[:<modulename>[,<modulename>...]]\n \u00E9num\u00E9ration des modules observables et fin de l''op\u00E9ration\n -D<name>=<value>\n d\u00E9finition d''une propri\u00E9t\u00E9 syst\u00E8me\n -verbose:[class|gc|jni]\n activation de la sortie en mode verbose\n -version impression de la version du produit et fin de l''op\u00E9ration\n -showversion impression de la version du produit et poursuite de l''op\u00E9ration\n -? -help impression du message d''aide\n -X impression de l''aide sur les options non standard\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n activation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n d\u00E9sactivation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -esa | -enablesystemassertions\n activation des assertions syst\u00E8me\n -dsa | -disablesystemassertions\n d\u00E9sactivation des assertions syst\u00E8me\n -agentlib:<libname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif <libname>, par exemple : -agentlib:jdwp\n voir aussi -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif via le chemin d''acc\u00E8s complet\n -javaagent:<jarpath>[=<options>]\n chargement de l''agent du langage de programmation Java, voir java.lang.instrument\n -splash:<imagepath>\n affichage de l''\u00E9cran d''accueil avec l''image indiqu\u00E9e\n @<filepath> lire les options \u00E0 partir du fichier indiqu\u00E9\n
+java.launcher.opt.footer =\ -cp <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n -classpath <chemin de recherche de classe de r\u00E9pertoires et de fichiers ZIP/JAR>\n Liste de r\u00E9pertoires, d''archives JAR\n et d''archives ZIP s\u00E9par\u00E9s par des {0} dans laquelle rechercher les fichiers de classe.\n -mp <chemin de module>\n -modulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules.\n -upgrademodulepath <chemin de module>...\n Liste de r\u00E9pertoires s\u00E9par\u00E9s par des {0}, chaque r\u00E9pertoire\n est un r\u00E9pertoire de modules qui remplace des modules\n pouvant \u00EAtre mis \u00E0 niveau dans l''image d''ex\u00E9cution\n -m <modulename>[/<mainclass>]\n module initial \u00E0 r\u00E9soudre et nom de la classe principale\n \u00E0 ex\u00E9cuter si elle n''est pas indiqu\u00E9e par le module\n -addmods <modulename>[,<modulename>...]\n modules racine \u00E0 r\u00E9soudre en plus du module initial\n -limitmods <modulename>[,<modulename>...]\n limitation de l''univers de modules observables\n -listmods[:<modulename>[,<modulename>...]]\n \u00E9num\u00E9ration des modules observables et fin de l''op\u00E9ration\n --dry-run cr\u00E9e une machine virtuelle mais n''ex\u00E9cute pas la m\u00E9thode principale.\n Cette option --dry-run peut s''av\u00E9rer utile pour la validation des\n options de ligne de commandes telles que la configuration syst\u00E8me de module.\n -D<nom>=<valeur>\n d\u00E9finition d''une propri\u00E9t\u00E9 syst\u00E8me\n -verbose:[class|gc|jni]\n activation de la sortie en mode verbose\n -version affichage de la version du produit et fin de l''op\u00E9ration\n -showversion affichage de la version du produit et poursuite de l''op\u00E9ration\n -? -help affichage du message d''aide\n -X affichage de l''aide sur les options non standard\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n activation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n d\u00E9sactivation des assertions avec la granularit\u00E9 sp\u00E9cifi\u00E9e\n -esa | -enablesystemassertions\n activation des assertions syst\u00E8me\n -dsa | -disablesystemassertions\n d\u00E9sactivation des assertions syst\u00E8me\n -agentlib:<libname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif <libname>, par exemple : -agentlib:jdwp\n voir aussi -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n chargement de la biblioth\u00E8que d''agent natif via le chemin d''acc\u00E8s complet\n -javaagent:<jarpath>[=<options>]\n chargement de l''agent du langage de programmation Java, voir java.lang.instrument\n -splash:<imagepath>\n affichage de l''\u00E9cran d''accueil avec l''image indiqu\u00E9e\n @<filepath> lire les options \u00E0 partir du fichier indiqu\u00E9\n
See http://www.oracle.com/technetwork/java/javase/documentation/index.html pour plus de d\u00E9tails.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed ex\u00E9cution en mode mixte (valeur par d\u00E9faut)\n -Xint ex\u00E9cution en mode interpr\u00E9t\u00E9 uniquement\n -Xbootclasspath/a:<r\u00E9pertoires et fichiers ZIP/JAR s\u00E9par\u00E9s par des {0}>\n ajout \u00E0 la fin du chemin de classe bootstrap\n -Xdiag affichage de messages de diagnostic suppl\u00E9mentaires\n -Xdiag:resolver affichage de messages de diagnostic du r\u00E9solveur\n -Xnoclassgc d\u00E9sactivation du nettoyage de la m\u00E9moire de la classe\n -Xloggc:<file> journalisation du statut de nettoyage de la m\u00E9moire dans un fichier avec horodatage\n -Xbatch d\u00E9sactivation de la compilation en arri\u00E8re-plan\n -Xms<size> d\u00E9finition de la taille initiale des portions de m\u00E9moire Java\n -Xmx<size> d\u00E9finition de la taille maximale des portions de m\u00E9moire Java\n -Xss<size> d\u00E9finition de la taille de pile de threads Java\n -Xprof sortie des donn\u00E9es de profilage d''UC\n -Xfuture activation des contr\u00F4les les plus stricts en vue d''anticiper la future valeur par d\u00E9faut\n -Xrs r\u00E9duction de l''utilisation des signaux d''OS par Java/la machine virtuelle (voir documentation)\n -Xcheck:jni ex\u00E9cution de contr\u00F4les suppl\u00E9mentaires pour les fonctions JNI\n -Xshare:off aucune tentative d''utilisation des donn\u00E9es de classe partag\u00E9e\n -Xshare:auto utilisation des donn\u00E9es de classe partag\u00E9e si possible (valeur par d\u00E9faut)\n -Xshare:on utilisation des donn\u00E9es de classe partag\u00E9e obligatoire ou \u00E9chec de l''op\u00E9ration\n -XshowSettings affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:all\n affichage de tous les param\u00E8tres et poursuite de l''op\u00E9ration\n -XshowSettings:vm affichage de tous les param\u00E8tres de machine virtuelle et poursuite de l''op\u00E9ration\n -XshowSettings:properties\n affichage de tous les param\u00E8tres de propri\u00E9t\u00E9 et poursuite de l''op\u00E9ration\n -XshowSettings:locale\n affichage de tous les param\u00E8tres d''environnement local et poursuite de l''op\u00E9ration\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> lecture de tous les modules,\n quelle que soit la d\u00E9claration de module\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exporte <package> vers d''autres modules,\n quelle que soit la d\u00E9claration de module\n -Xpatch:<module>=<file>({0}<file>)*\n Remplacement ou augmentation d''un module avec des classes et des ressources\n dans des fichiers ou r\u00E9pertoires JAR\n -Xdisable-@files d\u00E9sactivation d''autres d\u00E9veloppements de fichier d''argument\n\nLes options -X ne sont pas standard et sont susceptibles de modification sans pr\u00E9avis.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nLes options suivantes sont propres \u00E0 Mac OS X :\n -XstartOnFirstThread\n ex\u00E9cute la m\u00E9thode main() sur le premier thread (AppKit)\n -Xdock:name=<application name>"\n remplace le nom d'application par d\u00E9faut affich\u00E9 dans l'ancrage\n -Xdock:icon=<path to icon file>\n remplace l'ic\u00F4ne par d\u00E9faut affich\u00E9e dans l'ancrage\n\n
+java.launcher.X.macosx.usage=\nLes options suivantes sont propres \u00E0 Mac OS X :\n -XstartOnFirstThread\n ex\u00E9cute la m\u00E9thode main() sur le premier thread (AppKit)\n -Xdock:name=<nom d'application>\n remplace le nom d'application par d\u00E9faut affich\u00E9 dans l'ancrage\n -Xdock:icon=<chemin vers le fichier d'ic\u00F4ne>\n remplace l'ic\u00F4ne par d\u00E9faut affich\u00E9e dans l'ancrage\n\n
java.launcher.cls.error1=Erreur : impossible de trouver ou charger la classe principale {0}
java.launcher.cls.error2=Erreur : la m\u00E9thode principale n''est pas {0} dans la classe {1}, d\u00E9finissez la m\u00E9thode principale comme suit :\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_it.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_it.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ perch\u00E9 si utilizza un computer di classe server.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <classpath di ricerca di directory e file zip/jar>\n -classpath <classpath di ricerca di directory e file zip/jar>\n Una lista separata da {0} di directory, archivi JAR\n e ZIP utilizzata per la ricerca di file di classe.\n -mp <percorso modulo>\n -modulepath <percorso modulo>...\n Una lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory di moduli.\n -upgrademodulepath <percorso modulo>...\n Una lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory dei moduli che sostituiscono i moduli\n aggiornabili nell''immagine in fase di esecuzione\n -m <nomemodulo>[/<classeprincipale>]\n il modulo iniziale da risolvere e il nome della classe principale\n da eseguire se non viene specificata dal modulo\n -addmods <nomemodulo>[,<nomemodulo>...]\n moduli root da risolvere in aggiunta al modulo iniziale\n -limitmods <nomemodulo>[,<nomemodulo>...]\n limita l''universe dei moduli osservabili\n -listmods[:<nomemodulo>[,<nomemodulo>...]]\n elenca i moduli osservabili ed esce\n -D<nome>=<valore>\n imposta una propriet\u00E0 di sistema\n -verbose:[class|gc|jni]\n abilita l''output descrittivo\n -version stampa la versione del prodotto ed esce\n -showversion stampa la versione del prodotto e continua\n -? -help stampa questo messaggio della Guida\n -X stampa la Guida sulle opzioni non standard\n -ea[:<nomepackage>...|:<nomeclasse>]\n -enableassertions[:<nomepackage>...|:<nomeclasse>]\n abilita le asserzioni con la granularit\u00E0 specificata\n -da[:<nomepackage>...|:<nomeclasse>]\n -disableassertions[:<nomepackage>...|:<nomeclasse>]\n disabilita le asserzioni con la granularit\u00E0 specificata\n -esa | -enablesystemassertions\n abilita le asserzioni di sistema\n -dsa | -disablesystemassertions\n disabilita le asserzioni di sistema\n -agentlib:<nomelibreria>[=<opzioni>]\n load native agent library <nomelibreria>, ad esempio -agentlib:jdwp\n vedere anche -agentlib:jdwp=help\n -agentpath:<nomepercorso>[=<opzioni>]\n carica la libreria agenti nativa con il percorso completo\n -javaagent:<percorsojar>[=<opzioni>]\n carica l''agente del linguaggio di programmazione Java. Vedere java.lang.instrument\n -splash:<percorsoimmagine>\n mostra la schermata iniziale con l''immagine specificata\n @<percorsofile> legge le opzioni dal file specificato\n
+java.launcher.opt.footer =\ -cp <classpath di ricerca di directory e file zip/jar>\n -classpath <classpath di ricerca di directory e file zip/jar>\n Lista separata da {0} di directory e di archivi JAR\n e ZIP utilizzata per la ricerca di file di classe.\n -mp <percorso modulo>\n -modulepath <percorso modulo>...\n Lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory di moduli.\n -upgrademodulepath <percorso modulo>...\n Lista separata da {0} di directory; ciascuna directory\n \u00E8 una directory dei moduli che sostituiscono i moduli\n aggiornabili nell''immagine in fase di esecuzione.\n -m <nome modulo>[/<classe principale>]\n Il modulo iniziale da risolvere e il nome della classe\n principale da eseguire se non specificata dal modulo.\n -addmods <nome modulo>[,<nome modulo>...]\n Moduli root da risolvere in aggiunta al modulo iniziale.\n -limitmods <nome modulo>[,<nome modulo>...]\n Limita l''universe dei moduli osservabili.\n -listmods[:<nome modulo>[,<nome modulo>...]]\n Elenca i moduli osservabili ed esce.\n --dry-run Crea la VM ma non esegue il metodo principale.\n Pu\u00F2 essere utile, ad esempio, per la convalida delle opzioni della\n riga di comando utilizzate per la configurazione del sistema di moduli.\n -D<nome>=<valore>\n Imposta una propriet\u00E0 di sistema.\n -verbose:[class|gc|jni]\n Abilita l''output descrittivo.\n -version Visualizza la versione del prodotto ed esce.\n -showversion Visualizza la versione del prodotto e continua\n -? -help Visualizza questo messaggio della Guida.\n -X Visualizza la Guida relativa alle opzioni non standard.\n -ea[:<nome package>...|:<nome classe>]\n -enableassertions[:<nome package>...|:<nome classe>]\n Abilita le asserzioni con la granularit\u00E0 specificata.\n -da[:<nome package>...|:<nome classe>]\n -disableassertions[:<nome package>...|:<nome classe>]\n Disabilita le asserzioni con la granularit\u00E0 specificata.\n -esa | -enablesystemassertions\n Abilita le asserzioni di sistema.\n -dsa | -disablesystemassertions\n Disabilita le asserzioni di sistema.\n -agentlib:<nome libreria>[=<opzioni>]\n Carica la libreria agenti nativa <nome libreria>, ad esempio -agentlib:jdwp.\n Vedere anche -agentlib:jdwp=help.\n -agentpath:<nome percorso>[=<opzioni>]\n Carica la libreria agenti nativa con il percorso completo.\n -javaagent:<percorso jar>[=<opzioni>]\n Carica l''agente del linguaggio di programmazione Java. Vedere java.lang.instrument.\n -splash:<percorso immagine>\n Mostra la schermata iniziale con l''immagine specificata.\n @<percorso file> Legge le opzioni dal file specificato.\n
See Per ulteriori dettagli, vedere http://www.oracle.com/technetwork/java/javase/documentation/index.html.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed esecuzione in modalit\u00E0 mista (impostazione predefinita)\n -Xint esecuzione solo in modalit\u00E0 convertita\n -Xbootclasspath/a:<directory e file zip/jar separati da {0}>\n aggiunge alla fine del classpath di bootstrap\n -Xdiag mostra messaggi di diagnostica aggiuntivi\n -Xdiag:resolver mostra i messaggi di diagnostica del resolver\n -Xnoclassgc disabilita la garbage collection della classe\n -Xloggc:<file> registra lo stato GC in un file con indicatori orari\n -Xbatch disabilita la compilazione in background\n -Xms<size> imposta la dimensione heap Java iniziale\n -Xmx<size> imposta la dimensione heap Java massima\n -Xss<size> imposta la dimensione dello stack di thread Java\n -Xprof visualizza i dati di profilo della CPU\n -Xfuture abilita i controlli pi\u00F9 limitativi anticipando le impostazioni predefinite future\n -Xrs riduce l''uso di segnali del sistema operativo da Java/VM (vedere la documentazione)\n -Xcheck:jni esegue controlli aggiuntivi per le funzioni JNI\n -Xshare:off non tenta di utilizzare i dati della classe condivisi\n -Xshare:auto utilizza i dati di classe condivisi se possibile (impostazione predefinita)\n -Xshare:on richiede l''uso dei dati di classe condivisi, altrimenti l''esecuzione non riesce.\n -XshowSettings mostra tutte le impostazioni e continua\n -XshowSettings:all\n mostra tutte le impostazioni e continua\n -XshowSettings:vm mostra tutte le impostazioni correlate alla VM e continua\n -XshowSettings:properties\n mostra tutte le impostazioni delle propriet\u00E0 e continua\n -XshowSettings:locale\n mostra tutte le impostazioni correlate alle impostazioni nazionali e continua\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> legge altri moduli,\n indipendentemente dalla dichiarazione del modulo\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> esporta il <package> in altri moduli,\n indipendentemente dalla dichiarazione del modulo\n -Xpatch:<module>=<file>({0}<file>)*\n sostituisce o migliora un modulo con classi e risorse\n in file JAR o directory\n -Xdisable-@files disabilita l''ulteriore espansione del file di argomenti\n\nLe opzioni -X non sono opzioni standard e sono soggette a modifiche senza preavviso.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nLe opzioni riportate di seguito sono specifiche del sistema operativo Mac OS X:\n -XstartOnFirstThread\n Esegue il metodo main() sul primo thread (AppKit).\n -Xdock:name=<nome applicazione>"\n Sostituisce il nome applicazione predefinito visualizzato nel dock\n -Xdock:icon=<percorso file icona>\n Sostituisce l'icona predefinita visualizzata nel dock\n\n
+java.launcher.X.macosx.usage=\nLe opzioni riportate di seguito sono specifiche del sistema operativo Mac OS X:\n -XstartOnFirstThread\n Esegue il metodo main() sul primo thread (AppKit).\n -Xdock:name=<nome applicazione>\n Sostituisce il nome applicazione predefinito visualizzato nel dock\n -Xdock:icon=<percorso file icona>\n Sostituisce l'icona predefinita visualizzata nel dock\n\n
java.launcher.cls.error1=Errore: impossibile trovare o caricare la classe principale {0}
java.launcher.cls.error2=Errore: il metodo principale non \u00E8 {0} nella classe {1}. Definire il metodo principale come:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ja.properties Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
java.launcher.ergo.message2 =\ \u3053\u308C\u306F\u30B5\u30FC\u30D0\u30FC\u30AF\u30E9\u30B9\u306E\u30DE\u30B7\u30F3\u3067\u5B9F\u884C\u3057\u3066\u3044\u308B\u305F\u3081\u3067\u3059\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001\n JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u304A\u3088\u3073ZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\n -mp <module path>\n -modulepath <module path>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u3002\n -upgrademodulepath <module path>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E9\u30F3\u30BF\u30A4\u30E0\u30FB\u30A4\u30E1\u30FC\u30B8\u3067\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7F6E\u63DB\u3059\u308B\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\n -m <modulename>[/<mainclass>]\n \u89E3\u6C7A\u3059\u308B\u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u304A\u3088\u3073\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306B\n \u5B9F\u884C\u3059\u308B\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u306E\u540D\u524D\n -addmods <modulename>[,<modulename>...]\n \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\n -limitmods <modulename>[,<modulename>...]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E6\u30CB\u30D0\u30FC\u30B9\u3092\u5236\u9650\u3059\u308B\n -listmods[:<modulename>[,<modulename>...]]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30EA\u30B9\u30C8\u3057\u3066\u7D42\u4E86\u3059\u308B\n -D<name>=<value>\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n -verbose:[class|gc|jni]\n \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046\n -version \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n -showversion \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3059\u308B\n -? -help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -X \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u95A2\u3059\u308B\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3059\u308B\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -esa | -enablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -dsa | -disablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -agentlib:<libname>[=<options>]\n \u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA<libname>\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002\u4F8B: \
--agentlib:jdwp\n -agentlib:jdwp=help\u3082\u53C2\u7167\n -agentpath:<pathname>[=<options>]\n \u30D5\u30EB\u30D1\u30B9\u540D\u3067\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u30ED\u30FC\u30C9\u3059\u308B\n -javaagent:<jarpath>[=<options>]\n Java\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002java.lang.instrument\u3092\u53C2\u7167\n -splash:<imagepath>\n \u6307\u5B9A\u3057\u305F\u30A4\u30E1\u30FC\u30B8\u3067\u30B9\u30D7\u30E9\u30C3\u30B7\u30E5\u753B\u9762\u3092\u8868\u793A\u3059\u308B\n @<filepath> \u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\n
+java.launcher.opt.footer =\ -cp <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n -classpath <\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u304A\u3088\u3073zip/jar\u30D5\u30A1\u30A4\u30EB\u306E\u30AF\u30E9\u30B9\u691C\u7D22\u30D1\u30B9>\n \u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001\n JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u304A\u3088\u3073ZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\n -mp <\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9>\n -modulepath <\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\u3002\n -upgrademodulepath <\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9>...\n \u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E{0}\u3067\u533A\u5207\u3089\u308C\u305F\u30EA\u30B9\u30C8\u3002\u5404\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306F\n \u30E9\u30F3\u30BF\u30A4\u30E0\u30FB\u30A4\u30E1\u30FC\u30B8\u3067\u30A2\u30C3\u30D7\u30B0\u30EC\u30FC\u30C9\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7F6E\u63DB\u3059\u308B\n \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3067\u3059\n -m <modulename>[/<mainclass>]\n \u89E3\u6C7A\u3059\u308B\u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u304A\u3088\u3073\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408\u306B\n \u5B9F\u884C\u3059\u308B\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9\u306E\u540D\u524D\n -addmods <modulename>[,<modulename>...]\n \u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\n -limitmods <modulename>[,<modulename>...]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30E6\u30CB\u30D0\u30FC\u30B9\u3092\u5236\u9650\u3059\u308B\n -listmods[:<modulename>[,<modulename>...]]\n \u76E3\u8996\u53EF\u80FD\u306A\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30EA\u30B9\u30C8\u3057\u3066\u7D42\u4E86\u3059\u308B\n --dry-run VM\u3092\u4F5C\u6210\u3059\u308B\u304C\u3001\u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u306F\u5B9F\u884C\u3057\u306A\u3044\u3002\n \u3053\u306E--dry-run\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30B7\u30B9\u30C6\u30E0\u69CB\u6210\u306A\u3069\u306E\n \u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u691C\u8A3C\u3059\u308B\u5834\u5408\u306B\u4FBF\u5229\u3067\u3059\u3002\n -D<name>=<value>\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3\u3092\u8A2D\u5B9A\u3059\u308B\n -verbose:[class|gc|jni]\n \u8A73\u7D30\u306A\u51FA\u529B\u3092\u884C\u3046\n -version \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D42\u4E86\u3059\u308B\n -showversion \u88FD\u54C1\u30D0\u30FC\u30B8\u30E7\u30F3\u3092\u51FA\u529B\u3057\u3066\u7D9A\u884C\u3059\u308B\n -? -help \u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u51FA\u529B\u3059\u308B\n -X \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u95A2\u3059\u308B\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3059\u308B\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \
+\u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u6307\u5B9A\u3057\u305F\u7C92\u5EA6\u3067\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -esa | -enablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u6709\u52B9\u306B\u3059\u308B\n -dsa | -disablesystemassertions\n \u30B7\u30B9\u30C6\u30E0\u30FB\u30A2\u30B5\u30FC\u30B7\u30E7\u30F3\u3092\u7121\u52B9\u306B\u3059\u308B\n -agentlib:<libname>[=<options>]\n \u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA<libname>\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002\u4F8B: -agentlib:jdwp\n -agentlib:jdwp=help\u3082\u53C2\u7167\n -agentpath:<pathname>[=<options>]\n \u30D5\u30EB\u30D1\u30B9\u540D\u3067\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u30FB\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u30ED\u30FC\u30C9\u3059\u308B\n -javaagent:<jarpath>[=<options>]\n Java\u30D7\u30ED\u30B0\u30E9\u30DF\u30F3\u30B0\u8A00\u8A9E\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u3092\u30ED\u30FC\u30C9\u3059\u308B\u3002java.lang.instrument\u3092\u53C2\u7167\n -splash:<imagepath>\n \u6307\u5B9A\u3057\u305F\u30A4\u30E1\u30FC\u30B8\u3067\u30B9\u30D7\u30E9\u30C3\u30B7\u30E5\u753B\u9762\u3092\u8868\u793A\u3059\u308B\n @<filepath> \u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308B\n
See \u8A73\u7D30\u306F\u3001http://www.oracle.com/technetwork/java/javase/documentation/index.html\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
# Translators please note do not translate the options themselves
@@ -43,7 +43,7 @@
<module>\u306F<package>\u3092\u4ED6\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3059\u308B\n -Xpatch:<module>=<file>({0}<file>)*\n JAR\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u3067\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n \u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u307E\u305F\u306F\u62E1\u5F35\u3059\u308B\n -Xdisable-@files \u3055\u3089\u306A\u308B\u30D5\u30A1\u30A4\u30EB\u62E1\u5F35\u3092\u7121\u52B9\u306B\u3059\u308B\n\n-X\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u975E\u6A19\u6E96\u306A\u306E\u3067\u3001\u4E88\u544A\u306A\u304F\u5909\u66F4\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\n\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306FMac OS X\u56FA\u6709\u3067\u3059\u3002\n -XstartOnFirstThread\n main()\u30E1\u30BD\u30C3\u30C9\u3092\u6700\u521D(AppKit)\u306E\u30B9\u30EC\u30C3\u30C9\u3067\u5B9F\u884C\u3059\u308B\n -Xdock:name=<application name>"\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u540D\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -Xdock:icon=<path to icon file>\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30A4\u30B3\u30F3\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n\n
+java.launcher.X.macosx.usage=\n\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306FMac OS X\u56FA\u6709\u3067\u3059:\n -XstartOnFirstThread\n main()\u30E1\u30BD\u30C3\u30C9\u3092\u6700\u521D(AppKit)\u306E\u30B9\u30EC\u30C3\u30C9\u3067\u5B9F\u884C\u3059\u308B\n -Xdock:name=<application name>\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u540D\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n -Xdock:icon=<path to icon file>\n Dock\u306B\u8868\u793A\u3055\u308C\u308B\u30C7\u30D5\u30A9\u30EB\u30C8\u30FB\u30A2\u30A4\u30B3\u30F3\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\n\n
java.launcher.cls.error1=\u30A8\u30E9\u30FC: \u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u3089\u306A\u304B\u3063\u305F\u304B\u30ED\u30FC\u30C9\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F
java.launcher.cls.error2=\u30A8\u30E9\u30FC: \u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u304C\u30AF\u30E9\u30B9{1}\u306E{0}\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u6B21\u306E\u3088\u3046\u306B\u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u3092\u5B9A\u7FA9\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ko.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_ko.properties Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -34,8 +34,8 @@
java.launcher.ergo.message2 =\ \uC11C\uBC84\uAE09 \uC2DC\uC2A4\uD15C\uC5D0\uC11C \uC2E4\uD589 \uC911\uC774\uAE30 \uB54C\uBB38\uC785\uB2C8\uB2E4.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uAC80\uC0C9\uD560 {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC,\n JAR \uC544\uCE74\uC774\uBE0C \uBC0F ZIP \uC544\uCE74\uC774\uBE0C \uBAA9\uB85D\uC785\uB2C8\uB2E4.\n -mp <module path>\n -modulepath <module path>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uC785\uB2C8\uB2E4.\n -upgrademodulepath <module path>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uB7F0\uD0C0\uC784 \uC774\uBBF8\uC9C0\uC5D0\uC11C \uC5C5\uADF8\uB808\uC774\uB4DC \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744\n \uB300\uCCB4\uD558\uB294 \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uC785\uB2C8\uB2E4.\n -m <modulename>[/<mainclass>]\n \uBD84\uC11D\uD560 \uCD08\uAE30 \uBAA8\uB4C8 \uBC0F \uBAA8\uB4C8\uC5D0\uC11C \uC9C0\uC815\uB418\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uC2E4\uD589\uD560\n \uAE30\uBCF8 \uD074\uB798\uC2A4\uC758 \uC774\uB984\uC785\uB2C8\uB2E4.\n -addmods <modulename>[,<modulename>...]\n \uCD08\uAE30 \uBAA8\uB4C8 \uC678\uC5D0 \uBD84\uC11D\uD560 \uB8E8\uD2B8 \uBAA8\uB4C8\uC785\uB2C8\uB2E4.\n -limitmods <modulename>[,<modulename>...]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC758 \uBC94\uC704\uB97C \uC81C\uD55C\uD569\uB2C8\uB2E4.\n -listmods[:<modulename>[,<modulename>...]]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744 \uB098\uC5F4\uD558\uACE0 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -D<name>=<value>\n \uC2DC\uC2A4\uD15C \uC18D\uC131\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.\n -verbose:[class|gc|jni]\n \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -version \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD558\uACE0 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -showversion \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD558\uACE0 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -? -help \uC774 \uB3C4\uC6C0\uB9D0 \uBA54\uC2DC\uC9C0\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -X \uBE44\uD45C\uC900 \uC635\uC158\uC5D0 \uB300\uD55C \uB3C4\uC6C0\uB9D0\uC744 \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -esa | -enablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -dsa | -disablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -agentlib:<libname>[=<options>]\n \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC <libname>\uC744 \uB85C\uB4DC\uD569\uB2C8\uB2E4(\uC608: -agentlib:jdwp)\n -agentlib:jdwp=help\uB3C4 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -agentpath:<pathname>[=<options>]\n \uC804\uCCB4 \uACBD\uB85C \uC774\uB984\uC744 \uC0AC\uC6A9\uD574\uC11C \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\n -javaagent:<jarpath>[=<options>]\n \
- Java \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4 \uC5D0\uC774\uC804\uD2B8\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4. java.lang.instrument\uB97C \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -splash:<imagepath>\n \uC9C0\uC815\uB41C \uC774\uBBF8\uC9C0\uB85C \uC2A4\uD50C\uB798\uC2DC \uD654\uBA74\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n @<filepath> \uC9C0\uC815\uB41C \uD30C\uC77C\uC5D0\uC11C \uC635\uC158\uC744 \uC77D\uC2B5\uB2C8\uB2E4.\n
+java.launcher.opt.footer =\ -cp <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n -classpath <\uB514\uB809\uD1A0\uB9AC \uBC0F zip/jar \uD30C\uC77C\uC758 \uD074\uB798\uC2A4 \uAC80\uC0C9 \uACBD\uB85C>\n \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uAC80\uC0C9\uD560 {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC,\n JAR \uC544\uCE74\uC774\uBE0C \uBC0F ZIP \uC544\uCE74\uC774\uBE0C \uBAA9\uB85D\uC785\uB2C8\uB2E4.\n -mp <\uBAA8\uB4C8 \uACBD\uB85C>\n -modulepath <\uBAA8\uB4C8 \uACBD\uB85C>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uC785\uB2C8\uB2E4.\n -upgrademodulepath <\uBAA8\uB4C8 \uACBD\uB85C>...\n {0}(\uC73C)\uB85C \uAD6C\uBD84\uB41C \uB514\uB809\uD1A0\uB9AC \uBAA9\uB85D\uC785\uB2C8\uB2E4. \uAC01 \uB514\uB809\uD1A0\uB9AC\uB294\n \uBAA8\uB4C8\uC758 \uB514\uB809\uD1A0\uB9AC\uB85C, \uB7F0\uD0C0\uC784 \uC774\uBBF8\uC9C0\uC5D0\uC11C \uC5C5\uADF8\uB808\uC774\uB4DC\n \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744 \uB300\uCCB4\uD569\uB2C8\uB2E4.\n -m <\uBAA8\uB4C8 \uC774\uB984>[/<\uAE30\uBCF8 \uD074\uB798\uC2A4>]\n \uBD84\uC11D\uD560 \uCD08\uAE30 \uBAA8\uB4C8 \uBC0F \uBAA8\uB4C8\uC5D0\uC11C \uC9C0\uC815\uB418\uC9C0 \uC54A\uC740 \uACBD\uC6B0 \uC2E4\uD589\uD560\n \uAE30\uBCF8 \uD074\uB798\uC2A4\uC758 \uC774\uB984\uC785\uB2C8\uB2E4.\n -addmods <\uBAA8\uB4C8 \uC774\uB984>[,<\uBAA8\uB4C8 \uC774\uB984>...]\n \uCD08\uAE30 \uBAA8\uB4C8 \uC678\uC5D0 \uBD84\uC11D\uD560 \uB8E8\uD2B8 \uBAA8\uB4C8\uC785\uB2C8\uB2E4.\n -limitmods <\uBAA8\uB4C8 \uC774\uB984>[,<\uBAA8\uB4C8 \uC774\uB984>...]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC758 \uBC94\uC704\uB97C \uC81C\uD55C\uD569\uB2C8\uB2E4.\n -listmods[:<\uBAA8\uB4C8 \uC774\uB984>[,<\uBAA8\uB4C8 \uC774\uB984>...]]\n \uAD00\uCC30 \uAC00\uB2A5\uD55C \uBAA8\uB4C8\uC744 \uB098\uC5F4\uD55C \uD6C4 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n --dry-run VM\uC744 \uC0DD\uC131\uD558\uC9C0\uB9CC \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n \uC774 --dry-run \uC635\uC158\uC740 \uBAA8\uB4C8 \uC2DC\uC2A4\uD15C \uAD6C\uC131\uACFC \uAC19\uC740 \uBA85\uB839\uD589\n \uC635\uC158\uC744 \uAC80\uC99D\uD558\uB294 \uB370 \uC720\uC6A9\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n -D<\uC774\uB984>=<\uAC12>\n \uC2DC\uC2A4\uD15C \uC18D\uC131\uC744 \uC124\uC815\uD569\uB2C8\uB2E4.\n -verbose:[class|gc|jni]\n \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -version \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uC885\uB8CC\uD569\uB2C8\uB2E4.\n -showversion \uC81C\uD488 \uBC84\uC804\uC744 \uC778\uC1C4\uD55C \uD6C4 \uACC4\uC18D\uD569\uB2C8\uB2E4.\n -? -help \uC774 \uB3C4\uC6C0\uB9D0 \uBA54\uC2DC\uC9C0\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -X \uBE44\uD45C\uC900 \uC635\uC158\uC5D0 \uB300\uD55C \uB3C4\uC6C0\uB9D0\uC744 \uC778\uC1C4\uD569\uB2C8\uB2E4.\n -ea[:<\uD328\uD0A4\uC9C0 \uC774\uB984>...|:<\uD074\uB798\uC2A4 \uC774\uB984>]\n -enableassertions[:<\uD328\uD0A4\uC9C0 \uC774\uB984>...|:<\uD074\uB798\uC2A4 \uC774\uB984>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -da[:<\uD328\uD0A4\uC9C0 \uC774\uB984>...|:<\uD074\uB798\uC2A4 \uC774\uB984>]\n -disableassertions[:<\uD328\uD0A4\uC9C0 \uC774\uB984>...|:<\uD074\uB798\uC2A4 \uC774\uB984>]\n \uC138\uBD84\uC131\uC774 \uC9C0\uC815\uB41C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -esa \
+| -enablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -dsa | -disablesystemassertions\n \uC2DC\uC2A4\uD15C \uAC80\uC99D\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n -agentlib:<\uB77C\uC774\uBE0C\uB7EC\uB9AC \uC774\uB984>[=<\uC635\uC158>]\n \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC <\uB77C\uC774\uBE0C\uB7EC\uB9AC \uC774\uB984>\uC744 \uB85C\uB4DC\uD569\uB2C8\uB2E4(\uC608: -agentlib:jdwp).\n -agentlib:jdwp=help\uB3C4 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -agentpath:<\uACBD\uB85C \uC774\uB984>[=<\uC635\uC158>]\n \uC804\uCCB4 \uACBD\uB85C \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uC5EC \uACE0\uC720 \uC5D0\uC774\uC804\uD2B8 \uB77C\uC774\uBE0C\uB7EC\uB9AC\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4.\n -javaagent:<jar \uACBD\uB85C>[=<\uC635\uC158>]\n Java \uD504\uB85C\uADF8\uB798\uBC0D \uC5B8\uC5B4 \uC5D0\uC774\uC804\uD2B8\uB97C \uB85C\uB4DC\uD569\uB2C8\uB2E4. java.lang.instrument\uB97C \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.\n -splash:<\uC774\uBBF8\uC9C0 \uACBD\uB85C>\n \uC774\uBBF8\uC9C0\uAC00 \uC9C0\uC815\uB41C \uC2A4\uD50C\uB798\uC2DC \uD654\uBA74\uC744 \uD45C\uC2DC\uD569\uB2C8\uB2E4.\n @<\uD30C\uC77C \uACBD\uB85C> \uC9C0\uC815\uB41C \uD30C\uC77C\uC5D0\uC11C \uC635\uC158\uC744 \uC77D\uC2B5\uB2C8\uB2E4.\n
See \uC790\uC138\uD55C \uB0B4\uC6A9\uC740 http://www.oracle.com/technetwork/java/javase/documentation/index.html\uC744 \uCC38\uC870\uD558\uC2ED\uC2DC\uC624.
# Translators please note do not translate the options themselves
@@ -43,7 +43,7 @@
\uBB34\uD6A8\uD654\uD558\uAC70\uB098 \uC778\uC218\uD654\uD569\uB2C8\uB2E4.\n -Xdisable-@files \uCD94\uAC00 \uC778\uC218 \uD30C\uC77C \uD655\uC7A5\uC744 \uC0AC\uC6A9 \uC548\uD568\uC73C\uB85C \uC124\uC815\uD569\uB2C8\uB2E4.\n\n-X \uC635\uC158\uC740 \uBE44\uD45C\uC900 \uC635\uC158\uC774\uBBC0\uB85C \uD1B5\uC9C0 \uC5C6\uC774 \uBCC0\uACBD\uB420 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\n\uB2E4\uC74C\uC740 Mac OS X\uC5D0 \uD2B9\uC815\uB41C \uC635\uC158\uC785\uB2C8\uB2E4.\n -XstartOnFirstThread\n \uCCAB\uBC88\uC9F8 (AppKit) \uC2A4\uB808\uB4DC\uC5D0 main() \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xdock:name=<application name>"\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC774\uB984\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n -Xdock:icon=<path to icon file>\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n\n
+java.launcher.X.macosx.usage=\n\uB2E4\uC74C\uC740 Mac OS X\uC5D0 \uD2B9\uC815\uB41C \uC635\uC158\uC785\uB2C8\uB2E4.\n -XstartOnFirstThread\n \uCCAB\uBC88\uC9F8 (AppKit) \uC2A4\uB808\uB4DC\uC5D0 main() \uBA54\uC18C\uB4DC\uB97C \uC2E4\uD589\uD569\uB2C8\uB2E4.\n -Xdock:name=<application name>\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC774\uB984\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n -Xdock:icon=<path to icon file>\n \uACE0\uC815\uC73C\uB85C \uD45C\uC2DC\uB41C \uAE30\uBCF8 \uC544\uC774\uCF58\uC744 \uBB34\uD6A8\uD654\uD569\uB2C8\uB2E4.\n\n
java.launcher.cls.error1=\uC624\uB958: \uAE30\uBCF8 \uD074\uB798\uC2A4 {0}\uC744(\uB97C) \uCC3E\uAC70\uB098 \uB85C\uB4DC\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
java.launcher.cls.error2=\uC624\uB958: {1} \uD074\uB798\uC2A4\uC5D0\uC11C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uAC00 {0}\uC774(\uAC00) \uC544\uB2D9\uB2C8\uB2E4. \uB2E4\uC74C \uD615\uC2DD\uC73C\uB85C \uAE30\uBCF8 \uBA54\uC18C\uB4DC\uB97C \uC815\uC758\uD558\uC2ED\uC2DC\uC624.\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_pt_BR.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_pt_BR.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ porque a execu\u00E7\u00E3o est\u00E1 sendo feita em uma m\u00E1quina de classe de servidor.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n -classpath <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n Uma lista separada por {0} de diret\u00F3rios, arquivos compactados JAR\n e arquivos compactados ZIP para procurar arquivos de classe.\n -mp <caminho do m\u00F3dulo>\n -modulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos.\n -upgrademodulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos que substituem m\u00F3dulos\n pass\u00EDveis de upgrade na imagem de runtime\n -m <modulename>[/<mainclass>]\n o m\u00F3dulo inicial ou principal a ser resolvido e o nome da classe principal\n a ser executada se n\u00E3o for especificada pelo m\u00F3dulo\n -addmods <modulename>[,<modulename>...]\n m\u00F3dulos raiz a serem resolvidos al\u00E9m do m\u00F3dulo inicial\n -limitmods <modulename>[,<modulename>...]\n limita o universo de m\u00F3dulos observ\u00E1veis\n -listmods[:<modulename>[,<modulename>...]]\n lista os m\u00F3dulos observ\u00E1veis e sai\n -D<name>=<value>\n define uma propriedade de sistema\n -verbose:[class|gc|jni]\n ativa sa\u00EDda detalhada\n -version imprime a vers\u00E3o do produto e sai\n -showversion imprime a vers\u00E3o do produto e continua\n -? -help imprime esta mensagem de ajuda\n -X imprime a ajuda em op\u00E7\u00F5es n\u00E3o padronizadas\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n ativa asser\u00E7\u00F5es com granularidade especificada\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n desativa asser\u00E7\u00F5es com granularidade especificada\n -esa | -enablesystemassertions\n ativa asser\u00E7\u00F5es do sistema\n -dsa | -disablesystemassertions\n desativa asser\u00E7\u00F5es do sistema\n -agentlib:<libname>[=<options>]\n carrega a biblioteca de agente nativo <libname>, por exemplo, -agentlib:jdwp\n consulte tamb\u00E9m -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n carrega a biblioteca de agente nativo por nome do caminho completo\n -javaagent:<jarpath>[=<options>]\n carrega o agente de linguagem de programa\u00E7\u00E3o Java; consulte java.lang.instrument\n -splash:<imagepath>\n mostra a tela inicial com a imagem especificada\n @<filepath> op\u00E7\u00F5es de leitura do arquivo especificado\n
+java.launcher.opt.footer =\ -cp <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n -classpath <caminho de pesquisa de classe de diret\u00F3rios e arquivos zip/jar>\n Uma lista separada por {0} de diret\u00F3rios, arquivos compactados JAR\n e arquivos compactados ZIP para procurar arquivos de classe.\n -mp <caminho do m\u00F3dulo>\n -modulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos.\n -upgrademodulepath <caminho do m\u00F3dulo>...\n Uma lista separada por {0} de diret\u00F3rios, cada um\n sendo um diret\u00F3rio de m\u00F3dulos que substituem m\u00F3dulos\n pass\u00EDveis de upgrade na imagem de runtime\n -m <modulename>[/<mainclass>]\n o m\u00F3dulo inicial a ser resolvido e o nome da classe principal\n a ser executada se n\u00E3o for especificada pelo m\u00F3dulo\n -addmods <modulename>[,<modulename>...]\n m\u00F3dulos raiz a serem resolvidos al\u00E9m do m\u00F3dulo inicial\n -limitmods <modulename>[,<modulename>...]\n limita o universo de m\u00F3dulos observ\u00E1veis\n -listmods[:<modulename>[,<modulename>...]]\n lista os m\u00F3dulos observ\u00E1veis e sai\n --dry-run cria a VM, mas n\u00E3o executa o m\u00E9todo principal.\n Esta op\u00E7\u00E3o -dry-run pode ser \u00FAtil para validar as\n op\u00E7\u00F5es de linha de comando como a configura\u00E7\u00E3o do sistema do m\u00F3dulo\n -D<name>=<value>\n define uma propriedade de sistema\n -verbose:[class|gc|jni]\n ativa sa\u00EDda detalhada\n -version imprime a vers\u00E3o do produto e sai\n -showversion imprime a vers\u00E3o do produto e continua\n -? -help imprime esta mensagem de ajuda\n -X imprime a ajuda em op\u00E7\u00F5es n\u00E3o padronizadas\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n ativa asser\u00E7\u00F5es com granularidade especificada\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n desativa asser\u00E7\u00F5es com granularidade especificada\n -esa | -enablesystemassertions\n ativa asser\u00E7\u00F5es do sistema\n -dsa | -disablesystemassertions\n desativa asser\u00E7\u00F5es do sistema\n -agentlib:<libname>[=<options>]\n carrega a biblioteca de agente nativo <libname>, por exemplo, -agentlib:jdwp\n consulte tamb\u00E9m -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n carrega a biblioteca de agente nativo por nome do caminho completo\n -javaagent:<jarpath>[=<options>]\n carrega o agente de linguagem de programa\u00E7\u00E3o Java; consulte java.lang.instrument\n -splash:<imagepath>\n mostra a tela inicial com a imagem especificada\n @<filepath> op\u00E7\u00F5es de leitura do arquivo especificado\n
See http://www.oracle.com/technetwork/java/javase/documentation/index.html para obter mais detalhes.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed execu\u00E7\u00E3o no modo misto (padr\u00E3o)\n -Xint execu\u00E7\u00E3o somente no modo interpretado\n -Xbootclasspath:<diret\u00F3rios e arquivos zip/jar separados por {0}>\n anexos ao final do caminho de classe de inicializa\u00E7\u00E3o\n -Xdiag mostra mensagens de diagn\u00F3stico adicionais\n -Xdiag:resolver mostra mensagens de diagn\u00F3stico do resolvedor\n -Xnoclassgc desativa a coleta de lixo da classe\n -Xloggc:<arquivo> registra o status do GC status em um arquivo com marca\u00E7\u00F5es de data e hor\u00E1rio\n -Xbatch desativa a compila\u00E7\u00E3o em segundo plano\n -Xms<tamanho> define o tamanho inicial do heap Java\n -Xmx<tamanho> define o tamanho m\u00E1ximo do heap Java\n -Xss<tamanho> define o tamanho da pilha de threads java\n -Xprof produz dados de perfil da cpu\n -Xfuture ativa verifica\u00E7\u00F5es de n\u00EDvel m\u00E1ximo de exig\u00EAncia, prevendo o valor padr\u00E3o futuro\n -Xrs reduz o uso de sinais do SO pelo(a) Java/VM (consulte a documenta\u00E7\u00E3o)\n -Xcheck:jni executa verifica\u00E7\u00F5es adicionais de fun\u00E7\u00F5es da JNI\n -Xshare:off n\u00E3o tenta usar dados da classe compartilhada\n -Xshare:auto se poss\u00EDvel, usa dados da classe compartilhada (padr\u00E3o)\n -Xshare:on requer o uso de dados da classe compartilhada, caso contr\u00E1rio haver\u00E1 falha.\n -XshowSettings mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:all\n mostra todas as defini\u00E7\u00F5es e continua\n -XshowSettings:vm mostra todas as defini\u00E7\u00F5es relacionadas \u00E0 vm e continua\n -XshowSettings:properties\n mostra todas as defini\u00E7\u00F5es da propriedade e continua\n -XshowSettings:locale\n mostra todas as defini\u00E7\u00F5es relativas \u00E0s configura\u00E7\u00F5es regionais e continua\n -XaddReads:<module>=<other-module>(,<other-module>)*\n <module> l\u00EA outros m\u00F3dulos,\n n\u00E3o importando a declara\u00E7\u00E3o do m\u00F3dulo\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n <module> exporta <package> para outros m\u00F3dulos,\n n\u00E3o importando a declara\u00E7\u00E3o do m\u00F3dulo\n -Xpatch:<module>=<file>({0}<file>)*\n Substitui ou aumenta um m\u00F3dulo com classes e recursos\n em arquivos JAR ou diret\u00F3rios\n -Xdisable-@files desativa uma expans\u00E3o adicional de arquivo de argumentos\n\nAs op\u00E7\u00F5es -X n\u00E3o s\u00E3o padronizadas e est\u00E3o sujeitas a altera\u00E7\u00F5es sem aviso.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome do aplicativo>"\n substitui o nome do aplicativo padr\u00E3o exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n
+java.launcher.X.macosx.usage=\nAs op\u00E7\u00F5es a seguir s\u00E3o espec\u00EDficas para o Mac OS X:\n -XstartOnFirstThread\n executa o m\u00E9todo main() no primeiro thread (AppKit)\n -Xdock:name=<nome do aplicativo>\n substitui o nome do aplicativo padr\u00E3o exibido no encaixe\n -Xdock:icon=<caminho para o arquivo do \u00EDcone>\n substitui o \u00EDcone exibido no encaixe\n\n
java.launcher.cls.error1=Erro: N\u00E3o foi poss\u00EDvel localizar nem carregar a classe principal {0}
java.launcher.cls.error2=Erro: o m\u00E9todo main n\u00E3o \u00E9 {0} na classe {1}; defina o m\u00E9todo main como:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_sv.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_sv.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ eftersom du k\u00F6r en serverklassmaskin.\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <klass\u00F6kv\u00E4g till kataloger och zip-/jar-filer>\n -classpath <klass\u00F6kv\u00E4g till kataloger och zip-/jar-filer>\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, JAR-arkiv\n och ZIP-arkiv att s\u00F6ka efter klassfiler i.\n -mp <moduls\u00F6kv\u00E4g>\n -modulepath <moduls\u00F6kv\u00E4g>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje\n katalog \u00E4r en katalog med moduler.\n -upgrademodulepath <moduls\u00F6kv\u00E4g>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje\n katalog \u00E4r en katalog med moduler som ers\u00E4tter\n uppgraderingsbara moduler i exekveringsavbilden\n -m <modulnamn>[/<huvudklass>]\n den ursprungliga modulen att k\u00F6ra, och namnet p\u00E5\n huvudklassen att k\u00F6ra om den inte anges av modulen\n -addmods <modulnamn>[,<modulnamn>...]\n rotmoduler att l\u00F6sa f\u00F6rutom den ursprungliga modulen\n -limitmods <modulnamn>[,<modulnamn>...]\n begr\u00E4nsar universumet med observerbara moduler\n -listmods[:<modulnamn>[,<modulnamn>...]]\n lista observerbara moduler och avsluta\n -D<namn>=<v\u00E4rde>\n ange en systemegenskap\n -verbose:[class|gc|jni]\n aktivera utf\u00F6rliga utdata\n -version skriv ut produktversion och avsluta\n -showversion skriv ut produktversion och forts\u00E4tt\n -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n -X skriv ut hj\u00E4lp f\u00F6r icke-standardalternativ\n -ea[:<paketnamn>...|:<klassnamn>]\n -enableassertions[:<paketnamn>...|:<klassnamn>]\n aktivera verifieringar med den angivna detaljgraden\n -da[:<paketnamn>...|:<klassnamn>]\n -disableassertions[:<paketnamn>...|:<klassnamn>]\n avaktivera verifieringar med den angivna detaljgraden\n -esa | -enablesystemassertions\n aktivera systemverifieringar\n -dsa | -disablesystemassertions\n avaktivera systemverifieringar\n -agentlib:<biblioteksnamn>[=<alternativnamn>]\n ladda det ursprungliga agentbiblioteket <biblioteksnamn>, exempel: -agentlib:jdwp\n se \u00E4ven -agentlib:jdwp=help\n -agentpath:<s\u00F6kv\u00E4gsnamn>[=<alternativ>]\n ladda det ursprungliga agentbiblioteket med fullst\u00E4ndigt s\u00F6kv\u00E4gsnamn\n -javaagent:<jar-s\u00F6kv\u00E4g>[=<alternativ>]\n ladda agenten f\u00F6r programmeringsspr\u00E5ket Java, se java.lang.instrument\n -splash:<bilds\u00F6kv\u00E4g>\n visa v\u00E4lkomstsk\u00E4rmen med den angivna bilden\n @<fils\u00F6kv\u00E4g> l\u00E4s alternativ fr\u00E5n den angivna filen\n
+java.launcher.opt.footer =\ -cp <klass\u00F6kv\u00E4g till kataloger och zip-/jar-filer>\n -classpath <klass\u00F6kv\u00E4g till kataloger och zip-/jar-filer>\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, JAR-arkiv och\n ZIP-arkiv att s\u00F6ka efter klassfiler i.\n -mp <moduls\u00F6kv\u00E4g>\n -modulepath <moduls\u00F6kv\u00E4g>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje katalog\n \u00E4r en katalog med moduler.\n -upgrademodulepath <moduls\u00F6kv\u00E4g>...\n En {0}-avgr\u00E4nsad lista \u00F6ver kataloger, d\u00E4r varje katalog\n \u00E4r en katalog med moduler som ers\u00E4tter uppgraderingsbara\n moduler i exekveringsavbilden \n -m <modulnamn>[/<huvudklass>]\n den ursprungliga modulen att l\u00F6sa och namnet p\u00E5 huvudklassen\n att k\u00F6ra om den inte anges av modulen\n -addmods <modulnamn>[,<modulnamn>...]\n rotmoduler att l\u00F6sa f\u00F6rutom den ursprungliga modulen\n -limitmods <modulnamn>[,<modulnamn>...]\n begr\u00E4nsa universumet med observerbara moduler\n -listmods[:<modulnamn>[,<modulnamn>...]]\n lista de observerbara modulerna och avsluta\n --dry-run skapa VM:en men k\u00F6r inte huvudmetoden.\n Det h\u00E4r alternativet kan vara anv\u00E4ndbart f\u00F6r att validera\n kommandoradsalternativen, som modulsystemkonfigurationen.\n -D<name>=<v\u00E4rde>\n ange en systemvariabel\n -verbose:[class|gc|jni]\n aktivera utf\u00F6rliga utdata\n -version skriv ut produktversion och avsluta\n -showversion skriv ut produktversion och forts\u00E4tt\n -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n -X skriv ut hj\u00E4lp f\u00F6r icke-standardalternativ\n -ea[:<paketnamn>...|:<klassnamn>]\n -enableassertions[:<paketnamn>...|:<klassnamn>]\n aktivera verifieringar med den angivna detaljgraden\n -da[:<paketnamn>...|:<klassnamn>]\n -disableassertions[:<paketnamn>...|:<klassnamn>]\n avaktivera verifieringar med den angivna detaljgraden\n -esa | -enablesystemassertions\n aktivera systemverifieringar\n -dsa | -disablesystemassertions\n avaktivera systemverifieringar\n -agentlib:<biblioteksnamn>[=<alternativ>]\n ladda det ursprungliga agentbiblioteket <biblioteksnamn>, exempel: -agentlib:jdwp\n se \u00E4ven -agentlib:jdwp=help\n -agentpath:<s\u00F6kv\u00E4gsnamn>[=<alternativ>]\n ladda det ursprungliga agentbiblioteket med fullst\u00E4ndigt s\u00F6kv\u00E4gsnamn\n -javaagent:<jar-s\u00F6kv\u00E4g>[=<alternativ>]\n ladda agenten f\u00F6r programmeringsspr\u00E5ket Java, se java.lang.instrument\n -splash:<bilds\u00F6kv\u00E4g>\n visa v\u00E4lkomstsk\u00E4rmen med den angivna bilden\n @<fils\u00F6kv\u00E4g> l\u00E4s alternativ fr\u00E5n den angivna filen\n
See Se http://www.oracle.com/technetwork/java/javase/documentation/index.html f\u00F6r mer information.
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed exekvering i blandat l\u00E4ge (standard)\n -Xint endast exekvering i tolkat l\u00E4ge\n -Xbootclasspath/a:<kataloger och zip-/jar-filer avgr\u00E4nsade med {0}>\n l\u00E4gg till sist i klass\u00F6kv\u00E4gen f\u00F6r programladdning\n -Xdiag visa fler diagnostiska meddelanden\n -Xdiag:resolver visa diagnostiska meddelanden f\u00F6r matchning\n -Xnoclassgc avaktivera klasskr\u00E4pinsamling\n -Xloggc:<fil> logga GC-status till en fil med tidsst\u00E4mplar\n -Xbatch avaktivera bakgrundskompilering\n -Xms<storlek> ange ursprunglig storlek f\u00F6r Java-heap-utrymmet\n -Xmx<storlek> ange st\u00F6rsta storlek f\u00F6r Java-heap-utrymmet\n -Xss<storlek> ange storlek f\u00F6r java-tr\u00E5dsstacken\n -Xprof utdata f\u00F6r processorprofilering\n -Xfuture aktivera str\u00E4ngaste kontroller, f\u00F6rv\u00E4ntad framtida standard\n -Xrs minska operativsystemssignalanv\u00E4ndning f\u00F6r Java/VM (se dokumentationen)\n -Xcheck:jni utf\u00F6r fler kontroller f\u00F6r JNI-funktioner\n -Xshare:off f\u00F6rs\u00F6k inte anv\u00E4nda delade klassdata\n -Xshare:auto anv\u00E4nd delade klassdata om m\u00F6jligt (standard)\n -Xshare:on kr\u00E4v anv\u00E4ndning av delade klassdata, utf\u00F6r inte i annat fall.\n -XshowSettings visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:all\n visa alla inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:vm visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n -XshowSettings:properties\n visa alla egenskapsinst\u00E4llningar och forts\u00E4tt\n -XshowSettings:locale\n visa alla spr\u00E5kkonventionsrelaterade inst\u00E4llningar och forts\u00E4tt\n -XaddReads:<modul>=<annan modul>(,<annan modul>)*\n <modul> l\u00E4ser andra moduler,\n oavsett moduldeklarationen\n -XaddExports:<modul>/<paket>=<annan modul>(,<annan modul>)*\n <modul> exporterar <packet> till andra moduler,\n oavsett moduldeklarationen\n -Xpatch:<modul>=<fil>({0}<fil>)*\n \u00C5sidos\u00E4tt eller ut\u00F6ka en modul med klasser och resurser\n i JAR-filer eller kataloger\n -Xdisable-@files avaktivera framtida argumentfilsut\u00F6kning\n\n-X-alternativen \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande.\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\nF\u00F6ljande alternativ \u00E4r specifika f\u00F6r Mac OS X:\n -XstartOnFirstThread\n k\u00F6r huvudmetoden() p\u00E5 den f\u00F6rsta (AppKit) tr\u00E5den\n -Xdock:name=<application name>"\n \u00E5sidosatt standardapplikationsnamn visas i docka\n -Xdock:icon=<path to icon file>\n \u00E5sidosatt standardikon visas i docka\n\n
+java.launcher.X.macosx.usage=\nF\u00F6ljande alternativ \u00E4r Mac OS X-specifika:\n -XstartOnFirstThread\n k\u00F6r main()-metoden p\u00E5 den f\u00F6rsta (AppKit)-tr\u00E5den\n -Xdock:name=<applikationsnamn>\n \u00E5sidos\u00E4tt det standardapplikationsnamn som visas i dockan\n -Xdock:icon=<s\u00F6kv\u00E4g till ikonfil>\n \u00E5sidos\u00E4tt den standardikon som visas i dockan\n\n
java.launcher.cls.error1=Fel: Kan inte hitta eller kan inte ladda huvudklassen {0}
java.launcher.cls.error2=Fel: Huvudmetoden \u00E4r inte {0} i klassen {1}, definiera huvudmetoden som:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_CN.properties Mon Aug 01 10:06:09 2016 -0700
@@ -34,14 +34,15 @@
java.launcher.ergo.message2 =\ \u56E0\u4E3A\u60A8\u662F\u5728\u670D\u52A1\u5668\u7C7B\u8BA1\u7B97\u673A\u4E0A\u8FD0\u884C\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n -classpath <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n \u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u76EE\u5F55, JAR \u6863\u6848\n \u548C ZIP \u6863\u6848\u7684\u5217\u8868, \u4F7F\u7528 {0} \u5206\u9694\u3002\n -mp <\u6A21\u5757\u8DEF\u5F84>\n -modulepath <\u6A21\u5757\u8DEF\u5F84>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55\u3002\n -upgrademodulepath <\u6A21\u5757\u8DEF\u5F84>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55, \u8FD9\u4E9B\u6A21\u5757\n \u7528\u4E8E\u66FF\u6362\u8FD0\u884C\u65F6\u6620\u50CF\u4E2D\u7684\u53EF\u5347\u7EA7\u6A21\u5757\n -m <\u6A21\u5757\u540D\u79F0>[/<\u4E3B\u7C7B>]\n \u8981\u89E3\u6790\u7684\u521D\u59CB\u6A21\u5757, \u4EE5\u53CA\u5728\u672A\u7531\u6A21\u5757\u6307\u5B9A\u65F6\n \u8981\u6267\u884C\u7684\u4E3B\u7C7B\u540D\u79F0\n -addmods <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\n -limitmods <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n -listmods[:<\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]]\n \u5217\u51FA\u53EF\u89C2\u5BDF\u6A21\u5757\u5E76\u9000\u51FA\n -D<\u540D\u79F0>=<\u503C>\n \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n -verbose:[class|gc|jni]\n \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n -version \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u9000\u51FA\n -showversion \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u7EE7\u7EED\n -? -help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F\n -X \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\n -ea[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n -enableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u542F\u7528\u65AD\u8A00\n -da[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7A0B\u5E8F\u5305\u540D\u79F0>]\n -disableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n \u7981\u7528\u5177\u6709\u6307\u5B9A\u7C92\u5EA6\u7684\u65AD\u8A00\n -esa | -enablesystemassertions\n \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n -dsa | -disablesystemassertions\n \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n -agentlib:<\u5E93\u540D>[=<\u9009\u9879>]\n \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <\u5E93\u540D>, \u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help\n -agentpath:<\u8DEF\u5F84\u540D>[=<\u9009\u9879>]\n \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n -javaagent:<jar \u8DEF\u5F84>[=<\u9009\u9879>]\n \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n -splash:<\u56FE\u50CF\u8DEF\u5F84>\n \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n @<\u6587\u4EF6\u8DEF\u5F84> \u4ECE\u6307\u5B9A\u6587\u4EF6\u4E2D\u8BFB\u53D6\u9009\u9879\n
+java.launcher.opt.footer =\ -cp <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n -classpath <\u76EE\u5F55\u548C zip/jar \u6587\u4EF6\u7684\u7C7B\u641C\u7D22\u8DEF\u5F84>\n \u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u76EE\u5F55, JAR \u6863\u6848\n \u548C ZIP \u6863\u6848\u7684\u5217\u8868, \u4F7F\u7528 {0} \u5206\u9694\u3002\n -mp <\u6A21\u5757\u8DEF\u5F84>\n -modulepath <\u6A21\u5757\u8DEF\u5F84>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55\u3002\n -upgrademodulepath <\u6A21\u5757\u8DEF\u5F84>...\n \u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u5217\u8868, \u6BCF\u4E2A\u76EE\u5F55\n \u90FD\u662F\u4E00\u4E2A\u5305\u542B\u6A21\u5757\u7684\u76EE\u5F55, \u8FD9\u4E9B\u6A21\u5757\n \u7528\u4E8E\u66FF\u6362\u8FD0\u884C\u65F6\u6620\u50CF\u4E2D\u7684\u53EF\u5347\u7EA7\u6A21\u5757\n -m <\u6A21\u5757\u540D\u79F0>[/<\u4E3B\u7C7B>]\n \u8981\u89E3\u6790\u7684\u521D\u59CB\u6A21\u5757, \u4EE5\u53CA\u5728\u672A\u7531\u6A21\u5757\u6307\u5B9A\u65F6\n \u8981\u6267\u884C\u7684\u4E3B\u7C7B\u540D\u79F0\n -addmods <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n \u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\n -limitmods <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n \u9650\u5236\u53EF\u89C2\u5BDF\u6A21\u5757\u7684\u9886\u57DF\n -listmods[:<\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]]\n \u5217\u51FA\u53EF\u89C2\u5BDF\u6A21\u5757\u5E76\u9000\u51FA\n --dry-run \u521B\u5EFA VM \u4F46\u4E0D\u6267\u884C\u4E3B\u65B9\u6CD5\u3002\n \u6B64 --dry-run \u9009\u9879\u5BF9\u4E8E\u9A8C\u8BC1\u8BF8\u5982\n \u6A21\u5757\u7CFB\u7EDF\u914D\u7F6E\u8FD9\u6837\u7684\u547D\u4EE4\u884C\u9009\u9879\u53EF\u80FD\u662F\u975E\u5E38\u6709\u7528\u7684\u3002\n -D<\u540D\u79F0>=<\u503C>\n \u8BBE\u7F6E\u7CFB\u7EDF\u5C5E\u6027\n -verbose:[class|gc|jni]\n \u542F\u7528\u8BE6\u7EC6\u8F93\u51FA\n -version \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u9000\u51FA\n -showversion \u8F93\u51FA\u4EA7\u54C1\u7248\u672C\u5E76\u7EE7\u7EED\n -? -help \u8F93\u51FA\u6B64\u5E2E\u52A9\u6D88\u606F\n -X \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\n -ea[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n -enableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n \u6309\u6307\u5B9A\u7684\u7C92\u5EA6\u542F\u7528\u65AD\u8A00\n -da[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7A0B\u5E8F\u5305\u540D\u79F0>]\n -disableassertions[:<\u7A0B\u5E8F\u5305\u540D\u79F0>...|:<\u7C7B\u540D>]\n \u7981\u7528\u5177\u6709\u6307\u5B9A\u7C92\u5EA6\u7684\u65AD\u8A00\n -esa | -enablesystemassertions\n \u542F\u7528\u7CFB\u7EDF\u65AD\u8A00\n -dsa | -disablesystemassertions\n \u7981\u7528\u7CFB\u7EDF\u65AD\u8A00\n -agentlib:<\u5E93\u540D>[=<\u9009\u9879>]\n \u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93 <\u5E93\u540D>, \u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8BF7\u53C2\u9605 -agentlib:jdwp=help\n -agentpath:<\u8DEF\u5F84\u540D>[=<\u9009\u9879>]\n \u6309\u5B8C\u6574\u8DEF\u5F84\u540D\u52A0\u8F7D\u672C\u673A\u4EE3\u7406\u5E93\n -javaagent:<jar \u8DEF\u5F84>[=<\u9009\u9879>]\n \u52A0\u8F7D Java \u7F16\u7A0B\u8BED\u8A00\u4EE3\u7406, \u8BF7\u53C2\u9605 java.lang.instrument\n -splash:<\u56FE\u50CF\u8DEF\u5F84>\n \u4F7F\u7528\u6307\u5B9A\u7684\u56FE\u50CF\u663E\u793A\u542F\u52A8\u5C4F\u5E55\n @<\u6587\u4EF6\u8DEF\u5F84> \
+\u4ECE\u6307\u5B9A\u6587\u4EF6\u4E2D\u8BFB\u53D6\u9009\u9879\n
See \u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605 http://www.oracle.com/technetwork/java/javase/documentation/index.html\u3002
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u6267\u884C (\u9ED8\u8BA4\u503C)\n -Xint \u4EC5\u89E3\u91CA\u6A21\u5F0F\u6267\u884C\n -Xbootclasspath/a:<\u7528 {0} \u5206\u9694\u7684\u76EE\u5F55\u548C zip/jar \u6587\u4EF6>\n \u9644\u52A0\u5728\u5F15\u5BFC\u7C7B\u8DEF\u5F84\u672B\u5C3E\n -Xdiag \u663E\u793A\u9644\u52A0\u8BCA\u65AD\u6D88\u606F\n -Xdiag:resolver \u663E\u793A\u89E3\u6790\u5668\u8BCA\u65AD\u6D88\u606F\n -Xnoclassgc \u7981\u7528\u7C7B\u5783\u573E\u6536\u96C6\n -Xloggc:<\u6587\u4EF6> \u5C06 GC \u72B6\u6001\u8BB0\u5F55\u5728\u6587\u4EF6\u4E2D (\u5E26\u65F6\u95F4\u6233)\n -Xbatch \u7981\u7528\u540E\u53F0\u7F16\u8BD1\n -Xms<\u5927\u5C0F> \u8BBE\u7F6E\u521D\u59CB Java \u5806\u5927\u5C0F\n -Xmx<\u5927\u5C0F> \u8BBE\u7F6E\u6700\u5927 Java \u5806\u5927\u5C0F\n -Xss<\u5927\u5C0F> \u8BBE\u7F6E Java \u7EBF\u7A0B\u5806\u6808\u5927\u5C0F\n -Xprof \u8F93\u51FA cpu \u5206\u6790\u6570\u636E\n -Xfuture \u542F\u7528\u6700\u4E25\u683C\u7684\u68C0\u67E5, \u9884\u671F\u5C06\u6765\u7684\u9ED8\u8BA4\u503C\n -Xrs \u51CF\u5C11 Java/VM \u5BF9\u64CD\u4F5C\u7CFB\u7EDF\u4FE1\u53F7\u7684\u4F7F\u7528 (\u8BF7\u53C2\u9605\u6587\u6863)\n -Xcheck:jni \u5BF9 JNI \u51FD\u6570\u6267\u884C\u5176\u4ED6\u68C0\u67E5\n -Xshare:off \u4E0D\u5C1D\u8BD5\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E\n -Xshare:auto \u5728\u53EF\u80FD\u7684\u60C5\u51B5\u4E0B\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E (\u9ED8\u8BA4\u503C)\n -Xshare:on \u8981\u6C42\u4F7F\u7528\u5171\u4EAB\u7C7B\u6570\u636E, \u5426\u5219\u5C06\u5931\u8D25\u3002\n -XshowSettings \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:all\n \u663E\u793A\u6240\u6709\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:vm \u663E\u793A\u6240\u6709\u4E0E vm \u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:properties\n \u663E\u793A\u6240\u6709\u5C5E\u6027\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XshowSettings:locale\n \u663E\u793A\u6240\u6709\u4E0E\u533A\u57DF\u8BBE\u7F6E\u76F8\u5173\u7684\u8BBE\u7F6E\u5E76\u7EE7\u7EED\n -XaddReads:<\u6A21\u5757>=<\u5176\u4ED6\u6A21\u5757>(,<\u5176\u4ED6\u6A21\u5757>)*\n <\u6A21\u5757> \u8BFB\u53D6\u5176\u4ED6\u6A21\u5757,\n \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\n -XaddExports:<\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u5176\u4ED6\u6A21\u5757>(,<\u5176\u4ED6\u6A21\u5757>)*\n <\u6A21\u5757> \u5C06 <\u7A0B\u5E8F\u5305> \u5BFC\u51FA\u5230\u5176\u4ED6\u6A21\u5757,\n \u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\n -Xpatch:<\u6A21\u5757>=<\u6587\u4EF6>({0}<\u6587\u4EF6>)*\n \u4F7F\u7528 JAR \u6587\u4EF6\u6216\u76EE\u5F55\u4E2D\u7684\u7C7B\u548C\u8D44\u6E90\n \u8986\u76D6\u6216\u589E\u5F3A\u6A21\u5757\n -Xdisable-@files \u7981\u6B62\u8FDB\u4E00\u6B65\u6269\u5C55\u53C2\u6570\u6587\u4EF6\n\n-X \u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879, \u5982\u6709\u66F4\u6539, \u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\n\u4EE5\u4E0B\u9009\u9879\u4E3A Mac OS X \u7279\u5B9A\u7684\u9009\u9879:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u4E2A (AppKit) \u7EBF\u7A0B\u4E0A\u8FD0\u884C main() \u65B9\u6CD5\n -Xdock:name=<\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0>"\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0\n -Xdock:icon=<\u56FE\u6807\u6587\u4EF6\u7684\u8DEF\u5F84>\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u56FE\u6807\n\n
+java.launcher.X.macosx.usage=\n\u4EE5\u4E0B\u9009\u9879\u4E3A Mac OS X \u7279\u5B9A\u7684\u9009\u9879:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u4E2A (AppKit) \u7EBF\u7A0B\u4E0A\u8FD0\u884C main() \u65B9\u6CD5\n -Xdock:name=<\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0>\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u5E94\u7528\u7A0B\u5E8F\u540D\u79F0\n -Xdock:icon=<\u56FE\u6807\u6587\u4EF6\u7684\u8DEF\u5F84>\n \u8986\u76D6\u505C\u9760\u680F\u4E2D\u663E\u793A\u7684\u9ED8\u8BA4\u56FE\u6807\n\n
java.launcher.cls.error1=\u9519\u8BEF: \u627E\u4E0D\u5230\u6216\u65E0\u6CD5\u52A0\u8F7D\u4E3B\u7C7B {0}
java.launcher.cls.error2=\u9519\u8BEF: main \u65B9\u6CD5\u4E0D\u662F\u7C7B {1} \u4E2D\u7684{0}, \u8BF7\u5C06 main \u65B9\u6CD5\u5B9A\u4E49\u4E3A:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_TW.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/launcher/resources/launcher_zh_TW.properties Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -34,14 +34,14 @@
java.launcher.ergo.message2 =\ \u56E0\u70BA\u60A8\u6B63\u5728\u4F3A\u670D\u5668\u985E\u5225\u6A5F\u5668\u4E0A\u57F7\u884C\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.opt.footer =\ -cp <class search path of directories and zip/jar files>\n -classpath <class search path of directories and zip/jar files>\n \u7528\u4F86\u641C\u5C0B\u985E\u5225\u6A94\u6848\u4E4B\u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u3001\n JAR \u5B58\u6A94\u4EE5\u53CA ZIP \u5B58\u6A94\u6E05\u55AE\u3002\n -mp <module path>\n -modulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\n \u5747\u70BA\u6A21\u7D44\u76EE\u9304\u3002\n -upgrademodulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\n \u5747\u70BA\u6A21\u7D44\u76EE\u9304\uFF0C\u4E14\u7576\u4E2D\u7684\u6A21\u7D44\u53EF\u53D6\u4EE3\n \u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u5F71\u50CF\u4E2D\u7684\u53EF\u5347\u7D1A\u6A21\u7D44\n -m <modulename>[/<mainclass>]\n \u8981\u89E3\u6790\u7684\u8D77\u59CB\u6A21\u7D44, \u4EE5\u53CA\u6A21\u7D44\u672A\u6307\u5B9A\u6642\n \u6240\u8981\u57F7\u884C\u7684\u4E3B\u8981\u985E\u5225\u540D\u7A31\n -addmods <modulename>[,<modulename>...]\n \u9664\u4E86\u8D77\u59CB\u6A21\u7D44\u5916\uFF0C\u8981\u89E3\u6790\u7684\u6839\u6A21\u7D44\n -limitmods <modulename>[,<modulename>...]\n \u9650\u5236\u53EF\u76E3\u6E2C\u6A21\u7D44\u7684\u7BC4\u570D\n -listmods[:<modulename>[,<modulename>...]]\n \u5217\u51FA\u53EF\u76E3\u6E2C\u6A21\u7D44\u4E26\u7D50\u675F\n -D<name>=<value>\n \u8A2D\u5B9A\u7CFB\u7D71\u5C6C\u6027\n -verbose:[class|gc|jni]\n \u555F\u7528\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA\n -version \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7D50\u675F\n -showversion \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7E7C\u7E8C\n -? -help \u5217\u5370\u6B64\u8AAA\u660E\u8A0A\u606F\n -X \u5217\u5370\u975E\u6A19\u6E96\u9078\u9805\u7684\u8AAA\u660E\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u555F\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u505C\u7528\u542B\u6307\u5B9A\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -esa | -enablesystemassertions\n \u555F\u7528\u7CFB\u7D71\u5BA3\u544A\n -dsa | -disablesystemassertions\n \u505C\u7528\u7CFB\u7D71\u5BA3\u544A\n -agentlib:<libname>[=<options>]\n \u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB <libname>\uFF0C\u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8ACB\u53C3\u95B1 -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n \u4F7F\u7528\u5B8C\u6574\u8DEF\u5F91\u540D\u7A31\u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB\n -javaagent:<jarpath>[=<options>]\n \u8F09\u5165 Java \u7A0B\u5F0F\u8A9E\u8A00\u4EE3\u7406\u7A0B\u5F0F\uFF0C\u8ACB\u53C3\u95B1 java.lang.instrument\n -splash:<imagepath>\n \u4EE5\u6307\u5B9A\u5F71\u50CF\u986F\u793A\u8EDF\u9AD4\u8CC7\u8A0A\u756B\u9762\n @<filepath> \u5F9E\u6307\u5B9A\u6A94\u6848\u8B80\u53D6\u9078\u9805\n
+java.launcher.opt.footer =\ -cp <\u76EE\u9304\u53CA zip/jar \u6A94\u6848\u7684\u985E\u5225\u641C\u5C0B\u8DEF\u5F91>\n -classpath <\u76EE\u9304\u53CA zip/jar \u6A94\u6848\u7684\u985E\u5225\u641C\u5C0B\u8DEF\u5F91>\n \u5C07\u5728\u5176\u4E2D\u641C\u5C0B\u985E\u5225\u6A94\u6848\u4E4B\u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u3001JAR \u5B58\u6A94\u4EE5\u53CA ZIP \u5B58\u6A94\u6E05\u55AE\u3002\n -mp <module path>\n -modulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\u90FD\u662F\u4E00\u500B\u6A21\u7D44\u76EE\u9304\u3002\n -upgrademodulepath <module path>...\n \u4EE5 {0} \u5340\u9694\u7684\u76EE\u9304\u6E05\u55AE\uFF0C\u6BCF\u500B\u76EE\u9304\u90FD\u662F\u4E00\u500B\u6A21\u7D44\u76EE\u9304\uFF0C\u7576\u4E2D\u7684\u6A21\u7D44\u53EF\u53D6\u4EE3\u7A0B\u5F0F\u5BE6\u969B\u57F7\u884C\u5F71\u50CF\u4E2D\u7684\u53EF\u5347\u7D1A\u6A21\u7D44\n -m <modulename>[/<mainclass>]\n \u8981\u89E3\u6790\u7684\u8D77\u59CB\u6A21\u7D44\uFF0C\u4EE5\u53CA\u6A21\u7D44\u672A\u6307\u5B9A\u6642\u6240\u8981\u57F7\u884C\u4E4B\u4E3B\u8981\u985E\u5225\u7684\u540D\u7A31\n -addmods <modulename>[,<modulename>...]\n \u9664\u4E86\u8D77\u59CB\u6A21\u7D44\u5916\uFF0C\u8981\u89E3\u6790\u7684\u6839\u6A21\u7D44\n -limitmods <modulename>[,<modulename>...]\n \u9650\u5236\u53EF\u76E3\u6E2C\u6A21\u7D44\u7684\u7BC4\u570D\n -listmods[:<modulename>[,<modulename>...]]\n \u5217\u51FA\u53EF\u76E3\u6E2C\u6A21\u7D44\u4E26\u7D50\u675F\n --dry-run \u5EFA\u7ACB VM \u4F46\u4E0D\u57F7\u884C\u4E3B\u8981\u65B9\u6CD5\u3002\n \u6B64 --dry-run \u9078\u9805\u5C0D\u65BC\u9A57\u8B49\u547D\u4EE4\u884C\u9078\u9805 (\u4F8B\u5982\u6A21\u7D44\u7CFB\u7D71\u7D44\u614B) \u6703\u5F88\u6709\u7528\u3002\n -D<name>=<value>\n \u8A2D\u5B9A\u7CFB\u7D71\u5C6C\u6027\n -verbose:[class|gc|jni]\n \u555F\u7528\u8A73\u7D30\u8CC7\u8A0A\u8F38\u51FA\n -version \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7D50\u675F\n -showversion \u5217\u5370\u7522\u54C1\u7248\u672C\u4E26\u7E7C\u7E8C\n -? -help \u5217\u5370\u672C\u8AAA\u660E\u8A0A\u606F\n -X \u5217\u5370\u975E\u6A19\u6E96\u9078\u9805\u7684\u8AAA\u660E\n -ea[:<packagename>...|:<classname>]\n -enableassertions[:<packagename>...|:<classname>]\n \u555F\u7528\u6307\u5B9A\u4E4B\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -da[:<packagename>...|:<classname>]\n -disableassertions[:<packagename>...|:<classname>]\n \u505C\u7528\u6307\u5B9A\u4E4B\u8A73\u7D30\u7A0B\u5EA6\u7684\u5BA3\u544A\n -esa | -enablesystemassertions\n \u555F\u7528\u7CFB\u7D71\u5BA3\u544A\n -dsa | -disablesystemassertions\n \u505C\u7528\u7CFB\u7D71\u5BA3\u544A\n -agentlib:<libname>[=<options>]\n \u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB <libname>\uFF0C\u4F8B\u5982 -agentlib:jdwp\n \u53E6\u8ACB\u53C3\u95B1 -agentlib:jdwp=help\n -agentpath:<pathname>[=<options>]\n \u4F7F\u7528\u5B8C\u6574\u8DEF\u5F91\u540D\u7A31\u8F09\u5165\u539F\u751F\u4EE3\u7406\u7A0B\u5F0F\u7A0B\u5F0F\u5EAB\n -javaagent:<jarpath>[=<options>]\n \u8F09\u5165 Java \u7A0B\u5F0F\u8A9E\u8A00\u4EE3\u7406\u7A0B\u5F0F\uFF0C\u8ACB\u53C3\u95B1 java.lang.instrument\n -splash:<imagepath>\n \u986F\u793A\u542B\u6307\u5B9A\u5F71\u50CF\u7684\u8EDF\u9AD4\u8CC7\u8A0A\u756B\u9762\n @<filepath> \u5F9E\u6307\u5B9A\u7684\u6A94\u6848\u8B80\u53D6\u9078\u9805\n
See \u8ACB\u53C3\u95B1 http://www.oracle.com/technetwork/java/javase/documentation/index.html \u66B8\u89E3\u8A73\u7D30\u8CC7\u8A0A\u3002
# Translators please note do not translate the options themselves
java.launcher.X.usage=\ -Xmixed \u6DF7\u5408\u6A21\u5F0F\u57F7\u884C (\u9810\u8A2D)\n -Xint \u50C5\u9650\u89E3\u8B6F\u6A21\u5F0F\u57F7\u884C\n -Xbootclasspath/a:<\u4EE5 {0} \u5206\u9694\u7684\u76EE\u9304\u548C zip/jar \u6A94\u6848>\n \u9644\u52A0\u5728\u555F\u52D5\u5B89\u88DD\u985E\u5225\u8DEF\u5F91\u7684\u7D50\u5C3E\n -Xdiag \u986F\u793A\u5176\u4ED6\u7684\u8A3A\u65B7\u8A0A\u606F\n -Xdiag:resolver \u986F\u793A\u89E3\u6790\u5668\u8A3A\u65B7\u8A0A\u606F\n -Xnoclassgc \u505C\u7528\u985E\u5225\u8CC7\u6E90\u56DE\u6536\n -Xloggc:<file> \u5C07 GC \u72C0\u614B\u548C\u6642\u6233\u8A18\u9304\u81F3\u6A94\u6848\n -Xbatch \u505C\u7528\u80CC\u666F\u7DE8\u8B6F\n -Xms<size> \u8A2D\u5B9A\u8D77\u59CB Java \u5806\u96C6\u5927\u5C0F\n -Xmx<size> \u8A2D\u5B9A Java \u5806\u96C6\u5927\u5C0F\u4E0A\u9650\n -Xss<size> \u8A2D\u5B9A Java \u57F7\u884C\u7DD2\u5806\u758A\u5927\u5C0F\n -Xprof \u8F38\u51FA CPU \u5206\u6790\u8CC7\u6599\n -Xfuture \u555F\u7528\u6700\u56B4\u683C\u7684\u6AA2\u67E5\uFF0C\u9810\u5148\u4F5C\u70BA\u5C07\u4F86\u7684\u9810\u8A2D\n -Xrs \u6E1B\u5C11 Java/VM \u4F7F\u7528\u4F5C\u696D\u7CFB\u7D71\u4FE1\u865F (\u8ACB\u53C3\u95B1\u6587\u4EF6)\n -Xcheck:jni \u57F7\u884C\u5176\u4ED6\u7684 JNI \u51FD\u6578\u6AA2\u67E5\n -Xshare:off \u4E0D\u5617\u8A66\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\n -Xshare:auto \u5118\u53EF\u80FD\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599 (\u9810\u8A2D)\n -Xshare:on \u9700\u8981\u4F7F\u7528\u5171\u7528\u985E\u5225\u8CC7\u6599\uFF0C\u5426\u5247\u5931\u6557\u3002\n -XshowSettings \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:all\n \u986F\u793A\u6240\u6709\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:vm \u986F\u793A\u6240\u6709 VM \u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:properties\n \u986F\u793A\u6240\u6709\u5C6C\u6027\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XshowSettings:locale\n \u986F\u793A\u6240\u6709\u5730\u5340\u8A2D\u5B9A\u76F8\u95DC\u8A2D\u5B9A\u503C\u4E26\u7E7C\u7E8C\n -XaddReads:<module>=<other-module>(,<other-module>)*\n \u7121\u8AD6\u6A21\u7D44\u5BA3\u544A\u70BA\u4F55\uFF0C\n <module> \u6703\u8B80\u53D6\u5176\u4ED6\u6A21\u7D44\n -XaddExports:<module>/<package>=<other-module>(,<other-module>)*\n \u7121\u8AD6\u6A21\u7D44\u5BA3\u544A\u70BA\u4F55\uFF0C<module> \u6703\u5C07 <package>\n \u532F\u51FA\u81F3\u5176\u4ED6\u6A21\u7D44\n -Xpatch:<module>=<file>({0}<file>)*\n \u8986\u5BEB\u6216\u52A0\u5F37 JAR \u6A94\u6848\u6216\u76EE\u9304\u4E2D\u7684\n \u6A21\u7D44\u985E\u578B\u548C\u8CC7\u6E90\n -Xdisable-@files \u505C\u7528\u9032\u4E00\u6B65\u7684\u5F15\u6578\u6A94\u6848\u64F4\u5145\n\n-X \u9078\u9805\u4E0D\u662F\u6A19\u6E96\u9078\u9805\uFF0C\u82E5\u6709\u8B8A\u66F4\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
# Translators please note do not translate the options themselves
-java.launcher.X.macosx.usage=\n\u4E0B\u5217\u662F Mac OS X \u7279\u5B9A\u9078\u9805:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u500B (AppKit) \u57F7\u884C\u7DD2\u57F7\u884C main() \u65B9\u6CD5\n -Xdock:name=<application name>"\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u61C9\u7528\u7A0B\u5F0F\u540D\u7A31\n -Xdock:icon=<path to icon file>\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u5716\u793A\n\n
+java.launcher.X.macosx.usage=\n\u4E0B\u5217\u662F Mac OS X \u7279\u5B9A\u9078\u9805:\n -XstartOnFirstThread\n \u5728\u7B2C\u4E00\u500B (AppKit) \u57F7\u884C\u7DD2\u57F7\u884C main() \u65B9\u6CD5\n -Xdock:name=<application name>\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u61C9\u7528\u7A0B\u5F0F\u540D\u7A31\n -Xdock:icon=<path to icon file>\n \u8986\u5BEB\u7D50\u5408\u8AAA\u660E\u756B\u9762\u4E2D\u986F\u793A\u7684\u9810\u8A2D\u5716\u793A\n\n
java.launcher.cls.error1=\u932F\u8AA4: \u627E\u4E0D\u5230\u6216\u7121\u6CD5\u8F09\u5165\u4E3B\u8981\u985E\u5225 {0}
java.launcher.cls.error2=\u932F\u8AA4: \u4E3B\u8981\u65B9\u6CD5\u4E0D\u662F\u985E\u5225 {1} \u4E2D\u7684 {0}\uFF0C\u8ACB\u5B9A\u7FA9\u4E3B\u8981\u65B9\u6CD5\u70BA:\n public static void main(String[] args)
--- a/jdk/src/java.base/share/classes/sun/security/provider/PolicyFile.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/provider/PolicyFile.java Mon Aug 01 10:06:09 2016 -0700
@@ -30,6 +30,7 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URI;
+import java.nio.file.Paths;
import java.util.*;
import java.text.MessageFormat;
import java.security.*;
@@ -52,18 +53,17 @@
import sun.net.www.ParseUtil;
/**
- * This class represents a default implementation for
- * <code>java.security.Policy</code>.
+ * This class represents a default Policy implementation for the
+ * "JavaPolicy" type.
*
* Note:
* For backward compatibility with JAAS 1.0 it loads
- * both java.auth.policy and java.policy. However it
- * is recommended that java.auth.policy be not used
- * and the java.policy contain all grant entries including
- * that contain principal-based entries.
+ * both java.auth.policy and java.policy. However, it
+ * is recommended that java.auth.policy not be used
+ * and that java.policy contain all grant entries including
+ * those that contain principal-based entries.
*
- *
- * <p> This object stores the policy for entire Java runtime,
+ * <p> This object stores the policy for the entire Java runtime,
* and is the amalgamation of multiple static policy
* configurations that resides in files.
* The algorithm for locating the policy file(s) and reading their
@@ -71,6 +71,14 @@
*
* <ol>
* <li>
+ * Read in and load the default policy file named
+ * <JAVA_HOME>/lib/security/default.policy. <JAVA_HOME> refers
+ * to the value of the java.home system property, and specifies the directory
+ * where the JRE is installed. This policy file grants permissions to the
+ * modules loaded by the platform class loader. If the default policy file
+ * cannot be loaded, a fatal InternalError is thrown as these permissions
+ * are needed in order for the runtime to operate correctly.
+ * <li>
* Loop through the <code>java.security.Security</code> properties,
* <i>policy.url.1</i>, <i>policy.url.2</i>, ...,
* <i>policy.url.X</i>" and
@@ -78,13 +86,14 @@
* <i>auth.policy.url.X</i>". These properties are set
* in the Java security properties file, which is located in the file named
* <JAVA_HOME>/conf/security/java.security.
- * <JAVA_HOME> refers to the value of the java.home system property,
- * and specifies the directory where the JRE is installed.
* Each property value specifies a <code>URL</code> pointing to a
* policy file to be loaded. Read in and load each policy.
*
* <i>auth.policy.url</i> is supported only for backward compatibility.
*
+ * If none of these could be loaded, use a builtin static policy
+ * equivalent to the conf/security/java.policy file.
+ *
* <li>
* The <code>java.lang.System</code> property <i>java.security.policy</i>
* may also be set to a <code>URL</code> pointing to another policy file
@@ -107,10 +116,13 @@
* <i>java.security.auth.policy</i> is supported only for backward
* compatibility.
*
- * If the <i>java.security.policy</i> or
+ * If the <i>java.security.policy</i> or
* <i>java.security.auth.policy</i> property is defined using
- * "==" (rather than "="), then ignore all other specified
- * policies and only load this policy.
+ * "==" (rather than "="), then load the specified policy file and ignore
+ * all other configured policies. Note, that the default.policy file is
+ * also loaded, as specified in the first step of the algorithm above.
+ * If the specified policy file cannot be loaded, use a builtin static policy
+ * equivalent to the default conf/security/java.policy file.
* </ol>
*
* Each policy file consists of one or more grant entries, each of
@@ -178,7 +190,6 @@
* "FooSoft" alias, or if XXX <code>Foo.class</code> is a
* system class (i.e., is found on the CLASSPATH).
*
- *
* <p> Items that appear in an entry must appear in the specified order
* (<code>permission</code>, <i>Type</i>, "<i>name</i>", and
* "<i>action</i>"). An entry is terminated with a semicolon.
@@ -246,7 +257,6 @@
* with all the principals associated with the <code>Subject</code>
* in the current <code>AccessControlContext</code>.
*
- *
* <p> For PrivateCredentialPermissions, you can also use "<b>self</b>"
* instead of "<b>${{self}}</b>". However the use of "<b>self</b>" is
* deprecated in favour of "<b>${{self}}</b>".
@@ -278,7 +288,6 @@
private URL url;
// for use with the reflection API
-
private static final Class<?>[] PARAMS0 = { };
private static final Class<?>[] PARAMS1 = { String.class };
private static final Class<?>[] PARAMS2 = { String.class, String.class };
@@ -294,6 +303,23 @@
private static AtomicReference<Set<URL>> badPolicyURLs =
new AtomicReference<>(new HashSet<>());
+ // The default.policy file
+ private static final URL DEFAULT_POLICY_URL =
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
+ public URL run() {
+ String sep = File.separator;
+ try {
+ return Paths.get(System.getProperty("java.home"),
+ "lib", "security",
+ "default.policy").toUri().toURL();
+ } catch (MalformedURLException mue) {
+ // should not happen
+ throw new Error("Malformed default.policy URL: " + mue);
+ }
+ }
+ });
+
/**
* Initializes the Policy object and reads the default policy
* configuration file(s) into the Policy object.
@@ -315,108 +341,15 @@
* Initializes the Policy object and reads the default policy
* configuration file(s) into the Policy object.
*
- * The algorithm for locating the policy file(s) and reading their
- * information into the Policy object is:
- * <pre>
- * loop through the Security Properties named "policy.url.1",
- * ""policy.url.2", "auth.policy.url.1", "auth.policy.url.2" etc, until
- * you don't find one. Each of these specify a policy file.
- *
- * if none of these could be loaded, use a builtin static policy
- * equivalent to the default conf/security/java.policy file.
- *
- * if the system property "java.policy" or "java.auth.policy" is defined
- * (which is the
- * case when the user uses the -D switch at runtime), and
- * its use is allowed by the security property file,
- * also load it.
- * </pre>
- *
- * Each policy file consists of one or more grant entries, each of
- * which consists of a number of permission entries.
- * <pre>
- * grant signedBy "<i>alias</i>", codeBase "<i>URL</i>" {
- * permission <i>Type</i> "<i>name</i>", "<i>action</i>",
- * signedBy "<i>alias</i>";
- * ....
- * permission <i>Type</i> "<i>name</i>", "<i>action</i>",
- * signedBy "<i>alias</i>";
- * };
- *
- * </pre>
- *
- * All non-italicized items above must appear as is (although case
- * doesn't matter and some are optional, as noted below).
- * Italicized items represent variable values.
- *
- * <p> A grant entry must begin with the word <code>grant</code>.
- * The <code>signedBy</code> and <code>codeBase</code> name/value
- * pairs are optional.
- * If they are not present, then any signer (including unsigned code)
- * will match, and any codeBase will match.
- *
- * <p> A permission entry must begin with the word <code>permission</code>.
- * The word <code><i>Type</i></code> in the template above would actually
- * be a specific permission type, such as
- * <code>java.io.FilePermission</code> or
- * <code>java.lang.RuntimePermission</code>.
- *
- * <p>The "<i>action</i>" is required for
- * many permission types, such as <code>java.io.FilePermission</code>
- * (where it specifies what type of file access is permitted).
- * It is not required for categories such as
- * <code>java.lang.RuntimePermission</code>
- * where it is not necessary - you either have the
- * permission specified by the <code>"<i>name</i>"</code>
- * value following the type name or you don't.
- *
- * <p>The <code>signedBy</code> name/value pair for a permission entry
- * is optional. If present, it indicates a signed permission. That is,
- * the permission class itself must be signed by the given alias in
- * order for it to be granted. For example,
- * suppose you have the following grant entry:
- *
- * <pre>
- * grant {
- * permission Foo "foobar", signedBy "FooSoft";
- * }
- * </pre>
- *
- * <p>Then this permission of type <i>Foo</i> is granted if the
- * <code>Foo.class</code> permission has been signed by the
- * "FooSoft" alias, or if <code>Foo.class</code> is a
- * system class (i.e., is found on the CLASSPATH).
- *
- * <p>Items that appear in an entry must appear in the specified order
- * (<code>permission</code>, <i>Type</i>, "<i>name</i>", and
- * "<i>action</i>"). An entry is terminated with a semicolon.
- *
- * <p>Case is unimportant for the identifiers (<code>permission</code>,
- * <code>signedBy</code>, <code>codeBase</code>, etc.) but is
- * significant for the <i>Type</i>
- * or for any string that is passed in as a value.
- *
- * <p>An example of two entries in a policy configuration file is
- * <pre>
- * // if the code is signed by "Duke", grant it read/write to all
- * // files in /tmp.
- *
- * grant signedBy "Duke" {
- * permission java.io.FilePermission "/tmp/*", "read,write";
- * };
- *
- * // grant everyone the following permission
- *
- * grant {
- * permission java.util.PropertyPermission "java.vendor";
- * };
- * </pre>
+ * See the class description for details on the algorithm used to
+ * initialize the Policy object.
*/
private void init(URL url) {
// Properties are set once for each init(); ignore changes between
// between diff invocations of initPolicyFile(policy, url, info).
String numCacheStr =
- AccessController.doPrivileged(new PrivilegedAction<String>() {
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
public String run() {
expandProperties = "true".equalsIgnoreCase
(Security.getProperty("policy.expandProperties"));
@@ -445,19 +378,32 @@
private void initPolicyFile(final PolicyInfo newInfo, final URL url) {
+ // always load default.policy
+ if (debug != null) {
+ debug.println("reading " + DEFAULT_POLICY_URL);
+ }
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
+ public Void run() {
+ init(DEFAULT_POLICY_URL, newInfo, true);
+ return null;
+ }
+ });
+
if (url != null) {
/**
* If the caller specified a URL via Policy.getInstance,
- * we only read from that URL
+ * we only read from default.policy and that URL.
*/
if (debug != null) {
- debug.println("reading "+url);
+ debug.println("reading " + url);
}
- AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
public Void run() {
- if (init(url, newInfo) == false) {
+ if (init(url, newInfo, false) == false) {
// use static policy if all else fails
initStaticPolicy(newInfo);
}
@@ -472,7 +418,7 @@
* Read from URLs listed in the java.security properties file.
*
* We call initPolicyFile with POLICY, POLICY_URL and then
- * call it with AUTH_POLICY and AUTH_POLICY_URL
+ * call it with AUTH_POLICY and AUTH_POLICY_URL.
* So first we will process the JAVA standard policy
* and then process the JAVA AUTH Policy.
* This is for backward compatibility as well as to handle
@@ -493,9 +439,10 @@
}
private boolean initPolicyFile(final String propname, final String urlname,
- final PolicyInfo newInfo) {
- Boolean loadedPolicy =
- AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ final PolicyInfo newInfo) {
+ boolean loadedPolicy =
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
public Boolean run() {
boolean loaded_policy = false;
@@ -519,10 +466,12 @@
} else {
policyURL = new URL(extra_policy);
}
- if (debug != null)
+ if (debug != null) {
debug.println("reading "+policyURL);
- if (init(policyURL, newInfo))
+ }
+ if (init(policyURL, newInfo, false)) {
loaded_policy = true;
+ }
} catch (Exception e) {
// ignore.
if (debug != null) {
@@ -560,10 +509,12 @@
policy_url = new URI(expanded_uri).toURL();
}
- if (debug != null)
- debug.println("reading "+policy_url);
- if (init(policy_url, newInfo))
+ if (debug != null) {
+ debug.println("reading " + policy_url);
+ }
+ if (init(policy_url, newInfo, false)) {
loaded_policy = true;
+ }
} catch (Exception e) {
if (debug != null) {
debug.println("error reading policy "+e);
@@ -577,7 +528,7 @@
}
});
- return loadedPolicy.booleanValue();
+ return loadedPolicy;
}
/**
@@ -586,7 +537,7 @@
*
* @param policyFile the policy Reader object.
*/
- private boolean init(URL policy, PolicyInfo newInfo) {
+ private boolean init(URL policy, PolicyInfo newInfo, boolean defPolicy) {
// skip parsing policy file if it has been previously parsed and
// has syntax errors
@@ -597,24 +548,10 @@
return false;
}
- boolean success = false;
- PolicyParser pp = new PolicyParser(expandProperties);
- InputStreamReader isr = null;
- try {
+ try (InputStreamReader isr =
+ getInputStreamReader(PolicyUtil.getInputStream(policy))) {
- // read in policy using UTF-8 by default
- //
- // check non-standard system property to see if
- // the default encoding should be used instead
-
- if (notUtf8) {
- isr = new InputStreamReader
- (PolicyUtil.getInputStream(policy));
- } else {
- isr = new InputStreamReader
- (PolicyUtil.getInputStream(policy), "UTF-8");
- }
-
+ PolicyParser pp = new PolicyParser(expandProperties);
pp.read(isr);
KeyStore keyStore = null;
@@ -638,7 +575,11 @@
PolicyParser.GrantEntry ge = enum_.nextElement();
addGrantEntry(ge, keyStore, newInfo);
}
+ return true;
} catch (PolicyParser.ParsingException pe) {
+ if (defPolicy) {
+ throw new InternalError("Failed to load default.policy", pe);
+ }
// record bad policy file to avoid later reparsing it
badPolicyURLs.updateAndGet(k -> {
k.add(policy);
@@ -652,29 +593,38 @@
pe.printStackTrace();
}
} catch (Exception e) {
+ if (defPolicy) {
+ throw new InternalError("Failed to load default.policy", e);
+ }
if (debug != null) {
debug.println("error parsing "+policy);
debug.println(e.toString());
e.printStackTrace();
}
- } finally {
- if (isr != null) {
- try {
- isr.close();
- success = true;
- } catch (IOException e) {
- // ignore the exception
- }
- } else {
- success = true;
- }
}
- return success;
+ return false;
+ }
+
+ private InputStreamReader getInputStreamReader(InputStream is)
+ throws IOException {
+ /*
+ * Read in policy using UTF-8 by default.
+ *
+ * Check non-standard system property to see if the default encoding
+ * should be used instead.
+ */
+ return (notUtf8)
+ ? new InputStreamReader(is)
+ : new InputStreamReader(is, "UTF-8");
}
private void initStaticPolicy(final PolicyInfo newInfo) {
- AccessController.doPrivileged(new PrivilegedAction<Void>() {
+ if (debug != null) {
+ debug.println("Initializing with static permissions");
+ }
+ AccessController.doPrivileged(new PrivilegedAction<>() {
+ @Override
public Void run() {
PolicyEntry pe = new PolicyEntry(new CodeSource(null,
(Certificate[]) null));
@@ -1193,7 +1143,8 @@
return perms;
CodeSource canonCodeSource = AccessController.doPrivileged(
- new java.security.PrivilegedAction<CodeSource>(){
+ new java.security.PrivilegedAction<>(){
+ @Override
public CodeSource run() {
return canonicalizeCodebase(cs, true);
}
@@ -1220,7 +1171,8 @@
return perms;
CodeSource canonCodeSource = AccessController.doPrivileged(
- new java.security.PrivilegedAction<CodeSource>(){
+ new PrivilegedAction<>(){
+ @Override
public CodeSource run() {
return canonicalizeCodebase(cs, true);
}
@@ -1254,7 +1206,8 @@
// check to see if the CodeSource implies
Boolean imp = AccessController.doPrivileged
- (new PrivilegedAction<Boolean>() {
+ (new PrivilegedAction<>() {
+ @Override
public Boolean run() {
return entry.getCodeSource().implies(cs);
}
--- a/jdk/src/java.base/share/classes/sun/security/tools/keytool/Main.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/classes/sun/security/tools/keytool/Main.java Mon Aug 01 10:06:09 2016 -0700
@@ -129,6 +129,7 @@
private Set<Pair <String, String>> providerClasses = null;
private String storetype = null;
private boolean hasStoretypeOption = false;
+ private boolean hasSrcStoretypeOption = false;
private String srcProviderName = null;
private String providerName = null;
private String pathlist = null;
@@ -492,7 +493,7 @@
passwords.add(srcstorePass);
} else if (collator.compare(flags, "-srcstoretype") == 0) {
srcstoretype = args[++i];
- hasStoretypeOption = true;
+ hasSrcStoretypeOption = true;
} else if (collator.compare(flags, "-srckeypass") == 0) {
srckeyPass = getPass(modifier, args[++i]);
passwords.add(srckeyPass);
@@ -1936,7 +1937,7 @@
try {
// Probe for keystore type when filename is available
if (srcksfile != null && is != null && srcProviderName == null &&
- hasStoretypeOption == false) {
+ hasSrcStoretypeOption == false) {
store = KeyStore.getInstance(srcksfile, srcstorePass);
} else {
if (srcProviderName == null) {
--- a/jdk/src/java.base/share/conf/security/java.policy Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/share/conf/security/java.policy Mon Aug 01 10:06:09 2016 -0700
@@ -1,179 +1,31 @@
-// permissions required by each component
-
-grant codeBase "jrt:/java.activation" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/java.corba" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/java.compiler" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.charsets" {
- permission java.io.FilePermission "${java.home}/-", "read";
- permission java.util.PropertyPermission "os.name", "read";
- permission java.util.PropertyPermission "sun.nio.cs.map", "read";
- permission java.lang.RuntimePermission "charsetProvider";
- permission java.lang.RuntimePermission "accessClassInPackage.jdk.internal.misc";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.cs";
-};
-
-grant codeBase "jrt:/jdk.crypto.ucrypto" {
- permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
- permission java.lang.RuntimePermission "loadLibrary.j2ucrypto";
- // need "com.oracle.security.ucrypto.debug" for debugging
- permission java.util.PropertyPermission "*", "read";
- permission java.security.SecurityPermission "putProviderProperty.OracleUcrypto";
- permission java.security.SecurityPermission "clearProviderProperties.OracleUcrypto";
- permission java.security.SecurityPermission "removeProviderProperty.OracleUcrypto";
- // Needed for reading Ucrypto config file
- permission java.io.FilePermission "<<ALL FILES>>", "read";
-};
-
-grant codeBase "jrt:/java.sql" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/java.sql.rowset" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.crypto.ec" {
- permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
- permission java.lang.RuntimePermission "loadLibrary.sunec";
- permission java.util.PropertyPermission "*", "read";
- permission java.security.SecurityPermission "putProviderProperty.SunEC";
- permission java.security.SecurityPermission "clearProviderProperties.SunEC";
- permission java.security.SecurityPermission "removeProviderProperty.SunEC";
-};
-
-grant codeBase "jrt:/jdk.crypto.pkcs11" {
- permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
- permission java.lang.RuntimePermission "loadLibrary.j2pkcs11";
- // needs "security.pkcs11.allowSingleThreadedModules"
- permission java.util.PropertyPermission "*", "read";
- permission java.security.SecurityPermission "putProviderProperty.*";
- permission java.security.SecurityPermission "clearProviderProperties.*";
- permission java.security.SecurityPermission "removeProviderProperty.*";
- permission java.security.SecurityPermission "getProperty.auth.login.defaultCallbackHandler";
- permission java.security.SecurityPermission "authProvider.*";
- // Needed for reading PKCS11 config file and NSS library check
- permission java.io.FilePermission "<<ALL FILES>>", "read";
-};
-
-grant codeBase "jrt:/jdk.dynalink" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.internal.le" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.jsobject" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.localedata" {
- permission java.lang.RuntimePermission "accessClassInPackage.sun.text.*";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.util.*";
- permission java.util.PropertyPermission "*", "read";
-};
-
-grant codeBase "jrt:/jdk.naming.dns" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/java.scripting" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.scripting.nashorn" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/jdk.scripting.nashorn.shell" {
- permission java.security.AllPermission;
-};
-
-grant codeBase "jrt:/java.smartcardio" {
- permission javax.smartcardio.CardPermission "*", "*";
- permission java.lang.RuntimePermission "loadLibrary.j2pcsc";
- permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
- permission java.util.PropertyPermission "*", "read";
- // needed for looking up native PC/SC library
- permission java.io.FilePermission "<<ALL FILES>>","read";
- permission java.security.SecurityPermission "putProviderProperty.SunPCSC";
- permission java.security.SecurityPermission "clearProviderProperties.SunPCSC";
- permission java.security.SecurityPermission "removeProviderProperty.SunPCSC";
-};
-
-grant codeBase "jrt:/java.xml.bind" {
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.xml.internal.*";
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.istack.internal";
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.istack.internal.*";
- permission java.lang.RuntimePermission "accessDeclaredMembers";
- permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
- permission java.util.PropertyPermission "*", "read";
-};
-
-grant codeBase "jrt:/java.xml.crypto" {
- permission java.util.PropertyPermission "*", "read";
- permission java.security.SecurityPermission "putProviderProperty.XMLDSig";
- permission java.security.SecurityPermission "clearProviderProperties.XMLDSig";
- permission java.security.SecurityPermission "removeProviderProperty.XMLDSig";
- permission java.security.SecurityPermission "com.sun.org.apache.xml.internal.security.register";
-};
-
-grant codeBase "jrt:/java.xml.ws" {
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.xml.internal.*";
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.istack.internal";
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.istack.internal.*";
- permission java.lang.RuntimePermission "accessClassInPackage.com.sun.org.apache.xerces.internal.*";
- permission java.lang.RuntimePermission "accessDeclaredMembers";
- permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
- permission java.util.PropertyPermission "*", "read";
-};
-
-grant codeBase "jrt:/jdk.zipfs" {
- permission java.io.FilePermission "<<ALL FILES>>", "read,write,delete";
- permission java.lang.RuntimePermission "fileSystemProvider";
- permission java.util.PropertyPermission "*", "read";
-};
-
// default permissions granted to all domains
grant {
- // allows anyone to listen on dynamic ports
- permission java.net.SocketPermission "localhost:0", "listen";
-
- // "standard" properies that can be read by anyone
+ // allows anyone to listen on dynamic ports
+ permission java.net.SocketPermission "localhost:0", "listen";
- permission java.util.PropertyPermission "java.version", "read";
- permission java.util.PropertyPermission "java.vendor", "read";
- permission java.util.PropertyPermission "java.vendor.url", "read";
- permission java.util.PropertyPermission "java.class.version", "read";
- permission java.util.PropertyPermission "os.name", "read";
- permission java.util.PropertyPermission "os.version", "read";
- permission java.util.PropertyPermission "os.arch", "read";
- permission java.util.PropertyPermission "file.separator", "read";
- permission java.util.PropertyPermission "path.separator", "read";
- permission java.util.PropertyPermission "line.separator", "read";
-
- permission java.util.PropertyPermission "java.specification.version", "read";
- permission java.util.PropertyPermission "java.specification.vendor", "read";
- permission java.util.PropertyPermission "java.specification.name", "read";
-
- permission java.util.PropertyPermission "java.vm.specification.version", "read";
- permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
- permission java.util.PropertyPermission "java.vm.specification.name", "read";
- permission java.util.PropertyPermission "java.vm.version", "read";
- permission java.util.PropertyPermission "java.vm.vendor", "read";
- permission java.util.PropertyPermission "java.vm.name", "read";
+ // "standard" properies that can be read by anyone
+ permission java.util.PropertyPermission "java.version", "read";
+ permission java.util.PropertyPermission "java.vendor", "read";
+ permission java.util.PropertyPermission "java.vendor.url", "read";
+ permission java.util.PropertyPermission "java.class.version", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "os.version", "read";
+ permission java.util.PropertyPermission "os.arch", "read";
+ permission java.util.PropertyPermission "file.separator", "read";
+ permission java.util.PropertyPermission "path.separator", "read";
+ permission java.util.PropertyPermission "line.separator", "read";
+ permission java.util.PropertyPermission
+ "java.specification.version", "read";
+ permission java.util.PropertyPermission "java.specification.vendor", "read";
+ permission java.util.PropertyPermission "java.specification.name", "read";
+ permission java.util.PropertyPermission
+ "java.vm.specification.version", "read";
+ permission java.util.PropertyPermission
+ "java.vm.specification.vendor", "read";
+ permission java.util.PropertyPermission
+ "java.vm.specification.name", "read";
+ permission java.util.PropertyPermission "java.vm.version", "read";
+ permission java.util.PropertyPermission "java.vm.vendor", "read";
+ permission java.util.PropertyPermission "java.vm.name", "read";
};
-
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/share/lib/security/default.policy Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,172 @@
+//
+// Permissions required by modules stored in a run-time image and loaded
+// by the platform class loader.
+//
+// NOTE that this file is not intended to be modified. If additional
+// permissions need to be granted to the modules in this file, it is
+// recommended that they be configured in a separate policy file or
+// ${java.home}/conf/security/java.policy.
+//
+
+grant codeBase "jrt:/java.activation" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.compiler" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.corba" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.scripting" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.security.jgss" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.smartcardio" {
+ permission javax.smartcardio.CardPermission "*", "*";
+ permission java.lang.RuntimePermission "loadLibrary.j2pcsc";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.util.PropertyPermission "*", "read";
+ // needed for looking up native PC/SC library
+ permission java.io.FilePermission "<<ALL FILES>>","read";
+ permission java.security.SecurityPermission "putProviderProperty.SunPCSC";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.SunPCSC";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.SunPCSC";
+};
+
+grant codeBase "jrt:/java.sql" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.sql.rowset" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/java.xml.bind" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.xml.internal.*";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.istack.internal";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.istack.internal.*";
+ permission java.lang.RuntimePermission "accessDeclaredMembers";
+ permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+ permission java.util.PropertyPermission "*", "read";
+};
+
+grant codeBase "jrt:/java.xml.crypto" {
+ permission java.util.PropertyPermission "*", "read";
+ permission java.security.SecurityPermission "putProviderProperty.XMLDSig";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.XMLDSig";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.XMLDSig";
+ permission java.security.SecurityPermission
+ "com.sun.org.apache.xml.internal.security.register";
+};
+
+grant codeBase "jrt:/java.xml.ws" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.xml.internal.*";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.istack.internal";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.istack.internal.*";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.com.sun.org.apache.xerces.internal.*";
+ permission java.lang.RuntimePermission "accessDeclaredMembers";
+ permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+ permission java.util.PropertyPermission "*", "read";
+};
+
+grant codeBase "jrt:/jdk.charsets" {
+ permission java.io.FilePermission "${java.home}/-", "read";
+ permission java.util.PropertyPermission "os.name", "read";
+ permission java.util.PropertyPermission "sun.nio.cs.map", "read";
+ permission java.lang.RuntimePermission "charsetProvider";
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.jdk.internal.misc";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.cs";
+};
+
+grant codeBase "jrt:/jdk.crypto.ec" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "loadLibrary.sunec";
+ permission java.util.PropertyPermission "*", "read";
+ permission java.security.SecurityPermission "putProviderProperty.SunEC";
+ permission java.security.SecurityPermission "clearProviderProperties.SunEC";
+ permission java.security.SecurityPermission "removeProviderProperty.SunEC";
+};
+
+grant codeBase "jrt:/jdk.crypto.pkcs11" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
+ permission java.lang.RuntimePermission "loadLibrary.j2pkcs11";
+ // needs "security.pkcs11.allowSingleThreadedModules"
+ permission java.util.PropertyPermission "*", "read";
+ permission java.security.SecurityPermission "putProviderProperty.*";
+ permission java.security.SecurityPermission "clearProviderProperties.*";
+ permission java.security.SecurityPermission "removeProviderProperty.*";
+ permission java.security.SecurityPermission
+ "getProperty.auth.login.defaultCallbackHandler";
+ permission java.security.SecurityPermission "authProvider.*";
+ // Needed for reading PKCS11 config file and NSS library check
+ permission java.io.FilePermission "<<ALL FILES>>", "read";
+};
+
+grant codeBase "jrt:/jdk.dynalink" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.internal.le" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.jsobject" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.localedata" {
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.text.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.util.*";
+ permission java.util.PropertyPermission "*", "read";
+};
+
+grant codeBase "jrt:/jdk.naming.dns" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.scripting.nashorn" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.scripting.nashorn.shell" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.security.auth" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.security.jgss" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.zipfs" {
+ permission java.io.FilePermission "<<ALL FILES>>", "read,write,delete";
+ permission java.lang.RuntimePermission "fileSystemProvider";
+ permission java.util.PropertyPermission "*", "read";
+};
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/solaris/lib/security/default.policy Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,16 @@
+grant codeBase "jrt:/jdk.crypto.ucrypto" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.ch";
+ permission java.lang.RuntimePermission "loadLibrary.j2ucrypto";
+ // need "com.oracle.security.ucrypto.debug" for debugging
+ permission java.util.PropertyPermission "*", "read";
+ permission java.security.SecurityPermission
+ "putProviderProperty.OracleUcrypto";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.OracleUcrypto";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.OracleUcrypto";
+ permission java.io.FilePermission
+ "${java.home}/conf/security/ucrypto-solaris.cfg", "read";
+};
--- a/jdk/src/java.base/unix/native/libjava/TimeZone_md.c Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.base/unix/native/libjava/TimeZone_md.c Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -822,18 +822,21 @@
{
time_t offset;
char sign, buf[32];
- struct tm *local_tm;
+ struct tm local_tm;
time_t clock;
- time_t currenttime;
clock = time(NULL);
- tzset();
- local_tm = localtime(&clock);
- if (local_tm->tm_gmtoff >= 0) {
- offset = (time_t) local_tm->tm_gmtoff;
+ if (localtime_r(&clock, &local_tm) == NULL) {
+ return strdup("GMT");
+ }
+ offset = (time_t)local_tm.tm_gmtoff;
+ if (offset == 0) {
+ return strdup("GMT");
+ }
+ if (offset > 0) {
sign = '+';
} else {
- offset = (time_t) -local_tm->tm_gmtoff;
+ offset = -offset;
sign = '-';
}
sprintf(buf, (const char *)"GMT%c%02d:%02d",
@@ -854,7 +857,7 @@
currenttime = time(NULL);
if (localtime_r(¤ttime, &localtm) == NULL) {
- return NULL;
+ return strdup("GMT");
}
offset = localtm.tm_isdst ? altzone : timezone;
--- a/jdk/src/java.base/windows/conf/security/java.policy Fri Jul 29 11:25:59 2016 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-grant codeBase "jrt:/jdk.crypto.mscapi" {
- permission java.lang.RuntimePermission "accessClassInPackage.sun.security.*";
- permission java.lang.RuntimePermission "loadLibrary.sunmscapi";
- permission java.util.PropertyPermission "*", "read";
- permission java.security.SecurityPermission "putProviderProperty.SunMSCAPI";
- permission java.security.SecurityPermission "clearProviderProperties.SunMSCAPI";
- permission java.security.SecurityPermission "removeProviderProperty.SunMSCAPI";
-};
-
-grant codeBase "jrt:/jdk.accessibility" {
- permission java.security.AllPermission;
-};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/java.base/windows/lib/security/default.policy Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,15 @@
+grant codeBase "jrt:/jdk.accessibility" {
+ permission java.security.AllPermission;
+};
+
+grant codeBase "jrt:/jdk.crypto.mscapi" {
+ permission java.lang.RuntimePermission
+ "accessClassInPackage.sun.security.*";
+ permission java.lang.RuntimePermission "loadLibrary.sunmscapi";
+ permission java.security.SecurityPermission "putProviderProperty.SunMSCAPI";
+ permission java.security.SecurityPermission
+ "clearProviderProperties.SunMSCAPI";
+ permission java.security.SecurityPermission
+ "removeProviderProperty.SunMSCAPI";
+ permission java.util.PropertyPermission "*", "read";
+};
--- a/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_ko.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/java.desktop/share/classes/com/sun/accessibility/internal/resources/accessibility_ko.properties Mon Aug 01 10:06:09 2016 -0700
@@ -14,8 +14,8 @@
# accessible roles
#
alert=\uACBD\uBCF4
-awtcomponent=AWT \uAD6C\uC131 \uC694\uC18C
-checkbox=\uCCB4\uD06C \uBC15\uC2A4
+awtcomponent=AWT \uAD6C\uC131\uC694\uC18C
+checkbox=\uCCB4\uD06C\uBC15\uC2A4
colorchooser=\uC0C9\uC0C1 \uC120\uD0DD\uAE30
columnheader=\uC5F4 \uBA38\uB9AC\uAE00
combobox=\uCF64\uBCF4 \uC0C1\uC790
@@ -52,7 +52,7 @@
separator=\uAD6C\uBD84 \uAE30\uD638
slider=\uC2AC\uB77C\uC774\uB354
splitpane=\uBD84\uD560 \uCC3D
-swingcomponent=\uD68C\uC804 \uAD6C\uC131 \uC694\uC18C
+swingcomponent=\uD68C\uC804 \uAD6C\uC131\uC694\uC18C
table=\uD14C\uC774\uBE14
text=\uD14D\uC2A4\uD2B8
tree=\uD2B8\uB9AC
--- a/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java Mon Aug 01 10:06:09 2016 -0700
@@ -245,7 +245,7 @@
{"no.timestamp.signing",
"-tsa\u307E\u305F\u306F-tsacert\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u305F\u3081\u3001\u3053\u306Ejar\u306B\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u4ED8\u52A0\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
{"no.timestamp.verifying",
- "\u3053\u306Ejar\u306B\u306F\u3001\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650(%1$tY-%1$tm-%1$td)\u5F8C\u306B\u3001\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
+ "\u3053\u306Ejar\u306B\u306F\u3001\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u7F72\u540D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u304C\u306A\u3044\u3068\u3001\u3044\u305A\u308C\u304B\u306E\u7F72\u540D\u8005\u8A3C\u660E\u66F8\u306E\u6709\u52B9\u671F\u9650\u5F8C\u306B(\u65E9\u3051\u308C\u3070%1$tY-%1$tm-%1$td)\u30E6\u30FC\u30B6\u30FC\u306F\u3053\u306Ejar\u3092\u691C\u8A3C\u3067\u304D\u306A\u3044\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002"},
{"Unknown.password.type.", "\u4E0D\u660E\u306A\u30D1\u30B9\u30EF\u30FC\u30C9\u30FB\u30BF\u30A4\u30D7: "},
{"Cannot.find.environment.variable.",
"\u74B0\u5883\u5909\u6570\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
--- a/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java Mon Aug 01 10:06:09 2016 -0700
@@ -245,7 +245,7 @@
{"no.timestamp.signing",
"\u672A\u63D0\u4F9B -tsa \u6216 -tsacert, \u6B64 jar \u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
{"no.timestamp.verifying",
- "\u6B64 jar \u5305\u542B\u7684\u7B7E\u540D\u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u7B7E\u540D\u8005\u8BC1\u4E66\u7684\u5230\u671F\u65E5\u671F (%1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
+ "\u6B64 jar \u5305\u542B\u7684\u7B7E\u540D\u6CA1\u6709\u65F6\u95F4\u6233\u3002\u5982\u679C\u6CA1\u6709\u65F6\u95F4\u6233, \u5219\u5728\u5176\u4E2D\u4EFB\u4E00\u7B7E\u540D\u8005\u8BC1\u4E66\u5230\u671F (\u6700\u65E9\u4E3A %1$tY-%1$tm-%1$td) \u4E4B\u540E, \u7528\u6237\u53EF\u80FD\u65E0\u6CD5\u9A8C\u8BC1\u6B64 jar\u3002"},
{"Unknown.password.type.", "\u672A\u77E5\u53E3\u4EE4\u7C7B\u578B: "},
{"Cannot.find.environment.variable.",
"\u627E\u4E0D\u5230\u73AF\u5883\u53D8\u91CF: "},
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_de.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=--module-version oder --hash-modules ohne module-info.class
error.unexpected.module-info=Unerwarteter Moduldeskriptor {0}
error.module.descriptor.not.found=Moduldeskriptor nicht gefunden
-error.versioned.info.without.root=module-info.class in Abschnitt mit Versionsangabe ohne module-info.class in Root ermittelt
-error.versioned.info.name.notequal=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt falschen Namen
-error.versioned.info.requires.public=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt zus\u00E4tzlichen "requires public"
-error.versioned.info.requires.added=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt zus\u00E4tzlichen "requires"
-error.versioned.info.requires.dropped=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt fehlenden "requires"
-error.versioned.info.exports.notequal=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt unterschiedliche "exports"
-error.versioned.info.provides.notequal=module-info.class in Abschnitt mit Versionsangabe enth\u00E4lt unterschiedliche "provides"
+error.versioned.info.without.root=module-info.class in einem versionierten Verzeichnis gefunden, in der Root ist module-info.class jedoch nicht vorhanden
+error.versioned.info.name.notequal=module-info.class in einem versionierten Verzeichnis enth\u00E4lt falschen Namen
+error.versioned.info.requires.public=module-info.class in einem versionierten Verzeichnis enth\u00E4lt zus\u00E4tzlichen "requires public"
+error.versioned.info.requires.added=module-info.class in einem versionierten Verzeichnis enth\u00E4lt zus\u00E4tzlichen "requires"
+error.versioned.info.requires.dropped=module-info.class in einem versionierten Verzeichnis enth\u00E4lt fehlenden "requires"
+error.versioned.info.exports.notequal=module-info.class in einem versionierten Verzeichnis enth\u00E4lt unterschiedliche "exports"
+error.versioned.info.provides.notequal=module-info.class in einem versionierten Verzeichnis enth\u00E4lt unterschiedliche "provides"
error.invalid.versioned.module.attribute=Ung\u00FCltiges Moduldeskriptorattribut {0}
error.missing.provider=Serviceprovider nicht gefunden: {0}
+error.release.value.notnumber=Release {0} nicht g\u00FCltig
+error.release.value.toosmall=Release {0} nicht g\u00FCltig, muss >= 9 sein
out.added.manifest=Manifest wurde hinzugef\u00FCgt
out.added.module-info=module-info hinzugef\u00FCgt: {0}
out.update.manifest=Manifest wurde aktualisiert
@@ -64,12 +66,12 @@
out.inflated=\ vergr\u00F6\u00DFert: {0}
out.size=(ein = {0}) (aus = {1})
-usage.compat=Kompatibilit\u00E4tsschnittstelle:\nVerwendung: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standardausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei einschlie\u00DFen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr Standalone-Anwendung angeben, \n die in einer ausf\u00FChrbaren JAR-Datei geb\u00FCndelt ist\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem "/" (absoluter Pfad) und ".." (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifestdatei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei einschlie\u00DFen\nFalls eine Datei ein Verzeichnis ist, wird dieses rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunkts werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Archivieren Sie zwei Klassendateien in ein Archiv mit Namen "classes.jar": \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Verwenden Sie die vorhandene Manifestdatei "mymanifest", und archivieren Sie alle\n Dateien im Verzeichnis foo/ in "classes.jar": \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Kompatibilit\u00E4tsschnittstelle:\nVerwendung: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] Dateien] ...\nOptionen:\n -c Neues Archiv erstellen\n -t Inhaltsverzeichnis f\u00FCr Archiv anzeigen\n -x Benannte (oder alle) Dateien aus Archiv extrahieren\n -u Vorhandenes Archiv aktualisieren\n -v Ausgabe im Verbose-Modus aus Standardausgabe generieren\n -f Dateinamen f\u00FCr Archiv angeben\n -m Manifestinformationen aus angegebener Manifestdatei aufnehmen\n -n Pack200-Normalisierung nach Erstellung eines neuen Archivs ausf\u00FChren\n -e Anwendungseinstiegspunkt f\u00FCr in ausf\u00FChrbare JAR-Datei \n geb\u00FCndelte Standalone-Anwendung angeben\n -0 Nur speichern; keine ZIP-Komprimierung verwenden\n -P Komponenten mit vorangestelltem "/" (absoluter Pfad) und ".." (\u00FCbergeordnetes Verzeichnis) aus Dateinamen beibehalten\n -M Keine Manifestdatei f\u00FCr die Eintr\u00E4ge erstellen\n -i Indexinformationen f\u00FCr die angegebenen JAR-Dateien erstellen\n -C Zum angegebenen Verzeichnis wechseln und folgende Datei ber\u00FCcksichtigen\nDateien, die Verzeichnisse sind, werden rekursiv verarbeitet.\nDer Name der Manifestdatei, der Name der Archivdatei und der Name des Einstiegspunktes werden\nin derselben Reihenfolge wie die Kennzeichen "m", "f" und "e" angegeben.\n\nBeispiel 1: Zwei Klassendateien in ein Archiv "classes.jar" archivieren: \n jar cvf classes.jar Foo.class Bar.class \nBeispiel 2: Mit der vorhandenen Manifestdatei "mymanifest" alle\n Dateien im Verzeichnis foo/ in "classes.jar" archivieren: \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: Sie m\u00FCssen eine -ctxui-Option angeben.
main.usage.summary.try=Verwenden Sie "jar --help", um weitere Informationen anzuzeigen.
-main.help.preopt=Verwendung: jar [OPTION...] [-C dir] files ...\njar erstellt ein Archiv f\u00FCr Klassen und Ressourcen und kann individuelle\nKlassen oder Ressourcen aus einem Archiv bearbeiten oder wiederherstellen.\n\n Beispiele:\n # Ein Archiv namens classes.jar mit zwei Klassendateien erstellen:\n jar --create --file classes.jar Foo.class Bar.class\n # Ein Archiv mit einem vorhandenen Manifest mit allen Dateien in foo/ erstellen:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Ein modulares JAR-Archiv erstellen, dessen Moduldeskriptor sich in\n # classes/module-info.class befindet:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Ein vorhandenes nicht modulares JAR-Archiv in ein modulares JAR-Archiv aktualisieren:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Verwendung: jar [OPTION...] [ [--release VERSION] [-C dir] Dateien] ...\njar erstellt ein Archiv f\u00FCr Klassen und Ressourcen und kann individuelle\nKlassen oder Ressourcen aus einem Archiv bearbeiten oder wiederherstellen.\n\n Beispiele:\n # Ein Archiv namens classes.jar mit zwei Klassendateien erstellen:\n jar --create --file classes.jar Foo.class Bar.class\n # Ein Archiv mit einem vorhandenen Manifest mit allen Dateien in foo/ erstellen:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Ein modulares JAR-Archiv erstellen, dessen Moduldeskriptor sich in\n # classes/module-info.class befindet:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Ein vorhandenes nicht modulares JAR-Archiv in ein modulares JAR-Archiv aktualisieren:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Multi-Release-JAR-Datei erstellen, wobei einige Dateien in das Verzeichnis META-INF/versions/9 gespeichert werden:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Hauptvorgangsmodus:\n
main.help.opt.main.create=\ -c, --create Archiv erstellen
main.help.opt.main.generate-index=\ -i, --generate-index=FILE Indexinformationen f\u00FCr die angegebenen JAR-\n Archive generieren
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Benannte (oder alle) Dateien aus dem Archiv extrahieren
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Moduldeskriptor drucken
main.help.opt.any=\ In jedem Modus g\u00FCltige Vorgangsmodifikatoren:\n\n -C DIR Zum angegebenen Verzeichnis wechseln und die folgende\n Datei aufnehmen
-main.help.opt.any.file=\ -f, --file=FILE Der Archivdateiname
+main.help.opt.any.file=-f, --file=FILE Der Name der Archivdatei\n --release VERSION Die folgenden Dateien werden in ein versioniertes Verzeichnis\n der JAR-Datei gespeichert (d.h. META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose Verbose-Ausgabe bei Standardausgabe generieren
main.help.opt.create.update=\ Vorgangsmodifikatoren, die nur im Erstellungs- und Aktualisierungsmodus g\u00FCltig sind:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Der Anwendungseinstiegspunkt f\u00FCr Standalone-\n Anwendungen, die in einem modularen oder ausf\u00FChrbaren\n JAR-Archiv geb\u00FCndelt sind
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_es.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_es.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=Uno de --module-version o -hash-modules sin module-info.class
error.unexpected.module-info=Descriptor de m\u00F3dulo inesperado {0}
error.module.descriptor.not.found=No se ha encontrado el descriptor de m\u00F3dulo
-error.versioned.info.without.root=Se ha encontrado module-info.class en la secci\u00F3n de versi\u00F3n sin module-info.class en la ra\u00EDz
-error.versioned.info.name.notequal=module-info.class en la secci\u00F3n de versi\u00F3n contiene un nombre incorrecto
-error.versioned.info.requires.public=module-info.class en la secci\u00F3n de versi\u00F3n contiene requisitos p\u00FAblicos adicionales
-error.versioned.info.requires.added=module-info.class en la secci\u00F3n de versi\u00F3n contiene requisitos adicionales
-error.versioned.info.requires.dropped=module-info.class en la secci\u00F3n de versi\u00F3n contiene requisitos que faltan
-error.versioned.info.exports.notequal=module-info.class en la secci\u00F3n de versi\u00F3n contiene exportaciones diferentes
-error.versioned.info.provides.notequal=module-info.class en la secci\u00F3n de versi\u00F3n contiene aportaciones diferentes
+error.versioned.info.without.root=Se ha encontrado module-info.class en un directorio con versi\u00F3n sin module-info.class en la ra\u00EDz
+error.versioned.info.name.notequal=module-info.class en un directorio con versi\u00F3n contiene un nombre incorrecto
+error.versioned.info.requires.public=module-info.class en un directorio con versi\u00F3n contiene requisitos p\u00FAblicos adicionales
+error.versioned.info.requires.added=module-info.class en un directorio con versi\u00F3n contiene requisitos adicionales
+error.versioned.info.requires.dropped=module-info.class en un directorio con versi\u00F3n contiene requisitos que faltan
+error.versioned.info.exports.notequal=module-info.class en un directorio con versi\u00F3n contiene exportaciones diferentes
+error.versioned.info.provides.notequal=module-info.class en un directorio con versi\u00F3n contiene aportaciones diferentes
error.invalid.versioned.module.attribute=Atributo de descriptor de m\u00F3dulo no v\u00E1lido {0}
error.missing.provider=No se ha encontrado el proveedor de servicios: {0}
+error.release.value.notnumber=versi\u00F3n {0} no v\u00E1lida
+error.release.value.toosmall=versi\u00F3n {0} no v\u00E1lida, debe ser >= 9
out.added.manifest=manifiesto agregado
out.added.module-info=module-info agregado: {0}
out.update.manifest=manifiesto actualizado
@@ -64,12 +66,12 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (salida = {1})
-usage.compat=Interfaz de compatibilidad:\nSintaxis: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\nOpciones:\n -c crear nuevo archivo\n -t crear la tabla de contenido del archivo\n -x extraer el archivo mencionado (o todos) del archivo\n -u actualizar archivo existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre de archivo de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archivo de manifiesto especificado\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archivo jar ejecutable\n -0 s\u00F3lo almacenar; no utilizar compresi\u00F3n ZIP\n -P conservar componentes iniciales '/' (ruta absoluta) y ".." (directorio principal) en los nombres de archivo\n -M no crear un archivo de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archivos jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente.\nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\nespecifican en el mismo orden que los indicadores 'm', 'f' y 'e'.\n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interfaz de compatibilidad:\nSintaxis: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...Opciones: \n -c crear nuevo archivo\n -t mostrar la tabla de contenido del archivo\n -x extraer el archivo mencionado (o todos) del archivo\n -u actualizar archivo existente\n -v generar salida detallada de los datos de salida est\u00E1ndar\n -f especificar nombre del archivo de almacenamiento\n -m incluir informaci\u00F3n de manifiesto del archivo de manifiesto especificado n -n realizar la normalizaci\u00F3n Pack200 despu\u00E9s de crear un archivo nuevo\n -e especificar punto de entrada de la aplicaci\u00F3n para la aplicaci\u00F3n aut\u00F3noma \n que se incluye dentro de un archivo jar ejecutable\n -0 solo almacenar; no utilizar compresi\u00F3n ZIP\n -P conservar componentes iniciales '/' (ruta absoluta) y ".." (directorio principal) en los nombres de archivo\n -M no crear un archivo de manifiesto para las entradas\n -i generar informaci\u00F3n de \u00EDndice para los archivos jar especificados\n -C cambiar al directorio especificado e incluir el archivo siguiente\nSi alg\u00FAn archivo es un directorio, se procesar\u00E1 de forma recurrente. \nEl nombre del archivo de manifiesto, el nombre del archivo de almacenamiento y el nombre del punto de entrada se\n especifican en el mismo orden que los indicadores 'm', 'f' y 'e'. \n\nEjemplo 1: para archivar archivos de dos clases en un archivo llamado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEjemplo 2: utilice un archivo de manifiesto existente 'mymanifest' y archive todos los\n archivos del directorio foo/ en 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: Debe especificar una de las opciones -ctxui.
main.usage.summary.try=Intente `jar --help' para obtener m\u00E1s informaci\u00F3n.
-main.help.preopt=Sintaxis: archivos jar [OPTION...] [-C dir] ...\njar crea un archivo para las clases y recursos y puede manipular o\nrestaurar clases individuales o recursos de un archivo.\n\n Ejemplos:\n # Crear un archivo denominado classes.jar con dos archivos de clase:\n jar --create --file classes.jar Foo.class Bar.class\n # Crear un archivo con un manifiesto existente, con todos los archivos en foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crear un archivo jar modular, donde el descriptor de m\u00F3dulo est\u00E1 en\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # actualizar un jar no modular en un jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Sintaxis: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar crea un archivo para las clases y recursos y puede manipular o\nrestaurar clases individuales o recursos de un archivo.\n\n Ejemplos:\n # Crear un archivo denominado classes.jar con dos archivos de clase:\n jar --create --file classes.jar Foo.class Bar.class\n # Crear un archivo con un manifiesto existente, con todos los archivos en foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crear un archivo jar modular, donde el descriptor de m\u00F3dulo est\u00E1 en\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Actualizar un jar no modular en un jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Crear un archivo jar de varias versiones y colocar algunos archivos en el directorio META-INF/versions/9:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Modo de operaci\u00F3n principal:\n
main.help.opt.main.create=\ -c, --create Crear el archivo
main.help.opt.main.generate-index=\ -i, --generate-index=FILE Generar informaci\u00F3n de \u00EDndice para los archivos jar\n especificados
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Extraer determinados (o todos) los archivos del archivo
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprimir el descriptor de m\u00F3dulo
main.help.opt.any=\ Modificadores de operaci\u00F3n v\u00E1lidos en cualquier modo:\n\n -C DIR Cambiar al directorio especificado e incluir el\n siguiente archivo
-main.help.opt.any.file=\ -f, --file=FILE Nombre del archivo
+main.help.opt.any.file=\ -f, --file=FILE Nombre del archivo\n --release VERSION Se colocan todos los archivos siguientes en un directorio con versi\u00F3n\n del archivo jar (es decir, META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose Generar salida verbose en salida est\u00E1ndar
main.help.opt.create.update=\ Modificadores de operaci\u00F3n v\u00E1lidos solo en el modo de creaci\u00F3n y de actualizaci\u00F3n:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Punto de entrada de la aplicaci\u00F3n para aplicaciones\n aut\u00F3nomas agrupadas en un archivo jar modular o\n ejecutable
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_fr.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=Une des options --module-version ou --hash-modules sans module-info.class
error.unexpected.module-info=Descripteur de module {0} inattendu
error.module.descriptor.not.found=Descripteur de module introuvable
-error.versioned.info.without.root=module-info.class a \u00E9t\u00E9 d\u00E9tect\u00E9 dans la section avec num\u00E9ro de version sans module-info.class dans la racine
-error.versioned.info.name.notequal=module-info.class dans la section avec num\u00E9ro de version contient un nom incorrect
-error.versioned.info.requires.public=module-info.class dans la section avec num\u00E9ro de version contient des exigences publiques suppl\u00E9mentaires
-error.versioned.info.requires.added=module-info.class dans la section avec num\u00E9ro de version contient des exigences suppl\u00E9mentaires
-error.versioned.info.requires.dropped=module-info.class dans la section avec num\u00E9ro de version contient des exigences manquantes
-error.versioned.info.exports.notequal=module-info.class dans la section avec num\u00E9ro de version contient des exports diff\u00E9rents
-error.versioned.info.provides.notequal=module-info.class dans la section avec num\u00E9ro de version contient des fournitures diff\u00E9rentes
+error.versioned.info.without.root=module-info.class a \u00E9t\u00E9 d\u00E9tect\u00E9 dans un r\u00E9pertoire avec num\u00E9ro de version sans module-info.class dans la racine
+error.versioned.info.name.notequal=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient un nom incorrect
+error.versioned.info.requires.public=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient des exigences publiques suppl\u00E9mentaires
+error.versioned.info.requires.added=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient des exigences suppl\u00E9mentaires
+error.versioned.info.requires.dropped=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient des exigences manquantes
+error.versioned.info.exports.notequal=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient des exports diff\u00E9rents
+error.versioned.info.provides.notequal=module-info.class dans un r\u00E9pertoire avec num\u00E9ro de version contient des fournitures diff\u00E9rentes
error.invalid.versioned.module.attribute=Attribut de descripteur de module non valide {0}
error.missing.provider=Fournisseur de services introuvable : {0}
+error.release.value.notnumber=version {0} non valide
+error.release.value.toosmall=version {0} non valide : elle doit \u00EAtre sup\u00E9rieure ou \u00E9gale \u00E0 9
out.added.manifest=manifeste ajout\u00E9
out.added.module-info=module-info ajout\u00E9 : {0}
out.update.manifest=manifeste mis \u00E0 jour
@@ -69,7 +71,7 @@
main.usage.summary=jar : vous devez sp\u00E9cifier l'une des options -ctxui.
main.usage.summary.try=Pour plus d'informations, essayez 'jar --help'.
-main.help.preopt=Syntaxe : jar [OPTION...] [-C dir] files ...\njar cr\u00E9e une archive pour les classes et les ressources, et peut manipuler ou\nrestaurer les classes ou ressources individuelles \u00E0 partir d'une archive.\n\n Exemples :\n # Cr\u00E9ation d'une archive nomm\u00E9e classes.jar compos\u00E9e de deux fichiers de classe :\n jar --create --file classes.jar Foo.class Bar.class\n # Cr\u00E9ation d'une archive \u00E0 l'aide d'un manifeste existant, avec tous les fichiers dans foo/ :\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cr\u00E9ation d'une archive JAR modulaire, o\u00F9 le descripteur de module est situ\u00E9 dans\n # classes/module-info.class :\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Mise \u00E0 jour d'un fichier JAR non modulaire existant vers un fichier JAR modulaire :\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Syntaxe : jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar cr\u00E9e une archive pour les classes et les ressources, et peut manipuler ou\nrestaurer les classes ou ressources individuelles \u00E0 partir d'une archive.\n\n Exemples :\n # Cr\u00E9ation d'une archive nomm\u00E9e classes.jar compos\u00E9e de deux fichiers de classe :\n jar --create --file classes.jar Foo.class Bar.class\n # Cr\u00E9ation d'une archive \u00E0 l'aide d'un manifeste existant, avec tous les fichiers dans foo/ :\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cr\u00E9ation d'une archive JAR modulaire, o\u00F9 le descripteur de module est situ\u00E9 dans\n # classes/module-info.class :\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Mise \u00E0 jour d'un fichier JAR non modulaire existant vers un fichier JAR modulaire :\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Cr\u00E9e un fichier JAR multiversion en pla\u00E7ant certains fichiers dans le r\u00E9pertoire META-INF/versions/9 :\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Mode d'exploitation principal :\n
main.help.opt.main.create=\ -c, --create Cr\u00E9e l'archive
main.help.opt.main.generate-index=\ -i, --generate-index=FILE G\u00E9n\u00E8re des informations d'index pour les archives JAR\n indiqu\u00E9es
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Extrait des fichiers nomm\u00E9s (ou tous les fichiers) de l'archive
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprime le descripteur de module
main.help.opt.any=\ Modificateurs d'op\u00E9ration valides pour tous les modes :\n\n -C DIR Passe au r\u00E9pertoire sp\u00E9cifi\u00E9 et inclut le\n fichier suivant
-main.help.opt.any.file=\ -f, --file=FILE Nom de fichier d'archive
+main.help.opt.any.file=\ -f, --file=FILE Nom de fichier d'archive\n --release VERSION Place tous les fichiers suivants dans un r\u00E9pertoire avec num\u00E9ro de version\n du fichier JAR (par exemple, META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose G\u00E9n\u00E8re une sortie en mode verbose d'une sortie standard
main.help.opt.create.update=\ Modificateurs d'op\u00E9ration valides uniquement en modes create et update :\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Point d'entr\u00E9e d'une application en mode autonome\n int\u00E9gr\u00E9e \u00E0 une archive JAR modulaire\n ou ex\u00E9cutable
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_it.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_it.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=Una delle opzioni --module-version o --hash-modules non contiene module-info.class
error.unexpected.module-info=Descrittore di modulo {0} imprevisto
error.module.descriptor.not.found=Descrittore di modulo non trovato
-error.versioned.info.without.root=module-info.class trovato nella sezione con controllo delle versioni senza module-info.class nella radice
-error.versioned.info.name.notequal=module-info.class nella sezione con controllo delle versioni contiene un nome errato
-error.versioned.info.requires.public=module-info.class nella sezione con controllo delle versioni contiene requisiti aggiuntivi pubblici
-error.versioned.info.requires.added=module-info.class nella sezione con controllo delle versioni contiene requisiti aggiuntivi
-error.versioned.info.requires.dropped=Mancano requisiti in module-info.class nella sezione con controllo delle versioni
-error.versioned.info.exports.notequal=module-info.class nella sezione con controllo delle versioni contiene esportazioni differenti
-error.versioned.info.provides.notequal=module-info.class nella sezione con controllo delle versioni contiene elementi differenti
+error.versioned.info.without.root=module-info.class trovato in una directory con controllo delle versioni senza module-info.class nella radice
+error.versioned.info.name.notequal=module-info.class in una directory con controllo delle versioni contiene un nome errato
+error.versioned.info.requires.public=module-info.class in una directory con controllo delle versioni contiene requisiti aggiuntivi pubblici
+error.versioned.info.requires.added=module-info.class in una directory con controllo delle versioni contiene requisiti aggiuntivi
+error.versioned.info.requires.dropped=Requisiti mancanti in module-info.class in una directory con controllo delle versioni
+error.versioned.info.exports.notequal=module-info.class in una directory con controllo delle versioni contiene esportazioni differenti
+error.versioned.info.provides.notequal=module-info.class in una directory con controllo delle versioni contiene elementi differenti
error.invalid.versioned.module.attribute=Attributo descrittore del modulo {0} non valido.
error.missing.provider=Provider di servizi non trovato: {0}
+error.release.value.notnumber=release {0} non valida
+error.release.value.toosmall=la release {0} non \u00E8 valida: deve essere >= 9
out.added.manifest=aggiunto manifest
out.added.module-info=aggiunto module-info: {0}
out.update.manifest=aggiornato manifest
@@ -64,12 +66,12 @@
out.inflated=\ decompresso: {0}
out.size=(in = {0}) (out = {1})
-usage.compat=Interfaccia di compatibilit\u00E0:\nUso: jar {ctxui}[vfmn0PMe] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -n esegue la normalizzazione Pack200 dopo la creazione di un nuovo archivio\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -P conserva i componenti iniziali '/' (percorso assoluto) e \\"..\\" (directory padre) dai nomi file\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interfaccia di compatibilit\u00E0:\nUso: jar {ctxui}[vfmn0PMe] [file-jar] [file-manifest] [punto di ingresso] [-C dir] file] ...\nOpzioni:\n -c crea un nuovo archivio\n -t visualizza l'indice dell'archivio\n -x estrae i file con nome (o tutti i file) dall'archivio\n -u aggiorna l'archivio esistente\n -v genera output commentato dall'output standard\n -f specifica il nome file dell'archivio\n -m include informazioni manifest dal file manifest specificato\n -n esegue la normalizzazione Pack200 dopo la creazione di un nuovo archivio\n -e specifica il punto di ingresso per l'applicazione stand-alone \n inclusa nel file jar eseguibile\n -0 solo memorizzazione; senza compressione ZIP\n -P conserva i componenti iniziali '/' (percorso assoluto) e \\"..\\" (directory padre) dai nomi file\n -M consente di non creare un file manifest per le voci\n -i genera informazioni sull'indice per i file jar specificati\n -C imposta la directory specificata e include il file seguente\nSe un file \u00E8 una directory, verr\u00E0 elaborato in modo ricorsivo.\nIl nome del file manifest, del file di archivio e del punto di ingresso devono\nessere specificati nello stesso ordine dei flag 'm', 'f' ed 'e'.\n\nEsempio 1: archiviazione di due file di classe in un archivio con il nome classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nEsempio 2: utilizzo del file manifest esistente 'mymanifest' e archiviazione di tutti i\n file della directory foo/ in 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: \u00E8 necessario specificare una delle opzioni -ctxui.
main.usage.summary.try=Utilizzare 'jar --help' per ulteriori informazioni.
-main.help.preopt=Uso: jar [OPTION...] [-C dir] file ...\nil file jar crea un archivio per le classi e le risorse e pu\u00F2 manipolare o\nripristinare le singole classi o risorse da un archivio.\n\n Esempi:\n # Crea un archivio denominato classes.jar con due file di classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Crea un archivio mediante un file manifest esistente, con tutti i file in foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crea un archivio jar modulare, in cui il descrittore di modulo si trova in\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Aggiorna un file jar non modulare esistente in un file jar modulare:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Uso: jar [OPTION...] [ [--release VERSION] [-C dir] file] ...\nIl file jar crea un archivio per le classi e le risorse e pu\u00F2 manipolare o\nripristinare le singole classi o risorse da un archivio.\n\n Esempi:\n # Crea un archivio denominato classes.jar con due file di classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Crea un archivio mediante un file manifest esistente, con tutti i file in foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Crea un archivio jar modulare, in cui il descrittore di modulo si trova in\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Aggiorna un file jar non modulare esistente in un file jar modulare:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Crea un file jar per pi\u00F9 release, posizionando alcuni file nella directory META-INF/versions/9:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Modalit\u00E0 di funzionamento principale:\n
main.help.opt.main.create=\ -c, --create Crea l'archivio
main.help.opt.main.generate-index=\ -i, --generate-index=FILE Genera le informazioni sull'indice per gli archivi\n jar specificati
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Estrae i file con nome (o tutti i file) dall'archivio
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Stampa il descrittore del modulo
main.help.opt.any=\ Modificatori di funzionamento validi in qualsiasi modalit\u00E0:\n\n -C DIR Passa alla directory specificata e include il\n file seguente
-main.help.opt.any.file=\ -f, --file=FILE Nome del file di archivio
+main.help.opt.any.file=\ -f, --file=FILE Il nome file dell'archivio.\n --release VERSION Inserisce tutti i file riportati di seguito in una directory con\n controllo delle versioni del file JAR (ovvero META-INF/versions/VERSION/).
main.help.opt.any.verbose=\ -v, --verbose Genera l'output descrittivo nell'output standard
main.help.opt.create.update=\ Modificatori di funzionamento validi solo nella modalit\u00E0 di creazione e aggiornamento:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Punto di ingresso per le applicazioni\n stand-alone incluse nell'archivio jar modulare o\n eseguibile
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ja.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=--module-version\u307E\u305F\u306F--hash-modules\u306E\u3044\u305A\u308C\u304B\u3067module-info.class\u304C\u3042\u308A\u307E\u305B\u3093
error.unexpected.module-info=\u4E88\u671F\u3057\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF{0}
error.module.descriptor.not.found=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
-error.versioned.info.without.root=\u30EB\u30FC\u30C8\u306Bmodule-info.class\u306E\u306A\u3044module-info.class\u304C\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u898B\u3064\u304B\u308A\u307E\u3057\u305F
-error.versioned.info.name.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u6B63\u3057\u304F\u306A\u3044\u540D\u524D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
-error.versioned.info.requires.public=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u8FFD\u52A0\u306Erequires public\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
-error.versioned.info.requires.added=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u8FFD\u52A0\u306Erequires\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
-error.versioned.info.requires.dropped=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u6B20\u843D\u3057\u3066\u3044\u308Brequires\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
-error.versioned.info.exports.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u7570\u306A\u308Bexports\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
-error.versioned.info.provides.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30BB\u30AF\u30B7\u30E7\u30F3\u306Emodule-info.class\u306B\u7570\u306A\u308Bprovides\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.without.root=module-info.class\u304C\u3001\u30EB\u30FC\u30C8\u306Bmodule-info.class\u306E\u306A\u3044\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u898B\u3064\u304B\u308A\u307E\u3057\u305F
+error.versioned.info.name.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u6B63\u3057\u304F\u306A\u3044\u540D\u524D\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.requires.public=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u8FFD\u52A0\u306Erequires public\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.requires.added=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u8FFD\u52A0\u306Erequires\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.requires.dropped=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u6B20\u843D\u3057\u3066\u3044\u308Brequires\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.exports.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u7570\u306A\u308Bexports\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
+error.versioned.info.provides.notequal=\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306Emodule-info.class\u306B\u7570\u306A\u308Bprovides\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059
error.invalid.versioned.module.attribute=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u5C5E\u6027{0}\u304C\u7121\u52B9\u3067\u3059
error.missing.provider=\u30B5\u30FC\u30D3\u30B9\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+error.release.value.notnumber=\u30EA\u30EA\u30FC\u30B9{0}\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093
+error.release.value.toosmall=\u30EA\u30EA\u30FC\u30B9{0}\u306F\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u30029\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
out.added.manifest=\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F
out.added.module-info=module-info\u304C\u8FFD\u52A0\u3055\u308C\u307E\u3057\u305F: {0}
out.update.manifest=\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u304C\u66F4\u65B0\u3055\u308C\u307E\u3057\u305F
@@ -64,12 +66,12 @@
out.inflated=\ {0}\u304C\u5C55\u958B\u3055\u308C\u307E\u3057\u305F
out.size=(\u5165={0})(\u51FA={1})
-usage.compat=\u4E92\u63DB\u6027\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:\n\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -n \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -P \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\"..\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u4E92\u63DB\u6027\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:\n\u4F7F\u7528\u65B9\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u30AA\u30D7\u30B7\u30E7\u30F3:\n -c \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u65B0\u898F\u4F5C\u6210\u3059\u308B\n -t \u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u5185\u5BB9\u3092\u4E00\u89A7\u8868\u793A\u3059\u308B\n -x \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3059\u308B\n -u \u65E2\u5B58\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u66F4\u65B0\u3059\u308B\n -v \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3059\u308B\n -f \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3059\u308B\n -m \u6307\u5B9A\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u60C5\u5831\u3092\u53D6\u308A\u8FBC\u3080\n -n \u65B0\u898F\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u4F5C\u6210\u5F8C\u306BPack200\u6B63\u898F\u5316\u3092\u5B9F\u884C\u3059\u308B\n -e \u5B9F\u884C\u53EF\u80FDjar\u30D5\u30A1\u30A4\u30EB\u306B\u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u3092\u6307\u5B9A\u3059\u308B\n -0 \u683C\u7D0D\u306E\u307F\u3002ZIP\u5727\u7E2E\u3092\u4F7F\u7528\u3057\u306A\u3044\n -P \u30D5\u30A1\u30A4\u30EB\u540D\u306E\u5148\u982D\u306E'/' (\u7D76\u5BFE\u30D1\u30B9)\u304A\u3088\u3073\\"..\\" (\u89AA\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA)\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u4FDD\u6301\u3059\u308B\n -M \u30A8\u30F3\u30C8\u30EA\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u4F5C\u6210\u3057\u306A\u3044\n -i \u6307\u5B9A\u306Ejar\u30D5\u30A1\u30A4\u30EB\u306E\u7D22\u5F15\u60C5\u5831\u3092\u751F\u6210\u3059\u308B\n -C \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u53D6\u308A\u8FBC\u3080\n\u30D5\u30A1\u30A4\u30EB\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\u5834\u5408\u306F\u518D\u5E30\u7684\u306B\u51E6\u7406\u3055\u308C\u307E\u3059\u3002\n\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\u304A\u3088\u3073\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8\u540D\u306F\u3001\n\u30D5\u30E9\u30B0'm'\u3001'f'\u3001'e'\u306E\u6307\u5B9A\u3068\u540C\u3058\u9806\u756A\u3067\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\n\u4F8B1: 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6classes.jar\u306B\u4FDD\u5B58\u3059\u308B: \n jar cvf classes.jar Foo.class Bar.class \n\u4F8B2: \u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u30FB\u30D5\u30A1\u30A4\u30EB'mymanifest'\u3092\u4F7F\u7528\u3057\u3001foo/\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306E\n \u5168\u30D5\u30A1\u30A4\u30EB\u3092'classes.jar'\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3059\u308B: \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: \u3044\u305A\u308C\u304B\u306E-ctxui\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
main.usage.summary.try=\u8A73\u7D30\u306F\u3001`jar --help'\u3092\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-main.help.preopt=\u4F7F\u7528\u65B9\u6CD5: jar [OPTION...] [-C dir] files ...\njar\u306F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u500B\u3005\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\n\u30EA\u30BD\u30FC\u30B9\u3092\u64CD\u4F5C\u307E\u305F\u306F\u5FA9\u5143\u3067\u304D\u307E\u3059\u3002\n\n \u4F8B:\n # 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080classes.jar\u3068\u3044\u3046\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar Foo.class Bar.class\n # foo/\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080\u3001\u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3092\u4F7F\u7528\u3057\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u30E2\u30B8\u30E5\u30E9jar\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u306Fclasses/module-info.class\u306B\n # \u3042\u308B:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u65E2\u5B58\u306E\u975E\u30E2\u30B8\u30E5\u30E9jar\u3092\u30E2\u30B8\u30E5\u30E9jar\u306B\u66F4\u65B0\u3059\u308B:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=\u4F7F\u7528\u65B9\u6CD5: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar\u306F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30EA\u30BD\u30FC\u30B9\u306E\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u3001\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u500B\u3005\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\n\u30EA\u30BD\u30FC\u30B9\u3092\u64CD\u4F5C\u307E\u305F\u306F\u5FA9\u5143\u3067\u304D\u307E\u3059\u3002\n\n \u4F8B:\n # 2\u3064\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080classes.jar\u3068\u3044\u3046\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar Foo.class Bar.class\n # foo/\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092\u542B\u3080\u3001\u65E2\u5B58\u306E\u30DE\u30CB\u30D5\u30A7\u30B9\u30C8\u3092\u4F7F\u7528\u3057\u305F\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u30E2\u30B8\u30E5\u30E9jar\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3059\u308B\u3002\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u306Fclasses/module-info.class\u306B\n # \u3042\u308B:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u65E2\u5B58\u306E\u975E\u30E2\u30B8\u30E5\u30E9jar\u3092\u30E2\u30B8\u30E5\u30E9jar\u306B\u66F4\u65B0\u3059\u308B:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # \u8907\u6570\u30EA\u30EA\u30FC\u30B9jar\u3092\u4F5C\u6210\u3057\u3001\u4E00\u90E8\u306E\u30D5\u30A1\u30A4\u30EB\u3092META-INF/versions/9\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u914D\u7F6E\u3059\u308B:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ \u30E1\u30A4\u30F3\u64CD\u4F5C\u30E2\u30FC\u30C9:\n
main.help.opt.main.create=\ -c\u3001--create \u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u307E\u3059
main.help.opt.main.generate-index=\ -i,\u3001--generate-index=FILE \u6307\u5B9A\u306Ejar\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u7D22\u5F15\u60C5\u5831\u3092\n \u751F\u6210\u3057\u307E\u3059
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x\u3001--extract \u6307\u5B9A\u306E(\u307E\u305F\u306F\u3059\u3079\u3066\u306E)\u30D5\u30A1\u30A4\u30EB\u3092\u30A2\u30FC\u30AB\u30A4\u30D6\u304B\u3089\u62BD\u51FA\u3057\u307E\u3059
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30C7\u30A3\u30B9\u30AF\u30EA\u30D7\u30BF\u3092\u51FA\u529B\u3057\u307E\u3059
main.help.opt.any=\ \u3069\u306E\u30E2\u30FC\u30C9\u3067\u3082\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n\n -C DIR \u6307\u5B9A\u306E\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u306B\u5909\u66F4\u3057\u3001\u6B21\u306E\u30D5\u30A1\u30A4\u30EB\u3092\n \u53D6\u308A\u8FBC\u307F\u307E\u3059
-main.help.opt.any.file=\ -f\u3001--file=FILE \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D
+main.help.opt.any.file=\ -f\u3001--file=FILE \u30A2\u30FC\u30AB\u30A4\u30D6\u30FB\u30D5\u30A1\u30A4\u30EB\u540D\n --release VERSION \u6B21\u306E\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB\u3092jar\u306E\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u30FB\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\n (\u3064\u307E\u308A\u3001META-INF/versions/VERSION/)\u306B\u914D\u7F6E\u3057\u307E\u3059
main.help.opt.any.verbose=\ -v\u3001--verbose \u6A19\u6E96\u51FA\u529B\u306B\u8A73\u7D30\u306A\u51FA\u529B\u3092\u751F\u6210\u3057\u307E\u3059
main.help.opt.create.update=\ \u4F5C\u6210\u307E\u305F\u306F\u66F4\u65B0\u30E2\u30FC\u30C9\u3067\u306E\u307F\u6709\u52B9\u306A\u64CD\u4F5C\u4FEE\u98FE\u5B50:\n
main.help.opt.create.update.main-class=\ -e\u3001--main-class=CLASSNAME \u30E2\u30B8\u30E5\u30E9\u307E\u305F\u306F\u5B9F\u884C\u53EF\u80FD\u306Ajar\u30A2\u30FC\u30AB\u30A4\u30D6\u306B\n \u30D0\u30F3\u30C9\u30EB\u3055\u308C\u305F\u30B9\u30BF\u30F3\u30C9\u30A2\u30ED\u30F3\u30FB\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u306E\n \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30A8\u30F3\u30C8\u30EA\u30FB\u30DD\u30A4\u30F3\u30C8
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ko.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_ko.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=module-info.class \uC5C6\uC774 --module-version \uB610\uB294 --hash-modules \uC911 \uD558\uB098
error.unexpected.module-info=\uC608\uC0C1\uCE58 \uC54A\uC740 \uBAA8\uB4C8 \uAE30\uC220\uC790 {0}
error.module.descriptor.not.found=\uBAA8\uB4C8 \uAE30\uC220\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C
-error.versioned.info.without.root=\uB8E8\uD2B8\uC5D0\uC11C module-info.class \uC5C6\uC774 \uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC5D0\uC11C module-info.class\uAC00 \uBC1C\uACAC\uB428
-error.versioned.info.name.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uC798\uBABB\uB41C \uC774\uB984\uC774 \uD3EC\uD568\uB428
-error.versioned.info.requires.public=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uCD94\uAC00 \uD544\uC218 \uACF5\uC6A9 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
-error.versioned.info.requires.added=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uCD94\uAC00 \uD544\uC218 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
-error.versioned.info.requires.dropped=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uB204\uB77D\uB41C \uD544\uC218 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
-error.versioned.info.exports.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uB2E4\uB978 \uC775\uC2A4\uD3EC\uD2B8 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
-error.versioned.info.provides.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uC139\uC158\uC758 module-info.class\uC5D0 \uB2E4\uB978 \uC81C\uACF5 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
+error.versioned.info.without.root=\uB8E8\uD2B8\uC5D0\uC11C module-info.class \uC5C6\uC774 \uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC5D0\uC11C module-info.class\uAC00 \uBC1C\uACAC\uB428
+error.versioned.info.name.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uC798\uBABB\uB41C \uC774\uB984\uC774 \uD3EC\uD568\uB428
+error.versioned.info.requires.public=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uCD94\uAC00 \uD544\uC218 \uACF5\uC6A9 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
+error.versioned.info.requires.added=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uCD94\uAC00 \uD544\uC218 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
+error.versioned.info.requires.dropped=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uB204\uB77D\uB41C \uD544\uC218 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
+error.versioned.info.exports.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uB2E4\uB978 \uC775\uC2A4\uD3EC\uD2B8 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
+error.versioned.info.provides.notequal=\uBC84\uC804 \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uC758 module-info.class\uC5D0 \uB2E4\uB978 \uC81C\uACF5 \uD56D\uBAA9\uC774 \uD3EC\uD568\uB428
error.invalid.versioned.module.attribute=\uBD80\uC801\uD569\uD55C \uBAA8\uB4C8 \uAE30\uC220\uC790 \uC18D\uC131 {0}
error.missing.provider=\uC11C\uBE44\uC2A4 \uC81C\uACF5\uC790\uB97C \uCC3E\uC744 \uC218 \uC5C6\uC74C: {0}
+error.release.value.notnumber=\uB9B4\uB9AC\uC2A4 {0}\uC774(\uAC00) \uBD80\uC801\uD569\uD568
+error.release.value.toosmall=\uB9B4\uB9AC\uC2A4 {0}\uC774(\uAC00) \uBD80\uC801\uD569\uD568. 9 \uC774\uC0C1\uC774\uC5B4\uC57C \uD569\uB2C8\uB2E4.
out.added.manifest=Manifest\uB97C \uCD94\uAC00\uD568
out.added.module-info=\uCD94\uAC00\uB41C \uBAA8\uB4C8 \uC815\uBCF4: {0}
out.update.manifest=Manifest\uB97C \uC5C5\uB370\uC774\uD2B8\uD568
@@ -64,12 +66,12 @@
out.inflated=\ \uC99D\uAC00\uB428: {0}
out.size=(\uC785\uB825 = {0}) (\uCD9C\uB825 = {1})
-usage.compat=\uD638\uD658\uC131 \uC778\uD130\uD398\uC774\uC2A4:\n\uC0AC\uC6A9\uBC95: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -n \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD55C \uD6C4 Pack200 \uC815\uADDC\uD654\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \n \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9\uC774\uBA70 ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -P \uD30C\uC77C \uC774\uB984\uC5D0\uC11C \uC120\uD589 '/'(\uC808\uB300 \uACBD\uB85C) \uBC0F ".."(\uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC) \uAD6C\uC131 \uC694\uC18C\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\uD638\uD658\uC131 \uC778\uD130\uD398\uC774\uC2A4:\n\uC0AC\uC6A9\uBC95: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\uC635\uC158:\n -c \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -t \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uBAA9\uCC28\uB97C \uB098\uC5F4\uD569\uB2C8\uB2E4.\n -x \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.\n -u \uAE30\uC874 \uC544\uCE74\uC774\uBE0C\uB97C \uC5C5\uB370\uC774\uD2B8\uD569\uB2C8\uB2E4.\n -v \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -f \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -m \uC9C0\uC815\uB41C Manifest \uD30C\uC77C\uC758 Manifest \uC815\uBCF4\uB97C \uD3EC\uD568\uD569\uB2C8\uB2E4.\n -n \uC0C8 \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD55C \uD6C4 Pack200 \uC815\uADDC\uD654\uB97C \uC218\uD589\uD569\uB2C8\uB2E4.\n -e jar \uC2E4\uD589 \uD30C\uC77C\uC5D0 \uBC88\uB4E4\uB85C \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \n \uC560\uD50C\uB9AC\uCF00\uC774\uC158 \uC2DC\uC791 \uC9C0\uC810\uC744 \uC9C0\uC815\uD569\uB2C8\uB2E4.\n -0 \uC800\uC7A5 \uC804\uC6A9\uC774\uBA70 ZIP \uC555\uCD95\uC744 \uC0AC\uC6A9\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -P \uD30C\uC77C \uC774\uB984\uC5D0\uC11C \uC120\uD589 '/'(\uC808\uB300 \uACBD\uB85C) \uBC0F ".."(\uC0C1\uC704 \uB514\uB809\uD1A0\uB9AC) \uAD6C\uC131\uC694\uC18C\uB97C \uC720\uC9C0\uD569\uB2C8\uB2E4.\n -M \uD56D\uBAA9\uC5D0 \uB300\uD574 Manifest \uD30C\uC77C\uC744 \uC0DD\uC131\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.\n -i \uC9C0\uC815\uB41C jar \uD30C\uC77C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.\n -C \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744 \uD3EC\uD568\uD569\uB2C8\uB2E4.\n\uD2B9\uC815 \uD30C\uC77C\uC774 \uB514\uB809\uD1A0\uB9AC\uC77C \uACBD\uC6B0 \uC21C\uD658\uC801\uC73C\uB85C \uCC98\uB9AC\uB429\uB2C8\uB2E4.\nManifest \uD30C\uC77C \uC774\uB984, \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984 \uBC0F \uC2DC\uC791 \uC9C0\uC810 \uC774\uB984\uC740\n'm', 'f' \uBC0F 'e' \uD50C\uB798\uADF8\uC640 \uB3D9\uC77C\uD55C \uC21C\uC11C\uB85C \uC9C0\uC815\uB429\uB2C8\uB2E4.\n\n\uC608 1: classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C\uC5D0 \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvf classes.jar Foo.class Bar.class \n\uC608 2: \uAE30\uC874 Manifest \uD30C\uC77C 'mymanifest'\uB97C \uC0AC\uC6A9\uD558\uC5EC\n foo/ \uB514\uB809\uD1A0\uB9AC\uC758 \uBAA8\uB4E0 \uD30C\uC77C\uC744 'classes.jar'\uB85C \uC544\uCE74\uC774\uBE0C\uD558\uB294 \uBC29\uBC95: \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: -ctxui \uC635\uC158 \uC911 \uD558\uB098\uB97C \uC9C0\uC815\uD574\uC57C \uD569\uB2C8\uB2E4.
main.usage.summary.try=\uC790\uC138\uD55C \uB0B4\uC6A9\uC744 \uBCF4\uB824\uBA74 'jar --help'\uB97C \uC2E4\uD589\uD558\uC2ED\uC2DC\uC624.
-main.help.preopt=\uC0AC\uC6A9\uBC95: jar [OPTION...] [-C dir] files ...\njar\uB294 \uD074\uB798\uC2A4 \uBC0F \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C\n\uAC1C\uBCC4 \uD074\uB798\uC2A4\uB098 \uB9AC\uC18C\uC2A4\uB97C \uC870\uC791\uD558\uAC70\uB098 \uBCF5\uC6D0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n\n \uC608\uC81C:\n # \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC0AC\uC6A9\uD558\uC5EC classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar Foo.class Bar.class\n # \uAE30\uC874 Manifest\uB97C \uC0AC\uC6A9\uD558\uC5EC \uBAA8\uB4E0 \uD30C\uC77C\uC774 foo/\uC5D0 \uD3EC\uD568\uB41C \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \uBAA8\uB4C8 \uAE30\uC220\uC790\uAC00 classes/module-info.class\uC5D0 \uC704\uCE58\uD55C\n # \uBAA8\uB4C8\uD615 jar \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \uAE30\uC874 \uBE44\uBAA8\uB4C8 jar\uB97C \uBAA8\uB4C8\uD615 jar\uB85C \uC5C5\uB370\uC774\uD2B8:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=\uC0AC\uC6A9\uBC95: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar\uB294 \uD074\uB798\uC2A4 \uBC0F \uB9AC\uC18C\uC2A4\uC5D0 \uB300\uD55C \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C\n\uAC1C\uBCC4 \uD074\uB798\uC2A4\uB098 \uB9AC\uC18C\uC2A4\uB97C \uC870\uC791\uD558\uAC70\uB098 \uBCF5\uC6D0\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4.\n\n \uC608\uC81C:\n # \uB450 \uD074\uB798\uC2A4 \uD30C\uC77C\uC744 \uC0AC\uC6A9\uD558\uC5EC classes.jar\uB77C\uB294 \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar Foo.class Bar.class\n # \uAE30\uC874 Manifest\uB97C \uC0AC\uC6A9\uD558\uC5EC \uBAA8\uB4E0 \uD30C\uC77C\uC774 foo/\uC5D0 \uD3EC\uD568\uB41C \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \uBAA8\uB4C8 \uAE30\uC220\uC790\uAC00 classes/module-info.class\uC5D0 \uC704\uCE58\uD55C\n # \uBAA8\uB4C8\uD615 jar \uC544\uCE74\uC774\uBE0C \uC0DD\uC131:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \uAE30\uC874 \uBE44\uBAA8\uB4C8 jar\uB97C \uBAA8\uB4C8\uD615 jar\uB85C \uC5C5\uB370\uC774\uD2B8:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # \uC77C\uBD80 \uD30C\uC77C\uC774 META-INF/versions/9 \uB514\uB809\uD1A0\uB9AC\uC5D0 \uC704\uCE58\uD55C \uB2E4\uC911 \uB9B4\uB9AC\uC2A4 jar \uC0DD\uC131:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ \uAE30\uBCF8 \uC791\uC5C5 \uBAA8\uB4DC:\n
main.help.opt.main.create=\ -c, --create \uC544\uCE74\uC774\uBE0C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4.
main.help.opt.main.generate-index=\ -i, --generate-index=FILE \uC9C0\uC815\uB41C jar \uC544\uCE74\uC774\uBE0C\uC5D0 \uB300\uD55C \uC778\uB371\uC2A4 \uC815\uBCF4\uB97C\n \uC0DD\uC131\uD569\uB2C8\uB2E4.
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract \uBA85\uBA85\uB41C(\uB610\uB294 \uBAA8\uB4E0) \uD30C\uC77C\uC744 \uC544\uCE74\uC774\uBE0C\uC5D0\uC11C \uCD94\uCD9C\uD569\uB2C8\uB2E4.
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \uBAA8\uB4C8 \uAE30\uC220\uC790\uB97C \uC778\uC1C4\uD569\uB2C8\uB2E4.
main.help.opt.any=\ \uBAA8\uB4E0 \uBAA8\uB4DC\uC5D0\uC11C \uC801\uD569\uD55C \uC791\uC5C5 \uC218\uC815\uC790:\n\n -C DIR \uC9C0\uC815\uB41C \uB514\uB809\uD1A0\uB9AC\uB85C \uBCC0\uACBD\uD558\uACE0 \uB2E4\uC74C \uD30C\uC77C\uC744\n \uD3EC\uD568\uD569\uB2C8\uB2E4.
-main.help.opt.any.file=\ -f, --file=FILE \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC785\uB2C8\uB2E4.
+main.help.opt.any.file=\ -f, --file=FILE \uC544\uCE74\uC774\uBE0C \uD30C\uC77C \uC774\uB984\uC785\uB2C8\uB2E4.\n --release VERSION \uB2E4\uC74C \uBAA8\uB4E0 \uD30C\uC77C\uC744 \uBC84\uC804 \uC9C0\uC815\uB41C jar \uB514\uB809\uD1A0\uB9AC\n (\uC608: META-INF/versions/VERSION/)\uC5D0 \uBC30\uCE58\uD569\uB2C8\uB2E4.
main.help.opt.any.verbose=\ -v, --verbose \uD45C\uC900 \uCD9C\uB825\uC5D0 \uC0C1\uC138 \uC815\uBCF4 \uCD9C\uB825\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4.
main.help.opt.create.update=\ \uC0DD\uC131 \uBC0F \uC5C5\uB370\uC774\uD2B8 \uBAA8\uB4DC\uC5D0\uC11C\uB9CC \uC801\uD569\uD55C \uC791\uC5C5 \uC218\uC815\uC790:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \uBAA8\uB4C8\uD615 \uB610\uB294 \uC2E4\uD589\uD615 jar \uC544\uCE74\uC774\uBE0C\uC5D0 \uBC88\uB4E4\uB85C\n \uC81C\uACF5\uB41C \uB3C5\uB9BD\uD615 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\uC758 \uC560\uD50C\uB9AC\uCF00\uC774\uC158\n \uC2DC\uC791 \uC9C0\uC810\uC785\uB2C8\uB2E4.
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_pt_BR.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=Um dentre --module-version ou --hash-modules est\u00E1 sem module-info.class
error.unexpected.module-info=Descritor de m\u00F3dulo inesperado {0}
error.module.descriptor.not.found=Descritor de m\u00F3dulo n\u00E3o encontrado
-error.versioned.info.without.root=module-info.class encontrado na se\u00E7\u00E3o com controle de vers\u00E3o sem module-info.class na raiz
-error.versioned.info.name.notequal=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m nome incorreto
-error.versioned.info.requires.public=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m uma depend\u00EAncia requires public adicional
-error.versioned.info.requires.added=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m depend\u00EAncias require adicionais
-error.versioned.info.requires.dropped=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m depend\u00EAncias require ausentes
-error.versioned.info.exports.notequal=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m cl\u00E1usulas exports diferentes
-error.versioned.info.provides.notequal=module-info.class na se\u00E7\u00E3o com controle de vers\u00E3o cont\u00E9m cl\u00E1usulas provides diferentes
+error.versioned.info.without.root=module-info.class encontrado em um diret\u00F3rio com controle de vers\u00E3o sem module-info.class na raiz
+error.versioned.info.name.notequal=module-info.class em um diret\u00F3rio com controle de vers\u00E3o cont\u00E9m nome incorreto
+error.versioned.info.requires.public=module-info.class em um diret\u00F3rio com controle de vers\u00E3o cont\u00E9m uma depend\u00EAncia requires public adicional
+error.versioned.info.requires.added=module-info.class em um diret\u00F3rio com controle de vers\u00E3o cont\u00E9m uma depend\u00EAncia requires adicional
+error.versioned.info.requires.dropped=em module-info.class em um diret\u00F3rio com controle de vers\u00E3o falta uma depend\u00EAncia requires
+error.versioned.info.exports.notequal=module-info.class em um diret\u00F3rio com controle de vers\u00E3o cont\u00E9m depend\u00EAncias exports diferentes
+error.versioned.info.provides.notequal=module-info.class em um diret\u00F3rio com controle de vers\u00E3o cont\u00E9m depend\u00EAncias provides diferentes
error.invalid.versioned.module.attribute=Atributo {0} de descritor de m\u00F3dulo inv\u00E1lido
error.missing.provider=Prestador de servi\u00E7os n\u00E3o encontrado: {0}
+error.release.value.notnumber=release {0} n\u00E3o v\u00E1lida
+error.release.value.toosmall=release {0} n\u00E3o v\u00E1lida; deve ser >= 9
out.added.manifest=manifesto adicionado
out.added.module-info=module-info: {0} adicionado
out.update.manifest=manifesto atualizado
@@ -64,12 +66,12 @@
out.inflated=\ inflado: {0}
out.size=(entrada = {0}) (sa\u00EDda= {1})
-usage.compat=Interface de Compatibilidade:\nUso: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplicativo para aplicativo stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e ".." (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ na 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=Interface de Compatibilidade:\nUso: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] arquivos] ...\nOp\u00E7\u00F5es:\n -c cria novo arquivo compactado\n -t lista o sum\u00E1rio do arquivo compactado\n -x extrai arquivos com o nome (ou todos) do arquivo compactado\n -u atualiza o arquivo compactado existente\n -v gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o\n -f especifica o nome do arquivo compactado\n -m inclui as informa\u00E7\u00F5es do manifesto do arquivo de manifesto especificado\n -n executa a normaliza\u00E7\u00E3o Pack200 ap\u00F3s a cria\u00E7\u00E3o de um novo arquivo compactado\n -e especifica o ponto de entrada da aplicativo para aplicativo stand-alone \n empacotada em um arquivo jar execut\u00E1vel\n -0 armazena somente; n\u00E3o usa compacta\u00E7\u00E3o ZIP\n -P preserva os componentes '/' inicial (caminho absoluto) e ".." (diret\u00F3rio pai) nos nomes dos arquivos\n -M n\u00E3o cria um arquivo de manifesto para as entradas\n -i gera informa\u00E7\u00F5es de \u00EDndice para os arquivos jar especificados\n -C passa para o diret\u00F3rio especificado e inclui o arquivo a seguir\nSe um arquivo tamb\u00E9m for um diret\u00F3rio, ele ser\u00E1 processado repetidamente.\nO nome do arquivo de manifesto, o nome do arquivo compactado e o nome do ponto de entrada s\u00E3o\nespecificados na mesma ordem dos flags 'm', 'f' e 'e'.\n\nExemplo 1: para arquivar dois arquivos de classe em um arquivo compactado denominado classes.jar: \n jar cvf classes.jar Foo.class Bar.class \nExemplo 2: use um arquivo de manifesto existente 'mymanifest' e arquive todos os\n arquivos no diret\u00F3rio foo/ em 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: Voc\u00EA deve especificar uma das op\u00E7\u00F5es -ctxui.
main.usage.summary.try=Tente `jar --ajuda' para obter mais informa\u00E7\u00F5es.
-main.help.preopt=Uso: jar [OPTION...] [-C dir] arquivos...\njar cria um arquivo compactado para classes e recursos, e pode manipular ou\nrestaurar classes ou recursos individuais de um arquivo compactado.\n\n Exemplos:\n # Cria um arquivo compactado chamado classes.jar com dois arquivos de classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Cria um arquivo compactado usando um manifesto existente, com todos os arquivos em foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cria um arquivo compactado jar modular, em que o descritor do m\u00F3dulo se localize em\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Atualiza um arquivo jar n\u00E3o modular existente para um jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Uso: jar [OPTION...] [ [--release VERSION] [-C dir] arquivos]...\njar cria um arquivo compactado para classes e recursos, e pode manipular ou\nrestaurar classes ou recursos individuais de um arquivo compactado.\n\n Exemplos:\n # Cria um arquivo compactado chamado classes.jar com dois arquivos de classe:\n jar --create --file classes.jar Foo.class Bar.class\n # Cria um arquivo compactado usando um manifesto existente, com todos os arquivos em foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Cria um arquivo compactado jar modular, em que o descritor do m\u00F3dulo se localize em\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Atualiza um arquivo jar n\u00E3o modular existente para um jar modular:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Cria um arquivo jar de v\u00E1rias releases, colocando alguns arquivos no diret\u00F3rio META-INF/versions/9:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Modo de opera\u00E7\u00E3o principal:\n
main.help.opt.main.create=\ -c, --create Cria o arquivo compactado
main.help.opt.main.generate-index=\ -i, --generate-index=FILE Gera informa\u00E7\u00F5es de \u00EDndice para os arquivos compactados jar \n especificados
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Extrai arquivos nomeados (ou todos) do arquivo compactado
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Imprime o descritor do m\u00F3dulo
main.help.opt.any=\ Modificadores de opera\u00E7\u00E3o v\u00E1lidos em qualquer modo:\n\n -C DIR Altera para o diret\u00F3rio especificado e inclui o\n seguinte arquivo:
-main.help.opt.any.file=\ -f, --file=FILE O nome do arquivo compactado
+main.help.opt.any.file=\ -f, --file=FILE O nome do arquivo compactado\n --release VERSION Coloca todos os arquivos a seguir em um diret\u00F3rio com controle de vers\u00E3o\n do arquivo jar (i.e. META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose Gera sa\u00EDda detalhada na sa\u00EDda padr\u00E3o
main.help.opt.create.update=\ Modificadores de opera\u00E7\u00E3o v\u00E1lidos somente no modo de cria\u00E7\u00E3o e atualiza\u00E7\u00E3o:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME O ponto de entrada do aplicativo para aplicativos\n stand-alone empacotados em um arquivo compactado jar modular\n ou execut\u00E1vel
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_sv.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_sv.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=--module-version eller --hash-modules utan module-info.class
error.unexpected.module-info=Ov\u00E4ntad moduldeskriptor, {0}
error.module.descriptor.not.found=Moduldeskriptorn hittades inte
-error.versioned.info.without.root=module-info.class hittades i versionshanterad sektion utan module-info.class i roten
-error.versioned.info.name.notequal=module-info.class i en versionshanterad sektion inneh\u00E5ller ett felaktigt namn
-error.versioned.info.requires.public=module-info.class i en versionshanterad sektion inneh\u00E5ller fler allm\u00E4nna obligatoriska
-error.versioned.info.requires.added=module-info.class i en versionshanterad sektion inneh\u00E5ller fler obligatoriska
-error.versioned.info.requires.dropped=module-info.class i en versionshanterad sektion inneh\u00E5ller saknade obligatoriska
-error.versioned.info.exports.notequal=module-info.class i en versionshanterad sektion inneh\u00E5ller olika exporter
-error.versioned.info.provides.notequal=module-info.class i en versionshanterad sektion inneh\u00E5ller olika tillhandah\u00E5llna
+error.versioned.info.without.root=module-info.class hittades i en versionshanterad katalog utan module-info.class i roten
+error.versioned.info.name.notequal=module-info.class i en versionshanterad katalog inneh\u00E5ller ett felaktigt namn
+error.versioned.info.requires.public=module-info.class i en versionshanterad katalog inneh\u00E5ller fler "requires public"
+error.versioned.info.requires.added=module-info.class i en versionshanterad katalog inneh\u00E5ller fler "requires"
+error.versioned.info.requires.dropped=module-info.class i en versionshanterad katalog inneh\u00E5ller saknade "requires"
+error.versioned.info.exports.notequal=module-info.class i en versionshanterad katalog inneh\u00E5ller olika "exports"
+error.versioned.info.provides.notequal=module-info.class i en versionshanterad katalog inneh\u00E5ller olika "provides"
error.invalid.versioned.module.attribute=Ogiltigt attribut f\u00F6r moduldeskriptor, {0}
error.missing.provider=Tj\u00E4nsteleverant\u00F6ren hittades inte: {0}
+error.release.value.notnumber=utg\u00E5va {0} \u00E4r inte giltig
+error.release.value.toosmall=utg\u00E5va {0} \u00E4r inte giltig, m\u00E5ste vara >= 9
out.added.manifest=tillagt manifestfil
out.added.module-info=lade till module-info: {0}
out.update.manifest=uppdaterat manifest
@@ -69,7 +71,7 @@
main.usage.summary=jar: du m\u00E5ste ange ett av -ctxui-alternativen.
main.usage.summary.try=F\u00F6rs\u00F6k med 'jar --help' f\u00F6r mer information.
-main.help.preopt=Syntax: jar [OPTION...] [-C dir] files ...\njar skapar ett arkiv f\u00F6r klasser och resurser och kan \u00E4ndra eller \n\u00E5terst\u00E4lla enskilda klasser och resurser i/fr\u00E5n ett arkiv.\n\n Exempel:\n # Skapa ett arkiv med namnet classes.jar med tv\u00E5 klassfiler:\n jar --create --file classes.jar Foo.class Bar.class\n # Skapa ett arkiv med ett befintligt manifest med alla filerna i foo/:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Skapa ett modul\u00E4rt jar-arkiv d\u00E4r moduldeskriptorn finns i\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Uppdatera ett befintligt icke-modul\u00E4rt jar-arkiv till ett modul\u00E4rt jar-arkiv:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=Syntax: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar skapar ett arkiv f\u00F6r klasser och resurser, och kan \u00E4ndra och \u00E5terst\u00E4lla\nenskilda klasser och resurser fr\u00E5n ett arkiv.\n\n Exempel:\n # Skapa ett arkiv med namnet classes.jar med tv\u00E5 klassfiler:\n jar --create --file classes.jar Foo.class Bar.class\n # Skapa ett arkiv med ett befintligt manifest med alla filerna i 'foo/':\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # Skapa ett modul\u00E4rt jar-arkiv, d\u00E4r moduldeskriptorn finns i\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # Uppdatera ett befintligt icke-modul\u00E4rt jar-arkiv till ett modul\u00E4rt jar-arkiv:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # Skapa ett jar-arkiv f\u00F6r flera utg\u00E5vor och placera vissa av filerna i katalogen 'META-INF/versions/9':\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ Huvudfunktionsl\u00E4ge:\n
main.help.opt.main.create=\ -c, --create Skapa arkivet
main.help.opt.main.generate-index=\ -i, --generate-index=FILE Generera indexinformation f\u00F6r de angivna jar-\n arkiven
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract Extrahera namngivna (eller alla) filer fr\u00E5n arkivet
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor Skriv ut moduldeskriptorn
main.help.opt.any=\ \u00C5tg\u00E4rdsmodifierare som \u00E4r giltiga i alla l\u00E4gen:\n\n -C DIR \u00C4ndra till den angivna katalogen och inkludera\n f\u00F6ljande fil
-main.help.opt.any.file=\ -f, --file=FILE Arkivfilnamnet
+main.help.opt.any.file=\ -f, --file=FILE Namnet p\u00E5 arkivfilen\n --release VERSION Placerar alla f\u00F6ljande filer i en versionshanterad katalog\n i jar-arkivet (exempel: META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose Generera utf\u00F6rliga utdata till standardutdata
main.help.opt.create.update=\ \u00C5tg\u00E4rdsmodifierare som endast \u00E4r giltiga i l\u00E4gena create och update:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME Applikationsing\u00E5ngspunkten f\u00F6r frist\u00E5ende\n applikationer paketerad i ett modul\u00E4rt, eller k\u00F6rbart,\n jar-arkiv
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_CN.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=--module-version \u6216 --hash-modules \u4E4B\u4E00\u6CA1\u6709 module-info.class
error.unexpected.module-info=\u610F\u5916\u7684\u6A21\u5757\u63CF\u8FF0\u7B26 {0}
error.module.descriptor.not.found=\u627E\u4E0D\u5230\u6A21\u5757\u63CF\u8FF0\u7B26
-error.versioned.info.without.root=\u5728\u7248\u672C\u5316\u8282\u4E2D\u627E\u5230\u4E86 module-info.class, \u4F46\u6839\u4E2D\u6CA1\u6709 module-info.class
-error.versioned.info.name.notequal=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u6B63\u786E\u7684\u540D\u79F0
-error.versioned.info.requires.public=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u989D\u5916\u7684 requires public
-error.versioned.info.requires.added=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u989D\u5916\u7684 requires
-error.versioned.info.requires.dropped=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u7F3A\u5C11\u7684 requires
-error.versioned.info.exports.notequal=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684 exports
-error.versioned.info.provides.notequal=\u7248\u672C\u5316\u8282\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684 provides
+error.versioned.info.without.root=\u5728\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u627E\u5230\u4E86 module-info.class, \u4F46\u6839\u4E2D\u6CA1\u6709 module-info.class
+error.versioned.info.name.notequal=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u6B63\u786E\u7684\u540D\u79F0
+error.versioned.info.requires.public=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u989D\u5916\u7684 requires public
+error.versioned.info.requires.added=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u989D\u5916\u7684 requires
+error.versioned.info.requires.dropped=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u7F3A\u5C11\u7684 requires
+error.versioned.info.exports.notequal=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684 exports
+error.versioned.info.provides.notequal=\u7248\u672C\u5316\u76EE\u5F55\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684 provides
error.invalid.versioned.module.attribute=\u65E0\u6548\u7684\u6A21\u5757\u63CF\u8FF0\u7B26\u5C5E\u6027 {0}
error.missing.provider=\u672A\u627E\u5230\u670D\u52A1\u63D0\u4F9B\u65B9: {0}
+error.release.value.notnumber=\u53D1\u884C\u7248 {0} \u65E0\u6548
+error.release.value.toosmall=\u53D1\u884C\u7248 {0} \u65E0\u6548, \u5FC5\u987B >= 9
out.added.manifest=\u5DF2\u6DFB\u52A0\u6E05\u5355
out.added.module-info=\u5DF2\u6DFB\u52A0 module-info: {0}
out.update.manifest=\u5DF2\u66F4\u65B0\u6E05\u5355
@@ -64,12 +66,12 @@
out.inflated=\ \u5DF2\u89E3\u538B: {0}
out.size=(\u8F93\u5165 = {0}) (\u8F93\u51FA = {1})
-usage.compat=\u517C\u5BB9\u6027\u63A5\u53E3:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...\n\u9009\u9879:\n -c \u521B\u5EFA\u65B0\u6863\u6848\n -t \u5217\u51FA\u6863\u6848\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u6863\u6848\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -n \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29\n -P \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/' (\u7EDD\u5BF9\u8DEF\u5F84) \u548C ".." (\u7236\u76EE\u5F55) \u7EC4\u4EF6\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n
+usage.compat=\u517C\u5BB9\u6027\u63A5\u53E3:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u9009\u9879:\n -c \u521B\u5EFA\u65B0\u6863\u6848\n -t \u5217\u51FA\u6863\u6848\u76EE\u5F55\n -x \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u6240\u6709) \u6587\u4EF6\n -u \u66F4\u65B0\u73B0\u6709\u6863\u6848\n -v \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA\n -f \u6307\u5B9A\u6863\u6848\u6587\u4EF6\u540D\n -m \u5305\u542B\u6307\u5B9A\u6E05\u5355\u6587\u4EF6\u4E2D\u7684\u6E05\u5355\u4FE1\u606F\n -n \u521B\u5EFA\u65B0\u6863\u6848\u540E\u6267\u884C Pack200 \u89C4\u8303\u5316\n -e \u4E3A\u6346\u7ED1\u5230\u53EF\u6267\u884C jar \u6587\u4EF6\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u6307\u5B9A\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9\n -0 \u4EC5\u5B58\u50A8; \u4E0D\u4F7F\u7528 ZIP \u538B\u7F29\n -P \u4FDD\u7559\u6587\u4EF6\u540D\u4E2D\u7684\u524D\u5BFC '/' (\u7EDD\u5BF9\u8DEF\u5F84) \u548C ".." (\u7236\u76EE\u5F55) \u7EC4\u4EF6\n -M \u4E0D\u521B\u5EFA\u6761\u76EE\u7684\u6E05\u5355\u6587\u4EF6\n -i \u4E3A\u6307\u5B9A\u7684 jar \u6587\u4EF6\u751F\u6210\u7D22\u5F15\u4FE1\u606F\n -C \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\u4EE5\u4E0B\u6587\u4EF6\n\u5982\u679C\u4EFB\u4F55\u6587\u4EF6\u4E3A\u76EE\u5F55, \u5219\u5BF9\u5176\u8FDB\u884C\u9012\u5F52\u5904\u7406\u3002\n\u6E05\u5355\u6587\u4EF6\u540D, \u6863\u6848\u6587\u4EF6\u540D\u548C\u5165\u53E3\u70B9\u540D\u79F0\u7684\u6307\u5B9A\u987A\u5E8F\n\u4E0E 'm', 'f' \u548C 'e' \u6807\u8BB0\u7684\u6307\u5B9A\u987A\u5E8F\u76F8\u540C\u3002\n\n\u793A\u4F8B 1: \u5C06\u4E24\u4E2A\u7C7B\u6587\u4EF6\u5F52\u6863\u5230\u4E00\u4E2A\u540D\u4E3A classes.jar \u7684\u6863\u6848\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u793A\u4F8B 2: \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u6587\u4EF6 'mymanifest' \u5E76\n \u5C06 foo/ \u76EE\u5F55\u4E2D\u7684\u6240\u6709\u6587\u4EF6\u5F52\u6863\u5230 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/ .\n
main.usage.summary=jar: \u5FC5\u987B\u6307\u5B9A\u5176\u4E2D\u4E00\u4E2A -ctxui \u9009\u9879\u3002
main.usage.summary.try=\u5C1D\u8BD5\u4F7F\u7528 `jar --help' \u83B7\u53D6\u8BE6\u7EC6\u4FE1\u606F\u3002
-main.help.preopt=\u7528\u6CD5: jar [OPTION...] [-C dir] files ...\njar \u521B\u5EFA\u7C7B\u548C\u8D44\u6E90\u7684\u6863\u6848, \u5E76\u4E14\u53EF\u4EE5\u5904\u7406\u6863\u6848\u4E2D\u7684\n\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u6216\u8005\u4ECE\u6863\u6848\u4E2D\u8FD8\u539F\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u3002\n\n \u793A\u4F8B:\n # \u521B\u5EFA\u5305\u542B\u4E24\u4E2A\u7C7B\u6587\u4EF6\u7684\u540D\u4E3A classes.jar \u7684\u6863\u6848:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u521B\u5EFA\u6863\u6848, \u5176\u4E2D\u5305\u542B foo/ \u4E2D\u7684\u6240\u6709\u6587\u4EF6:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u521B\u5EFA\u6A21\u5757\u5316 jar \u6863\u6848, \u5176\u4E2D\u6A21\u5757\u63CF\u8FF0\u7B26\u4F4D\u4E8E\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C06\u73B0\u6709\u7684\u975E\u6A21\u5757\u5316 jar \u66F4\u65B0\u4E3A\u6A21\u5757\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=\u7528\u6CD5: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar \u521B\u5EFA\u7C7B\u548C\u8D44\u6E90\u7684\u6863\u6848, \u5E76\u4E14\u53EF\u4EE5\u5904\u7406\u6863\u6848\u4E2D\u7684\n\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u6216\u8005\u4ECE\u6863\u6848\u4E2D\u8FD8\u539F\u5355\u4E2A\u7C7B\u6216\u8D44\u6E90\u3002\n\n \u793A\u4F8B:\n # \u521B\u5EFA\u5305\u542B\u4E24\u4E2A\u7C7B\u6587\u4EF6\u7684\u540D\u4E3A classes.jar \u7684\u6863\u6848:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73B0\u6709\u7684\u6E05\u5355\u521B\u5EFA\u6863\u6848, \u5176\u4E2D\u5305\u542B foo/ \u4E2D\u7684\u6240\u6709\u6587\u4EF6:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u521B\u5EFA\u6A21\u5757\u5316 jar \u6863\u6848, \u5176\u4E2D\u6A21\u5757\u63CF\u8FF0\u7B26\u4F4D\u4E8E\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C06\u73B0\u6709\u7684\u975E\u6A21\u5757\u5316 jar \u66F4\u65B0\u4E3A\u6A21\u5757\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # \u521B\u5EFA\u5305\u542B\u591A\u4E2A\u53D1\u884C\u7248\u7684 jar, \u5E76\u5C06\u4E00\u4E9B\u6587\u4EF6\u653E\u5728 META-INF/versions/9 \u76EE\u5F55\u4E2D:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ \u4E3B\u64CD\u4F5C\u6A21\u5F0F:\n
main.help.opt.main.create=\ -c, --create \u521B\u5EFA\u6863\u6848
main.help.opt.main.generate-index=\ -i, --generate-index=FILE \u4E3A\u6307\u5B9A\u7684 jar \u6863\u6848\u751F\u6210\n \u7D22\u5F15\u4FE1\u606F
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract \u4ECE\u6863\u6848\u4E2D\u63D0\u53D6\u6307\u5B9A\u7684 (\u6216\u5168\u90E8) \u6587\u4EF6
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u8F93\u51FA\u6A21\u5757\u63CF\u8FF0\u7B26
main.help.opt.any=\ \u5728\u4EFB\u610F\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n\n -C DIR \u66F4\u6539\u4E3A\u6307\u5B9A\u7684\u76EE\u5F55\u5E76\u5305\u542B\n \u4EE5\u4E0B\u6587\u4EF6
-main.help.opt.any.file=\ -f, --file=FILE \u6863\u6848\u6587\u4EF6\u540D
+main.help.opt.any.file=\ -f, --file=FILE \u6863\u6848\u6587\u4EF6\u540D\n --release VERSION \u5C06\u4E0B\u9762\u7684\u6240\u6709\u6587\u4EF6\u90FD\u653E\u5728\n jar \u7684\u7248\u672C\u5316\u76EE\u5F55\u4E2D (\u5373 META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose \u5728\u6807\u51C6\u8F93\u51FA\u4E2D\u751F\u6210\u8BE6\u7EC6\u8F93\u51FA
main.help.opt.create.update=\ \u5728\u521B\u5EFA\u548C\u66F4\u65B0\u6A21\u5F0F\u4E0B\u6709\u6548\u7684\u64CD\u4F5C\u4FEE\u9970\u7B26:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \u6346\u7ED1\u5230\u6A21\u5757\u5316\u6216\u53EF\u6267\u884C \n jar \u6863\u6848\u7684\u72EC\u7ACB\u5E94\u7528\u7A0B\u5E8F\n \u7684\u5E94\u7528\u7A0B\u5E8F\u5165\u53E3\u70B9
--- a/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_TW.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jartool/share/classes/sun/tools/jar/resources/jar_zh_TW.properties Mon Aug 01 10:06:09 2016 -0700
@@ -42,15 +42,17 @@
error.module.options.without.info=--module-version \u6216 --hash-modules \u5176\u4E2D\u4E00\u500B\u6C92\u6709 module-info.class
error.unexpected.module-info=\u672A\u9810\u671F\u7684\u6A21\u7D44\u63CF\u8FF0\u5340 {0}
error.module.descriptor.not.found=\u627E\u4E0D\u5230\u6A21\u7D44\u63CF\u8FF0\u5340
-error.versioned.info.without.root=versioned \u6BB5\u843D\u4E2D\u767C\u73FE module-info.class\uFF0C\u4F46\u662F\u6839\u4E2D\u6C92\u6709 module-info.class
-error.versioned.info.name.notequal=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u6B63\u78BA\u7684\u540D\u7A31
-error.versioned.info.requires.public=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u984D\u5916\u7684\u516C\u958B\u9700\u6C42\u9805\u76EE
-error.versioned.info.requires.added=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u984D\u5916\u7684\u9700\u6C42\u9805\u76EE
-error.versioned.info.requires.dropped=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u907A\u6F0F\u7684\u9700\u6C42\u9805\u76EE
-error.versioned.info.exports.notequal=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684\u532F\u51FA\u9805\u76EE
-error.versioned.info.provides.notequal=versioned \u6BB5\u843D\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684\u63D0\u4F9B\u9805\u76EE
+error.versioned.info.without.root=\u5728\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u767C\u73FE module-info.class\uFF0C\u4F46\u662F\u6839\u4E2D\u6C92\u6709 module-info.class
+error.versioned.info.name.notequal=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u6B63\u78BA\u7684\u540D\u7A31
+error.versioned.info.requires.public=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u984D\u5916\u7684\u516C\u958B\u9700\u6C42\u9805\u76EE
+error.versioned.info.requires.added=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u984D\u5916\u7684\u9700\u6C42\u9805\u76EE
+error.versioned.info.requires.dropped=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u907A\u6F0F\u7684\u9700\u6C42\u9805\u76EE
+error.versioned.info.exports.notequal=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684\u532F\u51FA\u9805\u76EE
+error.versioned.info.provides.notequal=\u5DF2\u555F\u52D5\u591A\u7248\u672C\u529F\u80FD\u76EE\u9304\u4E2D\u7684 module-info.class \u5305\u542B\u4E0D\u540C\u7684\u63D0\u4F9B\u9805\u76EE
error.invalid.versioned.module.attribute=\u6A21\u7D44\u63CF\u8FF0\u5340\u5C6C\u6027 {0} \u7121\u6548
error.missing.provider=\u627E\u4E0D\u5230\u670D\u52D9\u63D0\u4F9B\u8005: {0}
+error.release.value.notnumber=\u7248\u672C {0} \u7121\u6548
+error.release.value.toosmall=\u7248\u672C {0} \u7121\u6548\uFF0C\u5FC5\u9808\u5927\u65BC\u7B49\u65BC 9
out.added.manifest=\u5DF2\u65B0\u589E\u8CC7\u8A0A\u6E05\u55AE
out.added.module-info=\u5DF2\u65B0\u589E module-info: {0}
out.update.manifest=\u5DF2\u66F4\u65B0\u8CC7\u8A0A\u6E05\u55AE
@@ -64,12 +66,12 @@
out.inflated=\ \u64F4\u5C55: {0}
out.size=\ (\u8B80={0})(\u5BEB={1})
-usage.compat=\u76F8\u5BB9\u6027\u4ECB\u9762:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] \u6A94\u6848 ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u5B58\u6A94\n -t \u5217\u51FA\u5B58\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u5B58\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u5B58\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u5B58\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u5B58\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u5DF2\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F \n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -P \u4FDD\u7559\u6A94\u6848\u540D\u7A31\u524D\u9762\u7684 '/' (\u7D55\u5C0D\u8DEF\u5F91) \u548C ".." (\u4E0A\u5C64\u76EE\u9304) \u5143\u4EF6\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u5B58\u6A94\u6A94\u6848\u540D\u7A31\u548C\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm' \u65D7\u6A19\u3001'f' \u65D7\u6A19\u548C 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u5B58\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u5B58\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u5B58\u6A94\u81F3 'classes.jar' \u4E2D: \n jar cvfm classes.jar mymanifest -C foo/\u3002\n
+usage.compat=\u76F8\u5BB9\u6027\u4ECB\u9762:\n\u7528\u6CD5: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files] ...\n\u9078\u9805:\n -c \u5EFA\u7ACB\u65B0\u5B58\u6A94\n -t \u5217\u51FA\u5B58\u6A94\u7684\u76EE\u9304\n -x \u5F9E\u5B58\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u5168\u90E8) \u7684\u6A94\u6848\n -u \u66F4\u65B0\u73FE\u6709\u5B58\u6A94\n -v \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA\n -f \u6307\u5B9A\u5B58\u6A94\u6A94\u6848\u540D\u7A31\n -m \u5305\u542B\u6307\u5B9A\u4E4B\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u4E2D\u7684\u8CC7\u8A0A\u6E05\u55AE\u8CC7\u8A0A\n -n \u5728\u5EFA\u7ACB\u65B0\u5B58\u6A94\u4E4B\u5F8C\u57F7\u884C Pack200 \u6B63\u898F\u5316\n -e \u70BA\u96A8\u9644\u65BC\u53EF\u57F7\u884C jar \u6A94\u6848\u4E2D\u7684\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F \n \u6307\u5B9A\u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE\n -0 \u50C5\u5132\u5B58; \u4E0D\u4F7F\u7528 ZIP \u58D3\u7E2E\u65B9\u5F0F\n -P \u4FDD\u7559\u6A94\u6848\u540D\u7A31\u524D\u9762\u7684 '/' (\u7D55\u5C0D\u8DEF\u5F91) \u548C ".." (\u4E0A\u5C64\u76EE\u9304) \u5143\u4EF6\n -M \u4E0D\u70BA\u9805\u76EE\u5EFA\u7ACB\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\n -i \u70BA\u6307\u5B9A\u7684 jar \u6A94\u6848\u7522\u751F\u7D22\u5F15\u8CC7\u8A0A\n -C \u8B8A\u66F4\u81F3\u6307\u5B9A\u7684\u76EE\u9304\u4E26\u5305\u542B\u5F8C\u9762\u6240\u5217\u7684\u6A94\u6848\n\u5982\u679C\u6709\u4EFB\u4F55\u6A94\u6848\u662F\u76EE\u9304\uFF0C\u5247\u6703\u5C0D\u5176\u9032\u884C\u905E\u8FF4\u8655\u7406\u3002\n\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848\u540D\u7A31\u3001\u5B58\u6A94\u6A94\u6848\u540D\u7A31\u4EE5\u53CA\u9032\u5165\u9EDE\u540D\u7A31\n\u7684\u6307\u5B9A\u9806\u5E8F\u8207\u6307\u5B9A 'm'\u3001'f' \u4EE5\u53CA 'e' \u65D7\u6A19\u7684\u9806\u5E8F\u76F8\u540C\u3002\n\n\u7BC4\u4F8B 1: \u5C07\u5169\u500B\u985E\u5225\u6A94\u6848\u5B58\u6A94\u81F3\u540D\u70BA classes.jar \u7684\u5B58\u6A94\u4E2D: \n jar cvf classes.jar Foo.class Bar.class \n\u7BC4\u4F8B 2: \u4F7F\u7528\u73FE\u6709\u7684\u8CC7\u8A0A\u6E05\u55AE\u6A94\u6848 'mymanifest' \u4E26\u5C07\n foo/ \u76EE\u9304\u4E2D\u7684\u6240\u6709\u6A94\u6848\u5B58\u6A94\u81F3 'classes.jar': \n jar cvfm classes.jar mymanifest -C foo/\u3002\n
main.usage.summary=jar: \u60A8\u5FC5\u9808\u6307\u5B9A\u5176\u4E2D\u4E00\u500B -ctxui \u9078\u9805\u3002
main.usage.summary.try=\u8ACB\u4F7F\u7528 'jar --help' \u4EE5\u53D6\u5F97\u66F4\u591A\u7684\u8CC7\u8A0A\u3002
-main.help.preopt=\u7528\u6CD5: jar [OPTION...] [-C dir] \u6A94\u6848 ...\njar \u6703\u5EFA\u7ACB\u985E\u5225\u548C\u8CC7\u6E90\u7684\u5B58\u6A94\uFF0C\u4E26\u53EF\u64CD\u63A7\u6216\n\u56DE\u5FA9\u5B58\u6A94\u4E2D\u7684\u500B\u5225\u985E\u5225\u6216\u8CC7\u6E90\u3002\n\n \u7BC4\u4F8B:\n # \u4F7F\u7528\u5169\u500B\u985E\u5225\u6A94\u6848\u5EFA\u7ACB\u540D\u70BA classes.jar \u7684\u5B58\u6A94:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73FE\u6709\u7684\u8CC7\u8A0A\u6E05\u55AE\u548C foo/ \u4E2D\u7684\u6240\u6709\u6A94\u6848\u5EFA\u7ACB\u5B58\u6A94:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u5EFA\u7ACB\u6A21\u7D44\u5316 jar \u5B58\u6A94\uFF0C\u5176\u4E2D\u7684\u6A21\u7D44\u6558\u8FF0\u5340\u4F4D\u65BC\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C07\u73FE\u6709\u7684\u975E\u6A21\u7D44\u5316 jar \u66F4\u65B0\u70BA\u6A21\u7D44\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class
+main.help.preopt=\u7528\u6CD5: jar [OPTION...] [ [--release VERSION] [-C dir] files] ...\njar \u6703\u5EFA\u7ACB\u985E\u5225\u548C\u8CC7\u6E90\u7684\u5B58\u6A94\uFF0C\u800C\u4E14\u53EF\u64CD\u63A7\u6216\n\u5F9E\u5B58\u6A94\u56DE\u5FA9\u500B\u5225\u985E\u5225\u6216\u8CC7\u6E90\u3002\n\n \u7BC4\u4F8B:\n # \u5EFA\u7ACB\u4E00\u500B\u540D\u70BA classes.jar \u4E14\u542B\u6709\u5169\u500B\u985E\u5225\u6A94\u6848\u7684\u5B58\u6A94:\n jar --create --file classes.jar Foo.class Bar.class\n # \u4F7F\u7528\u73FE\u6709\u7684\u8CC7\u8A0A\u6E05\u55AE\u548C foo/ \u4E2D\u7684\u6240\u6709\u6A94\u6848\u5EFA\u7ACB\u4E00\u500B\u5B58\u6A94:\n jar --create --file classes.jar --manifest mymanifest -C foo/ .\n # \u5EFA\u7ACB\u4E00\u500B\u6A21\u7D44\u5316 jar \u5B58\u6A94\uFF0C\u5176\u4E2D\u7684\u6A21\u7D44\u63CF\u8FF0\u5340\u4F4D\u65BC\n # classes/module-info.class:\n jar --create --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ classes resources\n # \u5C07\u73FE\u6709\u7684\u975E\u6A21\u7D44\u5316 jar \u66F4\u65B0\u70BA\u6A21\u7D44\u5316 jar:\n jar --update --file foo.jar --main-class com.foo.Main --module-version 1.0\n -C foo/ module-info.class\n # \u5EFA\u7ACB\u591A\u91CD\u7248\u672C\u7684 jar\uFF0C\u5C07\u90E8\u5206\u6A94\u6848\u653E\u7F6E\u5728 META-INF/versions/9 \u76EE\u9304\u4E2D:\n jar --create --file mr.jar -C foo classes --release 9 -C foo9 classes
main.help.opt.main=\ \u4E3B\u8981\u4F5C\u696D\u6A21\u5F0F:\n
main.help.opt.main.create=\ -c, --create \u5EFA\u7ACB\u5B58\u6A94
main.help.opt.main.generate-index=\ -i, --generate-index=FILE \u70BA\u6307\u5B9A\u7684 jar \u5B58\u6A94\u7522\u751F\u7D22\u5F15\n \u8CC7\u8A0A
@@ -78,7 +80,7 @@
main.help.opt.main.extract=\ -x, --extract \u5F9E\u5B58\u6A94\u4E2D\u64F7\u53D6\u6307\u5B9A (\u6216\u6240\u6709) \u6A94\u6848
main.help.opt.main.print-module-descriptor=\ -p, --print-module-descriptor \u5217\u5370\u6A21\u7D44\u63CF\u8FF0\u5340
main.help.opt.any=\ \u53EF\u5728\u4EFB\u4F55\u6A21\u5F0F\u4E0B\u4F7F\u7528\u7684\u4F5C\u696D\u4FEE\u98FE\u689D\u4EF6:\n\n -C DIR \u8B8A\u66F4\u70BA\u6307\u5B9A\u76EE\u9304\u4E26\u5305\u542B\n \u4E0B\u5217\u6A94\u6848
-main.help.opt.any.file=\ -f, --file=FILE \u5B58\u6A94\u6A94\u6848\u540D\u7A31
+main.help.opt.any.file=\ -f, --file=FILE \u5B58\u6A94\u6A94\u6848\u540D\u7A31\n --release VERSION \u5C07\u6240\u6709\u4E0B\u5217\u6A94\u6848\u653E\u7F6E\u5728 jar \u7684\u5DF2\u555F\u52D5\u591A\u7248\u672C\n \u529F\u80FD\u76EE\u9304\u4E2D (\u4F8B\u5982 META-INF/versions/VERSION/)
main.help.opt.any.verbose=\ -v, --verbose \u5728\u6A19\u6E96\u8F38\u51FA\u4E2D\u7522\u751F\u8A73\u7D30\u8F38\u51FA
main.help.opt.create.update=\ \u53EA\u80FD\u5728\u5EFA\u7ACB\u548C\u66F4\u65B0\u6A21\u5F0F\u4E0B\u4F7F\u7528\u7684\u4F5C\u696D\u4FEE\u98FE\u689D\u4EF6:\n
main.help.opt.create.update.main-class=\ -e, --main-class=CLASSNAME \u96A8\u9644\u65BC\u6A21\u7D44\u5316\u6216\u53EF\u57F7\u884C\n jar \u5B58\u6A94\u4E2D\u7368\u7ACB\u61C9\u7528\u7A0B\u5F0F\u7684\n \u61C9\u7528\u7A0B\u5F0F\u9032\u5165\u9EDE
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_ja.properties Mon Aug 01 10:06:09 2016 -0700
@@ -52,6 +52,8 @@
main.extended.help=\u4F7F\u7528\u53EF\u80FD\u306A\u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30EA\u30B9\u30C8:
+main.extended.help.footer=<pattern-list>\u3092\u5FC5\u8981\u3068\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5834\u5408\u3001\u5024\u306F\u3001\u6B21\u306E\u5F62\u5F0F\u306E\u3044\u305A\u308C\u304B\u3092\u4F7F\u7528\u3059\u308B\u3001\u8981\u7D20\u306E\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30EA\u30B9\u30C8\u306B\u306A\u308A\u307E\u3059:\n <glob-pattern>\n glob:<glob-pattern>\n regex:<regex-pattern>\n @<filename> filename\u306F\u3001\u4F7F\u7528\u3059\u308B\u30D1\u30BF\u30FC\u30F3\u3092\u542B\u3080\u30D5\u30A1\u30A4\u30EB(1\u884C\u3054\u3068\u306B1\u30D1\u30BF\u30FC\u30F3)\u306E\u540D\u524D\u3067\u3059\n\n
+
err.unknown.byte.order:\u4E0D\u660E\u306A\u30D0\u30A4\u30C8\u9806{0}
err.output.must.be.specified:--output\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
err.modulepath.must.be.specified:--modulepath\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jlink/resources/jlink_zh_CN.properties Mon Aug 01 10:06:09 2016 -0700
@@ -52,6 +52,8 @@
main.extended.help=\u53EF\u7528\u63D2\u4EF6\u5217\u8868:
+main.extended.help.footer=\u5BF9\u4E8E\u9700\u8981 <\u6A21\u5F0F\u5217\u8868> \u7684\u9009\u9879, \u503C\u5C06\u4E3A\u9017\u53F7\u5206\u9694\u7684\u5143\u7D20\u5217\u8868, \u6BCF\u4E2A\u5143\u7D20\u4F7F\u7528\u4EE5\u4E0B\u683C\u5F0F\u4E4B\u4E00:\n <glob \u6A21\u5F0F>\n glob:<glob \u6A21\u5F0F>\n regex:<\u6B63\u5219\u8868\u8FBE\u5F0F\u6A21\u5F0F>\n @<\u6587\u4EF6\u540D>, \u5176\u4E2D\u201C\u6587\u4EF6\u540D\u201D\u662F\u5305\u542B\u8981\u4F7F\u7528\u7684\u6A21\u5F0F\u7684\u6587\u4EF6\u540D, \u6BCF\u884C\u4E00\u4E2A\u6A21\u5F0F\n\n
+
err.unknown.byte.order:\u672A\u77E5\u7684\u5B57\u8282\u987A\u5E8F {0}
err.output.must.be.specified:\u5FC5\u987B\u6307\u5B9A --output
err.modulepath.must.be.specified:\u5FC5\u987B\u6307\u5B9A --modulepath
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/JmodTask.java Mon Aug 01 10:06:09 2016 -0700
@@ -666,6 +666,10 @@
throws IOException
{
Path relPath = top.relativize(file);
+ if (relPath.toString().equals(MODULE_INFO)
+ && !Section.CLASSES.equals(section))
+ warning("warn.ignore.entry", MODULE_INFO, section);
+
if (!relPath.toString().equals(MODULE_INFO)
&& !matches(relPath, excludes)) {
try (InputStream in = Files.newInputStream(file)) {
@@ -693,9 +697,17 @@
String name = Paths.get(prefix, other).toString()
.replace(File.separatorChar, '/');
ZipEntry ze = new ZipEntry(name);
- zos.putNextEntry(ze);
- in.transferTo(zos);
- zos.closeEntry();
+ try {
+ zos.putNextEntry(ze);
+ in.transferTo(zos);
+ zos.closeEntry();
+ } catch (ZipException x) {
+ if (x.getMessage().contains("duplicate entry")) {
+ warning("warn.ignore.duplicate.entry", name, prefix);
+ return;
+ }
+ throw x;
+ }
}
class JarEntryConsumer implements Consumer<JarEntry>, Predicate<JarEntry> {
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod.properties Mon Aug 01 10:06:09 2016 -0700
@@ -97,4 +97,7 @@
warn.invalid.arg=Invalid classname or pathname not exist: {0}
warn.no.module.hashes=No hashes recorded: no module specified for hashing depends on {0}
warn.module.resolution.fail=No hashes recorded: {0}
+warn.ignore.entry=ignoring entry {0}, in section {1}
+warn.ignore.duplicate.entry=ignoring duplicate entry {0}, in section{1}
+
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_ja.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_ja.properties Mon Aug 01 10:06:09 2016 -0700
@@ -25,11 +25,11 @@
main.usage.summary=\u4F7F\u7528\u65B9\u6CD5: {0} (create|list|describe|hash) <OPTIONS> <jmod-file>\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30EA\u30B9\u30C8\u306B\u3064\u3044\u3066\u306F\u3001--help\u3092\u4F7F\u7528\u3057\u307E\u3059
-main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} (create|list|describe|hash) <OPTIONS> <jmod-file>
-
+main.usage=\u4F7F\u7528\u65B9\u6CD5: {0} (create|list|describe|hash) <OPTIONS> <jmod-file>\n
error.prefix=\u30A8\u30E9\u30FC:
warn.prefix=\u8B66\u544A:
+main.opt.mode=\u30E1\u30A4\u30F3\u64CD\u4F5C\u30E2\u30FC\u30C9:
main.opt.mode.create=create - \u65B0\u898F\u306Ejmod\u30A2\u30FC\u30AB\u30A4\u30D6\u3092\u4F5C\u6210\u3057\u307E\u3059
main.opt.mode.list=list - \u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u540D\u524D\u3092\u51FA\u529B\u3057\u307E\u3059
main.opt.mode.describe=describe - \u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u8A73\u7D30\u3092\u51FA\u529B\u3057\u307E\u3059
@@ -42,7 +42,7 @@
main.opt.cmds=\u30CD\u30A4\u30C6\u30A3\u30D6\u30FB\u30B3\u30DE\u30F3\u30C9\u306E\u5834\u6240
main.opt.config=\u30E6\u30FC\u30B6\u30FC\u304C\u7DE8\u96C6\u53EF\u80FD\u306A\u69CB\u6210\u30D5\u30A1\u30A4\u30EB\u306E\u5834\u6240
main.opt.dry-run=\u30CF\u30C3\u30B7\u30E5\u30FB\u30E2\u30FC\u30C9\u306E\u8A66\u9A13\u7684\u306A\u5B9F\u884C
-main.opt.exclude=PATTERN\u3068\u3057\u3066\u6307\u5B9A\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u3092\u9664\u5916\u3057\u307E\u3059
+main.opt.exclude=\u5404\u8981\u7D20\u304C\u6B21\u306E\u5F62\u5F0F\u306E\u3044\u305A\u308C\u304B\u3092\u4F7F\u7528\u3059\u308B\u3001\u6307\u5B9A\u3055\u308C\u305F\u30AB\u30F3\u30DE\u533A\u5207\u308A\u30D1\u30BF\u30FC\u30F3\u30FB\u30EA\u30B9\u30C8\u306B\u4E00\u81F4\u3059\u308B\u30D5\u30A1\u30A4\u30EB\u3092\u9664\u5916\u3057\u307E\u3059: <glob-pattern>\u3001glob:<glob-pattern>\u307E\u305F\u306Fregex:<regex-pattern>
main.opt.module-version= \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3
main.opt.main-class=\u30E1\u30A4\u30F3\u30FB\u30AF\u30E9\u30B9
main.opt.main-class.arg=class-name
@@ -53,7 +53,7 @@
main.opt.os-version=\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u30FB\u30D0\u30FC\u30B8\u30E7\u30F3
main.opt.os-version.arg=os-version
main.opt.modulepath=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9
-main.opt.hash-modules=\u6307\u5B9A\u306E\u30D1\u30BF\u30FC\u30F3\u306B\u4E00\u81F4\u3057\u3001\u76F4\u63A5\u307E\u305F\u306F\u9593\u63A5\u7684\u306B\u4F9D\u5B58\u3057\u3066\u3044\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7D50\u5408\u3059\u308B\u30CF\u30C3\u30B7\u30E5\u3092\u8A08\u7B97\u304A\u3088\u3073\u8A18\u9332\u3057\u307E\u3059\u3002\u30CF\u30C3\u30B7\u30E5\u306F\u3001\u4F5C\u6210\u3055\u308C\u3066\u3044\u308BJMOD\u30D5\u30A1\u30A4\u30EB\u3001jmod hash\u30B3\u30DE\u30F3\u30C9\u3067\u6307\u5B9A\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306EJMOD\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30E9JAR\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\u3002
+main.opt.hash-modules=\u6307\u5B9A\u306E<regex-pattern>\u306B\u4E00\u81F4\u3057\u3001\u76F4\u63A5\u307E\u305F\u306F\u9593\u63A5\u7684\u306B\u4F9D\u5B58\u3057\u3066\u3044\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3067\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u7D50\u5408\u3059\u308B\u30CF\u30C3\u30B7\u30E5\u3092\u8A08\u7B97\u304A\u3088\u3073\u8A18\u9332\u3057\u307E\u3059\u3002\u30CF\u30C3\u30B7\u30E5\u306F\u3001\u4F5C\u6210\u3055\u308C\u3066\u3044\u308BJMOD\u30D5\u30A1\u30A4\u30EB\u3001jmod hash\u30B3\u30DE\u30F3\u30C9\u3067\u6307\u5B9A\u3057\u305F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306EJMOD\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30E9JAR\u306B\u8A18\u9332\u3055\u308C\u307E\u3059\u3002
main.opt.cmdfile=\u6307\u5B9A\u3057\u305F\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u8AAD\u307F\u53D6\u308A\u307E\u3059
--- a/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_zh_CN.properties Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/jdk.jlink/share/classes/jdk/tools/jmod/resources/jmod_zh_CN.properties Mon Aug 01 10:06:09 2016 -0700
@@ -25,11 +25,11 @@
main.usage.summary=\u7528\u6CD5: {0} (create|list|describe|hash) <\u9009\u9879> <jmod \u6587\u4EF6>\n\u4F7F\u7528 --help \u5217\u51FA\u53EF\u80FD\u7684\u9009\u9879
-main.usage=\u7528\u6CD5: {0} (create|list|describe|hash) <\u9009\u9879> <jmod \u6587\u4EF6>
-
+main.usage=\u7528\u6CD5: {0} (create|list|describe|hash) <\u9009\u9879> <jmod \u6587\u4EF6>\n
error.prefix=\u9519\u8BEF:
warn.prefix=\u8B66\u544A:
+main.opt.mode=\u4E3B\u64CD\u4F5C\u6A21\u5F0F:
main.opt.mode.create=create - \u521B\u5EFA\u65B0\u7684 jmod \u6863\u6848
main.opt.mode.list=list - \u8F93\u51FA\u6240\u6709\u6761\u76EE\u7684\u540D\u79F0
main.opt.mode.describe=describe - \u8F93\u51FA\u6A21\u5757\u8BE6\u7EC6\u4FE1\u606F
@@ -42,7 +42,7 @@
main.opt.cmds=\u672C\u673A\u547D\u4EE4\u7684\u4F4D\u7F6E
main.opt.config=\u7528\u6237\u53EF\u7F16\u8F91\u914D\u7F6E\u6587\u4EF6\u7684\u4F4D\u7F6E
main.opt.dry-run=\u6563\u5217\u6A21\u5F0F\u7684\u6A21\u62DF\u8FD0\u884C
-main.opt.exclude=\u6392\u9664\u4EE5\u6A21\u5F0F\u6307\u5B9A\u7684\u6587\u4EF6
+main.opt.exclude=\u6392\u9664\u4E0E\u6240\u63D0\u4F9B\u9017\u53F7\u5206\u9694\u7684\u6A21\u5F0F\u5217\u8868\u5339\u914D\u7684\u6587\u4EF6, \u6BCF\u4E2A\u5143\u7D20\u4F7F\u7528\u4EE5\u4E0B\u683C\u5F0F\u4E4B\u4E00: <glob \u6A21\u5F0F>, glob:<glob \u6A21\u5F0F> \u6216 regex:<\u6B63\u5219\u8868\u8FBE\u5F0F\u6A21\u5F0F>
main.opt.module-version= \u6A21\u5757\u7248\u672C
main.opt.main-class=\u4E3B\u7C7B
main.opt.main-class.arg=class-name
@@ -53,7 +53,7 @@
main.opt.os-version=\u64CD\u4F5C\u7CFB\u7EDF\u7248\u672C
main.opt.os-version.arg=os-version
main.opt.modulepath=\u6A21\u5757\u8DEF\u5F84
-main.opt.hash-modules=\u8BA1\u7B97\u548C\u8BB0\u5F55\u6563\u5217, \u4EE5\u5C06\u6253\u5305\u6A21\u5757\u7ED1\u5B9A\u5230\u4E0E\u6307\u5B9A\u6A21\u5F0F\u5339\u914D\u5E76\u76F4\u63A5\u6216\u95F4\u63A5\u4F9D\u8D56\u4E8E\u7684\u6A21\u5757\u3002\u6563\u5217\u8BB0\u5F55\u5728\u6240\u521B\u5EFA\u7684 JMOD \u6587\u4EF6\u4E2D, \u6216\u8005\u8BB0\u5F55\u5728 jmod hash \u547D\u4EE4\u6307\u5B9A\u7684\u6A21\u5757\u8DEF\u5F84\u7684 JMOD \u6587\u4EF6\u6216\u6A21\u5757\u5316 JAR \u4E2D\u3002
+main.opt.hash-modules=\u8BA1\u7B97\u548C\u8BB0\u5F55\u6563\u5217, \u4EE5\u5C06\u6253\u5305\u6A21\u5757\u7ED1\u5B9A\u5230\u4E0E\u6307\u5B9A <\u6B63\u5219\u8868\u8FBE\u5F0F\u6A21\u5F0F> \u5339\u914D\u5E76\u76F4\u63A5\u6216\u95F4\u63A5\u4F9D\u8D56\u4E8E\u7684\u6A21\u5757\u3002\u6563\u5217\u8BB0\u5F55\u5728\u6240\u521B\u5EFA\u7684 JMOD \u6587\u4EF6\u4E2D, \u6216\u8005\u8BB0\u5F55\u5728 jmod hash \u547D\u4EE4\u6307\u5B9A\u7684\u6A21\u5757\u8DEF\u5F84\u7684 JMOD \u6587\u4EF6\u6216\u6A21\u5757\u5316 JAR \u4E2D\u3002
main.opt.cmdfile=\u4ECE\u6307\u5B9A\u6587\u4EF6\u8BFB\u53D6\u9009\u9879
--- a/jdk/src/sample/share/nio/server/README.txt Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/src/sample/share/nio/server/README.txt Mon Aug 01 10:06:09 2016 -0700
@@ -67,7 +67,7 @@
Invoking the following should be sufficient:
% mkdir build
- % javac -source 1.5 -target 1.5 -d build *.java
+ % javac -d build *.java
The following creates the document root:
--- a/jdk/test/TEST.ROOT Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/TEST.ROOT Mon Aug 01 10:06:09 2016 -0700
@@ -23,8 +23,8 @@
# Group definitions
groups=TEST.groups [closed/TEST.groups]
-# Allow querying of sun.arch.data.model in @requires clauses
-requires.properties=sun.arch.data.model
+# Allow querying of various System properties in @requires clauses
+requires.properties=sun.arch.data.model java.runtime.name
# Tests using jtreg 4.2 b02 features
requiredVersion=4.2 b02
--- a/jdk/test/java/util/SplittableRandom/SplittableRandomTest.java Fri Jul 29 11:25:59 2016 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,561 +0,0 @@
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.SplittableRandom;
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.LongAdder;
-import java.util.function.BiConsumer;
-
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.AssertJUnit.assertTrue;
-
-/**
- * @test
- * @run testng SplittableRandomTest
- * @run testng/othervm -Djava.util.secureRandomSeed=true SplittableRandomTest
- * @summary test methods on SplittableRandom
- * @key randomness
- */
-@Test
-public class SplittableRandomTest {
-
- // Note: this test was copied from the 166 TCK SplittableRandomTest test
- // and modified to be a TestNG test
-
- /*
- * Testing coverage notes:
- *
- * 1. Many of the test methods are adapted from ThreadLocalRandomTest.
- *
- * 2. These tests do not check for random number generator quality.
- * But we check for minimal API compliance by requiring that
- * repeated calls to nextX methods, up to NCALLS tries, produce at
- * least two distinct results. (In some possible universe, a
- * "correct" implementation might fail, but the odds are vastly
- * less than that of encountering a hardware failure while running
- * the test.) For bounded nextX methods, we sample various
- * intervals across multiples of primes. In other tests, we repeat
- * under REPS different values.
- */
-
- // max numbers of calls to detect getting stuck on one value
- static final int NCALLS = 10000;
-
- // max sampled int bound
- static final int MAX_INT_BOUND = (1 << 28);
-
- // max sampled long bound
- static final long MAX_LONG_BOUND = (1L << 42);
-
- // Number of replications for other checks
- static final int REPS = 20;
-
- /**
- * Repeated calls to nextInt produce at least two distinct results
- */
- public void testNextInt() {
- SplittableRandom sr = new SplittableRandom();
- int f = sr.nextInt();
- int i = 0;
- while (i < NCALLS && sr.nextInt() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextLong produce at least two distinct results
- */
- public void testNextLong() {
- SplittableRandom sr = new SplittableRandom();
- long f = sr.nextLong();
- int i = 0;
- while (i < NCALLS && sr.nextLong() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextDouble produce at least two distinct results
- */
- public void testNextDouble() {
- SplittableRandom sr = new SplittableRandom();
- double f = sr.nextDouble();
- int i = 0;
- while (i < NCALLS && sr.nextDouble() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Two SplittableRandoms created with the same seed produce the
- * same values for nextLong.
- */
- public void testSeedConstructor() {
- for (long seed = 2; seed < MAX_LONG_BOUND; seed += 15485863) {
- SplittableRandom sr1 = new SplittableRandom(seed);
- SplittableRandom sr2 = new SplittableRandom(seed);
- for (int i = 0; i < REPS; ++i)
- assertEquals(sr1.nextLong(), sr2.nextLong());
- }
- }
-
- /**
- * A SplittableRandom produced by split() of a default-constructed
- * SplittableRandom generates a different sequence
- */
- public void testSplit1() {
- SplittableRandom sr = new SplittableRandom();
- for (int reps = 0; reps < REPS; ++reps) {
- SplittableRandom sc = sr.split();
- int i = 0;
- while (i < NCALLS && sr.nextLong() == sc.nextLong())
- ++i;
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * A SplittableRandom produced by split() of a seeded-constructed
- * SplittableRandom generates a different sequence
- */
- public void testSplit2() {
- SplittableRandom sr = new SplittableRandom(12345);
- for (int reps = 0; reps < REPS; ++reps) {
- SplittableRandom sc = sr.split();
- int i = 0;
- while (i < NCALLS && sr.nextLong() == sc.nextLong())
- ++i;
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * nextInt(negative) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextIntBoundedNeg() {
- SplittableRandom sr = new SplittableRandom();
- int f = sr.nextInt(-17);
- }
-
- /**
- * nextInt(least >= bound) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextIntBadBounds() {
- SplittableRandom sr = new SplittableRandom();
- int f = sr.nextInt(17, 2);
- }
-
- /**
- * nextInt(bound) returns 0 <= value < bound;
- * repeated calls produce at least two distinct results
- */
- public void testNextIntBounded() {
- SplittableRandom sr = new SplittableRandom();
- // sample bound space across prime number increments
- for (int bound = 2; bound < MAX_INT_BOUND; bound += 524959) {
- int f = sr.nextInt(bound);
- assertTrue(0 <= f && f < bound);
- int i = 0;
- int j;
- while (i < NCALLS &&
- (j = sr.nextInt(bound)) == f) {
- assertTrue(0 <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * nextInt(least, bound) returns least <= value < bound;
- * repeated calls produce at least two distinct results
- */
- public void testNextIntBounded2() {
- SplittableRandom sr = new SplittableRandom();
- for (int least = -15485863; least < MAX_INT_BOUND; least += 524959) {
- for (int bound = least + 2; bound > least && bound < MAX_INT_BOUND; bound += 49979687) {
- int f = sr.nextInt(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- int j;
- while (i < NCALLS &&
- (j = sr.nextInt(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * nextLong(negative) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextLongBoundedNeg() {
- SplittableRandom sr = new SplittableRandom();
- long f = sr.nextLong(-17);
- }
-
- /**
- * nextLong(least >= bound) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextLongBadBounds() {
- SplittableRandom sr = new SplittableRandom();
- long f = sr.nextLong(17, 2);
- }
-
- /**
- * nextLong(bound) returns 0 <= value < bound;
- * repeated calls produce at least two distinct results
- */
- public void testNextLongBounded() {
- SplittableRandom sr = new SplittableRandom();
- for (long bound = 2; bound < MAX_LONG_BOUND; bound += 15485863) {
- long f = sr.nextLong(bound);
- assertTrue(0 <= f && f < bound);
- int i = 0;
- long j;
- while (i < NCALLS &&
- (j = sr.nextLong(bound)) == f) {
- assertTrue(0 <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * nextLong(least, bound) returns least <= value < bound;
- * repeated calls produce at least two distinct results
- */
- public void testNextLongBounded2() {
- SplittableRandom sr = new SplittableRandom();
- for (long least = -86028121; least < MAX_LONG_BOUND; least += 982451653L) {
- for (long bound = least + 2; bound > least && bound < MAX_LONG_BOUND; bound += Math.abs(bound * 7919)) {
- long f = sr.nextLong(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- long j;
- while (i < NCALLS &&
- (j = sr.nextLong(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * nextDouble(bound) throws IllegalArgumentException
- */
- public void testNextDoubleBadBound() {
- SplittableRandom sr = new SplittableRandom();
- executeAndCatchIAE(() -> sr.nextDouble(0.0));
- executeAndCatchIAE(() -> sr.nextDouble(-0.0));
- executeAndCatchIAE(() -> sr.nextDouble(+0.0));
- executeAndCatchIAE(() -> sr.nextDouble(-1.0));
- executeAndCatchIAE(() -> sr.nextDouble(Double.NaN));
- executeAndCatchIAE(() -> sr.nextDouble(Double.NEGATIVE_INFINITY));
-
- // Returns Double.MAX_VALUE
-// executeAndCatchIAE(() -> r.nextDouble(Double.POSITIVE_INFINITY));
- }
-
- /**
- * nextDouble(origin, bound) throws IllegalArgumentException
- */
- public void testNextDoubleBadOriginBound() {
- testDoubleBadOriginBound(new SplittableRandom()::nextDouble);
- }
-
- // An arbitrary finite double value
- static final double FINITE = Math.PI;
-
- void testDoubleBadOriginBound(BiConsumer<Double, Double> bi) {
- executeAndCatchIAE(() -> bi.accept(17.0, 2.0));
- executeAndCatchIAE(() -> bi.accept(0.0, 0.0));
- executeAndCatchIAE(() -> bi.accept(Double.NaN, FINITE));
- executeAndCatchIAE(() -> bi.accept(FINITE, Double.NaN));
- executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY));
-
- // Returns NaN
-// executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, FINITE));
-// executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
-
- executeAndCatchIAE(() -> bi.accept(FINITE, Double.NEGATIVE_INFINITY));
-
- // Returns Double.MAX_VALUE
-// executeAndCatchIAE(() -> bi.accept(FINITE, Double.POSITIVE_INFINITY));
-
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY));
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, FINITE));
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY));
- }
-
- /**
- * nextDouble(least, bound) returns least <= value < bound;
- * repeated calls produce at least two distinct results
- */
- public void testNextDoubleBounded2() {
- SplittableRandom sr = new SplittableRandom();
- for (double least = 0.0001; least < 1.0e20; least *= 8) {
- for (double bound = least * 1.001; bound < 1.0e20; bound *= 16) {
- double f = sr.nextDouble(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- double j;
- while (i < NCALLS &&
- (j = sr.nextDouble(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * Invoking sized ints, long, doubles, with negative sizes throws
- * IllegalArgumentException
- */
- public void testBadStreamSize() {
- SplittableRandom r = new SplittableRandom();
- executeAndCatchIAE(() -> r.ints(-1L));
- executeAndCatchIAE(() -> r.ints(-1L, 2, 3));
- executeAndCatchIAE(() -> r.longs(-1L));
- executeAndCatchIAE(() -> r.longs(-1L, -1L, 1L));
- executeAndCatchIAE(() -> r.doubles(-1L));
- executeAndCatchIAE(() -> r.doubles(-1L, .5, .6));
- }
-
- /**
- * Invoking bounded ints, long, doubles, with illegal bounds throws
- * IllegalArgumentException
- */
- public void testBadStreamBounds() {
- SplittableRandom r = new SplittableRandom();
- executeAndCatchIAE(() -> r.ints(2, 1));
- executeAndCatchIAE(() -> r.ints(10, 42, 42));
- executeAndCatchIAE(() -> r.longs(-1L, -1L));
- executeAndCatchIAE(() -> r.longs(10, 1L, -2L));
-
- testDoubleBadOriginBound((o, b) -> r.doubles(10, o, b));
- }
-
- private void executeAndCatchIAE(Runnable r) {
- executeAndCatch(IllegalArgumentException.class, r);
- }
-
- private void executeAndCatch(Class<? extends Exception> expected, Runnable r) {
- Exception caught = null;
- try {
- r.run();
- }
- catch (Exception e) {
- caught = e;
- }
-
- assertNotNull(caught,
- String.format("No Exception was thrown, expected an Exception of %s to be thrown",
- expected.getName()));
- Assert.assertTrue(expected.isInstance(caught),
- String.format("Exception thrown %s not an instance of %s",
- caught.getClass().getName(), expected.getName()));
- }
-
- /**
- * A parallel sized stream of ints generates the given number of values
- */
- public void testIntsCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.ints(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * A parallel sized stream of longs generates the given number of values
- */
- public void testLongsCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.longs(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * A parallel sized stream of doubles generates the given number of values
- */
- public void testDoublesCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.doubles(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * Each of a parallel sized stream of bounded ints is within bounds
- */
- public void testBoundedInts() {
- AtomicInteger fails = new AtomicInteger(0);
- SplittableRandom r = new SplittableRandom();
- long size = 12345L;
- for (int least = -15485867; least < MAX_INT_BOUND; least += 524959) {
- for (int bound = least + 2; bound > least && bound < MAX_INT_BOUND; bound += 67867967) {
- final int lo = least, hi = bound;
- r.ints(size, lo, hi).parallel().
- forEach(x -> {if (x < lo || x >= hi)
- fails.getAndIncrement(); });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * Each of a parallel sized stream of bounded longs is within bounds
- */
- public void testBoundedLongs() {
- AtomicInteger fails = new AtomicInteger(0);
- SplittableRandom r = new SplittableRandom();
- long size = 123L;
- for (long least = -86028121; least < MAX_LONG_BOUND; least += 1982451653L) {
- for (long bound = least + 2; bound > least && bound < MAX_LONG_BOUND; bound += Math.abs(bound * 7919)) {
- final long lo = least, hi = bound;
- r.longs(size, lo, hi).parallel().
- forEach(x -> {if (x < lo || x >= hi)
- fails.getAndIncrement(); });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * Each of a parallel sized stream of bounded doubles is within bounds
- */
- public void testBoundedDoubles() {
- AtomicInteger fails = new AtomicInteger(0);
- SplittableRandom r = new SplittableRandom();
- long size = 456;
- for (double least = 0.00011; least < 1.0e20; least *= 9) {
- for (double bound = least * 1.0011; bound < 1.0e20; bound *= 17) {
- final double lo = least, hi = bound;
- r.doubles(size, lo, hi).parallel().
- forEach(x -> {if (x < lo || x >= hi)
- fails.getAndIncrement(); });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * A parallel unsized stream of ints generates at least 100 values
- */
- public void testUnsizedIntsCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.ints().limit(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A parallel unsized stream of longs generates at least 100 values
- */
- public void testUnsizedLongsCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.longs().limit(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A parallel unsized stream of doubles generates at least 100 values
- */
- public void testUnsizedDoublesCount() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.doubles().limit(size).parallel().forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of ints generates at least 100 values
- */
- public void testUnsizedIntsCountSeq() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.ints().limit(size).forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of longs generates at least 100 values
- */
- public void testUnsizedLongsCountSeq() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.longs().limit(size).forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of doubles generates at least 100 values
- */
- public void testUnsizedDoublesCountSeq() {
- LongAdder counter = new LongAdder();
- SplittableRandom r = new SplittableRandom();
- long size = 100;
- r.doubles().limit(size).forEach(x -> {counter.increment();});
- assertEquals(counter.sum(), size);
- }
-
-}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/TimeZone/Bug8066652.java Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.TimeZone;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+
+public class Bug8066652 {
+
+ public static void main(String args[]) {
+ ExecutorService executor = Executors.newFixedThreadPool(10);
+ Callable<TimeZone> calTimeZone = () -> TimeZone.getDefault();
+ List<Callable<TimeZone>> tasks = new ArrayList<>();
+ for (int j = 1; j < 10; j++) {
+ tasks.add(calTimeZone);
+ }
+ try {
+ List<Future<TimeZone>> results = executor.invokeAll(tasks);
+ for (Future<TimeZone> f : results) {
+ TimeZone tz = f.get();
+ if (! tz.getID().equals("GMT")) {
+ throw new RuntimeException("wrong Time zone ID: " + tz.getID()
+ + ", It should be GMT");
+ }
+ }
+ } catch (InterruptedException | ExecutionException e) {
+ throw new RuntimeException("Execution interrupted or Execution Exception occurred", e);
+ } finally {
+ executor.shutdown();
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/java/util/TimeZone/Bug8066652.sh Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,68 @@
+#!/bin/sh
+
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+# @test
+# @bug 8066652
+# @requires os.family == "mac"
+# @summary tests thread safe native function localtime_r is accessed by multiple threads at same time and
+# zone id should not be “GMT+00:00” if default timezone is “GMT” and user specifies a fake timezone.
+# @build Bug8066652
+# @run shell/timeout=600 Bug8066652.sh
+
+
+if [ "${TESTSRC}" = "" ]
+then
+ echo "TESTSRC not set. Test cannot execute. Failed."
+ exit 1
+fi
+echo "TESTSRC=${TESTSRC}"
+if [ "${TESTJAVA}" = "" ]
+then
+ echo "TESTJAVA not set. Test cannot execute. Failed."
+ exit 1
+fi
+echo "TESTJAVA=${TESTJAVA}"
+if [ "${TESTCLASSES}" = "" ]
+then
+ echo "TESTCLASSES not set. Test cannot execute. Failed."
+ exit 1
+fi
+echo "TESTCLASSES=${TESTCLASSES}"
+echo "CLASSPATH=${CLASSPATH}"
+
+
+# set system TimeZone to GMT using environment variable TZ
+export TZ="GMT"
+
+# Setting invalid TimeZone using VM option
+${TESTJAVA}/bin/java -Duser.timezone=Foo/Bar ${TESTVMOPTS} -cp ${TESTCLASSES} Bug8066652
+
+status=$?
+if [ $status -eq 0 ]
+then
+ echo "Success, Test Passed";
+else
+ echo "Test Failed";
+fi
+
+exit $status
--- a/jdk/test/java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java Fri Jul 29 11:25:59 2016 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,561 +0,0 @@
-/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import java.util.concurrent.ThreadLocalRandom;
-import java.util.concurrent.atomic.AtomicInteger;
-import java.util.concurrent.atomic.LongAdder;
-import java.util.function.BiConsumer;
-
-import static org.testng.Assert.*;
-
-/**
- * @test
- * @bug 8024253
- * @run testng ThreadLocalRandomTest
- * @run testng/othervm -Djava.util.secureRandomSeed=true ThreadLocalRandomTest
- * @summary test methods on ThreadLocalRandom
- */
-@Test
-public class ThreadLocalRandomTest {
-
- // Note: this test was copied from the 166 TCK ThreadLocalRandomTest test
- // and modified to be a TestNG test
-
- /*
- * Testing coverage notes:
- *
- * We don't test randomness properties, but only that repeated
- * calls, up to NCALLS tries, produce at least one different
- * result. For bounded versions, we sample various intervals
- * across multiples of primes.
- */
-
- // max numbers of calls to detect getting stuck on one value
- static final int NCALLS = 10000;
-
- // max sampled int bound
- static final int MAX_INT_BOUND = (1 << 28);
-
- // max sampled long bound
- static final long MAX_LONG_BOUND = (1L << 42);
-
- // Number of replications for other checks
- static final int REPS = 20;
-
- /**
- * setSeed throws UnsupportedOperationException
- */
- @Test(expectedExceptions = UnsupportedOperationException.class)
- public void testSetSeed() {
- ThreadLocalRandom.current().setSeed(17);
- }
-
- /**
- * Repeated calls to nextInt produce at least two distinct results
- */
- public void testNextInt() {
- int f = ThreadLocalRandom.current().nextInt();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextInt() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextLong produce at least two distinct results
- */
- public void testNextLong() {
- long f = ThreadLocalRandom.current().nextLong();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextLong() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextBoolean produce at least two distinct results
- */
- public void testNextBoolean() {
- boolean f = ThreadLocalRandom.current().nextBoolean();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextBoolean() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextFloat produce at least two distinct results
- */
- public void testNextFloat() {
- float f = ThreadLocalRandom.current().nextFloat();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextFloat() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextDouble produce at least two distinct results
- */
- public void testNextDouble() {
- double f = ThreadLocalRandom.current().nextDouble();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextDouble() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * Repeated calls to nextGaussian produce at least two distinct results
- */
- public void testNextGaussian() {
- double f = ThreadLocalRandom.current().nextGaussian();
- int i = 0;
- while (i < NCALLS && ThreadLocalRandom.current().nextGaussian() == f)
- ++i;
- assertTrue(i < NCALLS);
- }
-
- /**
- * nextInt(negative) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextIntBoundedNeg() {
- int f = ThreadLocalRandom.current().nextInt(-17);
- }
-
- /**
- * nextInt(least >= bound) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextIntBadBounds() {
- int f = ThreadLocalRandom.current().nextInt(17, 2);
- }
-
- /**
- * nextInt(bound) returns 0 <= value < bound; repeated calls produce at
- * least two distinct results
- */
- public void testNextIntBounded() {
- // sample bound space across prime number increments
- for (int bound = 2; bound < MAX_INT_BOUND; bound += 524959) {
- int f = ThreadLocalRandom.current().nextInt(bound);
- assertTrue(0 <= f && f < bound);
- int i = 0;
- int j;
- while (i < NCALLS &&
- (j = ThreadLocalRandom.current().nextInt(bound)) == f) {
- assertTrue(0 <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * nextInt(least, bound) returns least <= value < bound; repeated calls
- * produce at least two distinct results
- */
- public void testNextIntBounded2() {
- for (int least = -15485863; least < MAX_INT_BOUND; least += 524959) {
- for (int bound = least + 2; bound > least && bound < MAX_INT_BOUND; bound += 49979687) {
- int f = ThreadLocalRandom.current().nextInt(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- int j;
- while (i < NCALLS &&
- (j = ThreadLocalRandom.current().nextInt(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * nextLong(negative) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextLongBoundedNeg() {
- long f = ThreadLocalRandom.current().nextLong(-17);
- }
-
- /**
- * nextLong(least >= bound) throws IllegalArgumentException
- */
- @Test(expectedExceptions = IllegalArgumentException.class)
- public void testNextLongBadBounds() {
- long f = ThreadLocalRandom.current().nextLong(17, 2);
- }
-
- /**
- * nextLong(bound) returns 0 <= value < bound; repeated calls produce at
- * least two distinct results
- */
- public void testNextLongBounded() {
- for (long bound = 2; bound < MAX_LONG_BOUND; bound += 15485863) {
- long f = ThreadLocalRandom.current().nextLong(bound);
- assertTrue(0 <= f && f < bound);
- int i = 0;
- long j;
- while (i < NCALLS &&
- (j = ThreadLocalRandom.current().nextLong(bound)) == f) {
- assertTrue(0 <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
-
- /**
- * nextLong(least, bound) returns least <= value < bound; repeated calls
- * produce at least two distinct results
- */
- public void testNextLongBounded2() {
- for (long least = -86028121; least < MAX_LONG_BOUND; least += 982451653L) {
- for (long bound = least + 2; bound > least && bound < MAX_LONG_BOUND; bound += Math.abs(bound * 7919)) {
- long f = ThreadLocalRandom.current().nextLong(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- long j;
- while (i < NCALLS &&
- (j = ThreadLocalRandom.current().nextLong(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * nextDouble(bound) throws IllegalArgumentException
- */
- public void testNextDoubleBadBound() {
- ThreadLocalRandom r = ThreadLocalRandom.current();
- executeAndCatchIAE(() -> r.nextDouble(0.0));
- executeAndCatchIAE(() -> r.nextDouble(-0.0));
- executeAndCatchIAE(() -> r.nextDouble(+0.0));
- executeAndCatchIAE(() -> r.nextDouble(-1.0));
- executeAndCatchIAE(() -> r.nextDouble(Double.NaN));
- executeAndCatchIAE(() -> r.nextDouble(Double.NEGATIVE_INFINITY));
-
- // Returns Double.MAX_VALUE
-// executeAndCatchIAE(() -> r.nextDouble(Double.POSITIVE_INFINITY));
- }
-
- /**
- * nextDouble(origin, bound) throws IllegalArgumentException
- */
- public void testNextDoubleBadOriginBound() {
- testDoubleBadOriginBound(ThreadLocalRandom.current()::nextDouble);
- }
-
- // An arbitrary finite double value
- static final double FINITE = Math.PI;
-
- void testDoubleBadOriginBound(BiConsumer<Double, Double> bi) {
- executeAndCatchIAE(() -> bi.accept(17.0, 2.0));
- executeAndCatchIAE(() -> bi.accept(0.0, 0.0));
- executeAndCatchIAE(() -> bi.accept(Double.NaN, FINITE));
- executeAndCatchIAE(() -> bi.accept(FINITE, Double.NaN));
- executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY));
-
- // Returns NaN
-// executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, FINITE));
-// executeAndCatchIAE(() -> bi.accept(Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY));
-
- executeAndCatchIAE(() -> bi.accept(FINITE, Double.NEGATIVE_INFINITY));
-
- // Returns Double.MAX_VALUE
-// executeAndCatchIAE(() -> bi.accept(FINITE, Double.POSITIVE_INFINITY));
-
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY));
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, FINITE));
- executeAndCatchIAE(() -> bi.accept(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY));
- }
-
- /**
- * nextDouble(least, bound) returns least <= value < bound; repeated calls
- * produce at least two distinct results
- */
- public void testNextDoubleBounded2() {
- for (double least = 0.0001; least < 1.0e20; least *= 8) {
- for (double bound = least * 1.001; bound < 1.0e20; bound *= 16) {
- double f = ThreadLocalRandom.current().nextDouble(least, bound);
- assertTrue(least <= f && f < bound);
- int i = 0;
- double j;
- while (i < NCALLS &&
- (j = ThreadLocalRandom.current().nextDouble(least, bound)) == f) {
- assertTrue(least <= j && j < bound);
- ++i;
- }
- assertTrue(i < NCALLS);
- }
- }
- }
-
- /**
- * Invoking sized ints, long, doubles, with negative sizes throws
- * IllegalArgumentException
- */
- public void testBadStreamSize() {
- ThreadLocalRandom r = ThreadLocalRandom.current();
- executeAndCatchIAE(() -> r.ints(-1L));
- executeAndCatchIAE(() -> r.ints(-1L, 2, 3));
- executeAndCatchIAE(() -> r.longs(-1L));
- executeAndCatchIAE(() -> r.longs(-1L, -1L, 1L));
- executeAndCatchIAE(() -> r.doubles(-1L));
- executeAndCatchIAE(() -> r.doubles(-1L, .5, .6));
- }
-
- /**
- * Invoking bounded ints, long, doubles, with illegal bounds throws
- * IllegalArgumentException
- */
- public void testBadStreamBounds() {
- ThreadLocalRandom r = ThreadLocalRandom.current();
- executeAndCatchIAE(() -> r.ints(2, 1));
- executeAndCatchIAE(() -> r.ints(10, 42, 42));
- executeAndCatchIAE(() -> r.longs(-1L, -1L));
- executeAndCatchIAE(() -> r.longs(10, 1L, -2L));
-
- testDoubleBadOriginBound((o, b) -> r.doubles(10, o, b));
- }
-
- private void executeAndCatchIAE(Runnable r) {
- executeAndCatch(IllegalArgumentException.class, r);
- }
-
- private void executeAndCatch(Class<? extends Exception> expected, Runnable r) {
- Exception caught = null;
- try {
- r.run();
- }
- catch (Exception e) {
- caught = e;
- }
-
- assertNotNull(caught,
- String.format("No Exception was thrown, expected an Exception of %s to be thrown",
- expected.getName()));
- Assert.assertTrue(expected.isInstance(caught),
- String.format("Exception thrown %s not an instance of %s",
- caught.getClass().getName(), expected.getName()));
- }
-
- /**
- * A parallel sized stream of ints generates the given number of values
- */
- public void testIntsCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.ints(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * A parallel sized stream of longs generates the given number of values
- */
- public void testLongsCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.longs(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * A parallel sized stream of doubles generates the given number of values
- */
- public void testDoublesCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 0;
- for (int reps = 0; reps < REPS; ++reps) {
- counter.reset();
- r.doubles(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- size += 524959;
- }
- }
-
- /**
- * Each of a parallel sized stream of bounded ints is within bounds
- */
- public void testBoundedInts() {
- AtomicInteger fails = new AtomicInteger(0);
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 12345L;
- for (int least = -15485867; least < MAX_INT_BOUND; least += 524959) {
- for (int bound = least + 2; bound > least && bound < MAX_INT_BOUND; bound += 67867967) {
- final int lo = least, hi = bound;
- r.ints(size, lo, hi).parallel().
- forEach(x -> {
- if (x < lo || x >= hi)
- fails.getAndIncrement();
- });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * Each of a parallel sized stream of bounded longs is within bounds
- */
- public void testBoundedLongs() {
- AtomicInteger fails = new AtomicInteger(0);
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 123L;
- for (long least = -86028121; least < MAX_LONG_BOUND; least += 1982451653L) {
- for (long bound = least + 2; bound > least && bound < MAX_LONG_BOUND; bound += Math.abs(bound * 7919)) {
- final long lo = least, hi = bound;
- r.longs(size, lo, hi).parallel().
- forEach(x -> {
- if (x < lo || x >= hi)
- fails.getAndIncrement();
- });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * Each of a parallel sized stream of bounded doubles is within bounds
- */
- public void testBoundedDoubles() {
- AtomicInteger fails = new AtomicInteger(0);
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 456;
- for (double least = 0.00011; least < 1.0e20; least *= 9) {
- for (double bound = least * 1.0011; bound < 1.0e20; bound *= 17) {
- final double lo = least, hi = bound;
- r.doubles(size, lo, hi).parallel().
- forEach(x -> {
- if (x < lo || x >= hi)
- fails.getAndIncrement();
- });
- }
- }
- assertEquals(fails.get(), 0);
- }
-
- /**
- * A parallel unsized stream of ints generates at least 100 values
- */
- public void testUnsizedIntsCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.ints().limit(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A parallel unsized stream of longs generates at least 100 values
- */
- public void testUnsizedLongsCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.longs().limit(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A parallel unsized stream of doubles generates at least 100 values
- */
- public void testUnsizedDoublesCount() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.doubles().limit(size).parallel().forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of ints generates at least 100 values
- */
- public void testUnsizedIntsCountSeq() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.ints().limit(size).forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of longs generates at least 100 values
- */
- public void testUnsizedLongsCountSeq() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.longs().limit(size).forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
- /**
- * A sequential unsized stream of doubles generates at least 100 values
- */
- public void testUnsizedDoublesCountSeq() {
- LongAdder counter = new LongAdder();
- ThreadLocalRandom r = ThreadLocalRandom.current();
- long size = 100;
- r.doubles().limit(size).forEach(x -> {
- counter.increment();
- });
- assertEquals(counter.sum(), size);
- }
-
-}
--- a/jdk/test/java/util/concurrent/tck/JSR166TestCase.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/java/util/concurrent/tck/JSR166TestCase.java Mon Aug 01 10:06:09 2016 -0700
@@ -40,6 +40,7 @@
* @build *
* @run junit/othervm/timeout=1000 -Djsr166.testImplementationDetails=true JSR166TestCase
* @run junit/othervm/timeout=1000 -Djava.util.concurrent.ForkJoinPool.common.parallelism=0 -Djsr166.testImplementationDetails=true JSR166TestCase
+ * @run junit/othervm/timeout=1000 -Djava.util.concurrent.ForkJoinPool.common.parallelism=1 -Djava.util.secureRandomSeed=true JSR166TestCase
*/
import static java.util.concurrent.TimeUnit.MILLISECONDS;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/crypto/CryptoPermissions/README.txt Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,2 @@
+If TestExemption.java/cryptoPerms files ever change, please rebuild the
+corresponding signed jar file in the closed repo.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/crypto/CryptoPermissions/TestExemption.java Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import javax.crypto.*;
+import java.security.*;
+
+public class TestExemption {
+
+ public static void main(String[] args) throws Exception {
+
+ KeyGenerator kg = KeyGenerator.getInstance("AES");
+ kg.init(128);
+ SecretKey key128 = kg.generateKey();
+
+ kg.init(192);
+ SecretKey key192 = kg.generateKey();
+
+ kg.init(256);
+ SecretKey key256 = kg.generateKey();
+
+ Cipher c = Cipher.getInstance("AES/CBC/NoPadding");
+
+ System.out.println("Testing 128-bit");
+ c.init(Cipher.ENCRYPT_MODE, key128);
+
+ System.out.println("Testing 192-bit");
+ c.init(Cipher.ENCRYPT_MODE, key192);
+
+ try {
+ System.out.println("Testing 256-bit");
+ c.init(Cipher.ENCRYPT_MODE, key256);
+ } catch (InvalidKeyException e) {
+ System.out.println("Caught the right exception");
+ }
+
+ System.out.println("DONE!");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/crypto/CryptoPermissions/TestExemption.sh Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,79 @@
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 8161527
+# @summary NPE is thrown if exempt application is bundled with specific
+# cryptoPerms
+# @requires java.runtime.name ~= "OpenJDK.*"
+
+# set a few environment variables so that the shell-script can run stand-alone
+# in the source directory
+
+# set platform-dependent variables
+OS=`uname -s`
+case "$OS" in
+ SunOS | Linux | Darwin | AIX | CYGWIN* )
+ FS="/"
+ ;;
+ Windows_* )
+ FS="\\"
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
+esac
+
+if [ "${TESTSRC}" = "" ] ; then
+ TESTSRC="."
+fi
+if [ "${TESTCLASSES}" = "" ] ; then
+ TESTCLASSES="."
+fi
+if [ "${TESTJAVA}" = "" ] ; then
+ JAVAC_CMD=`which javac`
+ TESTJAVA=`dirname $JAVAC_CMD`${FS}..
+ COMPILEJAVA="${TESTJAVA}"
+fi
+
+# Build
+${COMPILEJAVA}${FS}bin${FS}javac \
+ -d . \
+ ${TESTSRC}${FS}TestExemption.java \
+ || exit 10
+
+# Package
+${COMPILEJAVA}${FS}bin${FS}jar \
+ -cvf TestExemption.jar \
+ TestExemption.class \
+ -C ${TESTSRC} cryptoPerms \
+ || exit 10
+
+# Test
+${TESTJAVA}${FS}bin${FS}java \
+ -classpath TestExemption.jar TestExemption
+status=$?
+
+exit $status
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/crypto/CryptoPermissions/cryptoPerms Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,5 @@
+grant {
+ // The stock JDK allows for 128 bit AES.
+ // Grant up to 192 bits, but no further.
+ permission javax.crypto.CryptoPermission "AES", 192;
+};
--- a/jdk/test/sun/security/krb5/auto/SSL.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/sun/security/krb5/auto/SSL.java Mon Aug 01 10:06:09 2016 -0700
@@ -92,6 +92,10 @@
boolean unbound = args.length > 1;
+ // Workaround for JDK-8161101, reference the class before
+ // SecurityManager is set.
+ System.out.println("Touching " + ServicePermission.class);
+
System.setSecurityManager(new SSL());
KDC kdc = KDC.create(OneKDC.REALM);
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/provider/PolicyFile/DefaultPolicy.java Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8159752
+ * @summary Test that default policy permissions are always granted
+ * @run main/othervm DefaultPolicy
+ */
+
+import java.net.URI;
+import java.net.URL;
+import java.nio.file.Paths;
+import java.security.AllPermission;
+import java.security.CodeSigner;
+import java.security.CodeSource;
+import java.security.Policy;
+import java.security.ProtectionDomain;
+import java.security.URIParameter;
+
+public class DefaultPolicy {
+
+ public static void main(String[] args) throws Exception {
+
+ // Check policy with no java.security.policy property set
+ Policy p = Policy.getPolicy();
+ checkPolicy(p);
+
+ // Check policy with java.security.policy '=' option
+ System.setProperty("java.security.policy", "Extra.policy");
+ p.refresh();
+ checkPolicy(p);
+
+ // Check policy with java.security.policy override '==' option
+ System.setProperty("java.security.policy", "=Extra.policy");
+ p.refresh();
+ checkPolicy(p);
+
+ // Check Policy.getInstance
+ URI policyURI = Paths.get(System.getProperty("test.src"),
+ "Extra.policy").toUri();
+ p = Policy.getInstance("JavaPolicy", new URIParameter(policyURI));
+ checkPolicy(p);
+ }
+
+ private static void checkPolicy(Policy p) throws Exception {
+ // check if jdk.crypto.ec module has been de-privileged
+ CodeSource cs =
+ new CodeSource(new URL("jrt:/jdk.crypto.ec"), (CodeSigner[])null);
+ ProtectionDomain pd = new ProtectionDomain(cs, null, null, null);
+ if (p.implies(pd, new AllPermission())) {
+ throw new Exception("module should not be granted AllPermission");
+ }
+ if (!p.implies(pd, new RuntimePermission("loadLibrary.sunec"))) {
+ throw new Exception("module should be granted RuntimePermission");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/provider/PolicyFile/Extra.policy Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,3 @@
+grant {
+ permission java.net.SocketPermission "localhost:0", "listen";
+};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/sun/security/tools/keytool/HasSrcStoretypeOption.java Mon Aug 01 10:06:09 2016 -0700
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8162752
+ * @summary keytool -importkeystore should probe srcstoretype if not specified
+ * @modules java.base/sun.security.tools.keytool
+ */
+
+import sun.security.tools.keytool.Main;
+
+public class HasSrcStoretypeOption {
+
+ public static void main(String[] args) throws Exception {
+ run("-genkeypair -alias a -dname CN=A -storetype jceks -keystore jce");
+ // When there is no -srcstoretype, it should be probed from the file
+ run("-importkeystore -srckeystore jce -destkeystore jks -deststoretype jks");
+ }
+
+ private static void run(String cmd) throws Exception {
+ cmd += " -debug -storepass changeit -keypass changeit -srcstorepass changeit";
+ Main.main(cmd.split(" "));
+ }
+}
--- a/jdk/test/tools/jmod/JmodNegativeTest.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/tools/jmod/JmodNegativeTest.java Mon Aug 01 10:06:09 2016 -0700
@@ -229,21 +229,6 @@
}
}
- @Test(enabled = false) // TODO: jmod should check for duplicates before creating.
- public void testDuplicates() throws IOException {
- Path jmod = MODS_DIR.resolve("testDuplicates.jmod");
- FileUtils.deleteFileIfExistsWithRetry(jmod);
- String cp = EXPLODED_DIR.resolve("foo").resolve("classes").toString();
-
- jmod("create",
- "--class-path", cp + pathSeparator + cp,
- jmod.toString())
- .assertFailure()
- .resultChecker(r ->
- assertContains(r.output, "Error: duplicate resource found, etc..")
- );
- }
-
@Test
public void testEmptyFileInClasspath() throws IOException {
Path jmod = MODS_DIR.resolve("testEmptyFileInClasspath.jmod");
--- a/jdk/test/tools/jmod/JmodTest.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/tools/jmod/JmodTest.java Mon Aug 01 10:06:09 2016 -0700
@@ -42,6 +42,8 @@
import jdk.testlibrary.FileUtils;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
+
+import static java.io.File.pathSeparator;
import static java.lang.module.ModuleDescriptor.Version;
import static java.nio.charset.StandardCharsets.UTF_8;
import static java.util.stream.Collectors.toSet;
@@ -283,6 +285,58 @@
}
@Test
+ public void testDuplicateEntries() throws IOException {
+ Path jmod = MODS_DIR.resolve("testDuplicates.jmod");
+ FileUtils.deleteFileIfExistsWithRetry(jmod);
+ String cp = EXPLODED_DIR.resolve("foo").resolve("classes").toString();
+ Path lp = EXPLODED_DIR.resolve("foo").resolve("lib");
+
+ jmod("create",
+ "--class-path", cp + pathSeparator + cp,
+ jmod.toString())
+ .assertSuccess()
+ .resultChecker(r ->
+ assertContains(r.output, "Warning: ignoring duplicate entry")
+ );
+
+ FileUtils.deleteFileIfExistsWithRetry(jmod);
+ jmod("create",
+ "--class-path", cp,
+ "--libs", lp.toString() + pathSeparator + lp.toString(),
+ jmod.toString())
+ .assertSuccess()
+ .resultChecker(r ->
+ assertContains(r.output, "Warning: ignoring duplicate entry")
+ );
+ }
+
+ @Test
+ public void testIgnoreModuleInfoInOtherSections() throws IOException {
+ Path jmod = MODS_DIR.resolve("testIgnoreModuleInfoInOtherSections.jmod");
+ FileUtils.deleteFileIfExistsWithRetry(jmod);
+ String cp = EXPLODED_DIR.resolve("foo").resolve("classes").toString();
+
+ jmod("create",
+ "--class-path", cp,
+ "--libs", cp,
+ jmod.toString())
+ .assertSuccess()
+ .resultChecker(r ->
+ assertContains(r.output, "Warning: ignoring entry")
+ );
+
+ FileUtils.deleteFileIfExistsWithRetry(jmod);
+ jmod("create",
+ "--class-path", cp,
+ "--cmds", cp,
+ jmod.toString())
+ .assertSuccess()
+ .resultChecker(r ->
+ assertContains(r.output, "Warning: ignoring entry")
+ );
+ }
+
+ @Test
public void testVersion() {
jmod("--version")
.assertSuccess()
--- a/jdk/test/tools/launcher/VersionCheck.java Fri Jul 29 11:25:59 2016 +0300
+++ b/jdk/test/tools/launcher/VersionCheck.java Mon Aug 01 10:06:09 2016 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 6545058 6611182 8016209 8139986
+ * @bug 6545058 6611182 8016209 8139986 8162746
* @summary validate and test -version, -fullversion, and internal, as well as
* sanity checks if a tool can be launched.
* @compile VersionCheck.java
@@ -56,7 +56,7 @@
"jcontrol",
"jmc",
"jmc.ini",
- "jp2launcher",
+ "jweblauncher",
"jvisualvm",
"packager",
"ssvagent",
@@ -93,11 +93,11 @@
"jps",
"jrunscript",
"jjs",
- "jp2launcher",
"jsadebugd",
"jstack",
"jstat",
"jstatd",
+ "jweblauncher",
"jvisualvm",
"keytool",
"kinit",