Merge
authorjwilhelm
Wed, 09 Jan 2019 22:59:49 +0100
changeset 53232 32c6cc430526
parent 53213 716c746165b2 (current diff)
parent 53231 ee1f64096d7c (diff)
child 53233 642346a11059
Merge
src/hotspot/share/classfile/systemDictionary.cpp
src/hotspot/share/oops/instanceKlass.cpp
src/hotspot/share/oops/instanceKlass.hpp
src/hotspot/share/runtime/arguments.cpp
src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java
test/jdk/java/lang/String/AlignIndent.java
test/jdk/java/lang/String/Indent.java
test/langtools/tools/javac/RawStringLiteralLang.java
test/langtools/tools/javac/RawStringLiteralLangAPI.java
test/langtools/tools/javac/diags/examples/RawStringLiteral.java
--- a/make/scripts/pandoc-html-manpage-filter.js	Tue Jan 08 17:37:57 2019 -0800
+++ b/make/scripts/pandoc-html-manpage-filter.js	Wed Jan 09 22:59:49 2019 +0100
@@ -86,7 +86,7 @@
 function change_title(type, value) {
     if (type === 'MetaInlines') {
         if (value[0].t === 'Str') {
-            var match = value[0].c.match(/^([A-Z]+)\([0-9]+\)$/);
+            var match = value[0].c.match(/^([A-Z0-9]+)\([0-9]+\)$/);
             if (match) {
                 return MetaInlines([
                         Str("The"), Space(),
--- a/src/hotspot/os_cpu/linux_x86/gc/z/zArguments_linux_x86.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/os_cpu/linux_x86/gc/z/zArguments_linux_x86.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -28,6 +28,7 @@
 #include "utilities/debug.hpp"
 
 void ZArguments::initialize_platform() {
+#ifdef COMPILER2
   // The C2 barrier slow path expects vector registers to be least
   // 16 bytes wide, which is the minimum width available on all
   // x86-64 systems. However, the user could have speficied a lower
@@ -37,4 +38,5 @@
     warning("ZGC requires MaxVectorSize to be at least 16");
     FLAG_SET_DEFAULT(MaxVectorSize, 16);
   }
+#endif
 }
--- a/src/hotspot/share/classfile/systemDictionary.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/classfile/systemDictionary.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2019, 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
@@ -1787,14 +1787,17 @@
   assert(k != NULL, "just checking");
   assert_locked_or_safepoint(Compile_lock);
 
-  // Link into hierachy. Make sure the vtables are initialized before linking into
+  k->set_init_state(InstanceKlass::loaded);
+  // make sure init_state store is already done.
+  // The compiler reads the hierarchy outside of the Compile_lock.
+  // Access ordering is used to add to hierarchy.
+
+  // Link into hierachy.
   k->append_to_sibling_list();                    // add to superklass/sibling list
   k->process_interfaces(THREAD);                  // handle all "implements" declarations
-  k->set_init_state(InstanceKlass::loaded);
+
   // Now flush all code that depended on old class hierarchy.
   // Note: must be done *after* linking k into the hierarchy (was bug 12/9/97)
-  // Also, first reinitialize vtable because it may have gotten out of synch
-  // while the new class wasn't connected to the class hierarchy.
   CodeCache::flush_dependents_on(k);
 }
 
--- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, 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
@@ -189,6 +189,15 @@
   bs->register_potential_barrier_node(this);
 }
 
+uint LoadBarrierNode::size_of() const {
+  return sizeof(*this);
+}
+
+uint LoadBarrierNode::cmp(const Node& n) const {
+  ShouldNotReachHere();
+  return 0;
+}
+
 const Type *LoadBarrierNode::bottom_type() const {
   const Type** floadbarrier = (const Type **)(Compile::current()->type_arena()->Amalloc_4((Number_of_Outputs)*sizeof(Type*)));
   Node* in_oop = in(Oop);
@@ -198,6 +207,11 @@
   return TypeTuple::make(Number_of_Outputs, floadbarrier);
 }
 
+const TypePtr* LoadBarrierNode::adr_type() const {
+  ShouldNotReachHere();
+  return NULL;
+}
+
 const Type *LoadBarrierNode::Value(PhaseGVN *phase) const {
   const Type** floadbarrier = (const Type **)(phase->C->type_arena()->Amalloc_4((Number_of_Outputs)*sizeof(Type*)));
   const Type* val_t = phase->type(in(Oop));
@@ -441,6 +455,11 @@
   return NULL;
 }
 
+uint LoadBarrierNode::match_edge(uint idx) const {
+  ShouldNotReachHere();
+  return 0;
+}
+
 void LoadBarrierNode::fix_similar_in_uses(PhaseIterGVN* igvn) {
   Node* out_res = proj_out_or_null(Oop);
   if (out_res == NULL) {
@@ -1151,7 +1170,7 @@
   if (lb->in(LoadBarrierNode::Oop)->is_Phi()) {
     Node* oop_phi = lb->in(LoadBarrierNode::Oop);
 
-    if (oop_phi->in(2) == oop_phi) {
+    if ((oop_phi->req() != 3) || (oop_phi->in(2) == oop_phi)) {
       // Ignore phis with only one input
       return false;
     }
--- a/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/gc/z/c2/zBarrierSetC2.hpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2019, 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
@@ -62,10 +62,14 @@
                   bool oop_reload_allowed);
 
   virtual int Opcode() const;
+  virtual uint size_of() const;
+  virtual uint cmp(const Node& n) const;
   virtual const Type *bottom_type() const;
+  virtual const TypePtr* adr_type() const;
   virtual const Type *Value(PhaseGVN *phase) const;
   virtual Node *Identity(PhaseGVN *phase);
   virtual Node *Ideal(PhaseGVN *phase, bool can_reshape);
+  virtual uint match_edge(uint idx) const;
 
   LoadBarrierNode* has_dominating_barrier(PhaseIdealLoop* phase,
                                           bool linear_only,
--- a/src/hotspot/share/oops/instanceKlass.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/oops/instanceKlass.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -3654,14 +3654,14 @@
   }
 }
 
+void InstanceKlass::set_init_state(ClassState state) {
 #ifdef ASSERT
-void InstanceKlass::set_init_state(ClassState state) {
   bool good_state = is_shared() ? (_init_state <= state)
                                                : (_init_state < state);
   assert(good_state || state == allocated, "illegal state transition");
+#endif
   _init_state = (u1)state;
 }
-#endif
 
 #if INCLUDE_JVMTI
 
--- a/src/hotspot/share/oops/instanceKlass.hpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/oops/instanceKlass.hpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1243,11 +1243,7 @@
 
 private:
   // initialization state
-#ifdef ASSERT
   void set_init_state(ClassState state);
-#else
-  void set_init_state(ClassState state) { _init_state = (u1)state; }
-#endif
   void set_rewritten()                  { _misc_flags |= _misc_rewritten; }
   void set_init_thread(Thread *thread)  { _init_thread = thread; }
 
--- a/src/hotspot/share/opto/callnode.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/callnode.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1271,6 +1271,14 @@
   return (TypeFunc::Parms == idx);
 }
 
+void SafePointNode::disconnect_from_root(PhaseIterGVN *igvn) {
+  assert(Opcode() == Op_SafePoint, "only value for safepoint in loops");
+  int nb = igvn->C->root()->find_prec_edge(this);
+  if (nb != -1) {
+    igvn->C->root()->rm_prec(nb);
+  }
+}
+
 //==============  SafePointScalarObjectNode  ==============
 
 SafePointScalarObjectNode::SafePointScalarObjectNode(const TypeOopPtr* tp,
--- a/src/hotspot/share/opto/callnode.hpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/callnode.hpp	Wed Jan 09 22:59:49 2019 +0100
@@ -462,6 +462,8 @@
     return !_replaced_nodes.is_empty();
   }
 
+  void disconnect_from_root(PhaseIterGVN *igvn);
+
   // Standard Node stuff
   virtual int            Opcode() const;
   virtual bool           pinned() const { return true; }
--- a/src/hotspot/share/opto/compile.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/compile.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -2184,6 +2184,23 @@
   return true;
 }
 
+// Remove edges from "root" to each SafePoint at a backward branch.
+// They were inserted during parsing (see add_safepoint()) to make
+// infinite loops without calls or exceptions visible to root, i.e.,
+// useful.
+void Compile::remove_root_to_sfpts_edges() {
+  Node *r = root();
+  if (r != NULL) {
+    for (uint i = r->req(); i < r->len(); ++i) {
+      Node *n = r->in(i);
+      if (n != NULL && n->is_SafePoint()) {
+        r->rm_prec(i);
+        --i;
+      }
+    }
+  }
+}
+
 //------------------------------Optimize---------------------------------------
 // Given a graph, optimize it.
 void Compile::Optimize() {
@@ -2244,6 +2261,10 @@
     if (failing())  return;
   }
 
+  // Now that all inlining is over, cut edge from root to loop
+  // safepoints
+  remove_root_to_sfpts_edges();
+
   // Remove the speculative part of types and clean up the graph from
   // the extra CastPP nodes whose only purpose is to carry them. Do
   // that early so that optimizations are not disrupted by the extra
@@ -3248,8 +3269,10 @@
             break;
           }
         }
-        assert(proj != NULL, "must be found");
-        p->subsume_by(proj, this);
+        assert(proj != NULL || p->_con == TypeFunc::I_O, "io may be dropped at an infinite loop");
+        if (proj != NULL) {
+          p->subsume_by(proj, this);
+        }
       }
     }
     break;
--- a/src/hotspot/share/opto/compile.hpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/compile.hpp	Wed Jan 09 22:59:49 2019 +0100
@@ -1088,6 +1088,7 @@
   void inline_string_calls(bool parse_time);
   void inline_boxing_calls(PhaseIterGVN& igvn);
   bool optimize_loops(PhaseIterGVN& igvn, LoopOptsMode mode);
+  void remove_root_to_sfpts_edges();
 
   // Matching, CFG layout, allocation, code generation
   PhaseCFG*         cfg()                       { return _cfg; }
--- a/src/hotspot/share/opto/node.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/node.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -37,6 +37,7 @@
 #include "opto/node.hpp"
 #include "opto/opcodes.hpp"
 #include "opto/regmask.hpp"
+#include "opto/rootnode.hpp"
 #include "opto/type.hpp"
 #include "utilities/copy.hpp"
 #include "utilities/macros.hpp"
@@ -1310,6 +1311,9 @@
 
   while (nstack.size() > 0) {
     dead = nstack.pop();
+    if (dead->Opcode() == Op_SafePoint) {
+      dead->as_SafePoint()->disconnect_from_root(igvn);
+    }
     if (dead->outcnt() > 0) {
       // Keep dead node on stack until all uses are processed.
       nstack.push(dead);
--- a/src/hotspot/share/opto/phaseX.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/opto/phaseX.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -430,20 +430,6 @@
 
   // Disconnect 'useless' nodes that are adjacent to useful nodes
   C->remove_useless_nodes(_useful);
-
-  // Remove edges from "root" to each SafePoint at a backward branch.
-  // They were inserted during parsing (see add_safepoint()) to make infinite
-  // loops without calls or exceptions visible to root, i.e., useful.
-  Node *root = C->root();
-  if( root != NULL ) {
-    for( uint i = root->req(); i < root->len(); ++i ) {
-      Node *n = root->in(i);
-      if( n != NULL && n->is_SafePoint() ) {
-        root->rm_prec(i);
-        --i;
-      }
-    }
-  }
 }
 
 //=============================================================================
@@ -1354,6 +1340,9 @@
 
   while (_stack.is_nonempty()) {
     dead = _stack.node();
+    if (dead->Opcode() == Op_SafePoint) {
+      dead->as_SafePoint()->disconnect_from_root(this);
+    }
     uint progress_state = _stack.index();
     assert(dead != C->root(), "killing root, eh?");
     assert(!dead->is_top(), "add check for top when pushing");
@@ -1456,6 +1445,9 @@
 //------------------------------subsume_node-----------------------------------
 // Remove users from node 'old' and add them to node 'nn'.
 void PhaseIterGVN::subsume_node( Node *old, Node *nn ) {
+  if (old->Opcode() == Op_SafePoint) {
+    old->as_SafePoint()->disconnect_from_root(this);
+  }
   assert( old != hash_find(old), "should already been removed" );
   assert( old != C->top(), "cannot subsume top node");
   // Copy debug or profile information to the new version:
--- a/src/hotspot/share/runtime/arguments.cpp	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/hotspot/share/runtime/arguments.cpp	Wed Jan 09 22:59:49 2019 +0100
@@ -3793,6 +3793,7 @@
 
 #if defined(AIX)
   UNSUPPORTED_OPTION(AllocateHeapAt);
+  UNSUPPORTED_OPTION(AllocateOldGenAt);
 #endif
 
 #ifndef PRODUCT
--- a/src/java.base/share/classes/java/lang/String.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/String.java	Wed Jan 09 22:59:49 2019 +0100
@@ -2869,119 +2869,12 @@
     }
 
     /**
-     * Removes vertical and horizontal white space margins from around the
-     * essential body of a multi-line string, while preserving relative
-     * indentation.
-     * <p>
-     * This string is first conceptually separated into lines as if by
-     * {@link String#lines()}.
-     * <p>
-     * Then, the <i>minimum indentation</i> (min) is determined as follows. For
-     * each non-blank line (as defined by {@link String#isBlank()}), the
-     * leading {@link Character#isWhitespace(int) white space} characters are
-     * counted. The <i>min</i> value is the smallest of these counts.
-     * <p>
-     * For each non-blank line, <i>min</i> leading white space characters are
-     * removed. Each white space character is treated as a single character. In
-     * particular, the tab character {@code "\t"} (U+0009) is considered a
-     * single character; it is not expanded.
-     * <p>
-     * Leading and trailing blank lines, if any, are removed. Trailing spaces are
-     * preserved.
-     * <p>
-     * Each line is suffixed with a line feed character {@code "\n"} (U+000A).
-     * <p>
-     * Finally, the lines are concatenated into a single string and returned.
-     *
-     * @apiNote
-     * This method's primary purpose is to shift a block of lines as far as
-     * possible to the left, while preserving relative indentation. Lines
-     * that were indented the least will thus have no leading white space.
-     *
-     * Example:
-     * <blockquote><pre>
-     * `
-     *      This is the first line
-     *          This is the second line
-     * `.align();
-     *
-     * returns
-     * This is the first line
-     *     This is the second line
-     * </pre></blockquote>
-     *
-     * @return string with margins removed and line terminators normalized
-     *
-     * @see String#lines()
-     * @see String#isBlank()
-     * @see String#indent(int)
-     * @see Character#isWhitespace(int)
-     *
-     * @since 12
-     */
-    public String align() {
-        return align(0);
-    }
-
-    /**
-     * Removes vertical and horizontal white space margins from around the
-     * essential body of a multi-line string, while preserving relative
-     * indentation and with optional indentation adjustment.
-     * <p>
-     * Invoking this method is equivalent to:
-     * <blockquote>
-     *  {@code this.align().indent(n)}
-     * </blockquote>
-     *
-     * @apiNote
-     * Examples:
-     * <blockquote><pre>
-     * `
-     *      This is the first line
-     *          This is the second line
-     * `.align(0);
-     *
-     * returns
-     * This is the first line
-     *     This is the second line
-     *
-     *
-     * `
-     *    This is the first line
-     *       This is the second line
-     * `.align(4);
-     * returns
-     *     This is the first line
-     *         This is the second line
-     * </pre></blockquote>
-     *
-     * @param n  number of leading white space characters
-     *           to add or remove
-     *
-     * @return string with margins removed, indentation adjusted and
-     *         line terminators normalized
-     *
-     * @see String#align()
-     *
-     * @since 12
-     */
-    public String align(int n) {
-        if (isEmpty()) {
-            return "";
-        }
-        int outdent = lines().filter(not(String::isBlank))
-                             .mapToInt(String::indexOfNonWhitespace)
-                             .min()
-                             .orElse(0);
-        // overflow-conscious code
-        int indent = n - outdent;
-        return indent(indent > n ? Integer.MIN_VALUE : indent, true);
-    }
-
-    /**
      * This method allows the application of a function to {@code this}
      * string. The function should expect a single String argument
      * and produce an {@code R} result.
+     * <p>
+     * Any exception thrown by {@code f()} will be propagated to the
+     * caller.
      *
      * @param f    functional interface to a apply
      *
--- a/src/java.base/share/classes/java/lang/constant/ClassDesc.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/ClassDesc.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -97,7 +97,10 @@
      */
     static ClassDesc of(String packageName, String className) {
         ConstantUtils.validateBinaryClassName(requireNonNull(packageName));
-        validateMemberName(requireNonNull(className));
+        if (packageName.isEmpty()) {
+            return of(className);
+        }
+        validateMemberName(requireNonNull(className), false);
         return ofDescriptor(String.format("L%s%s%s;",
                                           binaryToInternal(packageName),
                                           (packageName.length() > 0 ? "/" : ""),
@@ -130,6 +133,9 @@
      */
     static ClassDesc ofDescriptor(String descriptor) {
         requireNonNull(descriptor);
+        if (descriptor.isEmpty()) {
+            throw new IllegalArgumentException(String.format("not a valid reference type descriptor: %s", descriptor));
+        }
         int depth = ConstantUtils.arrayDepth(descriptor);
         if (depth > ConstantUtils.MAX_ARRAY_TYPE_DESC_DIMENSIONS) {
             throw new IllegalArgumentException(String.format("Cannot create an array type descriptor with more than %d dimensions",
@@ -192,7 +198,7 @@
      * @throws IllegalArgumentException if the nested class name is invalid
      */
     default ClassDesc nested(String nestedName) {
-        validateMemberName(nestedName);
+        validateMemberName(nestedName, false);
         if (!isClassOrInterface())
             throw new IllegalStateException("Outer class is not a class or interface type");
         return ClassDesc.ofDescriptor(String.format("%s$%s;", dropLastChar(descriptorString()), nestedName));
--- a/src/java.base/share/classes/java/lang/constant/ConstantUtils.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/ConstantUtils.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -65,7 +65,7 @@
      * @return the name passed if valid
      * @throws IllegalArgumentException if the member name is invalid
      */
-    public static String validateMemberName(String name) {
+    public static String validateMemberName(String name, boolean method) {
         requireNonNull(name);
         if (name.length() == 0)
             throw new IllegalArgumentException("zero-length member name");
@@ -73,7 +73,7 @@
             char ch = name.charAt(i);
             if (ch == '.' || ch == ';' || ch == '[' || ch == '/')
                 throw new IllegalArgumentException("Invalid member name: " + name);
-            if (ch == '<' || ch == '>') {
+            if (method && (ch == '<' || ch == '>')) {
                 if (!pointyNames.contains(name))
                     throw new IllegalArgumentException("Invalid member name: " + name);
             }
@@ -126,8 +126,8 @@
 
         ++cur;  // skip '('
         while (cur < end && descriptor.charAt(cur) != ')') {
-            int len = matchSig(descriptor, cur, end);
-            if (len == 0 || descriptor.charAt(cur) == 'V')
+            int len = skipOverFieldSignature(descriptor, cur, end, false);
+            if (len == 0)
                 throw new IllegalArgumentException("Bad method descriptor: " + descriptor);
             ptypes.add(descriptor.substring(cur, cur + len));
             cur += len;
@@ -136,41 +136,103 @@
             throw new IllegalArgumentException("Bad method descriptor: " + descriptor);
         ++cur;  // skip ')'
 
-        int rLen = matchSig(descriptor, cur, end);
+        int rLen = skipOverFieldSignature(descriptor, cur, end, true);
         if (rLen == 0 || cur + rLen != end)
             throw new IllegalArgumentException("Bad method descriptor: " + descriptor);
         ptypes.add(0, descriptor.substring(cur, cur + rLen));
         return ptypes;
     }
 
+    private static final char JVM_SIGNATURE_ARRAY = '[';
+    private static final char JVM_SIGNATURE_BYTE = 'B';
+    private static final char JVM_SIGNATURE_CHAR = 'C';
+    private static final char JVM_SIGNATURE_CLASS = 'L';
+    private static final char JVM_SIGNATURE_ENDCLASS = ';';
+    private static final char JVM_SIGNATURE_ENUM = 'E';
+    private static final char JVM_SIGNATURE_FLOAT = 'F';
+    private static final char JVM_SIGNATURE_DOUBLE = 'D';
+    private static final char JVM_SIGNATURE_FUNC = '(';
+    private static final char JVM_SIGNATURE_ENDFUNC = ')';
+    private static final char JVM_SIGNATURE_INT = 'I';
+    private static final char JVM_SIGNATURE_LONG = 'J';
+    private static final char JVM_SIGNATURE_SHORT = 'S';
+    private static final char JVM_SIGNATURE_VOID = 'V';
+    private static final char JVM_SIGNATURE_BOOLEAN = 'Z';
+
     /**
      * Validates that the characters at [start, end) within the provided string
      * describe a valid field type descriptor.
-     *
-     * @param str the descriptor string
+     * @param descriptor the descriptor string
      * @param start the starting index into the string
      * @param end the ending index within the string
+     * @param voidOK is void acceptable?
      * @return the length of the descriptor, or 0 if it is not a descriptor
      * @throws IllegalArgumentException if the descriptor string is not valid
      */
-    static int matchSig(String str, int start, int end) {
-        if (start >= end || start >= str.length() || end > str.length())
-            return 0;
-        char c = str.charAt(start);
-        if (c == 'L') {
-            int endc = str.indexOf(';', start);
-            int badc = str.indexOf('.', start);
-            if (badc >= 0 && badc < endc)
-                return 0;
-            badc = str.indexOf('[', start);
-            if (badc >= 0 && badc < endc)
-                return 0;
-            return (endc < 0) ? 0 : endc - start + 1;
-        } else if (c == '[') {
-            int t = matchSig(str, start+1, end);
-            return (t > 0) ? t + 1 : 0;
-        } else {
-            return ("IJCSBFDZV".indexOf(c) >= 0) ? 1 : 0;
+    @SuppressWarnings("fallthrough")
+    static int skipOverFieldSignature(String descriptor, int start, int end, boolean voidOK) {
+        int arrayDim = 0;
+        int index = start;
+        while (index < end) {
+            switch (descriptor.charAt(index)) {
+                case JVM_SIGNATURE_VOID: if (!voidOK) { return index; }
+                case JVM_SIGNATURE_BOOLEAN:
+                case JVM_SIGNATURE_BYTE:
+                case JVM_SIGNATURE_CHAR:
+                case JVM_SIGNATURE_SHORT:
+                case JVM_SIGNATURE_INT:
+                case JVM_SIGNATURE_FLOAT:
+                case JVM_SIGNATURE_LONG:
+                case JVM_SIGNATURE_DOUBLE:
+                    return index - start + 1;
+                case JVM_SIGNATURE_CLASS:
+                    // Skip leading 'L' and ignore first appearance of ';'
+                    index++;
+                    int indexOfSemi = descriptor.indexOf(';', index);
+                    if (indexOfSemi != -1) {
+                        String unqualifiedName = descriptor.substring(index, indexOfSemi);
+                        boolean legal = verifyUnqualifiedClassName(unqualifiedName);
+                        if (!legal) {
+                            return 0;
+                        }
+                        return index - start + unqualifiedName.length() + 1;
+                    }
+                    return 0;
+                case JVM_SIGNATURE_ARRAY:
+                    arrayDim++;
+                    if (arrayDim > MAX_ARRAY_TYPE_DESC_DIMENSIONS) {
+                        throw new IllegalArgumentException(String.format("Cannot create an array type descriptor with more than %d dimensions",
+                                ConstantUtils.MAX_ARRAY_TYPE_DESC_DIMENSIONS));
+                    }
+                    // The rest of what's there better be a legal descriptor
+                    index++;
+                    voidOK = false;
+                    break;
+                default:
+                    return 0;
+            }
         }
+        return 0;
+    }
+
+    static boolean verifyUnqualifiedClassName(String name) {
+        for (int index = 0; index < name.length(); index++) {
+            char ch = name.charAt(index);
+            if (ch < 128) {
+                if (ch == '.' || ch == ';' || ch == '[' ) {
+                    return false;   // do not permit '.', ';', or '['
+                }
+                if (ch == '/') {
+                    // check for '//' or leading or trailing '/' which are not legal
+                    // unqualified name must not be empty
+                    if (index == 0 || index + 1 >= name.length() || name.charAt(index + 1) == '/') {
+                        return false;
+                    }
+                }
+            } else {
+                index ++;
+            }
+        }
+        return true;
     }
 }
--- a/src/java.base/share/classes/java/lang/constant/DirectMethodHandleDescImpl.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/DirectMethodHandleDescImpl.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -68,7 +68,7 @@
 
         requireNonNull(kind);
         validateClassOrInterface(requireNonNull(owner));
-        validateMemberName(requireNonNull(name));
+        validateMemberName(requireNonNull(name), true);
         requireNonNull(type);
 
         switch (kind) {
--- a/src/java.base/share/classes/java/lang/constant/DynamicCallSiteDesc.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/DynamicCallSiteDesc.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -75,7 +75,7 @@
                                 String invocationName,
                                 MethodTypeDesc invocationType,
                                 ConstantDesc[] bootstrapArgs) {
-        this.invocationName = validateMemberName(requireNonNull(invocationName));
+        this.invocationName = validateMemberName(requireNonNull(invocationName), true);
         this.invocationType = requireNonNull(invocationType);
         this.bootstrapMethod = requireNonNull(bootstrapMethod);
         this.bootstrapArgs = requireNonNull(bootstrapArgs.clone());
--- a/src/java.base/share/classes/java/lang/constant/DynamicConstantDesc.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/DynamicConstantDesc.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -96,7 +96,7 @@
                                   ClassDesc constantType,
                                   ConstantDesc... bootstrapArgs) {
         this.bootstrapMethod = requireNonNull(bootstrapMethod);
-        this.constantName = validateMemberName(requireNonNull(constantName));
+        this.constantName = validateMemberName(requireNonNull(constantName), true);
         this.constantType = requireNonNull(constantType);
         this.bootstrapArgs = requireNonNull(bootstrapArgs).clone();
 
--- a/src/java.base/share/classes/java/lang/constant/ReferenceClassDescImpl.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/lang/constant/ReferenceClassDescImpl.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -49,7 +49,7 @@
      */
     ReferenceClassDescImpl(String descriptor) {
         requireNonNull(descriptor);
-        int len = ConstantUtils.matchSig(descriptor, 0, descriptor.length());
+        int len = ConstantUtils.skipOverFieldSignature(descriptor, 0, descriptor.length(), false);
         if (len == 0 || len == 1
             || len != descriptor.length())
             throw new IllegalArgumentException(String.format("not a valid reference type descriptor: %s", descriptor));
--- a/src/java.base/share/classes/java/time/chrono/JapaneseEra.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/java/time/chrono/JapaneseEra.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2019, 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
@@ -94,7 +94,7 @@
  * dates before Meiji 6, January 1 are not supported.
  * The number of the valid eras may increase, as new eras may be
  * defined by the Japanese government. Once an era is defined,
- * subsequent versions of this class will add a singleton instance
+ * future versions of the platform may add a singleton instance
  * for it. The defined era is expected to have a consecutive integer
  * associated with it.
  *
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources_ja.java	Wed Jan 09 22:59:49 2019 +0100
@@ -61,16 +61,16 @@
         {"Exports.certificate",
                 "\u8A3C\u660E\u66F8\u3092\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-exportcert
         {"Generates.a.key.pair",
-                "\u9375\u30DA\u30A2\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genkeypair
+                "\u30AD\u30FC\u30FB\u30DA\u30A2\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genkeypair
         {"Generates.a.secret.key",
-                "\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genseckey
+                "\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genseckey
         {"Generates.certificate.from.a.certificate.request",
                 "\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8\u304B\u3089\u8A3C\u660E\u66F8\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencert
         {"Generates.CRL", "CRL\u3092\u751F\u6210\u3057\u307E\u3059"}, //-gencrl
         {"Generated.keyAlgName.secret.key",
-                "{0}\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
+                "{0}\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
         {"Generated.keysize.bit.keyAlgName.secret.key",
-                "{0}\u30D3\u30C3\u30C8{1}\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
+                "{0}\u30D3\u30C3\u30C8{1}\u79D8\u5BC6\u30AD\u30FC\u3092\u751F\u6210\u3057\u307E\u3057\u305F"}, //-genseckey
         {"Imports.entries.from.a.JDK.1.1.x.style.identity.database",
                 "JDK 1.1.x-style\u30A2\u30A4\u30C7\u30F3\u30C6\u30A3\u30C6\u30A3\u30FB\u30C7\u30FC\u30BF\u30D9\u30FC\u30B9\u304B\u3089\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-identitydb
         {"Imports.a.certificate.or.a.certificate.chain",
@@ -80,9 +80,9 @@
         {"Imports.one.or.all.entries.from.another.keystore",
                 "\u5225\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u30891\u3064\u307E\u305F\u306F\u3059\u3079\u3066\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u307E\u3059"}, //-importkeystore
         {"Clones.a.key.entry",
-                "\u9375\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u3092\u4F5C\u6210\u3057\u307E\u3059"}, //-keyclone
+                "\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u3092\u4F5C\u6210\u3057\u307E\u3059"}, //-keyclone
         {"Changes.the.key.password.of.an.entry",
-                "\u30A8\u30F3\u30C8\u30EA\u306E\u9375\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u307E\u3059"}, //-keypasswd
+                "\u30A8\u30F3\u30C8\u30EA\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5909\u66F4\u3057\u307E\u3059"}, //-keypasswd
         {"Lists.entries.in.a.keystore",
                 "\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059"}, //-list
         {"Prints.the.content.of.a.certificate",
@@ -98,6 +98,8 @@
         // keytool: help: options
         {"alias.name.of.the.entry.to.process",
                 "\u51E6\u7406\u3059\u308B\u30A8\u30F3\u30C8\u30EA\u306E\u5225\u540D"}, //-alias
+        {"groupname.option.help",
+                "\u30B0\u30EB\u30FC\u30D7\u540D\u3002\u305F\u3068\u3048\u3070\u3001\u6955\u5186\u66F2\u7DDA\u540D\u3067\u3059\u3002"}, //-groupname
         {"destination.alias",
                 "\u51FA\u529B\u5148\u306E\u5225\u540D"}, //-destalias
         {"destination.key.password",
@@ -121,11 +123,11 @@
         {"input.file.name",
                 "\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u540D"}, //-file and -infile
         {"key.algorithm.name",
-                "\u9375\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D"}, //-keyalg
+                "\u30AD\u30FC\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D"}, //-keyalg
         {"key.password",
-                "\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-keypass
+                "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"}, //-keypass
         {"key.bit.size",
-                "\u9375\u306E\u30D3\u30C3\u30C8\u30FB\u30B5\u30A4\u30BA"}, //-keysize
+                "\u30AD\u30FC\u306E\u30D3\u30C3\u30C8\u30FB\u30B5\u30A4\u30BA"}, //-keysize
         {"keystore.name",
                 "\u30AD\u30FC\u30B9\u30C8\u30A2\u540D"}, //-keystore
         {"access.the.cacerts.keystore",
@@ -196,7 +198,7 @@
         {"Cannot.find.file.", "\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: "},
         {"Command.option.flag.needs.an.argument.", "\u30B3\u30DE\u30F3\u30C9\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3{0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059\u3002"},
         {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.",
-                "\u8B66\u544A: PKCS12\u30AD\u30FC\u30B9\u30C8\u30A2\u3067\u306F\u3001\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7570\u306A\u308B\u72B6\u6CC1\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002\u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F{0}\u306E\u5024\u306F\u7121\u8996\u3057\u307E\u3059\u3002"},
+                "\u8B66\u544A: PKCS12\u30AD\u30FC\u30B9\u30C8\u30A2\u3067\u306F\u3001\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u7570\u306A\u308B\u72B6\u6CC1\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u307E\u305B\u3093\u3002\u30E6\u30FC\u30B6\u30FC\u304C\u6307\u5B9A\u3057\u305F{0}\u306E\u5024\u306F\u7121\u8996\u3057\u307E\u3059\u3002"},
         {"the.keystore.or.storetype.option.cannot.be.used.with.the.cacerts.option",
             "-keystore\u307E\u305F\u306F-storetype\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001-cacerts\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3068\u3082\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"},
         {".keystore.must.be.NONE.if.storetype.is.{0}",
@@ -229,7 +231,7 @@
         {"Must.not.specify.both.v.and.rfc.with.list.command",
                 "'list'\u30B3\u30DE\u30F3\u30C9\u306B-v\u3068-rfc\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"},
         {"Key.password.must.be.at.least.6.characters",
-                "\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
+                "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
         {"New.password.must.be.at.least.6.characters",
                 "\u65B0\u898F\u30D1\u30B9\u30EF\u30FC\u30C9\u306F6\u6587\u5B57\u4EE5\u4E0A\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
         {"Keystore.file.exists.but.is.empty.",
@@ -280,31 +282,35 @@
                 "\u8A3C\u660E\u66F8\u304C\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
         {".Storing.ksfname.", "[{0}\u3092\u683C\u7D0D\u4E2D]"},
         {"alias.has.no.public.key.certificate.",
-                "{0}\u306B\u306F\u516C\u958B\u9375(\u8A3C\u660E\u66F8)\u304C\u3042\u308A\u307E\u305B\u3093"},
+                "{0}\u306B\u306F\u516C\u958B\u30AD\u30FC(\u8A3C\u660E\u66F8)\u304C\u3042\u308A\u307E\u305B\u3093"},
         {"Cannot.derive.signature.algorithm",
                 "\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093"},
         {"Alias.alias.does.not.exist",
                 "\u5225\u540D<{0}>\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"},
         {"Alias.alias.has.no.certificate",
                 "\u5225\u540D<{0}>\u306B\u306F\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
+        {"groupname.keysize.coexist",
+                "-groupname\u3068-keysize\u306E\u4E21\u65B9\u3092\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093"},
+        {"deprecate.keysize.for.ec",
+                "-keysize\u306E\u6307\u5B9A\u306B\u3088\u308BEC\u30AD\u30FC\u306E\u751F\u6210\u306F\u975E\u63A8\u5968\u3067\u3059\u3002\u304B\u308F\u308A\u306B\"-groupname %s\"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
         {"Key.pair.not.generated.alias.alias.already.exists",
-                "\u9375\u30DA\u30A2\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
+                "\u30AD\u30FC\u30FB\u30DA\u30A2\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
         {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
-                "{3}\u65E5\u9593\u6709\u52B9\u306A{0}\u30D3\u30C3\u30C8\u306E{1}\u306E\u9375\u30DA\u30A2\u3068\u81EA\u5DF1\u7F72\u540D\u578B\u8A3C\u660E\u66F8({2})\u3092\u751F\u6210\u3057\u3066\u3044\u307E\u3059\n\t\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D: {4}"},
-        {"Enter.key.password.for.alias.", "<{0}>\u306E\u9375\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
+                "{3}\u65E5\u9593\u6709\u52B9\u306A{0}\u30D3\u30C3\u30C8\u306E{1}\u306E\u30AD\u30FC\u30FB\u30DA\u30A2\u3068\u81EA\u5DF1\u7F72\u540D\u578B\u8A3C\u660E\u66F8({2})\u3092\u751F\u6210\u3057\u3066\u3044\u307E\u3059\n\t\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u540D: {4}"},
+        {"Enter.key.password.for.alias.", "<{0}>\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"},
         {".RETURN.if.same.as.keystore.password.",
                 "\t(\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3068\u540C\u3058\u5834\u5408\u306FRETURN\u3092\u62BC\u3057\u3066\u304F\u3060\u3055\u3044):  "},
         {"Key.password.is.too.short.must.be.at.least.6.characters",
-                "\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
+                "\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Too.many.failures.key.not.added.to.keystore",
-                "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059 - \u9375\u306F\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
+                "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059 - \u30AD\u30FC\u306F\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
         {"Destination.alias.dest.already.exists",
                 "\u51FA\u529B\u5148\u306E\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
         {"Password.is.too.short.must.be.at.least.6.characters",
                 "\u30D1\u30B9\u30EF\u30FC\u30C9\u304C\u77ED\u3059\u304E\u307E\u3059 - 6\u6587\u5B57\u4EE5\u4E0A\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Too.many.failures.Key.entry.not.cloned",
-                "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059\u3002\u9375\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
-        {"key.password.for.alias.", "<{0}>\u306E\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"},
+                "\u969C\u5BB3\u304C\u591A\u3059\u304E\u307E\u3059\u3002\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u306F\u4F5C\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"},
+        {"key.password.for.alias.", "<{0}>\u306E\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9"},
         {"Keystore.entry.for.id.getName.already.exists",
                 "<{0}>\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30A8\u30F3\u30C8\u30EA\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
         {"Creating.keystore.entry.for.id.getName.",
@@ -330,7 +336,7 @@
         {"Failed.to.parse.input", "\u5165\u529B\u306E\u69CB\u6587\u89E3\u6790\u306B\u5931\u6557\u3057\u307E\u3057\u305F"},
         {"Empty.input", "\u5165\u529B\u304C\u3042\u308A\u307E\u305B\u3093"},
         {"Not.X.509.certificate", "X.509\u8A3C\u660E\u66F8\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
-        {"alias.has.no.public.key", "{0}\u306B\u306F\u516C\u958B\u9375\u304C\u3042\u308A\u307E\u305B\u3093"},
+        {"alias.has.no.public.key", "{0}\u306B\u306F\u516C\u958B\u30AD\u30FC\u304C\u3042\u308A\u307E\u305B\u3093"},
         {"alias.has.no.X.509.certificate", "{0}\u306B\u306FX.509\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
         {"New.certificate.self.signed.", "\u65B0\u3057\u3044\u8A3C\u660E\u66F8(\u81EA\u5DF1\u7F72\u540D\u578B):"},
         {"Reply.has.no.certificates", "\u5FDC\u7B54\u306B\u306F\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"},
@@ -377,9 +383,9 @@
         {"y", "y"},
         {".defaultValue.", "  [{0}]:  "},
         {"Alias.alias.has.no.key",
-                "\u5225\u540D<{0}>\u306B\u306F\u9375\u304C\u3042\u308A\u307E\u305B\u3093"},
+                "\u5225\u540D<{0}>\u306B\u306F\u30AD\u30FC\u304C\u3042\u308A\u307E\u305B\u3093"},
         {"Alias.alias.references.an.entry.type.that.is.not.a.private.key.entry.The.keyclone.command.only.supports.cloning.of.private.key",
-                 "\u5225\u540D<{0}>\u304C\u53C2\u7167\u3057\u3066\u3044\u308B\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7\u306F\u79D8\u5BC6\u9375\u30A8\u30F3\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002-keyclone\u30B3\u30DE\u30F3\u30C9\u306F\u79D8\u5BC6\u9375\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u4F5C\u6210\u306E\u307F\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059"},
+                 "\u5225\u540D<{0}>\u304C\u53C2\u7167\u3057\u3066\u3044\u308B\u30A8\u30F3\u30C8\u30EA\u30FB\u30BF\u30A4\u30D7\u306F\u79D8\u5BC6\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002-keyclone\u30B3\u30DE\u30F3\u30C9\u306F\u79D8\u5BC6\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u306E\u30AF\u30ED\u30FC\u30F3\u4F5C\u6210\u306E\u307F\u3092\u30B5\u30DD\u30FC\u30C8\u3057\u307E\u3059"},
 
         {".WARNING.WARNING.WARNING.",
             "*****************  WARNING WARNING WARNING  *****************"},
@@ -398,7 +404,7 @@
             "*\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u4FDD\u5B58\u3055\u308C\u305F\u60C5\u5831\u306E\u6574\u5408\u6027\u306F*\n*\u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u6574\u5408\u6027\u3092\u691C\u8A3C\u3059\u308B\u306B\u306F*\n*\u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002*"},
 
         {"Certificate.reply.does.not.contain.public.key.for.alias.",
-                "\u8A3C\u660E\u66F8\u5FDC\u7B54\u306B\u306F\u3001<{0}>\u306E\u516C\u958B\u9375\u306F\u542B\u307E\u308C\u307E\u305B\u3093"},
+                "\u8A3C\u660E\u66F8\u5FDC\u7B54\u306B\u306F\u3001<{0}>\u306E\u516C\u958B\u30AD\u30FC\u306F\u542B\u307E\u308C\u307E\u305B\u3093"},
         {"Incomplete.certificate.chain.in.reply",
                 "\u5FDC\u7B54\u3057\u305F\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306F\u4E0D\u5B8C\u5168\u3067\u3059"},
         {"Certificate.chain.in.reply.does.not.verify.",
@@ -409,7 +415,7 @@
         {"Install.reply.anyway.no.", "\u5FDC\u7B54\u3092\u30A4\u30F3\u30B9\u30C8\u30FC\u30EB\u3057\u307E\u3059\u304B\u3002[\u3044\u3044\u3048]:  "},
         {"NO", "\u3044\u3044\u3048"},
         {"Public.keys.in.reply.and.keystore.don.t.match",
-                "\u5FDC\u7B54\u3057\u305F\u516C\u958B\u9375\u3068\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093"},
+                "\u5FDC\u7B54\u3057\u305F\u516C\u958B\u30AD\u30FC\u3068\u30AD\u30FC\u30B9\u30C8\u30A2\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093"},
         {"Certificate.reply.and.certificate.in.keystore.are.identical",
                 "\u8A3C\u660E\u66F8\u5FDC\u7B54\u3068\u30AD\u30FC\u30B9\u30C8\u30A2\u5185\u306E\u8A3C\u660E\u66F8\u304C\u540C\u3058\u3067\u3059"},
         {"Failed.to.establish.chain.from.reply",
@@ -417,9 +423,9 @@
         {"n", "n"},
         {"Wrong.answer.try.again", "\u5FDC\u7B54\u304C\u9593\u9055\u3063\u3066\u3044\u307E\u3059\u3002\u3082\u3046\u4E00\u5EA6\u5B9F\u884C\u3057\u3066\u304F\u3060\u3055\u3044"},
         {"Secret.key.not.generated.alias.alias.already.exists",
-                "\u79D8\u5BC6\u9375\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
+                "\u79D8\u5BC6\u30AD\u30FC\u306F\u751F\u6210\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5225\u540D<{0}>\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059"},
         {"Please.provide.keysize.for.secret.key.generation",
-                "\u79D8\u5BC6\u9375\u306E\u751F\u6210\u6642\u306B\u306F -keysize\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
+                "\u79D8\u5BC6\u30AD\u30FC\u306E\u751F\u6210\u6642\u306B\u306F -keysize\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044"},
 
         {"warning.not.verified.make.sure.keystore.is.correct",
             "\u8B66\u544A: \u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002-keystore\u304C\u6B63\u3057\u3044\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002"},
@@ -453,13 +459,13 @@
         {"alias.in.cacerts", "cacerts\u5185\u306E\u767A\u884C\u8005<%s>"},
         {"alias.in.keystore", "\u767A\u884C\u8005<%s>"},
         {"with.weak", "%s (\u5F31)"},
-        {"key.bit", "%1$d\u30D3\u30C3\u30C8%2$s\u9375"},
-        {"key.bit.weak", "%1$d\u30D3\u30C3\u30C8%2$s\u9375(\u5F31)"},
+        {"key.bit", "%1$d\u30D3\u30C3\u30C8%2$s\u30AD\u30FC"},
+        {"key.bit.weak", "%1$d\u30D3\u30C3\u30C8%2$s\u30AD\u30FC(\u5F31)"},
         {"unknown.size.1", "\u4E0D\u660E\u306A\u30B5\u30A4\u30BA\u306E%s\u30AD\u30FC"},
         {".PATTERN.printX509Cert.with.weak",
-                "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {7}\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u516C\u958B\u9375\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: {8}\n\u30D0\u30FC\u30B8\u30E7\u30F3: {9}"},
+                "\u6240\u6709\u8005: {0}\n\u767A\u884C\u8005: {1}\n\u30B7\u30EA\u30A2\u30EB\u756A\u53F7: {2}\n\u6709\u52B9\u671F\u9593\u306E\u958B\u59CB\u65E5: {3}\u7D42\u4E86\u65E5: {4}\n\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8:\n\t SHA1: {5}\n\t SHA256: {6}\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u540D: {7}\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8\u516C\u958B\u30AD\u30FC\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: {8}\n\u30D0\u30FC\u30B8\u30E7\u30F3: {9}"},
         {"PKCS.10.with.weak",
-                "PKCS #10\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8(\u30D0\u30FC\u30B8\u30E7\u30F31.0)\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8: %1$s\n\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8: %2$s\n\u516C\u958B\u9375: %3$s\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %4$s\n"},
+                "PKCS #10\u8A3C\u660E\u66F8\u30EA\u30AF\u30A8\u30B9\u30C8(\u30D0\u30FC\u30B8\u30E7\u30F31.0)\n\u30B5\u30D6\u30B8\u30A7\u30AF\u30C8: %1$s\n\u30D5\u30A9\u30FC\u30DE\u30C3\u30C8: %2$s\n\u516C\u958B\u30AD\u30FC: %3$s\n\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0: %4$s\n"},
         {"verified.by.s.in.s.weak", "%2$s\u5185\u306E%1$s\u306B\u3088\u308A%3$s\u3067\u691C\u8A3C\u3055\u308C\u307E\u3057\u305F"},
         {"whose.sigalg.risk", "%1$s\u306F%2$s\u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
         {"whose.key.risk", "%1$s\u306F%2$s\u3092\u4F7F\u7528\u3057\u3066\u304A\u308A\u3001\u3053\u308C\u306F\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
@@ -467,6 +473,7 @@
         {"migrate.keystore.warning", "\"%1$s\"\u304C%4$s\u306B\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002%2$s\u30AD\u30FC\u30B9\u30C8\u30A2\u306F\"%3$s\"\u3068\u3057\u3066\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3055\u308C\u307E\u3059\u3002"},
         {"backup.keystore.warning", "\u5143\u306E\u30AD\u30FC\u30B9\u30C8\u30A2\"%1$s\"\u306F\"%3$s\"\u3068\u3057\u3066\u30D0\u30C3\u30AF\u30A2\u30C3\u30D7\u3055\u308C\u307E\u3059..."},
         {"importing.keystore.status", "\u30AD\u30FC\u30B9\u30C8\u30A2%1$s\u3092%2$s\u306B\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u3059..."},
+        {"keyalg.option.1.missing.warning", "-keyalg\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30C7\u30D5\u30A9\u30EB\u30C8\u306E\u30AD\u30FC\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0(%s)\u306F\u3001\u65E7\u5F0F\u306E\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u3067\u3001\u73FE\u5728\u306F\u63A8\u5968\u3055\u308C\u307E\u305B\u3093\u3002JDK\u306E\u5F8C\u7D9A\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u306F\u3001\u30C7\u30D5\u30A9\u30EB\u30C8\u306F\u524A\u9664\u3055\u308C\u308B\u4E88\u5B9A\u3067\u3001-keyalg\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
     };
 
 
--- a/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/sun/security/tools/keytool/Resources_zh_CN.java	Wed Jan 09 22:59:49 2019 +0100
@@ -98,6 +98,8 @@
         // keytool: help: options
         {"alias.name.of.the.entry.to.process",
                 "\u8981\u5904\u7406\u7684\u6761\u76EE\u7684\u522B\u540D"}, //-alias
+        {"groupname.option.help",
+                "\u7EC4\u540D\u3002\u4F8B\u5982\uFF0C\u692D\u5706\u66F2\u7EBF\u540D\u79F0\u3002"}, //-groupname
         {"destination.alias",
                 "\u76EE\u6807\u522B\u540D"}, //-destalias
         {"destination.key.password",
@@ -287,6 +289,10 @@
                 "\u522B\u540D <{0}> \u4E0D\u5B58\u5728"},
         {"Alias.alias.has.no.certificate",
                 "\u522B\u540D <{0}> \u6CA1\u6709\u8BC1\u4E66"},
+        {"groupname.keysize.coexist",
+                "\u65E0\u6CD5\u540C\u65F6\u6307\u5B9A -groupname \u548C -keysize"},
+        {"deprecate.keysize.for.ec",
+                "\u4E3A\u751F\u6210 EC \u5BC6\u94A5\u6307\u5B9A -keysize \u5DF2\u8FC7\u65F6\uFF0C\u8BF7\u6539\u4E3A\u4F7F\u7528 \"-groupname %s\"\u3002"},
         {"Key.pair.not.generated.alias.alias.already.exists",
                 "\u672A\u751F\u6210\u5BC6\u94A5\u5BF9, \u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"},
         {"Generating.keysize.bit.keyAlgName.key.pair.and.self.signed.certificate.sigAlgName.with.a.validity.of.validality.days.for",
@@ -467,6 +473,7 @@
         {"migrate.keystore.warning", "\u5DF2\u5C06 \"%1$s\" \u8FC1\u79FB\u5230 %4$s\u3002\u5C06 %2$s \u5BC6\u94A5\u5E93\u4F5C\u4E3A \"%3$s\" \u8FDB\u884C\u4E86\u5907\u4EFD\u3002"},
         {"backup.keystore.warning", "\u5DF2\u5C06\u539F\u59CB\u5BC6\u94A5\u5E93 \"%1$s\" \u5907\u4EFD\u4E3A \"%3$s\"..."},
         {"importing.keystore.status", "\u6B63\u5728\u5C06\u5BC6\u94A5\u5E93 %1$s \u5BFC\u5165\u5230 %2$s..."},
+        {"keyalg.option.1.missing.warning", "\u65E0 -keyalg \u9009\u9879\u3002\u9ED8\u8BA4\u5BC6\u94A5\u7B97\u6CD5 (%s) \u662F\u4F20\u7EDF\u7B97\u6CD5\uFF0C\u4E0D\u518D\u63A8\u8350\u3002\u5728 JDK \u7684\u540E\u7EED\u53D1\u884C\u7248\u4E2D\uFF0C\u5C06\u5220\u9664\u9ED8\u8BA4\u503C\uFF0C\u60A8\u5FC5\u987B\u6307\u5B9A -keyalg \u9009\u9879\u3002"},
     };
 
 
--- a/src/java.base/share/classes/sun/security/util/AuthResources_ja.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.base/share/classes/sun/security/util/AuthResources_ja.java	Wed Jan 09 22:59:49 2019 +0100
@@ -88,7 +88,7 @@
         {"Keystore.alias.","\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u5225\u540D: "},
         {"Keystore.password.","\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9: "},
         {"Private.key.password.optional.",
-            "\u79D8\u5BC6\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u30AA\u30D7\u30B7\u30E7\u30F3): "},
+            "\u79D8\u5BC6\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u30AA\u30D7\u30B7\u30E7\u30F3): "},
 
         // com.sun.security.auth.module.Krb5LoginModule
         {"Kerberos.username.defUsername.",
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractAnnotationValueVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -68,7 +68,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected AbstractAnnotationValueVisitor7() {
         super(); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractElementVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oacle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, Oacle 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
@@ -71,7 +71,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected AbstractElementVisitor7(){
         super(); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/AbstractTypeVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -71,7 +71,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected AbstractTypeVisitor7() {
         super();  // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementKindVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -85,7 +85,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected ElementKindVisitor7() {
         super(null); // Superclass constructor deprecated too
     }
@@ -99,7 +99,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected ElementKindVisitor7(R defaultValue) {
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/ElementScanner7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -98,7 +98,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected ElementScanner7(){
         super(null); // Superclass constructor deprecated too
     }
@@ -112,7 +112,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected ElementScanner7(R defaultValue){
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleAnnotationValueVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -75,7 +75,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleAnnotationValueVisitor7() {
         super(null); // Superclass constructor deprecated too
     }
@@ -89,7 +89,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleAnnotationValueVisitor7(R defaultValue) {
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleElementVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -81,7 +81,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleElementVisitor7(){
         super(null); // Superclass constructor deprecated too
     }
@@ -95,7 +95,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleElementVisitor7(R defaultValue){
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/SimpleTypeVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -81,7 +81,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleTypeVisitor7(){
         super(null); // Superclass constructor deprecated too
     }
@@ -95,7 +95,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected SimpleTypeVisitor7(R defaultValue){
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/java.compiler/share/classes/javax/lang/model/util/TypeKindVisitor7.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2019, 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
@@ -82,7 +82,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected TypeKindVisitor7() {
         super(null); // Superclass constructor deprecated too
     }
@@ -96,7 +96,7 @@
      * @deprecated Release 7 is obsolete; update to a visitor for a newer
      * release level.
      */
-    @Deprecated
+    @Deprecated(since="12")
     protected TypeKindVisitor7(R defaultValue) {
         super(defaultValue); // Superclass constructor deprecated too
     }
--- a/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -60,6 +60,7 @@
 dc.service.not.found = \u30B5\u30FC\u30D3\u30B9\u30FB\u30BF\u30A4\u30D7\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
 dc.tag.code.within.code = <code>\u5185\u306E'{@code'}
 dc.tag.empty = \u7A7A\u306E<{0}>\u30BF\u30B0
+dc.tag.a.within.a = <a>\u306B\u5C55\u958B\u3055\u308C\u308B<a>\u5185\u306E{0}\u30BF\u30B0
 dc.tag.end.not.permitted = \u7121\u52B9\u306A\u7D42\u4E86\u30BF\u30B0: </{0}>
 dc.tag.end.unexpected = \u4E88\u671F\u3057\u306A\u3044\u7D42\u4E86\u30BF\u30B0: </{0}>
 dc.tag.header.sequence.1 = \u30D8\u30C3\u30C0\u30FC\u306E\u6307\u5B9A\u9806\u5E8F\u304C\u6B63\u3057\u304F\u3042\u308A\u307E\u305B\u3093: <{0}>
--- a/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/doclint/resources/doclint_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -60,6 +60,7 @@
 dc.service.not.found = \u627E\u4E0D\u5230\u670D\u52A1\u7C7B\u578B
 dc.tag.code.within.code = '{@code'} \u5728 <code> \u4E2D
 dc.tag.empty = <{0}> \u6807\u8BB0\u4E3A\u7A7A
+dc.tag.a.within.a = {0} \u6807\u8BB0\uFF0C\u5176\u6269\u5C55\u5230 <a>\uFF0C\u4F4D\u4E8E <a> \u5185
 dc.tag.end.not.permitted = \u65E0\u6548\u7684\u7ED3\u675F\u6807\u8BB0: </{0}>
 dc.tag.end.unexpected = \u610F\u5916\u7684\u7ED3\u675F\u6807\u8BB0: </{0}>
 dc.tag.header.sequence.1 = \u4F7F\u7528\u7684\u6807\u9898\u8D85\u51FA\u5E8F\u5217: <{0}>
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Preview.java	Wed Jan 09 22:59:49 2019 +0100
@@ -167,8 +167,7 @@
     public boolean isPreview(Feature feature) {
         if (feature == Feature.SWITCH_EXPRESSION ||
             feature == Feature.SWITCH_MULTIPLE_CASE_LABELS ||
-            feature == Feature.SWITCH_RULE ||
-            feature == Feature.RAW_STRING_LITERALS)
+            feature == Feature.SWITCH_RULE)
             return true;
         //Note: this is a backdoor which allows to optionally treat all features as 'preview' (for testing).
         //When real preview features will be added, this method can be implemented to return 'true'
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Source.java	Wed Jan 09 22:59:49 2019 +0100
@@ -188,8 +188,7 @@
         IMPORT_ON_DEMAND_OBSERVABLE_PACKAGES(JDK1_2, JDK8),
         SWITCH_MULTIPLE_CASE_LABELS(JDK13, Fragments.FeatureMultipleCaseLabels, DiagKind.PLURAL),
         SWITCH_RULE(JDK13, Fragments.FeatureSwitchRules, DiagKind.PLURAL),
-        SWITCH_EXPRESSION(JDK13, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL),
-        RAW_STRING_LITERALS(JDK13, Fragments.FeatureRawStringLiterals, DiagKind.PLURAL);
+        SWITCH_EXPRESSION(JDK13, Fragments.FeatureSwitchExpressions, DiagKind.PLURAL);
 
         enum DiagKind {
             NORMAL,
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/JavaTokenizer.java	Wed Jan 09 22:59:49 2019 +0100
@@ -646,60 +646,7 @@
                         lexError(pos, Errors.UnclosedStrLit);
                     }
                     break loop;
-                case '`':
-                    checkSourceLevel(pos, Feature.RAW_STRING_LITERALS);
-                    // Ensure that the backtick was not a Unicode escape sequence
-                    if (reader.peekBack() != '`') {
-                        reader.scanChar();
-                        lexError(pos, Errors.UnicodeBacktick);
-                        break loop;
-                    }
-                    // Turn off unicode processsing and save previous state
-                    boolean oldState = reader.setUnicodeConversion(false);
-                    // Count the number of backticks in the open quote sequence
-                    int openCount = reader.skipRepeats();
-                    // Skip last backtick
-                    reader.scanChar();
-                    while (reader.bp < reader.buflen) {
-                        // If potential close quote sequence
-                        if (reader.ch == '`') {
-                            // Count number of backticks in sequence
-                            int closeCount = reader.skipRepeats();
-                            // If the counts match we can exit the raw string literal
-                            if (openCount == closeCount) {
-                                break;
-                            }
-                            // Emit non-close backtick sequence
-                            for (int i = 0; i <= closeCount; i++) {
-                                reader.putChar('`', false);
-                            }
-                            // Skip last backtick
-                            reader.scanChar();
-                        } else if (reader.ch == LF) {
-                            reader.putChar(true);
-                            processLineTerminator(pos, reader.bp);
-                        } else if (reader.ch == CR) {
-                            if (reader.peekChar() == LF) {
-                                reader.scanChar();
-                            }
-                            // Translate CR and CRLF sequences to LF
-                            reader.putChar('\n', true);
-                            processLineTerminator(pos, reader.bp);
-                        } else {
-                            reader.putChar(true);
-                        }
-                    }
-                    // Restore unicode processsing
-                    reader.setUnicodeConversion(oldState);
-                    // Ensure the close quote was encountered
-                    if (reader.bp == reader.buflen) {
-                        lexError(pos, Errors.UnclosedStrLit);
-                    } else {
-                        tk = TokenKind.STRINGLITERAL;
-                        reader.scanChar();
-                    }
-                    break loop;
-                default:
+               default:
                     if (isSpecial(reader.ch)) {
                         scanOperator();
                     } else {
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/parser/UnicodeReader.java	Wed Jan 09 22:59:49 2019 +0100
@@ -64,10 +64,6 @@
      */
     protected int unicodeConversionBp = -1;
 
-    /** Control conversion of unicode characters
-     */
-    protected boolean unicodeConversion = true;
-
     protected Log log;
     protected Names names;
 
@@ -158,17 +154,11 @@
         return new String(sbuf, 0, sp);
     }
 
-    protected boolean setUnicodeConversion(boolean newState) {
-        boolean oldState = unicodeConversion;
-        unicodeConversion = newState;
-        return oldState;
-    }
-
     /** Convert unicode escape; bp points to initial '\' character
      *  (Spec 3.3).
      */
     protected void convertUnicode() {
-        if (ch == '\\' && unicodeConversion && unicodeConversionBp != bp ) {
+        if (ch == '\\' && unicodeConversionBp != bp ) {
             bp++; ch = buf[bp];
             if (ch == 'u') {
                 do {
@@ -264,24 +254,6 @@
         return buf[bp + 1];
     }
 
-    protected char peekBack() {
-        return buf[bp];
-    }
-
-    /**
-     * Skips consecutive occurrences of the current character, leaving bp positioned
-     * at the last occurrence. Returns the occurrence count.
-     */
-    protected int skipRepeats() {
-        int start = bp;
-        while (bp < buflen) {
-            if (buf[bp] != buf[bp + 1])
-                break;
-            bp++;
-        }
-        return bp - start;
-    }
-
     /**
      * Returns a copy of the input buffer, up to its inputLength.
      * Unicode escape sequences are not translated.
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -1240,9 +1240,6 @@
 compiler.err.unclosed.str.lit=\
     unclosed string literal
 
-compiler.err.unicode.backtick=\
-    attempt to use \\u0060 as a raw string literal delimiter
-
 # 0: string
 compiler.err.unsupported.encoding=\
     unsupported encoding: {0}
@@ -2837,9 +2834,6 @@
 compiler.misc.feature.switch.expressions=\
     switch expressions
 
-compiler.misc.feature.raw.string.literals=\
-    raw string literals
-
 compiler.misc.feature.var.syntax.in.implicit.lambda=\
     var syntax in implicit lambdas
 
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -49,6 +49,7 @@
 # kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
 # target            a target version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.jvm.Target
 # token             the name of a non-terminal in source code; see compiler.misc.token.*
+# tree tag          the name of a non-terminal in source code; see compiler.misc.token.*
 # type              a Java type; e.g. int, X, X<T>
 # url               a URL
 # object            a Java object (unspecified)
@@ -158,6 +159,28 @@
 
 compiler.err.break.outside.switch.loop=break\u304Cswitch\u6587\u307E\u305F\u306F\u30EB\u30FC\u30D7\u306E\u5916\u306B\u3042\u308A\u307E\u3059
 
+compiler.err.break.missing.value=break\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093
+
+compiler.err.break.outside.switch.expression=break\u304C\u3001\u56F2\u3093\u3067\u3044\u308Bswitch\u5F0F\u306E\u5916\u306B\u3042\u308A\u307E\u3059
+
+compiler.err.continue.outside.switch.expression=continue\u304C\u3001\u56F2\u3093\u3067\u3044\u308Bswitch\u5F0F\u306E\u5916\u306B\u3042\u308A\u307E\u3059
+
+compiler.err.return.outside.switch.expression=return\u304C\u3001\u56F2\u3093\u3067\u3044\u308Bswitch\u5F0F\u306E\u5916\u306B\u3042\u308A\u307E\u3059
+
+compiler.err.rule.completes.normally=switch\u30EB\u30FC\u30EB\u304C\u5024\u3092\u63D0\u4F9B\u305B\u305A\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\n(switch\u5F0F\u306Eswitch\u30EB\u30FC\u30EB\u306F\u5024\u307E\u305F\u306F\u30B9\u30ED\u30FC\u3092\u63D0\u4F9B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059)
+
+compiler.err.switch.expression.completes.normally=switch\u5F0F\u304C\u5024\u3092\u63D0\u4F9B\u305B\u305A\u306B\u5B8C\u4E86\u3057\u307E\u3057\u305F\n(switch\u5F0F\u306F\u3059\u3079\u3066\u306E\u53EF\u80FD\u306A\u5165\u529B\u5024\u306B\u3064\u3044\u3066\u5024\u307E\u305F\u306F\u30B9\u30ED\u30FC\u3092\u63D0\u4F9B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059)
+
+# 0: name
+compiler.err.break.ambiguous.target=''{0}''\u3078\u306E\u53C2\u7167\u304C\u3042\u3044\u307E\u3044\u3067\u3059\n(''{0}''\u306F\u30E9\u30D9\u30EB\u3068\u5F0F\u306E\u4E21\u65B9\u3067\u3059)
+
+# 0: tree tag
+compiler.err.break.expr.not.immediate=\u5024\u30D6\u30EC\u30FC\u30AF\u306F''{0}''\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+
+compiler.err.break.complex.value.no.switch.expression=\u4E88\u671F\u3057\u306A\u3044\u5024\u30D6\u30EC\u30FC\u30AF\u3067\u3059
+
+compiler.err.switch.expression.empty=switch\u5F0F\u306Bcase\u53E5\u304C\u3042\u308A\u307E\u305B\u3093
+
 # 0: name
 compiler.err.call.must.be.first.stmt.in.ctor={0}\u306E\u547C\u51FA\u3057\u306F\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u5148\u982D\u6587\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
 
@@ -583,15 +606,17 @@
 
 compiler.err.native.meth.cant.have.body=native\u30E1\u30BD\u30C3\u30C9\u304C\u672C\u4F53\u3092\u6301\u3064\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
-# 0: type, 1: type
-compiler.err.neither.conditional.subtype=?\u306B\u5BFE\u3059\u308B\u4E92\u63DB\u6027\u306E\u306A\u3044\u578B : \u3069\u3061\u3089\u3082\u4ED6\u65B9\u306E\u30B5\u30D6\u30BF\u30A4\u30D7\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\n2\u756A\u76EE\u306E\u30AA\u30DA\u30E9\u30F3\u30C9 : {0}\n3\u756A\u76EE\u306E\u30AA\u30DA\u30E9\u30F3\u30C9 : {1}
-
 
 # 0: message segment
 compiler.misc.incompatible.type.in.conditional=\u6761\u4EF6\u5F0F\u306E\u578B\u304C\u4E0D\u6B63\u3067\u3059\n{0}
 
 compiler.misc.conditional.target.cant.be.void=\u6761\u4EF6\u5F0F\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u578B\u306Fvoid\u306B\u3067\u304D\u307E\u305B\u3093
 
+compiler.misc.switch.expression.target.cant.be.void=switch\u5F0F\u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u578B\u306Fvoid\u306B\u3067\u304D\u307E\u305B\u3093
+
+# 0: message segment
+compiler.misc.incompatible.type.in.switch.expression=switch\u5F0F\u306E\u578B\u304C\u4E0D\u6B63\u3067\u3059\n{0}
+
 # 0: message segment
 compiler.misc.incompatible.ret.type.in.lambda=\u30E9\u30E0\u30C0\u5F0F\u306E\u623B\u308A\u578B\u304C\u4E0D\u6B63\u3067\u3059\n{0}
 
@@ -817,8 +842,6 @@
 
 compiler.err.throws.not.allowed.in.intf.annotation=throws\u7BC0\u3092@interface\u30E1\u30F3\u30D0\u30FC\u3067\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
-compiler.err.try.without.catch.or.finally=''try''\u3078\u306E''catch''\u307E\u305F\u306F''finally''\u304C\u3042\u308A\u307E\u305B\u3093
-
 compiler.err.try.without.catch.finally.or.resource.decls=''try''\u3078\u306E''catch''\u3001''finally''\u307E\u305F\u306F\u30EA\u30BD\u30FC\u30B9\u5BA3\u8A00\u304C\u3042\u308A\u307E\u305B\u3093
 
 # 0: symbol
@@ -865,6 +888,8 @@
 
 compiler.err.unclosed.str.lit=\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093
 
+compiler.err.unicode.backtick=RAW\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u306E\u30C7\u30EA\u30DF\u30BF\u3068\u3057\u3066\\u0060\u3092\u4F7F\u7528\u3057\u3088\u3046\u3068\u3057\u307E\u3057\u305F
+
 # 0: string
 compiler.err.unsupported.encoding=\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u306A\u3044\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u3059: {0}
 
@@ -922,6 +947,8 @@
 
 compiler.err.unreachable.stmt=\u3053\u306E\u6587\u306B\u5236\u5FA1\u304C\u79FB\u308B\u3053\u3068\u306F\u3042\u308A\u307E\u305B\u3093
 
+compiler.err.not.exhaustive=switch\u5F0F\u304C\u3059\u3079\u3066\u306E\u53EF\u80FD\u306A\u5165\u529B\u5024\u3092\u30AB\u30D0\u30FC\u3057\u3066\u3044\u307E\u305B\u3093
+
 compiler.err.initializer.must.be.able.to.complete.normally=\u521D\u671F\u5316\u5B50\u306F\u6B63\u5E38\u306B\u5B8C\u4E86\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059
 
 compiler.err.initializer.not.allowed=\u30A4\u30CB\u30B7\u30E3\u30E9\u30A4\u30B6\u306Finterfaces\u3067\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093
@@ -1240,9 +1267,6 @@
 # 0: type, 1: type
 compiler.warn.inexact.non-varargs.call=\u6700\u7D42\u30D1\u30E9\u30E1\u30FC\u30BF\u306E\u4E0D\u6B63\u78BA\u306A\u5F15\u6570\u578B\u3092\u6301\u3063\u305F\u53EF\u5909\u5F15\u6570\u30E1\u30BD\u30C3\u30C9\u306E\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u3002\n\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{0}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u307E\u3059\u3002\n\u975E\u53EF\u5909\u5F15\u6570\u547C\u51FA\u3057\u306B\u95A2\u3057\u3066\u306F{1}\u306B\u30AD\u30E3\u30B9\u30C8\u3057\u3066\u3053\u306E\u8B66\u544A\u3092\u51FA\u3055\u306A\u3044\u3088\u3046\u306B\u3057\u307E\u3059
 
-# 0: target, 1: target
-compiler.err.bad.target.sigpoly.call=\u591A\u76F8\u7F72\u540D\u547C\u51FA\u3057\u306F-target {0}\u3067\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\n(\u591A\u76F8\u7F72\u540D\u547C\u51FA\u3057\u3092\u6709\u52B9\u306B\u3059\u308B\u306B\u306F-target {1}\u4EE5\u4E0A\u3092\u4F7F\u7528\u3057\u307E\u3059)
-
 # 0: list of type
 compiler.warn.unreachable.catch=catch\u53E5\u306B\u79FB\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u305B\u3093\n\u30B9\u30ED\u30FC\u3055\u308C\u305F\u30BF\u30A4\u30D7{0}\u306F\u3059\u3067\u306B\u6355\u6349\u3055\u308C\u3066\u3044\u307E\u3059
 
@@ -1852,6 +1876,17 @@
 
 compiler.misc.kindname.instance.init=\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u521D\u671F\u5316\u5B50
 
+# the following are names of tree kinds:
+compiler.misc.tree.tag.forloop=for
+
+compiler.misc.tree.tag.foreachloop=for
+
+compiler.misc.tree.tag.whileloop=while
+
+compiler.misc.tree.tag.doloop=do
+
+compiler.misc.tree.tag.switch=switch
+
 #####
 
 compiler.misc.no.args=\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093
@@ -1958,12 +1993,6 @@
 
 compiler.misc.feature.diamond.and.anon.class=\u533F\u540D\u5185\u90E8\u30AF\u30E9\u30B9\u3067\u306E''<>''
 
-compiler.misc.feature.binary.lit=2\u9032\u6570\u30EA\u30C6\u30E9\u30EB
-
-compiler.misc.feature.underscore.lit=\u30EA\u30C6\u30E9\u30EB\u5185\u306E\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2
-
-compiler.misc.feature.try.with.resources=try-with-resources
-
 compiler.misc.feature.var.in.try.with.resources=try-with-resources\u5185\u306E\u5909\u6570
 
 compiler.misc.feature.type.annotations=\u30BF\u30A4\u30D7\u6CE8\u91C8
@@ -1974,10 +2003,6 @@
 
 compiler.misc.feature.diamond=\u30C0\u30A4\u30E4\u30E2\u30F3\u30C9\u6F14\u7B97\u5B50
 
-compiler.misc.feature.multicatch=\u8907\u6570catch\u6587
-
-compiler.misc.feature.string.switch=switch\u5185\u306E\u6587\u5B57\u5217
-
 compiler.misc.feature.lambda=\u30E9\u30E0\u30C0\u5F0F
 
 compiler.misc.feature.method.references=\u30E1\u30BD\u30C3\u30C9\u53C2\u7167
@@ -1992,6 +2017,16 @@
 
 compiler.misc.feature.private.intf.methods=private\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u30FB\u30E1\u30BD\u30C3\u30C9
 
+compiler.misc.feature.multiple.case.labels=\u8907\u6570\u306Ecase\u30E9\u30D9\u30EB
+
+compiler.misc.feature.switch.rules=switch\u30EB\u30FC\u30EB
+
+compiler.misc.feature.switch.expressions=switch\u5F0F
+
+compiler.misc.feature.raw.string.literals=RAW\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB
+
+compiler.misc.feature.var.syntax.in.implicit.lambda=\u6697\u9ED9\u30E9\u30E0\u30C0\u306Evar\u69CB\u6587
+
 compiler.warn.underscore.as.identifier=\u30EA\u30EA\u30FC\u30B99\u304B\u3089''_''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
 
 compiler.err.underscore.as.identifier=\u30EA\u30EA\u30FC\u30B99\u304B\u3089''_''\u306F\u30AD\u30FC\u30EF\u30FC\u30C9\u306A\u306E\u3067\u8B58\u5225\u5B50\u3068\u3057\u3066\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093
@@ -2339,6 +2374,11 @@
 # 0: string, 1: string
 compiler.err.illegal.argument.for.option={0}\u306E\u5F15\u6570\u304C\u4E0D\u6B63\u3067\u3059: {1}
 
+compiler.err.switch.null.not.allowed=case\u306Enull\u30E9\u30D9\u30EB\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093
+
+compiler.err.switch.case.unexpected.statement=case\u306E\u4E88\u671F\u3057\u306A\u3044\u6587\u3067\u3059\u3002\u4E88\u671F\u3055\u308C\u308B\u306E\u306F\u3001\u5F0F\u3001\u30D6\u30ED\u30C3\u30AF\u307E\u305F\u306Fthrow\u6587\u3067\u3059
+
+compiler.err.switch.mixing.case.types=switch\u3067case\u306E\u7570\u306A\u308B\u7A2E\u985E\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059
 
 ############################################
 # messages previouly at javac.properties
@@ -2407,7 +2447,12 @@
 compiler.err.no.value.for.option={0}\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u5024\u304C\u3042\u308A\u307E\u305B\u3093
 
 # 0: string
-compiler.err.repeated.value.for.patch.module={0}\u306B\u5BFE\u3057\u3066--patch-module\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
+compiler.err.repeated.value.for.patch.module=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306B\u5BFE\u3057\u3066--patch-module\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
+
+# 0: string
+compiler.err.repeated.value.for.module.source.path=\u30E2\u30B8\u30E5\u30FC\u30EB{0}\u306B\u5BFE\u3057\u3066--module-source-path\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
+
+compiler.err.multiple.values.for.module.source.path=\u30D1\u30BF\u30FC\u30F3\u5F15\u6570\u3067--module-source-path\u304C\u8907\u6570\u56DE\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u3059
 
 # 0: string
 compiler.err.unmatched.quote=\u74B0\u5883\u5909\u6570{0}\u306E\u5F15\u7528\u7B26\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -49,6 +49,7 @@
 # kind name         an informative description of the kind of a declaration; see compiler.misc.kindname.*
 # target            a target version number, such as 1.5, 1.6, 1.7, taken from a com.sun.tools.javac.jvm.Target
 # token             the name of a non-terminal in source code; see compiler.misc.token.*
+# tree tag          the name of a non-terminal in source code; see compiler.misc.token.*
 # type              a Java type; e.g. int, X, X<T>
 # url               a URL
 # object            a Java object (unspecified)
@@ -158,6 +159,28 @@
 
 compiler.err.break.outside.switch.loop=\u5728 switch \u6216 loop \u5916\u90E8\u4E2D\u65AD
 
+compiler.err.break.missing.value=\u7F3A\u5C11\u4E2D\u65AD\u503C
+
+compiler.err.break.outside.switch.expression=break \u5728\u95ED\u5408\u7684 switch \u8868\u8FBE\u5F0F\u5916\u90E8
+
+compiler.err.continue.outside.switch.expression=continue \u5728\u95ED\u5408\u7684 switch \u8868\u8FBE\u5F0F\u5916\u90E8
+
+compiler.err.return.outside.switch.expression=return \u5728\u95ED\u5408\u7684 switch \u8868\u8FBE\u5F0F\u5916\u90E8
+
+compiler.err.rule.completes.normally=switch \u89C4\u5219\u5B8C\u7ED3\u4F46\u6CA1\u6709\u63D0\u4F9B\u503C\n\uFF08switch \u8868\u8FBE\u5F0F\u4E2D\u7684 switch \u89C4\u5219\u5FC5\u987B\u63D0\u4F9B\u503C\u6216\u629B\u51FA\uFF09
+
+compiler.err.switch.expression.completes.normally=switch \u8868\u8FBE\u5F0F\u5B8C\u7ED3\u4F46\u6CA1\u6709\u63D0\u4F9B\u503C\n\uFF08switch \u8868\u8FBE\u5F0F\u5FC5\u987B\u4E3A\u6240\u6709\u53EF\u80FD\u7684\u8F93\u5165\u503C\u63D0\u4F9B\u503C\u6216\u629B\u51FA\uFF09
+
+# 0: name
+compiler.err.break.ambiguous.target=\u5BF9 ''{0}'' \u7684\u5F15\u7528\u4E0D\u660E\u786E\n\uFF08''{0}'' \u540C\u65F6\u662F\u6807\u7B7E\u548C\u8868\u8FBE\u5F0F\uFF09
+
+# 0: tree tag
+compiler.err.break.expr.not.immediate=''{0}'' \u4E2D\u4E0D\u652F\u6301\u503C\u4E2D\u65AD
+
+compiler.err.break.complex.value.no.switch.expression=\u610F\u5916\u503C\u4E2D\u65AD
+
+compiler.err.switch.expression.empty=switch \u8868\u8FBE\u5F0F\u4E2D\u6CA1\u6709\u4EFB\u4F55 case \u5B50\u53E5
+
 # 0: name
 compiler.err.call.must.be.first.stmt.in.ctor=\u5BF9{0}\u7684\u8C03\u7528\u5FC5\u987B\u662F\u6784\u9020\u5668\u4E2D\u7684\u7B2C\u4E00\u4E2A\u8BED\u53E5
 
@@ -583,15 +606,17 @@
 
 compiler.err.native.meth.cant.have.body=\u672C\u673A\u65B9\u6CD5\u4E0D\u80FD\u5E26\u6709\u4E3B\u4F53
 
-# 0: type, 1: type
-compiler.err.neither.conditional.subtype=? \u7684\u4E0D\u517C\u5BB9\u7C7B\u578B: \u4E24\u8005\u90FD\u4E0D\u662F\u5BF9\u65B9\u7684\u5B50\u7C7B\u578B\n\u7B2C\u4E8C\u4E2A\u64CD\u4F5C\u6570: {0}\n\u7B2C\u4E09\u4E2A\u64CD\u4F5C\u6570: {1}
-
 
 # 0: message segment
 compiler.misc.incompatible.type.in.conditional=\u6761\u4EF6\u8868\u8FBE\u5F0F\u4E2D\u7684\u7C7B\u578B\u9519\u8BEF\n{0}
 
 compiler.misc.conditional.target.cant.be.void=\u6761\u4EF6\u8868\u8FBE\u5F0F\u7684\u76EE\u6807\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
 
+compiler.misc.switch.expression.target.cant.be.void=switch \u8868\u8FBE\u5F0F\u7684\u76EE\u6807\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
+
+# 0: message segment
+compiler.misc.incompatible.type.in.switch.expression=switch \u8868\u8FBE\u5F0F\u4E2D\u7684\u7C7B\u578B\u9519\u8BEF\n{0}
+
 # 0: message segment
 compiler.misc.incompatible.ret.type.in.lambda=lambda \u8868\u8FBE\u5F0F\u4E2D\u7684\u8FD4\u56DE\u7C7B\u578B\u9519\u8BEF\n{0}
 
@@ -817,8 +842,6 @@
 
 compiler.err.throws.not.allowed.in.intf.annotation=@interface \u6210\u5458\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528 throws \u5B50\u53E5
 
-compiler.err.try.without.catch.or.finally=\u6709 ''try'', \u4F46\u662F\u6CA1\u6709 ''catch'' \u6216 ''finally''
-
 compiler.err.try.without.catch.finally.or.resource.decls=''try'' \u4E0D\u5E26\u6709 ''catch'', ''finally'' \u6216\u8D44\u6E90\u58F0\u660E
 
 # 0: symbol
@@ -865,6 +888,8 @@
 
 compiler.err.unclosed.str.lit=\u672A\u7ED3\u675F\u7684\u5B57\u7B26\u4E32\u6587\u5B57
 
+compiler.err.unicode.backtick=\u5C1D\u8BD5\u5C06 \\u0060 \u7528\u4F5C\u539F\u59CB\u5B57\u7B26\u4E32\u6587\u5B57\u5206\u9694\u7B26
+
 # 0: string
 compiler.err.unsupported.encoding=\u4E0D\u652F\u6301\u7684\u7F16\u7801: {0}
 
@@ -922,6 +947,8 @@
 
 compiler.err.unreachable.stmt=\u65E0\u6CD5\u8BBF\u95EE\u7684\u8BED\u53E5
 
+compiler.err.not.exhaustive=switch \u8868\u8FBE\u5F0F\u4E0D\u5305\u542B\u6240\u6709\u53EF\u80FD\u7684\u8F93\u5165\u503C
+
 compiler.err.initializer.must.be.able.to.complete.normally=\u521D\u59CB\u5316\u7A0B\u5E8F\u5FC5\u987B\u80FD\u591F\u6B63\u5E38\u5B8C\u6210
 
 compiler.err.initializer.not.allowed=\u63A5\u53E3\u4E2D\u4E0D\u5141\u8BB8\u6709\u521D\u59CB\u5316\u7A0B\u5E8F
@@ -1240,9 +1267,6 @@
 # 0: type, 1: type
 compiler.warn.inexact.non-varargs.call=\u6700\u540E\u4E00\u4E2A\u53C2\u6570\u4F7F\u7528\u4E86\u4E0D\u51C6\u786E\u7684\u53D8\u91CF\u7C7B\u578B\u7684 varargs \u65B9\u6CD5\u7684\u975E varargs \u8C03\u7528; \n\u5BF9\u4E8E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {0}\n\u5BF9\u4E8E\u975E varargs \u8C03\u7528, \u5E94\u4F7F\u7528 {1}, \u8FD9\u6837\u4E5F\u53EF\u4EE5\u6291\u5236\u6B64\u8B66\u544A
 
-# 0: target, 1: target
-compiler.err.bad.target.sigpoly.call=-target {0} \u4E2D\u4E0D\u652F\u6301\u591A\u6001\u7B7E\u540D\u8C03\u7528\n\uFF08\u8BF7\u4F7F\u7528 -target {1} \u6216\u66F4\u9AD8\u7248\u672C\u4EE5\u542F\u7528\u591A\u6001\u7B7E\u540D\u8C03\u7528\uFF09
-
 # 0: list of type
 compiler.warn.unreachable.catch=catch \u5B50\u53E5\u65E0\u6CD5\u8BBF\u95EE\n\u5DF2\u6355\u83B7\u5230\u629B\u51FA\u7684\u7C7B\u578B{0}
 
@@ -1852,6 +1876,17 @@
 
 compiler.misc.kindname.instance.init=\u5B9E\u4F8B\u521D\u59CB\u5316\u7A0B\u5E8F
 
+# the following are names of tree kinds:
+compiler.misc.tree.tag.forloop=for
+
+compiler.misc.tree.tag.foreachloop=for
+
+compiler.misc.tree.tag.whileloop=while
+
+compiler.misc.tree.tag.doloop=do
+
+compiler.misc.tree.tag.switch=switch
+
 #####
 
 compiler.misc.no.args=\u6CA1\u6709\u53C2\u6570
@@ -1958,12 +1993,6 @@
 
 compiler.misc.feature.diamond.and.anon.class=''<>'' \u5177\u6709\u533F\u540D\u7684\u5185\u90E8\u7C7B
 
-compiler.misc.feature.binary.lit=\u4E8C\u8FDB\u5236\u6587\u5B57
-
-compiler.misc.feature.underscore.lit=\u6587\u5B57\u4E2D\u7684\u4E0B\u5212\u7EBF
-
-compiler.misc.feature.try.with.resources=try-with-resources
-
 compiler.misc.feature.var.in.try.with.resources=try-with-resources \u4E2D\u7684\u53D8\u91CF
 
 compiler.misc.feature.type.annotations=\u7C7B\u578B\u6CE8\u91CA
@@ -1974,10 +2003,6 @@
 
 compiler.misc.feature.diamond=diamond \u8FD0\u7B97\u7B26
 
-compiler.misc.feature.multicatch=multi-catch \u8BED\u53E5
-
-compiler.misc.feature.string.switch=switch \u4E2D\u7684\u5B57\u7B26\u4E32
-
 compiler.misc.feature.lambda=lambda \u8868\u8FBE\u5F0F
 
 compiler.misc.feature.method.references=\u65B9\u6CD5\u5F15\u7528
@@ -1992,6 +2017,16 @@
 
 compiler.misc.feature.private.intf.methods=\u79C1\u6709\u63A5\u53E3\u65B9\u6CD5
 
+compiler.misc.feature.multiple.case.labels=\u591A\u4E2A case \u6807\u7B7E
+
+compiler.misc.feature.switch.rules=switch \u89C4\u5219
+
+compiler.misc.feature.switch.expressions=switch \u8868\u8FBE\u5F0F
+
+compiler.misc.feature.raw.string.literals=\u539F\u59CB\u5B57\u7B26\u4E32\u6587\u5B57
+
+compiler.misc.feature.var.syntax.in.implicit.lambda=\u9690\u5F0F lambda \u4E2D\u7684 var \u8BED\u6CD5
+
 compiler.warn.underscore.as.identifier=\u4ECE\u53D1\u884C\u7248 9 \u5F00\u59CB, ''_'' \u4E3A\u5173\u952E\u5B57, \u4E0D\u80FD\u7528\u4F5C\u6807\u8BC6\u7B26
 
 compiler.err.underscore.as.identifier=\u4ECE\u53D1\u884C\u7248 9 \u5F00\u59CB, ''_'' \u4E3A\u5173\u952E\u5B57, \u4E0D\u80FD\u7528\u4F5C\u6807\u8BC6\u7B26
@@ -2339,6 +2374,11 @@
 # 0: string, 1: string
 compiler.err.illegal.argument.for.option={0} \u7684\u53C2\u6570\u975E\u6CD5: {1}
 
+compiler.err.switch.null.not.allowed=case \u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u7A7A\u6807\u7B7E
+
+compiler.err.switch.case.unexpected.statement=case \u4E2D\u5B58\u5728\u610F\u5916\u8BED\u53E5\uFF0C\u5E94\u4E3A\u8868\u8FBE\u5F0F\u3001\u5757\u6216\u629B\u51FA\u8BED\u53E5
+
+compiler.err.switch.mixing.case.types=\u5728 switch \u4E2D\u4F7F\u7528\u4E86\u4E0D\u540C case \u7C7B\u578B
 
 ############################################
 # messages previouly at javac.properties
@@ -2407,7 +2447,12 @@
 compiler.err.no.value.for.option={0} \u9009\u9879\u6CA1\u6709\u503C
 
 # 0: string
-compiler.err.repeated.value.for.patch.module=\u4E3A {0} \u591A\u6B21\u6307\u5B9A\u4E86 --patch-module
+compiler.err.repeated.value.for.patch.module=\u4E3A\u6A21\u5757 {0} \u591A\u6B21\u6307\u5B9A\u4E86 --patch-module
+
+# 0: string
+compiler.err.repeated.value.for.module.source.path=\u4E3A\u6A21\u5757 {0} \u591A\u6B21\u6307\u5B9A\u4E86 --module-source-path
+
+compiler.err.multiple.values.for.module.source.path=\u4F7F\u7528\u6A21\u5F0F\u53C2\u6570\u591A\u6B21\u6307\u5B9A\u4E86 --module-source-path
 
 # 0: string
 compiler.err.unmatched.quote=\u73AF\u5883\u53D8\u91CF {0} \u4E2D\u7684\u5F15\u53F7\u4E0D\u6210\u5BF9
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -52,9 +52,9 @@
 javac.opt.J=<flag>\u3092\u5B9F\u884C\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3059
 javac.opt.encoding=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u4F7F\u7528\u3059\u308B\u6587\u5B57\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3092\u6307\u5B9A\u3059\u308B
 javac.opt.profile=\u4F7F\u7528\u3055\u308C\u3066\u3044\u308BAPI\u304C\u6307\u5B9A\u3057\u305F\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3067\u4F7F\u7528\u53EF\u80FD\u304B\u3069\u3046\u304B\u3092\u78BA\u8A8D\u3057\u307E\u3059
-javac.opt.target=\u7279\u5B9A\u306EVM\u30D0\u30FC\u30B8\u30E7\u30F3\u7528\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B
-javac.opt.release=\u7279\u5B9A\u306EVM\u30D0\u30FC\u30B8\u30E7\u30F3\u7528\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u307E\u3059\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30BF\u30FC\u30B2\u30C3\u30C8: {0}
-javac.opt.source=\u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u4FDD\u3064
+javac.opt.target=\u7279\u5B9A\u306EVM\u30D0\u30FC\u30B8\u30E7\u30F3\u7528\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3057\u307E\u3059\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30D0\u30FC\u30B8\u30E7\u30F3: {0}
+javac.opt.release=\u7279\u5B9A\u306E\u30EA\u30EA\u30FC\u30B9\u7528\u306B\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3057\u307E\u3059\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30EA\u30EA\u30FC\u30B9: {0}
+javac.opt.source=\u6307\u5B9A\u3055\u308C\u305F\u30EA\u30EA\u30FC\u30B9\u3068\u30BD\u30FC\u30B9\u306E\u4E92\u63DB\u6027\u3092\u4FDD\u6301\u3057\u307E\u3059\u3002\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30EA\u30EA\u30FC\u30B9: {0}
 javac.opt.Werror=\u8B66\u544A\u304C\u767A\u751F\u3057\u305F\u5834\u5408\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3092\u7D42\u4E86\u3059\u308B
 javac.opt.A=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u306B\u6E21\u3055\u308C\u308B\u30AA\u30D7\u30B7\u30E7\u30F3
 javac.opt.implicit=\u6697\u9ED9\u7684\u306B\u53C2\u7167\u3055\u308C\u308B\u30D5\u30A1\u30A4\u30EB\u306B\u3064\u3044\u3066\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u751F\u6210\u3059\u308B\u304B\u3069\u3046\u304B\u3092\u6307\u5B9A\u3059\u308B
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -52,9 +52,9 @@
 javac.opt.J=\u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u7ED9\u8FD0\u884C\u65F6\u7CFB\u7EDF
 javac.opt.encoding=\u6307\u5B9A\u6E90\u6587\u4EF6\u4F7F\u7528\u7684\u5B57\u7B26\u7F16\u7801
 javac.opt.profile=\u8BF7\u786E\u4FDD\u4F7F\u7528\u7684 API \u5728\u6307\u5B9A\u7684\u914D\u7F6E\u6587\u4EF6\u4E2D\u53EF\u7528
-javac.opt.target=\u751F\u6210\u7279\u5B9A VM \u7248\u672C\u7684\u7C7B\u6587\u4EF6
-javac.opt.release=\u9488\u5BF9\u7279\u5B9A VM \u7248\u672C\u8FDB\u884C\u7F16\u8BD1\u3002\u652F\u6301\u7684\u76EE\u6807: {0}
-javac.opt.source=\u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027
+javac.opt.target=\u751F\u6210\u9488\u5BF9\u7279\u5B9A VM \u7248\u672C\u7684\u7C7B\u6587\u4EF6\u3002\u652F\u6301\u7684\u7248\u672C\uFF1A{0}
+javac.opt.release=\u9488\u5BF9\u7279\u5B9A\u53D1\u884C\u7248\u8FDB\u884C\u7F16\u8BD1\u3002\u652F\u6301\u7684\u53D1\u884C\u7248\uFF1A{0}
+javac.opt.source=\u63D0\u4F9B\u4E0E\u6307\u5B9A\u53D1\u884C\u7248\u7684\u6E90\u517C\u5BB9\u6027\u3002\u652F\u6301\u7684\u53D1\u884C\u7248\uFF1A{0}
 javac.opt.Werror=\u51FA\u73B0\u8B66\u544A\u65F6\u7EC8\u6B62\u7F16\u8BD1
 javac.opt.A=\u4F20\u9012\u7ED9\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u7684\u9009\u9879
 javac.opt.implicit=\u6307\u5B9A\u662F\u5426\u4E3A\u9690\u5F0F\u5F15\u7528\u6587\u4EF6\u751F\u6210\u7C7B\u6587\u4EF6
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -80,17 +80,17 @@
 ## All errors are preceded by this string.
 launcher.error=\u30A8\u30E9\u30FC: 
 
-launcher.err.no.args=\u30D5\u30A1\u30A4\u30EB\u540D\u306A\u3057
+launcher.err.no.args=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u30D1\u30B9\u304C\u3042\u308A\u307E\u305B\u3093
 
 # 0: string
-launcher.err.invalid.filename=\u30D5\u30A1\u30A4\u30EB\u540D\u304C\u7121\u52B9\u3067\u3059: {0}
+launcher.err.invalid.filename=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u7121\u52B9\u306A\u30D1\u30B9: {0}
 
 # 0: path
-launcher.err.file.not.found=\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
+launcher.err.file.not.found=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
 
 launcher.err.compilation.failed=\u30B3\u30F3\u30D1\u30A4\u30EB\u304C\u5931\u6557\u3057\u307E\u3057\u305F
 
-launcher.err.no.class=\u30D5\u30A1\u30A4\u30EB\u3067\u30AF\u30E9\u30B9\u304C\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093
+launcher.err.no.class=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3067\u5BA3\u8A00\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304C\u3042\u308A\u307E\u305B\u3093
 
 launcher.err.main.not.public.static=''main'\u30E1\u30BD\u30C3\u30C9\u304C''public static''\u3068\u3057\u3066\u5BA3\u8A00\u3055\u308C\u3066\u3044\u307E\u305B\u3093
 
@@ -100,16 +100,13 @@
 launcher.err.cant.find.class=\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
 
 # 0: string
-launcher.err.unexpected.class=\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30AF\u30E9\u30B9\u30FB\u30D1\u30B9\u306B\u30AF\u30E9\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F: {0}
-
-# 0: string
 launcher.err.cant.find.main.method=\u30AF\u30E9\u30B9\u306Bmain(String[])\u30E1\u30BD\u30C3\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}
 
 # 0: string
 launcher.err.cant.access.main.method=\u30AF\u30E9\u30B9\u306E\u30E1\u30A4\u30F3\u30FB\u30E1\u30BD\u30C3\u30C9\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093: {0}
 
 # 0: path, 1: object
-launcher.err.cant.read.file=\u30D5\u30A1\u30A4\u30EB{0}\u306E\u8AAD\u53D6\u308A\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F: {1}
+launcher.err.cant.read.file=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u306E\u8AAD\u53D6\u308A\u30A8\u30E9\u30FC: {1}
 
 # 0: string
 launcher.err.no.value.for.option=\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u5024\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093: {0}
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/resources/launcher_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -80,17 +80,17 @@
 ## All errors are preceded by this string.
 launcher.error=\u9519\u8BEF: 
 
-launcher.err.no.args=\u65E0\u6587\u4EF6\u540D
+launcher.err.no.args=\u65E0\u6E90\u6587\u4EF6\u7684\u8DEF\u5F84
 
 # 0: string
-launcher.err.invalid.filename=\u65E0\u6548\u7684\u6587\u4EF6\u540D\uFF1A{0}
+launcher.err.invalid.filename=\u6E90\u6587\u4EF6\u7684\u8DEF\u5F84\u65E0\u6548\uFF1A{0}
 
 # 0: path
-launcher.err.file.not.found=\u627E\u4E0D\u5230\u6587\u4EF6: {0}
+launcher.err.file.not.found=\u627E\u4E0D\u5230\u6E90\u6587\u4EF6\uFF1A{0}
 
 launcher.err.compilation.failed=\u7F16\u8BD1\u5931\u8D25
 
-launcher.err.no.class=\u5728\u6587\u4EF6\u4E2D\u672A\u58F0\u660E\u7C7B
+launcher.err.no.class=\u5728\u6E90\u6587\u4EF6\u4E2D\u672A\u58F0\u660E\u7C7B
 
 launcher.err.main.not.public.static=''main'' \u65B9\u6CD5\u672A\u58F0\u660E ''public static''
 
@@ -100,16 +100,13 @@
 launcher.err.cant.find.class=\u627E\u4E0D\u5230\u7C7B\uFF1A{0}
 
 # 0: string
-launcher.err.unexpected.class=\u5728\u5E94\u7528\u7A0B\u5E8F\u7C7B\u8DEF\u5F84 {0} \u4E2D\u627E\u5230\u7C7B
-
-# 0: string
 launcher.err.cant.find.main.method=\u5728\u7C7B {0} \u4E2D\u627E\u4E0D\u5230 main(String[]) \u65B9\u6CD5
 
 # 0: string
 launcher.err.cant.access.main.method=\u65E0\u6CD5\u8BBF\u95EE\u7C7B {0} \u4E2D\u7684 main \u65B9\u6CD5
 
 # 0: path, 1: object
-launcher.err.cant.read.file=\u8BFB\u53D6\u6587\u4EF6 {0} \u65F6\u51FA\u9519\uFF1A{1}
+launcher.err.cant.read.file=\u8BFB\u53D6\u6E90\u6587\u4EF6 {0} \u65F6\u51FA\u9519\uFF1A{1}
 
 # 0: string
 launcher.err.no.value.for.option=\u6CA1\u6709\u4E3A\u9009\u9879 {0} \u6307\u5B9A\u503C
--- a/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jartool/share/classes/sun/security/tools/jarsigner/Resources_ja.java	Wed Jan 09 22:59:49 2019 +0100
@@ -65,7 +65,7 @@
         {".storetype.type.keystore.type",
                 "[-storetype <type>]         \u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u578B"},
         {".keypass.password.password.for.private.key.if.different.",
-                "[-keypass <password>]       \u79D8\u5BC6\u9375\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u7570\u306A\u308B\u5834\u5408)"},
+                "[-keypass <password>]       \u79D8\u5BC6\u30AD\u30FC\u306E\u30D1\u30B9\u30EF\u30FC\u30C9(\u7570\u306A\u308B\u5834\u5408)"},
         {".certchain.file.name.of.alternative.certchain.file",
                 "[-certchain <file>]         \u4EE3\u66FF\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D"},
         {".sigfile.file.name.of.SF.DSA.file",
@@ -87,7 +87,7 @@
         {".tsa.url.location.of.the.Timestamping.Authority",
                 "[-tsa <url>]                \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u5834\u6240"},
         {".tsacert.alias.public.key.certificate.for.Timestamping.Authority",
-                "[-tsacert <alias>]          \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u516C\u958B\u9375\u8A3C\u660E\u66F8"},
+                "[-tsacert <alias>]          \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306E\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8"},
         {".tsapolicyid.tsapolicyid.for.Timestamping.Authority",
                 "[-tsapolicyid <oid>]        \u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306ETSAPolicyID"},
         {".tsadigestalg.algorithm.of.digest.data.in.timestamping.request",
@@ -162,8 +162,8 @@
         {"history.nobk", "- \u7F72\u540D\u95A2\u9023\u30D5\u30A1\u30A4\u30EBMETA-INF/%s.SF\u306E\u30D6\u30ED\u30C3\u30AF\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093"},
 
         {"with.weak", "%s (\u5F31)"},
-        {"key.bit", "%d\u30D3\u30C3\u30C8\u9375"},
-        {"key.bit.weak", "%d\u30D3\u30C3\u30C8\u9375(\u5F31)"},
+        {"key.bit", "%d\u30D3\u30C3\u30C8\u30FB\u30AD\u30FC"},
+        {"key.bit.weak", "%d\u30D3\u30C3\u30C8\u30FB\u30AD\u30FC(\u5F31)"},
         {"unknown.size", "\u4E0D\u660E\u30B5\u30A4\u30BA"},
 
         {"jarsigner.", "jarsigner: "},
@@ -185,7 +185,7 @@
         {"unable.to.instantiate.keystore.class.",
                 "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093: "},
         {"Certificate.chain.not.found.for.alias.alias.must.reference.a.valid.KeyStore.key.entry.containing.a.private.key.and",
-                "\u6B21\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}\u3002{1}\u306F\u3001\u79D8\u5BC6\u9375\u304A\u3088\u3073\u5BFE\u5FDC\u3059\u308B\u516C\u958B\u9375\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u542B\u3080\u6709\u52B9\u306AKeyStore\u9375\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
+                "\u6B21\u306E\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {0}\u3002{1}\u306F\u3001\u79D8\u5BC6\u30AD\u30FC\u304A\u3088\u3073\u5BFE\u5FDC\u3059\u308B\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u3092\u542B\u3080\u6709\u52B9\u306AKeyStore\u30AD\u30FC\u30FB\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
         {"File.specified.by.certchain.does.not.exist",
                 "-certchain\u3067\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u30D5\u30A1\u30A4\u30EB\u306F\u5B58\u5728\u3057\u307E\u305B\u3093"},
         {"Cannot.restore.certchain.from.file.specified",
@@ -195,12 +195,12 @@
         {"found.non.X.509.certificate.in.signer.s.chain",
                 "\u7F72\u540D\u8005\u306E\u9023\u9396\u5185\u3067\u975EX.509\u8A3C\u660E\u66F8\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F"},
         {"incomplete.certificate.chain", "\u4E0D\u5B8C\u5168\u306A\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3"},
-        {"Enter.key.password.for.alias.", "{0}\u306E\u9375\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
+        {"Enter.key.password.for.alias.", "{0}\u306E\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044: "},
         {"unable.to.recover.key.from.keystore",
-                "\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u3089\u9375\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093"},
+                "\u30AD\u30FC\u30B9\u30C8\u30A2\u304B\u3089\u30AD\u30FC\u3092\u5FA9\u5143\u3067\u304D\u307E\u305B\u3093"},
         {"key.associated.with.alias.not.a.private.key",
-                "{0}\u3068\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u9375\u306F\u3001\u79D8\u5BC6\u9375\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
-        {"you.must.enter.key.password", "\u9375\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
+                "{0}\u3068\u95A2\u9023\u4ED8\u3051\u3089\u308C\u305F\u30AD\u30FC\u306F\u3001\u79D8\u5BC6\u30AD\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093"},
+        {"you.must.enter.key.password", "\u30AD\u30FC\u30FB\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059"},
         {"unable.to.read.password.", "\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093: "},
         {"certificate.is.valid.from", "\u8A3C\u660E\u66F8\u306F{0}\u304B\u3089{1}\u307E\u3067\u6709\u52B9\u3067\u3059"},
         {"certificate.expired.on", "\u8A3C\u660E\u66F8\u306F{0}\u306B\u5931\u52B9\u3057\u307E\u3057\u305F"},
@@ -217,7 +217,7 @@
                 "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u304B\u3089\u306E\u30EC\u30B9\u30DD\u30F3\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002\u30D5\u30A1\u30A4\u30A2\u30A6\u30A9\u30FC\u30EB\u3092\u4ECB\u3057\u3066\u63A5\u7D9A\u3059\u308B\u3068\u304D\u306F\u3001\u5FC5\u8981\u306B\u5FDC\u3058\u3066HTTP\u307E\u305F\u306FHTTPS\u30D7\u30ED\u30AD\u30B7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002jarsigner\u306B\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044:"},
         {"or", "\u307E\u305F\u306F"},
         {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the",
-                "\u8A3C\u660E\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F: {0}\u3002{1}\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306EX.509\u516C\u958B\u9375\u8A3C\u660E\u66F8\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u6709\u52B9\u306AKeyStore\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
+                "\u8A3C\u660E\u66F8\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F: {0}\u3002{1}\u306F\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u306EX.509\u516C\u958B\u30AD\u30FC\u8A3C\u660E\u66F8\u304C\u542B\u307E\u308C\u3066\u3044\u308B\u6709\u52B9\u306AKeyStore\u30A8\u30F3\u30C8\u30EA\u3092\u53C2\u7167\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002"},
         {"using.an.alternative.signing.mechanism",
                 "\u4EE3\u66FF\u7F72\u540D\u30E1\u30AB\u30CB\u30BA\u30E0\u306E\u4F7F\u7528"},
         {"entry.was.signed.on", "\u30A8\u30F3\u30C8\u30EA\u306F{0}\u306B\u7F72\u540D\u3055\u308C\u307E\u3057\u305F"},
@@ -277,7 +277,7 @@
         {"The.1.algorithm.specified.for.the.2.option.is.considered.a.security.risk.",
                 "%1$s\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0(%2$s\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u6307\u5B9A)\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u307E\u3059\u3002"},
         {"The.1.signing.key.has.a.keysize.of.2.which.is.considered.a.security.risk.",
-                "%1$s\u7F72\u540D\u9375\u306B\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u308B%2$d\u306E\u9375\u30B5\u30A4\u30BA\u304C\u3042\u308A\u307E\u3059\u3002"},
+                "%1$s\u7F72\u540D\u30AD\u30FC\u306B\u306F\u3001\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u30FB\u30EA\u30B9\u30AF\u3068\u307F\u306A\u3055\u308C\u308B%2$d\u306E\u30AD\u30FC\u30FB\u30B5\u30A4\u30BA\u304C\u3042\u308A\u307E\u3059\u3002"},
         {"This.jar.contains.entries.whose.certificate.chain.is.invalid.reason.1",
                  "\u3053\u306Ejar\u306B\u306F\u3001\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u304C\u7121\u52B9\u306A\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u7406\u7531: %s"},
         {"This.jar.contains.entries.whose.tsa.certificate.chain.is.invalid.reason.1",
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -93,6 +93,7 @@
 doclet.Interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
 doclet.Enclosing_Class=\u542B\u307E\u308C\u3066\u3044\u308B\u30AF\u30E9\u30B9:
 doclet.Enclosing_Interface=\u542B\u307E\u308C\u3066\u3044\u308B\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9:
+doclet.System_Property=\u30B7\u30B9\u30C6\u30E0\u30FB\u30D7\u30ED\u30D1\u30C6\u30A3
 doclet.Window_Source_title=\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9
 doclet.Window_Help_title=API\u30D8\u30EB\u30D7
 
@@ -122,7 +123,6 @@
 doclet.help.index.body={0}\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u3001\u30E1\u30BD\u30C3\u30C9\u304A\u3088\u3073\u30D5\u30A3\u30FC\u30EB\u30C9\u306E\u30A2\u30EB\u30D5\u30A1\u30D9\u30C3\u30C8\u9806\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3068\u3001\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u304A\u3088\u3073\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u306E\u30EA\u30B9\u30C8\u304C\u542B\u307E\u308C\u307E\u3059\u3002
 doclet.help.frames.head=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057
 doclet.help.frames.body=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306FHTML\u30D5\u30EC\u30FC\u30E0\u306E\u8868\u793A\u3068\u975E\u8868\u793A\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\u3002\u3059\u3079\u3066\u306E\u30DA\u30FC\u30B8\u306F\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u3067\u3082\u3001\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u3067\u3082\u8868\u793A\u3067\u304D\u307E\u3059\u3002
-doclet.help.all_classes.body={0}\u30EA\u30F3\u30AF\u306B\u306F\u3001\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9(\u975Estatic\u306E\u30CD\u30B9\u30C8\u3055\u308C\u305F\u578B\u3092\u9664\u304F)\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002
 doclet.help.serial_form.body=\u76F4\u5217\u5316\u53EF\u80FD\u307E\u305F\u306F\u5916\u90E8\u5316\u53EF\u80FD\u306A\u5404\u30AF\u30E9\u30B9\u306F\u3001\u76F4\u5217\u5316\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u30E1\u30BD\u30C3\u30C9\u306E\u8AAC\u660E\u3092\u542B\u307F\u307E\u3059\u3002\u3053\u306E\u60C5\u5831\u306F\u3001API\u3092\u4F7F\u7528\u3059\u308B\u958B\u767A\u8005\u3067\u306F\u306A\u304F\u3001\u518D\u5B9F\u88C5\u3092\u884C\u3046\u62C5\u5F53\u8005\u306B\u5F79\u7ACB\u3061\u307E\u3059\u3002\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u30EA\u30F3\u30AF\u304C\u306A\u3044\u5834\u5408\u3001\u76F4\u5217\u5316\u3055\u308C\u305F\u30AF\u30E9\u30B9\u306B\u79FB\u52D5\u3057\u3066\u3001\u30AF\u30E9\u30B9\u8A18\u8FF0\u306E\u300C\u95A2\u9023\u9805\u76EE\u300D\u30BB\u30AF\u30B7\u30E7\u30F3\u306B\u3042\u308B\u300C\u76F4\u5217\u5316\u3055\u308C\u305F\u5F62\u5F0F\u300D\u3092\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3053\u3068\u306B\u3088\u308A\u3001\u3053\u306E\u60C5\u5831\u3092\u8868\u793A\u3067\u304D\u307E\u3059\u3002
 doclet.help.constants.body={0}\u30DA\u30FC\u30B8\u306B\u306F\u3001static final\u30D5\u30A3\u30FC\u30EB\u30C9\u3068\u305D\u306E\u5024\u306E\u30EA\u30B9\u30C8\u304C\u3042\u308A\u307E\u3059\u3002
 doclet.help.footnote=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u306B\u3088\u3063\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/resources/standard_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -93,6 +93,7 @@
 doclet.Interfaces=\u63A5\u53E3
 doclet.Enclosing_Class=\u5C01\u95ED\u7C7B:
 doclet.Enclosing_Interface=\u5C01\u95ED\u63A5\u53E3:
+doclet.System_Property=\u7CFB\u7EDF\u5C5E\u6027
 doclet.Window_Source_title=\u6E90\u4EE3\u7801
 doclet.Window_Help_title=API \u5E2E\u52A9
 
@@ -122,7 +123,6 @@
 doclet.help.index.body={0} \u5305\u542B\u6240\u6709\u7C7B\u3001\u63A5\u53E3\u3001\u6784\u9020\u5668\u3001\u65B9\u6CD5\u548C\u5B57\u6BB5\u7684\u6309\u5B57\u6BCD\u987A\u5E8F\u6392\u5217\u7684\u7D22\u5F15\uFF0C\u4EE5\u53CA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u6240\u6709\u7C7B\u7684\u5217\u8868\u3002
 doclet.help.frames.head=\u6846\u67B6/\u65E0\u6846\u67B6
 doclet.help.frames.body=\u8FD9\u4E9B\u94FE\u63A5\u7528\u4E8E\u663E\u793A\u548C\u9690\u85CF HTML \u6846\u67B6\u3002\u6240\u6709\u9875\u9762\u5747\u5177\u6709\u6709\u6846\u67B6\u548C\u65E0\u6846\u67B6\u4E24\u79CD\u663E\u793A\u65B9\u5F0F\u3002
-doclet.help.all_classes.body={0}\u94FE\u63A5\u663E\u793A\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B)\u3002
 doclet.help.serial_form.body=\u6BCF\u4E2A\u53EF\u5E8F\u5217\u5316\u6216\u53EF\u5916\u90E8\u5316\u7684\u7C7B\u90FD\u6709\u5176\u5E8F\u5217\u5316\u5B57\u6BB5\u548C\u65B9\u6CD5\u7684\u8BF4\u660E\u3002\u6B64\u4FE1\u606F\u5BF9\u91CD\u65B0\u5B9E\u73B0\u8005\u6709\u7528, \u800C\u5BF9\u4F7F\u7528 API \u7684\u5F00\u53D1\u8005\u5219\u6CA1\u6709\u4EC0\u4E48\u7528\u5904\u3002\u5C3D\u7BA1\u5BFC\u822A\u680F\u4E2D\u6CA1\u6709\u94FE\u63A5, \u4F46\u60A8\u53EF\u4EE5\u901A\u8FC7\u4E0B\u5217\u65B9\u5F0F\u83B7\u53D6\u6B64\u4FE1\u606F: \u8F6C\u81F3\u4EFB\u4F55\u5E8F\u5217\u5316\u7C7B, \u7136\u540E\u5355\u51FB\u7C7B\u8BF4\u660E\u7684 "\u53E6\u8BF7\u53C2\u9605" \u90E8\u5206\u4E2D\u7684 "\u5E8F\u5217\u5316\u8868\u683C"\u3002
 doclet.help.constants.body={0}\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002
 doclet.help.footnote=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u7531\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -104,7 +104,7 @@
 doclet.Constructor_Summary=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u6982\u8981
 doclet.Method_Summary=\u30E1\u30BD\u30C3\u30C9\u306E\u6982\u8981
 doclet.Interfaces=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
-doclet.Enums=\u5217\u6319\u578B
+doclet.Enums=\u5217\u6319
 doclet.AnnotationTypes=\u6CE8\u91C8\u578B
 doclet.Exceptions=\u4F8B\u5916
 doclet.Errors=\u30A8\u30E9\u30FC
@@ -122,7 +122,7 @@
 doclet.AnnotationType=\u6CE8\u91C8\u578B
 doclet.annotationtype=\u6CE8\u91C8\u578B
 doclet.annotationtypes=\u6CE8\u91C8\u578B
-doclet.Enum=\u5217\u6319\u578B
+doclet.Enum=\u5217\u6319
 doclet.enum=\u5217\u6319
 doclet.enums=\u5217\u6319
 doclet.interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9
@@ -211,13 +211,15 @@
 doclet.Annotation_Type_Required_Member=\u5FC5\u9808\u8981\u7D20
 doclet.Annotation_Type_Member=\u6CE8\u91C8\u578B\u8981\u7D20
 doclet.Enum_Constant=\u5217\u6319\u578B\u5B9A\u6570
-doclet.Class=\u30AF\u30E9\u30B9
 doclet.Description=\u8AAC\u660E
 doclet.ConstantField=\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9
 doclet.Value=\u5024
+doclet.linkMismatch_PackagedLinkedtoModule=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308B\u30B3\u30FC\u30C9\u3067\u306F\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001{0}\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u540D\u524D\u306E\u3042\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3082\u306E\u3067\u3059\u3002
+doclet.linkMismatch_ModuleLinkedtoPackage=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u5316\u3057\u3088\u3046\u3068\u3057\u3066\u3044\u308B\u30B3\u30FC\u30C9\u3067\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u304C\u4F7F\u7528\u3055\u308C\u3066\u3044\u307E\u3059\u304C\u3001{0}\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B\u30D1\u30C3\u30B1\u30FC\u30B8\u306F\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3082\u306E\u3067\u3059\u3002
+doclet.urlRedirected=URL {0}\u306F{1}\u306B\u30EA\u30C0\u30A4\u30EC\u30AF\u30C8\u3055\u308C\u307E\u3057\u305F -- \u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u66F4\u65B0\u3057\u3066\u3053\u306E\u8B66\u544A\u3092\u8868\u793A\u3057\u306A\u3044\u3088\u3046\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 #Documentation for Enums
-doclet.enum_values_doc.fullbody=\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u542B\u3080\u914D\u5217\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\u8FD4\u3057\u307E\u3059\u3002\n\u3053\u306E\u30E1\u30BD\u30C3\u30C9\u306F\u6B21\u306E\u3088\u3046\u306B\u3057\u3066\u5B9A\u6570\u3092\u53CD\u5FA9\u3059\u308B\u305F\u3081\u306B\n\u4F7F\u7528\u3067\u304D\u307E\u3059:\n<pre>\nfor ({0} c : {0}.values())\n&nbsp;   System.out.println(c);\n</pre>
+doclet.enum_values_doc.fullbody=\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u542B\u3080\u914D\u5217\u3092\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\n\u8FD4\u3057\u307E\u3059\u3002
 
 doclet.enum_values_doc.return=\u3053\u306E\u5217\u6319\u578B\u306E\u5B9A\u6570\u3092\u542B\u3080\u3001\u5BA3\u8A00\u3055\u308C\u3066\u3044\u308B\u9806\u5E8F\u3067\u306E\u914D\u5217
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/resources/doclets_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -211,13 +211,15 @@
 doclet.Annotation_Type_Required_Member=\u5FC5\u9700\u7684\u5143\u7D20
 doclet.Annotation_Type_Member=\u6CE8\u91CA\u7C7B\u578B\u5143\u7D20
 doclet.Enum_Constant=\u679A\u4E3E\u5E38\u91CF
-doclet.Class=\u7C7B
 doclet.Description=\u8BF4\u660E
 doclet.ConstantField=\u5E38\u91CF\u5B57\u6BB5
 doclet.Value=\u503C
+doclet.linkMismatch_PackagedLinkedtoModule=\u8FDB\u884C\u6587\u6863\u5316\u7684\u4EE3\u7801\u4F7F\u7528\u4E86\u672A\u547D\u540D\u6A21\u5757\u4E2D\u7684\u7A0B\u5E8F\u5305\uFF0C\u4F46\u5728 {0} \u4E2D\u5B9A\u4E49\u7684\u7A0B\u5E8F\u5305\u5728\u547D\u540D\u6A21\u5757\u4E2D\u3002
+doclet.linkMismatch_ModuleLinkedtoPackage=\u8FDB\u884C\u6587\u6863\u5316\u7684\u4EE3\u7801\u4F7F\u7528\u4E86\u6A21\u5757\uFF0C\u4F46\u5728 {0} \u4E2D\u5B9A\u4E49\u7684\u7A0B\u5E8F\u5305\u5728\u672A\u547D\u540D\u6A21\u5757\u4E2D\u3002
+doclet.urlRedirected=URL {0} \u5DF2\u91CD\u5B9A\u5411\u5230 {1} \u2014 \u66F4\u65B0\u547D\u4EE4\u884C\u9009\u9879\u4EE5\u9690\u85CF\u6B64\u8B66\u544A\u3002
 
 #Documentation for Enums
-doclet.enum_values_doc.fullbody=\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \u8FD4\u56DE\n\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4\u3002\u8BE5\u65B9\u6CD5\u53EF\u7528\u4E8E\u8FED\u4EE3\n\u5E38\u91CF, \u5982\u4E0B\u6240\u793A:\n<pre>\nfor ({0} c : {0}.values())\n&nbsp;   System.out.println(c);\n</pre>
+doclet.enum_values_doc.fullbody=\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F, \n\u8FD4\u56DE\u4E00\u4E2A\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4\u3002
 
 doclet.enum_values_doc.return=\u6309\u7167\u58F0\u660E\u8BE5\u679A\u4E3E\u7C7B\u578B\u7684\u5E38\u91CF\u7684\u987A\u5E8F\u8FD4\u56DE\u7684\u5305\u542B\u8FD9\u4E9B\u5E38\u91CF\u7684\u6570\u7EC4
 
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -20,6 +20,10 @@
 
 main.opt.require=\  --require <module-name>       \u6307\u5B9A\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u540D\u306B\u4E00\u81F4\u3059\u308B\u4F9D\u5B58\u6027\u3092\u691C\u51FA\u3057\u307E\u3059\n                                 (\u8907\u6570\u56DE\u6307\u5B9A\u53EF\u80FD)\u3002--package\u3001\n                                --regex\u3001--require\u306F\u76F8\u4E92\u306B\u6392\u4ED6\u7684\u3067\u3059\u3002
 
+main.opt.missing-deps=\  --missing-deps                \u6B20\u843D\u3057\u3066\u3044\u308B\u4F9D\u5B58\u6027\u3092\u691C\u51FA\u3057\u307E\u3059\u3002  \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\n                                -p\u3001-e\u304A\u3088\u3073-s\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u4E00\u7DD2\u306B\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
+
+main.opt.ignore-missing-deps=\  --ignore-missing-deps         \u6B20\u843D\u3057\u3066\u3044\u308B\u4F9D\u5B58\u6027\u3092\u7121\u8996\u3057\u307E\u3059\u3002
+
 main.opt.include=\n\u5206\u6790\u5BFE\u8C61\u30AF\u30E9\u30B9\u3092\u30D5\u30A3\u30EB\u30BF\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3:\n  -include <regex>              \u30D1\u30BF\u30FC\u30F3\u306B\u4E00\u81F4\u3059\u308B\u30AF\u30E9\u30B9\u306B\u5206\u6790\u3092\u5236\u9650\u3057\u307E\u3059\n                                     \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3059\u308B\u3068\u3001\u5206\u6790\u5BFE\u8C61\u30AF\u30E9\u30B9\u306E\n                                     \u30EA\u30B9\u30C8\u304C\u30D5\u30A3\u30EB\u30BF\u3055\u308C\u307E\u3059\u3002\u30D1\u30BF\u30FC\u30F3\u3092\u4F9D\u5B58\u6027\u306B\n                                     \u9069\u7528\u3059\u308B-p\u304A\u3088\u3073-e\u3068\u4E00\u7DD2\u306B\u4F7F\u7528\u3067\u304D\u307E\u3059
 
 main.opt.P=\  -P       -profile             \u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u542B\u3080\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3092\u8868\u793A\u3057\u307E\u3059
@@ -34,9 +38,11 @@
 
 main.opt.add-modules=\  --add-modules <module-name>[,<module-name>...]\n                                \u5206\u6790\u7528\u306B\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u30EB\u30FC\u30C8\u30FB\u30BB\u30C3\u30C8\u306B\u8FFD\u52A0\u3057\u307E\u3059
 
-main.opt.R=\  -R       -recursive           \u3059\u3079\u3066\u306E\u30E9\u30F3\u30BF\u30A4\u30E0\u4F9D\u5B58\u6027\u3092\u518D\u5E30\u7684\u306B\u30C8\u30E9\u30D0\u30FC\u30B9\u3057\u307E\u3059\u3002\n                                -R\u30AA\u30D7\u30B7\u30E7\u30F3\u306F-filter:none\u3092\u610F\u5473\u3057\u307E\u3059\u3002-p\u3001-e\u3001-f\n                                \u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u4E00\u81F4\u3059\u308B\u4F9D\u5B58\u6027\u306E\u307F\n                                \u5206\u6790\u3055\u308C\u307E\u3059\u3002
+main.opt.R=\  -R\n  --recursive                   \u3059\u3079\u3066\u306E\u30E9\u30F3\u30BF\u30A4\u30E0\u4F9D\u5B58\u6027\u3092\u518D\u5E30\u7684\u306B\u30C8\u30E9\u30D0\u30FC\u30B9\u3057\u307E\u3059\u3002\n                                -R\u30AA\u30D7\u30B7\u30E7\u30F3\u306F-filter:none\u3092\u610F\u5473\u3057\u307E\u3059\u3002-p\u3001-e\u3001-f\n                                \u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u4E00\u81F4\u3059\u308B\u4F9D\u5B58\u6027\u306E\u307F\n                                \u5206\u6790\u3055\u308C\u307E\u3059\u3002
 
-main.opt.I=\  -I       --inverse            \u4ED6\u306E\u6307\u5B9A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3054\u3068\u306B\u4F9D\u5B58\u6027\u3092\u5206\u6790\u3057\u3001\n                                \u4E00\u81F4\u3059\u308B\u30CE\u30FC\u30C9\u306B\u76F4\u63A5\u304A\u3088\u3073\u9593\u63A5\u7684\u306B\u4F9D\u5B58\u3059\u308B\n                                \u3059\u3079\u3066\u306E\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u691C\u51FA\u3057\u307E\u3059\u3002\n                                \u3053\u308C\u306F\u3001\u30B3\u30F3\u30D1\u30A4\u30EB\u6642\u306E\u8868\u793A\u5206\u6790\n                                \u304A\u3088\u3073\u51FA\u529B\u4F9D\u5B58\u6027\u30B5\u30DE\u30EA\u30FC\u306E\u9006\u306B\u76F8\u5F53\u3057\u307E\u3059\u3002\n                                \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F--require\u3001--package\u307E\u305F\u306F--regex\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\n                                \u4E00\u7DD2\u306B\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+main.opt.no-recursive=\  --no-recursive                \u4F9D\u5B58\u6027\u3092\u518D\u5E30\u7684\u306B\u30C8\u30E9\u30D0\u30FC\u30B9\u3057\u307E\u305B\u3093\u3002
+
+main.opt.I=\  -I\n  --inverse                     \u4ED6\u306E\u6307\u5B9A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3054\u3068\u306B\u4F9D\u5B58\u6027\u3092\u5206\u6790\u3057\u3001\n                                \u4E00\u81F4\u3059\u308B\u30CE\u30FC\u30C9\u306B\u76F4\u63A5\u304A\u3088\u3073\u9593\u63A5\u7684\u306B\u4F9D\u5B58\u3059\u308B\n                                \u3059\u3079\u3066\u306E\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u3092\u691C\u51FA\u3057\u307E\u3059\u3002\n                                \u3053\u308C\u306F\u3001\u30B3\u30F3\u30D1\u30A4\u30EB\u6642\u306E\u8868\u793A\u5206\u6790\n                                \u304A\u3088\u3073\u51FA\u529B\u4F9D\u5B58\u6027\u30B5\u30DE\u30EA\u30FC\u306E\u9006\u306B\u76F8\u5F53\u3057\u307E\u3059\u3002\n                                \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F--require\u3001--package\u307E\u305F\u306F--regex\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\n                                \u4E00\u7DD2\u306B\u4F7F\u7528\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
 
 main.opt.compile-time=\  --compile-time                \u63A8\u79FB\u7684\u306A\u4F9D\u5B58\u6027\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u6642\u306E\u8868\u793A\n                                \u4F8B: -R\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30B3\u30F3\u30D1\u30A4\u30EB\u6642\u306E\u8868\u793A\u3002\n                                \u4ED6\u306E\u6307\u5B9A\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3054\u3068\u306B\u4F9D\u5B58\u6027\u3092\u5206\u6790\u3057\u307E\u3059\n                                \u4F9D\u5B58\u6027\u304C\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u304B\u3089\n                                \u691C\u51FA\u3055\u308C\u305F\u5834\u5408\u3001\u305D\u306E\u5305\u542B\u3059\u308B\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\n                                \u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u304C\u5206\u6790\u3055\u308C\u307E\u3059\u3002
 
@@ -54,7 +60,7 @@
 
 main.opt.jdkinternals=\  -jdkinternals\n  --jdk-internals               JDK\u5185\u90E8API\u306E\u30AF\u30E9\u30B9\u30EC\u30D9\u30EB\u306E\u4F9D\u5B58\u6027\u3092\u691C\u51FA\u3057\u307E\u3059\u3002\n                                \u30C7\u30D5\u30A9\u30EB\u30C8\u3067\u306F\u3001-include\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u306A\u3044\u3068\u3001\n                                --class-path\u306E\u3059\u3079\u3066\u306E\u30AF\u30E9\u30B9\u3068\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u3092\u5206\u6790\u3057\u307E\u3059\u3002\n                                \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F-p\u3001-e\u304A\u3088\u3073-s\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u4E00\u7DD2\u306B\n                                \u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\n                                \u8B66\u544A: JDK\u5185\u90E8API\u306F\u3001\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u306A\u304F\u306A\u308A\u307E\u3059\u3002
 
-main.opt.list-deps=\  --list-deps                   \u30E2\u30B8\u30E5\u30FC\u30EB\u4F9D\u5B58\u6027\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\u53C2\u7167\u3055\u308C\u3066\u3044\u308B\n                                \u5834\u5408\u3001\u4EFB\u610F\u306EJDK\u5185\u90E8API\u30D1\u30C3\u30B1\u30FC\u30B8\u3082\u51FA\u529B\u3057\u307E\u3059\u3002\n                                \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3067\u306F\u3001\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u4F9D\u5B58\u6027\u3084\u898B\u3064\u3051\u3089\u308C\u306A\u3044\n                                \u4F9D\u5B58\u6027\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002
+main.opt.list-deps=\  --list-deps                   \u30E2\u30B8\u30E5\u30FC\u30EB\u4F9D\u5B58\u6027\u3092\u30EA\u30B9\u30C8\u3057\u307E\u3059\u3002\u53C2\u7167\u3055\u308C\u3066\u3044\u308B\n                                \u5834\u5408\u3001\u4EFB\u610F\u306E\u5185\u90E8API\u30D1\u30C3\u30B1\u30FC\u30B8\u3082\u51FA\u529B\u3057\u307E\u3059\u3002\n                                \u3053\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u53C2\u7167\u3055\u308C\u3066\u3044\u308B\u5834\u5408\u3001\u30AF\u30E9\u30B9\u30D1\u30B9\u3068\n                                \u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u30E9\u30A4\u30D6\u30E9\u30EA\u3092\u63A8\u79FB\u7684\u306B\u5206\u6790\u3057\u307E\u3059\u3002\n                                \u975E\u63A8\u79FB\u7684\u306A\u4F9D\u5B58\u6027\u306E\u5206\u6790\u306B\u306F\u3001--no-recursive\u30AA\u30D7\u30B7\u30E7\u30F3\n                                \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 main.opt.list-reduced-deps=\  --list-reduced-deps           --list-deps\u3068\u540C\u3058\u3067\u3059\u304C\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30B0\u30E9\u30D5\n                                \u304B\u3089\u542B\u610F\u3055\u308C\u305F\u8AAD\u53D6\u308A\u30A8\u30C3\u30B8\u3092\u30EA\u30B9\u30C8\u3057\u307E\u305B\u3093\u3002\n                                \u30E2\u30B8\u30E5\u30FC\u30EBM1\u304CM2\u3092\u8AAD\u307F\u53D6\u308A\u3001M2\u304CM3\u3067\u306E\u63A8\u79FB\u3092\n                                \u5FC5\u8981\u3068\u3059\u308B\u5834\u5408\u3001M3\u3092\u8AAD\u307F\u53D6\u308BM1\u306F\u542B\u610F\u3055\u308C\u3066\u304A\u308A\u3001\n                                \u30B0\u30E9\u30D5\u306B\u306F\u8868\u793A\u3055\u308C\u307E\u305B\u3093\u3002
 
@@ -86,6 +92,8 @@
 err.multirelease.option.notfound={0}\u306F\u30DE\u30EB\u30C1\u30EA\u30EA\u30FC\u30B9jar\u30D5\u30A1\u30A4\u30EB\u3067\u3059\u304C--multi-release\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\u8A2D\u5B9A\u3055\u308C\u3066\u3044\u307E\u305B\u3093
 err.multirelease.version.associated=\u30AF\u30E9\u30B9{0}\u306F\u3059\u3067\u306B\u30D0\u30FC\u30B8\u30E7\u30F3{1}\u306B\u95A2\u9023\u4ED8\u3051\u3089\u308C\u3066\u3044\u307E\u3059\u3002\u30D0\u30FC\u30B8\u30E7\u30F3{2}\u306E\u8FFD\u52A0\u3092\u8A66\u307F\u307E\u3059
 err.multirelease.jar.malformed=\u4E0D\u6B63\u306A\u30DE\u30EB\u30C1\u30EA\u30EA\u30FC\u30B9jar\u3001{0}\u3001\u4E0D\u6B63\u306A\u30A8\u30F3\u30C8\u30EA: {1}
+err.cant.list.module.deps=\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u3068\u30AF\u30E9\u30B9\u30D1\u30B9\u304B\u3089\u306E\u4F9D\u5B58\u6027\u304C\u6B20\u843D\u3057\u3066\u3044\u307E\u3059\u3002\n\u3053\u306E\u30A8\u30E9\u30FC\u3092\u6291\u6B62\u3059\u308B\u306B\u306F\u3001--ignore-missing-deps\u3092\u4F7F\u7528\u3057\u3066\u7D9A\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
+
 warn.invalid.arg=\u30D1\u30B9\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
 warn.skipped.entry={0}
 warn.split.package=\u5206\u5272\u30D1\u30C3\u30B1\u30FC\u30B8: {0} {1}
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -20,6 +20,10 @@
 
 main.opt.require=\  --require <\u6A21\u5757\u540D\u79F0>          \u67E5\u627E\u4E0E\u7ED9\u5B9A\u6A21\u5757\u540D\u79F0\u5339\u914D\u7684\n                                \u88AB\u4F9D\u8D56\u5BF9\u8C61 (\u53EF\u591A\u6B21\u6307\u5B9A)\u3002--package,\n                                --regex, --requires \u662F\u4E92\u65A5\u7684\u3002
 
+main.opt.missing-deps=\  --missing-deps                \u67E5\u627E\u7F3A\u5C11\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\u6B64\u9009\u9879\n                                \u4E0D\u80FD\u4E0E -p\u3001-e \u548C -s \u9009\u9879\u4E00\u8D77\u4F7F\u7528\u3002
+
+main.opt.ignore-missing-deps=\  --ignore-missing-deps         \u5FFD\u7565\u7F3A\u5C11\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002
+
 main.opt.include=\n\u7528\u4E8E\u7B5B\u9009\u8981\u5206\u6790\u7684\u7C7B\u7684\u9009\u9879:\n  -include <\u6B63\u5219\u8868\u8FBE\u5F0F>             \u5C06\u5206\u6790\u9650\u5236\u4E3A\u4E0E\u6A21\u5F0F\u5339\u914D\u7684\u7C7B\n                                    \u6B64\u9009\u9879\u7B5B\u9009\u8981\u5206\u6790\u7684\u7C7B\u7684\u5217\u8868\u3002\n                                    \u5B83\u53EF\u4EE5\u4E0E\u5411\u88AB\u4F9D\u8D56\u5BF9\u8C61\u5E94\u7528\u6A21\u5F0F\u7684\n                                -p \u548C -e \u7ED3\u5408\u4F7F\u7528
 
 main.opt.P=\  -P       -profile             \u663E\u793A\u5305\u542B\u7A0B\u5E8F\u5305\u7684\u914D\u7F6E\u6587\u4EF6
@@ -34,9 +38,11 @@
 
 main.opt.add-modules=\  --add-modules <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n                                \u5C06\u6A21\u5757\u6DFB\u52A0\u5230\u6839\u96C6\u4EE5\u8FDB\u884C\u5206\u6790
 
-main.opt.R=\  -R       -recursive           \u9012\u5F52\u904D\u5386\u6240\u6709\u8FD0\u884C\u65F6\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\n                                -R \u9009\u9879\u8868\u793A -filter:none\u3002\u5982\u679C\n                                \u6307\u5B9A\u4E86 -p, -e, -f \u9009\u9879, \u5219\u53EA\u5206\u6790\n                                \u5339\u914D\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002
+main.opt.R=\  -R\n  --recursive                   \u9012\u5F52\u904D\u5386\u6240\u6709\u8FD0\u884C\u65F6\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\n                                -R \u9009\u9879\u8868\u793A -filter:none\u3002\u5982\u679C\u6307\u5B9A\u4E86 -p\u3001\n                                -e\u3001-f \u9009\u9879\uFF0C\u5219\u53EA\u5206\u6790\n                                \u5339\u914D\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002
 
-main.opt.I=\  -I       --inverse            \u6839\u636E\u5176\u4ED6\u6307\u5B9A\u9009\u9879\u5206\u6790\u88AB\u4F9D\u8D56\u5BF9\u8C61,\n                                \u7136\u540E\u67E5\u627E\u76F4\u63A5\u548C\u95F4\u63A5\u4F9D\u8D56\u4E8E\u5339\u914D\n                                \u8282\u70B9\u7684\u6240\u6709 Artifact\u3002\n                                \u8FD9\u76F8\u5F53\u4E8E\u7F16\u8BD1\u65F6\u89C6\u56FE\u5206\u6790\u7684\n                                \u9006\u5411, \u8F93\u51FA\u88AB\u4F9D\u8D56\u5BF9\u8C61\u6982\u8981\u3002\n                                \u6B64\u9009\u9879\u5FC5\u987B\u4E0E --require, \n                                --package \u6216 --regex \u9009\u9879\u4E00\u8D77\u4F7F\u7528\u3002
+main.opt.no-recursive=\  --no-recursive                \u4E0D\u9012\u5F52\u904D\u5386\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002
+
+main.opt.I=\  -I\n  --inverse                     \u6839\u636E\u5176\u4ED6\u6307\u5B9A\u9009\u9879\u5206\u6790\u88AB\u4F9D\u8D56\u5BF9\u8C61,\n                                \u7136\u540E\u67E5\u627E\u76F4\u63A5\u548C\u95F4\u63A5\u4F9D\u8D56\u4E8E\u5339\u914D\n                                \u8282\u70B9\u7684\u6240\u6709 Artifact\u3002\n                                \u8FD9\u76F8\u5F53\u4E8E\u7F16\u8BD1\u65F6\u89C6\u56FE\u5206\u6790\u7684\n                                \u9006\u5411, \u8F93\u51FA\u88AB\u4F9D\u8D56\u5BF9\u8C61\u6982\u8981\u3002\n                                \u6B64\u9009\u9879\u5FC5\u987B\u4E0E --require, \n                                --package \u6216 --regex \u9009\u9879\u4E00\u8D77\u4F7F\u7528\u3002
 
 main.opt.compile-time=\  --compile-time                \u8FC7\u6E21\u88AB\u4F9D\u8D56\u5BF9\u8C61\u7684\u7F16\u8BD1\u65F6\u89C6\u56FE,\n                                \u4F8B\u5982 -R \u9009\u9879\u7684\u7F16\u8BD1\u65F6\u89C6\u56FE\u3002\n                                \u6839\u636E\u5176\u4ED6\u6307\u5B9A\u9009\u9879\u5206\u6790\u88AB\u4F9D\u8D56\u5BF9\u8C61\n                                \u5982\u679C\u4ECE\u76EE\u5F55, JAR \u6587\u4EF6\u6216\u6A21\u5757\u4E2D\n                                \u627E\u5230\u88AB\u4F9D\u8D56\u5BF9\u8C61, \u5219\u5C06\u5206\u6790\n                                \u8BE5\u6240\u5728\u6863\u6848\u4E2D\u7684\u6240\u6709\u7C7B\u3002
 
@@ -54,7 +60,7 @@
 
 main.opt.jdkinternals=\  -jdkinternals\n  --jdk-internals               \u5728 JDK \u5185\u90E8 API \u4E0A\u67E5\u627E\u7C7B\u7EA7\u522B\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\n                                \u9664\u975E\u6307\u5B9A\u4E86 -include \u9009\u9879, \u5426\u5219\u9ED8\u8BA4\u60C5\u51B5\u4E0B,\n                                \u5B83\u5206\u6790 --class-path \u4E0A\u7684\u6240\u6709\u7C7B\u548C\u8F93\u5165\u6587\u4EF6\u3002\n                                \u6B64\u9009\u9879\u4E0D\u80FD\u4E0E -p, -e \u548C -s \u9009\u9879\n                                \u4E00\u8D77\u4F7F\u7528\u3002\n                                \u8B66\u544A: \u65E0\u6CD5\u8BBF\u95EE JDK \u5185\u90E8 API\u3002
 
-main.opt.list-deps=\  --list-deps                   \u5217\u51FA\u6A21\u5757\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\u5B83\u8FD8\u4F1A\u8F93\u51FA\n                                \u4EFB\u610F JDK \u5185\u90E8 API \u7A0B\u5E8F\u5305 (\u5982\u679C\u5F15\u7528)\u3002\n                                \u6B64\u9009\u9879\u4E0D\u663E\u793A\u7C7B\u8DEF\u5F84\u4E0A\u6216\u672A\u627E\u5230\u7684\n                                \u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002
+main.opt.list-deps=\  --list-deps                   \u5217\u51FA\u6A21\u5757\u7684\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\u5B83\u8FD8\u4F1A\n                                \u8F93\u51FA\u5185\u90E8 API \u7A0B\u5E8F\u5305\uFF08\u5982\u679C\u5F15\u7528\uFF09\u3002\n                                \u6B64\u9009\u9879\u4F20\u9012\u5206\u6790\u7C7B\u8DEF\u5F84\u548C\u6A21\u5757\u8DEF\u5F84\n                                \u4E0A\u7684\u5E93\uFF08\u5982\u679C\u5F15\u7528\uFF09\u3002\n                                \u5C06 --no-recursive \u9009\u9879\u7528\u4E8E\n                                \u88AB\u4F9D\u8D56\u5BF9\u8C61\u7684\u975E\u4F20\u9012\u5206\u6790\u3002
 
 main.opt.list-reduced-deps=\  --list-reduced-deps           \u4E0E --list-deps \u76F8\u540C, \u4E0D\u5217\u51FA\n                                \u6A21\u5757\u56FE\u4E2D\u7684\u9690\u5F0F\u8BFB\u53D6\u7EF4\u8FB9\u3002\n                                \u5982\u679C\u6A21\u5757 M1 \u8BFB\u53D6 M2, \u5E76\u4E14 M2 \u9700\u8981\n                                M3 \u4E0A\u7684\u8FC7\u6E21, \u5219 M1 \u9690\u5F0F\u8BFB\u53D6 M3\n                                \u5E76\u4E14\u4E0D\u5728\u56FE\u4E2D\u663E\u793A\u3002
 
@@ -86,6 +92,8 @@
 err.multirelease.option.notfound={0} \u662F\u591A\u53D1\u884C\u7248 jar \u6587\u4EF6, \u4F46\u672A\u8BBE\u7F6E --multi-release \u9009\u9879
 err.multirelease.version.associated=\u7C7B {0} \u5DF2\u4E0E\u7248\u672C {1} \u5173\u8054, \u6B63\u5728\u5C1D\u8BD5\u6DFB\u52A0\u7248\u672C {2}
 err.multirelease.jar.malformed=\u683C\u5F0F\u9519\u8BEF\u7684\u591A\u53D1\u884C\u7248 jar, {0}, \u9519\u8BEF\u6761\u76EE: {1}
+err.cant.list.module.deps=\u6A21\u5757\u8DEF\u5F84\u548C\u7C7B\u8DEF\u5F84\u4E2D\u7F3A\u5C11\u88AB\u4F9D\u8D56\u5BF9\u8C61\u3002\n\u8981\u9690\u85CF\u6B64\u9519\u8BEF\uFF0C\u8BF7\u4F7F\u7528 --ignore-missing-deps \u7EE7\u7EED\u3002
+
 warn.invalid.arg=\u8DEF\u5F84\u4E0D\u5B58\u5728: {0}
 warn.skipped.entry={0}
 warn.split.package=\u62C6\u5206\u7A0B\u5E8F\u5305: {0} {1}
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/ConsoleIOContext.java	Wed Jan 09 22:59:49 2019 +0100
@@ -59,6 +59,7 @@
 import jdk.internal.org.jline.keymap.KeyMap;
 import jdk.internal.org.jline.reader.Binding;
 import jdk.internal.org.jline.reader.EOFError;
+import jdk.internal.org.jline.reader.EndOfFileException;
 import jdk.internal.org.jline.reader.History;
 import jdk.internal.org.jline.reader.LineReader;
 import jdk.internal.org.jline.reader.LineReader.Option;
@@ -200,6 +201,8 @@
             return in.readLine(firstLinePrompt);
         } catch (UserInterruptException ex) {
             throw (InputInterruptedException) new InputInterruptedException().initCause(ex);
+        } catch (EndOfFileException ex) {
+            return null;
         }
     }
 
@@ -1212,6 +1215,7 @@
                     while ((r = input.read()) != (-1)) {
                         processInputByte(r);
                     }
+                    slaveInput.close();
                 } catch (IOException ex) {
                     throw new IllegalStateException(ex);
                 }
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_ja.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -171,11 +171,11 @@
 jshell.console.resolvable = \n\u8B58\u5225\u5B50\u306F\u3053\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u89E3\u6C7A\u3067\u304D\u307E\u3059\u3002
 jshell.console.no.candidate = \n\u30A4\u30F3\u30DD\u30FC\u30C8\u3059\u308B\u5019\u88DC\u306E\u5B8C\u5168\u4FEE\u98FE\u3055\u308C\u305F\u540D\u524D\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
 jshell.console.incomplete = \n\u7D50\u679C\u304C\u4E0D\u5B8C\u5168\u3067\u3042\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u7D50\u679C\u3092\u5B8C\u5168\u306B\u3059\u308B\u306B\u306F\u3001\u5F8C\u3067\u518D\u8A66\u884C\u3057\u3066\u304F\u3060\u3055\u3044\u3002
-jshell.console.erroneous = \n\u4E0D\u5B8C\u5168\u307E\u305F\u306F\u30A8\u30E9\u30FC\u3002\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u3067[Shift]-[Tab] m\u3092\u7D9A\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
-jshell.console.exprstmt = \n\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u3067[Shift]-[Tab] m\u3092\u7D9A\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
-jshell.console.empty = \n\u7A7A\u306E\u30A8\u30F3\u30C8\u30EA\u3002\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u3067[Shift]-[Tab] m\u3092\u7D9A\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+jshell.console.erroneous = \n\u4E0D\u5B8C\u5168\u307E\u305F\u306F\u30A8\u30E9\u30FC\u3002\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u304C[Shift]+[Tab] m\u306B\u5148\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+jshell.console.exprstmt = \n\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u304C[Shift]+[Tab] m\u306B\u5148\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
+jshell.console.empty = \n\u7A7A\u306E\u30A8\u30F3\u30C8\u30EA\u3002\u5358\u4E00\u306E\u6709\u52B9\u306A\u5F0F\u307E\u305F\u306F\u6587\u304C[Shift]+[Tab] m\u306B\u5148\u884C\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
 
-jshell.fix.wrong.shortcut =[Shift]-[Tab]\u306E\u5F8C\u306E\u6587\u5B57\u304C\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57\u3067\u3059\u3002\n\u81EA\u52D5\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u306F"i"\u3001\u5909\u6570\u306E\u4F5C\u6210\u306B\u306F"v"\u3001\u30E1\u30BD\u30C3\u30C9\u306E\u4F5C\u6210\u306B\u306F"m"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u8A73\u7D30\u306F\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n/help shortcuts
+jshell.fix.wrong.shortcut =[Shift]+[Tab]\u306E\u5F8C\u306E\u6587\u5B57\u304C\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57\u3067\u3059\u3002\n\u81EA\u52D5\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u306F"i"\u3001\u5909\u6570\u306E\u4F5C\u6210\u306B\u306F"v"\u3001\u30E1\u30BD\u30C3\u30C9\u306E\u4F5C\u6210\u306B\u306F"m"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\u8A73\u7D30\u306F\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n/help shortcuts
 
 help.usage = \u4F7F\u7528\u65B9\u6CD5:   jshell <option>... <load-file>...\n\u4F7F\u7528\u53EF\u80FD\u306A\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F\u6B21\u306E\u3082\u306E\u304C\u3042\u308A\u307E\u3059:\n    --class-path <path>   \u30E6\u30FC\u30B6\u30FC\u30FB\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --module-path <path>  \u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u306E\u3042\u308B\u5834\u6240\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --add-modules <module>(,<module>)*\n                           \u89E3\u6C7A\u3059\u308B\u30E2\u30B8\u30E5\u30FC\u30EB\u3001\u307E\u305F\u306F<module>\u304CALL-MODULE-PATH\n                            \u3067\u3042\u308B\u5834\u5408\u306F\u30E2\u30B8\u30E5\u30FC\u30EB\u30FB\u30D1\u30B9\u306E\u3059\u3079\u3066\u306E\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u6307\u5B9A\u3057\u307E\u3059\n    --enable-preview      \u30B3\u30FC\u30C9\u3092\u3053\u306E\u30EA\u30EA\u30FC\u30B9\u306E\u30D7\u30EC\u30D3\u30E5\u30FC\u6A5F\u80FD\u306B\u4F9D\u5B58\u3055\u305B\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\n    --startup <file>      \u8D77\u52D5\u5B9A\u7FA9\u306E\u4EE3\u66FF\u3068\u3057\u3066\u5B9F\u884C\u3055\u308C\u307E\u3059\n    --no-startup          \u8D77\u52D5\u5B9A\u7FA9\u3092\u5B9F\u884C\u3057\u307E\u305B\u3093\n    --feedback <mode>     \u521D\u671F\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u30FB\u30E2\u30FC\u30C9\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\u30E2\u30FC\u30C9\u306F\n                            \u4E8B\u524D\u306B\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u308B(silent\u3001concise\u3001normal\u307E\u305F\u306Fverbose)\u304B\u3001\n                            \u4E8B\u524D\u306B\u30E6\u30FC\u30B6\u30FC\u304C\u5B9A\u7FA9\u3067\u304D\u307E\u3059\n    -q                    \u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback concise\u3068\u540C\u3058\n    -s                    \u975E\u5E38\u306B\u7C21\u6F54\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback silent\u3068\u540C\u3058\n    -v                    \u8A73\u7D30\u306A\u30D5\u30A3\u30FC\u30C9\u30D0\u30C3\u30AF\u3002--feedback verbose\u3068\u540C\u3058\n    -J<flag>              <flag>\u3092\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u76F4\u63A5\u6E21\u3057\u307E\u3059\u3002\n                            \u5B9F\u884C\u6642\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-J\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -R<flag>              <flag>\u3092\u30EA\u30E2\u30FC\u30C8\u5B9F\u884C\u6642\u30B7\u30B9\u30C6\u30E0\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30EA\u30E2\u30FC\u30C8\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-R\u3092\u4F7F\u7528\u3057\u307E\u3059\n    -C<flag>              <flag>\u3092\u30B3\u30F3\u30D1\u30A4\u30E9\u306B\u6E21\u3057\u307E\u3059\u3002\n                            \u30B3\u30F3\u30D1\u30A4\u30E9\u30FB\u30D5\u30E9\u30B0\u307E\u305F\u306F\u30D5\u30E9\u30B0\u5F15\u6570\u3054\u3068\u306B1\u3064\u306E-C\u3092\u4F7F\u7528\u3057\u307E\u3059\n    --version              \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --show-version        \u30D0\u30FC\u30B8\u30E7\u30F3\u60C5\u5831\u3092\u51FA\u529B\u3057\u7D9A\u884C\u3057\u307E\u3059\n    --help, -?, -h        \u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u3053\u306E\u6982\u8981\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n    --help-extra, -X      \
 \u975E\u6A19\u6E96\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u30D8\u30EB\u30D7\u3092\u51FA\u529B\u3057\u7D42\u4E86\u3057\u307E\u3059\n\n\u30D5\u30A1\u30A4\u30EB\u5F15\u6570\u306B\u306F\u3001\u30D5\u30A1\u30A4\u30EB\u540D\u304B\u3001\u307E\u305F\u306F\u4E8B\u524D\u5B9A\u7FA9\u3055\u308C\u305F\u30D5\u30A1\u30A4\u30EB\u540D(DEFAULT\u3001\nPRINTING\u307E\u305F\u306FJAVASE)\u306E1\u3064\u3092\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nload-file\u3067\u3082\u3001\u5BFE\u8A71\u578BI/O\u3092\u4F7F\u7528\u305B\u305A\u306B\u3001"-"\u3092\u6307\u5B9A\u3057\u3066\u6A19\u6E96\u5165\u529B\u3092\u793A\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002\n\n\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3(--class-path\u3001--module-path\u3001--add-modules)\u306E\n\u8A73\u7D30\u306F\u3001\u6B21\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044:\n\t/help context\n\n\u30D1\u30B9\u306B\u306F\u3001\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3068\u30A2\u30FC\u30AB\u30A4\u30D6\u304C\u30EA\u30B9\u30C8\u3055\u308C\u307E\u3059\u3002Windows\u306E\u5834\u5408\u306F\u3001\n\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\n\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n
@@ -268,8 +268,13 @@
 help.intro.summary = jshell\u30C4\u30FC\u30EB\u306E\u6982\u8981
 help.intro =jshell\u30C4\u30FC\u30EB\u3092\u4F7F\u7528\u3059\u308B\u3068\u3001Java\u30B3\u30FC\u30C9\u3092\u5B9F\u884C\u3057\u3066\u5373\u5EA7\u306B\u7D50\u679C\u3092\u53D6\u5F97\u3067\u304D\u307E\u3059\u3002\nint x = 8\u306A\u3069\u306EJava\u5B9A\u7FA9(\u5909\u6570\u3001\u30E1\u30BD\u30C3\u30C9\u3001\u30AF\u30E9\u30B9\u306A\u3069)\u3001\nx + x\u306A\u3069\u306EJava\u5F0F\u307E\u305F\u306FJava\u6587\u3092\u5165\u529B\u3057\u305F\u308A\u3001\n\u30A4\u30F3\u30DD\u30FC\u30C8\u3057\u305F\u308A\u3067\u304D\u307E\u3059\u3002\n\u3053\u308C\u3089\u306EJava\u30B3\u30FC\u30C9\u306E\u5C0F\u3055\u306A\u30C1\u30E3\u30F3\u30AF\u3092\u300C\u30B9\u30CB\u30DA\u30C3\u30C8\u300D\u3068\u547C\u3073\u307E\u3059\u3002\n\n\u307E\u305F\u3001/list\u306A\u3069\u306E\u5B9F\u884C\u3059\u308B\u5185\u5BB9\u3092\u7406\u89E3\u304A\u3088\u3073\u5236\u5FA1\u3067\u304D\u308Bjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3082\n\u3042\u308A\u307E\u3059\n\n\u30B3\u30DE\u30F3\u30C9\u306E\u30EA\u30B9\u30C8\u3092\u53C2\u7167\u3059\u308B\u5834\u5408: /help
 
+help.keys.summary = readline\u306B\u4F3C\u305F\u5165\u529B\u7DE8\u96C6\u306E\u8AAC\u660E
+help.keys =jshell\u30C4\u30FC\u30EB\u3067\u306F\u884C\u7DE8\u96C6\u30B5\u30DD\u30FC\u30C8\u3092\u63D0\u4F9B\u3057\u3066\u304A\u308A\u3001\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\n\u5185\u3092\u30CA\u30D3\u30B2\u30FC\u30C8\u3057\u3066\u7DE8\u96C6\u3067\u304D\u307E\u3059\u3002\u73FE\u5728\u306E\u30B3\u30DE\u30F3\u30C9/\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u7DE8\u96C6\u3057\u305F\u308A\u3001\n\u904E\u53BB\u306E\u30B3\u30DE\u30F3\u30C9/\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u5C65\u6B74\u304B\u3089\u53D6\u5F97\u3057\u3066\u7DE8\u96C6\u304A\u3088\u3073\u5B9F\u884C\u3067\u304D\u307E\u3059\u3002\n\u3053\u306E\u30B5\u30DD\u30FC\u30C8\u306F\u3001Emacs\u306E\u3088\u3046\u306A\u5358\u7D14\u306A\u30D0\u30A4\u30F3\u30C7\u30A3\u30F3\u30B0\u3092\u4F7F\u7528\u3057\u305Freadline/editline\u306B\u4F3C\u3066\u3044\u307E\u3059\u3002\njshell\u30C4\u30FC\u30EB\u56FA\u6709\u306E\u30AD\u30FC\u30FB\u30B7\u30FC\u30B1\u30F3\u30B9\u3082\u3042\u308A\u307E\u3059\u3002\n\n\u884C\u3068\u5C65\u6B74\u306E\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3:\n\n\t[Return]\n\t\t\u73FE\u5728\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u5165\u529B\u3057\u307E\u3059\n\t[\u2190]\u307E\u305F\u306F[Ctrl]+[B]\n\t\t1\u6587\u5B57\u524D\u306B\u623B\u308A\u307E\u3059\n\t[\u2192]\u307E\u305F\u306F[Ctrl]+[F]\n\t\t1\u6587\u5B57\u5148\u306B\u9032\u307F\u307E\u3059\n\t[\u2191]\u307E\u305F\u306F[Ctrl]+[P]\n\t\t\u5C65\u6B74\u30921\u884C\u524D(\u4E0A)\u306B\u623B\u308A\u307E\u3059\n\t[\u2193]\u307E\u305F\u306F[Ctrl]+[N]\n\t\t\u5C65\u6B74\u30921\u884C\u5148(\u4E0B)\u306B\u9032\u307F\u307E\u3059\n\t[Ctrl]+[A]\n\t\t\u884C\u306E\u5148\u982D\u306B\u79FB\u52D5\u3057\u307E\u3059\n\t[Ctrl]+[E]\n\t\t\u884C\u306E\u672B\u5C3E\u306B\u79FB\u52D5\u3057\u307E\u3059\n\t[Meta]+[B]\n\t\t1\u5358\u8A9E\u524D\u306B\u623B\u308A\u307E\u3059\n\t[Meta]+[F]\n\t\t1\u5358\u8A9E\u5148\u306B\u9032\u307F\u307E\u3059\n\t[Ctrl]+[R]\n\t\t\u5C65\u6B74\u3092\u524D\u306B\u623B\u3063\u3066\u691C\u7D22\u3057\u307E\u3059\n\n\n\u884C\u3068\u5C65\u6B74\u306E\u57FA\u672C\u7DE8\u96C6:\n\n\t[Meta]+[Return]\u307E\u305F\u306F[Ctrl]+[Return] (\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u306B\u4F9D\u5B58\u3057\u307E\u3059)\n\t\t\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u65B0\u898F\u884C\u3092\u633F\u5165\u3057\u307E\u3059\n\t[Ctrl]+[_] \
+(\u30A2\u30F3\u30C0\u30FC\u30B9\u30B3\u30A2\u306F[Shift]\u30AD\u30FC\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u304C\u3042\u308A\u307E\u3059)\u307E\u305F\u306F[Ctrl]+[X]\u3092\u62BC\u3057\u3066\u304B\u3089[Ctrl]+[U]\n\t\t\u7DE8\u96C6\u3092\u5143\u306B\u623B\u3057\u307E\u3059(\u7E70\u308A\u8FD4\u3059\u3068\u3055\u3089\u306B\u7DE8\u96C6\u3092\u5143\u306B\u623B\u3059\u3053\u3068\u304C\u3067\u304D\u307E\u3059)\n\t[Delete]\n\t\t\u30AB\u30FC\u30BD\u30EB\u306E\u4F4D\u7F6E\u307E\u305F\u306F\u305D\u306E\u5F8C\u306B\u3042\u308B\u6587\u5B57\u3092\u524A\u9664\u3057\u307E\u3059(\u30AA\u30DA\u30EC\u30FC\u30C6\u30A3\u30F3\u30B0\u30FB\u30B7\u30B9\u30C6\u30E0\u306B\u4F9D\u5B58\u3057\u307E\u3059)\n\t[Backspace]\n\t\t\u30AB\u30FC\u30BD\u30EB\u306E\u524D\u306B\u3042\u308B\u6587\u5B57\u3092\u524A\u9664\u3057\u307E\u3059\n\t[Ctrl]+[K]\n\t\t\u30AB\u30FC\u30BD\u30EB\u306E\u4F4D\u7F6E\u304B\u3089\u884C\u306E\u672B\u5C3E\u307E\u3067\u306E\u30C6\u30AD\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\t[Meta]+[D]\n\t\t\u30AB\u30FC\u30BD\u30EB\u306E\u4F4D\u7F6E\u304B\u3089\u5358\u8A9E\u306E\u672B\u5C3E\u307E\u3067\u306E\u30C6\u30AD\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\t[Ctrl]+[W]\n\t\t\u30AB\u30FC\u30BD\u30EB\u306E\u4F4D\u7F6E\u304B\u3089\u524D\u306E\u7A7A\u767D\u307E\u3067\u306E\u30C6\u30AD\u30B9\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\n\t[Ctrl]+[Y]\n\t\t\u6700\u5F8C\u306B\u524A\u9664\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u3092\u884C\u306B\u8CBC\u308A\u4ED8\u3051\u307E\u3059\n\t[Meta]+[Y]\n\t\t[Ctrl]+[Y]\u306E\u5F8C\u3067[Meta]+[Y]\u3092\u62BC\u3059\u3068\u3001\u904E\u53BB\u306B\u524A\u9664\u3057\u305F\u30C6\u30AD\u30B9\u30C8\u304C\u30B5\u30A4\u30AF\u30EB\u8868\u793A\u3055\u308C\u307E\u3059\n\t[Ctrl]+[X]\u3092\u62BC\u3057\u3066\u304B\u3089[Ctrl]+[K]\n\t\t\u30B9\u30CB\u30DA\u30C3\u30C8\u5168\u4F53\u3092\u524A\u9664\u3057\u307E\u3059\n\n\njshell\u30C4\u30FC\u30EB\u306E\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8:\n\n\t\u8A73\u7D30\u306F\u3001/help \
+shortcuts\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\n\n\t[Tab]\n\t\tJava\u8B58\u5225\u5B50\u307E\u305F\u306Fjshell\u30B3\u30DE\u30F3\u30C9\u3092\u5B8C\u4E86\u3057\u307E\u3059\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[v]\n\t\t\u5F0F\u3092\u5909\u6570\u5BA3\u8A00\u306B\u5909\u63DB\u3057\u307E\u3059\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[m]\n\t\t\u6587\u3092\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u306B\u5909\u63DB\u3057\u307E\u3059\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[i]\n\t\t\u3053\u306E\u8B58\u5225\u5B50\u306B\u30A4\u30F3\u30DD\u30FC\u30C8\u3092\u8FFD\u52A0\u3057\u307E\u3059\n\t\n\n\u884C\u3068\u5C65\u6B74\u306E\u62E1\u5F35\u7DE8\u96C6:\n\n\t[Ctrl]+[L]\n\t\t\u753B\u9762\u3092\u30AF\u30EA\u30A2\u3057\u3066\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u51FA\u529B\u3057\u307E\u3059\n\t[Ctrl]+[U]\n\t\t\u884C\u5168\u4F53\u3092\u5F37\u5236\u7D42\u4E86\u3057\u307E\u3059\n\t[Ctrl]+[T]\n\t\t\u6587\u5B57\u3092\u7F6E\u63DB\u3057\u307E\u3059\n\t[Ctrl]+[X]\u3092\u62BC\u3057\u3066\u304B\u3089[Ctrl]+[B]\n\t\t\u4E00\u81F4\u3059\u308B\u5927\u30AB\u30C3\u30B3\u3001\u4E38\u30AB\u30C3\u30B3\u3001...\u306B\u79FB\u52D5\u3057\u307E\u3059\n\t[Ctrl]+[X]\u3092\u62BC\u3057\u3066\u304B\u3089[=]\n\t\t\u73FE\u884C\u6587\u5B57\u4F4D\u7F6E\u8868\u793A\u30E2\u30FC\u30C9\u306B\u5165\u308A\u307E\u3059\n\t[Ctrl]+[X]\u3092\u62BC\u3057\u3066\u304B\u3089[Ctrl]+[O]\n\t\t\u6587\u5B57\u306E\u4E0A\u66F8\u304D\u3068\u6587\u5B57\u306E\u633F\u5165\u3092\u5207\u308A\u66FF\u3048\u307E\u3059\n\t[Meta]+[C]\n\t\t\u5358\u8A9E\u306E\u5148\u982D\u3092\u5927\u6587\u5B57\u306B\u3057\u307E\u3059\n\t[Meta]+[U]\n\t\t\u5358\u8A9E\u3092\u5927\u6587\u5B57\u306B\u5909\u63DB\u3057\u307E\u3059\n\t[Meta]+[L]\n\t\t\u5358\u8A9E\u3092\u5C0F\u6587\u5B57\u306B\u5909\u63DB\u3057\u307E\u3059\n\t[Meta]+[0]\u304B\u3089[Meta]+[9]\u3092\u62BC\u3057\u3066\u304B\u3089\u30AD\u30FC\n\t\t\u6307\u5B9A\u3057\u305F\u56DE\u6570\u7E70\u308A\u8FD4\u3057\u307E\u3059\n\n\u305F\u3068\u3048\u3070\u3001[Ctrl]+[A]\u306F\u3001[Ctrl]\u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089[A]\u3092\u62BC\u3059\u3068\u3044\u3046\u610F\u5473\u3067\u3059\u3002\n[Meta]\u306F\u3001\u591A\u304F\u306E\u30AD\u30FC\u30DC\u30FC\u30C9\u3067[Alt]\u3067\u3059\u3002\n\u884C\u7DE8\u96C6\u30B5\u30DD\u30FC\u30C8\u306F\u3001JLine 3\u304B\u3089\u6D3E\u751F\u3057\u3066\u3044\u307E\u3059\u3002
+
 help.shortcuts.summary = \u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30B3\u30DE\u30F3\u30C9\u306E\u88DC\u5B8C\u3001\u60C5\u5831\u30A2\u30AF\u30BB\u30B9\u3001\u304A\u3088\u3073\u81EA\u52D5\u30B3\u30FC\u30C9\u751F\u6210\n\u306E\u30AD\u30FC\u30B9\u30C8\u30ED\u30FC\u30AF\u306E\u8AAC\u660E
-help.shortcuts =\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n<tab>\n\t\tJava\u8B58\u5225\u5B50\u3001jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3001\u5834\u5408\u306B\u3088\u3063\u3066\u306F\n\t\tjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u5F15\u6570\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u3092\u5165\u529B\u3057\u305F\u5F8C\u306B\u3001\n\t\t<tab>\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u5165\u529B\u304C\u88DC\u5B8C\u3055\u308C\u307E\u3059\u3002\n\t\t\u88DC\u5B8C\u7D50\u679C\u304C\u8907\u6570\u3042\u308B\u5834\u5408\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u88DC\u5B8C\u7D50\u679C\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\t\t\u9069\u5207\u306A\u3082\u306E\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> v\n\t\t\u5B8C\u5168\u306A\u5F0F\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[v]\u3092\u62BC\u3059\u3068\u3001\u5F0F\u304C\u3001\u305D\u306E\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304F\u30BF\u30A4\u30D7\u3092\u6301\u3064\u3001\u5909\u6570\u306E\u5BA3\u8A00\u306B\n\t\t\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\n\nShift-<tab> m\n\t\t\u5B8C\u5168\u306A\u5F0F\u307E\u305F\u306F\u6587\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\n\t\t\u6B21\u306B\u96E2\u3057\u3066[m]\u3092\u62BC\u3059\u3068\u3001\u5F0F\u307E\u305F\u306F\u6587\u304C\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u306B\n\t\t\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u5F0F\u306E\u5834\u5408\u3001\u623B\u308A\u5024\u306E\u30BF\u30A4\u30D7\u306F\u3001\n\t\t\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304D\u307E\u3059\u3002\n\nShift-<tab> i\n\t\t\u89E3\u6C7A\u3067\u304D\u306A\u3044\u8B58\u5225\u5B50\u306E\u5F8C\u306B\u3001<shift>\u3092\u62BC\u3057\u306A\u304C\u3089<tab>\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066\n\t\t[i]\u3092\u62BC\u3059\u3068\u3001jshell\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u63D0\u793A\u3055\u308C\u3001\n\t\t\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\u8B58\u5225\u5B50\u304C\u89E3\u6C7A\u3055\u308C\u307E\u3059\u3002
+help.shortcuts =\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u308B\u30B7\u30E7\u30FC\u30C8\u30AB\u30C3\u30C8\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\n\t[Tab]\n\t\tJava\u8B58\u5225\u5B50\u3001jshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u3001\u5834\u5408\u306B\u3088\u3063\u3066\u306F\n\t\tjshell\u30C4\u30FC\u30EB\u30FB\u30B3\u30DE\u30F3\u30C9\u5F15\u6570\u306E\u6700\u521D\u306E\u6570\u6587\u5B57\u3092\u5165\u529B\u3057\u305F\u5F8C\u306B\u3001\n\t\t[Tab]\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u5165\u529B\u304C\u88DC\u5B8C\u3055\u308C\u307E\u3059\u3002\n\t\t\u88DC\u5B8C\u7D50\u679C\u304C\u8907\u6570\u3042\u308B\u5834\u5408\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u88DC\u5B8C\u7D50\u679C\u304C\n\t\t\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\t\t\u3082\u30461\u56DE[Tab]\u3092\u62BC\u3059\u3068\u3001\u9069\u5207\u306A\u3082\u306E\u304C\u3042\u308B\u5834\u5408\u306F\u3001\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\n\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[v]\n\t\t\u5B8C\u5168\u306A\u5F0F\u306E\u5F8C\u306B\u3001[Shift]\u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089[Tab]\u30AD\u30FC\u3092\u62BC\u3057\u3001\n\t\t\u6B21\u306B\u96E2\u3057\u3066[v]\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\u5F0F\u304C\u3001\n\t\t\u305D\u306E\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\u57FA\u3065\u304F\u30BF\u30A4\u30D7\u3092\u6301\u3064\n\t\t\u5909\u6570\u5BA3\u8A00\u306B\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\n\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[m]\n\t\t\u5B8C\u5168\u306A\u5F0F\u307E\u305F\u306F\u6587\u306E\u5F8C\u306B\u3001[Shift]\u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\n\t\t[Tab]\u30AD\u30FC\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066[m]\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\n\t\t\u5F0F\u307E\u305F\u306F\u6587\u304C\u30E1\u30BD\u30C3\u30C9\u5BA3\u8A00\u306B\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\n\t\t\u5F0F\u306E\u5834\u5408\u3001\u30E1\u30BD\u30C3\u30C9\u306E\u623B\u308A\u5024\u306E\u30BF\u30A4\u30D7\u306F\u3001\u5F0F\u306E\u30BF\u30A4\u30D7\u306B\n\t\t\u57FA\u3065\u304D\u307E\u3059\u3002\n\n\t[Shift]+[Tab]\u3092\u62BC\u3057\u3066\u304B\u3089[i]\n\t\t\u89E3\u6C7A\u3067\u304D\u306A\u3044\u8B58\u5225\u5B50\u306E\u5F8C\u306B\u3001[Shift]\u30AD\u30FC\u3092\u62BC\u3057\u306A\u304C\u3089\n\t\t[Tab]\u30AD\u30FC\u3092\u62BC\u3057\u3001\u6B21\u306B\u96E2\u3057\u3066[i]\u30AD\u30FC\u3092\u62BC\u3059\u3068\u3001\n\t\tjshell\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4F7F\u7528\u53EF\u80FD\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u304C\u63D0\u793A\u3055\u308C\u3001\n\t\t\u3053\u308C\u306B\u3088\u3063\u3066\u3001\u6307\u5B9A\u3055\u308C\u305F\u30AF\u30E9\u30B9\u30D1\u30B9\u306E\u5185\u5BB9\u306B\u57FA\u3065\u3044\u3066\n\t\t\u8B58\u5225\u5B50\u304C\u89E3\u6C7A\u3055\u308C\u307E\u3059\u3002\u9069\u5207\u306A\u30A4\u30F3\u30DD\u30FC\u30C8\u306B\u5BFE\u5FDC\u3059\u308B\u6570\u5B57\u3092\u5165\u529B\u3057\u307E\u3059\u3002\n\t\t\u307E\u305F\u306F\u3001[0]\u30AD\u30FC\u3092\u62BC\u3059\u3068\u30A4\u30F3\u30DD\u30FC\u30C8\u306F\u8FFD\u52A0\u3055\u308C\u307E\u305B\u3093\u3002\n\n\u4ED6\u306E\u7279\u6B8A\u30AD\u30FC\u306E\u8A73\u7D30\u306F\u3001/help keys\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044
 
 help.context.summary = /env /reload\u304A\u3088\u3073/reset\u306E\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u8AAC\u660E
 help.context =\u3053\u308C\u3089\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3092\u69CB\u6210\u3057\u307E\u3059\u3002\u3053\u308C\u3089\u306F\u3001jshell\u30C4\u30FC\u30EB\u306E\n\u8D77\u52D5\u6642\u306B\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u3001\u307E\u305F\u306Fjshell\u30C4\u30FC\u30EB\u304C\u30B3\u30DE\u30F3\u30C9/env\u3001/reload\u307E\u305F\u306F\n/reset\u3067\u518D\u8D77\u52D5\u3055\u308C\u308B\u3068\u304D\u306B\u30B3\u30DE\u30F3\u30C9\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u3068\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\n\n\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059:\n\t--class-path <path>\n\t\t<path>\u306F\u3001\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001\n\t\tZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\t\tWindows\u306E\u5834\u5408\u306F\u3001\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t\t\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t--module-path <path>...\n\t\t<path>\u306F\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\u691C\u7D22\u3059\u308B\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u3001JAR\u30A2\u30FC\u30AB\u30A4\u30D6\u3001\n\t\tZIP\u30A2\u30FC\u30AB\u30A4\u30D6\u306E\u30EA\u30B9\u30C8\u3067\u3059\u3002\n\t\tWindows\u306E\u5834\u5408\u306F\u3001\u30BB\u30DF\u30B3\u30ED\u30F3(;)\u3092\u4F7F\u7528\u3057\u3066\u30D1\u30B9\u306E\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t\t\u305D\u306E\u4ED6\u306E\u30D7\u30E9\u30C3\u30C8\u30D5\u30A9\u30FC\u30E0\u3067\u306F\u3001\u30B3\u30ED\u30F3(:)\u3092\u4F7F\u7528\u3057\u3066\u9805\u76EE\u3092\u533A\u5207\u308A\u307E\u3059\u3002\n\t--add-modules <modulename>[,<modulename>...]\n\t\t\u521D\u671F\u30E2\u30B8\u30E5\u30FC\u30EB\u306B\u52A0\u3048\u3066\u89E3\u6C7A\u3059\u308B\u30EB\u30FC\u30C8\u30FB\u30E2\u30B8\u30E5\u30FC\u30EB\u3002\n\t\t<modulename>\u306B\u306FALL-DEFAULT\u3001ALL-SYSTEM\u3001\n\t\tALL-MODULE-PATH\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u3082\u3067\u304D\u307E\u3059\u3002\n\t--add-exports <module>/<package>=<target-module>(,<target-module>)*\n\t\t<module>\u3092\u66F4\u65B0\u3057\u3066\u3001\u30E2\u30B8\u30E5\u30FC\u30EB\u5BA3\u8A00\u306B\u95A2\u4FC2\u306A\u304F<package>\u3092<target-module>\n\t\t\u306B\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3057\u307E\u3059\u3002\n\t\t<target-module>\u3092ALL-UNNAMED\u306B\u8A2D\u5B9A\u3059\u308B\u3068\u3001\u3059\u3079\u3066\u306E\u540D\u524D\u306E\u306A\u3044\u30E2\u30B8\u30E5\u30FC\u30EB\u3092\n\t\t\u30A8\u30AF\u30B9\u30DD\u30FC\u30C8\u3067\u304D\u307E\u3059\u3002jshell\u3067\u306F\u3001<target-module>\u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044\u5834\u5408(\u300C=\u300D\u306A\u3057)\n\t\tALL-UNNAMED\u304C\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\n\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u5165\u529B\u3055\u308C\u308B\u304B\u4EE5\u524D\u306E/reset\u3001/env\u307E\u305F\u306F/reload\u30B3\u30DE\u30F3\u30C9\u3067\n\u6307\u5B9A\u3055\u308C\u305F\u8A55\u4FA1\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30FB\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001\u8A2D\u5B9A\u3092\u4E0A\u66F8\u304D\u3059\u308B\u30AA\u30D7\u30B7\u30E7\u30F3\u304C\n\u5165\u529B\u3055\u308C\u306A\u3044\u304B\u304E\u308A\u7DAD\u6301\u3055\u308C\u307E\u3059\u3002\n\n\u30B3\u30DE\u30F3\u30C9\u30E9\u30A4\u30F3\u3067\u306F\u3001\u3053\u308C\u3089\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u306F2\u3064\u306E\u30C0\u30C3\u30B7\u30E5\u304C\u5FC5\u8981\u3067\u3059\u3002\u4F8B: \
@@ -279,7 +284,7 @@
 help.id =\u5165\u529B\u3057\u305F\u30B3\u30FC\u30C9\u306E\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306B\u56FA\u6709\u306E\u30B9\u30CB\u30DA\u30C3\u30C8ID\u304C\u3042\u308A\u307E\u3059\u3002\n\u540C\u3058\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u5EA6\u5165\u529B\u3057\u305F\u5834\u5408\u3067\u3082\u3001\u305D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u65B0\u3057\u3044ID\u3092\u6301\u3061\u307E\u3059\u3002\n\u901A\u5E38\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\u5834\u5408\u3001ID\u306F\u5897\u52A0\u3059\u308B\u6570\u5024\u3067\u3059\u3002\u30A8\u30E9\u30FC\u3067\u5931\u6557\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306E\n\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306F'e'\u3067\u59CB\u307E\u308A\u307E\u3059\u3002\u8D77\u52D5\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u306F's'\u3067\u59CB\u307E\u308A\u307E\u3059\u3002\n\n\u30B9\u30CB\u30DA\u30C3\u30C8ID\u306F\u3001\u30B3\u30DE\u30F3\u30C9\u5185\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u53C2\u7167\u3059\u308B1\u3064\u306E\u65B9\u6CD5\u3067\u3059\u3002\u305F\u3068\u3048\u3070\u3001\n\u6B21\u306E\u30B3\u30DE\u30F3\u30C9\u306FID '14'\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u524A\u9664\u3057\u307E\u3059\u3002\n\n\t/drop 14\n\n1\u3064\u307E\u305F\u306F\u8907\u6570\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001'/list'\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\u5931\u6557\u3001\u8D77\u52D5\u3001\u4E0A\u66F8\u304D\u6E08\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u542B\u3080\u3059\u3079\u3066\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306EID\u3092\u8868\u793A\u3059\u308B\u306B\u306F\u3001\n'/list -all'\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002\n\n\u958B\u59CBID\u3068\u7D42\u4E86ID\u3092\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3063\u305FID\u306E\u7BC4\u56F2\u3082\u53C2\u7167\u3067\u304D\u307E\u3059\u3002\n\u305F\u3068\u3048\u3070\u3001'1-4'\u306F'1 2 3 4'\u3068\u540C\u3058\u3067\u3059\u3002\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u53C2\u7167\u3059\u308B\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u3001\nID\u306E\u30EA\u30B9\u30C8\u3001ID\u7BC4\u56F2\u304A\u3088\u3073\u30B9\u30CB\u30DA\u30C3\u30C8\u540D\u3092\u5F15\u6570\u3068\u3057\u3066\u53D7\u3051\u53D6\u308A\u307E\u3059\u3002\n\u3053\u308C\u3089\u306E\u30B3\u30DE\u30F3\u30C9\u306F\u6B21\u306E\u3068\u304A\u308A\u3067\u3059: /list\u3001/edit\u3001/drop\u3001/save\u3001/vars\u3001/methods\u3001\n/types\u3001/<id>\u3002\u4F8B\u3092\u3044\u304F\u3064\u304B\u793A\u3057\u307E\u3059\u3002\n\n\t/edit 7-23\n\n\t/save s1-s4 3-8 foo 12 myfile\n\n\t/9-12 33\n\n\u305D\u308C\u305E\u308C'/help /edit'\u3001'/help /save'\u3001'/help rerun'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002
 
 help.rerun.summary = \u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306E\u8AAC\u660E
-help.rerun =\u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306F4\u3064\u3042\u308A\u307E\u3059\u3002\n\u6700\u5F8C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001/!\u3092\u4F7F\u7528\u3057\u3066\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059\nn\u56DE\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30E9\u30C3\u30B7\u30E5\u3068\u30DE\u30A4\u30CA\u30B9\u304A\u3088\u3073n\u306E\u6570\u5B57\u3067\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059(\u4F8B: /-4)\n\u6B21\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u518D\u8A55\u4FA1\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)\n'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n\u307E\u305F\u3001[Ctrl]-[R]\u3092\u62BC\u3057\u3066\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u5165\u529B\u3059\u308B\u3068\u3001\u5C65\u6B74\u3092\u3055\u304B\u306E\u307C\u3063\u3066\u691C\u7D22\u3067\u304D\u307E\u3059\u3002
+help.rerun =\u524D\u306B\u5165\u529B\u3057\u305F\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u518D\u8A55\u4FA1\u3059\u308B\u65B9\u6CD5\u306F4\u3064\u3042\u308A\u307E\u3059\u3002\n\u6700\u5F8C\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001/!\u3092\u4F7F\u7528\u3057\u3066\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059\nn\u56DE\u524D\u306E\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30E9\u30C3\u30B7\u30E5\u3068\u30DE\u30A4\u30CA\u30B9\u304A\u3088\u3073n\u306E\u6570\u5B57\u3067\u518D\u8A55\u4FA1\u3067\u304D\u307E\u3059(\u4F8B: /-4)\n\u6B21\u306B\u4F8B\u3092\u793A\u3057\u307E\u3059\u3002\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u518D\u8A55\u4FA1\u3059\u308B\u30B9\u30CB\u30DA\u30C3\u30C8\u306F\u3001\u30B9\u30CB\u30DA\u30C3\u30C8ID\u307E\u305F\u306FID\u7BC4\u56F2\u3067\u6307\u5B9A\u3067\u304D\u307E\u3059\u3002\nID\u7BC4\u56F2\u306F\u3001\u30CF\u30A4\u30D5\u30F3\u3067\u533A\u5207\u3089\u308C\u305F2\u3064\u306EID\u3067\u8868\u73FE\u3055\u308C\u307E\u3059(\u4F8B: 3-17)\n\u8D77\u52D5\u30B9\u30CB\u30DA\u30C3\u30C8\u304A\u3088\u3073\u30A8\u30E9\u30FC\u30FB\u30B9\u30CB\u30DA\u30C3\u30C8\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: s3-s9\u307E\u305F\u306Fe1-e4)\n\u4EFB\u610F\u306E\u6570\u306EID\u307E\u305F\u306FID\u7BC4\u56F2\u3092\u4F7F\u7528\u3067\u304D\u307E\u3059(\u4F8B: /3-7 s4 14-16 e2)\n'/help id'\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n\n\u307E\u305F\u3001[Ctrl]+[R]\u3092\u62BC\u3057\u3066\u304B\u3089\u691C\u7D22\u6587\u5B57\u5217\u3092\u5165\u529B\u3059\u308B\u3068\u3001\u5C65\u6B74\u3092\u3055\u304B\u306E\u307C\u3063\u3066\u691C\u7D22\u3067\u304D\u307E\u3059\u3002
 
 help.set._retain = '-retain'\u30AA\u30D7\u30B7\u30E7\u30F3\u306B\u3088\u308A\u3001\u5C06\u6765\u306E\u30BB\u30C3\u30B7\u30E7\u30F3\u3067\u4F7F\u7528\u3059\u308B\u305F\u3081\u306B\u8A2D\u5B9A\u3092\u4FDD\u5B58\u3057\u307E\u3059\u3002\n-retain\u30AA\u30D7\u30B7\u30E7\u30F3\u306F\u3001/set\u306E\u6B21\u306E\u5F62\u5F0F\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059:\n\n\t/set editor -retain\n\t/set start -retain\n\t/set feedback -retain\n\t/set mode -retain\n\n\u8A73\u7D30\u306F\u3001\u3053\u308C\u3089\u306E\u30B3\u30DE\u30F3\u30C9\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044 -- \u4F8B: /help /set editor
 
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Tue Jan 08 17:37:57 2019 -0800
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/tool/resources/l10n_zh_CN.properties	Wed Jan 09 22:59:49 2019 +0100
@@ -171,11 +171,11 @@
 jshell.console.resolvable = \n\u6807\u8BC6\u7B26\u53EF\u5728\u6B64\u4E0A\u4E0B\u6587\u4E2D\u89E3\u6790\u3002
 jshell.console.no.candidate = \n\u6CA1\u6709\u627E\u5230\u53EF\u5BFC\u5165\u7684\u5019\u9009\u5168\u9650\u5B9A\u540D\u79F0\u3002
 jshell.console.incomplete = \n\u7ED3\u679C\u53EF\u80FD\u4E0D\u5B8C\u6574; \u8BF7\u7A0D\u5019\u91CD\u8BD5\u4EE5\u83B7\u53D6\u5B8C\u6574\u7ED3\u679C\u3002
-jshell.console.erroneous = \n\u4E0D\u5B8C\u6574\u6216\u9519\u8BEF\u3002Shift-<tab> m \u540E\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
-jshell.console.exprstmt = \nShift-<tab> m \u540E\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
-jshell.console.empty = \n\u7A7A\u6761\u76EE\u3002Shift-<tab> m \u540E\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
+jshell.console.erroneous = \n\u4E0D\u5B8C\u6574\u6216\u9519\u8BEF\u3002Shift+Tab m \u524D\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
+jshell.console.exprstmt = \nShift+Tab m \u540E\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
+jshell.console.empty = \n\u7A7A\u6761\u76EE\u3002Shift+Tab m \u524D\u5FC5\u987B\u4E3A\u5355\u4E2A\u6709\u6548\u7684\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u3002
 
-jshell.fix.wrong.shortcut =Shift-Tab \u540E\u51FA\u73B0\u610F\u5916\u7684\u5B57\u7B26\u3002\n\u4F7F\u7528 "i" \u8868\u793A\u81EA\u52A8\u5BFC\u5165, \u4F7F\u7528 "v" \u8868\u793A\u53D8\u91CF\u521B\u5EFA, \u4F7F\u7528 "i" \u8868\u793A\u65B9\u6CD5\u521B\u5EFA\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605:\n /help \u5FEB\u6377\u65B9\u5F0F
+jshell.fix.wrong.shortcut =Shift+Tab \u540E\u51FA\u73B0\u610F\u5916\u7684\u5B57\u7B26\u3002\n\u4F7F\u7528 "i" \u8868\u793A\u81EA\u52A8\u5BFC\u5165\uFF0C\u4F7F\u7528 "v" \u8868\u793A\u53D8\u91CF\u521B\u5EFA\uFF0C\u4F7F\u7528 "i" \u8868\u793A\u65B9\u6CD5\u521B\u5EFA\u3002\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\uFF1A\n/help \u5FEB\u6377\u65B9\u5F0F
 
 help.usage = \u7528\u6CD5\uFF1A   jshell <\u9009\u9879>... <\u52A0\u8F7D\u6587\u4EF6>...\n\u5176\u4E2D\uFF0C\u53EF\u80FD\u7684\u9009\u9879\u5305\u62EC\uFF1A\n    --class-path <\u8DEF\u5F84>   \u6307\u5B9A\u67E5\u627E\u7528\u6237\u7C7B\u6587\u4EF6\u7684\u4F4D\u7F6E\n    --module-path <\u8DEF\u5F84>  \u6307\u5B9A\u67E5\u627E\u5E94\u7528\u7A0B\u5E8F\u6A21\u5757\u7684\u4F4D\u7F6E\n    --add-modules <\u6A21\u5757>(,<\u6A21\u5757>)*\n                          \u6307\u5B9A\u8981\u89E3\u6790\u7684\u6A21\u5757\uFF1B\u5982\u679C <\u6A21\u5757> \n                          \u4E3A ALL-MODULE-PATH\uFF0C\u5219\u4E3A\u6A21\u5757\u8DEF\u5F84\u4E2D\u7684\u6240\u6709\u6A21\u5757\n    --enable-preview      \u5141\u8BB8\u4EE3\u7801\u4F9D\u8D56\u4E8E\u6B64\u53D1\u884C\u7248\u7684\u9884\u89C8\u529F\u80FD\n    --startup <\u6587\u4EF6>      \u5BF9\u542F\u52A8\u5B9A\u4E49\u6267\u884C\u5355\u6B21\u66FF\u6362\n    --no-startup          \u4E0D\u8FD0\u884C\u542F\u52A8\u5B9A\u4E49\n    --feedback <\u6A21\u5F0F>     \u6307\u5B9A\u521D\u59CB\u53CD\u9988\u6A21\u5F0F\u3002\u8BE5\u6A21\u5F0F\u53EF\u4EE5\u662F\n                            \u9884\u5B9A\u4E49\u7684\uFF08silent\u3001concise\u3001normal \u6216 verbose\uFF09\uFF0C\n                            \u4E5F\u53EF\u662F\u4EE5\u524D\u7528\u6237\u5B9A\u4E49\u7684\n    -q                    \u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback concise\n    -s                    \u771F\u6B63\u65E0\u63D0\u793A\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback silent\n    -v                    \u8BE6\u7EC6\u53CD\u9988\u3002\u7B49\u540C\u4E8E\uFF1A--feedback verbose\n    -J<\u6807\u8BB0>              \u76F4\u63A5\u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FD0\u884C\u65F6\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -J\n    -R<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u8FDC\u7A0B\u8FD0\u884C\u65F6\u7CFB\u7EDF\u3002\n                            \u4E3A\u6BCF\u4E2A\u8FDC\u7A0B\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -R\n    -C<\u6807\u8BB0>              \u5C06 <\u6807\u8BB0> \u4F20\u9012\u5230\u7F16\u8BD1\u5668\u3002\n                            \u4E3A\u6BCF\u4E2A\u7F16\u8BD1\u5668\u6807\u8BB0\u6216\u6807\u8BB0\u53C2\u6570\u4F7F\u7528\u4E00\u4E2A -C\n    --version             \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u9000\u51FA\n    --show-version        \u8F93\u51FA\u7248\u672C\u4FE1\u606F\u5E76\u7EE7\u7EED\n    --help, -?, -h        \u8F93\u51FA\u6807\u51C6\u9009\u9879\u7684\u6B64\u63D0\u8981\u5E76\u9000\u51FA\n    --help-extra, -X      \u8F93\u51FA\u975E\u6807\u51C6\u9009\u9879\u7684\u5E2E\u52A9\u5E76\u9000\u51FA\n\n\u6587\u4EF6\u53C2\u6570\u53EF\u4EE5\u662F\u6587\u4EF6\u540D\uFF0C\u6216\u8005\u662F\u9884\u5B9A\u4E49\u7684\u6587\u4EF6\u540D\u4E4B\u4E00\uFF1ADEFAULT\u3001\nPRINTING \u6216 JAVASE\u3002\n\u52A0\u8F7D\u6587\u4EF6\u4E5F\u53EF\u4EE5\u662F "-"\uFF0C\u7528\u4E8E\u6307\u660E\u6807\u51C6\u8F93\u5165\uFF0C\u6CA1\u6709\u4EA4\u4E92\u5F0F I/O\u3002\n\n\u6709\u5173\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\uFF08--class-path\u3001\n--module-path \u548C --add-modules\uFF09\u7684\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u89C1\uFF1A\n\t/help context\n\n\u8DEF\u5F84\u5217\u51FA\u8981\u641C\u7D22\u7684\u76EE\u5F55\u548C\u6863\u6848\u3002\u5BF9\u4E8E Windows\uFF0C\u8BF7\u4F7F\u7528\n\u5206\u53F7 (;) \u6765\u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u8BF7\u4F7F\u7528\n\u5192\u53F7 (:) \u6765\u5206\u9694\u5404\u9879\u3002\n
 help.usage.x = \    --add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>      \u6307\u5B9A\u8981\u8003\u8651\u4ECE\u5176\u5B9A\u4E49\u6A21\u5757\u5BFC\u51FA\n                                         \u7684\u7A0B\u5E8F\u5305\n    --execution <\u89C4\u8303>                 \u6307\u5B9A\u66FF\u4EE3\u6267\u884C\u5F15\u64CE\u3002\n                                         \u5176\u4E2D <\u89C4\u8303> \u662F ExecutionControl \u89C4\u8303\u3002\n                                         \u6709\u5173\u89C4\u8303\u7684\u8BED\u6CD5\uFF0C\u8BF7\u53C2\u9605\u7A0B\u5E8F\u5305\n                                         jdk.jshell.spi \u7684\u6587\u6863\n    \n\u8FD9\u4E9B\u9009\u9879\u662F\u975E\u6807\u51C6\u9009\u9879\uFF0C\u5982\u6709\u66F4\u6539\uFF0C\u6055\u4E0D\u53E6\u884C\u901A\u77E5\u3002\n
@@ -267,8 +267,12 @@
 help.intro.summary = jshell \u5DE5\u5177\u7684\u7B80\u4ECB
 help.intro =\u4F7F\u7528 jshell \u5DE5\u5177\u53EF\u4EE5\u6267\u884C Java \u4EE3\u7801\uFF0C\u4ECE\u800C\u7ACB\u5373\u83B7\u53D6\u7ED3\u679C\u3002\n\u60A8\u53EF\u4EE5\u8F93\u5165 Java \u5B9A\u4E49\uFF08\u53D8\u91CF\u3001\u65B9\u6CD5\u3001\u7C7B\u7B49\u7B49\uFF09\uFF0C\u4F8B\u5982\uFF1Aint x = 8\n\u6216 Java \u8868\u8FBE\u5F0F\uFF0C\u4F8B\u5982\uFF1Ax + x\n\u6216 Java \u8BED\u53E5\u6216\u5BFC\u5165\u3002\n\u8FD9\u4E9B\u5C0F\u5757\u7684 Java \u4EE3\u7801\u79F0\u4E3A\u201C\u7247\u6BB5\u201D\u3002\n\n\u8FD9\u4E9B jshell \u5DE5\u5177\u547D\u4EE4\u8FD8\u53EF\u4EE5\u8BA9\u60A8\u4E86\u89E3\u548C\n\u63A7\u5236\u60A8\u6B63\u5728\u6267\u884C\u7684\u64CD\u4F5C\uFF0C\u4F8B\u5982\uFF1A/list\n\n\u6709\u5173\u547D\u4EE4\u7684\u5217\u8868\uFF0C\u8BF7\u6267\u884C\uFF1A/help
 
+help.keys.summary = \u7C7B\u4F3C readline \u7684\u8F93\u5165\u7F16\u8F91\u7684\u8BF4\u660E
+help.keys =jshell \u5DE5\u5177\u63D0\u4F9B\u884C\u7F16\u8F91\u652F\u6301\uFF0C\u5141\u8BB8\u60A8\u5728\u7247\u6BB5\u548C\u547D\u4EE4\u4E2D\n\u5BFC\u822A\u5E76\u8FDB\u884C\u7F16\u8F91\u3002\u60A8\u53EF\u4EE5\u7F16\u8F91\u5F53\u524D\u547D\u4EE4/\u7247\u6BB5\uFF0C\u4E5F\u53EF\u4EE5\n\u4ECE\u5386\u53F2\u8BB0\u5F55\u4E2D\u68C0\u7D22\u4EE5\u524D\u7684\u547D\u4EE4/\u7247\u6BB5\uFF0C\u8FDB\u884C\u7F16\u8F91\u5E76\u6267\u884C\u3002\n\u6B64\u652F\u6301\u7C7B\u4F3C\u4E8E readline/editline\uFF0C\u5177\u6709\u4E0E emacs \u76F8\u4F3C\u7684\n\u7B80\u5355\u7ED1\u5B9A\u3002\u8FD8\u6709\u7279\u5B9A\u4E8E jshell \u5DE5\u5177\u7684\u5173\u952E\u5B57\u5E8F\u5217\u3002\n\n\u884C\u548C\u5386\u53F2\u8BB0\u5F55\u5BFC\u822A\uFF1A\n\n\tReturn\n\t\t\u8F93\u5165\u5F53\u524D\u7247\u6BB5\n\t\u5DE6\u7BAD\u5934\u6216 Ctrl+B\n\t\t\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26\n\t\u53F3\u7BAD\u5934\u6216 Ctrl+F\n\t\t\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5B57\u7B26\n\t\u4E0A\u7BAD\u5934\u6216 Ctrl+P\n\t\t\u5411\u4E0A\u79FB\u52A8\u4E00\u884C\uFF0C\u5411\u540E\u6D4F\u89C8\u5386\u53F2\u8BB0\u5F55\n\t\u4E0B\u7BAD\u5934\u6216 Ctrl+N\n\t\t\u5411\u4E0B\u79FB\u52A8\u4E00\u884C\uFF0C\u5411\u524D\u6D4F\u89C8\u5386\u53F2\u8BB0\u5F55\n\tCtrl+A\n\t\t\u79FB\u81F3\u884C\u7684\u5F00\u5934\n\tCtrl+E\n\t\t\u79FB\u81F3\u884C\u7684\u7ED3\u5C3E\n\tMeta+B\n\t\t\u5411\u540E\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD\n\tMeta+F\n\t\t\u5411\u524D\u79FB\u52A8\u4E00\u4E2A\u5355\u8BCD\n\tCtrl+R\n\t\t\u5411\u540E\u641C\u7D22\u5386\u53F2\u8BB0\u5F55\n\n\n\u884C\u548C\u5386\u53F2\u8BB0\u5F55\u57FA\u672C\u7F16\u8F91\uFF1A\n\n\tMeta+Return \u6216 Ctrl+Return\uFF08\u6839\u636E\u5E73\u53F0\uFF09\n\t\t\u5728\u7247\u6BB5\u4E2D\u63D2\u5165\u65B0\u884C\n\tCtrl+_\uFF08\u4E0B\u5212\u7EBF\u53EF\u80FD\u9700\u8981 Shift \u952E\uFF09\u6216 Ctrl+X \u7136\u540E Ctrl+U\n\t\t\u64A4\u6D88\u7F16\u8F91 - \u91CD\u590D\u64CD\u4F5C\u53EF\u64A4\u6D88\u591A\u9879\u7F16\u8F91\n\tDelete\n\t\t\u5220\u9664\u5149\u6807\u5904\u6216\u5176\u540E\u9762\u7684\u5B57\u7B26\uFF0C\u5177\u4F53\u53D6\u51B3\u4E8E\u64CD\u4F5C\u7CFB\u7EDF\n\tBackspace\n\t\t\u5220\u9664\u5149\u6807\u524D\u9762\u7684\u5B57\u7B26\n\tCtrl+K\n\t\t\u5220\u9664\u4ECE\u5149\u6807\u5230\u884C\u7ED3\u5C3E\u7684\u6587\u672C\n\tMeta+D\n\t\t\u5220\u9664\u4ECE\u5149\u6807\u5230\u5355\u8BCD\u7ED3\u5C3E\u7684\u6587\u672C\n\tCtrl+W\n\t\t\u5220\u9664\u4ECE\u5149\u6807\u5230\u524D\u4E00\u4E2A\u7A7A\u683C\u7684\u6587\u672C\n\tCtrl+Y\n\t\t\u5C06\u6700\u8FD1\u5220\u9664\u7684\u6587\u672C\u7C98\u8D34\u5230\u884C\u4E2D\n\tMeta+Y\n\t\t\u5728\u6309 Ctrl+Y \u4E4B\u540E\uFF0C\u6309 Meta+Y \u53EF\u5FAA\u73AF\u6D4F\u89C8\u5148\u524D\u5220\u9664\u7684\u6587\u672C\n\tCtrl+X \u7136\u540E Ctrl+K\n\t\t\u5220\u9664\u6574\u4E2A\u7247\u6BB5\n\n\njshell \u5DE5\u5177\u7684\u5FEB\u6377\u65B9\u5F0F\uFF1A\n\n\t\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\uFF1A/help \u5FEB\u6377\u65B9\u5F0F\n\n\tTab\n\t\t\u5B8C\u6210 Java \u6807\u8BC6\u7B26\u6216 jshell \u547D\u4EE4\n\tShift+Tab \u7136\u540E v\n\t\t\u5C06\u8868\u8FBE\u5F0F\u8F6C\u6362\u4E3A\u53D8\u91CF\u58F0\u660E\n\tShift+Tab \u7136\u540E m\n\t\t\u5C06\u8BED\u53E5\u8F6C\u6362\u4E3A\u65B9\u6CD5\u58F0\u660E\n\tShift+Tab \u7136\u540E i\n\t\t\u4E3A\u6B64\u6807\u8BC6\u7B26\u6DFB\u52A0\u5BFC\u5165\n\t\n\n\u591A\u884C\u548C\u5386\u53F2\u8BB0\u5F55\u7F16\u8F91\uFF1A\n\n\tCtrl+L\n\t\t\u6E05\u9664\u5C4F\u5E55\u5E76\u91CD\u65B0\u8F93\u51FA\u7247\u6BB5\n\tCtrl+U\n\t\t\u7EC8\u6B62\u6574\u884C\n\tCtrl+T\n\t\t\u8F6C\u7F6E\u5B57\u7B26\n\tCtrl+X \u7136\u540E Ctrl+B\n\t\t\u5BFC\u822A\u5230\u5339\u914D\u7684\u65B9\u62EC\u53F7\u3001\u62EC\u53F7 ...\n\tCtrl+X \u7136\u540E =\n\t\t\u8FDB\u5165\u663E\u793A\u5F53\u524D\u5B57\u7B26\u4F4D\u7F6E\u7684\u6A21\u5F0F\n\tCtrl+X \u7136\u540E \
+Ctrl+O\n\t\t\u5728\u8986\u76D6\u5B57\u7B26\u4E0E\u63D2\u5165\u5B57\u7B26\u4E4B\u95F4\u5207\u6362\n\tMeta+C\n\t\t\u5355\u8BCD\u9996\u5B57\u6BCD\u5927\u5199\n\tMeta+U\n\t\t\u5C06\u5355\u8BCD\u8F6C\u6362\u4E3A\u5927\u5199\n\tMeta+L\n\t\t\u5C06\u5355\u8BCD\u8F6C\u6362\u4E3A\u5C0F\u5199\n\tMeta+0 \u81F3 Meta+9 \u7136\u540E\u952E\n\t\t\u91CD\u590D\u6307\u5B9A\u6B21\u6570\n\n\u4F8B\u5982 "Ctrl+A" \u8868\u793A\u6309\u4F4F Ctrl \u952E\u5E76\u6309 A\u3002\n\u5176\u4E2D "Meta" \u5728\u8BB8\u591A\u952E\u76D8\u4E0A\u662F "Alt"\u3002\n\u884C\u7F16\u8F91\u652F\u6301\u6E90\u81EA JLine 3\u3002
+
 help.shortcuts.summary = \u7247\u6BB5\u548C\u547D\u4EE4\u8F93\u5165\u63D0\u793A, \u4FE1\u606F\u8BBF\u95EE\u4EE5\u53CA\n\u81EA\u52A8\u4EE3\u7801\u751F\u6210\u7684\u6309\u952E\u8BF4\u660E
-help.shortcuts =\u652F\u6301\u7684\u5FEB\u6377\u65B9\u5F0F\u5305\u62EC\uFF1A\n\n<tab>\n\t\t\u5728\u8F93\u5165 Java \u6807\u8BC6\u7B26\u3001jshell \u5DE5\u5177\u547D\u4EE4\u6216 jshell\n\t\t\u5DE5\u5177\u547D\u4EE4\u53C2\u6570\uFF08\u5728\u67D0\u4E9B\u60C5\u51B5\u4E0B\uFF09\u7684\u524D\u51E0\u4E2A\u5B57\u6BCD\u540E\uFF0C\n\t\t\u6309 <tab> \u952E\u53EF\u4EE5\u5B8C\u6210\u8F93\u5165\u3002\n\t\t\u5982\u679C\u6709\u591A\u4E2A\u8F93\u5165\u63D0\u793A\uFF0C\u5219\u5C06\u663E\u793A\u53EF\u80FD\u7684\u8F93\u5165\u63D0\u793A\u3002\n\t\t\u5C06\u663E\u793A\u53EF\u7528\u7684\u9002\u7528\u6587\u6863\u3002\n\nShift-<tab> v\n\t\t\u5728\u5B8C\u6574\u7684\u8868\u8FBE\u5F0F\u540E\u9762\uFF0C\u6309\u4F4F <tab> \u7684\u540C\u65F6\u6309\u4E0B <shift>\uFF0C\n\t\t\u7136\u540E\u91CA\u653E\u5E76\u6309 "v"\uFF0C\u6B64\u65F6\u8868\u8FBE\u5F0F\u5C06\u8F6C\u6362\u4E3A\n\t\t\u5176\u7C7B\u578B\u57FA\u4E8E\u8868\u8FBE\u5F0F\u7C7B\u578B\u7684\u53D8\u91CF\u58F0\u660E\u3002\n\nShift-<tab> m\n\t\t\u5B8C\u6210\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u4E4B\u540E\uFF0C\u6309\u4F4F <tab> \u7684\u540C\u65F6\u6309\u4F4F <shift>\uFF0C\n\t\t\u7136\u540E\u91CA\u653E\u5E76\u6309\u4F4F "m"\uFF0C\u5219\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u5C06\u8F6C\u6362\u4E3A\n\t\t\u65B9\u6CD5\u58F0\u660E\u3002\u5982\u679C\u662F\u8868\u8FBE\u5F0F\uFF0C\u5219\u8FD4\u56DE\u7C7B\u578B\u57FA\u4E8E\u8868\u8FBE\u5F0F\u7684\n\t\t\u7C7B\u578B\u3002\n\nShift-<tab> i\n\t\t\u5728\u4E0D\u53EF\u89E3\u6790\u7684\u6807\u8BC6\u7B26\u540E\u9762\uFF0C\u6309\u4F4F <tab> \u7684\u540C\u65F6\u6309\u4E0B <shift>\uFF0C\n\t\t\u7136\u540E\u91CA\u653E\u5E76\u6309 "i"\uFF0C\u6B64\u65F6 jshell \u5DE5\u5177\u5C06\u4F1A\u5EFA\u8BAE\u53EF\u80FD\u7684\u5BFC\u5165\u9879\uFF0C\n\t\t\u8FD9\u5C06\u57FA\u4E8E\u6307\u5B9A\u7C7B\u8DEF\u5F84\u7684\u5185\u5BB9\u89E3\u6790\u6807\u8BC6\u7B26\u3002
+help.shortcuts =\u652F\u6301\u7684\u5FEB\u6377\u65B9\u5F0F\u5305\u62EC\uFF1A\n\n\tTab\n\t\t\u5728\u8F93\u5165 Java \u6807\u8BC6\u7B26\u3001jshell \u5DE5\u5177\u547D\u4EE4\u6216\n\t\t\u5728\u67D0\u4E9B\u60C5\u51B5\u4E0B\u8F93\u5165 jshell \u5DE5\u5177\u547D\u4EE4\u53C2\u6570\u7684\n\t\t\u524D\u51E0\u4E2A\u5B57\u6BCD\u540E\uFF0C\u6309 Tab \u952E\u53EF\u4EE5\u5B8C\u6210\u8F93\u5165\u3002\n\t\t\u5982\u679C\u6709\u591A\u4E2A\u8F93\u5165\u63D0\u793A\uFF0C\u5C06\u663E\u793A\u53EF\u80FD\u7684\u8F93\u5165\u63D0\u793A\u3002\n\t\t\u518D\u6309\u4E00\u6B21 Tab \u5C06\u663E\u793A\u53EF\u7528\u7684\u9002\u7528\u6587\u6863\u3002\n\n\tShift+Tab \u7136\u540E v\n\t\t\u5728\u5B8C\u6574\u7684\u8868\u8FBE\u5F0F\u540E\u9762\uFF0C\u6309\u4F4F Tab \u952E\u7684\u540C\u65F6\n\t\t\u6309\u4E0B Shift \u952E\uFF0C\u7136\u540E\u91CA\u653E\u5E76\u6309 "v" \u952E\uFF0C\u8868\u8FBE\u5F0F\n\t\t\u5C06\u8F6C\u6362\u4E3A\u7C7B\u578B\u57FA\u4E8E\u8868\u8FBE\u5F0F\u7C7B\u578B\u7684\u53D8\u91CF\u58F0\u660E\u3002\n\n\tShift+Tab \u7136\u540E m\n\t\t\u5B8C\u6210\u8868\u8FBE\u5F0F\u6216\u8BED\u53E5\u4E4B\u540E\uFF0C\u6309\u4F4F Tab \u952E\u7684\u540C\u65F6\n\t\t\u6309\u4E0B Shift \u952E\uFF0C\u7136\u540E\u91CA\u653E\u5E76\u6309\u4F4F "m" \u952E\uFF0C\u8868\u8FBE\u5F0F\u6216\n\t\t\u8BED\u53E5\u5C06\u8F6C\u6362\u4E3A\u65B9\u6CD5\u58F0\u660E\u3002\u5982\u679C\u662F\u8868\u8FBE\u5F0F\uFF0C\n\t\t\u5219\u65B9\u6CD5\u8FD4\u56DE\u7C7B\u578B\u57FA\u4E8E\u8868\u8FBE\u5F0F\u7684\u7C7B\u578B\u3002\n\n\tShift+Tab \u7136\u540E i\n\t\t\u5728\u4E0D\u53EF\u89E3\u6790\u7684\u6807\u8BC6\u7B26\u540E\u9762\uFF0C\u6309\u4F4F Tab \u952E\u7684\u540C\u65F6\n\t\t\u6309\u4E0B Shift \u952E\uFF0C\u7136\u540E\u91CA\u653E\u5E76\u6309 "i" \u952E\uFF0Cjshell \u5DE5\u5177\u4F1A\n\t\t\u63A8\u8350\u53EF\u80FD\u7684\u5BFC\u5165\u9879\uFF0C\u4EE5\u57FA\u4E8E\u6307\u5B9A\u7C7B\u8DEF\u5F84\u7684\u5185\u5BB9\u89E3\u6790\u6807\u8BC6\u7B26\u3002\n\t\t\u8F93\u5165\u4E0E\u6240\u9700\u5BFC\u5165\u5BF9\u5E94\u7684\u6570\u5B57\uFF0C\u6216\u6309 "0" \u952E\u4E0D\u6DFB\u52A0\u5BFC\u5165\u9879\u3002\n\n\u6709\u5173\u7279\u6B8A\u952E\u7684\u4FE1\u606F\uFF0C\u8BF7\u53C2\u9605\uFF1A/help \u952E
 
 help.context.summary = /env /reload \u548C /reset \u7684\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u7684\u8BF4\u660E
 help.context =\u8FD9\u4E9B\u9009\u9879\u7528\u4E8E\u914D\u7F6E\u8BC4\u4F30\u4E0A\u4E0B\u6587\u3002\u5B83\u4EEC\u53EF\u4EE5\u5728\u542F\u52A8 jshell \u5DE5\u5177\u65F6\n\u5728\u547D\u4EE4\u884C\u4E0A\u6307\u5B9A\uFF0C\u6216\u8005\u5728\u4F7F\u7528\u547D\u4EE4 /env\u3001/reload \u6216 /reset \n\u91CD\u65B0\u542F\u52A8 jshell \u5DE5\u5177\u65F6\u4F5C\u4E3A\u547D\u4EE4\u9009\u9879\u6307\u5B9A\u3002\n\n\u5B83\u4EEC\u662F\uFF1A\n\t--class-path <\u8DEF\u5F84>\n\t\t<\u8DEF\u5F84> \u662F\u7528\u4E8E\u641C\u7D22\u7C7B\u6587\u4EF6\u7684\u76EE\u5F55\u3001\n\t\tJAR \u6863\u6848\u548C ZIP \u6863\u6848\u7684\u5217\u8868\u3002\n\t\t\u5BF9\u4E8E Windows\uFF0C\u4F7F\u7528\u5206\u53F7 (;) \u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\n\t\t\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u4F7F\u7528\u5192\u53F7 (:) \u5206\u9694\u5404\u9879\u3002\n\t--module-path <\u8DEF\u5F84>...\n\t\t<\u8DEF\u5F84> \u662F\u7528\u4E8E\u641C\u7D22\u6A21\u5757\u7684\u76EE\u5F55\u3001\n\t\tJAR \u6863\u6848\u548C ZIP \u6863\u6848\u7684\u5217\u8868\u3002\n\t\t\u5BF9\u4E8E Windows\uFF0C\u4F7F\u7528\u5206\u53F7 (;) \u5206\u9694\u8DEF\u5F84\u4E2D\u7684\u9879\u3002\n\t\t\u5728\u5176\u4ED6\u5E73\u53F0\u4E0A\uFF0C\u4F7F\u7528\u5192\u53F7 (:) \u5206\u9694\u5404\u9879\u3002\n\t--add-modules <\u6A21\u5757\u540D\u79F0>[,<\u6A21\u5757\u540D\u79F0>...]\n\t\t\u9664\u4E86\u521D\u59CB\u6A21\u5757\u4E4B\u5916\u8981\u89E3\u6790\u7684\u6839\u6A21\u5757\u3002\n\t\t<\u6A21\u5757\u540D\u79F0> \u8FD8\u53EF\u4EE5\u662F ALL-DEFAULT\u3001ALL-SYSTEM\u3001\n\t\tALL-MODULE-PATH\u3002\n\t--add-exports <\u6A21\u5757>/<\u7A0B\u5E8F\u5305>=<\u76EE\u6807\u6A21\u5757>(,<\u76EE\u6807\u6A21\u5757>)*\n\t\t\u66F4\u65B0 <\u6A21\u5757> \u4EE5\u5C06 <\u7A0B\u5E8F\u5305> \u5BFC\u51FA\u5230 <\u76EE\u6807\u6A21\u5757>\uFF0C\n\t\t\u800C\u65E0\u8BBA\u6A21\u5757\u58F0\u660E\u5982\u4F55\u3002\n\t\t<\u76EE\u6807\u6A21\u5757> \u53EF\u4EE5\u662F ALL-UNNAMED \u4EE5\u5BFC\u51FA\u5230\u5168\u90E8\n\t\t\u672A\u547D\u540D\u6A21\u5757\u3002\u5728 jshell \u4E2D\uFF0C\u5982\u679C\u672A\u6307\u5B9A \n\t\t<\u76EE\u6807\u6A21\u5757> (no =)\uFF0C\u5219\u4F7F\u7528 ALL-UNNAMED\u3002\n\n\u9664\u975E\u8F93\u5165\u7684\u9009\u9879\u8986\u76D6\u4E86\u8BBE\u7F6E\uFF0C\u5426\u5219\u5728\u547D\u4EE4\u884C\u4E0A\u8F93\u5165\u7684\n\u6216\u8005\u4F7F\u7528\u4EE5\u524D\u7684 /reset\u3001/env \u6216 /reload \u547D\u4EE4\u63D0\u4F9B\u7684\n\u8BC4\u4F30\u4E0A\u4E0B\u6587\u9009\u9879\u5C06\u4F1A\u4FDD\u7559\u3002\n\n\u5728\u547D\u4EE4\u884C\u4E0A\uFF0C\u8FD9\u4E9B\u9009\u9879\u5FC5\u987B\u5177\u6709\u4E24\u4E2A\u77ED\u5212\u7EBF\uFF0C\u4F8B\u5982\uFF1A--module-path\n\u5728 jshell \u5DE5\u5177\u547D\u4EE4\u4E0A\uFF0C\u5B83\u4EEC\u5FC5\u987B\u5177\u6709\u4E00\u4E2A\u6216\u4E24\u4E2A\u77ED\u5212\u7EBF\uFF0C\u4F8B\u5982\uFF1A-module-path
@@ -277,7 +281,7 @@
 help.id =\u8F93\u5165\u7684\u6BCF\u4E2A\u4EE3\u7801\u7247\u6BB5\u6709\u81EA\u5DF1\u7684\u552F\u4E00\u7247\u6BB5 ID\u3002\u5373\u4F7F\u518D\u6B21\n\u8F93\u5165\u76F8\u540C\u7684\u7247\u6BB5\uFF0C\u5B83\u90FD\u4F1A\u5177\u6709\u65B0 ID\u3002\u5BF9\u4E8E\u666E\u901A\u7247\u6BB5\uFF0CID\n\u662F\u4E00\u4E2A\u589E\u957F\u7684\u7F16\u53F7\u3002\u5BF9\u4E8E\u5931\u8D25\u4E14\u51FA\u9519\u7684\u7247\u6BB5\uFF0C\u5176\u7247\u6BB5 ID\n\u4EE5 "e" \u5F00\u5934\u3002\u5BF9\u4E8E\u542F\u52A8\u4E2D\u7684\u7247\u6BB5\uFF0C\u5176 ID \u4EE5 "s" \u5F00\u5934\u3002\n\n\u7247\u6BB5 ID \u662F\u5728\u547D\u4EE4\u4E2D\u5F15\u7528\u7247\u6BB5\u7684\u4E00\u79CD\u65B9\u6CD5\u3002\u4F8B\u5982\uFF0C\n\u6B64\u547D\u4EE4\u5220\u9664 ID \u4E3A '14' \u7684\u7247\u6BB5\uFF1A\n\n\t/drop 14\n\n\u8981\u67E5\u770B\u4E00\u4E2A\u6216\u591A\u4E2A\u7247\u6BB5\u7684 ID\uFF0C\u8BF7\u4F7F\u7528 '/list' \u547D\u4EE4\u3002\u8981\u67E5\u770B\u6240\u6709\n\u7247\u6BB5\u7684 ID\uFF0C\u5305\u62EC\u5931\u8D25\u7247\u6BB5\u3001\u542F\u52A8\u7247\u6BB5\u548C\u8986\u76D6\u7247\u6BB5\uFF0C\u8BF7\u4F7F\u7528\n'/list -all' \u547D\u4EE4\u3002\n\n\u60A8\u8FD8\u53EF\u4EE5\u4F7F\u7528\u8FDE\u5B57\u7B26\u5206\u9694\u5F00\u59CB ID \u548C\u7ED3\u675F ID\uFF0C\n\u4EE5\u6B64\u6765\u5F15\u7528 ID \u8303\u56F4\u3002\u4F8B\u5982\uFF0C'1-4' \u4E0E '1 2 3 4' \u76F8\u540C\u3002\n\u5F15\u7528\u7247\u6BB5\u7684\u6240\u6709\u547D\u4EE4\u5C06\u83B7\u53D6 ID\u3001ID \u8303\u56F4\u4EE5\u53CA\u7247\u6BB5\u540D\u79F0\u7684\n\u5217\u8868\u4F5C\u4E3A\u53C2\u6570\u3002\u8FD9\u4E9B\u547D\u4EE4\u5305\u62EC\uFF1A/list\u3001/edit\u3001/drop\u3001/save\u3001/vars\u3001/methods\u3001\n/types \u548C /<id>\u3002\u4E00\u4E9B\u793A\u4F8B\uFF1A\n\n\t/edit 7-23\n\n\t/save s1-s4 3-8 foo 12 myfile\n\n\t/9-12 33\n\n\u5206\u522B\u53C2\u89C1 '/help /edit'\u3001'/help /save' \u548C '/help rerun'\u3002
 
 help.rerun.summary = \u91CD\u65B0\u8BC4\u4F30\u4EE5\u524D\u8F93\u5165\u7247\u6BB5\u7684\u65B9\u6CD5\u7684\u8BF4\u660E
-help.rerun =\u91CD\u65B0\u8BC4\u4F30\u4EE5\u524D\u8F93\u5165\u7684\u7247\u6BB5\u6709\u56DB\u79CD\u65B9\u6CD5\u3002\n\u91CD\u65B0\u8BC4\u4F30\u4E0A\u4E00\u4E2A\u7247\u6BB5\u4F7F\u7528\u7684\u65B9\u6CD5\u4E3A\uFF1A/!\n\u53EF\u4EE5\u4F7F\u7528\u659C\u6760\u52A0\u51CF\u53F7\u52A0\u6570\u5B57 n \u7684\u65B9\u5F0F\u6765\u91CD\u65B0\u8BC4\u4F30\u4E4B\u524D\u7684\u7B2C n \u4E2A\u7247\u6BB5\uFF0C\u4F8B\u5982\uFF1A/-4\n\u4F8B\u5982\uFF1A\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u53EF\u4EE5\u4F7F\u7528\u7247\u6BB5 ID \u6216 ID \u8303\u56F4\u6307\u5B9A\u8981\u91CD\u65B0\u8BC4\u4F30\u7684\u7247\u6BB5\u3002\nID \u8303\u56F4\u4F7F\u7528\u901A\u8FC7\u8FDE\u5B57\u7B26\u5206\u9694\u7684\u4E24\u4E2A ID \u8868\u793A\uFF0C\u4F8B\u5982\uFF1A3-17\n\u53EF\u4EE5\u4F7F\u7528\u542F\u52A8\u548C\u9519\u8BEF\u7247\u6BB5\uFF0C\u4F8B\u5982\uFF1As3-s9 \u6216 e1-e4\n\u53EF\u4EE5\u4F7F\u7528\u4EFB\u610F\u6570\u91CF\u7684 ID \u6216 ID \u8303\u56F4\uFF0C\u4F8B\u5982\uFF1A/3-7 s4 14-16 e2\n\u53E6\u8BF7\u53C2\u89C1 '/help id'\u3002\n\n\u6700\u540E\uFF0C\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165 ctrl-R \u540E\u8DDF\u8981\u641C\u7D22\u7684\u5B57\u7B26\u4E32\uFF0C\u5728\u5386\u53F2\u8BB0\u5F55\u4E2D\u5411\u540E\u641C\u7D22\u3002
+help.rerun =\u91CD\u65B0\u8BC4\u4F30\u4EE5\u524D\u8F93\u5165\u7684\u7247\u6BB5\u6709\u56DB\u79CD\u65B9\u6CD5\u3002\n\u53EF\u4F7F\u7528\u4EE5\u4E0B\u65B9\u6CD5\u91CD\u65B0\u8BC4\u4F30\u4E0A\u4E00\u4E2A\u7247\u6BB5\uFF1A/!\n\u53EF\u4EE5\u4F7F\u7528\u659C\u6760\u52A0\u51CF\u53F7\u52A0\u6570\u5B57 n \u7684\u65B9\u5F0F\u6765\u91CD\u65B0\u8BC4\u4F30\u4E4B\u524D\u7684\u7B2C n \u4E2A\u7247\u6BB5\uFF0C\u4F8B\u5982\uFF1A/-4\n\u4F8B\u5982\uFF1A\n\n\tjshell> 2 + 2\n\t$1 ==> 4\n\n\tjshell> /!\n\t2 + 2\n\t$2 ==> 4\n\n\tjshell> int z\n\tz ==> 0\n\n\tjshell> /-1\n\tint z;\n\tz ==> 0\n\n\tjshell> /-4\n\t2 + 2\n\t$5 ==> 4\n\n\u53EF\u4EE5\u4F7F\u7528\u7247\u6BB5 ID \u6216 ID \u8303\u56F4\u6307\u5B9A\u8981\u91CD\u65B0\u8BC4\u4F30\u7684\u7247\u6BB5\u3002\nID \u8303\u56F4\u4F7F\u7528\u8FDE\u5B57\u7B26\u5206\u9694\u7684\u4E24\u4E2A ID \u8868\u793A\uFF0C\u4F8B\u5982\uFF1A3-17\n\u53EF\u4EE5\u4F7F\u7528\u542F\u52A8\u548C\u9519\u8BEF\u7247\u6BB5\uFF0C\u4F8B\u5982\uFF1As3-s9 \u6216 e1-e4\n\u53EF\u4EE5\u4F7F\u7528\u4EFB\u610F\u6570\u91CF\u7684 ID \u6216 ID \u8303\u56F4\uFF0C\u4F8B\u5982\uFF1A/3-7 s4 14-16 e2\n\u53E6\u8BF7\u53C2\u89C1 '/help id'\u3002\n\n\u6700\u540E\uFF0C\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165 Ctrl+R \u540E\u8DDF\u8981\u641C\u7D22\u7684\u5B57\u7B26\u4E32\uFF0C\u5728\u5386\u53F2\u8BB0\u5F55\u4E2D\u5411\u540E\u641C\u7D22\u3002
 
 help.set._retain = '-retain' \u9009\u9879\u4FDD\u5B58\u8BBE\u7F6E\u4EE5\u4FBF\u5728\u5C06\u6765\u4F1A\u8BDD\u4E2D\u4F7F\u7528\u3002\n\u53EF\u4EE5\u5728 /set \u7684\u4EE5\u4E0B\u683C\u5F0F\u4E2D\u4F7F\u7528 -retain \u9009\u9879:\n\n\t/set editor -retain\n\t/set start -retain\n\t/set feedback -retain\n\t/set mode -retain\n\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u8FD9\u4E9B\u547D\u4EE4 -- \u4F8B\u5982, /help /set editor
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/hotspot/jtreg/compiler/inlining/StringConcatInfiniteLoop.java	Wed Jan 09 22:59:49 2019 +0100
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2018, Red Hat, Inc. 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 8214862
+ * @summary Multiple passes of PhaseRemoveUseless causes infinite loop to be optimized out
+ *
+ * @run main/othervm -XX:-TieredCompilation -Xcomp -XX:CompileOnly=StringConcatInfiniteLoop::test -XX:CompileCommand=dontinline,*StringBuilder::* StringConcatInfiniteLoop
+ *
+ */
+
+public class StringConcatInfiniteLoop {
+    public static void main(String[] args) {
+        StringBuilder sb = new StringBuilder();
+        test(sb, "foo", "bar", true);
+    }
+
+    private static void test(Object v, String s1, String s2, boolean flag) {
+        if (flag) {
+            return;
+        }
+        int i = 0;
+        for (; i < 10; i++);
+        if (i == 10) {
+            v = null;
+        }
+        StringBuilder sb = new StringBuilder(s1);
+        sb.append(s2);
+        while (v == null);
+    }
+
+    private static class A {
+    }
+}
--- a/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAt.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAt.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -24,7 +24,7 @@
 /* @test TestAllocateOldGenAt.java
  * @key gc
  * @summary Test to check allocation of Java Heap with AllocateOldGenAt option
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  */
--- a/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAtError.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAtError.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -24,7 +24,7 @@
 /* @test TestAllocateOldGenAtError.java
  * @key gc
  * @summary Test to check correct handling of non-existent directory passed to AllocateOldGenAt option
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  */
--- a/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAtMultiple.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestAllocateOldGenAtMultiple.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -24,7 +24,7 @@
 /* @test TestAllocateOldGenAtMultiple.java
  * @key gc
  * @summary Test to check allocation of Java Heap with AllocateOldGenAt option. Has multiple sub-tests to cover different code paths.
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @library /test/lib
  * @modules java.base/jdk.internal.misc
  * @requires vm.bits == "64"
--- a/test/hotspot/jtreg/gc/nvdimm/TestHumongousObjectsOnNvdimm.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestHumongousObjectsOnNvdimm.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -25,7 +25,7 @@
  * @test TestHumongousObjectsOnNvdimm
  * @summary Check that humongous objects reside in nv-dimm
  * @library /test/lib /
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @build sun.hotspot.WhiteBox
  * @run driver ClassFileInstaller sun.hotspot.WhiteBox
  * @run main TestHumongousObjectsOnNvdimm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions
--- a/test/hotspot/jtreg/gc/nvdimm/TestOldObjectsOnNvdimm.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestOldObjectsOnNvdimm.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -24,7 +24,7 @@
 /*
  * @test TestOldObjectsOnNvdimm
  * @summary Check that objects in old generation reside in dram.
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run driver ClassFileInstaller sun.hotspot.WhiteBox
--- a/test/hotspot/jtreg/gc/nvdimm/TestYoungObjectsOnDram.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/hotspot/jtreg/gc/nvdimm/TestYoungObjectsOnDram.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -24,7 +24,7 @@
 /*
  * @test TestYoungObjectsOnDram
  * @summary Check that objects in young generation reside in dram.
- * @requires vm.gc=="null"
+ * @requires vm.gc=="null" & os.family != "aix"
  * @library /test/lib
  * @build sun.hotspot.WhiteBox
  * @run driver ClassFileInstaller sun.hotspot.WhiteBox
--- a/test/jdk/java/lang/String/AlignIndent.java	Tue Jan 08 17:37:57 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-/*
- * Copyright (c) 2018, 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
- * @summary Unit tests for String#align and String#indent
- * @run main AlignIndent
- */
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-public class AlignIndent {
-    static final List<String> ENDS = List.of("", "\n", "   \n", "\n\n", "\n\n\n");
-    static final List<String> MIDDLES = List.of(
-            "",
-            "xyz",
-            "   xyz",
-            "      xyz",
-            "xyz   ",
-            "   xyz   ",
-            "      xyz   ",
-            "xyz\u2022",
-            "   xyz\u2022",
-            "xyz\u2022   ",
-            "   xyz\u2022   ",
-            "   // comment"
-    );
-
-    public static void main(String[] args) {
-        test1();
-        test2();
-        test3();
-        test4();
-    }
-
-    /*
-     * Test String#align() functionality.
-     */
-    static void test1() {
-        for (String prefix : ENDS) {
-            for (String suffix : ENDS) {
-                for (String middle : MIDDLES) {
-                    {
-                        String input = prefix + "   abc   \n" + middle + "\n   def   \n" + suffix;
-                        String output = input.align();
-
-                        String[] inLines = input.split("\\R");
-                        String[] outLines = output.split("\\R");
-
-                        String[] inLinesBody = getBody(inLines);
-
-                        if (inLinesBody.length < outLines.length) {
-                            report("String::align()", "Result has more lines than expected", input, output);
-                        } else if (inLinesBody.length > outLines.length) {
-                            report("String::align()", "Result has fewer lines than expected", input, output);
-                        }
-
-                        int indent = -1;
-                        for (int i = 0; i < inLinesBody.length; i++) {
-                            String in = inLinesBody[i];
-                            String out = outLines[i];
-                            if (!out.isBlank()) {
-                                int offset = in.indexOf(out);
-                                if (offset == -1) {
-                                    report("String::align()", "Portions of line are missing", input, output);
-                                }
-                                if (indent == -1) {
-                                    indent = offset;
-                                } else if (offset != indent) {
-                                    report("String::align()",
-                                            "Inconsistent indentation in result", input, output);
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /*
-     * Test String#align(int n) functionality.
-     */
-    static void test2() {
-        for (int adjust : new int[] {-8, -7, -4, -3, -2, -1, 0, 1, 2, 3, 4, 7, 8}) {
-            for (String prefix : ENDS) {
-                for (String suffix : ENDS) {
-                    for (String middle : MIDDLES) {
-                        {
-                            String input = prefix + "   abc   \n" + middle + "\n   def   \n" + suffix;
-                            String output = input.align(adjust);
-                            String expected = input.align().indent(adjust);
-
-                            if (!output.equals(expected)) {
-                                report("String::align(int n)",
-                                        "Result inconsistent with align().indent(n)", expected, output);
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /*
-     * Test String#indent(int n) functionality.
-     */
-    static void test3() {
-        for (int adjust : new int[] {-8, -7, -4, -3, -2, -1, 0, 1, 2, 3, 4, 7, 8}) {
-            for (String prefix : ENDS) {
-                for (String suffix : ENDS) {
-                    for (String middle : MIDDLES) {
-                        String input = prefix + "   abc   \n" + middle + "\n   def   \n" + suffix;
-                        String output = input.indent(adjust);
-
-                        Stream<String> stream = input.lines();
-                        if (adjust > 0) {
-                            final String spaces = " ".repeat(adjust);
-                            stream = stream.map(s -> s.isBlank() ? s : spaces + s);
-                        } else if (adjust < 0) {
-                            stream = stream.map(s -> s.substring(Math.min(-adjust, indexOfNonWhitespace(s))));
-                        }
-                        String expected = stream.collect(Collectors.joining("\n", "", "\n"));
-
-                        if (!output.equals(expected)) {
-                            report("String::indent(int n)",
-                                    "Result indentation not as expected", expected, output);
-                        }
-                    }
-                }
-            }
-        }
-    }
-
-    /*
-     * JDK-8212694: Using Raw String Literals with align() and Integer.MIN_VALUE causes out of memory error
-     */
-    static void test4() {
-        try {
-            String str = "\n    A\n".align(Integer.MIN_VALUE);
-        } catch (OutOfMemoryError ex) {
-            System.err.println("align(Integer.MIN_VALUE) not clipping indentation");
-            throw new RuntimeException();
-        }
-    }
-
-    public static int indexOfNonWhitespace(String s) {
-        int left = 0;
-        while (left < s.length()) {
-            char ch = s.charAt(left);
-            if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) {
-                break;
-            }
-            left++;
-        }
-        return left;
-    }
-
-
-    private static String[] getBody(String[] inLines) {
-        int from = -1, to = -1;
-        for (int i = 0; i < inLines.length; i++) {
-            String line = inLines[i];
-            if (!line.isBlank()) {
-                if (from == -1) {
-                    from = i;
-                }
-                to = i + 1;
-            }
-        }
-        return Arrays.copyOfRange(inLines, from, to);
-    }
-
-    /*
-     * Report difference in result.
-     */
-    static void report(String test, String message, String input, String output) {
-        System.err.println("Testing " + test + ": " + message);
-        System.err.println();
-        System.err.println("Input: length = " + input.length());
-        System.err.println("_".repeat(40));
-        System.err.print(input.replaceAll(" ", "."));
-        System.err.println("_".repeat(40));
-        System.err.println();
-        System.err.println("Output: length = " + output.length());
-        System.err.println("_".repeat(40));
-        System.err.print(output.replaceAll(" ", "."));
-        System.err.println("_".repeat(40));
-        throw new RuntimeException();
-    }
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/jdk/java/lang/String/Indent.java	Wed Jan 09 22:59:49 2019 +0100
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2018, 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
+ * @summary Unit tests for String#indent
+ * @run main Indent
+ */
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+public class Indent {
+    static final List<String> ENDS = List.of("", "\n", "   \n", "\n\n", "\n\n\n");
+    static final List<String> MIDDLES = List.of(
+            "",
+            "xyz",
+            "   xyz",
+            "      xyz",
+            "xyz   ",
+            "   xyz   ",
+            "      xyz   ",
+            "xyz\u2022",
+            "   xyz\u2022",
+            "xyz\u2022   ",
+            "   xyz\u2022   ",
+            "   // comment"
+    );
+
+    public static void main(String[] args) {
+        test1();
+    }
+
+    /*
+     * Test String#indent(int n) functionality.
+     */
+    static void test1() {
+        for (int adjust : new int[] {-8, -7, -4, -3, -2, -1, 0, 1, 2, 3, 4, 7, 8}) {
+            for (String prefix : ENDS) {
+                for (String suffix : ENDS) {
+                    for (String middle : MIDDLES) {
+                        String input = prefix + "   abc   \n" + middle + "\n   def   \n" + suffix;
+                        String output = input.indent(adjust);
+
+                        Stream<String> stream = input.lines();
+                        if (adjust > 0) {
+                            final String spaces = " ".repeat(adjust);
+                            stream = stream.map(s -> s.isBlank() ? s : spaces + s);
+                        } else if (adjust < 0) {
+                            stream = stream.map(s -> s.substring(Math.min(-adjust, indexOfNonWhitespace(s))));
+                        }
+                        String expected = stream.collect(Collectors.joining("\n", "", "\n"));
+
+                        if (!output.equals(expected)) {
+                            report("String::indent(int n)",
+                                    "Result indentation not as expected", expected, output);
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    public static int indexOfNonWhitespace(String s) {
+        int left = 0;
+        while (left < s.length()) {
+            char ch = s.charAt(left);
+            if (ch != ' ' && ch != '\t' && !Character.isWhitespace(ch)) {
+                break;
+            }
+            left++;
+        }
+        return left;
+    }
+
+
+    private static String[] getBody(String[] inLines) {
+        int from = -1, to = -1;
+        for (int i = 0; i < inLines.length; i++) {
+            String line = inLines[i];
+            if (!line.isBlank()) {
+                if (from == -1) {
+                    from = i;
+                }
+                to = i + 1;
+            }
+        }
+        return Arrays.copyOfRange(inLines, from, to);
+    }
+
+    /*
+     * Report difference in result.
+     */
+    static void report(String test, String message, String input, String output) {
+        System.err.println("Testing " + test + ": " + message);
+        System.err.println();
+        System.err.println("Input: length = " + input.length());
+        System.err.println("_".repeat(40));
+        System.err.print(input.replaceAll(" ", "."));
+        System.err.println("_".repeat(40));
+        System.err.println();
+        System.err.println("Output: length = " + output.length());
+        System.err.println("_".repeat(40));
+        System.err.print(output.replaceAll(" ", "."));
+        System.err.println("_".repeat(40));
+        throw new RuntimeException();
+    }
+}
--- a/test/jdk/java/lang/constant/ClassDescTest.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/java/lang/constant/ClassDescTest.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -42,6 +42,7 @@
 
 /**
  * @test
+ * @bug 8215510
  * @compile ClassDescTest.java
  * @run testng ClassDescTest
  * @summary unit tests for java.lang.constant.ClassDesc
@@ -215,7 +216,7 @@
     }
 
     public void testBadClassDescs() {
-        List<String> badDescriptors = List.of("II", "I;", "Q", "L",
+        List<String> badDescriptors = List.of("II", "I;", "Q", "L", "",
                                               "java.lang.String", "[]", "Ljava/lang/String",
                                               "Ljava.lang.String;", "java/lang/String");
 
--- a/test/jdk/java/lang/constant/NameValidationTest.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/java/lang/constant/NameValidationTest.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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,6 +23,7 @@
 
 /**
  * @test
+ * @bug 8215510
  * @compile NameValidationTest.java
  * @run testng NameValidationTest
  * @summary unit tests for verifying member names
@@ -45,8 +46,8 @@
     private static final String[] badMemberNames = new String[] {"xx.xx", "zz;zz", "[l", "aa/aa", "<cinit>"};
     private static final String[] goodMemberNames = new String[] {"<clinit>", "<init>", "3", "~", "$", "qq"};
 
-    private static final String[] badClassNames = new String[] {"zz;zz", "[l", "aa/aa"};
-    private static final String[] goodClassNames = new String[] {"3", "~", "$", "qq", ".", "a.a"};
+    private static final String[] badClassNames = new String[] {"zz;zz", "[l", "aa/aa", ".", "a..b"};
+    private static final String[] goodClassNames = new String[] {"3", "~", "$", "qq", "a.a"};
 
     public void testMemberNames() {
         DirectMethodHandleDesc mh = MethodHandleDesc.of(Kind.VIRTUAL, CD_String, "isEmpty", "()Z");
--- a/test/jdk/java/lang/constant/boottest/java.base/java/lang/constant/ConstantUtilsTest.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/java/lang/constant/boottest/java.base/java/lang/constant/ConstantUtilsTest.java	Wed Jan 09 22:59:49 2019 +0100
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2019, 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
@@ -43,14 +43,14 @@
 
     public void testValidateMemberName() {
         try {
-            ConstantUtils.validateMemberName(null);
+            ConstantUtils.validateMemberName(null, false);
             fail("");
         } catch (NullPointerException e) {
             // good
         }
 
         try {
-            ConstantUtils.validateMemberName("");
+            ConstantUtils.validateMemberName("", false);
             fail("");
         } catch (IllegalArgumentException e) {
             // good
@@ -59,7 +59,7 @@
         List<String> badNames = List.of(".", ";", "[", "/", "<", ">");
         for (String n : badNames) {
             try {
-                ConstantUtils.validateMemberName(n);
+                ConstantUtils.validateMemberName(n, true);
                 fail(n);
             } catch (IllegalArgumentException e) {
                 // good
--- a/test/jdk/tools/launcher/ExecutionEnvironment.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/tools/launcher/ExecutionEnvironment.java	Wed Jan 09 22:59:49 2019 +0100
@@ -241,17 +241,26 @@
      */
     @Test
     void testVmSelection() {
+        boolean haveSomeVM = false;
         if (haveClientVM) {
-            TestResult tr = doExec(javaCmd, "-client", "-version");
-            if (!tr.matches(".*Client VM.*")) {
-                flagError(tr, "the expected vm -client did not launch");
-            }
+            tryVmOption("-client", ".*Client VM.*");
+            haveSomeVM = true;
         }
         if (haveServerVM) {
-            TestResult tr = doExec(javaCmd, "-server", "-version");
-            if (!tr.matches(".*Server VM.*")) {
-                flagError(tr, "the expected vm -server did not launch");
-            }
+            tryVmOption("-server", ".*Server VM.*");
+            haveSomeVM = true;
+        }
+        if (!haveSomeVM) {
+            String msg = "Don't have a known VM";
+            System.err.println(msg);
+            throw new RuntimeException(msg);
+        }
+    }
+
+    private void tryVmOption(String opt, String expected) {
+        TestResult tr = doExec(javaCmd, opt, "-version");
+        if (!tr.matches(expected)) {
+            flagError(tr, "the expected vm " + opt + " did not launch");
         }
     }
 
--- a/test/jdk/tools/launcher/Test7029048.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/tools/launcher/Test7029048.java	Wed Jan 09 22:59:49 2019 +0100
@@ -59,13 +59,10 @@
     private static final File srcLibjvmSo = new File(srcServerDir, LIBJVM);
 
     private static final File dstLibDir = new File("lib");
-    private static final File dstLibArchDir =
-            new File(dstLibDir, getJreArch());
-
-    private static final File dstServerDir = new File(dstLibArchDir, "server");
+    private static final File dstServerDir = new File(dstLibDir, "server");
     private static final File dstServerLibjvm = new File(dstServerDir, LIBJVM);
 
-    private static final File dstClientDir = new File(dstLibArchDir, "client");
+    private static final File dstClientDir = new File(dstLibDir, "client");
     private static final File dstClientLibjvm = new File(dstClientDir, LIBJVM);
 
     private static final Map<String, String> env = new HashMap<>();
--- a/test/jdk/tools/launcher/TestHelper.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/jdk/tools/launcher/TestHelper.java	Wed Jan 09 22:59:49 2019 +0100
@@ -184,8 +184,7 @@
             return jvmFile.exists();
         } else {
             File vmDir = new File(JAVA_LIB, type);
-            File vmArchDir = new File(vmDir, getJreArch());
-            File jvmFile = new File(vmArchDir, LIBJVM);
+            File jvmFile = new File(vmDir, LIBJVM);
             return jvmFile.exists();
         }
     }
--- a/test/langtools/jdk/jshell/ReplToolTesting.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/langtools/jdk/jshell/ReplToolTesting.java	Wed Jan 09 22:59:49 2019 +0100
@@ -22,6 +22,7 @@
  */
 
 import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.io.OutputStream;
 import java.io.PrintStream;
 import java.util.ArrayList;
@@ -126,6 +127,14 @@
         cmdin.setInput(s);
     }
 
+    public void closeCommandInput() {
+        try {
+            cmdin.close();
+        } catch (IOException ex) {
+            throw new IllegalStateException(ex);
+        }
+    }
+
     public final static Pattern idPattern = Pattern.compile("^\\s+(\\d+)");
     public Consumer<String> assertList() {
         return s -> {
@@ -755,6 +764,8 @@
 
     class WaitingTestingInputStream extends TestingInputStream {
 
+        private boolean closed;
+
         @Override
         synchronized void setInput(String s) {
             super.setInput(s);
@@ -764,7 +775,7 @@
         synchronized void waitForInput() {
             boolean interrupted = false;
             try {
-                while (available() == 0) {
+                while (available() == 0 && !closed) {
                     try {
                         wait();
                     } catch (InterruptedException e) {
@@ -790,6 +801,12 @@
             waitForInput();
             return super.read(b, off, len);
         }
+
+        @Override
+        public synchronized void close() throws IOException {
+            closed = true;
+            notify();
+        }
     }
 
     class PromptedCommandOutputStream extends OutputStream {
--- a/test/langtools/jdk/jshell/ToolBasicTest.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/langtools/jdk/jshell/ToolBasicTest.java	Wed Jan 09 22:59:49 2019 +0100
@@ -130,6 +130,18 @@
         }
     }
 
+    public void testCtrlD() {
+        test(false, new String[]{"--no-startup"},
+                a -> {
+                    if (!a) {
+                        closeCommandInput();
+                    } else {
+                        throw new IllegalStateException();
+                    }
+                }
+        );
+    }
+
     private final Object lock = new Object();
     private PrintWriter out;
     private boolean isStopped;
--- a/test/langtools/jdk/jshell/ToolSimpleTest.java	Tue Jan 08 17:37:57 2019 -0800
+++ b/test/langtools/jdk/jshell/ToolSimpleTest.java	Wed Jan 09 22:59:49 2019 +0100
@@ -76,22 +76,6 @@
     }
 
     @Test
-    public void testRawString() {
-        test(false, new String[]{"--enable-preview", "--no-startup"},
-                (a) -> assertCommand(a, "String s = `abc`", "s ==> \"abc\""),
-                (a) -> assertCommand(a, "String a = `abc", ""),
-                (a) -> assertCommand(a, "def`", "a ==> \"abc\\ndef\""),
-                (a) -> assertCommand(a, "String bj = ``Hi, `Bob` and ```Jim```.``", "bj ==> \"Hi, `Bob` and ```Jim```.\""),
-                (a) -> assertCommand(a, "String hw = ````````````", ""),
-                (a) -> assertCommand(a, "Hello, world", ""),
-                (a) -> assertCommand(a, "````````````;", "hw ==> \"\\nHello, world\\n\""),
-                (a) -> assertCommand(a, "String uc = `\\u000d\\u000a`", "uc ==> \"\\\\u000d\\\\u000a\""),
-                (a) -> assertCommand(a, "String es = `\\(.\\)\\1`", "es ==> \"\\\\(.\\\\)\\\\1\""),
-                (a) -> assertCommand(a, "String end = `abc`+`def`+`ghi`", "end ==> \"abcdefghi\"")
-        );
-    }
-
-    @Test
     public void testSwitchExpression() {
         test(false, new String[]{"--enable-preview", "--no-startup"},
                 (a) -> assertCommand(a, "enum Day {MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY }", "|  created enum Day"),
--- a/test/langtools/tools/javac/RawStringLiteralLang.java	Tue Jan 08 17:37:57 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
- * Copyright (c) 2018, 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
- * @summary Unit tests for Raw String Literal language changes
- * @compile --enable-preview -source 13 -encoding utf8 RawStringLiteralLang.java
- * @run main/othervm --enable-preview RawStringLiteralLang
- */
-
-public class RawStringLiteralLang {
-    public static void main(String... args) {
-        test1();
-        test2();
-    }
-
-    /*
-     * Test raw string functionality.
-     */
-    static void test1() {
-        EQ(`abc`, "abc");
-        EQ(`can't`, "can\'t");
-        EQ(``can`t``, "can`t");
-        EQ(`can\\'t`, "can\\\\'t");
-        EQ(``can\\`t``, "can\\\\`t");
-        EQ(`\t`, "\\t");
-        EQ(`•`, "\u2022");
-
-        LENGTH("abc``def", 8);
-        EQ("abc`\u0020`def", "abc` `def");
-    }
-
-    /*
-     * Test multi-line string functionality.
-     */
-    static void test2() {
-        EQ(`abc
-def
-ghi`, "abc\ndef\nghi");
-        EQ(`abc
-def
-ghi
-`, "abc\ndef\nghi\n");
-        EQ(`
-abc
-def
-ghi`, "\nabc\ndef\nghi");
-        EQ(`
-abc
-def
-ghi
-`, "\nabc\ndef\nghi\n");
-    }
-
-    /*
-     * Raise an exception if the string is not the expected length.
-     */
-    static void LENGTH(String rawString, int length) {
-        if (rawString == null || rawString.length() != length) {
-            System.err.println("Failed LENGTH");
-            System.err.println(rawString + " " + length);
-            throw new RuntimeException("Failed LENGTH");
-        }
-    }
-
-    /*
-     * Raise an exception if the two input strings are not equal.
-     */
-    static void EQ(String input, String expected) {
-        if (input == null || expected == null || !expected.equals(input)) {
-            System.err.println("Failed EQ");
-            System.err.println();
-            System.err.println("Input:");
-            System.err.println(input.replaceAll(" ", "."));
-            System.err.println();
-            System.err.println("Expected:");
-            System.err.println(expected.replaceAll(" ", "."));
-            throw new RuntimeException();
-        }
-    }
-}
--- a/test/langtools/tools/javac/RawStringLiteralLangAPI.java	Tue Jan 08 17:37:57 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,182 +0,0 @@
-/*
- * Copyright (c) 2018, 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
- * @summary Unit tests for Raw String Literal language changes
- * @library /tools/lib
- * @modules jdk.compiler/com.sun.tools.javac.api
- *          jdk.compiler/com.sun.tools.javac.main
- * @build toolbox.ToolBox toolbox.JavacTask
- * @run main RawStringLiteralLangAPI
- */
-
-import toolbox.JavacTask;
-import toolbox.JavaTask;
-import toolbox.Task;
-import toolbox.ToolBox;
-
-public class RawStringLiteralLangAPI {
-    private static ToolBox TOOLBOX = new ToolBox();
-
-    public static void main(String... args) {
-        test1();
-        test2();
-        test3();
-        test4();
-    }
-
-    /*
-     * Check that correct/incorrect syntax is properly detected
-     */
-    enum Test {
-        t0(false, "`*`*`"),
-        t1(false, "`\\u2022`\\u2022`"),
-        t2(false, "``*`*`"),
-        t3(false, "``\\u2022`\\u2022`"),
-        t4(false, "`*`*``"),
-        t5(false, "`\\u2022`\\u2022``"),
-        t6(true, "``*`*``"),
-        t7(true, "``\\u2022`\\u2022``"),
-        t8(true, "`*``*`"),
-        t9(true, "`\\u2022``\\u2022`"),
-        ;
-
-        Test(boolean pass, String string) {
-            this.pass = pass;
-            this.string = string;
-        }
-
-        boolean pass;
-        String string;
-    }
-    static void test1() {
-        for (Test t : Test.values()) {
-            String code =
-                    "public class RawStringLiteralTest {\n" +
-                            "    public static void main(String... args) {\n" +
-                            "        String xxx = " + t.string + ";\n" +
-                            "    }\n" +
-                            "}\n";
-            if (t.pass) {
-                compPass(code);
-            } else {
-                compFail(code);
-            }
-        }
-    }
-
-    /*
-     * Check that misuse of \u0060 is properly detected
-     */
-    static void test2() {
-        compFail("public class BadDelimiter {\n" +
-                "    public static void main(String... args) {\n" +
-                "        String xxx = \\u0060`abc`;\n" +
-                "    }\n" +
-                "}\n");
-    }
-
-    /*
-     * Check edge cases of raw string literal as last token
-     */
-    static void test3() {
-        compFail("public class RawStringLiteralTest {\n" +
-                "    public static void main(String... args) {\n" +
-                "        String xxx = `abc`");
-        compFail("public class RawStringLiteralTest {\n" +
-                "    public static void main(String... args) {\n" +
-                "        String xxx = `abc");
-        compFail("public class RawStringLiteralTest {\n" +
-                "    public static void main(String... args) {\n" +
-                "        String xxx = `abc\u0000");
-    }
-
-    /*
-     * Check line terminator translation
-     */
-    static void test4() {
-        String[] terminators = new String[] { "\n", "\r\n", "\r" };
-        for (String terminator : terminators) {
-            String code = "public class LineTerminatorTest {" + terminator +
-                          "    public static void main(String... args) {" + terminator +
-                          "        String s =" + terminator +
-                          "`" + terminator +
-                          "abc" + terminator +
-                          "`;" + terminator +
-                          "        System.out.println(s.equals(\"\\nabc\\n\"));" + terminator +
-                          "    }" + terminator +
-                          "}" + terminator;
-            new JavacTask(TOOLBOX)
-                    .sources(code)
-                    .classpath(".")
-                    .options("--enable-preview", "-source", "13")
-                    .run();
-            String output = new JavaTask(TOOLBOX)
-                    .vmOptions("--enable-preview")
-                    .classpath(".")
-                    .classArgs("LineTerminatorTest")
-                    .run()
-                    .writeAll()
-                    .getOutput(Task.OutputKind.STDOUT);
-
-            if (!output.contains("true")) {
-                throw new RuntimeException("Error detected");
-            }
-        }
-    }
-
-    /*
-     * Test source for successful compile.
-     */
-    static void compPass(String source) {
-        String output = new JavacTask(TOOLBOX)
-                .sources(source)
-                .classpath(".")
-                .options("--enable-preview", "-source", "13", "-encoding", "utf8")
-                .run()
-                .writeAll()
-                .getOutput(Task.OutputKind.DIRECT);
-
-        if (output.contains("compiler.err")) {
-            throw new RuntimeException("Error detected");
-        }
-    }
-
-    /*
-     * Test source for unsuccessful compile and specific error.
-     */
-    static void compFail(String source)  {
-        String errors = new JavacTask(TOOLBOX)
-                .sources(source)
-                .classpath(".")
-                .options("-XDrawDiagnostics", "--enable-preview", "-source", "13", "-encoding", "utf8")
-                .run(Task.Expect.FAIL)
-                .writeAll()
-                .getOutput(Task.OutputKind.DIRECT);
-
-        if (!errors.contains("compiler.err")) {
-            throw new RuntimeException("No error detected");
-        }
-    }
-}
--- a/test/langtools/tools/javac/diags/examples/RawStringLiteral.java	Tue Jan 08 17:37:57 2019 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * Copyright (c) 2018, 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.
- */
-
-// key: compiler.err.unicode.backtick
-// key: compiler.misc.feature.raw.string.literals
-// key: compiler.warn.preview.feature.use.plural
-// options: --enable-preview -source 13 -Xlint:preview
-
-class RawStringLiteral {
-    String m() {
-        return `abc` + \u0060`def`;
-    }
-}
-
-