From 6d199252f6ec0dfa97210542e1853a95ddcf7662 Mon Sep 17 00:00:00 2001 From: Keith McGuigan Date: Fri, 15 Apr 2011 10:17:23 -0400 Subject: [PATCH 001/147] 6519228: JDWP Spec: need references at capability canRequestMonitorEvents for JDWP 1.6 Monitor* events Add descriptions in event type table Reviewed-by: ohair, jjh, acorn, dcubed --- jdk/make/jpda/jdwp/jdwp.spec | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/jdk/make/jpda/jdwp/jdwp.spec b/jdk/make/jpda/jdwp/jdwp.spec index 86bce315226..3f28a918ef4 100644 --- a/jdk/make/jpda/jdwp/jdwp.spec +++ b/jdk/make/jpda/jdwp/jdwp.spec @@ -2190,7 +2190,8 @@ JDWP "Java(tm) Debug Wire Protocol" (Out (byte eventKind "Event kind to request. " "See JDWP.EventKind " - "for a complete list of events that can be requested. " + "for a complete list of events that can be requested; " + "some events may require a capability in order to be requested. " ) (byte suspendPolicy "What threads are suspended when this event occurs? " @@ -2732,6 +2733,8 @@ JDWP "Java(tm) Debug Wire Protocol" (Alt MonitorContendedEnter=JDWP.EventKind.MONITOR_CONTENDED_ENTER "Notification that a thread in the target VM is attempting " "to enter a monitor that is already acquired by another thread. " + "Requires canRequestMonitorEvents capability - see " + "CapabilitiesNew. " "

Since JDWP version 1.6. " (int requestID @@ -2743,6 +2746,8 @@ JDWP "Java(tm) Debug Wire Protocol" (Alt MonitorContendedEntered=JDWP.EventKind.MONITOR_CONTENDED_ENTERED "Notification of a thread in the target VM is entering a monitor " "after waiting for it to be released by another thread. " + "Requires canRequestMonitorEvents capability - see " + "CapabilitiesNew. " "

Since JDWP version 1.6. " (int requestID @@ -2753,6 +2758,8 @@ JDWP "Java(tm) Debug Wire Protocol" ) (Alt MonitorWait=JDWP.EventKind.MONITOR_WAIT "Notification of a thread about to wait on a monitor object. " + "Requires canRequestMonitorEvents capability - see " + "CapabilitiesNew. " "

Since JDWP version 1.6. " (int requestID @@ -2764,6 +2771,8 @@ JDWP "Java(tm) Debug Wire Protocol" ) (Alt MonitorWaited=JDWP.EventKind.MONITOR_WAITED "Notification that a thread in the target VM has finished waiting on " + "Requires canRequestMonitorEvents capability - see " + "CapabilitiesNew. " "a monitor object. " "

Since JDWP version 1.6. " @@ -3050,9 +3059,9 @@ JDWP "Java(tm) Debug Wire Protocol" (Constant METHOD_EXIT =41 ) (Constant METHOD_EXIT_WITH_RETURN_VALUE =42 ) (Constant MONITOR_CONTENDED_ENTER =43 ) - (Constant MONITOR_CONTENDED_ENTERED =44 ) - (Constant MONITOR_WAIT =45 ) - (Constant MONITOR_WAITED =46 ) + (Constant MONITOR_CONTENDED_ENTERED =44 ) + (Constant MONITOR_WAIT =45 ) + (Constant MONITOR_WAITED =46 ) (Constant VM_START =90 ) (Constant VM_INIT =90 "obsolete - was used in jvmdi") (Constant VM_DEATH =99 ) From fbb8954b523bed4e3ef1d95c131868911a0270d3 Mon Sep 17 00:00:00 2001 From: Bhavesh Patel Date: Mon, 18 Apr 2011 15:39:16 -0700 Subject: [PATCH 002/147] 6758050: javadoc handles nested generic types incorrectly Reviewed-by: jjg --- .../formats/html/HtmlDocletWriter.java | 2 +- .../TestNestedGenerics.java | 78 +++++++++++++++++++ .../pkg/NestedGenerics.java | 31 ++++++++ 3 files changed, 110 insertions(+), 1 deletion(-) create mode 100644 langtools/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java create mode 100644 langtools/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java index 80cc01bd099..a06e75fe411 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java @@ -2120,7 +2120,7 @@ public class HtmlDocletWriter extends HtmlDocWriter { } } text = (isplaintext) ? - refMemName : getCode() + refMemName + getCodeEnd(); + refMemName : getCode() + Util.escapeHtmlChars(refMemName) + getCodeEnd(); result.append(getDocLink(LinkInfoImpl.CONTEXT_SEE_TAG, containing, refMem, (label.length() == 0)? text: label, false)); diff --git a/langtools/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java b/langtools/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java new file mode 100644 index 00000000000..6d44bd64692 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6758050 + * @summary Test HTML output for nested generic types. + * @author bpatel + * @library ../lib/ + * @build JavadocTester TestNestedGenerics + * @run main TestNestedGenerics + */ + +public class TestNestedGenerics extends JavadocTester { + + //Test information. + private static final String BUG_ID = "6758050"; + + //Javadoc arguments. + private static final String[] ARGS = new String[]{ + "-d", BUG_ID, "-source", "1.5", "-sourcepath", SRC_DIR, + "pkg" + }; + + //Input for string search tests. + private static final String[][] TEST = { + {BUG_ID + FS + "pkg" + FS + "NestedGenerics.html", + "

Contains foo" + + "(java.util.Map<A, java.util.Map<A, A>>)
" + } + }; + private static final String[][] NEGATED_TEST = NO_TEST; + + /** + * The entry point of the test. + * @param args the array of command line arguments. + */ + public static void main(String[] args) { + TestNestedGenerics tester = new TestNestedGenerics(); + run(tester, ARGS, TEST, NEGATED_TEST); + tester.printSummary(); + } + + /** + * {@inheritDoc} + */ + public String getBugId() { + return BUG_ID; + } + + /** + * {@inheritDoc} + */ + public String getBugName() { + return getClass().getName(); + } +} diff --git a/langtools/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java b/langtools/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java new file mode 100644 index 00000000000..181084cf706 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg; + +import java.util.Map; + +/** Contains {@link #foo} */ +public class NestedGenerics { + public static void foo(Map> map) {} +} From 2da9c4454aa3ad663a0ad83a692d2ca65ff0da10 Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Mon, 18 Apr 2011 21:44:03 -0700 Subject: [PATCH 003/147] 7027900: (fs) glob syntax under-specified Clarify how leading dots are treated in nio2 glob Reviewed-by: alanb --- jdk/src/share/classes/java/nio/file/FileSystem.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jdk/src/share/classes/java/nio/file/FileSystem.java b/jdk/src/share/classes/java/nio/file/FileSystem.java index 97dfc4649fc..9091f4aae6e 100644 --- a/jdk/src/share/classes/java/nio/file/FileSystem.java +++ b/jdk/src/share/classes/java/nio/file/FileSystem.java @@ -391,6 +391,13 @@ public abstract class FileSystem * character is used to separate the subpatterns. Groups cannot be nested. *

* + *
  • Leading period/dot characters in file name are + * treated as regular characters in match operations. For example, + * the {@code "*"} glob pattern matches file name {@code ".login"}. + * The {@link Files#isHidden} method may be used to test whether a file + * is considered hidden. + *

  • + * *
  • All other characters match themselves in an implementation * dependent manner. This includes characters representing any {@link * FileSystem#getSeparator name-separators}.

  • From 06c379e859be3678183feec8ba4b680fe0b4172f Mon Sep 17 00:00:00 2001 From: Pavel Porvatov Date: Tue, 19 Apr 2011 10:11:58 +0400 Subject: [PATCH 004/147] 7036025: java.security.AccessControlException when creating JFileChooser in signed applet Reviewed-by: malenkov --- .../classes/sun/swing/WindowsPlacesBar.java | 9 ++- .../JFileChooser/7036025/bug7036025.java | 62 +++++++++++++++++++ .../JFileChooser/7036025/security.policy | 5 ++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 jdk/test/javax/swing/JFileChooser/7036025/bug7036025.java create mode 100644 jdk/test/javax/swing/JFileChooser/7036025/security.policy diff --git a/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java b/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java index 9972b671d75..a05259e5978 100644 --- a/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java +++ b/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java @@ -29,6 +29,8 @@ import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.*; +import java.security.AccessController; +import java.security.PrivilegedAction; import javax.swing.*; import javax.swing.border.*; @@ -79,7 +81,12 @@ public class WindowsPlacesBar extends JToolBar setBackground(bgColor); FileSystemView fsv = fc.getFileSystemView(); - files = (File[])ShellFolder.get("fileChooserShortcutPanelFolders"); + files = AccessController.doPrivileged(new PrivilegedAction() { + public File[] run() { + return (File[]) ShellFolder.get("fileChooserShortcutPanelFolders"); + } + }); + buttons = new JToggleButton[files.length]; buttonGroup = new ButtonGroup(); for (int i = 0; i < files.length; i++) { diff --git a/jdk/test/javax/swing/JFileChooser/7036025/bug7036025.java b/jdk/test/javax/swing/JFileChooser/7036025/bug7036025.java new file mode 100644 index 00000000000..dd7b003a01f --- /dev/null +++ b/jdk/test/javax/swing/JFileChooser/7036025/bug7036025.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + @bug 7036025 + @summary java.security.AccessControlException when creating JFileChooser in signed applet + @author Pavel Porvatov + @run main/othervm/policy=security.policy bug7036025 +*/ + +import javax.swing.*; +import java.io.File; + +public class bug7036025 { + public static final String DIR = "c:/temp"; + + public static void main(String[] args) throws Exception { + String systemLookAndFeelClassName = UIManager.getSystemLookAndFeelClassName(); + + if (!systemLookAndFeelClassName.toLowerCase().contains("windows")) { + System.out.println("The test is only for Windows OS."); + + return; + } + + File file = new File(DIR); + + if (!file.exists()) { + if (!file.mkdir()) { + throw new RuntimeException("Cannot create " + DIR); + } + + file.deleteOnExit(); + } + + UIManager.setLookAndFeel(systemLookAndFeelClassName); + + new JFileChooser(file); + + System.out.println("Test passed for LookAndFeel " + UIManager.getLookAndFeel().getName()); + } +} diff --git a/jdk/test/javax/swing/JFileChooser/7036025/security.policy b/jdk/test/javax/swing/JFileChooser/7036025/security.policy new file mode 100644 index 00000000000..57e0bd2af52 --- /dev/null +++ b/jdk/test/javax/swing/JFileChooser/7036025/security.policy @@ -0,0 +1,5 @@ +grant { + permission java.io.FilePermission "C:\\temp\\*", "read"; + permission java.io.FilePermission "C:\\temp", "read,write,delete"; + permission java.util.PropertyPermission "*", "read"; +}; From 89d504b32f618ac6beecf8aa773fe94d09c1f5bb Mon Sep 17 00:00:00 2001 From: Anthony Petrov Date: Tue, 19 Apr 2011 14:44:09 +0400 Subject: [PATCH 005/147] 7036669: Simplify revalidating component hierarchy with multiple validate roots Introduce Component.revalidate() method Reviewed-by: art, alexp --- jdk/src/share/classes/java/awt/Component.java | 40 ++++++ .../plaf/basic/BasicSplitPaneDivider.java | 6 +- .../awt/Component/Revalidate/Revalidate.java | 122 ++++++++++++++++++ 3 files changed, 165 insertions(+), 3 deletions(-) create mode 100644 jdk/test/java/awt/Component/Revalidate/Revalidate.java diff --git a/jdk/src/share/classes/java/awt/Component.java b/jdk/src/share/classes/java/awt/Component.java index 5b572797d84..f577887abe6 100644 --- a/jdk/src/share/classes/java/awt/Component.java +++ b/jdk/src/share/classes/java/awt/Component.java @@ -2944,6 +2944,46 @@ public abstract class Component implements ImageObserver, MenuContainer, } } + /** + * Revalidates the component hierarchy up to the nearest validate root. + *

    + * This method first invalidates the component hierarchy starting from this + * component up to the nearest validate root. Afterwards, the component + * hierarchy is validated starting from the nearest validate root. + *

    + * This is a convenience method supposed to help application developers + * avoid looking for validate roots manually. Basically, it's equivalent to + * first calling the {@link #invalidate()} method on this component, and + * then calling the {@link #validate()} method on the nearest validate + * root. + * + * @see Container#isValidateRoot + * @since 1.7 + */ + public void revalidate() { + synchronized (getTreeLock()) { + invalidate(); + + Container root = getContainer(); + if (root == null) { + // There's no parents. Just validate itself. + validate(); + } else { + while (!root.isValidateRoot()) { + if (root.getContainer() == null) { + // If there's no validate roots, we'll validate the + // topmost container + break; + } + + root = root.getContainer(); + } + + root.validate(); + } + } + } + /** * Creates a graphics context for this component. This method will * return null if this component is currently not diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java index 42c88e02823..70b0bffaac7 100644 --- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java @@ -154,7 +154,7 @@ public class BasicSplitPaneDivider extends Container setBackground(UIManager.getColor("SplitPane.background")); } - private void revalidate() { + private void revalidateSplitPane() { invalidate(); if (splitPane != null) { splitPane.revalidate(); @@ -315,7 +315,7 @@ public class BasicSplitPaneDivider extends Container setCursor((orientation == JSplitPane.HORIZONTAL_SPLIT) ? Cursor.getPredefinedCursor(Cursor.E_RESIZE_CURSOR) : Cursor.getPredefinedCursor(Cursor.S_RESIZE_CURSOR)); - revalidate(); + revalidateSplitPane(); } else if (e.getPropertyName() == JSplitPane. ONE_TOUCH_EXPANDABLE_PROPERTY) { @@ -376,7 +376,7 @@ public class BasicSplitPaneDivider extends Container add(rightButton); } } - revalidate(); + revalidateSplitPane(); } diff --git a/jdk/test/java/awt/Component/Revalidate/Revalidate.java b/jdk/test/java/awt/Component/Revalidate/Revalidate.java new file mode 100644 index 00000000000..670c374f87d --- /dev/null +++ b/jdk/test/java/awt/Component/Revalidate/Revalidate.java @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + @test + @bug 7036669 + @summary Test Component.revalidate() method + @author anthony.petrov@oracle.com: area=awt.component + @run main Revalidate +*/ + +import java.awt.*; + +public class Revalidate { + private static Frame frame = new Frame(); + private static Panel panel = new Panel() { + @Override + public boolean isValidateRoot() { + return true; + } + }; + private static Button button = new Button("Test"); + + private static void sleep() { + try { Thread.sleep(500); } catch (Exception e) {} + } + + private static void printState(String str) { + System.out.println(str + " isValid state: "); + System.out.println(" frame: " + frame.isValid()); + System.out.println(" panel: " + panel.isValid()); + System.out.println(" button: " + button.isValid()); + } + + private static void fail(String msg) { + frame.dispose(); + throw new RuntimeException(msg); + } + + private static void check(String n, Component c, boolean v) { + if (c.isValid() != v) { + fail(n + ".isValid() = " + c.isValid() + "; expected: " + v); + } + } + private static void check(String str, boolean f, boolean p, boolean b) { + printState(str); + + check("frame", frame, f); + check("panel", panel, p); + check("button", button, b); + } + + public static void main(String[] args) { + // setup + frame.add(panel); + panel.add(button); + frame.setBounds(200, 200, 300, 200); + frame.setVisible(true); + sleep(); + check("Upon showing", true, true, true); + + button.setBounds(1, 1, 30, 30); + sleep(); + check("button.setBounds():", true, false, false); + + button.revalidate(); + sleep(); + check("button.revalidate():", true, true, true); + + button.setBounds(1, 1, 30, 30); + sleep(); + check("button.setBounds():", true, false, false); + + panel.revalidate(); + sleep(); + // because the panel's validate root is actually OK + check("panel.revalidate():", true, false, false); + + button.revalidate(); + sleep(); + check("button.revalidate():", true, true, true); + + panel.setBounds(2, 2, 125, 130); + sleep(); + check("panel.setBounds():", false, false, true); + + button.revalidate(); + sleep(); + check("button.revalidate():", false, true, true); + + panel.setBounds(3, 3, 152, 121); + sleep(); + check("panel.setBounds():", false, false, true); + + panel.revalidate(); + sleep(); + check("panel.revalidate():", true, true, true); + + // cleanup + frame.dispose(); + } +} From 95e14306e7acad0eff101b884cf09ba937c2d14c Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore Date: Tue, 19 Apr 2011 13:57:25 +0100 Subject: [PATCH 006/147] 7036906: Scope: CompoundScope.getElements() doesn't pass scope filter to subscopes CompoundScope.getElements() is not filtering elements according to the ScopeFilter argument Reviewed-by: jjg --- .../com/sun/tools/javac/code/Scope.java | 2 +- .../scope/7017664/CompoundScopeTest.java | 49 ++++++++++++++----- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java b/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java index 066715f582b..db96649e99a 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Scope.java @@ -649,7 +649,7 @@ public class Scope { public Iterator iterator() { return new CompoundScopeIterator(subScopes) { Iterator nextIterator(Scope s) { - return s.getElements().iterator(); + return s.getElements(sf).iterator(); } }; } diff --git a/langtools/test/tools/javac/scope/7017664/CompoundScopeTest.java b/langtools/test/tools/javac/scope/7017664/CompoundScopeTest.java index a6e1065670e..eda1836ef30 100644 --- a/langtools/test/tools/javac/scope/7017664/CompoundScopeTest.java +++ b/langtools/test/tools/javac/scope/7017664/CompoundScopeTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 7017664 + * @bug 7017664 7036906 * @summary Basher for CompoundScopes */ @@ -127,8 +127,17 @@ public class CompoundScopeTest { } } log("testing scope: " + root); - checkElems(root); - checkShadowed(root); + checkElems(root, null); + checkElems(root, new OddFilter()); + checkShadowed(root, null); + checkShadowed(root, new OddFilter()); + } + } + + class OddFilter implements Filter { + public boolean accepts(Symbol s) { + Name numPart = s.name.subName(1, s.name.length()); + return Integer.parseInt(numPart.toString()) % 2 != 0; } } @@ -165,15 +174,20 @@ public class CompoundScopeTest { * Check that CompoundScope.getElements() correctly visits all symbols * in all subscopes (in the correct order) */ - void checkElems(CompoundScope cs) { - List allSymbols = elems; + void checkElems(CompoundScope cs, Filter sf) { int count = 0; - for (Symbol s : cs.getElements()) { + ListBuffer found = ListBuffer.lb(); + List allSymbols = sf == null ? + elems : + filter(elems, sf); + int expectedCount = allSymbols.length(); + for (Symbol s : sf == null ? cs.getElements() : cs.getElements(sf)) { checkSameSymbols(s, allSymbols.head); allSymbols = allSymbols.tail; + found.append(s); count++; } - if (count != elems.size()) { + if (count != expectedCount) { error("CompoundScope.getElements() did not returned enough symbols"); } } @@ -182,22 +196,35 @@ public class CompoundScopeTest { * Check that CompoundScope.getElements() correctly visits all symbols * with a given name in all subscopes (in the correct order) */ - void checkShadowed(CompoundScope cs) { + void checkShadowed(CompoundScope cs, Filter sf) { for (Map.Entry> shadowedEntry : shadowedMap.entrySet()) { int count = 0; - List shadowed = shadowedEntry.getValue(); + List shadowed = sf == null ? + shadowedEntry.getValue() : + filter(shadowedEntry.getValue(), sf); + int expectedCount = shadowed.length(); Name name = shadowedEntry.getKey(); - for (Symbol s : cs.getElementsByName(name)) { + for (Symbol s : sf == null ? cs.getElementsByName(name) : cs.getElementsByName(name, sf)) { checkSameSymbols(s, shadowed.head); shadowed = shadowed.tail; count++; } - if (count != shadowedEntry.getValue().size()) { + if (count != expectedCount) { error("CompoundScope.lookup() did not returned enough symbols for name " + name); } } } + List filter(List elems, Filter sf) { + ListBuffer res = ListBuffer.lb(); + for (Symbol s : elems) { + if (sf.accepts(s)) { + res.append(s); + } + } + return res.toList(); + } + void checkSameSymbols(Symbol found, Symbol req) { if (found != req) { error("Symbol mismatch - found : " + found + ":" + found.hashCode() + "\n" + From d097a2cab142e19c36b1d8c4ca5455eb125ba719 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev Date: Tue, 19 Apr 2011 18:52:49 +0400 Subject: [PATCH 007/147] 7036733: Regression : NullPointerException when scrolling horizontally on AWT List Reviewed-by: dcherepanov --- .../classes/sun/awt/X11/XListPeer.java | 5 +- .../awt/List/ScrollOutside/ScrollOut.java | 84 +++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 jdk/test/java/awt/List/ScrollOutside/ScrollOut.java diff --git a/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java index c8799a1ad07..838899e49b8 100644 --- a/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java +++ b/jdk/src/solaris/classes/sun/awt/X11/XListPeer.java @@ -1479,16 +1479,19 @@ class XListPeer extends XComponentPeer implements ListPeer, XScrollbarClient { int h = height - (SCROLLBAR_AREA + (2 * MARGIN)); hsb.setValue(hsb.getValue() + x); + int options = PAINT_ITEMS | PAINT_HSCROLL; + Rectangle source = null; Point distance = null; if (x < 0) { source = new Rectangle(MARGIN + SPACE, MARGIN, w + x, h); distance = new Point(-x, 0); + options |= COPY_AREA; } else if (x > 0) { source = new Rectangle(MARGIN + SPACE + x, MARGIN, w - x, h); distance = new Point(-x, 0); + options |= COPY_AREA; } - int options = COPY_AREA | PAINT_ITEMS | PAINT_HSCROLL; repaint(vsb.getValue(), lastItemDisplayed(), options, source, distance); } diff --git a/jdk/test/java/awt/List/ScrollOutside/ScrollOut.java b/jdk/test/java/awt/List/ScrollOutside/ScrollOut.java new file mode 100644 index 00000000000..21b8f848229 --- /dev/null +++ b/jdk/test/java/awt/List/ScrollOutside/ScrollOut.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2011 Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + @test + @bug 7036733 + @summary Regression : NullPointerException when scrolling horizontally on AWT List + @author Andrei Dmitriev area=awt-list + @library ../../regtesthelpers + @build Util + @run main ScrollOut +*/ + +import java.awt.*; +import java.awt.event.*; +import sun.awt.SunToolkit; +import test.java.awt.regtesthelpers.Util; + +public class ScrollOut +{ + public static final void main(String args[]) + { + final Frame frame = new Frame(); + final List list = new List(); + Robot robot = null; + + for (int i = 0; i < 5; i++){ + list.add("abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz"); + } + + frame.add(list); + + frame.pack(); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + + ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); + + try{ + robot = new Robot(); + }catch(AWTException e){ + throw new RuntimeException(e); + } + + //Drag from center to the outside on left + Point from = new Point(list.getLocationOnScreen().x + list.getWidth()/2, + list.getLocationOnScreen().y + list.getHeight()/2); + Point to = new Point(list.getLocationOnScreen().x - 30, + from.y); + + ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); + Util.drag(robot, from, to, InputEvent.BUTTON1_MASK); + + ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); + + //Drag from center to the outside on up + to = new Point(from.x, + list.getLocationOnScreen().y - 50); + + ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); + Util.drag(robot, from, to, InputEvent.BUTTON1_MASK); + + }//End init() +} From 21a2cb6922e271ea395936f683de6bd5ab8855cc Mon Sep 17 00:00:00 2001 From: Mike Duigou Date: Tue, 19 Apr 2011 10:47:33 -0700 Subject: [PATCH 008/147] 7030579: Extra words in documentation of ListIterator may cause confusion Reviewed-by: dholmes, alanb --- jdk/src/share/classes/java/util/ListIterator.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jdk/src/share/classes/java/util/ListIterator.java b/jdk/src/share/classes/java/util/ListIterator.java index cad6d9bae2f..92859173a56 100644 --- a/jdk/src/share/classes/java/util/ListIterator.java +++ b/jdk/src/share/classes/java/util/ListIterator.java @@ -173,9 +173,9 @@ public interface ListIterator extends Iterator { /** * Inserts the specified element into the list (optional operation). - * The element is inserted immediately before the next element that - * would be returned by {@link #next}, if any, and after the next - * element that would be returned by {@link #previous}, if any. (If the + * The element is inserted immediately before the element that + * would be returned by {@link #next}, if any, and after the element + * that would be returned by {@link #previous}, if any. (If the * list contains no elements, the new element becomes the sole element * on the list.) The new element is inserted before the implicit * cursor: a subsequent call to {@code next} would be unaffected, and a From 7a7cba032440b099e1b48ae660ea65a5421984b2 Mon Sep 17 00:00:00 2001 From: Shinya Ogino Date: Tue, 19 Apr 2011 20:58:46 -0700 Subject: [PATCH 009/147] 7025070: man page localization broken in jdk7 Reviewed-by: mfang --- jdk/src/linux/doc/man/ja/appletviewer.1 | 38 +- jdk/src/linux/doc/man/ja/apt.1 | 93 +- jdk/src/linux/doc/man/ja/extcheck.1 | 40 +- jdk/src/linux/doc/man/ja/idlj.1 | 681 ++-- jdk/src/linux/doc/man/ja/jar.1 | 326 +- jdk/src/linux/doc/man/ja/jarsigner.1 | 1990 ++++----- jdk/src/linux/doc/man/ja/java.1 | 322 +- jdk/src/linux/doc/man/ja/javac.1 | 980 +++-- jdk/src/linux/doc/man/ja/javadoc.1 | 3569 +++++------------ jdk/src/linux/doc/man/ja/javah.1 | 79 +- jdk/src/linux/doc/man/ja/javap.1 | 110 +- jdk/src/linux/doc/man/ja/javaws.1 | 246 +- jdk/src/linux/doc/man/ja/jconsole.1 | 95 +- jdk/src/linux/doc/man/ja/jdb.1 | 202 +- jdk/src/linux/doc/man/ja/jhat.1 | 89 +- jdk/src/linux/doc/man/ja/jinfo.1 | 88 +- jdk/src/linux/doc/man/ja/jmap.1 | 93 +- jdk/src/linux/doc/man/ja/jps.1 | 124 +- jdk/src/linux/doc/man/ja/jrunscript.1 | 128 +- jdk/src/linux/doc/man/ja/jsadebugd.1 | 51 +- jdk/src/linux/doc/man/ja/jstack.1 | 83 +- jdk/src/linux/doc/man/ja/jstat.1 | 636 ++- jdk/src/linux/doc/man/ja/jstatd.1 | 120 +- jdk/src/linux/doc/man/ja/jvisualvm.1 | 126 + jdk/src/linux/doc/man/ja/keytool.1 | 1946 +++++---- jdk/src/linux/doc/man/ja/native2ascii.1 | 42 +- jdk/src/linux/doc/man/ja/orbd.1 | 142 +- jdk/src/linux/doc/man/ja/pack200.1 | 260 +- jdk/src/linux/doc/man/ja/policytool.1 | 54 +- jdk/src/linux/doc/man/ja/rmic.1 | 142 +- jdk/src/linux/doc/man/ja/rmid.1 | 160 +- jdk/src/linux/doc/man/ja/rmiregistry.1 | 49 +- jdk/src/linux/doc/man/ja/schemagen.1 | 84 +- jdk/src/linux/doc/man/ja/serialver.1 | 62 +- jdk/src/linux/doc/man/ja/servertool.1 | 70 +- jdk/src/linux/doc/man/ja/tnameserv.1 | 114 +- jdk/src/linux/doc/man/ja/unpack200.1 | 142 +- jdk/src/linux/doc/man/ja/wsgen.1 | 76 +- jdk/src/linux/doc/man/ja/wsimport.1 | 367 +- jdk/src/linux/doc/man/ja/xjc.1 | 217 +- .../doc/sun/man/man1/ja/appletviewer.1 | 38 +- jdk/src/solaris/doc/sun/man/man1/ja/apt.1 | 93 +- .../solaris/doc/sun/man/man1/ja/extcheck.1 | 40 +- jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 | 681 ++-- jdk/src/solaris/doc/sun/man/man1/ja/jar.1 | 326 +- .../solaris/doc/sun/man/man1/ja/jarsigner.1 | 1990 ++++----- jdk/src/solaris/doc/sun/man/man1/ja/java.1 | 322 +- jdk/src/solaris/doc/sun/man/man1/ja/javac.1 | 980 +++-- jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 | 3569 +++++------------ jdk/src/solaris/doc/sun/man/man1/ja/javah.1 | 79 +- jdk/src/solaris/doc/sun/man/man1/ja/javap.1 | 110 +- jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 | 246 +- .../solaris/doc/sun/man/man1/ja/jconsole.1 | 95 +- jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 | 202 +- jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 | 89 +- jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 | 88 +- jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 | 93 +- jdk/src/solaris/doc/sun/man/man1/ja/jps.1 | 124 +- .../solaris/doc/sun/man/man1/ja/jrunscript.1 | 128 +- .../solaris/doc/sun/man/man1/ja/jsadebugd.1 | 51 +- jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 | 83 +- jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 | 636 ++- jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 | 120 +- .../solaris/doc/sun/man/man1/ja/jvisualvm.1 | 126 + jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 | 1946 +++++---- .../doc/sun/man/man1/ja/native2ascii.1 | 42 +- jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 | 260 +- .../solaris/doc/sun/man/man1/ja/policytool.1 | 54 +- jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 | 160 +- .../solaris/doc/sun/man/man1/ja/rmiregistry.1 | 49 +- .../solaris/doc/sun/man/man1/ja/schemagen.1 | 84 +- .../solaris/doc/sun/man/man1/ja/serialver.1 | 62 +- .../solaris/doc/sun/man/man1/ja/servertool.1 | 70 +- .../solaris/doc/sun/man/man1/ja/tnameserv.1 | 114 +- .../solaris/doc/sun/man/man1/ja/unpack200.1 | 142 +- jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 | 76 +- .../solaris/doc/sun/man/man1/ja/wsimport.1 | 367 +- jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 | 217 +- 80 files changed, 13128 insertions(+), 15344 deletions(-) create mode 100644 jdk/src/linux/doc/man/ja/jvisualvm.1 create mode 100644 jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 diff --git a/jdk/src/linux/doc/man/ja/appletviewer.1 b/jdk/src/linux/doc/man/ja/appletviewer.1 index e7b128d6869..fcbcc19a43b 100644 --- a/jdk/src/linux/doc/man/ja/appletviewer.1 +++ b/jdk/src/linux/doc/man/ja/appletviewer.1 @@ -19,54 +19,44 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "02 Jun 2010" +.TH appletviewer 1 "14 Apr 2011" .LP -.SH "名前" -appletviewer \- Java アプレットビューア -.LP -.RS 3 - +.SH "̾" +appletviewer \- Java ץåȥӥ塼 .LP .LP -\f3appletviewer\fP コマンドは Web ブラウザの外でアプレットを実行させます。 +\f3appletviewer\fP ޥɤ Web ֥饦γǥץåȤ¹Ԥޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .LP \f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ... .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3appletviewer\fP コマンドは \f2urls\fP に指定されたドキュメントあるいはリソースと接続して、そのドキュメントが参照するそれぞれのアプレットを独自のウィンドウで表示します。注: \f2urls\fP によって参照されたドキュメントが、\f2OBJECT\fP、\f2EMBED\fP、または \f2APPLET\fP タグでどのアプレットも参照していない場合、\f3appletviewer\fP は何も行いません。\f3appletviewer\fP でサポートされる HTML タグの詳細については、 +\f3appletviewer\fP ޥɤ \f2urls\fP ˻ꤵ줿ɥȤ뤤ϥ꥽³ơΥɥȤȤ뤽줾ΥץåȤȼΥɥɽޤ: \f2urls\fP ˤäƻȤ줿ɥȤ\f2OBJECT\fP\f2EMBED\fPޤ \f2APPLET\fP ǤɤΥץåȤ⻲ȤƤʤ硢\f3appletviewer\fP ϲԤޤ\f3appletviewer\fP ǥݡȤ HTML ξܺ٤ˤĤƤϡ .na -\f2「アプレットビューアのタグ」\fP @ +\f2֥ץåȥӥ塼Υ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.html򻲾ȤƤ .LP .LP -\f3注:\fP \f3appletviewer\fP は、RFC2396 で規定されたエスケープ機構に従って符号化された URL を必要とします。サポートされるのは、符号化された URL だけです。ただし、ファイル名については、RFC2396 に指定された方法で符号化を解除しておく必要があります。 +\f3:\fP \f3appletviewer\fP ϡRFC2396 ǵꤵ줿׵˽ä沽줿 URL ɬפȤޤݡȤΤϡ沽줿 URL Ǥե̾ˤĤƤϡRFC2396 ˻ꤵ줿ˡ沽Ƥɬפޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-debug -Java デバッガ jdb(1) でアプレットビューアを開始します。 これにより、ドキュメント中のアプレットをデバッグすることができます。 +Java ǥХå jdb(1) ǥץåȥӥ塼򳫻ϤޤˤꡢɥΥץåȤǥХå뤳ȤǤޤ .TP 3 \-encoding \ \ encoding name -入力 HTML ファイルのエンコーディング名を指定します。 + HTML եΥ󥳡ǥ̾ꤷޤ .TP 3 \-Jjavaoption -文字列 \f2javaoption\fP は、appletviewer を実行する Java インタプリタに 1 つの引数として渡されます。引数にスペースを含めてはいけません。複数の引数は、各引数のすべてを接頭辞 \f3\-J\fP で始めることにより区分する必要があります。これは、コンパイラの実行環境、またはメモリーの利用に有効です。 +ʸ \f2javaoption\fP ϡappletviewer ¹Ԥ Java 󥿥ץ꥿ 1 ĤΰȤϤޤ˥ڡޤƤϤޤʣΰϡưΤ٤ƤƬ \f3\-J\fP ǻϤ뤳Ȥˤʬɬפޤϡѥμ¹ԴĶޤϥ꡼ѤͭǤ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/apt.1 b/jdk/src/linux/doc/man/ja/apt.1 index 45f9ebb16ff..6255300f0aa 100644 --- a/jdk/src/linux/doc/man/ja/apt.1 +++ b/jdk/src/linux/doc/man/ja/apt.1 @@ -19,102 +19,133 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "02 Jun 2010" +.TH apt 1 "14 Apr 2011" .LP .SH "NAME" .LP .LP -\f2apt\fP \- 注釈処理ツール +\f2apt\fP \- ġ .LP -.SH "形式" +.SH "" .LP .LP -\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...][\f2javac option\fP] sourcefiles [@files] +\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...] [\f2javac option\fP] sourcefiles [@files] .LP -.SH "パラメータ" +.SH "ѥ᡼" .LP .LP -オプションは順不同です。特定のオプションに適用されるパラメータについては、下記の「オプション」を参照してください。 +ץλ˷ޤϤޤΥץŬѤѥ᡼ˤĤƤϡΡ֥ץפ򻲾ȤƤ .LP .RS 3 .TP 3 sourcefiles -ゼロ、1 つ、または複数の処理対象のソースファイル +1 ġޤʣνоݤΥե .TP 3 @files -ソースファイルまたは他のオプションを一覧表示する 1 つまたは複数のファイル +եޤ¾Υץɽ 1 ĤޤʣΥե .RE .LP -.SH "説明" +.SH "" .LP .LP -注釈処理ツール \f2apt\fP は、新しいリフレクト API とサポートインフラストラクチャーから構成され、プログラム注釈を処理します。\f2apt\fP リフレクト API は、 構築時のソースベースで、プログラム構造に関する読み取り専用ビューを提供します。これらのリフレクト API は、総称を追加した後に、Java(TM) プログラミング言語の型システムを正しくモデル化するように設計されています。最初に、\f2apt\fP は、新しいソースコードと他のファイルを作成する注釈プロセッサを実行します。次に、\f2apt\fP は、元のソースファイルと生成したソースファイルの両方をコンパイルするため、開発が楽になります。ツールとのインタフェースに使用されるリフレクト API などの API は、\f2com.sun.mirror\fP のサブパッケージです。 +ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ .LP .LP -ツールの機能に関する詳細と、\f2apt\fP を使用した開発方法については、 +ġεǽ˴ؤܺ٤ȡ\f2apt\fP ѤȯˡˤĤƤϡ .na -\f4「\fP\f4apt\fP\f3 入門」\fP @ +\f4apt \fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html򻲾ȤƤ .LP .RS 3 .TP 3 -注: -\f2apt\fP の機能は、\f2javac(1)\fP ツールの一部となった注釈処理インフラストラクチャーに組み込まれ、すべての Java コンパイラで使用できるように標準化されました。この新しいインフラストラクチャーは、言語モデルおよび Java プラットフォームの一部となった注釈処理 API に依存します。注釈プロセッサの開発は、新しい API および \f2javac\fP ツールに基づいて行うようお勧めします。 +: +\f2apt\fP εǽϡ\f2javac(1)\fP ġΰȤʤäե饹ȥ饯㡼Ȥ߹ޤ졢٤Ƥ Java ѥǻѤǤ褦ɸಽޤοե饹ȥ饯㡼ϡǥ뤪 Java ץåȥեΰȤʤä API ˰¸ޤץåγȯϡ API \f2javac\fP ġ˴ŤƹԤ褦ᤷޤ .RE .LP -.SH "オプション" +.SH "ץ" .LP .SS -apt 固有のオプション +apt ͭΥץ .LP .RS 3 .TP 3 \-s dir -プロセッサの生成するソースファイルを置くディレクトリルートを指定します。 ファイルは、パッケージの名前空間に基づいてサブディレクトリに置かれます。 +ץå륽ե֤ǥ쥯ȥ롼Ȥꤷޤ եϡѥå֤̾˴Ťƥ֥ǥ쥯ȥ֤ޤ .TP 3 \-nocompile -ソースファイルをクラスファイルにコンパイルしません。 +ե򥯥饹ե˥ѥ뤷ޤ .TP 3 \-print -指定したタイプのテキスト表現を出力します。 注釈処理またはコンパイルは行いません。 +ꤷפΥƥɽϤޤ ޤϥѥϹԤޤ .TP 3 \-A[key[=val]] -注釈プロセッサへ渡すオプションです。 このオプションは、\f2apt\fP が直接解釈するのではなく、それぞれのプロセッサによって使用できるように変えられます。 +ץåϤץǤ Υץϡ\f2apt\fP ľ᤹ܲΤǤϤʤ줾ΥץåˤäƻѤǤ褦Ѥޤ .TP 3 \-factorypath path -注釈プロセッサファクトリを検索する場所を指定します。 このオプションを使用する場合、クラスパスのファクトリは検索されません。 +ץåեȥ򸡺ꤷޤ ΥץѤ硢饹ѥΥեȥϸޤ .TP 3 \-factory classname -使用する注釈プロセッサファクトリの名前です。 デフォルトの検出プロセスを省略します。 +Ѥץåեȥ̾Ǥ ǥեȤθХץάޤ +.TP 3 +\-version +СϤޤ +.TP 3 +\-X +ɸ४ץ˴ؤɽޤ .RE .LP .SS -javac と共用するオプション +javac ȶѤ륪ץ .LP .RS 3 .TP 3 \-d dir -プロセッサと javac 生成のクラスファイルを置く場所を指定します。 +ץå javac Υ饹ե֤ꤷޤ .TP 3 -\-cp path or \-classpath path -ユーザークラスファイルと注釈プロセッサファクトリを検索する場所を指定します。\f2\-factorypath\fP が指定されている場合、クラスパスのファクトリは検索されません。 +\-cp path ޤ \-classpath path +桼饹եץåեȥ򸡺ꤷޤ\f2\-factorypath\fP ꤵƤ硢饹ѥΥեȥϸޤ .RE .LP .LP -\f2javac\fP オプションの詳細については、javac(1) のマニュアルページを参照してください。 +\f2javac\fP ץξܺ٤ˤĤƤϡjavac(1) Υޥ˥奢ڡ򻲾ȤƤ .LP -.SH "注" +.SS +ɸ४ץ +.LP +.RS 3 +.TP 3 +\-XListAnnotationTypes +η˸Фꥹ. +.TP 3 +\-XListDeclarations +ꤪ󥯥롼ɤꥹ. +.TP 3 +\-XPrintAptRounds +ӺƵŪ \f2apt\fP 饦ɤ˴ؤϤ. +.TP 3 +\-XPrintFactoryInfo +׵᤹եȥ˴ؤϤ. +.TP 3 +\-XclassesAsDecls +饹եȥեξ򡢽оݤȤƽޤ +.RE + .LP .LP -\f2apt\fP の機能は、\f2javac\fP により提供される標準注釈処理インフラストラクチャーに組み込まれました。今後の JDK リリースでは、\f2apt\fP および関連する API のサポートが中止する可能性があります。 +\f3\fP: ɸ४ץʤΤǡͽʤѹǽޤ .LP -.SH "関連項目" +.SH "" +.LP +.LP +\f2apt\fP εǽϡ\f2javac\fP ˤ󶡤ɸե饹ȥ饯㡼Ȥ߹ޤޤ JDK ꡼Ǥϡ\f2apt\fP ӴϢ API ΥݡȤߤǽޤ +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/linux/doc/man/ja/extcheck.1 b/jdk/src/linux/doc/man/ja/extcheck.1 index ea241914df3..9cc66788eb7 100644 --- a/jdk/src/linux/doc/man/ja/extcheck.1 +++ b/jdk/src/linux/doc/man/ja/extcheck.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "02 Jun 2010" +.TH extcheck 1 "14 Apr 2011" .LP -.SH "名前" -extcheck \- jar の競合検出ユーティリティー -.LP -.RS 3 - +.SH "̾" +extcheck \- jar ζ縡Х桼ƥƥ .LP .LP -\f3extcheck\fP は、ターゲットの jar ファイルと現在インストールされている拡張機能の jar ファイル間のバージョンの競合を検出します。 +\f3extcheck\fP ϡåȤ jar եȸߥ󥹥ȡ뤵Ƥĥǽ jar ե֤ΥСζ򸡽Фޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,39 +39,33 @@ extcheck [ \-verbose ] targetfile.jar .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3extcheck\fP ユーティリティーは、指定された Jar ファイルのタイトルおよびバージョンが Java(TM) 2 SDK にインストールされている拡張機能と競合していないかをチェックします。拡張機能をインストールする前に、このユーティリティーを使って、バージョンが同じか、より新しい拡張機能がすでにインストールされていないかどうかを調べることができます。 +\f3extcheck\fP 桼ƥƥϡꤵ줿 Jar եΥȥ뤪ӥС Java(TM) 2 SDK ˥󥹥ȡ뤵Ƥĥǽȶ礷Ƥʤåޤĥǽ򥤥󥹥ȡ뤹ˡΥ桼ƥƥȤäơСƱ꿷ĥǽǤ˥󥹥ȡ뤵ƤʤɤĴ٤뤳ȤǤޤ .LP .LP -\f3extcheck\fP ユーティリティーは、\f2targetfile.jar\fP ファイルのマニフェスト内のヘッダー \f2Specification\-title\fP および \f2Specification\-version\fP を、拡張機能ディレクトリ内に現在インストールされているすべての Jar ファイル内の対応するヘッダーと比較します。デフォルトでは、拡張機能ディレクトリは、\f2jre/lib/ext\fP です。\f3extcheck\fP ユーティリティーは、\f2java.lang.Package.isCompatibleWith\fP メソッドと同様の方法でバージョン番号を比較します。 +\f3extcheck\fP 桼ƥƥϡtargetfile.jar եΥޥ˥եΥإå \f2Specification\-title\fP \f2Specification\-version\fP 򡢳ĥǽǥ쥯ȥ˸ߥ󥹥ȡ뤵Ƥ \f2٤Ƥ Jar ե\fP бإåӤޤǥեȤǤϡĥǽǥ쥯ȥϡ\f2jre/lib/ext\fP Ǥ\f3extcheck\fP 桼ƥƥϡ\f2java.lang.Package.isCompatibleWith\fP ᥽åɤƱͤˡǥСֹӤޤ .LP .LP -競合が検出されない場合のリターンコードは \f20\fP です。 +礬ФʤΥ꥿󥳡ɤ \f20\fP Ǥ .LP .LP -拡張機能ディレクトリ内のいずれかの jar ファイルのマニフェストに、同一の \f2Specification\-title\fP、および同一またはより新しい \f2Specification\-version\fP 番号がある場合は、ゼロでないエラーコードが返されます。\f2targetfile.jar\fP のマニフェストに \f2Specification\-title\fP または \f2Specification\-version\fP 属性がない場合も、ゼロでないエラーコードが返されます。 +ĥǽǥ쥯ȥΤ줫 jar եΥޥ˥եȤˡƱ \f2Specification\-title\fP ƱޤϤ꿷 \f2Specification\-version\fP ֹ椬ϡǤʤ顼ɤ֤ޤ \f2targetfile.jar\fP Υޥ˥եȤ \f2Specification\-title\fP ޤ \f2Specification\-version\fP °ʤ⡢Ǥʤ顼ɤ֤ޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-verbose -拡張機能ディレクトリ内の Jar ファイルを、チェック時に一覧表示します。また、ターゲット jar ファイルのマニフェストの属性、および競合する jar ファイルについても報告します。 +ĥǽǥ쥯ȥ Jar ե򡢥å˰ɽޤޤå jar եΥޥ˥եȤ°Ӷ礹 jar եˤĤƤ𤷤ޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP jar(1) diff --git a/jdk/src/linux/doc/man/ja/idlj.1 b/jdk/src/linux/doc/man/ja/idlj.1 index adb0061abec..0a05be7383a 100644 --- a/jdk/src/linux/doc/man/ja/idlj.1 +++ b/jdk/src/linux/doc/man/ja/idlj.1 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "02 Jun 2010" +.TH idlj 1 "14 Apr 2011" .LP -.SH "名前" -idlj \- IDL\-to\-Java コンパイラ +.SH "̾" +idlj \- IDL\-to\-Java ѥ .LP -.RS 3 - -.LP -\f3idlj\fP は、指定された IDL ファイルから Java バインディングを生成します。 -.RE -.SH "形式" -.LP - +\f3idlj\fP ϡꤵ줿 IDL ե뤫 Java Хǥ󥰤ޤ +.SH "" .LP .nf \f3 @@ -44,68 +38,118 @@ idlj [ \fP\f3options\fP\f3 ] \fP\f4idl\-file\fP\f3 .LP .LP -\f2idl\-file\fP は、インタフェース定義言語 (IDL) による定義が入ったファイルの名前です。\f2options\fP の順番は任意ですが、\f2idl\-file\fP よりも前に指定しなければなりません。 +\f2idl\-file\fP ϡ󥿥ե (IDL) ˤäե̾Ǥ\f2options\fP ν֤ǤդǤ\f2idl\-file\fP ˻ꤷʤФʤޤ .LP -.SH "説明" +.SH "" .LP - .LP -IDL\-to\-Java コンパイラは、指定された IDL ファイルについて Java バインディングを生成します。 バインディングの詳細は、 +IDL\-to\-Java ѥϡꤵ줿 IDL եˤĤ Java Хǥ󥰤ޤХǥ󥰤ξܺ٤ϡ .na \f2OMG IDL to Java Language Mapping Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html を参照してください。IDL\-to\-Java コンパイラの以前のリリースの中には、\f2idltojava\fP という名前だったものがあります。 -.SS -クライアントバインディングおよびサーバーバインディングの発行 +http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html 򻲾ȤƤIDL\-to\-Java ѥΰΥ꡼ˤϡ\f2idltojava\fP Ȥ̾äΤޤ .LP -.RS 3 +.SS +饤ȥХǥ󥰤ӥСХǥ󥰤ȯ +.LP +.LP +My.idl Ȥ̾ IDL եФ Java Хǥ󥰤ˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi .LP -My.idl という名前の IDL ファイルに対して Java バインディングを生成するには、次のコマンドを実行します。 \f2idlj My.idl\fP .LP -これにより、クライアント側のバインディングが生成されます。 このコマンドは、次のコマンドと等価です。 \f2idlj \fP\f4\-fclient\fP\f2 My.idl\fP +ˤꡢ饤¦ΥХǥ󥰤ޤΥޥɤϡΥޥɤǤ .LP -クライアント側のバインディングには、サーバー側のスケルトンは組み込まれていません。インタフェースに対してサーバー側のバインディングを生成するには、次のコマンドを実行します。 \f2idlj \fP\f4\-fserver\fP\f2 My.idl\fP -.LP -サーバー側のバインディングには、クライアント側のバインディングに加えて、スケルトンが組み込まれてています。 これらは、すべて \f2POA\fP (継承モデル) クラスです。クライアント側とサーバー側の両方のバインディングを生成する場合は、次のコマンド (どれも等価) のうちの 1 つを使用します。 \f2idlj \fP\f4\-fclient \-fserver\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient\fP My.idl +.fl +.fi + .LP .LP -サーバー側のモデルとしては、2 つのモデルが可能です。それは、継承モデルと、Tie 委譲モデルです。 +饤¦ΥХǥ󥰤ˤϡС¦ΥȥȤ߹ޤƤޤ󡣥󥿥եФƥС¦ΥХǥ󥰤ˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fserver\fP My.idl +.fl +.fi + .LP .LP -デフォルトのサーバー側のモデルは、「移殖可能サーバント継承モデル」です。\f2My.idl\fP 内で \f2My\fP インタフェースが定義されている場合は、\f2MyPOA.java\fP というファイルが生成されます。\f2My\fP に対してその実装を提供し、この実装は \f2_MyPOA\fP から継承する必要があります。 +С¦ΥХǥ󥰤ˤϡ饤¦ΥХǥ󥰤ΤۤˡȥޤޤƤޤϤ٤ơ \f2POA\fP (ĤޤѾǥ) 饹Ǥ饤¦ȥС¦ξΥХǥ󥰤ϡΥޥ (ɤ) Τ 1 ĤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP My.idl +.fl +idlj \f3\-fall\fP My.idl +.fl +.fi + .LP .LP -\f2MyPOA.java\fP は +С¦Dzǽʥǥ 2 ĤޤѾǥ Tie ѾǥǤ +.LP +.LP +ǥեȤΥС¦ΥǥϡְܿǽХȷѾǥפǤ\f2My.idl\fP \f2My\fP 󥿥եƤϡ\f2MyPOA.java\fP Ȥե뤬ޤμ \f2My\fP 󶡤\f2MyPOA\fP Ѿɬפޤ +.LP +.LP +\f2MyPOA.java\fP .na \f2org.omg.PortableServer.Servant\fP @ .fi -http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html を拡張するストリームベースのスケルトンで、スケルトンが実装する IDL インタフェースに関連付けられている \f2InvokeHandler\fP インタフェースとオペレーションインタフェースを実装します。 +http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html ĥ륹ȥ꡼١Υȥǡȥ󤬼 IDL 󥿥ե˴ϢդƤ \f2InvokeHandler\fP 󥿥եȥڥ졼󥤥󥿥եޤ .LP .LP .na \f2Portable Object Adapter (POA)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html の \f2PortableServer\fP モジュールは、ネイティブの \f2Servant\fP 型を定義します。Java プログラミング言語では、\f2Servant\fP 型は、Java の \f2org.omg.PortableServer.Servant\fP クラスにマッピングされています。これはあらゆる POA サーバント実装の基底クラスとなり多数のメソッドを提供します。 これらのメソッドはアプリケーションプログラマが呼び出すだけではなく、POA 自身からも呼び出され、場合によってはサーバントの動作を制御するためにユーザーがオーバーライドすることもあります。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html \f2PortableServer\fP ⥸塼ϡͥƥ֤ \f2Servant\fP ޤJava ץߥ󥰸Ǥϡ\f2Servant\fP Java \f2org.omg.PortableServer.Servant\fP 饹˥ޥåפޤΥ饹ϡ٤Ƥ POA Хȼδ쥯饹ȤƵǽץꥱץޤƤӽФȤΤǤ뤤ĤΥ᥽åɤΤۤˡPOA ΤΤˤäƸƤӽФ졢ХȤư椹뤿˥桼С饤ɤǤ᥽åɤ󶡤ޤ .LP .LP -継承モデルのもう 1 つのオプションは、\f2\-oldImplBase\fP フラグを使用して、J2SE 1.4 より前のバージョンの Java プログラミング言語と互換性のあるサーバー側バインディングを生成することです。ただし、\f2\-oldImplBase\fP フラグを使用するのは、標準的な手法ではありません。これらの API は推奨されていません。このフラグを使用するのは、J2SE 1.3 で記述された既存のサーバーとの互換性を保つ場合だけです。その場合、既存の MAKEFILE を変更して \f2idlj\fP コンパイラに \f2\-oldImplBase\fP フラグを追加する必要があります。 フラグを追加しない場合、POA ベースのサーバー側マッピングが生成されます。下位互換性のあるサーバー側バインディングを生成するには、次のコマンドを使用します。 +ѾǥΤ⤦ 1 ĤΥץϡ\f2\-oldImplBase\fP ե饰Ѥ뤳ȤǡJ2SE 1.4 ΥС Java ץߥ󥰸ȸߴΤ륵С¦Хǥ󥰤뤳ȤǤ\f2\-oldImplBase\fP ե饰ѤΤϡɸŪʼˡǤϤޤ󡣤 API Ϻ侩ˤʤͽǤΥե饰ѤΤϡJ2SE 1.3 ǵҤ줿¸ΥСȤθߴɬפʾǤξˤϴ¸ MAKEFILE ѹ\f2idlj\fP ѥ \f2\-oldImplBase\fP ե饰ɲäɬפޤʤȡPOA ١ΥС¦ޥåԥ󥰤ޤ̸ߴΤ륵С¦Хǥ󥰤ˤϡΥޥɤѤޤ .LP -\f2idlj \fP\f4\-fclient \-fserver\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl +.fl +idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl +.fl +.fi + .LP -\f2My.idl\fP 内で \f2My\fP インタフェースが定義されている場合は、\f2_MyImplBase.java\fP というファイルが生成されます。\f2My\fP に対してその実装を提供し、この実装は \f2_MyImplBase\fP から継承しなければなりません。 .LP -もう 1 つのサーバー側モデルは、Tie モデルと呼ばれるものです。このサーバー側モデルは、委譲モデルです。Tie とスケルトンを同時に生成することはできないため、それらは別々に生成しなければなりません。次のコマンドによって、Tie モデル用のバインディングが生成されます。 +\f2My.idl\fP \f2My\fP 󥿥եƤϡ\f2_MyImplBase.java\fP Ȥե뤬ޤ\f2My\fP ФƤμ󶡤μ \f2_MyImplBase\fP ѾʤФʤޤ .LP -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fallTIE\fP\f2 My.idl\fP .LP -\f2My\fP というインタフェースの場合、上記の 2 番目のコマンドにより、\f2MyPOATie.java\fP が生成されます。\f2MyPOATie\fP のコンストラクタは、\f2delegate\fP を取ります。この例では、デフォルトの POA モデルを使用しているため、コンストラクタにも \f2poa\fP が必要です。\f2delegate\fP に対して実装を提供しなければなりませんが、この実装は \f2MyOperations\fP インタフェースから継承する必要があるだけで、その他のクラスから継承する必要はありません。しかし、この実装を ORB と一緒に使用するには、\f2MyPOATie\fP 内で実装をラップしなければなりません。たとえば、次のようにします。 +⤦ 1 ĤΥС¦ǥϡTie ǥȸƤФΤǤΥС¦ǥϡѾǥǤTie ȥȥƱ뤳ȤϤǤʤᡢ̡ʤФʤޤ󡣼ΥޥɤˤäơTie ǥѤΥХǥ󥰤ޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fall\fP My.idl +.fl +idlj \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +\f2My\fP Ȥ󥿥եξ硢嵭 2 ܤΥޥɤˤꡢ\f2MyPOATie.java\fP ޤ\f2MyPOATie\fP Υ󥹥ȥ饯ϡ\f2delegate\fP ޤǤϡǥեȤ POA ǥѤƤ뤿ᡢ󥹥ȥ饯ˤ \f2poa\fP ɬפǤ\f2delegate\fP ФƼ󶡤ʤФʤޤ󤬡μ \f2MyOperations\fP 󥿥եѾɬפǡ¾Υ饹ѾɬפϤޤ󡣤μ ORB Ȱ˻Ѥˤϡ\f2MyPOATie\fP ǼåפʤФʤޤ󡣤ȤСΤ褦ˤޤ +.LP .nf \f3 .fl @@ -143,16 +187,24 @@ http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html の \f2PortableS .fi .LP -他の実装から継承しなければならない場合、標準の継承モデルではなく Tie モデルを使用することがあります。Java の場合は、インタフェースの継承の個数に制限はありませんが、クラスの継承に使用できるスロットは 1 つだけです。継承モデルを使用した場合は、そのスロットが占有されます。Tie モデルを使用した場合は、そのスロットが使用されず、ユーザーが独自の目的で使用することができます。ただし、間接参照のレベルが 1 つ導入されるという欠点があります。つまり、メソッドを呼び出すときに余分なメソッド呼び出しが発生します。 .LP -IDL のバージョンから J2SE 1.4 より前のバージョンの Java 言語へのマッピングと互換性のある、サーバー側の Tie モデルのバインディングを生成するには、次のコマンドを使用します。 -.LP -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fallTIE\fP\f2 My.idl\fP +¾μѾʤФʤʤ硢ɸηѾǥǤϤʤ Tie ǥѤ뤳ȤޤJava ξϡ󥿥եηѾθĿ¤Ϥޤ󤬡饹ηѾ˻ѤǤ륹åȤ 1 ĤǤѾǥѤϡΥåȤͭޤTie ǥѤϡΥåȤѤ줺桼ȼŪǻѤ뤳ȤǤޤˡˤϡΥ٥뤬 1 ƳȤޤ᥽åɤƤӽФȤˡ;ʬʥ᥽åɸƤӽФ 1 ȯޤ .LP .LP -\f2My\fP というインタフェースの場合、これにより \f2My_Tie.java\fP が生成されます。\f2My_Tie\fP のコンストラクタは、\f2impl\fP を取ります。\f2impl\fP に対して実装を提供しなければなりませんが、その実装は \f2HelloOperations\fP インタフェースから継承する必要があるだけで、その他のクラスから継承する必要はありません。しかし、この実装を ORB と一緒に使用するには、\f2My_Tie\fP 内で実装をラップしなければなりません。たとえば、次のようにします。 +IDL ΥС󤫤 J2SE 1.4 ΥС Java ؤΥޥåԥ󥰤ȸߴΤ롢С¦ Tie ǥΥХǥ󥰤ˤϡΥޥɤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-oldImplBase\fP \f3\-fall\fP My.idl +.fl +idlj \f3\-oldImplBase\fP \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +\f2My\fP Ȥ󥿥եξ硢ˤ \f2My_Tie.java\fP ޤ\f2My_Tie\fP Υ󥹥ȥ饯ϡ\f2impl\fP ޤ\f2impl\fP ФƼ󶡤ʤФʤޤ󤬡μ \f2HelloOperations\fP 󥿥եѾɬפǡ¾Υ饹ѾɬפϤޤ󡣤μ ORB Ȱ˻Ѥˤϡ\f2My_Tie\fP ǼåפʤФʤޤ󡣤ȤСΤ褦ˤޤ .LP .nf \f3 @@ -183,201 +235,383 @@ IDL のバージョンから J2SE 1.4 より前のバージョンの Java 言語 .fi .LP -.RE .SS -発行されたファイルの代替位置の指定 +ȯԤ줿եذ֤λ .LP -.RS 3 - .LP -発行されたファイルをカレントディレクトリ以外のディレクトリに置くには、次のようなコマンドでコンパイラを呼び出します。 -.RS 3 - +ȯԤ줿ե򥫥ȥǥ쥯ȥʳΥǥ쥯ȥ֤ˤϡΤ褦ʥޥɤǥѥƤӽФޤ .LP -\f2idlj \fP\f4\-td /altdir\fP\f2 My.idl\fP -.RE -\f2My\fP インタフェースの場合、バインディングは、\f2./My.java\fP ではなく、\f2/altdir/My.java\fP などに発行されます。 -.RE -.SS -インクルードファイルの代替位置の指定 -.LP -.RS 3 - -.LP -\f2My.idl\fP にもう 1 つの IDL ファイル \f2MyOther.idl\fP がインクルードされている場合、コンパイラは、ローカルディレクトリに \f2MyOther.idl\fP があるものと想定します。もしそのファイルが、たとえば \f2/includes\fP にある場合は、次のようなコマンドでコンパイラを呼び出します。 \f2idlj \fP\f4\-i /includes\fP\f2 My.idl\fP -.LP -また、もし \f2My.idl\fP に、たとえば \f2/moreIncludes\fP にある \f2Another.idl\fP もインクルードされているのであれば、次のようなコマンドでコンパイラを呼び出します。 \f2idlj \fP\f4\-i /includes \-i /moreIncludes\fP\f2 My.idl\fP -.LP -このような形式でインクルードを指定すると、コマンドが長くて複雑になります。 そこで、インクルードファイルを検索する場所をコンパイラに指示するための別の方法が用意されています。この方法は、環境変数の考え方と似ています。CLASSPATH にリストされているディレクトリ内に \f2idl.config\fP という名前のファイルを作成します。その \f2idl.config\fP の中に、次のような形式の行を入れます。 \f2includes=/includes;/moreIncludes\fP -.LP -コンパイラは、このファイルを検索し、インクルードリストを読み込みます。この例では、ディレクトリの間の区切り文字はセミコロン (;) になっています。この区切り文字は、プラットフォームによって異なります。たとえば、Windows プラットフォームではセミコロンですが、Unix プラットフォームではコロンです。 \f2インクルード\fPの詳細については、 -.na -\f2CLASSPATH の設定\fP @ +.nf +\f3 +.fl +idlj \fP\f3\-td /altdir\fP My.idl +.fl .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general を参照してください。 -.RE + +.LP +.LP +\f2My\fP 󥿥եξ硢Хǥ󥰤ϡ\f2./My.java\fP ǤϤʤ\f2/altdir/My.java\fP ʤɤȯԤޤ +.LP .SS -インクルードファイルに対するバインディングの発行 +󥯥롼ɥեذ֤λ .LP -.RS 3 +.LP +\f2My.idl\fP ˤ⤦ 1 Ĥ IDL ե \f2MyOther.idl\fP 󥯥롼ɤƤ硢ѥϡǥ쥯ȥ \f2MyOther.idl\fP Τꤷޤ⤷Υե뤬Ȥ \f2/includes\fP ˤϡΤ褦ʥޥɤǥѥƤӽФޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes\fP My.idl +.fl +.fi .LP -デフォルトでは、コマンド行に指定した IDL ファイルで定義されているインタフェースや構造体などについてのみ、Java バインディングが生成されます。インクルードされたファイルで定義されている型については、Java バインディングは生成されません。たとえば、次の 2 つの IDL ファイルについて考えてみましょう。 \f4My.idl\fP .LP -\f2#include \fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2};\fP -.br -\f4MyOther.idl\fP +ޤ⤷ \f2My.idl\fP ˡȤ \f2/moreIncludes\fP ˤ \f2Another.idl\fP ⥤󥯥롼ɤƤΤǤСΤ褦ʥޥɤǥѥƤӽФޤ .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\fP\ +.nf +\f3 +.fl +idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl +.fl +.fi + .LP -次のコマンドでは、\f2My\fP に対する Java バインディングだけが生成されます。 \f2idlj My.idl\fP .LP -\f2My.idl\fP で定義されている型と、\f2My.idl\fP にインクルードされたファイル (この例では \f2MyOther.idl\fP) で定義されている型すべてについて Java バインディングを生成するには、次のコマンドを使用します。 \f2idlj \fP\f4\-emitAll\fP\f2 My.idl\fP +Τ褦ʷǥ󥯥롼ɤꤹȡޥɤĹʣˤʤޤǡ󥯥롼ɥե򸡺򥳥ѥ˻ؼ뤿̤ˡѰդƤޤˡϡĶѿιͤȻƤޤCLASSPATH ˥ꥹȤƤǥ쥯ȥ \f2idl.config\fP Ȥ̾Υեޤ \f2idl.config\fP ˡΤ褦ʷιԤޤ .LP -このデフォルトの規則に関して注意しなければならないことがあります。グローバルスコープに指定した \f2#include\fP 文は、前述のとおりに処理されます。これらの \f2#include\fP 文は、インポート文と見なすことができます。それに対して、他の定義に囲まれたスコープ内に指定した \f2#include\fP 文は、本当の意味での \f2#include\fP 文として処理されます。 つまり、インクルードされたファイルにあるコードが、元のファイルにそのまま指定されているかのように処理され、それに対して Java バインディングが発行されます。次に例を示します。 \f4My.idl\fP +.nf +\f3 +.fl +includes=/includes;/moreIncludes +.fl +\fP +.fi + .LP -\f2#include \fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2\ #include \fP -.br -\f2};\ \fP \f4MyOther.idl\fP .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\ \fP \f4Embedded.idl\fP +ѥϡΥե򸡺󥯥롼ɥꥹȤɤ߹ߤޤǤϡǥ쥯ȥδ֤ζڤʸϥߥ (;) ˤʤäƤޤζڤʸϡץåȥեˤäưۤʤޤȤСWindows ץåȥեǤϥߥǤUnix ץåȥեǤϥǤ \f2󥯥롼\fPξܺ٤ˤĤƤϡ +.na +\f2CLASSPATH \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/tools/index.html#general 򻲾ȤƤ .LP -\f2enum E {one, two, three};\fP\ -.LP -このとき、次のコマンドを実行すると、 \f2idlj My.idl\fP -.LP -次のような一連の Java ファイルが生成されます。 \f2./MyHolder.java\fP -.br -\f2./MyHelper.java\fP -.br -\f2./_MyStub.java\fP -.br -\f2./MyPackage\fP -.br -\f2./MyPackage/EHolder.java\fP -.br -\f2./MyPackage/EHelper.java\fP -.br -\f2./MyPackage/E.java\fP -.br -\f2./My.java\fP -.LP -インポート文と見なされる \f2#include\fP に定義されているため、\f2MyOther.java\fP は生成されません。ただし、本当の意味での \f2#include\fP で定義されているため、\f2E.java\fP は生成されます。さらに、\f2Embedded.idl\fP が \f2My\fP インタフェースのスコープ内にインクルードされていたため、\f2My\fP のスコープ内 (つまり、\f2MyPackage\fP 内) に生成されています。 -.LP -上記の例で \f2\-emitAll\fP フラグを使用すれば、インクルードされたすべてのファイルにあるすべての型が発行されます。 -.LP -.RE .SS -パッケージの接頭辞の挿入 +󥯥롼ɥեФХǥ󥰤ȯ +.LP +.LP +ǥեȤǤϡޥɹԤ˻ꤷ IDL եƤ륤󥿥ե乽¤ΤʤɤˤĤƤΤߡJava Хǥ󥰤ޤ󥯥롼ɤ줿եƤ뷿ˤĤƤϡJava Хǥ󥰤ޤ󡣤ȤС 2 Ĥ IDL եˤĤƹͤƤߤޤ礦 .LP -.RS 3 .LP -ABC という名前の会社のために作業していて、次のような IDL ファイルを構築したとしましょう。 -.br -\f4Widgets.idl\fP .LP -\f2module Widgets\fP -.br -\f2{\fP -.br -\f2\ interface W1 {...};\fP -.br -\f2\ interface W2 {...};\fP -.br -\f2};\fP\ +\f4My.idl\fP .LP -このファイルに対して IDL\-to\-Java コンパイラを実行すると、\f2W1\fP および \f2W2\fP に対する Java バインディングが \f2Widgets\fP パッケージ内に生成されます。しかし、業界の慣例によると、会社のパッケージは、\f2com.<会社名>\fP という名前のパッケージ内に置くことになっています。そのため、\f2Widgets\fP パッケージでは不十分です。慣例に従うには、パッケージを \f2com.abc.Widgets\fP にする必要があります。このパッケージ接頭辞を \f2Widgets\fP モジュールに付加するには、次のコマンドを実行します。 \f2idlj \fP\f4\-pkgPrefix Widgets com.abc\fP\f2 Widgets.idl\fP +.nf +\f3 +.fl +#include +.fl +interface My +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -\f2Widgets.idl\fP をインクルードしている IDL ファイルがある場合は、そのコマンドにも \f2\-pkgPrefix\fP フラグが必要です。このフラグを指定しないと、その IDL ファイルは、\f2com.abc.Widgets\fP パッケージではなく、\f2Widgets\fP パッケージを検索することになります。 -.LP -接頭辞が必要なパッケージがいくつもある場合は、前述の \f2idl.config\fP ファイルで接頭辞を指定するのが簡単です。パッケージの接頭辞を指定する行は、それぞれ次の形式で記述します。 -.LP -\f2PkgPrefix.=\fP -.LP -したがって、上記の例の場合は、次のように記述します。 \f2PkgPrefix.Widgets=com.abc\fP + .LP .LP -このオプションを使用しても、リポジトリ ID は影響を受けません。 +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΥޥɤǤϡ\f2My\fP Ф Java Хǥ󥰤ޤ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +\f2My.idl\fP Ƥ뷿ȡ\f2My.idl\fP ˥󥯥롼ɤ줿ե (Ǥ \f2MyOther.idl\fP) Ƥ뷿٤ƤˤĤ Java Хǥ󥰤ˤϡΥޥɤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-emitAll\fP My.idl +.fl +.fi + +.LP +.LP +ΥǥեȤε§˴ؤդʤФʤʤȤޤХ륹פ˻ꤷ \f2#include\fP ʸϡҤΤȤ˽ޤ \f2#include\fP ʸϡݡʸȸʤȤǤޤФơ¾˰Ϥޤ줿˻ꤷ \f2#include\fP ʸϡΰ̣Ǥ \f2#include\fP ʸȤƽޤĤޤꡢ󥯥롼ɤ줿եˤ륳ɤΥեˤΤޤ޻ꤵƤ뤫Τ褦˽졢Ф Java Хǥ󥰤ȯԤޤϤǤ +.LP + +.LP +.LP +\f4My.idl\fP +.LP +.nf +\f3 +.fl +#include +.fl +interface My +.fl +{ +.fl + #include +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4Embedded.idl\fP +.LP +.nf +\f3 +.fl +enum E {one, two, three}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΤȤΥޥɤ¹Ԥȡ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +Τ褦ʰϢ Java ե뤬ޤ +.LP +.nf +\f3 +.fl +./MyHolder.java +.fl +./MyHelper.java +.fl +./_MyStub.java +.fl +./MyPackage +.fl +./MyPackage/EHolder.java +.fl +./MyPackage/EHelper.java +.fl +./MyPackage/E.java +.fl +./My.java +.fl +\fP +.fi + +.LP +.LP +ݡʸȸʤ \f2#include\fP Ƥ뤿ᡢ\f2MyOther.java\fP ޤ󡣤ΰ̣Ǥ \f2#include\fP Ƥ뤿ᡢ\f2E.java\fP ޤˡ\f2Embedded.idl\fP \f2My\fP 󥿥եΥ˥󥯥롼ɤƤᡢ\f2My\fP Υ (Ĥޤꡢ\f2MyPackage\fP ) Ƥޤ +.LP +.LP +嵭 \f2\-emitAll\fP ե饰ѤС󥯥롼ɤ줿٤ƤΥեˤ뤹٤ƤηȯԤޤ .LP -.RE .SS -コンパイル前のシンボルの定義 +ѥåƬ +.LP +.LP +ABC Ȥ̾βҤΤ˺ȤƤơΤ褦 IDL եۤȤޤ礦 .LP -.RS 3 .LP -コンパイル用のシンボルが IDL ファイル内で定義されていない場合は、そのシンボルを定義する必要があります。 これは、たとえば、バインディング内にデバッグコードを組み入れるときに使用します。次のコマンドは、 \f2idlj \fP\f4\-d\fP\f2 MYDEF My.idl\fP .LP -\f2My.idl\fP 内に \f2#define MYDEF\fP という行を指定した場合と等価です。 -.RE +\f4Widgets.idl\fP +.LP +.nf +\f3 +.fl +module Widgets +.fl +{ +.fl + interface W1 {...}; +.fl + interface W2 {...}; +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΥեФ IDL\-to\-Java ѥ¹Ԥȡ\f2W1\fP \f2W2\fP Ф Java Хǥ󥰤 \f2Widgets\fP ѥåޤȳδˤȡҤΥѥåϡ\f2com.<̾>\fP Ȥ̾Υѥå֤ȤˤʤäƤޤΤᡢ\f2Widgets\fP ѥåǤԽʬǤ˽ˤϡѥå \f2com.abc.Widgets\fP ˤɬפޤΥѥåƬ \f2Widgets\fP ⥸塼ղäˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-pkgPrefix Widgets com.abc\fP Widgets.idl +.fl +.fi + +.LP +.LP +\f2Widgets.idl\fP 򥤥󥯥롼ɤƤ IDL ե뤬ϡΥޥɤˤ \f2\-pkgPrefix\fP ե饰ɬפǤΥե饰ꤷʤȡ IDL եϡ\f2com.abc.Widgets\fP ѥåǤϤʤ\f2Widgets\fP ѥå򸡺뤳Ȥˤʤޤ +.LP +.LP +ƬɬפʥѥåĤ⤢ϡҤ \f2idl.config\fP եƬꤹΤñǤѥåƬꤹԤϡ줾켡ηǵҤޤ +.LP +.nf +\f3 +.fl +PkgPrefix.= +.fl +\fP +.fi + +.LP +äơ嵭ξϡΤ褦˵Ҥޤ +.nf +\f3 +.fl +PkgPrefix.Widgets=com.abc +.fl +\fP +.fi + +.LP +.LP +ΥץѤƤ⡢ݥȥ ID ϱƶޤ +.LP .SS -既存のバインディングの保持 +ѥΥܥ .LP -.RS 3 +.LP +ѥѤΥܥ뤬 IDL եƤʤϡΥܥɬפޤϡȤСХǥ˥ǥХåɤȤȤ˻ѤޤΥޥɤϡ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-d\fP MYDEF My.idl +.fl +.fi .LP -Java バインディングファイルがすでに存在する場合は、\f2\-keep\fP フラグを指定すると、コンパイラによる上書きを回避できます。デフォルトでは、すでに存在するかどうかにかかわらず、すべてのファイルが生成されます。これらのファイルをカスタマイズした場合 (ただし、それらの内容が正確であるとき以外はカスタマイズは避ける)、\f2\-keep\fP オプションは有用です。次のコマンドは、 \f2idlj \fP\f4\-keep\fP\f2 My.idl\fP .LP -クライアント側のバインディングで、まだ存在しないものをすべて発行します。 -.RE +\f2My.idl\fP \f2#define MYDEF\fP ȤԤꤷǤ +.LP .SS -コンパイルの進捗状況の表示 +¸ΥХǥ󥰤ݻ .LP -.RS 3 +.LP +Java Хǥ󥰥ե뤬Ǥ¸ߤϡ\f2\-keep\fP ե饰ꤹȡѥˤ񤭤ǤޤǥեȤǤϡǤ¸ߤ뤫ɤˤ餺٤ƤΥե뤬ޤΥե򥫥ޥ (ƤΤǤȤʳϥޥ򤱤)\-keep ץͭѤǤΥޥɤϡ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-keep\fP My.idl +.fl +.fi .LP -IDL\-to\-Java コンパイラは、実行の各段階で状態メッセージを生成します。「冗長」モード (メッセージが多いモード) にするには、\f2\-v\fP オプションを使用します。 \f2idlj \fP\f4\-v\fP\f2 My.idl\fP .LP -デフォルトでは、コンパイラは冗長モードでは実行されません。 -.RE +饤¦ΥХǥ󥰤ǡޤ¸ߤʤΤ򤹤٤ȯԤޤ +.LP .SS -バージョン情報の表示 +ѥοĽɽ .LP -.RS 3 +.LP +IDL\-to\-Java ѥϡ¹ԤγʳǾ֥åޤ־Ĺץ⡼ (å¿⡼) ˤˤϡ\f2\-v\fP ץѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-v\fP My.idl +.fl +.fi .LP .LP -IDL\-to\-Java コンパイラのビルドバージョンを表示するには、コマンド行で \f2\-version\fP オプションを指定します。 +ǥեȤǤϡѥϾĹ⡼ɤǤϼ¹Ԥޤ +.LP +.SS +Сɽ .LP .LP -\f2idlj \-version\fP -.LP -.LP -バージョン情報は、コンパイラによって生成されたバインディング内にも書き込まれています。このオプションをコマンド行に指定すると、それ以外のオプションを指定しても、すべて無視されます。 -.LP -.RE -.SH "オプション" +IDL\-to\-Java ѥΥӥɥСɽˤϡޥɹԤ \f2\-version\fP ץꤷޤ .LP +.nf +\f3 +.fl +idlj \-version +.fl +\fP +.fi +.LP +.LP +Сϡѥˤä줿Хǥˤ񤭹ޤƤޤΥץ򥳥ޥɹԤ˻ꤹȡʳΥץꤷƤ⡢٤̵뤵ޤ +.LP +.SH "ץ" .LP .RS 3 .TP 3 \-d symbol -このオプションは、IDL ファイルに次のような行を追加した場合と等価です。 -.RS 3 - -.LP +ΥץϡIDL ե˼Τ褦ʹԤɲäǤ .nf \f3 .fl @@ -385,33 +619,32 @@ IDL\-to\-Java コンパイラのビルドバージョンを表示するには、 .fl \fP .fi -.RE .TP 3 \-emitAll -\f2#include\fP ファイル内で定義されているものも含めて、すべての型を発行します。 +#include ե ƤΤޤơ \f2٤Ƥη\fP ȯԤޤ .TP 3 \-fside -発行するバインディングを定義します。 \f2side\fP は、\f2client\fP、\f2server\fP、\f2serverTIE\fP、\f2all\fP、\f2allTIE\fP のどちらかです。\f2\-fserverTIE\fP または \f2\-fallTIE\fP オプションを指定すると、委譲モデルスケルトンが発行されます。このフラグを指定しなかった場合は、\f2\-fclient\fP が指定されたものと見なされます。 +ȯԤХǥ󥰤ޤ\f2side\fP \f2client\fP\f2server\fP\f2serverTIE\fP\f2all\fP\f2allTIE\fP Τ줫ˤʤޤ\f2\-fserverTIE\fP ޤ \f2\-fallTIE\fP ץꤹȡѾǥ륹ȥȯԤޤΥե饰ꤷʤäϡ\f2\-fclient\fP ꤵ줿Τȸʤޤ .TP 3 \-i include\-path -デフォルトでは、インクルードファイルはカレントディレクトリから検索されます。このオプションを指定すると、ほかのディレクトリを追加できます。 +ǥեȤǤϡ󥯥롼ɥեϥȥǥ쥯ȥ꤫鸡ޤΥץꤹȡۤΥǥ쥯ȥɲäǤޤ .TP 3 \-keep -生成されるファイルがすでに存在している場合は、そのファイルが上書きされません。デフォルトでは、上書きされます。 +ե뤬Ǥ¸ߤƤϡΥե뤬񤭤ޤ󡣥ǥեȤǤϡ񤭤ޤ .TP 3 \-noWarn -警告メッセージを表示しないようにします。 +ٹåɽʤ褦ˤޤ .TP 3 \-oldImplBase -v1.4 より前の JDK ORB と互換性のあるスケルトンを生成します。デフォルトでは、POA 継承モデルのサーバー側バインディングが生成されます。このオプションを指定すると、\f2ImplBase\fP 継承モデルのクラスであるサーバー側バインディングが生成されるので、古いバージョンの Java プログラミング言語との下位互換性が得られます。 +v1.4 JDK ORB ȸߴΤ륹ȥޤǥեȤǤϡPOA ѾǥΥС¦Хǥ󥰤ޤΥץꤹȡ\f2ImplBase\fP ѾǥΥ饹Ǥ륵С¦Хǥ󥰤ΤǡŤС Java ץߥ󥰸Ȥβ̸ߴޤ .TP 3 \-pkgPrefix type prefix -\f2type\fP がファイルスコープで検出された場合は、その型に対して生成されるすべてのファイルについて、生成される Java パッケージ名に \f2prefix\fP という接頭辞が付加されます。\f2type\fP は、トップレベルモジュールの単純名か、どのモジュールよりも外側で定義された IDL 型の単純名のどちらかです。 +\f2type\fP ե륹פǸФ줿ϡηФ뤹٤ƤΥեˤĤơ Java ѥå̾ \f2prefix\fP ȤƬղäޤ\f2type\fP ϡȥåץ٥⥸塼ñ̾ɤΥ⥸塼⳰¦줿 IDL ñ̾Τɤ餫Ǥ .TP 3 \-pkgTranslate type package -識別子の中にモジュール名 \f2type\fP が検出されると、生成される Java パッケージ内のすべてのファイルについて、識別子の中のその名前が \f2package\fP で置き換えられます。最初に \f2pkgPrefix\fP を変更します。\f2type\fP は、トップレベルのモジュール、またはすべてのモジュールの外部で定義された IDL 型の単純名です。 そして、完全なパッケージ名に正確に一致しなければなりません。 +̻Ҥ˥⥸塼̾ type Фȡ Java ѥåΤ٤ƤΥեˤĤơ̻ҤΤ̾ package ֤ޤǽ \f2pkgPrefix\fP ѹޤ\f2type\fP ϡȥåץ٥Υ⥸塼롢ޤϤ٤ƤΥ⥸塼γ줿 IDL ñ̾Ǥơʥѥå̾Τ˰פʤФʤޤ .LP -1 つの識別子の中で複数の変換がマッチする場合は、もっとも長いマッチが選ばれます。たとえば、次のような引数が指定されている場合は、 +1 Ĥμ̻ҤʣѴޥåϡäȤĹޥåФޤȤСΤ褦ʰꤵƤϡ .nf \f3 .fl @@ -420,89 +653,85 @@ v1.4 より前の JDK ORB と互換性のあるスケルトンを生成します \fP .fi .LP -次のような変換が実施されます。 +Τ褦Ѵ»ܤޤ .nf \f3 .fl -foo => bar +foo => bar .fl -foo.boo => bar.boo +foo.boo => bar.boo .fl -foo.baz => buzz.fizz +foo.baz => buzz.fizz .fl -foo.baz.bar => buzz.fizz.bar +foo.baz.bar => buzz.fizz.bar .fl \fP .fi .LP -次のパッケージ名を変換することはできません。 +Υѥå̾Ѵ뤳ȤϤǤޤ .RS 3 .TP 2 o \f2org\fP .TP 2 o -\f2org.omg\fP、または \f2org.omg\fP のサブパッケージ +\f2org.omg\fPޤ \f2org.omg\fP Υ֥ѥå .RE .LP -これらのパッケージ名を変換しようとすると、互換性のないコードが生成されます。 そして、\f2\-pkgTranslate\fP のあとの最初の引数としてそれらのパッケージを使用すると、エラーとして扱われます。 +Υѥå̾Ѵ褦ȤȡߴΤʤɤޤơ\f2\-pkgTranslate\fP ΤȤκǽΰȤƤΥѥåѤȡ顼Ȥưޤ .TP 3 \-skeletonName xxx%yyy -\f2xxx%yyy\fP が、スケルトンに名前を付けるパターンとして使用されます。デフォルトは、次のとおりです。 +\f2xxx%yyy\fP ȥ̾դѥȤƻѤޤǥեȤϼΤȤǤ .RS 3 .TP 2 o -\f2POA\fP 基底クラスの場合は「%POA」(\f2\-fserver\fP または \f2\-fall\fP) +\f2POA\fP 쥯饹ξϡ%POA(\f2\-fserver\fP ޤ \f2\-fall\fP) .TP 2 o -\f2oldImplBase\fP クラスの場合は「_%ImplBase」(\f2\-oldImplBase\fP かつ (\f2\-fserver\fP または \f2\-fall\fP)) +\f2oldImplBase\fP 饹ξϡ_%ImplBase(\f2\-oldImplBase\fP (\f2\-fserver\fP ޤ \f2\-fall\fP)) .RE .TP 3 \-td dir -出力ディレクトリとして、カレントディレクトリではなく、\f2dir\fP が使用されます。 +ϥǥ쥯ȥȤơȥǥ쥯ȥǤϤʤ\f2dir\fP Ѥޤ .TP 3 \-tieName xxx%yyy -このパターンに従って Tie に名前が付けられます。デフォルトは、次のとおりです。 +Υѥ˽ä Tie ̾դޤǥեȤϼΤȤǤ .RS 3 .TP 2 o -\f2POA\fP Tie 基底クラスの場合は「%POATie」(\f2\-fserverTie\fP または \f2\-fallTie\fP) +\f2POA\fP Tie 쥯饹ξϡ%POATie(\f2\-fserverTie\fP ޤ \f2\-fallTie\fP) .TP 2 o -\f2oldImplBase\fP Tie クラスの場合は「%_Tie」(\f2\-oldImplBase\fP かつ (\f2\-fserverTie\fP または \f2\-fallTie\fP)) +\f2oldImplBase\fP Tie 饹ξϡ%_Tie(\f2\-oldImplBase\fP (\f2\-fserverTie\fP ޤ \f2\-fallTie\fP)) .RE .TP 3 -\-verbose -冗長モードになります。 +\-nowarn, \-verbose +Ĺ⡼ɤˤʤޤ .TP 3 \-version -バージョン情報を表示して終了します。 +Сɽƽλޤ .RE .LP -各オプションの詳細については、「説明」のセクションを参照してください。 -.SH "制約" -.LP - +ƥץξܺ٤ˤĤƤϡפΥ򻲾ȤƤ +.SH "" .LP .RS 3 .TP 2 o -グローバルスコープ内のエスケープされた識別子は、IDL プリミティブ型の \f2Object\fP または \f2ValueBase\fP と同じ綴りであってはなりません。これらの識別子については、シンボルテーブルが事前にロードされており、これらの識別子の再定義を許可すると元の定義が上書きされてしまいます。これは、おそらく恒久的な制約です。 +Х륹Υפ줿̻ҤϡIDL ץߥƥַ \f2Object\fP ޤ \f2ValueBase\fP Ʊ֤ǤäƤϤʤޤ󡣤μ̻ҤˤĤƤϡܥơ֥뤬˥ɤƤꡢμ̻ҤκĤȸ񤭤Ƥޤޤϡ餯ŪǤ .TP 2 o -\f2fixed\fP という IDL 型はサポートされていません。 +\f2fixed\fP Ȥ IDL ϥݡȤƤޤ .RE .LP -.SH "既知の問題点" -.LP - +.SH "Τ" .LP .RS 3 .TP 2 o -グローバル識別子についてインポートが生成されません。予期されないローカル impl を呼び出すと、例外を受け取ります。 しかし、その原因は、\f2ServerDelegate\fP DSI コード内の \f2NullPointerException\fP にあるようです。 +Х뼱̻ҤˤĤƥݡȤޤͽʤ impl ƤӽФȡ㳰ޤ θϡ\f2ServerDelegate\fP DSI \f2NullPointerException\fP ˤ褦Ǥ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/jar.1 b/jdk/src/linux/doc/man/ja/jar.1 index cea01c9efc8..acdc31b6a07 100644 --- a/jdk/src/linux/doc/man/ja/jar.1 +++ b/jdk/src/linux/doc/man/ja/jar.1 @@ -19,104 +19,93 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "02 Jun 2010" +.TH jar 1 "14 Apr 2011" .LP -.SH "名前" -jar \- Java ARchive ツール +.SH "̾" +jar \- Java ARchive ġ .LP -\f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。 +\f3jar\fP ʣΥե 1 Ĥ JAR ֥ե˷礷ޤ .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -コマンド行引数ファイル +ޥɹ԰ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .RS 3 .TP 3 -JAR ファイルの作成 +JAR եκ \f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの更新 +JAR եι \f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの抽出 +JAR ե \f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの内容の表形式による一覧表示 +JAR եƤɽˤɽ \f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルへのインデックスの追加 +JAR եؤΥǥåɲ \f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP .RE .LP .LP -説明 -.LP -.RS 3 - + .LP .RS 3 .TP 3 cuxtiv0Mmfe -\f2jar\fP コマンドを制御するオプション +\f2jar\fP ޥɤ椹륪ץ .TP 3 jarfile -作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、または内容の一覧表示 (\f2t\fP) の対象となる JAR ファイル。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から「JAR ファイル」が取得されるか (x および t の場合)、標準出力へ「JAR ファイル」が送信されます(c および u の場合)。 + (\f2c\fP) (\f2u\fP) (\f2x\fP)ޤܼɽ (\f2t\fP) оݤȤʤ JAR ե롣\f2f\fP ץȥե̾ \f2jarfile\fP Ȥڥˤʤޤ Ĥޤꡢ򵭽ҤС⤦⵭Ҥɬפޤ \f2f\fP \f2jarfile\fP άȡɸϤJAR եפ뤫 (x t ξ)ɸϤءJAR եפޤ(c u ξ) .TP 3 inputfiles -\f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f2O\fP (ゼロ) を使用しないかぎり圧縮されます。 +\f2jarfile\fP ˷礵뤫 (c u ξ)\f2jarfile\fP (x ξ) ޤϰɽ (t ξ) 롢Ƕڤ줿եޤϥǥ쥯ȥꡣ٤ƤΥǥ쥯ȥϺƵŪ˽ޤΥեϡץ \f20\fP () Ѥʤ갵̤ޤ .TP 3 manifest -\f2name\fP\f2:\fP\f2value\fP のペアが、JAR ファイルの MANIFEST.MF に含まれている既存のマニフェストファイル。\f2\-m\fP オプションとファイル名 \f2manifest\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 +JAR ե MANIFEST.MF ˴ޤ٤ \f2name\fP\f2:\fP \f2value\fP ڥޤޤƤ¸Υޥ˥եȥե롣\f2m\fP ץȥե̾ \f2manifest\fP ȤڥˤʤޤĤޤꡢ򵭽ҤС⤦⵭Ҥɬפޤ\f3m\fP\f3f\fP \f3e\fP νиϡ\f2manifest\fP\f2jarfile\fP\f2entrypoint\fP νиȰפɬפޤ .TP 3 entrypoint -実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。 どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 +¹Բǽ JAR ե˥Хɥ뤵줿ɥ󥢥ץꥱΥץꥱ󥨥ȥݥȤȤꤹ륯饹̾\f2\-e\fP ץ entrypoint ФˤʤäƤޤɤ餫ꤹξȤꤹɬפޤ\f3m\fP\f3f\fP \f3e\fP νиϡ\f2manifest\fP\f2jarfile\fP\f2entrypoint\fP νиȰפɬפޤ .TP 3 \-C\ dir -これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。\f2\-C\ \fP\f2dir\fP \f2inputfiles\fP のセットは複数使用できます。 +³ \f2inputfiles\fP ֡ǥ쥯ȥ \f2dir\fP ذŪѹޤ \f2\-C\ \fP\f2\-\ dir\fP \f2inputfiles\fP ΥåȤʣѤǤޤ .TP 3 \-Joption -Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。 +Java ¹ԴĶϤ륪ץ\f2\-J\fP \f2option\fP δ֤ˤ϶ʤǤ .RE .LP -.RE -.SH "説明" +.SH "" .LP - -.LP -\f3jar\fP ツールは、複数のファイルを 1 つの JAR アーカイブファイルに結合します。 \f3jar\fP は、ZIP および +\f3jar\fP ġʣΥե 1 Ĥ JAR ֥ե˷礷ޤ\f3jar\fP ϡZIP .na \f2ZLIB\fP @ .fi -http://www.gzip.org/zlib/ 圧縮形式をベースにした、汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これによって、ダウンロードの回数が大幅に減ります。 また、\f3jar\fP はファイルを圧縮するので、ダウンロード時間も短くなります。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。 +http://www.gzip.org/zlib/ ̷˴ŤѤΥ֤Ӱ̥ġǤ \f3jar\fP ġμŪϡĤ Java ץåȤ䥢ץꥱ 1 ĤΥ֤礹뤳ȤǤץåȤ䥢ץꥱΥݡͥ (ե롢᡼ӥ) 1 ĤΥ֤˷礵ƤȡJava (֥饦ʤ) ϡΥݡͥȤ 1 HTTP ȥ󥶥ǥɤ뤳ȤǤݡͥȤȤ˿³ɬפȤ뤳Ȥޤ󡣤ˤꡢɻ֤ṳ̂ޤޤ\f3jar\fP ϥեΰ̤ԤΤǡɻ֤ṳ̂ޤޤեθġΥȥ˥ץåȺԤˤ̾񤭹Τǡ۸ǧڤǽˤʤޤjar ġιʸϡ\f2tar\fP ޥɤιʸȤۤƱǤ\f3JAR\fP ֤ϡ̤Ƥ뤫ɤˤ餺饹ѥΥȥȤƻѤǤޤ .LP -複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。 -.LP -.RS 3 - +ʣΥե JAR եط礹ŪʻˡϼΤȤǤ .LP .nf \f3 @@ -125,19 +114,15 @@ http://www.gzip.org/zlib/ 圧縮形式をベースにした、汎用のアーカ .fl \fP .fi -.RE .LP -この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、\f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「 +ǤϡߤΥǥ쥯ȥˤ륯饹 (.class) ե뤬٤ơ\f2myFile.jar\fP Ȥ̾Υե˳Ǽޤjar ġϼưŪˡ \f2META\-INF/MANIFEST.MF\fP Ȥ̾Υޥ˥եȥե륨ȥޤϾˡJAR եκǽΥȥˤʤޤޥ˥եȥեϡ֤˴ؤ᥿Υǡ \f2name\ :\ value\fP ڥȤƳǼޤjar ġ뤬ޥ˥եȥե˥᥿Ǽˡξܺ٤ˤĤƤϡ .na \f2JAR file specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifestפ򻲾ȤƤ .LP -既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。 -.LP -.RS 3 - +¸Υޥ˥եȥե˳Ǽ줿 \f2name\ :\ value\fP ڥ JAR ե˴ޤɬפˤϡΥե򼡤Τ褦 \f2\-m\fP ץȤäƻꤷޤ .LP .nf \f3 @@ -146,20 +131,16 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest .fl \fP .fi -.RE .LP -既存のマニフェストファイルは改行文字で終わっている必要があります。 マニフェストファイルが改行文字で終わっていない場合、\f3jar\fP はその最後の行を解析しません。 +¸Υޥ˥եȥեϲʸǽäƤɬפޤޥ˥եȥե뤬ʸǽäƤʤȡ\f3jar\fP ϤκǽԤϤޤ .br .LP .br .LP -\f3注:\ \fPコマンド行に \f2cmf\fP ではなく \f2cfm\fP が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず JAR アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。 次に例を示します。 -.RS 3 - -.LP +\f3:\ \fPޥɹԤ \f2cmf\fP ǤϤʤ \f2cfm\fP ꤵ줿 jar ޥ (m \-f ץν֤դˤ) ξ硢\f3jar\fP ޥɹԤˤޤ JAR ֤̾ꤷ³ƥޥ˥եȥե̾ꤹɬפޤ 򼨤ޤ .nf \f3 .fl @@ -167,15 +148,11 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest .fl \fP .fi -.RE .LP -マニフェストは、RFC822 ASCII 形式で規定されたテキスト形式であるため、マニフェストファイルの内容を簡単に表示および編集できます。 +ޥ˥եȤϡRFC822 ASCII ǵꤵ줿ƥȷǤ뤿ᡢޥ˥եȥեƤñɽԽǤޤ .LP -JAR ファイルからファイルを抽出する場合は、\f2x\fP を使用します。 -.LP -.RS 3 - +JAR ե뤫եФϡ \f2x\fP Ѥޤ .LP .nf \f3 @@ -184,14 +161,10 @@ JAR ファイルからファイルを抽出する場合は、\f2x\fP を使用 .fl \fP .fi -.RE .LP .LP -jar ファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。 -.LP -.RS 3 - +jar ե뤫̤ΥեФϡΥե̾ꤷޤ .LP .nf \f3 @@ -200,18 +173,14 @@ jar ファイルから個別のファイルを抽出する場合は、そのフ .fl \fP .fi -.RE .LP .LP -JDK のバージョン 1.3 以降から、\f2jar\fP ユーティリティーで +JDK ΥС 1.3 ʹߤ顢\f2jar\fP 桼ƥƥ .na \f2JarIndex\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex がサポートされています。 JarIndex を使用すると、アプリケーションのクラスローダーで JAR ファイルからクラスがロードされるときの効率が向上します。アプリケーションまたはアプレットが複数の JAR ファイルにバンドルされている場合は、クラスがロードされるときに、必要な JAR ファイル以外のダウンロードおよびオープンは行われません。このパフォーマンスの最適化は、新しい \f2\-i\fP オプションを指定して \f2jar\fP を実行すると有効になります。このオプションを使うと、指定した JAR メインファイルとそのメインファイルが依存しているすべての JAR ファイルについて、パッケージ位置情報が生成されます。 メインファイルが依存している JAR ファイルは、JAR メインファイルのマニフェストの \f2Class\-Path\fP 属性に指定しておく必要があります。 -.LP -.RS 3 - +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index ݡȤƤޤ JarIndex ѤȡץꥱΥ饹 JAR ե뤫饯饹ɤȤθΨ夷ޤץꥱޤϥץåȤʣ JAR ե˥Хɥ뤵Ƥϡ饹ɤȤˡɬפ JAR եʳΥɤӥץϹԤޤ󡣤Υѥեޥ󥹤κŬϡ \f2\-i\fP ץꤷ \f2jar\fP ¹ԤͭˤʤޤΥץȤȡꤷ JAR ᥤեȡΥᥤե뤬¸Ƥ뤹٤Ƥ JAR եˤĤơѥå־ޤᥤե뤬¸Ƥ JAR եϡJAR ᥤեΥޥ˥եȤ \f2Class\-Path\fP °˻ꤷƤɬפޤ .LP .nf \f3 @@ -220,52 +189,42 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex がサ .fl \fP .fi -.RE .LP .LP -この例では、\f2INDEX.LIST\fP ファイルが \f2main.jar\fP の \f2META\-INF\fP ディレクトリに挿入されます。 +Ǥϡ \f2INDEX.LIST\fP ե뤬 \f2main.jar\fP \f2META\-INF\fP ǥ쥯ȥޤ .br .br -このファイルに格納されている情報を使用して、アプリケーションのクラスローダーは、効率的にクラスをロードします。 インデックスファイルに位置情報を格納する方法の詳細は、 「\f2JarIndex\fP 仕様」を参照してください。 +Υե˳ǼƤѤơץꥱΥ饹ϡΨŪ˥饹ɤޤǥåե˰־Ǽˡξܺ٤ϡJarIndex ͡פ򻲾ȤƤ .br .br -ディレクトリをコピーするには、まず \f2dir1\fP 内のファイルを圧縮して標準出力に出力し、続いて標準入力から \f2dir2\fP に抽出します (両方の \f2jar\fP コマンドから \f2\-f\fP オプションを省く)。 次に例を示します。 -.LP -.RS 3 - +ǥ쥯ȥ򥳥ԡˤϡޤ \f2dir1\fP Υե򰵽̤ \f2stdout\fP ˽Ϥ³ \f2stdin\fP Ф \f2dir2\fP ˽Ϥޤ (\f2\-f\fP ץϤɤ \f2jar\fP ޥɤǤά) .LP .nf \f3 .fl -% (cd dir1; jar c .) | (cd dir2; jar x) +% (cd dir1; jar c .)| (cd dir2; jar x) .fl \fP .fi -.RE .LP .LP -\f2jar\fP を使って JAR ファイルや JAR ファイルマニフェストを操作するコマンドサンプルを確認するには、「例」を参照してください。また、「 +\f2jar\fP Ѥ JAR ե JAR ޥ˥եȥե륵ץ륳ޥɤǧϡҤΡפ򻲾ȤƤޤ .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar」の JAR コースも参照してください。 +http://download.oracle.com/javase/tutorial/deployment/jarפ JAR ⻲ȤƤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 c -\f2jarfile\fP の名前で新しいアーカイブファイルを作成するか (\f2f\fP が指定されている場合)、標準出力で作成します (\f2f\fP と \f2jarfile\fP が省略されている場合)。\f2inputfiles\fP で指定されたファイルとディレクトリを、このアーカイブに追加します。 +f ꤵ줿 \f2jarfile\fP Ȥ̾ \f2\fP ֥ե \f2\fP f \f2jarfile\fP ά줿ɸϤ˾Ϥޤ\f2inputfiles\fP ǻꤵ줿եȥǥ쥯ȥ򡢤Υ֤ɲäޤ .TP 3 u -\f2inputfiles\fP で指定されたファイルとディレクトリを追加することにより、既存のファイル \f2jarfile\fP を更新します (\f2f\fP が指定されている場合)。 例を示します。 -.RS 3 - -.LP +f ꤵƤˡ¸ե \f2jarfile\fP \f2Ūǡ\fP \f2inputfiles\fP ˻ꤵ줿եǥ쥯ȥɲäޤ򼨤ޤ .nf \f3 .fl @@ -273,11 +232,7 @@ jar uf foo.jar foo.class .fl \fP .fi -.RE -上のコマンドは、ファイル \f2foo.class\fP を既存の JAR ファイル \f2foo.jar\fP に追加します。次の例に示すように、\f2\-u\fP オプションは、マニフェストエントリも更新できます。 -.RS 3 - -.LP +Υޥɤϡե \f2foo.class\fP ¸ JAR ե \f2foo.jar\fP ɲäޤ˼褦ˡ\f2\-u\fP ץϡޥ˥եȥȥ⹹Ǥޤ .nf \f3 .fl @@ -285,20 +240,16 @@ jar umf manifest foo.jar .fl \fP .fi -.RE -\f2foo.jar\fP マニフェストをマニフェスト内の \f2name:value\fP ペアで更新します。 +\f2foo.jar\fP ޥ˥եȤޥ˥ե \f2name:value\fP ڥǹޤ .TP 3 x -\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、ファイルとディレクトリを抽出します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが抽出されます。指定されていなければ、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。 +f ꤵ줿 \f2jarfile\fP \f2\fP \f2f\fP \f2jarfile\fP ά줿ɸϤ顢եǥ쥯ȥФޤ\f2inputfiles\fP ꤵƤϡλꤷեȥǥ쥯ȥФޤꤵƤʤС٤ƤΥեȥǥ쥯ȥ꤬ФޤФ줿եϡꤵ줿ΤǤ .TP 3 t -\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、内容を表形式で一覧表示します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが一覧表示されます。指定されていなければ、すべてのファイルとディレクトリが一覧表示されます。 +f ꤵ줿 \f2jarfile\fP \f2\fP \f2f\fP \f2jarfile\fP ά줿ɸϤ顢ܼɽޤ\f2inputfiles\fP ꤵƤϡλꤷեȥǥ쥯ȥɽޤꤵƤʤС٤ƤΥեȥǥ쥯ȥ꤬ɽޤ .TP 3 i -指定された \f2jarfile\fP と、それに依存する JAR ファイルについて、インデックス情報を生成します。例を示します。 -.RS 3 - -.LP +ꤵ줿 \f2jarfile\fP ȡ˰¸ JAR եˤĤơǥåޤȤС .nf \f3 .fl @@ -306,29 +257,25 @@ jar i foo.jar .fl \fP .fi -.RE .LP -上のコマンドは、\f2foo.jar\fP 内に \f2INDEX.LIST\fP ファイルを生成します。 このファイルには、\f2foo.jar\fP と、\f2foo.jar\fP の \f2Class\-Path\fP 属性に指定されたすべての JAR ファイルに入っている各パッケージの位置情報が書き込まれています。 インデックスの例を参照してください。 +Υޥɤϡ\f2foo.jar\fP \f2INDEX.LIST\fP եޤ Υեˤϡ\f2foo.jar\fP ȡ\f2foo.jar\fP \f2Class\-Path\fP °˻ꤵ줿٤Ƥ JAR եäƤƥѥåΰ־󤬽񤭹ޤƤޤǥå򻲾ȤƤ .TP 3 f -作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、インデックス追加 (\f2i\fP)、または表示 (\f2t\fP) 対象のファイル \f2jarfile\fP を指定します。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から JAR ファイル名が使用されたり (x および t の場合)、標準出力に jar ファイルが 送信されたりします (c および u の場合)。 +γƽоݤȤʤե \f2jarfile\fP ꤷޤ (\f2c\fP) (\f2u\fP) (\f2x\fP)ǥåɲ (\f2i\fP)ޤɽ (\f2t\fP)\f2f\fP ץȥե̾ \f2jarfile\fP Ȥڥˤʤޤ Ĥޤꡢ򵭽ҤС⤦⵭ҤɬפޤOmitting \f2f\fP \f2jarfile\fP άȡx t ξ \f2ɸ\fP JAR ե̾졢c u ξ \f2ɸ\fP JAR ե뤬ޤ .TP 3 v -詳細な出力を標準出力に生成します。あとで例を示します。 +ܺ٤ʽϤɸϤޤȤ򼨤ޤ .TP 3 0 -(ゼロ) ZIP による圧縮を使用せずに、保存します。 +() ZIP ˤ밵̤Ѥˡ¸ޤ .TP 3 M -マニフェストファイルエントリを作成しません (c および u の場合)。 または、マニフェストファイルエントリが存在する場合にそれを削除します (u の場合)。 +ޥ˥եȥե륨ȥޤ (c u ξ)ޤϡޥ˥եȥե륨ȥ꤬¸ߤˤޤ (u ξ) .TP 3 m -\f2META\-INF/MANIFEST.MF\fP のファイルで指定したマニフェストファイル \f2manifest\fP の \f2name :value\fP の属性ペアを組み込みます。すでに同じ名前で存在しない限り、 \f2jar\fP はその \f2name\ :\ value\fP ペアを追加します。同じ名前で存在する場合は、\f2jar\fP はその値を更新します。 -.LP -コマンド行で、\f3m\fP と \f3f\fP の文字は、\f2manifest\fP と \f2jarfile\fP の入力順序と同じ順序で記述する必要があります。たとえば、次のようにして使います。 -.RS 3 - +\f2META\-INF/MANIFEST.MF\fP Υեǻꤷޥ˥եȥե \f2manifest\fP \f2name : value\fP °ڥȤ߹ߤޤ \f2jar\fP ϡǤƱ̾¸ߤʤꡢ \f2name:value\fP ڥɲäޤƱ̾¸ߤ硢 \f2jar\fP Ϥͤ򹹿ޤ .LP +ޥɹԤǡ\f3m\fP \f3f\fP ʸϡ\f2manifest\fP \f2jarfile\fP ϽƱǵҤɬפޤȤСΤ褦ˤƻȤޤ .nf \f3 .fl @@ -336,22 +283,17 @@ jar cmf myManifestFile myFile.jar *.class .fl \fP .fi -.RE -デフォルトのマニフェストには含まれないマニフェストに、特別な目的の \f2name\ :\ value\fP の属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージシーリング、または JAR にバンドルされたアプリケーションを実行するための属性を追加できます。\f4\-m\fP オプションの使用例については、「Java Tutorial」 にある「 +ǥեȤΥޥ˥եȤˤϴޤޤʤޥ˥եȤˡ̤Ū \f2name\ :\ value\fP °ڥɲäǤޤȤС٥󡢥С󡢥ѥå󥰡ޤ JAR ˥Хɥ뤵줿ץꥱ¹Ԥ뤿°ɲäǤޤJava TutorialפΡ .na \f2JAR Files\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar/」コースを参照してください。 -.LP +http://download.oracle.com/javase/tutorial/deployment/jar/ץ򻲾Ȥ \f4\-m\fP ץλǧƤ .TP 3 e -実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、\f2entrypoint\fP を設定します。このオプションを使用すると、マニフェストファイル内の \f2Main\-Class\fP 属性値が作成または上書きされます。 このオプションは、JAR ファイルの作成中または更新中に使用できます。 このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。 +¹Բǽ JAR ե˥Хɥ뤵줿ɥ󥢥ץꥱΥץꥱ󥨥ȥݥȤȤơ\f2entrypoint\fP ꤷޤΥץѤȡޥ˥եȥե \f2Main\-Class\fP °ͤޤϾ񤭤ޤΥץϡJAR եκޤϹ˻ѤǤޤΥץȤСޥ˥եȥեԽޤϺ뤳ȤʤˡץꥱΥȥݥȤǤޤ .br .br -たとえば、次のコマンドは \f2Main.jar\fP を作成しますが、その際、マニフェストファイル内の \f2Main\-Class\fP 属性値は \f2Main\fP に設定されます。 -.RS 3 - -.LP +ȤСΥޥɤǤ \f2Main.jar\fP ޤκݡޥ˥ե \f2Main\-Class\fP °ͤ \f2Main\fP ꤵޤ .nf \f3 .fl @@ -359,12 +301,8 @@ jar cfe Main.jar Main Main.class .fl \fP .fi -.RE -.LP -次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。 -.RS 3 - .LP +Υޥɤ¹Ԥ java 󥿥फľܤΥץꥱưǤޤ .nf \f3 .fl @@ -372,11 +310,7 @@ java \-jar Main.jar .fl \fP .fi -.RE -エントリポイントのクラス名が特定のパッケージ内に存在している場合、エントリポイントの区切り文字としてドット (「.」) またはスラッシュ (「/」) を使用できます。たとえば、\f2Main.class\fP が \f2foo\fP という名前のパッケージ内に存在している場合、次のようにしてエントリポイントを指定できます。 -.RS 3 - -.LP +ѥå˥ȥݥȤΥ饹̾ޤޤƤ硢ɥå (.) å (/) Τ줫ʸ򤽤ζڤʸȤƻѤǤޤȤС \f2Main.class\fP \f2foo\fP Ȥ̾Υѥå˴ޤޤƤ硢ȥݥȤϼΤ褦ˤƻǤޤ .nf \f3 .fl @@ -384,11 +318,7 @@ jar \-cfe Main.jar foo/Main foo/Main.class .fl \fP .fi -.RE -または -.RS 3 - -.LP +ޤ .nf \f3 .fl @@ -396,18 +326,14 @@ jar \-cfe Main.jar foo.Main foo/Main.class .fl \fP .fi -.RE -\f3注:\ \fP \f2\-m\fP オプションと \f2\-e\fP オプションの両方を同時に指定する場合、指定されたマニフェストにも \f2Main\-Class\fP 属性が含まれていると、\f2Main.class\fP の指定があいまいになってエラーが発生し、JAR の作成または更新処理が異常終了します。 +\f3:\ \fP \f2\-m\fP ץ \f2\-e\fP ץξƱ˻ꤷ硢ꤷޥ˥եȤˤ \f2Main\-Class\fP °ޤޤƤС \f2Main.class\fP λ꤬ޤˤʤäƥ顼ȯJAR κ乹۾ェλޤ .LP .TP 3 \-C \ dir -\f2jar\fP コマンドの実行中に後続の \f2inputfiles\fP 引数を処理するときに、一時的にディレクトリを変更します (\f2cd\fP\ \f2dir\fP)。この処理は、UNIX の \f2tar\fP ユーティリティーの \f2\-C\fP オプションの機能に類似しています。 +\f2jar\fP ޥɤμ¹˸³ \f2inputfiles\fP ȤˡŪ˥ǥ쥯ȥѹޤ (cd \f2dir\fP)νϡUNIX \f2tar\fP 桼ƥƥ \f2\-C\fP ץεǽƤޤ .br .br -たとえば、次のコマンドは、\f2classes\fP ディレクトリに移動し、そのディレクトリから \f2bar.class\fP を \f2foo.jar\fP に追加します。 -.RS 3 - -.LP +ȤСΥޥɤϡ\f2classes\fP ǥ쥯ȥ˰ưΥǥ쥯ȥ꤫ \f2bar.class\fP \f2foo.jar\fP ɲäޤ .nf \f3 .fl @@ -415,23 +341,15 @@ jar uf foo.jar \-C classes bar.class .fl \fP .fi -.RE -次のコマンドでは、\f2classes\fP ディレクトリに移動し、\f2classes\fP ディレクトリ内のすべてのファイルを \f2foo.jar\fP に追加します (jar ファイルには classes ディレクトリを作成しません)。 次に元のディレクトリに戻ってから、\f2bin\fP ディレクトリに移動し、\f2xyz.class\fP を \f2foo.jar\fP に追加します。 -.RS 3 - -.LP +ΥޥɤǤϡ\f2classes\fP ǥ쥯ȥ˰ư\f2classes\fP ǥ쥯ȥΤ٤ƤΥե \f2foo.jar\fP ɲäޤ (jar եˤ classes ǥ쥯ȥޤ)˸Υǥ쥯ȥäƤ顢\f2bin\fP ǥ쥯ȥ˰ư\f2xyz.class\fP \f2foo.jar\fP ɲäޤ .nf \f3 .fl -jar uf foo.jar \-C classes . \-C bin xyz.class +jar uf foo.jar \-C classes .\-C bin xyz.class .fl \fP .fi -.RE -\f2classes\fP に \f2bar1\fP と \f2bar2\fP が保持されている場合、\f2jar tf foo.jar\fP を使用すると、JAR ファイルには次の要素が含められます。 -.RS 3 - -.LP +\f2classes\fP ˥ե \f2bar1\fP \f2bar2\fP ǼƤˡ \f2jar tf foo.jar\fP ѤȤ JAR եȤ򡢼˼ޤ .nf \f3 .fl @@ -447,30 +365,24 @@ xyz.class .fl \fP .fi -.RE .LP .TP 3 \-Joption -Java 実行環境に \f2option\fP を渡します。 \f2option\fP には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f4\-J\-Xmx48M\fP と指定すると、最大メモリーは 48M バイトに設定されます。\f2\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ¹ԴĶ \f2option\fP Ϥޤ \f2option\fP ˤϡJava ץꥱưġפΥե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС \f4\-J\-Xmx48M\fP Ȼꤹȡ꡼ 48M ХȤꤵޤ\f2\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.SH "コマンド行引数ファイル" +.SH "ޥɹ԰ե" .LP - +jar ΥޥɹԤûʷˤꤹ뤿ˡjar ޥɤФ (\-J ץ) ޤ 1 İʾ \f2ե\fP ꤹ뤳Ȥ \f2Ǥޤ\fP ˤꡢǤդĹ jar ޥɤǤڥ졼ƥ󥰥ƥˤ륳ޥɹԤ¤ޤ .LP -jar のコマンド行を短くしたり簡潔にしたりするために、\f2jar\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。これにより、任意の長さの jar コマンドを作成でき、オペレーティングシステムによるコマンド行の制限から解放されます。 -.LP -引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。 引数ファイルの位置から見た相対パスではありません。ワイルドカード (*) は、通常ならばオペレーティングシステムシェルによってあらゆる文字に解釈されますが、この場合はそのようには解釈されません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 +եˤϥץȥե̾ޤ뤳ȤǤޤեγưϡڡޤϲԤǶڤޤեΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣥磻ɥ (*) ϡ̾ʤХڥ졼ƥ󥰥ƥॷˤäƤʸ˲ᤵޤξϤΤ褦ˤϲᤵޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ\f2\-J\fP ץ⥵ݡȤƤޤ󡣤ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP .LP -\f2jar\fP を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。\f2jar\fP は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 +\f2jar\fP ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤ \f2jar\fP ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .br .br -次の例では、\f2find\fP コマンドから出力されたファイル名を \f2classes.list\fP 内に格納しています。 -.LP -.RS 3 - +ǡ \f2classes.list\fP ˤϡ \f2find\fP ޥɤˤäƽϤ줿ե̾Ǽޤ .LP .nf \f3 @@ -478,14 +390,10 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j % find \fP\f3.\fP \-name '*.class' \-print > classes.list .fl .fi -.RE .LP .LP -その後、引数ファイル構文を使って \f2jar\fP にリストを渡すと、\f2Classes.list\fP で \f2jar\fP コマンドを実行できます。 -.LP -.RS 3 - +ˡե빽ʸѤ \f2classes.list\fP jar ϤȤǡ \f2Υꥹ\fP Ф \f2jar\fP ޥɤ¹ԤǤޤ .LP .nf \f3 @@ -494,13 +402,9 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j .fl \fP .fi -.RE - -.LP -引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。 次に例を示します。 -.RS 3 .LP +եϥѥǤޤХѥҤ줿եΤ٤ƤΥե̾ϡϤ줿ѥФŪǤϤʤߤκȥǥ쥯ȥŪȤʤޤϤǤ .nf \f3 .fl @@ -508,20 +412,14 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j .fl \fP .fi -.RE .LP .LP .LP -.SH "例" -.LP - -.LP -特定のディレクトリ内のすべてのファイルをアーカイブに追加する (そのアーカイブがすでに存在する場合は、その内容を上書きする) には、次のようにします。\f2\-v\fP オプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。 -.RS 3 - +.SH "" .LP +Υǥ쥯ȥΤ٤ƤΥե򥢡֤ɲä (Υ֤Ǥ¸ߤϡƤ񤭤) ˤϡΤ褦ˤޤ\f2\-v\fP ץѤƾܺ٤󤹤褦˻ꤹȡǿιʤɡΥեˤĤƤξܺپɽޤ .nf \f3 .fl @@ -557,13 +455,9 @@ adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%) .fl \fP .fi -.RE - -.LP -すでに画像、オーディオファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一の JAR ファイルに結合できます。 -.RS 3 .LP +Ǥ˲ǥե롢ӥ饹ѤΥ֥ǥ쥯ȥʬƤϡñ JAR ե˷Ǥޤ .nf \f3 .fl @@ -607,13 +501,9 @@ audio/ bundle.jar classes/ images/ .fl \fP .fi -.RE - -.LP -JAR ファイルのエントリ名を表示するには、「\f2t\fP」オプションを使用します。 -.RS 3 .LP +JAR եΥȥ̾ɽˤϡ\f2t\fPץץѤޤ .nf \f3 .fl @@ -641,28 +531,24 @@ images/at_work.gif .fl \fP .fi -.RE .LP .LP -クラスロードを高速にするためにインデックスファイルを JAR ファイルに追加するには、「\f2i\fP」オプションを使用します。 +饹ɤ®ˤ뤿˥ǥåե JAR եɲäˤϡ\f2i\fPץץѤޤ .br .br -例: +: .br .LP -.RS 3 - -.LP -たとえば、株取引アプリケーション用の相互依存したクラスを、\f2main.jar\fP、\f2buy.jar\fP、および \f2sell.jar\fP という 3 つの JAR ファイルに分割したとします。 +ȤСץꥱ¸Ƥ륯饹\f2main.jar\fP\f2buy.jar\fP \f2sell.jar\fP Ȥ 3 Ĥ JAR եʬ䤷Ȥޤ .br .LP .br .LP -\f2main.jar\fP のマニフェストの \f2Class\-path\fP 属性に次のように指定した場合、 +\f2main.jar\fP Υޥ˥եȤ \f2Class\-path\fP °˼Τ褦˻ꤷ硢 .nf \f3 .fl @@ -672,7 +558,7 @@ Class\-Path: buy.jar sell.jar .fi .LP -\f2\-i\fP オプションを使用すれば、アプリケーションのクラスの 読み込みを高速化できます。 +\f2\-i\fP ץѤСץꥱΥ饹 ɤ߹ߤ®Ǥޤ .nf \f3 .fl @@ -682,38 +568,34 @@ Class\-Path: buy.jar sell.jar .fi .LP -\f2INDEX.LIST\fP ファイルが \f2META\-INF\fP ディレクトリに挿入されます。この結果、アプリケーションのクラスローダーによってクラスまたは リソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。 -.RE -.SH "関連項目" +\f2INDEX.LIST\fP ե뤬 \f2META\-INF\fP ǥ쥯ȥޤη̡ץꥱΥ饹ˤäƥ饹ޤϥ꥽θԤȤˡŬڤ jar ե뤬ɤޤ +.SH "Ϣ" .LP - .LP .na -\f2「JAR ファイルの概要」\fP @ +\f2JAR եγ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html -.br - +.LP .LP .na -\f2「JAR ファイルの仕様」\fP @ +\f2JAR եλ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html -.br - +.LP .LP .na -\f2「Jar インデックス」\fP @ +\f2JarIndex λ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex -.br - +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index +.LP .LP .na -\f2「Jar チュートリアル」\fP @ +\f2JAR 塼ȥꥢ\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar (Java Software の Web サイト内) -.br - +http://download.oracle.com/javase/tutorial/deployment/jar/index.html .LP -pack200(1) +.LP +pack200(1) +.LP + diff --git a/jdk/src/linux/doc/man/ja/jarsigner.1 b/jdk/src/linux/doc/man/ja/jarsigner.1 index 3f224f76e0b..c349b53e8d6 100644 --- a/jdk/src/linux/doc/man/ja/jarsigner.1 +++ b/jdk/src/linux/doc/man/ja/jarsigner.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,117 +19,1010 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "02 Jun 2010" +.TH jarsigner 1 "14 Apr 2011" .LP -.SH "名前" -jarsigner \- JAR 署名および検証ツール -.LP -.RS 3 - +.SH "̾" +jarsigner \- JAR ̾Ӹڥġ .LP .LP -Java ARchive (JAR) ファイルの署名を生成し、署名付き JAR ファイルの署名を検証します。 +Java ARchive (JAR) եν̾̾դ JAR եν̾򸡾ڤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl \fP\f3jarsigner\fP [ options ] jar\-file alias .fl -\f3jarsigner\fP \-verify [ options ] jar\-file +\f3jarsigner\fP \-verify [ options ] jar\-file [alias...] .fl .fi .LP -.SH "説明" .LP - +jarsigner \-verify ޥɤǤϡJAR ե̾ΤȤ 0 İʾΥȥ̾Ǥޤȥ̾ꤵ줿硢jarsigner ϡJAR եγƽ̾դƥƥθڤ˻Ѥ񤬥ȥ̾Τ줫˰פ뤳Ȥåޤ̾ϡ\-keystore ǻꤵ줿ȥޤϥǥեȤΥȥޤ +.LP +.SH "" .LP .LP -\f3jarsigner\fP ツールは、次の 2 つの目的で使用します。 +\f3jarsigner\fP ġϡ 2 ĤŪǻѤޤ .LP .RS 3 .TP 3 1. -Java ARchive (JAR) ファイルに署名を付ける +Java ARchive (JAR) ե˽̾դ .TP 3 2. -署名付き JAR ファイルの署名と整合性を検証する +̾դ JAR եν̾򸡾ڤ .RE .LP .LP -JAR 機能を使うと、クラスファイル、イメージ、サウンド、およびその他のデジタルデータを単一のファイルにパッケージ化できるので、ファイルを迅速かつ容易に配布できます。開発者は、jar(1) という名前のツールを使って JAR ファイルを作成できます。技術的な観点から言えば、すべての ZIP ファイルも JAR ファイルとみなすことができます。 ただし、\f3jar\fP によって作成された JAR ファイル、または \f3jarsigner\fP によって処理された JAR ファイルには、META\-INF/MANIFEST.MF ファイルが含まれています。 +JAR ǽȤȡ饹ե롢᡼ɡӤ¾ΥǥǡñΥե˥ѥåǤΤǡե®ưפۤǤޤȯԤϡjar(1) Ȥ̾ΥġȤä JAR եǤޤŪʴС٤Ƥ ZIP ե JAR եȤߤʤȤǤޤ \f3jar\fP ˤäƺ줿 JAR ե롢ޤ \f3jarsigner\fP ˤäƽ줿 JAR եˤϡMETA\-INF/MANIFEST.MF ե뤬ޤޤƤޤ .LP .LP -「デジタル署名」は、なんらかのデータ (「署名」の対象となるデータ) と、エンティティー (人、会社など) の非公開鍵とに基づいて計算されるビット列です。手書きの署名同様、デジタル署名には多くの利点があります。 +֥ǥ̾פϡʤ餫Υǡ (ֽ̾פоݤȤʤǡ) ȡƥƥ (͡Ҥʤ) Ȥ˴ŤƷ׻ӥåǤ񤭤ν̾Ʊ͡ǥ̾ˤ¿ޤ .LP .RS 3 .TP 2 o -署名の生成に使われた非公開鍵と対になる公開鍵を使って計算を行うことで、デジタル署名が本物かどうかを検証できる +̾˻Ȥ줿ФˤʤȤäƷ׻ԤȤǡǥ̾ʪɤ򸡾ڤǤ .TP 2 o -非公開鍵が他人に知られない限り、デジタル署名の偽造は不可能である +¾ͤΤʤ¤ꡢǥ̾ε¤ԲǽǤ .TP 2 o -デジタル署名は、その署名が付いたデータだけを対象とするものであり、ほかのデータの署名として機能することはない +ǥ̾ϡν̾դǡоݤȤΤǤꡢۤΥǡν̾ȤƵǽ뤳ȤϤʤ .TP 2 o -署名付きのデータは変更できない。 データが変更された場合は、その署名によってデータが本物ではないことが検証される +̾դΥǡѹǤʤ ǡѹ줿ϡν̾ˤäƥǡʪǤϤʤȤڤ .RE .LP .LP -ファイルに対してエンティティーの署名を生成するには、まず、エンティティーは、そのエンティティーに関連する公開鍵と非公開鍵のペアを持つ必要があります。 また、公開鍵を認証する 1 つまたは複数の証明書も必要です。「証明書」とは、あるエンティティーが発行したデジタル署名付きの文書で、別なエンティティーの公開鍵が特定の値であることを証明しています。 +եФƥƥƥν̾ˤϡޤƥƥϡΥƥƥ˴ϢΥڥɬפޤޤǧڤ 1 ĤޤʣξɬפǤ־פȤϡ륨ƥƥȯԤǥ̾դʸǡ̤ʥƥƥθͤǤ뤳ȤƤޤ .LP .LP -\f3jarsigner\fP は、「キーストア」に含まれる鍵と証明書情報を使って、JAR ファイルのデジタル署名を生成します。キーストアは、非公開鍵と、非公開鍵に関連付けられた X.509 証明書チェーンが収められたデータベースです。キーストアの作成と管理には、keytool(1) ユーティリティーを使います。 +\f3jarsigner\fP ϡ֥ȥפ˴ޤޤ븰ȾȤäơJAR եΥǥ̾ޤȥϡȡ˴Ϣդ줿 X.509 󤬼줿ǡ١Ǥȥκȴˤϡkeytool(1) 桼ƥƥȤޤ .LP .LP -\f3jarsigner\fP は、エンティティーの非公開鍵を使って署名を生成します。署名付き JAR ファイルには、ファイルの署名に使用する非公開鍵に対応する公開鍵を保存するキーストアからとった証明書のコピーも含まれています。 \f3jarsigner\fP は、署名付き JAR ファイルのデジタル署名を、ファイル内 (の署名ブロックファイル) に含まれている証明書を使って検証することができます。 +\f3jarsigner\fP ϡƥƥȤäƽ̾ޤ̾դ JAR եˤäˡեν̾˻Ѥ줿бФ롢ȥξΥԡޤޤƤޤ\f3jarsigner\fP ϡ̾դ JAR ե (֥̾åե) ˤѤƤΥեΥǥ̾򸡾ڤǤޤ .LP .LP -5.0 以降では、\f3jarsigner\fP はタイムスタンプを含む署名を生成するので、システムやデプロイヤ (Java Plug\-in を含む) はJAR ファイルが署名証明書の有効期間中に署名されたかどうかをチェックできます。さらに、5.0 で追加された API を使用して、アプリケーションはタイムスタンプ情報を取得できます。 +\f3jarsigner\fP ϥॹפޤ̾Τǡƥǥץ (Java Plug\-in ޤ) JAR ե뤬̾ͭ˽̾줿ɤåǤޤˡAPI Ѥȡץꥱ󤫤饿ॹ׾Ǥޤ .LP .LP -現時点では、\f3jarsigner\fP で署名できるのは、JDK の jar(1) ツールで作成された JAR ファイル、または ZIP ファイルだけです。JAR ファイルは ZIP ファイルと同じですが、JAR ファイルには META\-INF/MANIFEST.MF ファイルが含まれている点が異なります。META\-INF/MANIFEST.MF ファイルは、\f3jarsigner\fP が ZIP ファイルに署名を付けるときに自動的に作成されます。 +Ǥϡ\f3jarsigner\fP ǽ̾ǤΤϡJDK jar(1) ġǺ줿 JAR ե롢ޤ ZIP եǤJAR ե ZIP եƱǤJAR եˤ META\-INF/MANIFEST.MF ե뤬ޤޤƤۤʤޤMETA\-INF/MANIFEST.MF եϡ\f3jarsigner\fP ZIP ե˽̾դȤ˼ưŪ˺ޤ .LP .LP -デフォルトでは、\f3jarsigner\fP は JAR (または ZIP) ファイルに「署名」を付けます。署名付き JAR ファイルを「検証」する場合は、\f2\-verify\fP オプションを指定します。 +ǥեȤǤϡ\f3jarsigner\fP JAR (ޤ ZIP) եˡֽ̾פդޤ̾դ JAR եָڡפϡ \f2\-verify\fP ץꤷޤ .LP .SS -JDK 1.1 との互換性 +ȥ̾ .LP -.RS 3 +.LP +ȥΤ٤ƤΥȥϡդΡ̾פ𤷤ƥޤ +.LP +.LP +\f3jarsigner\fP Ȥä JAR ե˽̾դȤϡ̾ɬפޤ७ȥȥ̾ꤹɬפޤȤСϡworking ǥ쥯ȥ mystore Ȥ̾Υȥ˴ޤޤ̾ duke ˴Ϣդ줿ȤäơMyJARFile.jar Ȥ̾ JAR ե˽̾դޤϥեϻꤵƤʤΤǡMyJARFile.jar Ͻ̾դ JAR եˤäƾ񤭤ޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-storepass myspass +.fl + \-keypass dukekeypasswd MyJARFile.jar duke +.fl +\fP +.fi .LP .LP -\f3keytool\fP ツールと \f3jarsigner\fP ツールは、JDK 1.1 で提供されていた \f3javakey\fP ツールを完全に置き換えるものです。これらの新しいツールは \f3javakey\fP よりも多くの機能を備えており、キーストアと非公開鍵をパスワードで保護する機能や、署名の生成に加えて署名を検証する機能を持っています。 +ȥϥѥɤݸƤΤǡȥΥѥ (Ǥ mypass) ꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥ (Ǥ dukekeypasswd) ꤹɬפޤ ޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ +.LP +.SS +ȥξ .LP .LP -新しいキーストアアーキテクチャーは、\f3javakey\fP が作成して管理していたアイデンティティーデータベースに代わるものです。キーストア形式と、JDK 1.1 の \f3javakey\fP が使っていたデータベース形式との間には下位互換性はありません。ただし、次のようなことは可能です。 +\f3jarsigner\fP ˤϡ \f2Ѥ륭ȥ URL ꤹ \-keystore\fP ޤȥ \f2\fP ǥեȤǡ \f2user.home\fP ƥץѥƥǷޤ桼Υۡǥ쥯ȥ .keystore Ȥ̾Υե˳ǼޤSolaris ƥξ硢 \f2user.home\fP ΥǥեȤϥ桼 home ǥ쥯ȥˤʤޤ +.LP +.LP +\-keystore ץ \f2˻ꤷ\fP ϥȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤդƤURL Ȥ \f2NONE\fP ꤵƤϡnull Υȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤޤ \f2NONE\fP ϡ \f2KeyStore\fP ե١ǤϤʤ硢ȤФ줬ϡɥȡǥХ¸ߤƤʤɤ˻ꤹ٤Ǥ +.LP +.SS +ȥμ +.LP +.LP +java.security ѥå \f2󶡤Ƥ\fP KeyStore 饹 \f2ϡ\fP ȥξؤΥӾѹԤΡΤ줿󥿥ե󶡤ޤȥθȤƤϡ줾줬Ρ֥ספΥȥоݤȤʣΰۤʤ¸߲ǽǤ +.LP +.LP +ߡȥμѤΤȤơ\f3keytool\fP \f3jarsigner\fP 2 ĤΥޥɹԥġȡ\f3Policy Tool\fP Ȥ̾ 1 Ĥ GUI ١Υġ뤬ޤKeyStore \f2\fP public ȤƻѲǽʤΤǡJava 2 SDK 桼 KeyStore ȤäۤΥƥץꥱǤޤ +.LP +.LP +ȥˤϡSun 󶡤Ȥ߹ߤΥǥեȤμޤϡJKS Ȥ̾ȼΥȥ () ѤΤǡȥեȤƼƤޤμǤϡġϸ̤Υѥɤˤäݸ졢ȥΤ (Ȥ̤) ѥɤˤäݸޤ +.LP +.LP +ȥμϡץХ١ǤŪˤϡ \f2KeyStore\fP ˤä󶡤륢ץꥱ󥤥󥿥ե֥ӥץХ󥿥ե (SPI) ˴ŤƼޤĤޤꡢбݥ饹 \f2KeystoreSpi\fP Ʊ \f2java.security\fP ѥå¸ߤƤꡢΥ饹ˤäơ֥ץХפɬפΤ륵ӥץХ󥿥ե᥽åɤƤޤǡ֥ץХפȤϡJava Security API ˤäƥǽʥӥΥ֥åȤФθ󶡤ѥåޤϥѥåνΤȤǤäơȥμ󶡤ˤϡ +.na +\f2Java Ź沽ƥ㡼ѥץХμˡ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlƤ褦ˡ饤Ȥ֥ץХפKeystoreSpi ֥饹μ󶡤ɬפޤ +.LP +.LP +ץꥱǤϡKeyStore 饹󶡤 getInstance եȥ᥽åɤȤȤǡޤޤʥץХۤʤ֥ספΥȥ \f2\fP ǤޤȥΥפϡȥγǼȥǡȤȤˡȥȥȥΤݸ뤿˻Ȥ륢르ꥺޤۤʤ륿פΥȥμˤϡߴϤޤ +.LP +.LP +\f3keytool\fP ϡǤդΥե١Υȥưޤkeytool ϡޥɹԤϤ줿ȥξե̾Ȥư FileInputStream ѴơFileInputStream 饭ȥξɤޤ\f3jarsigner\fP ġ \f3policytool\fP ġϡURL ǻǽǤդξ꤫饭ȥɤ߹ळȤǤޤ +.LP +.LP +\f3jarsigner\fP \f3keytool\fP ξ硢\f2\-storetype\fP ץȤäƥޥɹԤǥȥΥפǤޤ\f3Policy Tool\fP ξϡ[Edit] ˥塼 [Change Keystore] ޥɤȤäƥȥΥפǤޤ +.LP +.LP +桼ȥΥפŪ˻ꤷʤä硢ġϡñ˥ƥץѥƥեǻꤵ줿 \f2keystore.type\fP ץѥƥͤ˴Ťơȥμ򤷤ޤΥƥץѥƥե \f2java.security\fP ȸƤФ졢SDK ƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ¸ߤƤޤǡ\f2java.home\fP ϼ¹ԻĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment Υȥåץ٥ǥ쥯ȥ) Ǥ +.LP +.LP +ƥġϡ \f2keystore.type\fP ͤͤǻꤵ줿פΥȥƤץХĤޤǡߥ󥹥ȡ뤵Ƥ뤹٤ƤΥץХĴ٤ޤŪΥץХĤȡΥץХΥȥμȤޤ +.LP +.LP +\f2KeyStore\fP 饹Ƥ static ᥽å \f2getDefaultType\fP Ѥȡץꥱ䥢ץåȤ \f2keystore.type\fP ץѥƥͤǤޤΥɤϡǥեȤΥȥ \f2(keystore.type ץѥƥǻꤵ줿)\fP Υ󥹥󥹤ޤ +.LP +.nf +\f3 +.fl + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); +.fl +\fP +.fi + +.LP +.LP +ǥեȤΥȥפ JKS (Sun 󶡤ȼΥפΥȥμ) ǤϡƥץѥƥեμιԤˤäƻꤵƤޤ +.LP +.nf +\f3 +.fl + keystore.type=jks +.fl +\fP +.fi + +.LP +.LP +: ȥΥפλǤϡʸȾʸ϶̤ޤ󡣤ȤСJKS jks ƱΤȤưޤ +.LP +.LP +ƥġǥǥեȰʳΥȥμѤˤϡιԤѹ̤ΥȥΥפꤷޤȤСpkcs12 ȸƤФ륿פΥȥμ󶡤ƤץХѥåѤˤϡιԤ򼡤Τ褦ѹޤ +.LP +.nf +\f3 +.fl + keystore.type=pkcs12 +.fl +\fP +.fi + +.LP +.LP +PKCS#11 ץХѥåѤ硢ξܺ٤ˤĤƤϡJava PKCS#11 Reference Guideפˤ +.na +\f2KeyTool and JarSigner\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner򻲾ȤƤ +.LP +.SS +ݡȤ륢르ꥺ +.LP +.LP +\f3jarsigner\fP ϥǥեȤǡΤ줫Ѥ JAR ե˽̾ޤ .LP .RS 3 .TP 2 o -\f3keytool\fP の \f2\-identitydb\fP コマンドを使うと、アイデンティティーデータベースの情報をキーストアにインポートできます。 +SHA1 ȥ르ꥺȤä DSA (ǥ̾르ꥺ) .TP 2 o -\f3jarsigner\fP は、以前に \f3javakey\fP を使って署名された JAR ファイルに署名を付けることができます。 +SHA256 ȥ르ꥺѤ RSA 르ꥺ .TP 2 o -\f3jarsigner\fP は、\f3javakey\fPを使って署名された JAR ファイルを検証できます。したがって、jarsigner は、Java 2 SDK のキーストアではなく JDK 1.1 のアイデンティティーデータベースからの署名者別名を認識し、これらを対象に処理を行うことができます。 +SHA256 ECDSA (ʱ߶ǥ̾르ꥺ) Ѥ EC (ʱ߶) Ź르ꥺ .RE .LP .LP -次の表は、JDK 1.1.x で署名された JAR ファイルが、Java 2 プラットフォームでどのように扱われるかを示しています。 +Ūˤϡ̾Ԥθ DSA Ǥ硢\f3jarsigner\fP SHA1withDSA 르ꥺȤä JAR ե˽̾դޤ̾Ԥθ RSA Ǥ硢\f3jarsigner\fP SHA256withRSA 르ꥺȤä JAR ե˽̾դޤ̾Ԥθ EC Ǥ硢\f3jarsigner\fP SHA256withECDSA 르ꥺȤä JAR ե˽̾դޤ +.LP +.LP +ΥǥեȤν̾르ꥺϡ\f2\-sigalg\fP ץȤäƥС饤ɤǤޤ +.LP +.SS +̾դ JAR ե +.LP +.LP +\f3jarsigner\fP Ȥä JAR ե˽̾դ硢Ϥ̾դ JAR ե JAR եƱǤ 2 Ĥɲåե뤬 META\-INF ǥ쥯ȥ֤ۤʤޤ +.LP +.RS 3 +.TP 2 +o +.SF ĥҤդ̾ե +.TP 2 +o +.DSA.RSAޤ .EC ĥҤ˻Ľ֥̾åե +.RE + +.LP +.LP + 2 ĤΥեΥ١ե̾ϡ \f2\-sigFile\fP ץͤޤȤСΤ褦˥ץꤷȤޤ +.LP +.nf +\f3 +.fl +\-sigFile MKSIGN +.fl +\fP +.fi + +.LP +.LP +ξ硢ե̾Ϥ줾 MKSIGN.SF MKSIGN.DSA ˤʤޤ +.LP +.LP +ޥɹԤ \f2\-sigfile\fP ץꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤѤǤʸϡե٥åȡ (_)ϥեǤ +.LP +\f3̾ (.SF) ե\fP +.LP +.LP +̾ե (.SF ե) ϡ\f3jarsigner\fP ǽ̾դ JAR ե˾˴ޤޤޥ˥եȥեȻƤޤĤޤꡢޥ˥եȥեƱ͡.SF եˤϡJAR ե˴ޤޤƤ륽ե뤴Ȥˡ 3 ĤιԤޤ +.LP +.RS 3 +.TP 2 +o +ե̾ +.TP 2 +o +ȤƤȥ르ꥺ (SHA) ̾ +.TP 2 +o +SHA Ȥ +.RE + +.LP +.LP +ޥ˥եȥեǤϡSHA ȤͤϡեΥХʥǡΥ (ϥå) Ǥ.SF եǤϡեΥȤͤϡޥ˥եȥեγ륽եб 3 ԤΥϥåǤ +.LP +.LP +̾եˤϡǥեȤǥޥ˥եȥեΤΥϥåޤޤƤޤҤΡJAR եθڡפ褦ˡΥإå¸ߤˤäƸڤκŬǽˤʤäƤޤ +.LP +\f3֥̾åե\fP +.LP +.SF եˤϽ̾դ졢̾Ͻ֥̾åե֤ޤΥեˤϡȥξޤϾ沽줿ǴޤޤƤޤ ޤϾϡ̾˻Ȥ줿бǧڤޤեγĥҤϡѤȥ르ꥺ˱ .DSA.RSA.EC Τ줫ˤʤޤ +.SS +̾ॹ +.LP +.LP +\f2jarsigner\fP ġϡJAR եν̾˽̾ॹפ¸Ǥޤˡ \f2jarsigner\fP ؽ̾򥵥ݡȤޤưϾάǽǡ̾˼γƥץˤä椵ޤ +.LP +.RS 3 +.TP 2 +o +\f2\-tsa url\fP +.TP 2 +o +\f2\-tsacert alias\fP +.TP 2 +o +\f2\-altsigner class\fP +.TP 2 +o +\f2\-altsignerpath classpathlist\fP +.RE + +.LP +.LP +γƥץξܺ٤ˤĤƤϡҤΡ֥ץ򻲾ȤƤ +.LP +.SS +JAR եθ +.LP +.LP +JAR եθڤΤϡ̾ͭǤꡢĽ̾ʸ JAR եΤɤΥեѹƤʤǤJAR եθڤϡμǹԤޤ +.LP +.RS 3 +.TP 3 +1. +.SF ե뤽켫Τν̾򸡾ڤޤ +.LP +μǤϡƽ֥̾å (.DSA) ե˳ǼƤ̾ºݤˡбȤä줿ΤǤ뤳Ȥǧޤ .DSA եˤϡξ (ޤϾ) ޤޤƤޤޤμǤϡŪν̾б̾ (.SF) եͭʽ̾Ǥ뤫ɤĴ١.SF ե뤬ѤƤʤȤǧޤ +.TP 3 +2. +.SF եγƥȥΥȤޥ˥եбƥͤ碌Ƹڤޤ +.LP +.SF եˤϡޥ˥եȥեΤΥϥå夬Ǽ줿إåǥեȤǴޤޤƤޤΥإå¸ߤϡإåΥϥå夬ºݤ˥ޥ˥եȥեΥϥåȰפ뤫ɤ򸡾ڤ뤳ȤǤޤϥå夬פϡμ˿ʤߤޤ +.LP +ϥå夬פʤϡΨŪˤˡȤäƸڤԤޤŪˤϡ.SF եγƥե󥻥Υϥå夬ޥ˥եȥեб륻ΥϥåȰפ뤫ɤǧޤ (ֽ̾ (.SF) եפ򻲾) +.LP +.SF եΥإå˳Ǽ줿ޥ˥եȥեΥϥåȡºݤΥޥ˥եȥեΥϥåȤפʤϡ̾ ( .SF ե) ˡJAR ե 1 İʾΥե뤬ɲ \f2(jar ġ)\fP 줿ǽޤjar \f2ġ\fP Ȥäƥեɲä硢ޥ˥եȥեѹޤ (եѤΥɲä).SF եѹޤ󡣤ξ硢.SF եΥإåʳΥ˳Ǽ줿ϥå夬ޥ˥եȥեб륻ΥϥåȰפȤϡ̾ JAR ե¸ߤƤեΤɤΥեѹƤʤȤˤʤꡢڤΤȤưޤ +.TP 3 +3. +JAR եΥեΤ.SF ե˥ȥijƥեɤ߹ߤޤɤ߹˥եΥȤ׻̤ޥ˥եȥγեΥȤӤޤ2 ĤΥȤƱǤʤФʤ餺ǤʤϸڤԤޤ +.RE + +.LP +.LP +ڥץǤʤ餫νʸڥ顼ȯ硢ڥץߤ졢ƥ㳰ޤ줿ƥ㳰ϡ\f3jarsigner\fP åɽޤ +.LP +.SS +1 Ĥ JAR եоݤȤʣν̾ +.LP +.LP +1 Ĥ JAR եФ \f3jarsigner\fP ġʣ¹Ԥ¹ԤΤӤˡۤʤ桼̾ꤹСJAR եʣΥ桼ν̾դ뤳ȤǤޤ +.LP +.nf +\f3 +.fl + jarsigner myBundle.jar susan +.fl + jarsigner myBundle.jar kevin +.fl +\fP +.fi + +.LP +.LP +JAR ե뤬ʣ̾Ƥ硢 JAR եˤ .SF ե .DSA եФʣޤޤ뤳Ȥˤʤޤ .SF ե .DSA եФϡ1 ν̾Ф 1 ĺޤäơǽϤ JAR եˤϡ̾ĥե뤬ޤޤޤ +.LP +.nf +\f3 +.fl + SUSAN.SF +.fl + SUSAN.DSA +.fl + KEVIN.SF +.fl + KEVIN.DSA +.fl +\fP +.fi + +.LP +.LP +: JAR եǤϡJDK 1.1 \f3javakey\fP ġ줿̾ \f3jarsigner\fP 줿̾ߤǤޤĤޤꡢǤ \f3javakey\fP Ȥäƽ̾դƤ JAR եˡ\f3jarsigner\fP Ȥäƽ̾դ뤳ȤǤޤ +.LP +.SH "ץ" +.LP +.LP +ʲǤϡ\f3jarsigner\fP ΥץˤĤޤ: +.LP +.RS 3 +.TP 2 +o +ɤΥץ̾ˤƬ˥ޥʥ (\-) դ +.TP 2 +o +ץǤդνǻǤ +.TP 2 +o +åΤιܤμºݤ (ץ) ϡ桼ꤹɬפ +.TP 2 +o +\f2\-keystore\fP \f2\-storepass\fP \f2\-keypass\fP \f2\-sigfile\fP \f2\-sigalg\fP \f2\-digestalg\fP \f2\-signedjar\fP ץѤǤΤϡ̾դ JAR ե򸡾ڤǤϤʤJAR ե˽̾ǤƱͤˡ̾򥳥ޥɹԤǻꤹΤϡJAR ե˽̾դǤ +.RE + +.LP +.RS 3 +.TP 3 +\-keystore url +ȥξ򼨤 URL ꤷޤǥեȤϡ桼Υۡǥ쥯ȥΥե \f2.keystore\fP Ǥ 桼Υۡǥ쥯ȥϡuser.home ƥץѥƥˤäƷޤޤ +.LP +̾ȤϥȥɬפǤ ΤᡢǥեȤΥȥ¸ߤʤ硢뤤ϥǥեȰʳΤۤΥȥѤϡȥŪ˻ꤹɬפޤ +.LP +ڤȤϥȥɬפޤ󡣤ȥꤵƤ뤫뤤ϥǥեȤΥȥ¸ߤƤơ \f2\-verbose\fP ץꤵƤ硢JAR եθڤ˻Ѥ񤬤Υȥ 1 ĤǤޤޤƤ뤫ɤ˴ؤɲþ󤬽Ϥޤ +.LP +: \f2\-keystore\fP ΰˤϡURL ˥ե̾ (ȥѥ) Ǥޤ ե̾ (ȥѥ) ꤷϡfile:URL ȤưޤȤСΤ褦˻Ǥޤ +.nf +\f3 +.fl + \-keystore \fP\f4filePathAndName\fP\f3 +.fl +\fP +.fi +.LP +ϡλƱΤȤưޤ +.nf +\f3 +.fl + \-keystore file:\fP\f4filePathAndName\fP\f3 +.fl +\fP +.fi +.LP +JRE \f2$JAVA_HOME/lib/security\fP ǥ쥯ȥ˳Ǽ줿 \f2java.security\fP ƥץѥƥե Sun PKCS#11 ץХꤵƤ硢keytool jarsigner PKCS#11 ȡ˴ŤưǤޤΥץꤷޤ +.RS 3 +.TP 2 +o +\f2\-keystore NONE\fP +.TP 2 +o +\f2\-storetype PKCS11\fP +.RE +.LP +ȤСΥޥɤϡꤵ줿 PKCS#11 ȡƤɽޤ +.nf +\f3 +.fl + jarsigner \-keystore NONE \-storetype PKCS11 \-list +.fl + +.fl +\fP +.fi +.TP 3 +\-storetype storetype +󥹥󥹤륭ȥΥפꤷޤǥեȤΥȥפϡƥץѥƥե keystore.type ץѥƥͤǻꤵ줿פǤͤϡ \f2java.security.KeyStore\fP static getDefaultType ᥽å \f2ǼǤޤ\fP. +.LP +\-storepass ץȤä PCKS#11 ȡ PIN \f2ꤹ뤳Ȥ\fP Ǥޤꤷʤä硢keytool jarsigner ϥ桼˥ȡ PIN Ϥޤȡݸ줿ǧڥѥ (Ѥ PIN ѥåɤɤ߼굡ʤ) 硢\f2\-protected\fP ץꤹɬפޤѥɥץꤹɬפϤޤ +.TP 3 +\-storepass[:env | :file] argument +.LP +ȥ˥ΤɬפʥѥɤꤷޤΥץɬפʤΤϡJAR ե˽̾դȤǤ (JAR ե򸡾ڤȤ)ξ硢 \f2\-storepass\fP ץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ +.LP + \f2env\fP ޤ \f2file\fP ꤵƤʤ硢ѥɤͤ \f2argument\fP ˤʤޤʳξ硢ѥɤϼΤ褦ˤƼޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +: ƥȤŪȤ硢ޤϥƥݸ줿ƥѤƤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ +.TP 3 +\-keypass[:env | :file] argument +.LP +ޥɹԤǻꤵ줿̾б륭ȥȥݸΤ˻Ȥѥɤꤷޤ\f3jarsigner\fP Ȥä JAR ե˽̾դȤϡѥɤɬפǤޥɹԤǥѥɤꤵƤ餺ɬפʥѥɤȥΥѥɤȰۤʤϡѥɤϤޤ +.LP + \f2env\fP ޤ \f2file\fP ꤵƤʤ硢ѥɤͤ \f2argument\fP ˤʤޤʳξ硢ѥɤϼΤ褦ˤƼޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +: ƥȤŪȤ硢ޤϥƥݸ줿ƥѤƤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ +.TP 3 +\-sigfile file +.SF ե .DSA ե˻Ȥ١ե̾ꤷޤȤС\f2file\fP DUKESIGN ꤹȡ .SF ե .DSA ե̾ϡ줾 DUKESIGN.SF DUKESIGN.DSA ˤʤޤ Υեϡ̾դ JAR ե META\-INF ǥ쥯ȥ֤ޤ +.LP +\f2file\fP ˻ѤǤʸϡa\-zA\-Z0\-9_\-פǤĤޤꡢʸӥϥեѤǤޤ: .SF .DSA Υե̾ǤϡʸϤ٤ʸѴޤ +.LP +\-sigfile \f2ץ\fP ꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ +.TP 3 +\-sigalg algorithm +JAR եν̾˻Ѥ̾르ꥺ̾ꤷޤ +.LP +ɸ̾르ꥺ̾ΰˤĤƤϡJava Cryptography Architectureפˤ +.na +\f2Appendix A \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤΥ르ꥺϡJAR եν̾˻Ѥ̩ȸߴΤΤǤʤФʤޤ󡣤Υץꤷʤä硢̩Υפ˱ SHA1withDSASHA256withRSASHA256withECDSA Τ줫Ѥޤꤵ줿르ꥺμ󶡤ץХŪ˥󥹥ȡ뤵Ƥ뤫뤤ϥ桼Τ褦ʥץХ \f2\-providerClass\fP ץȤäƻꤹɬפޤǤʤ硢ޥɤμ¹ԤԤޤ +.TP 3 +\-digestalg algorithm +JAR եΥȥȤݤ˻Ѥåȥ르ꥺ̾ꤷޤ +.LP +ɸåȥ르ꥺ̾ΰˤĤƤϡJava Cryptography Architectureפˤ +.na +\f2Appendix A \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤΥץꤷʤä硢SHA256 Ѥޤꤵ줿르ꥺμ󶡤ץХŪ˥󥹥ȡ뤵Ƥ뤫뤤ϥ桼Τ褦ʥץХ \f2\-providerClass\fP ץȤäƻꤹɬפޤǤʤ硢ޥɤμ¹ԤԤޤ +.TP 3 +\-signedjar file +̾դ JAR ե̾ꤷޤ +.LP +ޥɹԤ̾ꤷʤäϡ JAR ե (̾оݤȤʤ JAR ե) ̾Ʊ̾Ȥޤ ξ硢 JAR եϽ̾դ JAR եˤäƾ񤭤ޤ +.TP 3 +\-verify +ޥɹԤǤΥץ󤬻ꤵƤϡꤵ줿 JAR ե뤬ڤޤ JAR եؤν̾ϹԤޤ󡣸ڤȡjar verified Ȥåɽޤ̾Ƥʤ JAR ե롢ޤϥݡȤƤʤ르ꥺ (RSA ץХΥ󥹥ȡλƤʤ RSA ʤ) Ȥäƽ̾줿 JAR ե򸡾ڤ褦Ȥȡjar is unsigned. (signatures missing or not parsable)פȤåɽޤ +.LP +̾դ JAR եϡ\f3jarsigner\fP ޤ JDK 1.1 \f3javakey\fP ġ롢뤤ϤξȤäƸڤǤޤ +.LP +ڤˤĤƤξܺ٤ϡJAR եθڡפ򻲾ȤƤ +.TP 3 +\-certs +ޥɹԤǡ \f2\-verify\fP \f2\-verbose\fP ץȤȤˤΥץꤷ硢JAR եγƽ̾Ԥξ󤬽Ϥ˴ޤޤޤˤϼΤΤޤޤޤ +.RS 3 +.TP 2 +o +̾Ԥθ (.DSA ե˳Ǽ줿) μ̾ +.TP 2 +o + X. (Ĥޤꡢ \f2java.security.cert.X509Certificate\fP Υ󥹥) Ǥϡ̾Ԥμ̾ +.RE +.LP +ȥγǧԤޤޥɹԤǥȥͤꤵƤʤ硢ǥեȤΥȥե뤬Сޤ̾Ԥθξ񤬥ȥΥȥȰפϡξɽޤ +.RS 3 +.TP 2 +o +̾Ԥ˳륭ȥȥ̾̾ϳ̤ǰϤޤޤ ȥǤϤʤ JDK 1.1 Υǥƥƥǡ١ͳ褹̾Ԥξϡ̤ǤϤʤ̤ǰϤޤޤ +.RE +.TP 3 +\-certchain file +ޥɹԤǻꤷ̾Ƿޤ륭ȥȥ˴Ϣդ줿󤬴ǤʤˡѤ٤ꤷޤΤ褦ʾ֤ˤʤǽΤϡȥϡɥȡ˳ǼƤ뤬ˤϾΤݻǤΰ褬¸ߤƤʤ褦ʾǤΥեϰϢ X.509 񤬽Ϣ뤵줿ΡPKCS#7 ñǡ֥åΤ줫ȤʤꡢΥ󥳡ǥ󥰷ϥХʥꥨ󥳡ǥ󥰷Internet RFC 1421 ɸǵꤵǽ󥳡ǥ󥰷 (BASE64 󥳡ǥ󥰤ȤƤФ) Τ줫ˤʤޤ +.TP 3 +\-verbose +ޥɹԤǤΥץ󤬻ꤵƤ硢\f3jarsigner\fP ϡ־Ĺץ⡼ɤưJAR ν̾ޤϸڤοʹԾ˴ؤɲþϤޤ +.TP 3 +\-internalsf +ϡJAR եν̾줿 .DSA (֥̾å) եˡ줿 .SF ե (̾ե) δʥԡ沽줿ǴޤޤƤޤưѹޤưѹˤʤꡢߤǤϡ JAR եΤΥ򾮤뤿ˡǥեȤǤ .SF ե뤬 .DSA ե˴ޤޤʤ褦ˤʤäƤޤ \f2\-internalsf\fP ץ򥳥ޥɹԤǻꤹȡƱ褦ưޤ\f3ΥץϡƥȤԤˤǤʳˤϻѤʤǤ ΥץѤȡͭפʺŬԤʤʤޤ\fP +.TP 3 +\-sectionsonly +ޥɹԤǤΥץ󤬻ꤵƤ硢JAR եν̾ .SF ե (̾ե) ˤϡޥ˥եȥեΤΥϥåޤإåɲäޤ󡣤ξ硢.SF ե˴ޤޤΤϡJAR եγƥե˴ؤ󤪤ӥϥåǤܺ٤ϡֽ̾ (.SF) եפ򻲾ȤƤ +.LP +ǥեȤǤϡŬԤˡޥ˥եȥեΤΥϥåޤإåɲäޤإå¸ߤϡJAR եθڻˡޤإåΥϥå夬ޥ˥եȥեΤΥϥåȼºݤ˰פ뤫ɤǧޤϥå夬פ硢ڤϼμ˿ʤߤޤϥå夬פʤϡΨŪˤˡȤäƸڤԤޤ Ūˤϡ.SF եγƥե󥻥Υϥå夬ޥ˥եȥեб륻ΥϥåȰפ뤫ɤǧޤ +.LP +ܺ٤ϡJAR եθڡפ򻲾ȤƤ +.LP +\f3ΥץϡƥȤԤˤǤʳˤϻѤʤǤ ΥץѤȡͭפʺŬԤʤʤޤ\fP +.TP 3 +\-protected +\f2true\fP ޤ \f2false\fP PIN ꡼ʤɤݸ줿ǧڥѥ𤷤ƥѥɤꤹɬפˤϡͤ \f2true\fP ˻ꤷƤ +.TP 3 +\-providerClass provider\-class\-name +ӥץХƥץѥƥե (\f2java.security\fP) ΥꥹȤäƤʤȤˡŹ沽ӥץХΥޥ饹ե̾ꤷޤ +.LP +\f2\-providerArg\fP \f2ConfigFilePath\fP ץȤ߹碌ƻѤޤkeytool jarsigner ϥץХưŪ˥󥹥ȡ뤷ޤ (ǡ\f2ConfigFilePath\fP ϥȡեؤΥѥǤ)ƥץѥƥե Sun PKCS#11 ץХꤵƤʤ PKCS#11 ȥɽ륳ޥɤ򼡤˼ޤ +.nf +\f3 +.fl +jarsigner \-keystore NONE \-storetype PKCS11 \\ +.fl + \-providerClass sun.security.pkcs11.SunPKCS11 \\ +.fl + \-providerArg /foo/bar/token.config \\ +.fl + \-list +.fl +\fP +.fi +.TP 3 +\-providerName providerName +\f2java.security\fP ƥץѥƥե 2 İʾΥץХꤵƤ硢\f2\-providerName\fP ץȤäΥץХ󥹥󥹤ǤޤΥץΰϡץХ̾Ǥ +.LP +Sun PKCS#11 ץХξ硢\f2providerName\fP \f2SunPKCS11\-\fP\f2TokenName\fP Ȥˤʤޤ ǡ\f2TokenName\fPפϡץХ󥹥󥹤줿̾Ǥ ܺ٤ +.na +\f2°ɽ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS򻲾ȤƤȤСʲΥޥɤǤϡ̾ \f2SmartCard\fP PKCS#11 ȥץХ󥹥󥹤ƤꥹȤޤ +.nf +\f3 +.fl +jarsigner \-keystore NONE \-storetype PKCS11 \\ +.fl + \-providerName SunPKCS11\-SmartCard \\ +.fl + \-list +.fl +\fP +.fi +.TP 3 +\-Jjavaoption +ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤ\f3jarsigner\fP ϡºݤˤ Java 󥿥ץ꥿Ф֥åѡפǤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤѲǽʥ󥿥ץ꥿ץΰɽˤϡ \f2java \-h\fP ޤ \f2java \-X\fP ȥޥɹԤϤޤ +.LP +.TP 3 +\-tsa url +\f2\-tsa http://example.tsa.url\fP JAR եν̾˥ޥɹԤɽ硢̾ΥॹפޤURL \f2http://example.tsa.url\fP ϡTSA (Time Stamping Authority) ξꤷޤϡ \f2\-tsacert\fP ץǸФ줿 URL 򥪡С饤ɤޤ \f2\-tsa\fP ץǤϡTSA θ򥭡ȥ֤ɬפϤޤ +.LP +ॹפ뤿ˡ \f2jarsigner\fP ϡ +.na +\f2RFC 3161\fP @ +.fi +http://www.ietf.org/rfc/rfc3161.txt Ƥ ॹץץȥ (TSP) Ѥ TSA ̿ޤȡTSA ֤줿ॹץȡϽ֥̾åեν̾ȤȤ¸ޤ +.LP +.TP 3 +\-tsacert alias +\f2\-tsacert alias\fP JAR եν̾˥ޥɹԤɽ硢̾Υॹפޤ \f2alias\fP ϡȥθͭ TSA θꤷޤȥξǡTSA ξꤹ URL ޤ Subject Information Access ĥǽǧޤ +.LP +TSA θϡ \f2\-tsacert Ȥä硢ȥ֤Ƥɬפޤ\fP. +.LP +.TP 3 +\-altsigner class +ؽ̾Ѥ뤳Ȥꤷޤ饹̾ϡcom.sun.jarsigner.ContentSigner ݥ饹ĥ륯饹ե \f2ꤷޤ\fP. Υ饹եؤΥѥϡ \f2\-altsignerpath\fP ץˤäޤ \f2\-altsigner\fP ץ󤬻Ѥȡ \f2jarsigner\fP ϡꤵ줿饹󶡤̾ѤޤǤʤ硢 \f2jarsigner\fP ϥǥեȤν̾Ѥޤ +.LP +ȤС \f2com.sun.sun.jarsigner.AuthSigner\fP Ȥ̾Υ饹󶡤̾Ѥˤϡ \f2jarsigner\fP ץ \f2\-altsigner com.sun.jarsigner.AuthSignerפѤޤ\fP +.LP +.TP 3 +\-altsignerpath classpathlist +饹ե (Υ饹ե̾Ҥ \f2\-altsigner\fP ץǻꤵ) ӤΥ饹¸뤹٤Ƥ JAR եؤΥѥꤷޤ饹ե뤬 JAR եˤ硢ʲΤ褦 JAR եؤΥѥꤵޤ +.LP +ХѥޤϸߤΥǥ쥯ȥ꤫ХѥǤޤ \f2classpathlist\fP ʣΥѥ JAR ե뤬ޤޤˤϡ Solaris ξϥ (\f2:\fP) ǡWindows ξϥߥ (\f2;\fP) Ǥ줾ڤޤŪΥ饹Ǥ˸ѥˤϡΥץפǤ +.LP +饹եޤࡢJAR եؤΥѥꤹ򼨤ޤ +.nf +\f3 +.fl +\-altsignerpath /home/user/lib/authsigner.jar +.fl +\fP +.fi +.LP +JAR ե̾ޤޤƤ뤳ȤդƤ +.LP +饹եޤ JAR եؤΥѥꤹ򼨤ޤ +.nf +\f3 +.fl +\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/ +.fl +\fP +.fi +.LP +JAR ե̾ϴޤޤƤʤȤαդƤ +.TP 3 +\-strict +̾ޤϸڽˡ餫ηٹåɽ礬ޤޥɹԤǤΥץꤹȡĤäٹåġνλɤȿǤޤܺ٤ϡַٹפι򻲾ȤƤ +.TP 3 +\-verbose:sub\-options +ڽǡ \f2\-verbose\fP ץϡɽ̤ꤹ륵֥ץޤ \f2\-certs\fP ꤷ硢ǥեȥ⡼ (ޤϥ֥ץ all) Ǥϡȥ꤬뤿Ӥˤγƥȥ꤬ɽ졢ΤȤ JAR եγƽ̾Ԥξɽޤ \f2\-certs\fP \f2\-verbose:grouped\fP ֥ץꤷ硢Ʊ̾ԾĥȥȤξ󤬡ä˥롼ײɽޤ \f2\-certs\fP \f2\-verbose:summary\fP ֥ץꤷ硢Ʊ̾ԾĥȥȤξ󤬤ä˥롼ײɽޤƥȥξܺ٤1 ĤΥȥ (Ӥʾ)פȤ󤵤ɽޤܺ٤ι򻲾ȤƤ +.RE + +.LP +.SH "" +.LP +.SS +JAR եν̾ +.LP +.LP +bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤȥϡmystore Ȥ̾ǡC ɥ饤֤ working ǥ쥯ȥˤꡢȥΥѥɤ mypass\f2jane\fP Υѥɤ j638klm Ȥޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-storepass myspass +.fl + \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +ΥޥɤǤ \f2\-sigfile\fP ꤵƤʤᡢ̾դ JAR ե˳Ǽ .SF ե .DSA ե̾ϡ̾ǥե̾ĤޤĤޤꡢ̾ \f2JANE.SF\fP \f2JANE.DSA\fP ˤʤޤ +.LP +.LP +ȥΥѥɤΥѥɤ򤢤ȤϤϡΥޥɤṳ̂ƼΤ褦ϤǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore +.fl + \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +ǥեȤΥȥ (ۡǥ쥯ȥ .keystore Ȥ̾Υȥ) Ѥϡ˼褦ˡȥλάǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +Ǹˡ JAR ե (\f2bundle.jar\fP) ̾դ JAR եñ˾񤭤ϡΤ褦 \f2\-signedjar\fP ץꤹɬפϤޤ +.LP +.nf +\f3 +.fl + jarsigner bundle.jar jane +.fl +\fP +.fi + +.LP +.SS +̾դ JAR եθ +.LP +.LP +˼Τϡ̾դ JAR ե򸡾ڤ̾ͭ JAR ե뤬ѤƤʤȤǧ뤿ΥޥǤ +.LP +.nf +\f3 +.fl + jarsigner \-verify sbundle.jar +.fl +\fP +.fi + +.LP +.LP +ڤȡΤ褦ʥåɽޤ +.LP +.nf +\f3 +.fl + jar verified. +.fl +\fP +.fi + +.LP +.LP +ȤץץȤɽޤڤʤäϡ顼åɽޤ +.LP +.LP +\-verbose ץȤȡ \f2¿ξ\fP ɽޤ\-verbose ץդ \f3jarsigner\fP \f2ѤȤν\fP ˼ޤ +.LP +.nf +\f3 +.fl + jarsigner \-verify \-verbose sbundle.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + smk 2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class +.fl + smk 849 Fri Sep 26 16:12:46 PDT 1997 test.class +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.SS +Ȥä +.LP +.LP +ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤ򼨤ޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-verify \-verbose \-certs myTest.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + 208 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.SF +.fl + 1087 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.DSA +.fl + smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class +.fl + +.fl + X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest) +.fl + X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.LP +̾Ԥξ X.509 Ǥʤϡ̾ɽޤ󡣤ξˤϡΥפ̾ɽޤȤС PGP ǡ̾ bob ξϡΤ褦ɽޤ +.LP +.nf +\f3 +.fl + PGP, (bob) +.fl +\fP +.fi + +.LP +.SS +ǥƥƥǡ١ν̾Ԥޤ JAR եθ +.LP +.LP +JAR ե뤬JDK 1.1 \f3javakey\fP ġȤäƽ̾Ƥ硢̾Ԥϥǥƥƥǡ١̾Ǥξ硢ڤνϤˤ i Ȥ椬ޤޤޤJAR ե뤬ǥƥƥǡ١̾ȥȥ̾ξˤäƽ̾Ƥϡk i ξɽޤ +.LP +.LP +\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤȤС +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-verify \-verbose \-certs writeFile.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + 199 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.SF +.fl + 1013 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.DSA +.fl + smki 2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html +.fl + +.fl + X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) +.fl + X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke] +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + i = ǥƥƥפ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.LP +̾ duke ϳѳ̤ǰϤޤƤΤǡ̾ϥȥ̾ǤϤʤǥƥƥǡ١̾Ǥ +.LP +.SH "ٹ" +.LP +̾/ڽˤϡjarsigner 餵ޤޤʷٹɽǽޤηٹ𥳡ɤϼΤ褦Ƥޤ +.nf +\f3 +.fl + hasExpiringCert 2 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ 6 ˴ڤˤʤޤ +.fl + +.fl + hasExpiredCert 4 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ񤬴ڤˤʤäƤޤ +.fl + +.fl + notYetValidCert 4 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ񤬤ޤͭˤʤäƤޤ +.fl + +.fl + chainNotValidated 4 +.fl + JAR ˴ޤޤ륨ȥξθڤԤޤ +.fl + +.fl + badKeyUsa ge 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ KeyUsage ĥɤν̾ĤƤޤ +.fl + +.fl + badExtendedKeyUsage 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ ExtendedKeyUsage ĥ +.fl + ɤν̾ĤƤޤ +.fl + +.fl + badNetscapeCertType 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ NetscapeCertType ĥ +.fl + ɤν̾ĤƤޤ +.fl + +.fl + hasUnsignedEntry 16 +.fl + JAR ˤϡåԤƤʤ̾ʤȥ꤬ޤޤƤޤ +.fl + +.fl + notSignedByAlias 32 +.fl + JAR ˤϡꤵ줿̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ +.fl + +.fl + aliasNotInStore 32 +.fl + JAR ˤϡΥȥ̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ +.fl + +.fl +\fP +.fi + +.LP +.LP +\f2\-strict\fP ץꤷ硢Ф줿ٹ OR äͤġνλɤȤ֤ޤȤСȥν̾˻Ѥ񤬴ڤˤʤäƤơĤξ keyUsage ĥǥեν̾ĤƤʤ硢λ 12 (=4+8) ֤ޤ +.LP +.LP +\f3\fP: UNIX ǻѲǽͤ 0 255 Ǥ뤿ᡢλɤϺѤޤˤƤ⡢̾/ڽԤȡνλɤ֤ޤ +.LP +.nf +\f3 +.fl +failure 1 +.fl +\fP +.fi + +.LP +.SS +JDK 1.1 Ȥθߴ +.LP +.LP +\f3keytool\fP ġ \f3jarsigner\fP ġϡJDK 1.1 󶡤Ƥ \f3javakey\fP ġ֤ΤǤοġϡȥѥɤݸ뵡ǽ䡢̾˲äƽ̾򸡾ڤ뵡ǽʤɡ\f3javakey\fP ¿ΤǽƤޤ +.LP +.LP +ȥƥ㡼ϡ\f3javakey\fP ƴƤǥƥƥǡ١ΤǤȥȡJDK 1.1 \f3javakey\fP ȤäƤǡ١Ȥδ֤ˤϲ̸ߴϤޤ󡣤ΤȤϲǽǤ +.LP +.RS 3 +.TP 2 +o +\f3keytool\fP \f2\-identitydb\fP ޥɤȤȡǥƥƥǡ١ξ򥭡ȥ˥ݡȤǤޤ +.TP 2 +o +\f3jarsigner\fP ϡ \f3javakey\fP Ȥäƽ̾줿 JAR ե˽̾դ뤳ȤǤޤ +.TP 2 +o +\f3jarsigner\fP ϡ\f3javakey\fPȤäƽ̾줿 JAR ե򸡾ڤǤޤäơjarsigner ϡJava 2 SDK ΥȥǤϤʤ JDK 1.1 Υǥƥƥǡ١ν̾̾ǧоݤ˽ԤȤǤޤ +.RE + +.LP +.LP +ɽϡJDK 1.1.x ǽ̾줿 JAR ե뤬Java 2 ץåȥեǤɤΤ褦˰뤫򼨤Ƥޤ .LP .LP .TS @@ -160,7 +1053,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3JAR ファイルのタイプ\fP +\f3JAR եΥ\fP .br .di .nr a| \n(dn @@ -176,7 +1069,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f31.1 データベース内のアイデンティティー\fP +\f31.1 ǡ١Υǥƥƥ\fP .br .di .nr b| \n(dn @@ -192,7 +1085,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f31.1 データベースから Java 2 Platform キーストアにインポートされる信頼できるアイデンティティー (4)\fP +\f31.1 ǡ١ Java 2 Platform ȥ˥ݡȤ뿮Ǥ륢ǥƥƥ (4)\fP .br .di .nr c| \n(dn @@ -208,7 +1101,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(83 .ll \n(83u .in 0 -\f3ポリシーファイルがアイデンティティー/別名に特権を与える\fP +\f3ݥꥷե뤬ǥƥƥ/̾øͿ\fP .br .di .nr d| \n(dn @@ -224,7 +1117,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr e| \n(dn @@ -240,7 +1133,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr f| \n(dn @@ -256,7 +1149,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr g| \n(dn @@ -272,7 +1165,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -あり/信頼できない +/Ǥʤ .br .di .nr h| \n(dn @@ -288,7 +1181,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 (3) +٤ƤΥɤͿǥեȤø(3) .br .di .nr i| \n(dn @@ -304,7 +1197,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -あり/信頼できない +/Ǥʤ .br .di .nr j| \n(dn @@ -320,7 +1213,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 (1,3) +٤ƤΥɤͿǥեȤø(1,3) .br .di .nr k| \n(dn @@ -336,7 +1229,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権とポリシーファイル内で与えられる特権 +٤ƤΥɤͿǥեȤøȥݥꥷեͿø .br .di .nr l| \n(dn @@ -352,7 +1245,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権とポリシーファイル内で与えられる特権 (2) +٤ƤΥɤͿǥեȤøȥݥꥷեͿø(2) .br .di .nr m| \n(dn @@ -363,46 +1256,46 @@ o .nf .ll \n(34u .nr 80 0 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名のない JAR +.nr 38 \w̾Τʤ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 38 \n(a- .if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -413,63 +1306,63 @@ o .nr 38 \n(j- .if \n(81<\n(38 .nr 81 \n(38 .nr 82 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 .nr 38 \n(c- .if \n(82<\n(38 .nr 82 \n(38 .nr 83 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 .83 .rm 83 .nr 38 \n(d- .if \n(83<\n(38 .nr 83 \n(38 .nr 84 0 -.nr 38 \w\f3与えられる特権\fP +.nr 38 \w\f3Ϳø\fP .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 +.nr 38 \w٤Ƥø .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 (1) +.nr 38 \w٤Ƥø (1) .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 (1) +.nr 38 \w٤Ƥø (1) .if \n(84<\n(38 .nr 84 \n(38 .84 .rm 84 @@ -503,7 +1396,7 @@ o .nr 44 \n(83+(3*\n(38) .nr 84 +\n(44 .nr TW \n(84 -.if t .if \n(TW>\n(.li .tm Table at line 185 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1078 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -528,7 +1421,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3与えられる特権\fP +\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3Ϳø\fP .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -565,7 +1458,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -581,7 +1474,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名のない JAR\h'|\n(41u'なし\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾Τʤ JAR\h'|\n(41u'ʤ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -597,7 +1490,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'あり\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -615,7 +1508,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -640,7 +1533,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'\h'|\n(42u'なし\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'\h'|\n(42u'ʤ\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -663,7 +1556,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'あり\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -679,7 +1572,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'あり\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -693,15 +1586,15 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u'すべての特権 +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u'٤Ƥø .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'あり\h'|\n(43u'なし\h'|\n(44u'すべての特権 (1) +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'\h'|\n(43u'ʤ\h'|\n(44u'٤Ƥø (1) .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'なし\h'|\n(43u'あり\h'|\n(44u'すべての特権 (1) +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'ʤ\h'|\n(43u'\h'|\n(44u'٤Ƥø (1) .fc .nr T. 1 .T# 1 @@ -724,894 +1617,43 @@ o .LP .LP -注 \- + \- .LP .RS 3 .TP 3 1. -ポリシーファイル内にアイデンティティー/別名についての言及がある場合、それをキーストアにインポートして、ポリシーファイルの設定が与えられた特権に反映されるようにする必要があります。 +ݥꥷե˥ǥƥƥ/̾ˤĤƤθڤ硢򥭡ȥ˥ݡȤơݥꥷե꤬Ϳ줿øȿǤ褦ˤɬפޤ .TP 3 2. -ポリシーファイル/キーストアの組み合わせは、アイデンティティーデータベース内の信頼できるアイデンティティーよりも優先されます。 +ݥꥷե/ȥȤ߹碌ϡǥƥƥǡ١οǤ륢ǥƥƥͥ褵ޤ .TP 3 3. -Java 2 プラットフォームでは、信頼できないアイデンティティーは無視されます。 +Java 2 ץåȥեǤϡǤʤǥƥƥ̵뤵ޤ .TP 3 4. -Java 2 SDK キーストアにインポートできるのは、信頼できるアイデンティティーだけです。 +Java 2 SDK ȥ˥ݡȤǤΤϡǤ륢ǥƥƥǤ .RE .LP -.SS -キーストアの別名 +.SH "Ϣ" .LP .RS 3 - -.LP -.LP -キーストアのすべてのエントリは、一意の「別名」を介してアクセスされます。 -.LP -.LP -\f3jarsigner\fP を使って JAR ファイルに署名を付けるときは、署名の生成に必要な非公開鍵を含むキーストアエントリの別名を指定する必要があります。たとえば、次の例は、working ディレクトリの mystore という名前のキーストアに含まれる別名 duke に関連付けられた非公開鍵を使って、MyJARFile.jar という名前の JAR ファイルに署名を付けます。出力ファイルは指定されていないので、MyJARFile.jar は署名付きの JAR ファイルによって上書きされます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-storepass myspass -.fl - \-keypass dukekeypasswd MyJARFile.jar duke -.fl -\fP -.fi - -.LP -.LP -キーストアはパスワードで保護されているので、ストアのパスワード (上の例では mypass) を指定する必要があります。コマンド行でストアのパスワードを指定しないと、パスワードの入力を求められます。同様に、非公開鍵もキーストア内でパスワードによって保護されているため、非公開鍵のパスワード (上の例では dukekeypasswd) を指定する必要があります。 コマンド行で非公開鍵のパスワードを指定していない、また、指定したパスワートが保存されているパスワードと違っている場合には、非公開鍵のパスワードの入力を求められます。 -.LP -.RE -.SS -キーストアの場所 -.LP -.RS 3 - -.LP -.LP -\f3jarsigner\fP には、使用するキーストアの URL を指定する \f2\-keystore\fP オプションがあります。キーストアは、デフォルトではユーザーのホームディレクトリの \f2.keystore\fP という名前のファイルに格納されます。 ユーザーのホームディレクトリは、\f2user.home\fP システムプロパティーによって決まります。Solaris システムの場合、\f2user.home\fP がデフォルトでユーザーのホームディレクトリになっています。 -.LP -.LP -\f2\-keystore\fP オプションからの入力ストリームは、\f2KeyStore.load\fP メソッドに渡されます。URL として \f2NONE\fP が指定されている場合は、null のストリームが \f2KeyStore.load\fP メソッドに渡されます。\f2NONE\fP は、\f2KeyStore\fP がファイルベースではなく、たとえば、ハードウェアトークンデバイスに置かれている場合に指定します。 -.LP -.RE -.SS -キーストアの実装 -.LP -.RS 3 - -.LP -.LP -\f2java.security\fP パッケージで提供される \f2KeyStore\fP クラスには、キーストア内の情報に対するアクセスと変更を行うための明確に定義されたインタフェースが用意されています。キーストアの固定実装としては、それぞれが特定の「タイプ」のキーストアを対象とする複数の異なる実装が存在可能です。 -.LP -.LP -現在、キーストアの実装を使用するものとして、\f3keytool\fP と \f3jarsigner\fP の 2 つのコマンド行ツールと、\f3Policy Tool\fP という名前の 1 つの GUI ベースのツールがあります。\f2KeyStore\fP は public として使用可能なので、Java 2 SDK ユーザーは KeyStore を使ったほかのセキュリティーアプリケーションも作成できます。 -.LP -.LP -キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアをファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワードによって保護され、キーストア全体の整合性も (非公開鍵とは別の) パスワードによって保護されます。 -.LP -.LP -キーストアの実装は、プロバイダベースです。具体的には、\f2KeyStore\fP が提供するアプリケーションインタフェースは、Service Provider Interface (SPI) という形で実装されています。つまり、対応する \f2KeystoreSpi\fP 抽象クラス (これも \f2java.security\fP パッケージに含まれている) があり、このクラスが Service Provider Interface のメソッドを定義しています。 これらのメソッドは、「プロバイダ」が実装しなければなりません。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービスのサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合のことです。したがって、キーストアの実装を提供するには、 +.TP 2 +o +jar(1) ġΥɥ +.TP 2 +o +keytool(1) ġΥɥ +.TP 2 +o .na -\f2「Java 暗号化アーキテクチャー用プロバイダの実装方法」\fP @ +\f4jarsigner\fP\f2 ġλˤĤƤϡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlで説明しているように、クライアントが「プロバイダ」を実装し、KeystoreSpi サブクラスの実装を提供する必要があります。 -.LP -.LP -アプリケーションでは、\f2KeyStore\fP クラスが提供する getInstance ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式を定義するとともに、キーストア内の非公開鍵とキーストア自体の整合性を保護するために使われるアルゴリズムを定義します。異なるタイプのキーストアの実装には、互換性はありません。 -.LP -.LP -\f3keytool\fP は、任意のファイルベースのキーストア実装で動作します。keytool は、コマンド行から渡されたキーストアの場所をファイル名として扱い、これを FileInputStream に変換して、FileInputStream からキーストアの情報をロードします。一方、\f3jarsigner\fP ツールと \f3policytool\fP ツールは、URL で指定可能な任意の場所からキーストアを読み込むことができます。 -.LP -.LP -\f3jarsigner\fP と \f3keytool\fP の場合、\f2\-storetype\fP オプションを使ってコマンド行でキーストアのタイプを指定できます。\f3Policy Tool\fP の場合は、[Edit] メニューの [Change Keystore] コマンドを使ってキーストアのタイプを指定できます。 -.LP -.LP -キーストアのタイプを明示的に指定しない場合、keytool、jarsigner、および policytool の各ツールは、セキュリティープロパティーファイル内で指定された \f2keystore.type\fP プロパティーの値に基づいてキーストアの実装を選択します。セキュリティープロパティーファイルは、\f2java.security\fP という名前で SDK セキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位のディレクトリ) です。 -.LP -.LP -各ツールは、\f2keystore.type\fP の値を取得し、この値で指定されたタイプのキーストアを実装しているプロバイダが見つかるまで、現在インストールされているすべてのプロバイダを調べます。目的のプロバイダが見つかると、そのプロバイダからのキーストアの実装を使います。 -.LP -.LP -\f2KeyStore\fP クラスでは \f2getDefaultType\fP という名前の static メソッドが定義されており、アプリケーションとアプレットはこのメソッドを使うことで \f2keystore.type\fP プロパティーの値を取得できます。次のコードは、デフォルトのキーストアタイプ (\f2keystore.type\fP プロパティーで指定されたタイプ) のインスタンスを生成します。 -.LP -.nf -\f3 -.fl - KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); -.fl -\fP -.fi - -.LP -.LP -デフォルトのキーストアタイプは JKS (Sun が提供する独自のタイプのキーストアの実装) です。これは、セキュリティープロパティーファイル内の次の行によって指定されています。 -.LP -.nf -\f3 -.fl - keystore.type=jks -.fl -\fP -.fi - -.LP -.LP -注:キーストアのタイプの指定では、大文字と小文字は区別されません。たとえば、JKS と jks は同じものとして扱われます。 -.LP -.LP -各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して別のキーストアのタイプを指定します。たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供しているプロバイダパッケージを使用するには、上の行を次のように変更します。 -.LP -.nf -\f3 -.fl - keystore.type=pkcs12 -.fl -\fP -.fi - -.LP -.LP -PKCS#11 プロバイダパッケージを使用する場合、その詳細については、「Java PKCS#11 Reference Guide」にある +http://download.oracle.com/javase/tutorial/index.html .na -\f2「KeyTool and JarSigner」\fP @ +\f2Java 塼ȥꥢ\fP\f4\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSignerの節を参照してください。 -.LP -.RE -.RE -.SS -サポートされるアルゴリズム -.LP -.RS 3 - -.LP -.LP -デフォルトでは、\f3jarsigner\fP は次のどちらかのアルゴリズムを使って JAR ファイルに署名します。 -.LP -.RS 3 -.TP 2 -o -SHA\-1 ダイジェストアルゴリズムを使った DSA (デジタル署名アルゴリズム) -.TP 2 -o -MD5 ダイジェストアルゴリズムを使った RSA アルゴリズム -.RE - -.LP -.LP -具体的には、署名者の公開鍵と非公開鍵が DSA 鍵である場合、\f3jarsigner\fP は SHA1withDSA アルゴリズムを使って JAR ファイルに署名を付けます。署名者の鍵が RSA 鍵である場合、\f3jarsigner\fP は MD5withRSA アルゴリズムを使って JAR ファイルに署名を付けます。 -.LP -.LP -これらのデフォルトの署名アルゴリズムは、\f2\-sigalg\fP オプションを使ってオーバーライドできます。 -.LP -.RE -.SS -署名付き JAR ファイル -.LP -.RS 3 - -.LP -.LP -\f3jarsigner\fP を使って JAR ファイルに署名を付けた場合、出力される署名付き JAR ファイルは入力 JAR ファイルと同じですが、次の 2 つの追加ファイルが META\-INF ディレクトリに置かれる点が異なります。 -.LP -.RS 3 -.TP 2 -o -.SF 拡張子の付いた署名ファイル -.TP 2 -o -.DSA 拡張子の付いた署名ブロックファイル -.RE - -.LP -.LP -これら 2 つのファイルのベースファイル名は、\f2\-sigFile\fP オプションの値から作成されます。たとえば、次のようにオプションを指定したとします。 -.LP -.nf -\f3 -.fl - \-sigFile MKSIGN -.fl -\fP -.fi - -.LP -.LP -この場合、ファイル名はそれぞれ MKSIGN.SF と MKSIGN.DSA になります。 -.LP -.LP -コマンド行で \f2\-sigfile\fP オプションを指定しなかった場合、.SF ファイルと .DSA ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字をすべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名がそのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。使用できる文字は、アルファベット、数字、下線 (_)、ハイフンです。 -.LP -\f3署名 (.SF) ファイル\fP -.LP -.RS 3 - -.LP -.LP -署名ファイル (.SF ファイル) は、\f3jarsigner\fP で署名を付けた JAR ファイルに常に含まれるマニフェストファイルと似ています。つまり、マニフェストファイル同様、.SF ファイルには、JAR ファイルに含まれているソースファイルごとに、次の 3 つの行があります。 -.LP -.RS 3 -.TP 2 -o -ファイル名 -.TP 2 -o -使われているダイジェストアルゴリズム (SHA) の名前 -.TP 2 -o -SHA ダイジェストの値 -.RE - -.LP -.LP -マニフェストファイルでは、SHA ダイジェストの値は、ソースファイルのバイナリデータのダイジェスト (ハッシュ) です。一方、.SF ファイルでは、ソースファイルのダイジェストの値は、マニフェストファイル中の該当するソースファイルに対応する 3 行のハッシュです。 -.LP -.LP -署名ファイルには、デフォルトでマニフェストファイル全体のハッシュも含まれています。後述の「JAR ファイルの検証」で説明するように、このヘッダーの存在によって検証の最適化が可能になっています。 -.LP -.RE -\f3署名ブロック (.DSA) ファイル\fP -.LP -.RS 3 - -.LP -.LP -.SF ファイルには署名が付けられ、署名は .DSA ファイルに置かれます。.DSA ファイルには、キーストアからの証明書または証明書チェーンも符号化された形で含まれています。 証明書または証明書チェーンは、署名に使われた非公開鍵に対応する公開鍵を認証します。 -.LP -.RE -.RE -.SS -署名タイムスタンプ -.LP -.RS 3 - -.LP -.LP -J2SE 5.0 リリースの \f2jarsigner\fP ツールは、JAR ファイルの署名時に署名タイムスタンプを生成および格納できるようになりました。さらに、\f2jarsigner\fP は代替署名機構をサポートします。この動作は省略可能で、署名時に次の各オプションによって制御されます。 -.LP -.RS 3 -.TP 2 -o -\f2\-tsa url\fP -.TP 2 -o -\f2\-tsacert alias\fP -.TP 2 -o -\f2\-altsigner class\fP -.TP 2 -o -\f2\-altsignerpath classpathlist\fP -.RE - -.LP -.LP -これらの各オプションの詳細については、後述の「オプション」節を参照してください。 -.LP -.RE -.SS -JAR ファイルの検証 -.LP -.RS 3 - -.LP -.LP -JAR ファイルの検証が成功するのは、署名が有効であり、かつ署名の生成以後に JAR ファイル内のどのファイルも変更されていない場合です。JAR ファイルの検証は、次の手順で行われます。 -.LP -.RS 3 -.TP 3 -1. -.SF ファイルそれ自体の署名を検証します。 -.LP -この手順では、各署名ブロック (.DSA) ファイルに格納されている署名が、実際に、公開鍵に対応する非公開鍵を使って生成されたものであることを確認します。 .DSA ファイルには、公開鍵の証明書 (または証明書チェーン) も含まれています。また、この手順では、目的の署名が、対応する署名 (.SF) ファイル内の有効な署名であるかどうかを調べ、.SF ファイルが改変されていないことも確認します。 -.TP 3 -2. -.SF ファイル内の各エントリのダイジェストをマニフェスト内の対応する各セクションと突き合わせて検証します。 -.LP -.SF ファイルには、マニフェストファイル全体のハッシュが格納されたヘッダーがデフォルトで含まれています。このヘッダーが存在する場合は、ヘッダー内のハッシュが実際にマニフェストファイルのハッシュと一致するかどうかを検証することができます。ハッシュが一致する場合は、次の手順に進みます。 -.LP -ハッシュが一致しない場合は、効率的には劣る方法を使って検証を行います。 具体的には、.SF ファイル内の各ソースファイル情報セクションのハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するかどうかを確認します (「署名 (.SF) ファイル」を参照)。 -.LP -.SF ファイルのヘッダーに格納されたマニフェストファイルのハッシュと、実際のマニフェストファイルのハッシュとが一致しない場合は、署名 (および .SF ファイル) の生成後に、JAR ファイルに 1 つ以上のファイルが追加 (\f2jar\fP ツールを使用) された可能性があります。\f2jar\fP ツールを使ってファイルを追加した場合、マニフェストファイルは変更されますが (新しいファイル用のセクションが追加される)、.SF ファイルは変更されません。この場合、.SF ファイルのヘッダー以外のセクションに格納されたハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するときは、署名の生成時に JAR ファイル内に存在していたファイルのうち、どのファイルも変更されていないことになり、検証は成功したものとして扱われます。 -.TP 3 -3. -JAR ファイル内のファイルのうち、.SF ファイル内にエントリを持つ各ファイルを読み込みます。読み込み中にファイルのダイジェストを計算し、結果をマニフェストセクション内の該当するファイルのダイジェストと比較します。2 つのダイジェストは同じでなければならず、そうでない場合は検証が失敗します。 -.RE - -.LP -.LP -検証プロセスの途中でなんらかの重大な検証エラーが発生した場合、検証プロセスは中止され、セキュリティー例外がスローされます。スローされたセキュリティー例外は、\f3jarsigner\fP がキャッチして表示します。 -.LP -.RE -.SS -1 つの JAR ファイルを対象とする複数の署名 -.LP -.RS 3 - -.LP -.LP -1 つの JAR ファイルに対して \f3jarsigner\fP ツールを複数回実行し、実行のたびに、異なるユーザーの別名を指定すれば、JAR ファイルに複数のユーザーの署名を付けることができます。 -.LP -.nf -\f3 -.fl - jarsigner myBundle.jar susan -.fl - jarsigner myBundle.jar kevin -.fl -\fP -.fi - -.LP -.LP -JAR ファイルが複数回署名されている場合、その JAR ファイルには .SF ファイルと .DSA ファイルの対が複数含まれることになります。 .SF ファイルと .DSA ファイルの対は、1 回の署名に対して 1 つ作成されます。したがって、上の例で出力される JAR ファイルには、次の名前を持つファイルが含まれます。 -.LP -.nf -\f3 -.fl - SUSAN.SF -.fl - SUSAN.DSA -.fl - KEVIN.SF -.fl - KEVIN.DSA -.fl -\fP -.fi - -.LP -.LP -注:JAR ファイルでは、JDK 1.1 の \f3javakey\fP ツールで生成された署名と \f3jarsigner\fP で生成された署名が混在できます。つまり、すでに \f3javakey\fP を使って署名が付けられている JAR ファイルに、\f3jarsigner\fP を使って署名を付けることができます。 -.LP -.RE -.SH "オプション" -.LP - -.LP -.LP -以下では、\f3jarsigner\fP のオプションについて説明します。注: -.LP -.RS 3 -.TP 2 -o -どのオプション名にも先頭にマイナス記号 (\-) が付く -.TP 2 -o -オプションは任意の順序で指定できる -.TP 2 -o -イタリック体の項目の実際の値 (オプションの値) は、ユーザーが指定する必要がある -.TP 2 -o -\f2\-keystore\fP、\f2\-storepass\fP、\f2\-keypass\fP、\f2\-sigfile\fP、\f2\-sigalg\fP、\f2\-digestalg\fP および \f2\-signedjar\fP の各オプションを使用できるのは、JAR ファイルに署名を付ける場合だけである。 これらのオプションは、JAR ファイルを検証する場合には使用できない。同様に、別名をコマンド行で指定するのは、JAR ファイルに署名を付ける場合だけである -.RE - -.LP -.RS 3 -.TP 3 -\-keystore url -キーストアの場所を示す URL を指定します。デフォルトは、ユーザーのホームディレクトリ内のファイル \f2.keystore\fP です。 ユーザーのホームディレクトリは、user.home システムプロパティーによって決まります。 -.LP -署名するときはキーストアが必要です。 このため、デフォルトのキーストアが存在しない場合、あるいはデフォルト以外のほかのキーストアを使用する場合は、キーストアを明示的に指定する必要があります。 -.LP -検証するときはキーストアは必要ありません。 ただし、キーストアが指定されているか、あるいはデフォルトのキーストアが存在していて、さらに \f2\-verbose\fP オプションも指定されている場合は、JAR ファイルの検証に使われる証明書がキーストアに存在するかどうかについての追加情報が出力されます。 -.LP -注:\f2\-keystore\fP の引数には、URL の代わりにファイル名 (とパス) を指定できます。 ファイル名 (とパス) を指定した場合は、「file:」URL として扱われます。たとえば、次のように指定できます。 -.nf -\f3 -.fl - \-keystore \fP\f4filePathAndName\fP\f3 -.fl -\fP -.fi -これは、次の指定と同じものとして扱われます。 -.nf -\f3 -.fl - \-keystore file:\fP\f4filePathAndName\fP\f3 -.fl -\fP -.fi -JRE の \f2$JAVA_HOME/lib/security\fP ディレクトリに格納された \f2java.security\fP セキュリティープロパティーファイル内で Sun PKCS#11 プロバイダが設定されている場合、keytool と jarsigner は PKCS#11 トークンに基づいて動作できます。 次のオプションを指定します。 -.RS 3 -.TP 2 -o -\f2\-keystore NONE\fP -.TP 2 -o -\f2\-storetype PKCS11\fP -.RE -たとえば、次のコマンドは、設定された PKCS#11 トークンの内容を一覧表示します。 -.RS 3 - -.LP -.nf -\f3 -.fl - jarsigner \-keystore NONE \-storetype PKCS11 \-list -.fl - -.fl -\fP -.fi -.RE -.TP 3 -\-storetype storetype -インスタンスを生成するキーストアのタイプを指定します。デフォルトのキーストアタイプは、セキュリティープロパティーファイル内の keystore.type プロパティーの値で指定されたタイプです。 この値は、\f2java.security.KeyStore\fP の static \f2getDefaultType\fP メソッドで取得できます。 -.LP -\f2\-storepass\fP オプションを使って PCKS#11 トークンの PIN を指定することもできます。何も指定しなかった場合、keytool と jarsigner はユーザーにトークン PIN の 入力を求めます。トークンに保護された認証パス (専用の PIN パッドや生体読み取り機など) がある場合、\f2\-protected\fP オプションを指定する必要がありますが、パスワードオプションを指定する必要はありません。 -.TP 3 -\-storepass password -キーストアにアクセスするのに必要なパスワードを指定します。このオプションが必要なのは、JAR ファイルに署名を付けるときだけです (JAR ファイルを検証するときは不要)。署名を付けるときに、コマンド行で \f2\-storepass\fP オプションを指定しなかった場合は、パスワードの入力を求められます。 -.LP -注:テストを目的とする場合、またはセキュリティー保護されたシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。また、password プロンプトでパスワードを入力すると、入力したパスワードがエコーされ、そのまま画面に表示されます。 このため、周囲にほかのユーザーがいる場合は、パスワードを見られないように注意してください。 -.TP 3 -\-keypass password -コマンド行で指定された別名に対応するキーストアエントリの非公開鍵を保護するのに使うパスワードを指定します。\f3jarsigner\fP を使って JAR ファイルに署名を付けるときは、パスワードが必要です。コマンド行でパスワードが指定されておらず、必要なパスワードがストアのパスワードと異なる場合は、パスワードの入力を求められます。 -.LP -注:テストを目的とする場合、またはセキュリティー保護されたシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。また、password プロンプトでパスワードを入力すると、入力したパスワードがエコーされ、そのまま画面に表示されます。 このため、周囲にほかのユーザーがいる場合は、パスワードを見られないように注意してください。 -.TP 3 -\-sigfile file -.SF ファイルと .DSA ファイルの生成に使うベースファイル名を指定します。たとえば、\f2file\fP に DUKESIGN を指定すると、生成される .SF ファイルと .DSA ファイルの名前は、それぞれ DUKESIGN.SF と DUKESIGN.DSA になります。 これらのファイルは、署名付き JAR ファイルの META\-INF ディレクトリに置かれます。 -.LP -\f2file\fP に使用できる文字は「a\-zA\-Z0\-9_\-」です。つまり、文字、数字、下線、およびハイフンだけを使用できます。注:.SF および .DSA のファイル名では、小文字はすべて大文字に変換されます。 -.LP -コマンド行で \f2\-sigfile\fP オプションを指定しなかった場合、.SF ファイルと .DSA ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字をすべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名がそのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。 -.TP 3 -\-sigalg algorithm -.RS 3 - -.LP -JAR ファイルの署名に使用する署名アルゴリズムの名前を指定します。 -.LP -標準署名アルゴリズム名の一覧については、「Java Cryptography Architecture」にある -.na -\f2「Appendix A 」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このアルゴリズムは、JAR ファイルの署名に使用する秘密鍵と互換性のあるものでなければなりません。このオプションを指定しなかった場合、秘密鍵のタイプに応じて SHA1withDSA、MD5withRSA のいずれかが使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザーがそのようなプロバイダを \f2\-providerClass\fP オプションを使って指定する必要があります。 そうでない場合、コマンドの実行が失敗します。 -.LP -.RE -.TP 3 -\-digestalg algorithm -.RS 3 -JAR ファイルのエントリをダイジェストする際に使用するメッセージダイジェストアルゴリズムの名前を指定します。 -.LP -標準メッセージダイジェストアルゴリズム名の一覧については、「Java Cryptography Architecture」にある -.na -\f2「Appendix A 」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このオプションを指定しなかった場合、SHA\-1 が使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザーがそのようなプロバイダを \f2\-providerClass\fP オプションを使って指定する必要があります。 そうでない場合、コマンドの実行が失敗します。 -.LP -.RE -.TP 3 -\-signedjar file -署名付き JAR ファイルの名前を指定します。 -.LP -コマンド行で名前を指定しなかった場合は、入力 JAR ファイル (署名の対象となる JAR ファイル) の名前と同じ名前が使われます。 この場合、入力 JAR ファイルは署名付き JAR ファイルによって上書きされます。 -.TP 3 -\-verify -コマンド行でこのオプションが指定されている場合は、指定された JAR ファイルが検証されます。JAR ファイルへの署名は行われません。 検証が成功すると、「jar が検証されました。」 というメッセージが表示されます。署名されていない JAR ファイル、またはサポートされていないアルゴリズム (RSA プロバイダのインストールを終了していない場合の RSA など) を使って署名された JAR ファイルを検証しようとすると、「jar は署名されていません。(署名が見つからないか、構文解析できません)」というメッセージが表示されます。 -.LP -署名付き JAR ファイルは、\f3jarsigner\fP または JDK 1.1 の \f3javakey\fP ツール、あるいはその両方を使って検証できます。 -.LP -検証についての詳細は、「JAR ファイルの検証」を参照してください。 -.TP 3 -\-certs -コマンド行で、\f2\-verify\fP および \f2\-verbose\fP オプションとともにこのオプションが指定されている場合は、JAR ファイルの各署名者の証明書情報も出力されます。証明書情報には次のものが含まれます。 -.RS 3 -.TP 2 -o -署名者の公開鍵を証明する (.DSA ファイルに格納された) 証明書の種類の名前 -.TP 2 -o -証明書が X.509 証明書 (つまり、\f2java.security.cert.X509Certificate\fP のインスタンス) である場合は、署名者の識別名 -.RE -.LP -キーストアの確認も行われます。コマンド行でキーストアの値が指定されていない場合、デフォルトのキーストアファイルがあれば、検査されます。署名者の公開鍵の証明書がキーストア内のエントリと一致した場合は、次の情報も表示されます。 -.RS 3 -.TP 2 -o -署名者に該当するキーストアエントリの別名。 この別名は括弧で囲まれます。ただし、キーストアではなく JDK 1.1 のアイデンティティーデータベースに由来する署名者の場合は、括弧ではなく大括弧で囲まれます。 -.RE -.TP 3 -\-verbose -コマンド行でこのオプションが指定されている場合、\f3jarsigner\fP は「冗長」モードで動作し、JAR の署名または検証の進行状況に関する追加情報を出力します。 -.TP 3 -\-internalsf -以前は、JAR ファイルの署名時に生成された .DSA (署名ブロック) ファイルの中に、生成された .SF ファイル (署名ファイル) の完全なコピーが符号化された形で含まれていました。この動作は変更されました。この動作は変更になり、現在では、出力 JAR ファイル全体のサイズを小さくするために、デフォルトでは .SF ファイルが .DSA ファイルに含まれないようになっています。ただし、コマンド行で \f2\-internalsf\fP オプションを指定すると、以前と同じように動作します。\f3このオプションは、テストを行う場合には便利ですが、それ以外には使用しないでください。 このオプションを使用すると、有益な最適化が行われなくなります。\fP -.TP 3 -\-sectionsonly -コマンド行でこのオプションが指定されている場合、JAR ファイルの署名時に生成される .SF ファイル (署名ファイル) には、マニフェストファイル全体のハッシュを含むヘッダーは追加されません。この場合、.SF ファイルに含まれるのは、JAR ファイル内の各ソースファイルに関する情報およびハッシュだけです。 詳細は、「署名 (.SF) ファイル」を参照してください。 -.LP -デフォルトでは、最適化を行うために、マニフェストファイル全体のハッシュを含むヘッダーが追加されます。ヘッダーが存在する場合は、JAR ファイルの検証時に、まずヘッダー内のハッシュが、マニフェストファイル全体のハッシュと実際に一致するかどうかが確認されます。ハッシュが一致する場合、検証は次の手順に進みます。ハッシュが一致しない場合は、効率的には劣る方法を使って検証を行います。 具体的には、.SF ファイル内の各ソースファイル情報セクションのハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するかどうかを確認します。 -.LP -詳細は、「JAR ファイルの検証」を参照してください。 -.LP -\f3このオプションは、テストを行う場合には便利ですが、それ以外には使用しないでください。 このオプションを使用すると、有益な最適化が行われなくなります。\fP -.TP 3 -\-protected -\f2true\fP または \f2false\fP のいずれか。専用 PIN リーダーなどの保護された認証パスを介してパスワードを指定する必要がある場合には、この値に \f2true\fP を指定してください。 -.RE -.RS 3 -.TP 3 -\-provider provider\-class\-name -サービスプロバイダがセキュリティープロパティーファイル (\f2java.security\fP) のリストに入っていないときに、暗号化サービスプロバイダのマスタークラスファイルの名前を指定します。 -.LP -\f2\-providerArg\fP \f2ConfigFilePath\fP オプションと組み合わせて使用します。 keytool と jarsigner はプロバイダを動的にインストールします (ここで、\f2ConfigFilePath\fP はトークン設定ファイルへのパスです)。セキュリティープロパティーファイル内で Sun PKCS#11 プロバイダが設定されていない場合に PKCS#11 キーストアを一覧表示するコマンドの例を次に示します。 -.RS 3 - -.LP -.nf -\f3 -.fl -jarsigner \-keystore NONE \-storetype PKCS11 \\ -.fl - \-providerClass sun.security.pkcs11.SunPKCS11 \\ -.fl - \-providerArg /foo/bar/token.config \\ -.fl - \-list -.fl -\fP -.fi -.RE -.TP 3 -\-providerName providerName -\f2java.security\fP セキュリティープロパティーファイル内で 2 つ以上のプロバイダが設定されている場合、\f2\-providerName\fP オプションを使って特定のプロバイダインスタンスを選択できます。このオプションの引数は、プロバイダの名前です。 -.LP -Sun PKCS#11 プロバイダの場合、\f2providerName\fP は \f2SunPKCS11\-\fP\f2TokenName\fP という形式になります。 ここで「\f2TokenName\fP」は、プロバイダインスタンスが構成された名前の接尾辞です。 詳細は -.na -\f2構成属性の表\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRSを参照してください。たとえば、以下のコマンドでは、名前接尾辞 \f2SmartCard\fP の PKCS#11 キーストアプロバイダインスタンスの内容をリストします。 -.RS 3 - -.LP -.nf -\f3 -.fl -jarsigner \-keystore NONE \-storetype PKCS11 \\ -.fl - \-providerName SunPKCS11\-SmartCard \\ -.fl - \-list -.fl -\fP -.fi -.RE -.TP 3 -\-Jjavaoption -指定された \f2javaoption\fP 文字列を Java インタプリタに直接渡します。(\f3jarsigner\fP は、実際には Java インタプリタに対する「ラッパー」です。このオプションには、空白を含めることはできません。このオプションは、実行環境またはメモリー使用を調整する場合に便利です。指定できるインタプリタオプションを一覧表示するには、コマンド行で \f2java \-h\fP または \f2java \-X\fP と入力してください。 -.LP -.TP 3 -\-tsa url -JAR ファイルの署名時にコマンド行に「\f2\-tsa http://example.tsa.url\fP」が表示される場合、署名のタイムスタンプが生成されます。URL \f2http://example.tsa.url\fP は、TSA (Time Stamping Authority) の場所を特定します。これは、\f2\-tsacert\fP オプションで検出された URL をオーバーライドします。\f2\-tsa\fP オプションでは、TSA の公開鍵証明書をキーストアに配置する必要はありません。 -.LP -タイムスタンプを生成するため、\f2jarsigner\fP は -.na -\f2RFC 3161\fP @ -.fi -http://www.ietf.org/rfc/rfc3161.txt で定義されている TSP (Time\-Stamp Protocol) を使用して TSA と通信します。成功すると、TSA から返されたタイムスタンプトークンは署名ブロックファイルの署名とともに保存されます。 -.LP -.TP 3 -\-tsacert alias -JAR ファイルの署名時にコマンド行に「\f2\-tsacert alias\fP」が表示される場合、署名のタイムスタンプが生成されます。\f2alias\fP は、キーストア内の現在有効な TSA の公開鍵証明書を特定します。エントリの証明書で、TSA の場所を特定する URL を含む Subject Information Access 拡張機能が確認されます。 -.LP -TSA の公開鍵証明書は、\f2\-tsacert\fP を使った場合、キーストアに配置されている必要があります。 -.LP -.TP 3 -\-altsigner class -代替署名機構を使用することを指定します。完全修飾クラス名は、\f2com.sun.jarsigner.ContentSigner\fP の abstract クラスを拡張するクラスファイルを特定します。このクラスファイルへのパスは、\f2\-altsignerpath\fP オプションによって定義されます。\f2\-altsigner\fP オプションを使用した場合、\f2jarsigner\fP は指定されたクラスが提供する署名機構を使用します。または、\f2jarsigner\fP はデフォルトの署名機構を使用します。 -.LP -たとえば、\f2com.sun.sun.jarsigner.AuthSigner\fP というクラスが提供する署名機構を使用するには、\f2jarsigner\fP オプション「\f2\-altsigner com.sun.jarsigner.AuthSigner\fP」を使用します。 -.LP -.TP 3 -\-altsignerpath classpathlist -クラスファイル (クラスファイル名は上記のように \f2\-altsigner\fP オプションで指定される) およびそれが依存する JAR ファイルへのパスを指定します。クラスファイルが JAR ファイル内にある場合、以下の例のように JAR ファイルへのパスが指定されます。 -.LP -絶対パスまたは現在のディレクトリからの相対パスを指定できます。\f2classpathlist\fP には、複数のパスまたは JAR ファイルを含めることができます。 その場合、各パスまたは JAR ファイルを、Solaris の場合にはコロン (\f2:\fP)、Windows の場合にはセミコロン (\f2;\fP) で区切ります。目的のクラスがすでに検索パス内にある場合は、このオプションは不要です。 -.LP -クラスファイルを含む、JAR ファイルへのパスを指定する例を示します。 -.RS 3 - -.LP -.LP -\f2\-altsignerpath /home/user/lib/authsigner.jar\fP -.LP -.RE -.LP -JAR ファイル名が含まれていることに注意してください。 -.LP -クラスファイルを含む JAR ファイルへのパスを指定する例を示します。 -.RS 3 -.LP -\f2\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/\fP -.LP -.RE -.LP -JAR ファイル名は含まれていないことに留意してください。 -.RE -.SH "例" -.LP - -.LP -.SS -JAR ファイルの署名 -.LP -.RS 3 - -.LP -.LP -bundle.jar という名前の JAR ファイルがあるとします。 このファイルに、キーストアの別名が jane であるユーザーの非公開鍵を使って、署名を付けるとします。キーストアは、mystore という名前で、C ドライブの working ディレクトリにあり、キーストアのパスワードは mypass、\f2jane\fP の非公開鍵のパスワードは j638klm とします。この場合、次のコマンドを実行すると、JAR ファイルに署名を付けて sbundle.jar という署名付き JAR ファイルを作成できます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-storepass myspass -.fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -上のコマンドでは \f2\-sigfile\fP オプションが指定されていないため、署名付き JAR ファイルに格納される .SF ファイルと .DSA ファイルの名前は、別名からデフォルト名がつけられます。つまり、\f2JANE.SF\fP と \f2JANE.DSA\fP になります。 -.LP -.LP -ストアのパスワードと非公開鍵のパスワードをあとで入力する場合は、上のコマンドを短縮して次のように入力できます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore -.fl - \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -デフォルトのキーストア (ホームディレクトリ内の .keystore という名前のキーストア) を使用する場合は、次に示すように、キーストアの指定を省略できます。 -.LP -.nf -\f3 -.fl - jarsigner \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -また、署名付き JAR ファイルで入力 JAR ファイル (\f2bundle.jar\fP) を上書きする場合は、\f2\-signedjar\fP オプションの指定も省略できます。 -.LP -.nf -\f3 -.fl - jarsigner bundle.jar jane -.fl -\fP -.fi -.RE - -.LP -.SS -署名付き JAR ファイルの検証 -.LP -.RS 3 - -.LP -.LP -次に示すのは、署名付き JAR ファイルを検証し、署名が有効で JAR ファイルが改変されていないことを確認するためのコマンド例です。 -.LP -.nf -\f3 -.fl - jarsigner \-verify sbundle.jar -.fl -\fP -.fi - -.LP -.LP -検証が成功すると、次のようなメッセージが表示されます。 -.LP -.nf -\f3 -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -というメッセージが表示されます。検証が成功しなかった場合は、エラーメッセージが表示されます。 -.LP -.LP -\f2\-verbose\fP オプションを使うと、より多くの情報が表示されます。次に示すのは、\f2\-verbose\fP オプションを指定した \f3jarsigner\fP の実行例とその出力結果です。 -.LP -.nf -\f3 -.fl - jarsigner \-verify \-verbose sbundle.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - smk 2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class -.fl - smk 849 Fri Sep 26 16:12:46 PDT 1997 test.class -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.SS -証明書情報を使った検証 -.LP -.LP -検証時に、\f2\-verify\fP と \f2\-verbose\fP オプションに加えて \f2\-certs\fP オプションを指定した場合は、JAR ファイル内の各署名者の証明書情報も出力されます。 これには、証明書のタイプ、署名者の識別名情報 (X.509 証明書の場合)、および JAR ファイルの公開鍵の証明書がキーストアエントリの公開鍵の証明書と一致する場合には、括弧で囲まれた署名者のキーストア別名が含まれます。次に例を示します。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-verify \-verbose \-certs myTest.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - 208 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.SF -.fl - 1087 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.DSA -.fl - smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class -.fl - -.fl - X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest) -.fl - X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -署名者の証明書が X.509 証明書でない場合は、識別名情報は表示されません。その場合には、証明書のタイプと別名だけが表示されます。たとえば、証明書が PGP 証明書で、別名が bob の場合は、次のように表示されます。 -.LP -.nf -\f3 -.fl - PGP, (bob) -.fl -\fP -.fi - -.LP -.SS -アイデンティティーデータベースの署名者を含む JAR ファイルの検証 -.LP -.LP -JAR ファイルが、JDK 1.1 の \f3javakey\fP ツールを使って署名されている場合、署名者はアイデンティティーデータベース内の別名です。 この場合、検証の出力には i という記号が含まれます。JAR ファイルが、アイデンティティーデータベース内の別名とキーストア内の別名の両方によって署名されている場合は、k と i の両方が表示されます。 -.LP -.LP -\f2\-certs\fP オプションを指定した場合、キーストアの別名は括弧で囲まれるのに対し、アイデンティティーデータベース内の別名は角括弧で囲まれて表示されます。例を示します。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-verify \-verbose \-certs writeFile.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - 199 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.SF -.fl - 1013 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.DSA -.fl - smki 2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html -.fl - -.fl - X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) -.fl - X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke] -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - i = 1 つ以上の証明書がアイデンティティースコープで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -別名 duke は角括弧で囲まれているので、この別名はキーストアの別名ではなく、アイデンティティーデータベースの別名です。 -.LP -.RE -.SH "関連項目" -.LP - -.LP -.RS 3 -.TP 2 -o -jar(1) ツールのドキュメント -.TP 2 -o -keytool(1) ツールのドキュメント -.TP 2 -o -\f3jarsigner\fP ツールの使用例については、 -.na -\f4「Java Tutorial」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/index.htmlの -.na -\f4「Security」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/security/index.htmlを参照 +http://download.oracle.com/javase/tutorial/index.htmlSecurity\f3򻲾\fP .RE .LP diff --git a/jdk/src/linux/doc/man/ja/java.1 b/jdk/src/linux/doc/man/ja/java.1 index b939d72adcf..5385d6ef039 100644 --- a/jdk/src/linux/doc/man/ja/java.1 +++ b/jdk/src/linux/doc/man/ja/java.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,29 +19,29 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "02 Jun 2010" +.TH java 1 "14 Apr 2011" .LP -.SH "名前" -java \- Java アプリケーション起動ツール +.SH "̾" +java \- Java ץꥱưġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" +.SH "" .LP .nf \f3 @@ -52,90 +52,80 @@ o .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 class -呼び出されるクラスの名前 +ƤӽФ륯饹̾ .TP 3 file.jar -呼び出される JAR ファイルの名前。必ず \f2\-jar\fP とともに使用する +ƤӽФ JAR ե̾ɬ \f2\-jar\fP ȤȤ˻Ѥ .TP 3 argument -\f3main\fP 関数に渡される引数 +\f3main\fP ؿϤ .RE .LP -.RE -.SH " 説明" -.LP - +.SH "" .LP .LP -\f3java\fP ツールは、Java アプリケーションを起動します。java ツールは、Java Runtime Environment を起動したあと、指定されたクラスをロードし、そのクラスの \f3main\fP メソッドを呼び出すことにより、Java アプリケーションを起動します。 +\f3java\fP ġϡJava ץꥱưޤjava ġϡJava Runtime Environment ưȡꤵ줿饹ɤΥ饹 \f3main\fP ᥽åɤƤӽФȤˤꡢJava ץꥱưޤ .LP .LP -このメソッドは、public および static として宣言する必要があります。 また、値を返してはいけません。 さらに、\f2String\fP 配列をパラメータとして指定できなければなりません。メソッドの宣言は、次のようになっていなければなりません。 +Υ᥽åɤϡpublic static Ȥɬפޤ ޤ֤ͤƤϤޤ ˡ \f2String\fP ѥ᡼ȤƻǤʤФʤޤ󡣥᥽åɤϡΤ褦ˤʤäƤʤФʤޤ .LP .nf \f3 .fl - public static void main(String args[]) +public static void main(String args[]) .fl \fP .fi .LP .LP -デフォルトでは、コマンド行オプション以外の最初の引数が、呼び出されるクラスの名前になります。この名前には、完全指定のクラス名を使用する必要があります。\f3\-jar\fP オプションを指定した場合、コマンド行オプション以外の最初の引数が、アプリケーションのクラスファイルとリソースファイルを含む \f3JAR\fP アーカイブの名前になります。 この場合、マニフェストの \f3Main\-Class\fP ヘッダーで指定されたクラスが起動クラスになります。 +ǥեȤǤϡޥɹԥץʳκǽΰƤӽФ륯饹̾ˤʤޤ̾ˤϡΥ饹̾Ѥɬפޤ\f3\-jar\fP ץꤷ硢ޥɹԥץʳκǽΰץꥱΥ饹եȥ꥽եޤ \f3JAR\fP ֤̾ˤʤޤξ硢ޥ˥եȤ \f3Main\-Class\fP إåǻꤵ줿饹ư饹ˤʤޤ .LP .LP -Java Runtime は、ブートストラップクラスパス、インストール型拡張機能、およびユーザークラスパスの 3 箇所から起動クラスと他の使用されているクラスを検索します。 +Java Runtime ϡ֡ȥȥåץ饹ѥ󥹥ȡ뷿ĥǽӥ桼饹ѥ 3 ս꤫鵯ư饹¾λѤƤ륯饹򸡺ޤ .LP .LP -クラス名または JAR ファイル名のあとにある、コマンド行オプション以外の引数は、\f3main\fP 関数に渡されます。 +饹̾ޤ JAR ե̾ΤȤˤ롢ޥɹԥץʳΰϡ\f3main\fP ؿϤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -起動ツールには、現在の実行環境および将来のリリースでサポートされる標準オプションがあります。また、仮想マシンの現在の実装では、非標準オプションのセットもサポートされます。 これは、将来のリリースで変更される可能性があります。 +ưġˤϡߤμ¹ԴĶӾΥ꡼ǥݡȤɸ४ץ󤬤ޤޤۥޥθߤμǤϡɸ४ץΥåȤ⥵ݡȤޤϡΥ꡼ѹǽޤ .LP -.SH "標準オプション" -.LP - +.SH "ɸ४ץ" .LP .RS 3 .TP 3 \-client .LP -Java HotSpot Client VM を選択します。64 ビット対応 JDK は現時点では、このオプションを無視し、代わりに Java Hotspot Server VM を使用します。 +Java HotSpot Client VM 򤷤ޤ64 ӥåб JDK ϸǤϡΥץ̵뤷 Java Hotspot Server VM Ѥޤ .LP -デフォルトの VM の選択については、 +ǥեȤ VM ˤĤƤϡ .na -\f2「サーバー \- クラスマシンの検出」\fP @ +\f2֥С \- 饹ޥθС\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html򻲾ȤƤ .TP 3 \-server .LP -Java HotSpot Server VM を選択します。64 ビット対応 JDK 上では、サポートされるのは Java Hotspot Server VM だけであるため、\-server オプションが暗黙的に選択されます。 +Java HotSpot Server VM 򤷤ޤ64 ӥåб JDK ǤϡݡȤΤ Java Hotspot Server VM Ǥ뤿ᡢ\-server ץ󤬰Ū򤵤ޤ .LP -デフォルトの VM の選択については、 +ǥեȤ VM ˤĤƤϡ .na -\f2「サーバー \- クラスマシンの検出」\fP @ +\f2֥С \- 饹ޥθС\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html򻲾ȤƤ .TP 3 \-agentlib:libname[=options] -ネイティブエージェントライブラリ \f2libname\fP をロードします。 たとえば次のように指定します。 +ͥƥ֥ȥ饤֥ \f2libname\fP ɤޤȤмΤ褦˻ꤷޤ .LP \-agentlib:hprof .LP @@ -143,57 +133,57 @@ http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参 .LP \-agentlib:hprof=help .LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2「JVMTI エージェントのコマンド行オプション」\fP @ +\f2JVMTI ȤΥޥɹԥץ\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#startingを参照してください。 +http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting򻲾ȤƤ .TP 3 \-agentpath:pathname[=options] -フルパス名を使用して、ネーティブエージェントライブラリをロードします。詳細については、 +եѥ̾Ѥơ͡ƥ֥ȥ饤֥ɤޤܺ٤ˤĤƤϡ .na -\f2「JVMTI エージェントのコマンド行オプション」\fP @ +\f2JVMTI ȤΥޥɹԥץ\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#startingを参照してください。 +http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting򻲾ȤƤ .TP 3 \-classpath classpath .TP 3 \-cp classpath -クラスファイルを検索するディレクトリ、JAR アーカイブ、および ZIP アーカイブのリストを指定します。クラスパスの各エントリはコロン (\f3:\fP) で区切ります。\f3\-classpath\fP または \f3\-cp\fP を指定すると、このオプションの値によって \f3CLASSPATH\fP 環境変数の設定がオーバーライドされます。 +饹ե򸡺ǥ쥯ȥꡢJAR ֡ ZIP ֤ΥꥹȤꤷޤ饹ѥγƥȥϥ (\f3:\fP) Ƕڤޤ\f3\-classpath\fP ޤ \f3\-cp\fP ꤹȡΥץͤˤä \f3CLASSPATH\fP Ķѿ꤬С饤ɤޤ .LP -\f3\-classpath\fP も \f3\-cp\fP も使用されず、\f3CLASSPATH\fP も設定されていない場合、ユーザークラスパスは現在のディレクトリ (\f4.\fP) になります。 +\f3\-classpath\fP \f3\-cp\fP Ѥ줺\f3CLASSPATH\fP ꤵƤʤ硢桼饹ѥϸߤΥǥ쥯ȥ (\f4.\fP) ˤʤޤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡ \f2.jar\fP ޤ \f2.JAR\fP ĥҤ˻ĥǥ쥯ȥΤ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤̤ȤʤޤΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ* \f2饹ѥȥϡ\fP ȥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .LP -クラスパスの詳細は、 +饹ѥξܺ٤ϡ .na -\f2「クラスパスの設定」\fP @ +\f2֥饹ѥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath򻲾ȤƤ .TP 3 \-Dproperty=value -システムプロパティーの値を設定します。 +ƥץѥƥͤꤷޤ .TP 3 \-d32 .TP 3 \-d64 -それぞれ 32 ビット環境、64 ビット環境でプログラムを実行することを要求します。要求された環境がインストールされていないかサポートされていない場合は、エラーが報告されます。 +줾 32 ӥåȴĶ64 ӥåȴĶǥץ¹Ԥ뤳Ȥ׵ᤷޤ׵ᤵ줿Ķ󥹥ȡ뤵ƤʤݡȤƤʤϡ顼𤵤ޤ .LP -現在のところ、Java HotSpot Server VM だけが 64 ビットの操作をサポートしており、\-d64 を使用すると \-server オプションが暗黙的に有効になります。したがって、\-d64 使用時には「\-client」オプションは無視されます。この仕様は、将来のリリースでは変更になる可能性があります。 +ߤΤȤJava HotSpot Server VM 64 ӥåȤ򥵥ݡȤƤꡢ\-server ץѤϡ\-d64 ˻Ѥɬפޤäơ\-d64 ѻˤϡ\-clientץץ̵뤵ޤλͤϡΥ꡼Ǥѹˤʤǽޤ .LP -\f3\-d32\fP と \f3\-d64\fP がどちらも指定されていない場合は、デフォルトとして、32 ビット環境で実行されます。この仕様は、将来のリリースでは変更になる可能性があります。 +\f3\-d32\fP \f3\-d64\fP ɤꤵƤʤϡǥեȤȤơ32 ӥåȴĶǼ¹ԤޤλͤϡΥ꡼Ǥѹˤʤǽޤ .TP 3 -\-enableassertions[:"..."| : ] +\-enableassertions[:"..." | : ] .TP 3 -\-ea[:"..."| : ] -アサーションを有効にします。アサーションは、デフォルトでは無効になっています。 +\-ea[:"..." | : ] +ͭˤޤϡǥեȤǤ̵ˤʤäƤޤ .LP -引数なしの \f3enableassertions\fP または \f3\-ea\fP を指定すると、アサーションが有効になります。「\f2...\fP」で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが有効になります。引数として「\f2...\fP」だけを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが有効になります。「\f2...\fP」で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが有効になります。 +ʤ \f3enableassertions\fP ޤ \f3\-ea\fP ꤹȡͭˤʤޤ\f2...\fPפǽ 1 ĻꤹȡꤷѥåȤΥ֥ѥåǥͭˤʤޤȤơ\f2...\fPפꤹȡߤκȥǥ쥯ȥˤ̾Τʤѥåǥͭˤʤޤ\f2...\fPפǽʤ 1 Ļꤹȡꤷ饹ǥͭˤʤޤ .LP -単一コマンド行にこれらのスイッチのインスタンスを複数指定した場合は、指定したスイッチが順番に処理されてからクラスがロードされます。したがって、たとえば、パッケージ \f2com.wombat.fruitbat\fP (サブパッケージを含む) 内でのみアサーションを有効にしてプログラムを実行するには、次のようなコマンドを使用します。 +ñ쥳ޥɹԤˤΥåΥ󥹥󥹤ʣꤷϡꤷå֤˽Ƥ饯饹ɤޤäơȤСѥå \f2com.wombat.fruitbat\fP (֥ѥåޤ) ǤΤߥͭˤƥץ¹ԤˤϡΤ褦ʥޥɤѤޤ .nf \f3 .fl @@ -202,151 +192,156 @@ java \-ea:com.wombat.fruitbat...

    \fP .fi .LP -\f3\-enableassertions\fP および \f3\-ea\fP スイッチは、すべてのクラスローダおよびシステムクラスに適用されます。 システムクラスにはクラスローダはありません。ただし、この規則には例外が 1 つあります。それは、引数なしでこのスイッチを指定すると、その指定はシステムクラスには適用されない、ということです。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを有効にするために、別のスイッチが用意されています。 このあとの \f3\-enablesystemassertions\fP を参照してください。 +\f3\-enableassertions\fP \f3\-ea\fP åϡ٤ƤΥ饹ӥƥ९饹ŬѤޤƥ९饹ˤϥ饹Ϥޤ󡣤ε§ˤ 1 㳰ޤϡʤηǤΥåꤹȡλ꤬ƥŬѤʤȤȤǤ㳰ѤСƥ९饹٤ƤΥ饹ǥñͭˤ뤳ȤǤޤ٤ƤΥƥ९饹ǥͭˤ뤿ˡ̤ΥåѰդƤޤΤȤ \f3\-enablesystemassertions\fP 򻲾ȤƤ .TP 3 -\-disableassertions[:"..."| : ] +\-disableassertions[:"..." | : ] .TP 3 -\-da[:"..."| : ] -アサーションを無効にします。これはデフォルトの設定です。 +\-da[:"..." | : ] +̵ˤޤ줬ǥեȤǤ .LP -引数なしの \f3disableassertions\fP または \f3\-da\fP を指定すると、アサーションが無効になります。「\f2...\fP」で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが無効になります。引数として「\f2...\fP」だけを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが無効になります。「\f2...\fP」で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが無効になります。 +ʤ \f3disableassertions\fP ޤ \f3\-da\fP ꤹȡ̵ˤʤޤ\f2...\fPפǽ 1 ĻꤹȡꤷѥåȤΥ֥ѥåǥ̵ˤʤޤȤơ\f2...\fPפꤹȡߤκȥǥ쥯ȥˤ̾Τʤѥåǥ̵ˤʤޤ\f2...\fPפǽʤ 1 Ļꤹȡꤷ饹ǥ̵ˤʤޤ .LP -パッケージ \f2com.wombat.fruitbat\fP 内ではアサーションを有効にし、クラス \f2com.wombat.fruitbat.Brickbat\fP 内ではアサーションを無効にしたうえで、プログラムを実行するには、次のようなコマンドを使用します。 +ѥå \f2com.wombat.fruitbat\fP Ǥϥͭˤ饹 \f2com.wombat.fruitbat.Brickbat\fP Ǥϥ̵ˤǡץ¹ԤˤϡΤ褦ʥޥɤѤޤ .nf \f3 .fl -java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat
    +java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat \fP\f4
    \fP\f3 .fl \fP .fi .LP -\f3\-disableassertions\fP および \f3\-da\fP スイッチは、すべてのクラスローダおよびシステムクラスに適用されます。 システムクラスにはクラスローダはありません。ただし、この規則には例外が 1 つあります。それは、引数なしでこのスイッチを指定すると、その指定はシステムクラスには適用されない、ということです。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを無効にするために、別のスイッチが用意されています。 このあとの \f3\-disablesystemassertions\fP を参照してください。 +\f3\-disableassertions\fP \f3\-da\fP åϡ٤ƤΥ饹ӥƥ९饹ŬѤޤƥ९饹ˤϥ饹Ϥޤ󡣤ε§ˤ 1 㳰ޤϡʤηǤΥåꤹȡλ꤬ƥŬѤʤȤȤǤ㳰ѤСƥ९饹٤ƤΥ饹ǥñͭˤ뤳ȤǤޤ٤ƤΥƥ९饹ǥ̵ˤ뤿ˡ̤ΥåѰդƤޤΤȤ \f3\-disablesystemassertions\fP 򻲾ȤƤ .TP 3 \-enablesystemassertions .TP 3 \-esa -すべてのシステムクラス内でアサーションを有効にします。 つまり、システムクラスについてアサーションのデフォルトステータスを \f2true\fP に設定します。 +٤ƤΥƥ९饹ǥͭˤޤĤޤꡢƥ९饹ˤĤƥΥǥեȥơ \f2true\fP ꤷޤ .TP 3 \-disablesystemassertions .TP 3 \-dsa -すべてのシステムクラス内でアサーションを無効にします。 -.LP +٤ƤΥƥ९饹ǥ̵ˤޤ .TP 3 \-jar -JAR ファイルにカプセル化されたプログラムを実行します。最初の引数は、起動クラスの名前ではなく、JAR ファイルの名前にします。このオプションが機能するには、JAR ファイルのマニフェストに\f3「Main\-Class:\fP\f4classname\fP\f3」\fPという形式の行を指定する必要があります。\f2classname\fP には、アプリケーションの開始位置として機能する \f2public\ static\ void\ main(String[]\ args)\fP メソッドを含むクラスを指定します。JAR ファイルとそのマニフェストについては、jar(1)と、 +JAR ե˥ץ벽줿ץ¹Ԥޤǽΰϡư饹̾ǤϤʤJAR ե̾ˤޤΥץ󤬵ǽˤϡJAR եΥޥ˥եȤ\f3Main\-Class:\fP\f4classname\fP\f3\fPȤιԤꤹɬפޤ\f2classname\fP ˤϡץꥱγϰ֤ȤƵǽ \f2public\ static\ void\ main(String[]\ args)\fP ᥽åɤޤ९饹ꤷޤJAR եȤΥޥ˥եȤˤĤƤϡjar(1)ȡ .na -\f2Java チュートリアル\fP @ +\f2Java 塼ȥꥢ\fP @ .fi -http://java.sun.com/docs/books/tutorial/jarの「Trail: Jar Files」を参照してください。 +http://download.oracle.com/javase/tutorial/deployment/jarΡTrail: Jar Filesפ򻲾ȤƤ .LP -このオプションを使用すると、指定した JAR ファイルがすべてのユーザークラスのソースになり、ユーザークラスパスのほかの設定は無視されます。 +ΥץѤȡꤷ JAR ե뤬٤ƤΥ桼饹Υˤʤꡢ桼饹ѥΤ̵ۤ뤵ޤ .LP -Solaris 8 では、「java \-jar」オプションで実行できる JAR ファイルは、実行権限のセットを保持しています。 このため、「java \-jar」を使用しないで実行することも可能です。 +Solaris 8 Ǥϡjava \-jarץץǼ¹ԤǤ JAR եϡ¹Ը¤ΥåȤݻƤޤΤᡢjava \-jarפѤʤǼ¹Ԥ뤳ȤǽǤJava Archive (JAR) ե .na -\f2Java Archive (JAR) ファイル\fP @ + @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/index.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html .TP 3 \-javaagent:jarpath[=options] -Java プログラミング言語エージェントをロードします。 +Java ץߥ󥰸쥨Ȥɤޤ java.lang.instrument 򻲾ȤƤ .na -\f2java.lang.instrument\fP @ + @ .fi -http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html を参照してください。 +http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html +.TP 3 +\-jre\-restrict\-search +桼ץ饤١Ȥ JRE С󸡺˴ޤޤ +.TP 3 +\-no\-jre\-restrict\-search +桼ץ饤١Ȥ JRE С󸡺ޤ .TP 3 \-verbose .TP 3 \-verbose:class -クラスがロードされるたびにクラスに関する情報を表示します。 +饹ɤ뤿Ӥ˥饹˴ؤɽޤ .TP 3 \-verbose:gc -ガベージコレクションイベントが発生するたびに報告します。 +١쥯󥤥٥Ȥȯ뤿Ӥ𤷤ޤ .TP 3 \-verbose:jni -ネイティブメソッドの使用およびその他の Java Native Interface (JNI) アクティビティーに関する情報を報告します。 +ͥƥ֥᥽åɤλѤӤ¾ Java Native Interface (JNI) ƥӥƥ˴ؤ𤷤ޤ .TP 3 \-version -バージョン情報を表示して終了します。 +Сɽƽλޤ .TP 3 \-version:release -コマンド行に指定されたクラスまたは JAR ファイルが、\f2release\fP で指定されたバージョンを必要としていることを示します。起動された java コマンドのバージョンがこの指定内容を満たさず、かつ適切な実装がシステム上で見つかった場合には、その適切な実装が使用されます。 +ޥɹԤ˻ꤵ줿饹ޤ JAR ե뤬\f2release\fP ǻꤵ줿СɬפȤƤ뤳Ȥ򼨤ޤư줿 java ޥɤΥС󤬤λƤŬڤʼƥǸĤäˤϡŬڤʼѤޤ .LP -\f2release\fP では、特定のバージョンを指定できるだけでなく、バージョン文字列と呼ばれるバージョンのリストを指定することもできます。バージョン文字列は、いくつかのバージョン範囲を空白で区切った形式の順序付きリストです。バージョン範囲は、バージョン ID、バージョン ID の後にアスタリスク (*) を付加したもの、バージョン ID の後にプラス記号 (+) を付加したもの、2 つのバージョン範囲をアンパサンド (&) で結合したもの、のいずれかになります。アスタリスクはプレフィックス一致を、プラス記号は指定されたバージョン以上を、アンパサンドは 2 つのバージョン範囲の論理積を、それぞれ意味します。例を示します。 +\f2release\fP ǤϡΥСǤǤʤСʸȸƤФСΥꥹȤꤹ뤳ȤǤޤСʸϡĤΥСϰϤǶڤäνդꥹȤǤСϰϤϡС IDС ID θ˥ꥹ (*) ղäΡС ID θ˥ץ饹 (+) ղäΡ2 ĤΥСϰϤ򥢥ѥ (&) Ƿ礷ΡΤ줫ˤʤޤꥹϥץեåפ򡢥ץ饹ϻꤵ줿Сʾ򡢥ѥɤ 2 ĤΥСϰϤѤ򡢤줾̣ޤ򼨤ޤ .nf \f3 .fl -\-version:"1.5.0_04 1.5*&1.5.1_02+" +\-version:"1.6.0_13 1.6*&1.6.0_10+" .fl \fP .fi -上記の意味は、バージョン 1.5.0_04、または 1.5.1_02 以上で 1.5 をバージョン ID プレフィックスとして持つバージョン、のいずれかをクラスまたは JAR ファイルが必要とする、ということです。 バージョン文字列の厳密な構文や定義については、「Java Network Launching Protocol & API Specification (JSR\-56)」の「Appendix A」を参照してください。 +嵭ΰ̣ϡС 1.6.0_131.6 С ID ץեå˻ 1.6.0_10 ʾΥС󡢤Τ줫򥯥饹ޤ JAR ե뤬ɬפȤƤ롢ȤȤǤСʸθ̩ʹʸˤĤƤϡJava Network Launching Protocol & API Specification (JSR\-56)פΡAppendix Aפ򻲾ȤƤ .LP -JAR ファイルの場合は通常、バージョン要件をコマンド行に指定するよりも、JAR ファイルのマニフェスト内に指定することが推奨されています。 +JAR եξ̾С׷򥳥ޥɹԤ˻ꤹ⡢JAR եΥޥ˥ե˻ꤹ뤳Ȥ侩Ƥޤ .LP -このオプションの使用に関する重要なポリシー情報については、後述の「注」節を参照してください。 +ΥץλѤ˴ؤפʥݥꥷˤĤƤϡҤΡ򻲾ȤƤ .TP 3 \-showversion -バージョン情報を表示して続行します。 +Сɽ³Ԥޤ .TP 3 \-? .TP 3 \-help -使用法を表示して終了します。 +ˡɽƽλޤ +.TP 3 +\-splash:imagepath +\f2imagepath\fP ˻ꤵ줿ޤॹץå̤ɽޤ .TP 3 \-X -非標準オプションに関する情報を表示して終了します。 +ɸ४ץ˴ؤɽƽλޤ .RE .LP .SS -非標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Xint -インタプリタ専用モードで動作します。ネイティブコードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot VM に対応するコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。 +󥿥ץ꥿ѥ⡼ɤưޤͥƥ֥ɤؤΥѥ̵ˤʤꡢ٤ƤΥХȥɤ󥿥ץ꥿ˤäƼ¹ԤޤJava HotSpot VM б륳ѥ餬󶡤ѥեޥ󥹾ϡΥ⡼ɤǤϼ¸ޤ .TP 3 \-Xbatch -バックグラウンドコンパイルを無効にします。通常、VM では、バックグラウンドコンパイルが終了するまで、メソッドをバックグラウンドタスクとしてコンパイルし、インタプリタモードでメソッドを実行します。\f2\-Xbatch\fP フラグを指定すると、バックグラウンドコンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンドタスクとして処理されます。 +Хå饦ɥѥ̵ˤޤ̾VM ǤϡХå饦ɥѥ뤬λޤǡ᥽åɤХå饦ɥȤƥѥ뤷󥿥ץ꥿⡼ɤǥ᥽åɤ¹Ԥޤ\f2\-Xbatch\fP ե饰ꤹȡХå饦ɥѥ뤬̵ˤʤꡢ٤ƤΥ᥽åɤΥѥ뤬λޤǥե饦ɥȤƽޤ .TP 3 \-Xbootclasspath:bootclasspath -ブートクラスファイルを探すディレクトリ、JAR アーカイブ、および ZIP アーカイブをコロンで区切ったリストで指定します。指定したパスに存在するブートクラスファイルが、JDK に含まれるブートクラスファイルの代わりに使用されます。\f2注: rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environment バイナリコードライセンス違反になります。\fP +֡ȥ饹եõǥ쥯ȥꡢJAR ֡ ZIP ֤򥳥ǶڤäꥹȤǻꤷޤꤷѥ¸ߤ֡ȥ饹ե뤬Java ץåȥե JDK ˴ޤޤ֡ȥ饹ե˻Ѥޤ\f2: rt.jar Υ饹򥪡С饤ɤŪǤΥץѤ륢ץꥱϡƥ֤ʤǤJava Runtime Environment Хʥꥳɥ饤󥹰ȿˤʤޤ\fP .TP 3 \-Xbootclasspath/a:path -ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをコロンで区切って指定します。 パスはデフォルトのブートストラップクラスパスのあとに追加されます。 +ǥ쥯ȥꡢJAR ֡ ZIP ֤Υѥ򥳥ǶڤäƻꤷޤѥϥǥեȤΥ֡ȥȥåץ饹ѥΤȤɲäޤ .TP 3 \-Xbootclasspath/p:path -ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをコロンで区切って指定します。 パスはデフォルトのブートストラップクラスパスの前に追加されます。\f2注 rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environment バイナリコードライセンス違反になります。\fP +ǥ쥯ȥꡢJAR ֡ ZIP ֤Υѥ򥳥ǶڤäƻꤷޤѥϥǥեȤΥ֡ȥȥåץ饹ѥɲäޤ\f2: rt.jar Υ饹򥪡С饤ɤŪǤΥץѤ륢ץꥱϡƥ֤ʤǤJava Runtime Environment Хʥꥳɥ饤󥹰ȿˤʤޤ\fP .TP 3 \-Xcheck:jni -Java Native Interface (JNI) 機能に対して追加チェックを行います。具体的には、Java 仮想マシンは JNI 要求を処理する前に、JNI 関数に渡されるパラメータと、実行環境のデータを検証します。無効なデータが見つかった場合は、ネイティブコードに問題があることを示しているため、Java 仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。 +Java Native Interface (JNI) ǽФɲååԤޤŪˤϡJava ۥޥ JNI ׵ˡJNI ؿϤѥ᡼ȡ¹ԴĶΥǡ򸡾ڤޤ̵ʥǡĤäϡͥƥ֥ɤ꤬뤳Ȥ򼨤Ƥ뤿ᡢJava ۥޥ̿Ū顼ȯƽλޤΥץѤȡѥեޥ㲼ͽۤޤ .TP 3 \-Xfuture -クラスとファイルの形式を厳密にチェックします。下位互換性を保つため、JDK の仮想マシンが実行するデフォルトの形式チェックは、JDK ソフトウェアのバージョン 1.1.x が実行するチェックと同程度の厳密さになっています。\f3\-Xfuture\fP フラグを指定すると、クラスファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Java アプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお勧めします。 +饹ȥեη̩˥åޤ̸ߴݤĤᡢJDK βۥޥ󤬼¹ԤǥեȤηåϡJDK եȥΥС 1.1.x ¹ԤåƱ٤θ̩ˤʤäƤޤ\f3\-Xfuture\fP ե饰ꤹȡ饹եλͤؤν򶯲뤿Τ긷̩ʥåͭˤʤޤJava ץꥱưġξΥ꡼Ǥϡ긷̩ʥåǥեȤˤʤ뤿ᡢɤȯȤˤϤΥե饰Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-Xnoclassgc -クラスのガベージコレクションを無効にします。このオプションを使用すると、ロード済みクラスからメモリーが回復されることがなくなるため、全体的なメモリー使用量が増大します。この場合、アプリケーションによっては OutOfMemoryError がスローされる可能性があります。 +饹Υ١쥯̵ˤޤΥץѤȡɺѤߥ饹꡼뤳Ȥʤʤ뤿ᡢŪʥ꡼̤礷ޤξ硢ץꥱˤäƤ OutOfMemoryError ǽޤ .TP 3 \-Xincgc -インクリメンタルガーベジコレクタを有効にします。インクリメンタルガベージコレクタは、デフォルトでは無効になっています。 有効にすると、プログラムの実行中にガベージコレクションによる一時停止が発生しなくなります。インクリメンタルガベージコレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。 +󥯥󥿥륬٥쥯ͭˤޤ󥯥󥿥륬١쥯ϡǥեȤǤ̵ˤʤäƤޤ ͭˤȡץμ¹˥١쥯ˤߤȯʤʤޤ󥯥󥿥륬١쥯ϡץƱ˼¹Ԥ뤳Ȥꡢξ硢ץѤǤץåǽϤ㲼ޤ .TP 3 \-Xloggc:file -\-verbose:gc と同様にガベージコレクションイベントが発生するたびに報告しますが、そのデータを \f2file\fP に記録します。\f2\-verbose:gc\fP を指定したときに報告される情報のほかに、報告される各イベントの先頭に、最初のガベージコレクションイベントからの経過時間 (秒単位) が付け加えられます。 -.LP -ネットワークの応答時間によって JVM の実行速度が低下するのを避けるため、このファイルの格納先は、常にローカルファイルシステムにしてください。ファイルシステムが満杯になると、ファイルは切り詰められ、そのファイルにデータが引き続き記録されます。このオプションと \f2\-verbose:gc\fP の両方がコマンド行に指定されている場合は、このオプションが優先されます。 +\-verbose:gc Ʊͤ˥١쥯󥤥٥Ȥȯ뤿Ӥ𤷤ޤΥǡ \f2file\fP ˵Ͽޤ\f2\-verbose:gc\fP ꤷȤ𤵤Τۤˡ𤵤ƥ٥ȤƬˡǽΥ١쥯󥤥٥Ȥηв (ñ) դäޤ .LP +ͥåȥα֤ˤä JVM μ¹®٤㲼Τ򤱤뤿ᡢΥեγǼϡ˥ե륷ƥˤƤե륷ƥबդˤʤȡեڤͤ졢Υե˥ǡ³ϿޤΥץ \f2\-verbose:gc\fP ξޥɹԤ˻ꤵƤϡΥץͥ褵ޤ .TP 3 \-Xmsn -メモリー割り当てプールの初期サイズをバイト数で指定します。指定する値は、1M バイトより大きい 1024 の倍数にしなければなりません。キロバイトを指定するには、文字 \f2k\fP または \f2K\fP を付けます。 メガバイトを指定するには、文字 \f2m\fP または \f2M\fP を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。詳細については、「HotSpot Ergonomics」を参照してください。 -.br -例: -.RS 3 - +꡼ƥסνХȿǻꤷޤꤹͤϡ1M ХȤ礭 1024 ܿˤʤФʤޤ󡣥ХȤꤹˤϡʸ \f2k\fP ޤ \f2K\fP դޤᥬХȤꤹˤϡʸ \f2m\fP ޤ \f2M\fP դޤǥեͤϡ¹Ի˥ƥ˴Ť򤵤ޤܺ٤ˤĤƤϡ +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/vm/gc\-ergonomics.htmlפ򻲾ȤƤ .LP +: .nf \f3 .fl @@ -356,19 +351,19 @@ Java Native Interface (JNI) 機能に対して追加チェックを行います .fl \-Xms6m .fl - + .fl \fP .fi -.RE .TP 3 \-Xmxn -メモリー割り当てプールの最大サイズをバイト数で指定します。指定する値は、2M バイトより大きい 1024 の倍数にしなければなりません。キロバイトを指定するには、文字 \f2k\fP または \f2K\fP を付けます。 メガバイトを指定するには、文字 \f2m\fP または \f2M\fP を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。詳細については、「HotSpot Ergonomics」を参照してください。 +꡼ƥסκ祵Хȿǻꤷޤꤹͤϡ2M ХȤ礭 1024 ܿˤʤФʤޤ󡣥ХȤꤹˤϡʸ \f2k\fP ޤ \f2K\fP դޤᥬХȤꤹˤϡʸ \f2m\fP ޤ \f2M\fP դޤǥեͤϡ¹Ի˥ƥ˴Ť򤵤ޤܺ٤ˤĤƤϡ +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/vm/gc\-ergonomics.htmlפ򻲾ȤƤ .br -例: -.RS 3 - -.LP +: .nf \f3 .fl @@ -378,95 +373,104 @@ Java Native Interface (JNI) 機能に対して追加チェックを行います .fl \-Xmx80m .fl - + .fl \fP .fi -.RE -Solaris 7 および Solaris 8 SPARC プラットフォームの場合、この値の上限はおよそ 4000m からオーバーヘッドの量を引いたものであり、Solaris 2.6 および x86 プラットフォームの場合は 2000m からオーバーヘッドの量を引いたものです。Linux プラットフォームの場合の上限は、およそ 2000m からオーバーヘッドの量を引いたものです。 +Solaris 7 Solaris 8 SPARC ץåȥեξΤͤξ¤ϡ褽 4000m 饪Сإåɤ̤ΤǤSolaris 2.6 x86 ץåȥեξξ¤ϡ褽 2000m 饪Сإåɤ̤ΤǤLinux ץåȥեξξ¤ϡ褽 2000m 饪Сإåɤ̤ΤǤ .TP 3 \-Xprof -実行中のプログラムのプロファイルを生成し、プロファイリングデータを標準出力に出力します。このオプションは、プログラム開発用のユーティリティーとして提供されています。 本番稼動システムでの使用を目的としたものではありません。 -.LP +¹ΥץΥץեץեǡɸϤ˽ϤޤΥץϡץ೫ȯѤΥ桼ƥƥȤ󶡤Ƥޤ ֲưƥǤλѤŪȤΤǤϤޤ .TP 3 \-Xrs -Java 仮想マシン (JVM) によるオペレーティングシステムシグナルの使用を減らします。 +Java ۥޥ (JVM) ˤ륪ڥ졼ƥ󥰥ƥॷʥλѤ򸺤餷ޤ .LP -以前のリリースでは、Java アプリケーションを秩序正しくシャットダウンするためのシャットダウンフック機能が追加されました。この機能により、JVM が突然終了した場合でも、シャットダウン時にユーザークリーンアップコード (データベース接続のクローズなど) を実行できるようになりました。 +Υ꡼ǤϡJava ץꥱåȥ󤹤뤿ΥåȥեåǽɲäޤεǽˤꡢJVM λǤ⡢åȥ˥桼꡼󥢥åץ (ǡ١³Υʤ) ¹ԤǤ褦ˤʤޤ .LP -Sun の JVM は、シグナルをキャッチすることによって、JVM の異常終了のためのシャットダウンフックを実装します。JVM は、SIGHUP、SIGINT、および SIGTERM を使用して、シャットダウンフックの実行を開始します。 +Sun JVM ϡʥ򥭥å뤳ȤˤäơJVM ΰ۾ェλΤΥåȥեåޤJVM ϡSIGHUPSIGINT SIGTERM Ѥơåȥեåμ¹Ԥ򳫻Ϥޤ .LP -JVM は、デバッグの目的でスレッドスタックをダンプするという、1.2 より前からある機能を実現するためにも、同様の機構を使用します。Sun の JVM は、スレッドダンプを実行するために SIGQUIT を使用します。 +JVM ϡǥХåŪǥåɥåפȤ1.2 餢뵡ǽ¸뤿ˤ⡢ƱͤεѤޤSun JVM ϡåɥפ¹Ԥ뤿 SIGQUIT Ѥޤ .LP -JVM を埋め込んでいるアプリケーションが SIGINT や SIGTERM などのシグナルを頻繁にトラップする必要があると、JVM そのもののシグナルハンドラの処理に支障が出る可能性があります。\f3\-Xrs\fP コマンド行オプションを使用すると、この問題に対処できます。Sun の JVM に対して \f3\-Xrs\fP を使用すると、SIGINT、SIGTERM、SIGHUP、および SIGQUIT に対するシグナルマスクは JVM によって変更されず、これらのシグナルに対するシグナルハンドラはインストールされません。 +JVM Ǥ륢ץꥱ SIGINT SIGTERM ʤɤΥʥˤ˥ȥåפɬפȡJVM ΤΤΥʥϥɥν˻پ㤬Фǽޤ\f3\-Xrs\fP ޥɹԥץѤȡнǤޤSun JVM Ф \f3\-Xrs\fP ѤȡSIGINTSIGTERMSIGHUP SIGQUIT Ф륷ʥޥ JVM ˤäѹ줺ΥʥФ륷ʥϥɥϥ󥹥ȡ뤵ޤ .LP -\f3\-Xrs\fP を指定した場合、次の 2 つの影響があります。 +\f3\-Xrs\fP ꤷ硢 2 Ĥαƶޤ .RS 3 .TP 2 o -SIGQUIT によるスレッドダンプを利用できない +SIGQUIT ˤ륹åɥפѤǤʤ .TP 2 o -シャットダウンフック処理の実行は、JVM が終了しようとしている時点で System.exit() を呼び出すなどして、ユーザーコード側で行う必要がある +åȥեåμ¹ԤϡJVM λ褦ȤƤ System.exit() ƤӽФʤɤơ桼¦ǹԤɬפ .RE .TP 3 \-Xssn -スレッドのスタックサイズを設定します。 +åɤΥåꤷޤ .TP 3 \-XX:+UseAltSigs -VM ではデフォルトで \f2SIGUSR1\fP および \f2SIGUSR2\fP を使用しますが、\f2SIGUSR1\fP および \f2SIGUSR2\fP をシグナル連鎖するアプリケーションと 競合する場合があります。\f2\-XX:+UseAltSigs\fP オプションは、VM にデフォルトとして \f2SIGUSR1\fP と \f2SIGUSR2\fP 以外のシグナルを使用させます。 +VM ǤϥǥեȤ \f2SIGUSR1\fP \f2SIGUSR2\fP Ѥޤ\f2SIGUSR1\fP \f2SIGUSR2\fP 򥷥ʥϢ륢ץꥱ 礹礬ޤ\f2\-XX:+UseAltSigs\fP ץϡVM ˥ǥեȤȤ \f2SIGUSR1\fP \f2SIGUSR2\fP ʳΥʥѤޤ .RE .LP -.RE -.SH "注" +.SH "" .LP - .LP -\f3\-version:\fP\f2release\fP コマンド行オプションでは、どんなに複雑にリリースを指定してもかまいません。ただし、現実的なリリース指定の限られたサブセットを使用するだけでも適切なポリシーを表現できるため、それらのサブセットのみが完全にサポートされます。それらのポリシーを次に示します。 +\f3\-version:\fP\f2release\fP ޥɹԥץǤϡɤʤʣ˥꡼ꤷƤ⤫ޤޤ󡣤Ūʥ꡼θ¤줿֥åȤѤǤŬڤʥݥꥷɽǤ뤿ᡢΥ֥åȤΤߤ˥ݡȤޤΥݥꥷ򼡤˼ޤ +.LP .RS 3 .TP 3 1. -任意のバージョン。 これは、このオプションを使用しないことで表現できます。 +ǤդΥС󡣤ϡΥץѤʤȤɽǤޤ .TP 3 2. -ある特定のバージョン ID よりも大きい任意のバージョン。 次に例を示します。 +ΥС ID 礭ǤդΥС󡣼򼨤ޤ .nf \f3 .fl -"1.5.0_03+" +"1.6.0_10+" .fl \fP .fi -.LP -この場合、1.5.0_03 よりも大きい任意のバージョンが使用されます。 これは、指定されたバージョンで特定のインタフェースが導入された (あるいはそのバグが修正された) 場合に便利です。 +ξ硢 \f21.6.0_10\fP 礭ǤդΥС󤬻Ѥޤϡꤵ줿СΥ󥿥եƳ줿 (뤤ϤΥХ줿) Ǥ .TP 3 3. -ある特定のバージョン ID よりも大きいバージョン。 ただし、そのリリースファミリの上限によって制限するもの。例を示します。 +ΥС ID 礭С󡣤Υ꡼եߥξ¤ˤä¤Ρ򼨤ޤ .nf \f3 .fl -"1.5.0_03+&1.5*" +"1.6.0_10+&1.6*" .fl \fP .fi .TP 3 4. -上の項目 2 または 3 の「OR」表現。例を示します。 +ι 2 ȹ 3 ΡOR׼򼨤ޤ .nf \f3 .fl -"1.4.2_05+&1.4* 1.5+" +"1.6.0_10+&1.6* 1.7+" .fl \fP .fi -これは項目 2 に似ていますが、ある変更が特定のリリース (1.5) で導入されたが、その同じ変更が以前のリリースのアップデートでも利用可能になった、という場合に便利です。 +Ϲ 2 ˻ƤޤѹΥ꡼ (1.7) Ƴ줿ƱѹΥ꡼ΥåץǡȤǤѲǽˤʤäȤǤ .RE .LP -.SH "関連項目" +.SH "λơ" .LP +.LP +̤ˡνλͤưġ뤫֤Τ̾ưʰǸƤӽФ줿ʥ顼ȯ뤤 Java ۥޥ󤫤㳰줿Ǥ Java ץꥱϡAPI ƤӽФ \f2System.exit(exitValue)\fP ѤǤդ֤ͤȤ򤹤뤳ȤǤޤ +.LP +.RS 3 +.TP 2 +o +\f20\fP: ェλ +.TP 2 +o +\f2>0\fP: 顼ȯ +.RE +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -484,19 +488,19 @@ jar(1) .TP 2 o .na -\f2「Java 拡張機能フレームワーク」\fP @ +\f2Java ĥǽե졼\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html .TP 2 o .na -\f2「セキュリティー」\fP @ +\f2֥ƥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/index.html .TP 2 o .na -\f2「HotSpot VM Specific Options」\fP @ +\f2HotSpot VM Specific Options\fP @ .fi http://java.sun.com/docs/hotspot/VMOptions.html .RE diff --git a/jdk/src/linux/doc/man/ja/javac.1 b/jdk/src/linux/doc/man/ja/javac.1 index 905022aaa85..6987ff94b68 100644 --- a/jdk/src/linux/doc/man/ja/javac.1 +++ b/jdk/src/linux/doc/man/ja/javac.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,325 +19,423 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "02 Jun 2010" +.TH javac 1 "14 Apr 2011" .LP -.SH "名前" -javac \- Java プログラミング言語コンパイラ +.SH "̾" +javac \- Java ץߥ󥰸쥳ѥ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -コマンド行引数ファイル +ޥɹ԰ե .TP 2 o -注釈処理 + .TP 2 o -型の検索 +θ .TP 2 o -プログラマティックインタフェース +ץޥƥå󥿥ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ] .fl - + .fl .fi .LP .LP -引数は順不同です。 -.LP -.RS 3 - +ϽƱǤ .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 sourcefiles -コンパイルされる 1 つ以上のソースファイル (MyClass.java など) +ѥ뤵 1 İʾΥե (MyClass.java ʤ) .TP 3 classes -注釈の処理対象となる 1 つ以上のクラス (MyPackage.MyClass など) +νоݤȤʤ 1 İʾΥ饹 (MyPackage.MyClass ʤ) .TP 3 @argfiles -オプションとソースファイルを列挙した 1 つ以上のファイル。このファイルの中では、\f2\-J\fP オプションは指定できません。 +ץȥե󤷤 1 İʾΥե롣ΥեǤ \f2\-J\fP ץϻǤޤ .RE .LP -.RE -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javac\fP ツールは、Java プログラミング言語で記述されたクラスとインタフェースの定義を読み取り、バイトコードのクラスファイルにコンパイルします。また、Java ソースファイルおよびクラス内の注釈の処理も行います。 +\f3javac\fP ġϡJava ץߥ󥰸ǵҤ줿饹ȥ󥿥եɤ߼ꡢХȥɤΥ饹ե˥ѥ뤷ޤޤJava ե뤪ӥ饹νԤޤ .LP .LP -ソースコードのファイル名を \f3javac\fP に渡すには、次の 2 つの方法があります。 +ɤΥե̾ \f3javac\fP Ϥˤϡ 2 Ĥˡޤ .LP .RS 3 .TP 2 o -ソースファイルの数が少ない場合は、ファイル名をコマンド行で直接指定します。 +եοʤϡե̾򥳥ޥɹԤľܻꤷޤ .TP 2 o -ソースファイルの数が多い場合は、ファイル名を空白または改行で区切って、1 つのファイルに列挙します。次に、このリストファイル名の先頭に \f3@\fP を付けて、\f3javac\fP のコマンド行で指定します。 +եο¿ϡե̾ޤϲԤǶڤäơ1 ĤΥե󤷤ޤˡΥꥹȥե̾Ƭ \f3@\fP դơ\f3javac\fP ΥޥɹԤǻꤷޤ .RE .LP .LP -ソースコードのファイル名は \f2.java\fP 拡張子を、クラスのファイル名は \f2.class\fP 拡張子を持っていなければなりません。 また、ソースファイルとクラスファイルのどちらも、該当するクラスに対応するルート名を持っていなければなりません。たとえば、\f2MyClass\fP という名前のクラスは、\f2MyClass.java\fP という名前のソースファイルに記述します。 このソースファイルは、\f2MyClass.class\fP という名前のバイトコードクラスファイルにコンパイルされます。 +ɤΥե̾ \f2.java\fP ĥҤ򡢥饹Υե̾ \f2.class\fP ĥҤäƤʤФʤޤ󡣤ޤեȥ饹եΤɤ⡢륯饹б롼̾äƤʤФʤޤ󡣤ȤС \f2MyClass\fP Ȥ̾Υ饹ϡ \f2MyClass.java\fP Ȥ̾Υե˵ҤޤΥեϡ \f2MyClass.class\fP Ȥ̾ΥХȥɥ饹ե˥ѥ뤵ޤ .LP .LP -内部クラスが定義されていると、追加のクラスファイルが生成されます。これらのクラスファイルの名前は、\f2MyClass$MyInnerClass.class\fP のように、外部クラス名と内部クラス名を組み合わせたものになります。 +饹ƤȡɲäΥ饹ե뤬ޤΥ饹ե̾ϡ \f2MyClass$MyInnerClass.class\fP Τ褦ˡ饹̾饹̾Ȥ߹碌Τˤʤޤ .LP .LP -ソースファイルは、パッケージツリーを反映したディレクトリツリーに配置する必要があります。たとえば、すべてのソースファイルを \f3/workspace\fP に置いている場合、\f2com.mysoft.mypack.MyClass\fP のソースコードは \f3/workspace/com/mysoft/mypack/MyClass.java\fP にある必要があります。 +եϡѥåĥ꡼ȿǤǥ쥯ȥĥ꡼֤ɬפޤȤС٤ƤΥե \f3/workspace\fP ֤Ƥ硢 \f2com.mysoft.mypack.MyClass\fP Υɤ \f3/workspace/com/mysoft/mypack/MyClass.java\fP ˤɬפޤ .LP .LP -デフォルトでは、コンパイラは、各クラスファイルを対応するソースファイルと同じディレクトリに置きます。別の出力先ディレクトリを指定するには、\f3\-d\fP を使用します (このあとのオプションを参照)。 +ǥեȤǤϡѥϡƥ饹եб륽եƱǥ쥯ȥ֤ޤ̤νǥ쥯ȥꤹˤϡ\f3\-d\fP Ѥޤ (ΤȤΥץ򻲾) .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -コンパイラには、現在の開発環境でサポートされており、将来のリリースでもサポートされる標準オプションのセットがあります。これ以外の非標準オプションは、現在の仮想マシンおよびコンパイラの実装に固有のオプションで、将来に変更される可能性があります。非標準オプションは、\f3\-X\fP で始まります。 +ѥˤϡߤγȯĶǥݡȤƤꡢΥ꡼Ǥ⥵ݡȤɸ४ץΥåȤޤʳɸ४ץϡߤβۥޥ󤪤ӥѥμ˸ͭΥץǡѹǽޤɸ४ץϡ\f3\-X\fP ǻϤޤޤ .LP .SS -標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Akey[=value] -注釈プロセッサに渡されるオプション。これらは、javac によって直接解釈されず、個々のプロセッサによって使用されます。 \f2key\fP には、1 つまたは複数の識別子を「.」で区切ったものを指定してください。 +ץåϤ륪ץ󡣤ϡjavac ˤäľܲᤵ줺ġΥץåˤäƻѤޤ\f2key\fP ˤϡ1 Ĥޤʣμ̻Ҥ.פǶڤäΤꤷƤ .TP 3 -\-cp path または \-classpath path -ユーザーのクラスファイルおよび (場合によっては) 注釈プロセッサやソースファイルの検索場所を指定します。このクラスパスは \f3CLASSPATH\fP 環境変数のユーザークラスパスをオーバーライドします。\f3CLASSPATH\fP、\f3\-cp\fP、\f3\-classpath\fP のいずれも指定されていない場合、ユーザークラスパスは、現在のディレクトリになります。詳細は、 -.na -\f2「クラスパスの設定」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +\-cp path ޤ \-classpath path +桼Υ饹ե뤪 (ˤäƤ) ץå䥽եθꤷޤΥ饹ѥ \f3CLASSPATH\fP ĶѿΥ桼饹ѥ򥪡С饤ɤޤ\f3CLASSPATH\fP\f3\-cp\fP\f3\-classpath\fP ΤꤵƤʤ硢桼饹ѥϡߤΥǥ쥯ȥˤʤޤܺ٤ϡ֥饹ѥפ򻲾ȤƤ .LP -\f3\-sourcepath\fP オプションが指定されていない場合は、ソースファイルもユーザークラスパスから検索されます。 +\f3\-sourcepath\fP ץ󤬻ꤵƤʤϡե桼饹ѥ鸡ޤ .LP -\f3\-processorpath\fP オプションが指定されていない場合は、注釈プロセッサもユーザークラスパスから検索されます。 +\f3\-processorpath\fP ץ󤬻ꤵƤʤϡץå桼饹ѥ鸡ޤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます。 -.br -.br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。\f3注:\fPコマンド行環境の構成によっては、\f2javac \-cp "*.jar" MyClass.java\fP などのように、ワイルドカード文字を引用符で囲まなければならない場合があります。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ +.LP +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ\f3:\fP ޥɹԴĶιˤäƤϡ \f2javac \-cp "*.jar" MyClass.java\fP ʤɤΤ褦ˡ磻ɥʸǰϤळȤɬפʾ⤢ޤ .TP 3 \-Djava.ext.dirs=directories -インストール型拡張機能の位置をオーバーライドします。 +󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ .TP 3 \-Djava.endorsed.dirs=directories -承認された標準パスの位置をオーバーライドします。 +ǧ줿ɸѥΰ֤򥪡С饤ɤޤ .TP 3 \-d directory -クラスファイルの出力先ディレクトリを設定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP はディレクトリを作成しません。クラスがパッケージの一部である場合、\f3javac\fP は、必要に応じてディレクトリを作成し、パッケージ名を反映したサブディレクトリにクラスファイルを置きます。たとえば、\f3\-d /home/myclasses\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP である場合、クラスファイルは \f2/home/myclasses/com/mypackage/MyClass.class\fP になります。 +饹եνǥ쥯ȥꤷޤΥǥ쥯ȥϤǤ¸ߤƤɬפޤ\f3javac\fP Ϻޤ󡣥饹ѥåΰǤ硢\f3javac\fP ϡɬפ˱ƥǥ쥯ȥѥå̾ȿǤ֥ǥ쥯ȥ˥饹ե֤ޤȤС\f3\-d /home/myclasses\fP Ȼꤷ饹̾ \f2com.mypackage.MyClass\fP Ǥ硢饹ե \f2/home/myclasses/com/mypackage/MyClass.class\fP ˤʤޤ .LP -\f3\-d\fP が指定されなかった場合、\f3javac\fP は各クラスファイルを、その生成元となるソースファイルと同じディレクトリ内に格納します。 +\f3\-d\fP ꤵʤä硢\f3javac\fP ϳƥ饹ե򡢤Ȥʤ륽եƱǥ쥯ȥ˳Ǽޤ .LP -\f3注:\fP\f3\-d\fP で指定したディレクトリはユーザークラスパスに自動的には追加されません。 +\f3:\fP \f3\-d\fP ǻꤷǥ쥯ȥϥ桼饹ѥ˼ưŪˤɲäޤ .TP 3 \-deprecation -推奨されないメンバーやクラスが、使用またはオーバーライドされるたびに説明を表示します。\f3\-deprecation\fP が指定されていない場合、\f3javac\fP は、推奨されないメンバーやクラスを使用またはオーバーライドしているソースファイルの要約を表示します。\f3\-deprecation\fP は \f3\-Xlint:deprecation\fP の省略表記です。 +侩ʤС䥯饹ѤޤϥС饤ɤ뤿Ӥɽޤ\f3\-deprecation\fP ꤵƤʤ硢\f3javac\fP ϡ侩ʤС䥯饹ѤޤϥС饤ɤƤ륽եɽޤ\f3\-deprecation\fP \f3\-Xlint:deprecation\fP ξάɽǤ .TP 3 \-encoding encoding -ソースファイルのエンコーディング名 (\f2EUC\-JP\fP や \f2UTF\-8\fP など) を指定します。\f3\-encoding\fP が指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 +եΥ󥳡ǥ̾ ( \f2EUC\-JP UTF\-8\fP ʤ) ꤷޤ\f3\-encoding\fP ꤵƤʤϡץåȥեΥǥեȥСȤޤ +.TP 3 +\-endorseddirs directories +ǧ줿ɸѥΰ֤򥪡С饤ɤޤ +.TP 3 +\-extdirs directories +\f2ext\fP ǥ쥯ȥΰ֤򥪡С饤ɤޤ\f2directories\fP ѿˤϡǶڤäǥ쥯ȥΥꥹȤꤷޤꤷǥ쥯ȥγ JAR ֤顢饹ե뤬ޤĤä٤Ƥ JAR ֤ϼưŪ˥饹ѥΰˤʤޤ +.LP +ѥ (ۤʤ Java ץåȥե˼줿֡ȥȥåץ饹ĥǽ饹ФƥѥԤ) ¹Ԥ硢Υץˤϳĥǽ饹ޤǥ쥯ȥꤷޤܺ٤ϡ֥ѥ륪ץפ򻲾ȤƤ .TP 3 \-g -局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号およびソースファイル情報だけが生成されます。 +ɽѿޤह٤ƤΥǥХåޤǥեȤǤϡֹ椪ӥեޤ .TP 3 \-g:none -デバッグ情報を生成しません。 +ǥХåޤ .TP 3 \-g:{keyword list} -コンマで区切られたキーワードリストにより指定された、特定の種類のデバッグ情報だけを生成します。次のキーワードが有効です。 +ޤǶڤ줿ɥꥹȤˤꤵ줿μΥǥХåޤΥɤͭǤ .RS 3 .TP 3 source -ソースファイルのデバッグ情報 +եΥǥХå .TP 3 lines -行番号のデバッグ情報 +ֹΥǥХå .TP 3 vars -局所変数のデバッグ情報 +ɽѿΥǥХå .RE .TP 3 \-help -標準オプションの形式を表示します。 +ɸ४ץηɽޤ .TP 3 \-implicit:{class,none} -暗黙的にロードされたソースファイルに対するクラスファイルの生成を制御します。クラスファイルを自動生成するには、\f3\-implicit:class\fP を使用します。クラスファイルの生成を抑制するには、\f3\-implicit:none\fP を使用します。 このオプションが指定されなかった場合のデフォルト動作は、クラスファイルの自動生成になります。その場合、そのようなクラスファイルが生成された時に注釈処理も実行されると、コンパイラから警告が発行されます。 このオプションが明示的に設定された場合には、警告は発行されません。 「型の検索」を参照してください。 +Ū˥ɤ줿եФ륯饹ե椷ޤ饹եưˤϡ\f3\-implicit:class\fP Ѥޤ饹եˤϡ\f3\-implicit:none\fP ѤޤΥץ󤬻ꤵʤäΥǥեưϡ饹եμưˤʤޤξ硢Τ褦ʥ饹ե뤬줿¹Ԥȡѥ餫ٹȯԤޤΥץŪꤵ줿ˤϡٹȯԤޤ󡣡ַθפ򻲾ȤƤ +.TP 3 +\-Joption +\f3javac\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ +.LP +\f3:\fP \f3CLASSPATH\fP\f3\-classpath\fP\f3\-bootclasspath\fP \f3\-extdirs\fP ϡ\f3javac\fP ¹Ԥ뤿˻Ȥ饹ꤹΤǤϤޤ󡣤Τ褦ˡǥѥμ뤳Ȥϡ̵̣̾Ǥꡢ˴ȼޤΤ褦ˡȤɬפϡ\f3\-J\fP ץȤäơɬפʥץظ \f3java\fP ưġϤƤ .TP 3 \-nowarn -警告メッセージを無効にします。これは \f3\-Xlint:none\fP と同じ意味です。 +ٹå̵ˤޤ \f3\-Xlint:none\fP Ʊ̣Ǥ .TP 3 \-proc: {none,only} -注釈処理、コンパイル、その両方、のいずれを実行するかを制御します。\f3\-proc:none\fP は、注釈処理なしでコンパイルが実行されることを意味します。\f3\-proc:only\fP は、注釈処理だけが実行され、後続のコンパイルはまったく実行されないことを意味します。 +ѥ롢ξΤ¹Ԥ뤫椷ޤ\f3\-proc:none\fP ϡʤǥѥ뤬¹Ԥ뤳Ȥ̣ޤ\f3\-proc:only\fP ϡ¹Ԥ졢³ΥѥϤޤä¹ԤʤȤ̣ޤ .TP 3 \-processor class1[,class2,class3...] -実行する注釈プロセッサの名前。これを指定した場合、デフォルトの検索処理は省略されます。 +¹Ԥץå̾ꤷ硢ǥեȤθϾάޤ .TP 3 \-processorpath path -注釈プロセッサの検索場所を指定します。 このオプションを使用しなかった場合、クラスパス内でプロセッサの検索が行われます。 +ץåθꤷޤΥץѤʤä硢饹ѥǥץåθԤޤ .TP 3 \-s dir -生成されたソースファイルの格納先となるディレクトリを指定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP は作成しません。クラスがパッケージの一部になっていた場合、コンパイラはそのソースファイルを、パッケージ名を反映したサブディレクトリ内に格納します。 その際、必要に応じてディレクトリを作成します。たとえば、ユーザーが \f3\-s /home/mysrc\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP であった場合、そのソースファイルは \f2/home/mysrc/com/mypackage/MyClass.java\fP 内に格納されます。 +줿եγǼȤʤǥ쥯ȥꤷޤΥǥ쥯ȥϤǤ¸ߤƤɬפޤ\f3javac\fP Ϻޤ󡣥饹ѥåΰˤʤäƤ硢ѥϤΥե򡢥ѥå̾ȿǤ֥ǥ쥯ȥ˳Ǽޤκݡɬפ˱ƥǥ쥯ȥޤȤС桼 \f3\-s /home/mysrc\fP Ȼꤷ饹̾ \f2com.mypackage.MyClass\fP Ǥä硢Υե \f2/home/mysrc/com/mypackage/MyClass.java\fP ˳Ǽޤ .TP 3 \-source release -受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。 +դ륽ɤΥСꤷޤ\f2release\fP ˤϼͤǤޤ .RS 3 .TP 3 1.3 -このコンパイラでは、JDK 1.3 以降に導入されたアサーション、総称、または他の言語機能をサポートしません。 +ΥѥǤϡJDK 1.3 ʹߤƳ줿Ρޤ¾θ쵡ǽ򥵥ݡȤޤ .TP 3 1.4 -JDK 1.4 で導入された、アサーションを含むコードを受け付けます。 +JDK 1.4 Ƴ줿ޤॳɤդޤ .TP 3 1.5 -JDK 5 で導入された総称および他の言語機能を含んだコードを受け付けます。 +JDK 5 Ƴ줿Τ¾θ쵡ǽޤɤդޤ .TP 3 5 -1.5 と同義です。 +1.5 ƱǤ .TP 3 1.6 -これがデフォルト値です。Java SE 6 では言語に対する変更は導入されませんでしたが、ソースファイル内のエンコーディングエラーが、以前のような「警告」ではなく、「エラー」として報告されるようになりました。 +줬ǥեͤǤJava SE 6 ǤϸФѹƳޤǤեΥ󥳡ǥ󥰥顼Τ褦ʡַٹפǤϤʤ֥顼פȤ𤵤褦ˤʤޤ .TP 3 6 -1.6 と同義です。 +1.6 ƱǤ +.TP 3 +1.7 +JDK 7 Ƴ줿ǽޤॳɤդޤ +.TP 3 +7 +1.7 ƱǤ .RE .TP 3 \-sourcepath sourcepath -クラスまたはインタフェースの定義を検索するソースコードパスを指定します。ユーザークラスパスと同様に、ソースパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ソースパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。パッケージを使っている場合は、ディレクトリまたはアーカイブ内のローカルパス名がパッケージ名を反映していなければなりません。 +饹ޤϥ󥿥ե򸡺륽ɥѥꤷޤ桼饹ѥƱͤˡѥʣΥȥϥ (\f3:\fP) ǶڤޤѥΥȥˤϡǥ쥯ȥꡢJAR ֡ޤ ZIP ֤ǤޤѥåȤäƤϡǥ쥯ȥޤϥΥѥ̾ѥå̾ȿǤƤʤФʤޤ .LP -\f3注:\fP\ クラスパスからクラスだけでなくそのソースも見つかった場合、そのクラスは自動再コンパイルの対象になることがあります。「型の検索」を参照してください。 +\f3:\fP\ 饹ѥ饯饹ǤʤΥ⸫Ĥä硢Υ饹ϼưƥѥоݤˤʤ뤳Ȥޤַθפ򻲾ȤƤ .TP 3 \-verbose -詳細な出力を表示します。ロードされるクラスおよびコンパイルされるソースファイルごとの情報が出力されます。 +ܺ٤ʽϤɽޤɤ륯饹ӥѥ뤵륽ե뤴Ȥξ󤬽Ϥޤ +.TP 3 +\-version +СϤޤ +.TP 3 +\-Werror +ٹȯ˥ѥλޤ .TP 3 \-X -非標準オプションに関する情報を表示して終了します。 +ɸ४ץ˴ؤɽƽλޤ .RE .LP -.RE .SS -クロスコンパイルオプション -.LP -.RS 3 - +ѥ륪ץ .LP .LP -デフォルトでは、クラスのコンパイルは、\f3javac\fP が添付されているプラットフォームのブートストラップクラスおよび拡張機能クラスに対して行われます。ただし、\f3javac\fP は、異なる Java プラットフォームに実装されたブートストラップクラスおよび拡張機能クラスに対してコンパイルを行う「クロスコンパイル」もサポートしています。クロスコンパイルを行う場合は、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使うことが重要です。 このあとの「クロスコンパイルの例」を参照してください。 +ǥեȤǤϡ饹Υѥϡ\f3javac\fP źդƤץåȥեΥ֡ȥȥåץ饹ӳĥǽ饹ФƹԤޤ\f3javac\fP ϡۤʤ Java ץåȥե˼줿֡ȥȥåץ饹ӳĥǽ饹ФƥѥԤ֥ѥפ⥵ݡȤƤޤѥԤϡ\f3\-bootclasspath\fP \f3\-extdirs\fP ȤȤפǤΤȤΡ֥ѥפ򻲾ȤƤ .LP .RS 3 .TP 3 \-target version -指定されたバージョンの VM をターゲットにしたクラスファイルを生成します。このクラスファイルは、指定されたターゲット以降のバージョンでは動作しますが、それより前のバージョンの VM では動作しません。有効なターゲットは、\f31.1\fP、\f31.2\fP、\f31.3\fP、\f31.4\fP、\f31.5\fP (\f35\fP も可)、および \f31.6\fP (\f36\fP も可) です。 +ꤵ줿С VM 򥿡åȤˤ饹եޤΥ饹եϡꤵ줿åȰʹߤΥСǤưޤΥС VM ǤưޤͭʥåȤϡ\f31.1\fP\f31.2\fP\f31.3\fP\f31.4\fP\f31.5\fP (\f35\fP )\f31.6\fP (\f36\fP ) \f31.7\fP (\f37\fP ) Ǥ .LP -\f3\-target\fP のデフォルトは、次のように \f3\-source\fP の値によって決まります。 +\f3\-target\fP ΥǥեȤϡΤ褦 \f3\-source\fP ͤˤäƷޤޤ .RS 3 .TP 2 o -\-source が\f3指定されなかった\fP場合、\-target の値は \f31.6\fP になります。 +\-source \f3ꤵʤä\fP硢\-target ͤ \f31.7\fP ˤʤޤ .TP 2 o -\-source が\f31.2\fP の場合、\-target の値は \f31.4\fP になります。 +\-source \f31.2\fP ξ硢\-target ͤ \f31.4\fP ˤʤޤ .TP 2 o -\-source が\f31.3\fP の場合、\-target の値は \f31.4\fP になります。 +\-source \f31.3\fP ξ硢\-target ͤ \f31.4\fP ˤʤޤ .TP 2 o -\-source が\f3それ以外の値の場合はすべて\fP、\\\-target の値は \f3\-source\fP の値になります。 +\-source \f3ʳͤξϤ٤\fP\f3\\\-target\fP ͤ \f3\-source\fP ͤˤʤޤ .RE .TP 3 \-bootclasspath bootclasspath -指定された一連のブートクラスに対してクロスコンパイルを行います。ユーザークラスパスと同様に、ブートクラスパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ブートクラスパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。 -.TP 3 -\-extdirs directories -指定された拡張機能ディレクトリに対してクロスコンパイルを行います。\f2directories\fP には、コロンで区切ったディレクトリのリストを指定します。指定したディレクトリ内の各 JAR アーカイブから、クラスファイルが検索されます。 +ꤵ줿ϢΥ֡ȥ饹ФƥѥԤޤ桼饹ѥƱͤˡ֡ȥ饹ѥʣΥȥϥ (\f3:\fP) Ƕڤޤ֡ȥ饹ѥΥȥˤϡǥ쥯ȥꡢJAR ֡ޤ ZIP ֤Ǥޤ .RE .LP -.RE .SS -非標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Xbootclasspath/p:path -ブートストラップクラスパスの前に追加します。 +֡ȥȥåץ饹ѥɲäޤ .TP 3 \-Xbootclasspath/a:path -ブートストラップクラスパスの後ろに追加します。 +֡ȥȥåץ饹ѥθɲäޤ .TP 3 \-Xbootclasspath/:path -ブートストラップクラスファイルの位置をオーバーライドします。 +֡ȥȥåץ饹եΰ֤򥪡С饤ɤޤ .TP 3 \-Xlint -推奨されるすべての警告を有効にします。このリリースでは、利用可能なすべての警告が推奨されています。 +侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ +.TP 3 +\-Xlint:all +侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ .TP 3 \-Xlint:none -Java 言語仕様では指定されていないすべての警告を無効にします。 +Java ͤǤϻꤵƤʤ٤Ƥηٹ̵ˤޤ +.TP 3 +\-Xlint:name +ٹ \f2name\fP ͭˤޤΥץͭˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ .TP 3 \-Xlint:\-name -警告 \f2name\fP を無効にします。 ただし、\f2name\fP は、\f3\-Xlint:\fP\f2name\fP に使用できる警告名のいずれかになります。 この警告名は次のとおりです。 +ٹ \f2name\fP ̵ˤޤΥץ̵ˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ .TP 3 -\-Xlint:unchecked -Java 言語仕様で指定されている未検査変換警告の詳細を示します。 +\-Xmaxerrs number +륨顼κꤷޤ .TP 3 -\-Xlint:path -存在しないパス (classpath、sourcepath など) ディレクトリについて警告します。 +\-Xmaxwarns number +ٹκꤷޤ .TP 3 -\-Xlint:serial -\f2serialVersionUID\fP 定義が直列化可能クラスにないことを警告します。 +\-Xstdout filename +ѥΥå򡢻ꤵ줿եޤǥեȤǤϡѥΥå \f2System.err\fP ޤ .TP 3 -\-Xlint:finally -正常に完了できない \f2finally\fP 節について警告します。 +\-Xprefer:{newer,source} +뷿Фƥեȥ饹եξĤä硢ΤɤΥեɤ߼٤ꤷޤ (ַθפ򻲾)\f2\-Xprefer:newer\fP Ѥ硢뷿Ф륽եȥ饹եοɤ߼ޤ (ǥե)\f2\-Xprefer:source\fP ץѤ硢ե뤬ɤ߼ޤSOURCE ¸ݥꥷȤä줿ǤդץåǤ褦ˤϡ\f2\-Xprefer:source\fP \f2ѤƤ\fP .TP 3 -\-Xlint:fallthrough -fall\-through ケースの \f2switch\fP ブロックをチェックし、検出されたものに対して警告メッセージを表示します。Fall\-through ケースは、\f2switch\fP ブロック内の最後のケースを除くケースです。 このコードには \f2break\fP 文は含まれません。 コードの実行をそのケースから次のケースへ移動します。たとえば、この \f2switch\fP ブロック内の \f2case 1\fP ラベルに続くコードは、\f2break\fP 文で終わっていません。 -.RS 3 +\-Xpkginfo:{always,legacy,nonempty} +ѥåեνꤷޤ +.TP 3 +\-Xprint +ꤵ줿ΥƥɽǥХåŪǽϤޤѥΤɤ¹Ԥޤ󡣽Ϸѹǽޤ +.TP 3 +\-XprintProcessorInfo +ΥץåꤵƤ˴ؤϤޤ +.TP 3 +\-XprintRounds +󤪤Ӹ³饦ɤ˴ؤϤޤ +.RE .LP +.SS +\-Xlint ץȤäͭޤ̵ˤǤٹ +.LP +.LP +\f3\-Xlint:\fP\f2name\fP ץȤäƷٹ \f2name\fP ͭˤޤ\f2name\fP ϼηٹ̾Τ줫ˤʤޤƱͤˡ\f3\-Xlint:\-\fP\f2name\fP ץȤäƷٹ \f2name\fP ̵ˤǤޤ +.LP +.RS 3 +.TP 3 +cast +פǾĹʥ㥹ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +String s = (String)"Hello!" +.fl +\fP +.fi +.TP 3 +classfile +饹եƤ˴ϢˤĤƷٹ𤷤ޤ +.TP 3 +deprecation +侩ܤλѤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + java.util.Date myDate = new java.util.Date(); +.fl + int currentDay = myDate.getDay(); +.fl +\fP +.fi +.LP +᥽å \f2java.util.Date.getDay\fP JDK 1.1 ʹߤϿ侩Ƥޤ +.TP 3 +dep\-ann +\f2@deprecated\fP Javadoc ȤǥɥȲƤ뤬 \f2@Deprecated\fP ᤬դƤʤܤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + /** +.fl + * @deprecated As of Java SE 7, replaced by {@link #newMethod()} +.fl + */ +.fl + +.fl + public static void deprecatedMethood() { } +.fl + +.fl + public static void newMethod() { } +.fl +\fP +.fi +.TP 3 +divzero + 0 ǽ뤳ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + int divideByZero = 42 / 0; +.fl +\fP +.fi +.TP 3 +empty +\f2if\fP ʸʹߤʸǤ뤳ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +class E { +.fl + void m() { +.fl + if (true) ; +.fl + } +.fl +} +.fl +\fP +.fi +.TP 3 +fallthrough +fall\-through \f2switch\fP ֥ååФ줿ΤФƷٹåɽޤFall\-through ϡ\f2switch\fP ֥åκǸΥǤΥɤˤ \f2break\fP ʸϴޤޤޤ󡣥ɤμ¹Ԥ򤽤Υ鼡ΥذưޤȤС \f2switch\fP ֥å \f2case 1\fP ٥³ɤϡ\f2break\fP ʸǽäƤޤ .nf \f3 .fl @@ -347,7 +445,7 @@ case 1: .fl System.out.println("1"); .fl - // No break; statement here. + // No break statement here. .fl case 2: .fl @@ -355,96 +453,375 @@ case 2: .fl } .fl - +\fP +.fi +.LP +ΥɤΥѥ \f2\-Xlint:fallthrough\fP ե饰ѤƤ硢ѥ ιֹȤȤˡfall\-through βǽ뤳Ȥ򼨤ٹȯԤޤ +.TP 3 +finally +˴λǤʤ \f2finally\fP ˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + public static int m() { +.fl + try { +.fl + throw new NullPointerException(); +.fl + } catch (NullPointerException e) { +.fl + System.err.println("Caught NullPointerException."); +.fl + return 1; +.fl + } finally { +.fl + return 0; +.fl + } +.fl + } .fl \fP .fi -.RE -このコードのコンパイル時に \f2\-Xlint:fallthrough\fP フラグが使用されていた場合、コンパイラは 当該ケースの行番号とともに、fall\-through ケースの可能性があることを示す警告を発行します。 +.LP +Ǥϡѥ \f2finally\fP ֥å˴ؤٹޤΥ᥽åɤƤӽФȡ 1 ǤϤʤ \f20\fP \f2֤ޤ\fP \f2finally\fP ֥åϡ \f2try\fP ֥åλɬ¹ԤޤǤϡ椬 \f2catch\fP ˰ܤ줿硢᥽åɤϽλޤ \f2finally\fP ֥åϼ¹Ԥɬפ뤿ᡢ椬ǤˤΥ᥽åɤγ˰ܤƤƤ⡢Υ֥åϼ¹Ԥޤ .TP 3 -\-Xmaxerrs number -印刷するエラーの最大数を設定します。 +options +ޥɹԥץλѤ˴ؤˤĤƷٹ𤷤ޤμηٹˤĤƤϡ֥ѥפ򻲾ȤƤ .TP 3 -\-Xmaxwarns number -印刷する警告の最大数を設定します。 +overrides +᥽åɤΥС饤ɤ˴ؤˤĤƷٹ𤷤ޤȤС 2 ĤΥ饹Ȥޤ +.nf +\f3 +.fl +public class ClassWithVarargsMethod { +.fl + void varargsMethod(String... s) { } +.fl +} +.fl +\fP +.fi +.nf +\f3 +.fl +public class ClassWithOverridingMethod extends ClassWithVarargsMethod { +.fl + @Override +.fl + void varargsMethod(String[] s) { } +.fl +} +.fl +\fP +.fi +.LP +ѥϼΤ褦ʷٹޤ +.nf +\f3 +.fl +warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...' +.fl +\fP +.fi +.LP +ѥϡvarargs ᥽åɤ򸡽Фȡvarargs βѥ᡼Ѵޤ᥽å \f2ClassWithVarargsMethod.varargsMethod\fP Ǥϡѥ varargs βѥ᡼ \f2String... s\fP 򲾥ѥ᡼ \f2String[] s\fP ѴޤString[] s ϡ᥽å \f2ClassWithOverridingMethod.varargsMethod\fP βѥ᡼бǤη̡Ǥϥѥ뤬Ԥޤ .TP 3 -\-Xstdout filename -コンパイラのメッセージを、指定されたファイルに送ります。デフォルトでは、コンパイラのメッセージは \f2System.err\fP に送られます。 +path +ޥɹԤǤ̵ʥѥǤ¸ߤʤѥǥ쥯ȥˤĤƷٹ𤷤ޤ (饹ѥѥʤɤΥѥϢ)Τ褦ʷٹ \f2@SuppressWarnings\fP 뤳ȤϤǤޤ󡣼򼨤ޤ +.nf +\f3 +.fl +javac \-Xlint:path \-classpath /nonexistentpath Example.java +.fl +\fP +.fi .TP 3 -\-Xprefer:{newer,source} -ある型に対してソースファイルとクラスファイルの両方が見つかった場合、そのどちらのファイルを読み取るべきかを指定します (「型の検索」を参照)。\f2\-Xprefer:newer\fP を使用した場合、ある型に対するソースファイルとクラスファイルの新しい方が読み取られます (デフォルト)。\f2\-Xprefer:source\fPオプションを使用した場合、ソースファイルが読み取られます。\f2SOURCE\fP の保存ポリシーを使って宣言された注釈に任意の注釈プロセッサがアクセスできるようにしたい場合は、\f2\-Xprefer:source\fPを使用してください。 +processing +˴ؤˤĤƷٹ𤷤ޤѥ餬ηٹΤϡޤ९饹ȤˡѤƤץåǤη㳰ǤʤǤñץå򼡤˼ޤ +.LP +\f3ե \fP\f4AnnoProc.java\fP: +.nf +\f3 +.fl +import java.util.*; +.fl +import javax.annotation.processing.*; +.fl +import javax.lang.model.*; +.fl +import javax.lang.model.element.*; +.fl + +.fl +@SupportedAnnotationTypes("NotAnno") +.fl +public class AnnoProc extends AbstractProcessor { +.fl + public boolean process(Set elems, RoundEnvironment renv) { +.fl + return true; +.fl + } +.fl + +.fl + public SourceVersion getSupportedSourceVersion() { +.fl + return SourceVersion.latest(); +.fl + } +.fl +} +.fl +\fP +.fi +.LP +\f3ե \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP +.nf +\f3 +.fl +@interface Anno { } +.fl + +.fl +@Anno +.fl +class AnnosWithoutProcessors { } +.fl +\fP +.fi +.LP +Υޥɤϡץå \f2AnnoProc\fP 򥳥ѥ뤷ץå򥽡ե \f2AnnosWithoutProcessors.java\fP ФƼ¹Ԥޤ +.nf +\f3 +.fl +% javac AnnoProc.java +.fl +% javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java +.fl +\fP +.fi +.LP +ѥ餬ե \f2AnnosWithoutProcessors.java\fP Фץå¹Ԥȡηٹޤ +.nf +\f3 +.fl +warning: [processing] No processor claimed any of these annotations: Anno +.fl +\fP +.fi +.LP +褹ˤϡ饹 \f2AnnosWithoutProcessors\fP ӻѤ̾ \f2Anno\fP \f2NotAnno\fP ѹޤ .TP 3 -\-Xprint -指定された型のテキスト表現をデバッグ目的で出力します。 注釈処理、コンパイルのどちらも実行しません。出力形式は変更される可能性があります。 +rawtypes +raw Ф̤ˤĤƷٹ𤷤ޤäˤΥץϡʤѥ᡼줿Ѥ桼ФƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +.LP +ʸǤϡ \f2rawtypes\fP ٹޤ +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +.LP +\f2List\fP raw Ǥ \f2List\fP ϥХɷΥ磻ɥɤΥѥ᡼줿Ǥ \f2List\fP ϥѥ᡼줿󥿥եʤΤǡɬηꤹɬפޤǤϡ \f2List\fP βϥХɷΥ磻ɥ (\f2?\fP) ȤäƤβѥ᡼ȤƻꤵޤĤޤꡢ \f2countElements\fP ᥽åɤ \f2List\fP 󥿥եΤɤΥ󥹥󥹲դ뤳ȤǤޤ .TP 3 -\-XprintProcessorInfo -ある特定のプロセッサが処理を依頼されている注釈に関する情報を出力します。 +serial +ľ󲽲ǽ饹 \f2serialVersionUID\fP ʤȤٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +public class PersistentTime implements Serializable +.fl +{ +.fl + private Date time; +.fl + +.fl + public PersistentTime() { +.fl + time = Calendar.getInstance().getTime(); +.fl + } +.fl + +.fl + public Date getTime() { +.fl + return time; +.fl + } +.fl +} +.fl +\fP +.fi +.LP +ѥϼηٹޤ +.nf +\f3 +.fl +warning: [serial] serializable class PersistentTime has no definition of serialVersionUID +.fl +\fP +.fi +.LP +ľ󲽲ǽ饹 \f2serialVersionUID\fP Ȥ̾ΥեɤŪʤ硢ľ󲽥󥿥ϡJava ֥ľ󲽻͡פƤ褦ˡ饹Τޤޤ¦̤˴Ťơ饹 \f2serialVersionUID\fP Υǥեͤ׻ޤ٤Ƥľ󲽲ǽ饹 \f2serialVersionUID\fP ͤŪ뤳Ȥ򶯤ᤷޤϡ \f2serialVersionUID\fP ͤ׻ǥեȤΥץѥμˤäưۤʤǽΤ륯饹ξܺ٤ˤƱƶ䤹ľͽʤ \f2InvalidClassExceptions\fP ȯǽ뤿ǤäơJava ѥμۤʤäƤ \f2serialVersionUID\fP ͤΰݤˤˤϡľ󲽲ǽ饹 \f2serialVersionUID\fP ͤŪɬפޤ .TP 3 -\-XprintRounds -初回および後続の注釈処理ラウンドに関する情報を出力します。 +static +static λѤ˴ؤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +class XLintStatic { +.fl + static void m1() { } +.fl + void m2() { this.m1(); } +.fl +} +.fl +\fP +.fi +.LP +ѥϼηٹޤ +.nf +\f3 +.fl +warning: [static] static method should be qualified by type name, XLintStatic, instead of by an expression +.fl +\fP +.fi +.LP +褹뤿ˡΤ褦 static ᥽å \f2m1\fP ƤӽФȤǤޤ +.nf +\f3 +.fl +XLintStatic.m1(); +.fl +\fP +.fi +.LP +뤤ϡ \f2static\fP ɤ᥽å \f2m1\fP 뤳ȤǤޤ +.TP 3 +try +try\-with\-resources ʸޤࡢ \f2try\fP ֥åλѤ˴ؤˤĤƷٹ𤷤ޤȤСtry ʸ줿꥽ \f2ac\fP Ѥʤˡ \f2ʸФƷٹ\fP ޤ +.nf +\f3 +.fl +try ( AutoCloseable ac = getResource() ) { +.fl + // do nothing +.fl +} +.fl +\fP +.fi +.TP 3 +unchecked +Java ͤǻꤵƤ̤Ѵٹξܺ٤򼨤ޤ򼨤ޤ +.nf +\f3 +.fl + List l = new ArrayList(); +.fl + List ls = l; // unchecked warning +.fl +\fP +.fi +.LP +ξõˡ \f2ArrayList\fP \f2List\fP Ϥ줾 \f2ArrayList\fP \f2List\fP ˤʤޤ +.LP +ѿ \f2ls\fP ˤϥѥ᡼줿 \f2List\fP ꤵƤޤl ˤäƻȤ \f2List\fP \f2\fP \f2ls\fP ȡѥ̤ٹޤѥ \f2l\fP \f2List\fP 򻲾Ȥ뤫ɤ򥳥ѥȽǤǤޤ󡣤ޤJVM ¹ԻˤȽǤǤʤȤǧƤޤl List 򻲾Ȥޤ󡣤η̡ҡױȯޤ +.LP +ܤȡҡױ֤ȯΤϡ \f2List\fP ֥ \f2l\fP ( static \f2List\fP) ̤ \f2List\fP ֥ \f2ls\fP (ۤʤ static \f2List\fP ) ǤѥǤϤ̤˵ĤƤޤΤ򥵥ݡȤʤ Java SE ΥСȤβ̸ߴݤ뤿ˡĤɬפޤõΤˡ \f2List\fP \f2List\fP \f2List\fP ˤʤޤη̡ѥϥ֥ \f2l\fP ( \f2List\fP Ȥ raw ) 򥪥֥ \f2ls\fP뤳ȤĤޤ +.TP 3 +varargs +Ѱ (varargs) ᥽åɡäݲǽޤΤλѤǤʤȤٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +public class ArrayBuilder { +.fl + public static void addToList (List listArg, T... elements) { +.fl + for (T x : elements) { +.fl + listArg.add(x); +.fl + } +.fl + } +.fl +} +.fl +\fP +.fi +.LP +ѥϡ᥽å \f2ArrayBuilder.addToList\fP ˴ؤ뼡ηٹޤ +.nf +\f3 +.fl +warning: [varargs] Possible heap pollution from parameterized vararg type T +.fl +\fP +.fi +.LP +ѥϡvarargs ᥽åɤ򸡽Фȡvarargs βѥ᡼ѴޤJava ץߥ󥰸Ǥϡѥ᡼줿κĤƤޤ󡣥᥽å \f2ArrayBuilder.addToList\fP Ǥϡѥ varargs βѥ᡼ \f2T... elements\fP 򲾥ѥ᡼ \f2T[] elements\fP() ѴޤõΤˡѥ varargs βѥ᡼ \f2Object[] elements\fP Ѵޤη̡ҡױȯǽޤ .RE .LP -.RE -.SS -\-J オプション -.LP -.RS 3 - -.LP -.RS 3 -.TP 3 -\-Joption -\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。このオプションは \f3\-X\fP で始まっていませんが、\f3javac\fP の「標準オプション」ではありません。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 -.LP -\f3注:\fP \ \f3CLASSPATH\fP、\f3\-classpath\fP、\f3\-bootclasspath\fP、および \f3\-extdirs\fP は、\f3javac\fP を実行するために使うクラスを指定するものではありません。このような方法でコンパイラの実装を操作することは、通常は無意味であり、常に危険を伴います。このような方法を使う必要がある場合は、\f3\-J\fP オプションを使って、必要なオプションを背後の \f3java\fP 起動ツールに渡してください。 -.RE - -.LP -.RE -.SH "コマンド行引数ファイル" -.LP - +.SH "ޥɹ԰ե" .LP .LP -\f2javac\fP のコマンド行を短くしたり簡潔にしたりするために、\f2javac\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。この方法を使うと、どのオペレーティングシステム上でも、任意の長さの javac コマンドを作成できます。 +javac ΥޥɹԤûʷˤꤹ뤿ˡ \f2javac\fP ޥɤФ ( \f2\-J\fP ץ) ޤ 1 İʾΥեꤹ뤳ȤǤޤˡȤȡɤΥڥ졼ƥ󥰥ƥǤ⡢ǤդĹ javac ޥɤǤޤ .LP .LP -引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。 +եˤϡjavac Υץȥե̾ͳȤ߹碌ƵҤǤޤեγưϡڡޤϲԤǶڤޤե̾˶򤬴ޤޤƤϡΥե̾ΤŰǰϤߤޤ .LP .LP -引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 +եΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣰եΥե̾ꥹȤǤϡ磻ɥ (*) ϻѤǤޤ󡣤ȤС \f2*.java\fP ȤϻǤޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ \f2\-J\fP ץ⥵ݡȤƤޤ󡣤ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP .LP -javac を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javac は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 +javac ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤjavac ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .LP .SS -引数ファイルを 1 つ指定する例 +ե 1 Ļꤹ .LP .LP -\f2argfile\fP という名前の引数ファイルにすべての javac 引数を格納する場合は、次のように指定します。 +\f2argfileפȤ̾ΰե\fP٤Ƥ javac ǼϡΤ褦˻ꤷޤ .LP .nf \f3 .fl - % \fP\f3javac @argfile\fP -.fl - +% \fP\f3javac @argfile\fP .fl .fi .LP .LP -この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。 +ΰեˤϡǼƤ 2 ĤΥեƤξȤ뤳ȤǤޤ .LP .SS -引数ファイルを 2 つ指定する例 +ե 2 Ļꤹ .LP .LP -たとえば、javac オプション用に 1 ファイル、ソースファイル名用に 1 ファイルというように、2 つの引数ファイルを作成することもできます。なお、このあとのリストでは、行の継続文字を使用していません。 +ȤСjavac ץѤ 1 ե롢ե̾Ѥ 1 եȤ褦ˡ2 Ĥΰե뤳ȤǤޤʤΤȤΥꥹȤǤϡԤη³ʸѤƤޤ .LP .LP -以下の内容を含む \f2options\fP という名前のファイルを作成します。 +ʲƤޤ \f2options\fP Ȥեޤ .LP .nf \f3 @@ -455,14 +832,14 @@ javac を実行するときに、各引数ファイルのパスとファイル .fl \-sourcepath /java/pubs/ws/1.3/src/share/classes .fl - + .fl \fP .fi .LP .LP -以下の内容を含む \f2classes\fP という名前のファイルを作成します。 +ʲƤޤ \f2classes\fP Ȥեޤ .LP .nf \f3 @@ -473,120 +850,104 @@ javac を実行するときに、各引数ファイルのパスとファイル .fl MyClass3.java .fl - + .fl \fP .fi .LP .LP -次のコマンドを使用して \f3javac\fP を実行します。 +ΥޥɤѤ \f3javac\fP ¹Ԥޤ .LP .nf \f3 .fl % \fP\f3javac @options @classes\fP .fl - + .fl .fi .LP .SS -パス付きの引数ファイルの例 +ѥդΰե .LP .LP -引数ファイルには、パスを指定できます。 ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。 つまり、下の例の場合は、\f2path1\fP や \f2path2\fP から見た相対パスではありません。 +եˤϡѥǤޤΥե˻ꤵ줿ե̾ϡߤκȥǥ쥯ȥ꤫鸫ХѥˤʤޤĤޤꡢξϡ \f2path1\fP \f2path2\fP 鸫ХѥǤϤޤ .LP .nf \f3 .fl - % \fP\f3javac @path1/options @path2/classes\fP -.fl - +% \fP\f3javac @path1/options @path2/classes\fP .fl .fi .LP -.SH "注釈処理" -.LP - +.SH "" .LP .LP -\f3javac\fP が注釈処理を直接サポートしているため、独立した注釈処理ツールである \f3apt\fP を使用する必要がなくなりました。 +\f3javac\fP ľܥݡȤƤ뤿ᡢΩġǤ \f3apt\fP Ѥɬפʤʤޤ .LP .LP -注釈処理の API は、\f2javax.annotation.processing\fP および \f2javax.lang.model\fP パッケージとそのサブパッケージ内に定義されています。 + API ϡ \f2javax.annotation.processing\fP \f2javax.lang.model\fP ѥåȤΥ֥ѥåƤޤ .LP .SS -注釈処理の概要 +γ .LP .LP -\f3\-proc:none\fP オプションによって注釈処理が無効化されないかぎり、コンパイラは使用可能なすべての注釈プロセッサを検索します。検索パスは \f3\-processorpath\fP オプションを使って指定できます。 検索パスを指定しなかった場合は、ユーザークラスパスが使用されます。プロセッサの検索は、検索パス上の -.br -\f2\ META\-INF/services/javax.annotation.processing.Processor\fP -.br -という名前のサービスプロバイダ構成ファイルに基づいて行われます。このようなファイルには、使用するすべての注釈プロセッサの名前を、1 行に 1 つずつ含めてください。また、別の方法として、\f3\-processor\fP オプションを使ってプロセッサを明示的に指定することもできます。 +\f3\-proc:none\fP ץˤä̵ʤꡢѥϻѲǽʤ٤Ƥץå򸡺ޤѥ \f3\-processorpath\fP ץȤäƻǤޤѥꤷʤäϡ桼饹ѥѤޤץåθϡѥ \f2META\-INF/services/javax.annotation.processing.Processor\fP Ȥ̾ΥӥץХե˴ŤƹԤޤΤ褦ʥեˤϡѤ뤹٤Ƥץå̾1 Ԥ 1 ĤĴޤƤޤ̤ˡȤơ\f3\-processor\fP ץȤäƥץåŪ˻ꤹ뤳ȤǤޤ .LP .LP -コンパイラは、コマンド行のソースファイルやクラスを走査することで、どのような注釈が存在しているかを確認し終わると、プロセッサに対して問い合わせを行い、それらのプロセッサがの注釈を処理できるのかを確認します。一致するものが見つかった場合、そのプロセッサが呼び出されます。各プロセッサは、自身が処理する注釈を「要求」できます。 その場合、それらの注釈に対する別のプロセッサを見つける試みは行われません。すべての注釈が要求されてしまうと、コンパイラはそれ以上プロセッサの検索を行いません。 +ѥϡޥɹԤΥե䥯饹뤳ȤǡɤΤ褦᤬¸ߤƤ뤫ǧȡץåФ䤤碌ԤΥץåɤǤΤǧޤפΤĤä硢ΥץåƤӽФޤƥץåϡȤ׵פǤޤξ硢Ф̤Υץå򸫤ĤߤϹԤޤ󡣤٤Ƥ᤬׵ᤵƤޤȡѥϤʾץåθԤޤ .LP .LP -いずれかのプロセッサによって新しいソースファイルが生成されると、注釈処理の 2 回目のラウンドが開始されます。新しく生成されたすべてのソースファイルが走査され、前回と同様に注釈が処理されます。以前のラウンドで呼び出されたプロセッサはすべて、後続のどのラウンドでも呼び出されます。これが、新しいソースファイルが生成されなくなるまで続きます。 +줫Υץåˤäƿե뤬ȡ 2 ܤΥ饦ɤϤޤ줿٤ƤΥե뤬졢Ʊͤ᤬ޤΥ饦ɤǸƤӽФ줿ץåϤ٤ơ³ΤɤΥ饦ɤǤƤӽФޤ줬ե뤬ʤʤޤ³ޤ .LP .LP -あるラウンドで新しいソースファイルが生成されなかった場合、注釈プロセッサがあと 1 回だけ呼び出され、必要な処理を実行する機会が与えられます。 最後に、\f3\-proc:only\fP オプションが使用されないかぎり、コンパイラは、元のソースファイルと生成されたすべてのソースファイルをコンパイルします。 +饦ɤǿե뤬ʤä硢ץå 1 ƤӽФ졢ɬפʽ¹Ԥ뵡ͿޤǸˡ\f3\-proc:only\fP ץ󤬻ѤʤꡢѥϡΥե줿٤ƤΥե򥳥ѥ뤷ޤ .LP .SS -暗黙的にロードされたソースファイル +Ū˥ɤ줿ե .LP .LP -コンパイラは、一連のソースファイルをコンパイルする際に、別のソースファイルを暗黙的にロードしなければならない場合があります (「型の検索」を参照)。そのようなファイルは、現時点では注釈処理の対象になりません。デフォルトでは、注釈処理が実行され、かつ暗黙的にロードされたソースファイルが 1 つでもコンパイルされた場合にコンパイラは警告を発行します。この警告を抑制する方法については、\-implicit オプションを参照してください。 +ѥϡϢΥե򥳥ѥ뤹ݤˡ̤ΥեŪ˥ɤ뤳Ȥɬפʾ礬ޤ (ַθפ򻲾)Τ褦ʥեϡǤоݤˤʤޤ󡣥ǥեȤǤϡ¹Ԥ졢İŪ˥ɤ줿ե뤬 1 ĤǤ⥳ѥ뤵줿˥ѥϷٹȯԤޤηٹˡˤĤƤϡ\-implicit ץ򻲾ȤƤ .LP -.SH "型の検索" -.LP - +.SH "θ" .LP .LP -ソースファイルをコンパイルする場合、コマンド行で指定したソースファイルに型の定義が見つからないとき、コンパイラは通常、その型に関する情報を必要とします。コンパイラは、ソースファイルで使われているクラスまたはインタフェース、拡張されているクラスまたはインタフェース、あるいは実装されているクラスまたはインタフェースすべてについて、型の情報を必要とします。これには、ソースファイルで明示的には言及されていなくても、継承を通じて情報を提供するクラスとインタフェースも含まれます。 +ե򥳥ѥ뤹硢ޥɹԤǻꤷե˷ĤʤȤѥ̾η˴ؤɬפȤޤѥϡեǻȤƤ륯饹ޤϥ󥿥եĥƤ륯饹ޤϥ󥿥ե뤤ϼƤ륯饹ޤϥ󥿥ե٤ƤˤĤơξɬפȤޤˤϡեŪˤϸڤƤʤƤ⡢Ѿ̤ƾ󶡤륯饹ȥ󥿥եޤޤޤ .LP .LP -たとえば、\f3java.applet.Applet\fP をサブクラスにした場合、\f3アプレットの\fP祖先のクラス(\f3java.awt.Panel\fP、\f3java.awt.Container\fP、\f3java.awt.Component\fP、\f3java.lang.Object\fP)を使用していることになります。 +ȤС\f3java.applet.Applet\fP 򥵥֥饹ˤ硢\f3ץåȤ\fPΥ饹\f3java.awt.Panel\fP\f3java.awt.Container\fP\f3java.awt.Component\fP\f3java.lang.Object\fPˤѤƤ뤳Ȥˤʤޤ .LP .LP -コンパイラは、型の情報が必要になると、その型を定義しているソースファイルまたはクラスファイルを探します。まず、ブートストラップクラスと拡張機能クラスを検索し、続いてユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。ユーザークラスパスは、\f3CLASSPATH\fP 環境変数を設定して定義するか、または \f3\-classpath\fP コマンド行オプションを使って設定します。詳細は、 -.na -\f2「クラスパスの設定」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +ѥϡξɬפˤʤȡηƤ륽եޤϥ饹եõޤޤ֡ȥȥåץ饹ȳĥǽ饹򸡺³ƥ桼饹ѥ (ǥեȤǤϥȥǥ쥯ȥ) 򸡺ޤ桼饹ѥϡ\f3CLASSPATH\fP Ķѿꤷ뤫ޤ \f3\-classpath\fP ޥɹԥץȤäꤷޤܺ٤ϡ֥饹ѥפ򻲾ȤƤ .LP .LP -\-sourcepath オプションが指定されている場合、コンパイラは、指定されたパスからソースファイルを検索します。 それ以外の場合は、ユーザークラスパスからクラスファイルとソースファイルの両方を検索します。 +\-sourcepath ץ󤬻ꤵƤ硢ѥϡꤵ줿ѥ饽ե򸡺ޤʳξϡ桼饹ѥ饯饹եȥեξ򸡺ޤ .LP .LP -\f3\-bootclasspath\fP オプションと \f3\-extdirs\fP オプションを使うと、別のブートストラップクラスや拡張機能クラスを指定できます。 このあとの「クロスコンパイルオプション」を参照してください。 +\f3\-bootclasspath\fP ץ \f3\-extdirs\fP ץȤȡ̤Υ֡ȥȥåץ饹ĥǽ饹ǤޤΤȤΡ֥ѥ륪ץפ򻲾ȤƤ .LP .LP -型の検索に成功したときに得られる結果は、クラスファイル、ソースファイル、またはその両方である場合があります。両方が見つかった場合、そのどちらを使用すべきかを \-Xprefer オプションでコンパイラに指示できます。\f3newer\fP が指定された場合、コンパイラは 2 つのファイルの新しい方を使用します。\f3source\fP が指定された場合、コンパイラはソースファイルを使用します。デフォルトは \f3newer\fP です。 +θȤ̤ϡ饹ե롢ե롢ޤϤξǤ礬ޤξĤä硢ΤɤѤ٤ \-Xprefer ץǥѥ˻ؼǤޤ\f3newer\fP ꤵ줿硢ѥ 2 ĤΥեοѤޤ\f3source\fP ꤵ줿硢ѥϥեѤޤǥեȤ \f3newer\fP Ǥ .LP .LP -型の検索自体によって、または \f3\-Xprefer\fP が設定された結果として必要な型のソースファイルが見つかった場合、コンパイラはそのソースファイルを読み取り、必要な情報を取得します。さらに、コンパイラはデフォルトで、そのソースファイルのコンパイルも行います。\-implicit オプションを使えばその動作を指定できます。\f3none\fP を指定した場合、そのソースファイルのクラスファイルは生成されません。\f3class\fP を指定した場合、そのソースファイルのクラスファイルが生成されます。 +θΤˤäơޤ \f3\-Xprefer\fP ꤵ줿̤ȤɬפʷΥե뤬Ĥä硢ѥϤΥեɤ߼ꡢɬפʾޤˡѥϥǥեȤǡΥեΥѥԤޤ\-implicit ץȤФưǤޤ\f3none\fP ꤷ硢ΥեΥ饹եޤ\f3class\fP ꤷ硢ΥեΥ饹ե뤬ޤ .LP .LP -コンパイラは、注釈処理の完了後に、ある型情報の必要性を認識しない場合があります。その型情報があるソースファイル内に見つかり、かつ \f3\-implicit\fP オプションが指定されていない場合は、そのファイルが注釈処理の対象とならずにコンパイルされることを、コンパイラがユーザーに警告します。この警告を無効にするには、(そのファイルが注釈処理の対象となるように) そのファイルをコマンド行に指定するか、あるいはそのようなソースファイルに対してクラスファイルを生成すべきかどうかを \f3\-implicit\fP オプションを使って指定します。 +ѥϡδλˡ뷿ɬǧʤ礬ޤη󤬤륽ե˸Ĥꡢ \f3\-implicit\fP ץ󤬻ꤵƤʤϡΥե뤬оݤȤʤ餺˥ѥ뤵뤳Ȥ򡢥ѥ餬桼˷ٹ𤷤ޤηٹ̵ˤˤϡ(Υե뤬оݤȤʤ褦) Υե򥳥ޥɹԤ˻ꤹ뤫뤤ϤΤ褦ʥեФƥ饹ե٤ɤ \f3\-implicit\fP ץȤäƻꤷޤ .LP -.SH "プログラマティックインタフェース" -.LP - +.SH "ץޥƥå󥿥ե" .LP .LP -\f3javac\fP は、\f2javax.tools\fP パッケージ内のクラスとインタフェースによって定義される新しい Java Compiler API をサポートします。 +\f3javac\fP ϡ \f2javax.tools\fP ѥåΥ饹ȥ󥿥եˤä뿷 Java Compiler API 򥵥ݡȤޤ .LP .SS -例 + .LP .LP -コマンド行から指定された引数を使ってコンパイルを実行するには、次のようなコードを使用します。 +ޥɹԤꤵ줿Ȥäƥѥ¹ԤˤϡΤ褦ʥɤѤޤ .LP .nf \f3 @@ -594,30 +955,25 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照 JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); .fl int rc = javac.run(null, null, null, args); -.fl - .fl \fP .fi .LP .LP -この場合、標準出力ストリームにすべての診断メッセージが書き出され、コマンド行から呼び出された \f3javac\fP が返すのと同じ終了コードが返されます。 +ξ硢ɸϥȥ꡼ˤ٤Ƥοǥå񤭽Ф졢ޥɹԤƤӽФ줿 \f3javac\fP ֤ΤƱλɤ֤ޤ .LP .LP -\f2javax.tools.JavaCompiler\fP インタフェース上のほかのメソッドを使えば、診断メッセージの処理やファイルの読み取り元/書き込み先の制御などを行えます。 +\f2javax.tools.JavaCompiler\fP 󥿥եΤۤΥ᥽åɤȤСǥåνեɤ߼긵/񤭹ʤɤԤޤ .LP .SS -旧式のインタフェース -.LP -.RS 3 - +켰Υ󥿥ե .LP .LP -\f3注:\fP \ この API は、下位互換性を確保するためだけに残されています。 新しいコードでは、必ず前述の Java Compiler API を使用してください。 +\f3:\fP API ϡ̸ߴݤ뤿˻ĤƤޤɤǤϡɬҤ Java Compiler API ѤƤ .LP .LP -\f2com.sun.tools.javac.Main\fP クラスには、プログラム内からコンパイラを呼び出すための static メソッドが 2 つ用意されています。 それらを次に示します。 +\f2com.sun.tools.javac.Main\fP 饹ˤϡץ⤫饳ѥƤӽФ static ᥽åɤ 2 ѰդƤޤ򼡤˼ޤ .LP .nf \f3 @@ -625,39 +981,30 @@ int rc = javac.run(null, null, null, args); public static int compile(String[] args); .fl public static int compile(String[] args, PrintWriter out); -.fl - .fl \fP .fi .LP .LP -\f2args\fP パラメータは、javac プログラムに通常渡される任意のコマンド行引数を表しています。 その概要については、前出の「形式」節を参照してください。 +\f2args\fP ѥ᡼ϡjavac ץ̾ϤǤդΥޥɹ԰ɽƤޤγפˤĤƤϡФΡַ򻲾ȤƤ .LP .LP -\f2out\fP パラメータは、コンパイラの診断メッセージの出力先を示します。 +\f2out\fP ѥ᡼ϡѥοǥåν򼨤ޤ .LP .LP -戻り値は、\f3javac\fP の終了値と同じです。 +ͤϡ\f3javac\fP νλͤƱǤ .LP .LP -名前が \f2com.sun.tools.javac\fP で始まるパッケージ (非公式には \f2com.sun.tools.javac\fP のサブパッケージとして知られる) に含まれる\f3その他の\fPクラスやメソッドは、どれも完全に内部用であり、いつでも変更される可能性があります。 +̾ \f2com.sun.tools.javac\fP ǻϤޤѥå (ˤ \f2com.sun.tools.javac\fP Υ֥ѥåȤΤ) ˴ޤޤ뤽¾Υ饹᥽åɤϡɤⴰѤǤꡢĤǤѹǽޤ .LP -.RE -.SH "例" +.SH "" .LP .SS -簡単なプログラムのコンパイル -.LP -.RS 3 - +ñʥץΥѥ .LP .LP -\f2Hello.java\fP というソースファイルで、\f3greetings.Hello\fP という名前のクラスを定義しているとします。\f2greetings\fP ディレクトリは、ソースファイルとクラスファイルの両方があるパッケージディレクトリで、現在のディレクトリのすぐ下にあります。このため、この例では、デフォルトのユーザークラスパスを使用できます。また、\f3\-d\fP を使って別の出力先ディレクトリを指定する必要もありません。 -.LP -.RS 3 - +\f2Hello.java\fP Ȥեǡ\f3greetings.Hello\fP Ȥ̾Υ饹ƤȤޤ \f2greetings\fP ǥ쥯ȥϡեȥ饹եξѥåǥ쥯ȥǡߤΥǥ쥯ȥΤˤޤΤᡢǤϡǥեȤΥ桼饹ѥѤǤޤޤ\f3\-d\fP Ȥä̤νǥ쥯ȥꤹɬפ⤢ޤ .LP .nf \f3 @@ -703,25 +1050,15 @@ Hello World Hello Universe .fl Hello Everyone -.fl - .fl .fi -.RE .LP -.RE .SS -複数のソースファイルのコンパイル -.LP -.RS 3 - +ʣΥեΥѥ .LP .LP -次の例では、パッケージ \f2greetings\fP 内のすべてのソースファイルをコンパイルします。 -.LP -.RS 3 - +Ǥϡѥå \f2greetings\fP Τ٤ƤΥե򥳥ѥ뤷ޤ .LP .nf \f3 @@ -741,27 +1078,15 @@ Aloha.java GutenTag.java Hello.java Hi.java Aloha.class GutenTag.class Hello.class Hi.class .fl Aloha.java GutenTag.java Hello.java Hi.java -.fl - -.fl - .fl .fi -.RE .LP -.RE .SS -ユーザークラスパスの指定 -.LP -.RS 3 - +桼饹ѥλ .LP .LP -上の例のソースファイルのうち 1 つを変更し、変更後のファイルを再コンパイルするとします。 -.LP -.RS 3 - +ΥեΤ 1 ĤѹѹΥեƥѥ뤹Ȥޤ .LP .nf \f3 @@ -771,35 +1096,23 @@ Aloha.java GutenTag.java Hello.java Hi.java /examples .fl % \f3javac greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP -\f2greetings.Hi\fP は、\f2greetings\fP パッケージ内のほかのクラスを参照しているため、コンパイラはこれらのクラスを探す必要があります。上の例では、デフォルトのユーザークラスパスが、パッケージディレクトリを含むディレクトリと同じであるため、コンパイルは正常に実行されます。ただし、現在どのディレクトリにいるかに関係なく、このファイルを再コンパイルする場合は、ユーザークラスパスに \f2/examples\fP を追加する必要があります。ユーザークラスパスにエントリを追加するには、\f3CLASSPATH\fP を設定する方法もありますが、ここでは \f3\-classpath\fP オプションを使うことにします。 -.LP -.RS 3 - +\f2greetings.Hi\fP ϡ \f2greetings\fP ѥåΤۤΥ饹򻲾ȤƤ뤿ᡢѥϤΥ饹õɬפޤǤϡǥեȤΥ桼饹ѥѥåǥ쥯ȥޤǥ쥯ȥƱǤ뤿ᡢѥ˼¹ԤޤߤɤΥǥ쥯ȥˤ뤫˴طʤΥեƥѥ뤹ϡ桼饹ѥ \f2/examples\fP ɲäɬפޤ桼饹ѥ˥ȥɲäˤϡ\f3CLASSPATH\fP ꤹˡ⤢ޤǤ \f3\-classpath\fP ץȤȤˤޤ .LP .nf \f3 .fl % \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP -再度 \f2greetings.Hi\fP を変更してバナーユーティリティーを使うようにした場合は、このバナーユーティリティーもユーザークラスパスを通じてアクセスできるようになっている必要があります。 -.LP -.RS 3 - + \f2greetings.Hi\fP ѹƥХʡ桼ƥƥȤ褦ˤϡΥХʡ桼ƥƥ桼饹ѥ̤ƥǤ褦ˤʤäƤɬפޤ .LP .nf \f3 @@ -808,41 +1121,25 @@ Aloha.java GutenTag.java Hello.java Hi.java .fl /examples/greetings/Hi.java\fP .fl - -.fl .fi -.RE .LP .LP -\f2greetings\fP 内のクラスを実行するには、\f2greetings\fP と、\f2greetings\fP が使うクラスの両方にアクセスできる必要があります。 -.LP -.RS 3 - +\f2greetings\fP Υ饹¹Ԥˤϡ \f2greetings\fP ȡ줬Ȥ饹ξ˥Ǥɬפޤ .LP .nf \f3 .fl % \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP -.fl - .fl .fi -.RE .LP -.RE .SS -ソースファイルとクラスファイルの分離 -.LP -.RS 3 - +եȥ饹եʬΥ .LP .LP -特に大規模プロジェクトの場合は、ソースファイルとクラスファイルを別々のディレクトリに置くと便利なことがあります。クラスファイルの出力先を別に指定するには、\f3\-d\fP を使います。ソースファイルはユーザークラスパスにはないので、\f3\-sourcepath\fP を使って、コンパイラがソースファイルを見つけることができるようにします。 -.LP -.RS 3 - +ä絬ϥץȤξϡեȥ饹ե̡Υǥ쥯ȥ֤ʤȤޤ饹եν̤˻ꤹˤϡ\f3\-d\fP Ȥޤեϥ桼饹ѥˤϤʤΤǡ\f3\-sourcepath\fP Ȥäơѥ餬ե򸫤Ĥ뤳ȤǤ褦ˤޤ .LP .nf \f3 @@ -876,84 +1173,79 @@ farewells/ % \f3ls classes/farewells\fP .fl Base.class GoodBye.class -.fl - -.fl - .fl .fi -.RE .LP .LP -\f3注:\fP \ コマンド行では \f2src/farewells/Base.java\fP を指定していませんが、このファイルもコンパイラによってコンパイルされています。自動コンパイルを監視するには、\f3\-verbose\fP オプションを使います。 +\f3:\fP ޥɹԤǤ \f2src/farewells/Base.java\fP ꤷƤޤ󤬡Υե⥳ѥˤäƥѥ뤵Ƥޤưѥƻ뤹ˤϡ\f3\-verbose\fP ץȤޤ .LP -.RE .SS -クロスコンパイルの例 -.LP -.RS 3 - +ѥ .LP .LP -ここでは、\f3javac\fP を使って、1.5 VM 上で実行するコードをコンパイルします。 -.LP -.RS 3 - +Ǥϡ\f3javac\fP Ȥäơ1.6 VM Ǽ¹Ԥ륳ɤ򥳥ѥ뤷ޤ .LP .nf \f3 .fl -% \fP\f3javac \-target 1.5 \-bootclasspath jdk1.5.0/lib/rt.jar \\ +% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\ .fl \-extdirs "" OldCode.java\fP .fl - +.fi + +.LP +.LP +\f2\-source 1.6\fP ץˤꡢ \f2OldCode.java\fP ΥѥˤϥС 1.6 (ޤ 6) Java ץߥ󥰸줬Ѥޤ\f3\-target 1.6\fP ץˤꡢ1.6 VM ȸߴΤ륯饹ե뤬ޤۤȤɤξ硢\f3\-target\fP ץͤ \f3\-source\fP ץͤˤʤޤǤϡ\f3\-target\fP ץάǤޤ +.LP +.LP +\f3\-bootclasspath\fP ץѤơŬڤʥСΥ֡ȥȥåץ饹 ( \f2rt.jar\fP 饤֥) ꤹɬפޤꤷʤϡѥˤäƼηٹޤ +.LP +.nf +\f3 +.fl +% \fP\f3javac \-source 1.6 OldCode.java\fP +.fl +warning: [options] bootstrap class path not set in conjunction with \-source 1.6 .fl .fi -.RE .LP .LP -\f3\-target 1.5\fP オプションにより、1.5 VM と互換性のあるクラスファイルが生成されます。デフォルトでは、\f3javac\fP は JDK 6 用にコンパイルします。 +ŬڤʥСΥ֡ȥȥåץ饹ꤷʤ硢ѥϸŤ (ǤϡС 1.6 Java ץߥ󥰸) 򿷤֡ȥȥåץ饹Ȥ߹碌ƻѤޤη̡¸ߤʤ᥽åɤؤλȤޤޤƤ뤳Ȥ뤿ᡢ饹ե뤬Ťץåȥե (ξ Java SE 6) ưʤǽޤ .LP -.LP -Java プラットフォーム JDK の \f3javac\fP は、デフォルトでは、Java 2 SDK のブートストラップクラスに対してコンパイルを行うので、Java 2 SDK ではなく JDK 1.5 のブートストラップクラスに対してコンパイルを行うように指定する必要があります。これは、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使って指定します。この指定を行わないと、1.5 VM には存在しない Java 2 プラットフォーム API に対応したコンパイルが行われるため、プログラムの実行時に障害が発生することがあります。 -.LP -.RE -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2「The javac Guide」\fP @ +\f2The javac Guide\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jdb(1) \- Java デバッガ」 +jdb(1) \- Java ǥХå .TP 2 o -「javah(1) \- C ヘッダーとスタブファイルジェネレータ」 +javah(1) \- C إåȥ֥ե른ͥ졼 .TP 2 o -「javap(1) \- クラスファイル逆アセンブラ」 +javap(1) \- 饹եե֥ .TP 2 o -「javadoc(1) \- Java API ドキュメントジェネレータ」 +javadoc(1) \- Java API ɥȥͥ졼 .TP 2 o -「jar(1) \- JAR アーカイブツール」 +jar(1) \- JAR ֥ġ .TP 2 o .na -\f2「Java 拡張機能フレームワーク」\fP @ +\f2Java ĥǽե졼\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html .RE diff --git a/jdk/src/linux/doc/man/ja/javadoc.1 b/jdk/src/linux/doc/man/ja/javadoc.1 index 283c6a81c1b..57c6cd75a35 100644 --- a/jdk/src/linux/doc/man/ja/javadoc.1 +++ b/jdk/src/linux/doc/man/ja/javadoc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,328 +19,244 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "02 Jun 2010" -.SH "名前" -javadoc \- Java API ドキュメントジェネレータ -.RS 3 - -.LP -.LP -Java ソースファイルから、API ドキュメントの HTML ページを生成します。このドキュメントで紹介されている Javadoc の例は、Sun Solaris を使用した場合のものです。 -.LP -.RE -.SH "形式" +.TH javadoc 1 "14 Apr 2011" +.SH "̾" +javadoc \- Java API ɥȥͥ졼 .LP +Java ե뤫顢API ɥȤ HTML ڡޤΥɥȤǾҲ𤵤Ƥ Javadoc ϡ Solaris ѤΤΤǤ +.SH "" .LP \f4javadoc\fP\f2\ [\ \fP\f2options\fP\f2\ ]\ [\ packagenames\ ]\ [\ sourcefilenames\ ]\ [\ \-subpackages\fP\ \f2pkg1:pkg2:...\fP\f2\ ]\ [\ \fP\f2@argfiles\fP\f2\ ]\fP .LP -.LP -引数を指定する順序は任意です。Javadoc ツールでの、処理対象の \f2.java\fP ファイルを決定する方法の詳細については、「ソースファイルの処理」を参照してください。 -.LP -.RS 3 - -.LP +ꤹǤդǤJavadoc ġǤΡоݤ .java եꤹˡξܺ٤ˤĤƤϡ֥եν\f2򻲾\fPƤ .RS 3 .TP 3 options -このドキュメントで説明されているコマンド行オプションです。Javadoc オプションの標準的な使用法については、「使用例」を参照してください。 +ΥɥȤƤ륳ޥɹԥץǤJavadoc ץɸŪʻˡˤĤƤϡֻפ򻲾ȤƤ .TP 3 packagenames -スペースで区切られた一連のパッケージ名です。 たとえば、\f2java.lang\ java.lang.reflect\ java.awt\fP のように指定します。ドキュメント化するパッケージを個別に指定する必要があります。ワイルドカードは使用不可です。 再帰的処理のためには、\-subpackages を使用します。Javadoc ツールは、\f2\-sourcepath\fP を使ってこれらのパッケージ名を検索します。「1 つ以上のパッケージのドキュメント化」の例を参照してください。 +ڡǶڤ줿ϢΥѥå̾ǤȤС \f2java.lang\ java.lang.reflect\ java.awt Τ褦˻ꤷޤ\fPɥȲѥå̤˻ꤹɬפޤ磻ɥɤϻԲĤǤƵŪΤˤϡ\-subpackages ѤޤJavadoc ġϡ\f2\-sourcepath\fP ѤƤΥѥå̾򸡺ޤ1 İʾΥѥåΥɥȲפ򻲾ȤƤ .TP 3 sourcefilenames -スペースで区切られた一連のソースファイル名です。各ファイルは、パスで始まります。アスタリスク (*) などのワイルドカードを含めることができます。 Javadoc ツールが処理するのは、ファイル名が「.java」という拡張子で終わり、その拡張子を除いた名前が実際に有効なクラス名であるすべてのファイルです ( +ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ ( .na -\f2「Identifiers」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625を参照)。したがって、ハイフンを含む名前 (\f2X\-Buffer\fP など) や、その他の無効な文字を含む名前を付けることによって、それらのファイルをドキュメント化の対象から除外できます。これは、テスト用のファイルや、テンプレートから生成されたファイルの場合に便利です。 ソースファイル名の前に指定したパスによって、javadoc がそのファイルを検索する場所が決まります。Javadoc ツールは、これらのソースファイル名を検索するときに \f2\-sourcepath\fP は使いません。相対パスは、現在のディレクトリからの相対パスです。 \f2Button.java\fP を渡すことは、\f2./Button.java\fP を渡すことと同じです。ソースファイル名をフルパスで指定すると、\f2/home/src/java/awt/Graphics*.java\fP のようになります。「1 つ以上のクラスのドキュメント化」の例を参照してください。また、「パッケージとクラスのドキュメント化」の例のように、パッケージ名とソースファイル名を混在させることもできます。 +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ .TP 3 \-subpackages pkg1:pkg2:... -ソースファイルから指定されたパッケージおよびそのサブパッケージ内に再帰的にドキュメントを生成します。パッケージ名またはソースファイル名を指定する必要はありません。 +ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤѥå̾ޤϥե̾ꤹɬפϤޤ .TP 3 @argfiles -Javadoc オプション、パッケージ名、およびソースファイル名を任意の順序で並べたリストが含まれる 1 つ以上のファイルです。このファイルの中では、ワイルドカード (*) および \f2\-J\fP オプションは指定できません。 +Javadoc ץ󡢥ѥå̾ӥե̾Ǥդν¤٤ꥹȤޤޤ 1 İʾΥեǤ磻ɥ (*) \f2\-J\fP ץϡΥեǤϻǤޤ .RE - +.SH " " .LP -.RE -.SH " 説明" -.LP -.LP -\f3Javadoc\fP ツールは、一連の Java ソースファイルにある宣言およびドキュメンテーションコメントを解析し、デフォルトでは public クラス、protected クラス、入れ子にされたクラス (匿名の内部クラスは除く)、インタフェース、コンストラクタ、メソッド、およびフィールドについて説明した一連の HTML ページを生成します。また、API (アプリケーションプログラミングインタフェース) ドキュメントの生成や、一連のソースファイルの実装ドキュメントの生成に使用できます。 -.LP -.LP -Javadoc ツールは、パッケージ全体、個々のソースファイル、またはその両方に対して実行できます。javadoc ツールをパッケージ全体に対して実行する場合は、最上位ディレクトリから再帰的にたどるために \f2\-subpackages\fP を使用するか、パッケージ名の明示的なリストを渡します。個々ソースファイルに対して javadoc を実行する場合は、一連のソース (\f2.java\fP) ファイル名を渡します。具体的な例は、このドキュメントの最後に紹介します。次に、Javadoc によるソースファイルの処理について説明します。 +\f3Javadoc\fP ġϡϢ Java եˤӥɥơ󥳥ȤϤǥեȤǤ public 饹protected 饹Ҥˤ줿饹 (ƿ̾饹Ͻ)󥿥ե󥹥ȥ饯᥽åɡӥեɤˤĤϢ HTML ڡޤޤAPI (ץꥱץߥ󥰥󥿥ե) ɥȤ䡢ϢΥեμɥȤ˻ѤǤޤ .LP +Javadoc ġϡѥåΡġΥե롢ޤϤξФƼ¹ԤǤޤѥåΤΥɥȲԤˤϡ\f2\-subpackages\fP ѤƺǾ̥ǥ쥯ȥ꤫鲼˺ƵŪˤɤ뤫ѥå̾ŪʥꥹȤϤޤġեФ javadoc ¹ԤϡϢΥ (.\f2.java\fP) ե̾ϤޤŪϡΥɥȤκǸ˾Ҳ𤷤ޤˡJavadoc ˤ륽եνˤĤޤ .SS -ソースファイルの処理 -.LP -.LP -Javadoc ツールは、末尾に \f2.java\fP の付いたファイル以外に、ソースファイルで説明する他のファイルも処理します。個々のソースファイル名を明示的に渡すことによって Javadoc ツールを実行する場合、どの \f2.java\fP ファイルを処理するかを正確に指定できます。ただし、多くの開発者はこの方法では作業しません。 パッケージ名を渡すほうが簡単だからです。ソースファイル名を明示的に指定しなくても、Javadoc ツールは 3 つの方法で実行できます。この方法は、(1) パッケージ名を渡す、(2) \f2\-subpackages\fP を使用する、(3) ソースファイル名にワイルドカードを使用する (\f2*.java\fP) という方法です。これらの方法を使用する場合、Javadoc ツールは、\f2.java\fP ファイルが次のすべての要件を満たしている場合にかぎり、このファイルを処理します。 +եν .LP +Javadoc ġϡ\f2.java\fPפΥեǤʤ֥եפ뤽¾ΥեޤġΥե̾ŪϤȤˤä Javadoc ġ¹Ԥ硢ɤ \f2.java\fP ե뤫Τ˻Ǥޤ¿γȯԤϤˡǤϺȤޤ󡣥ѥå̾ϤۤñǤե̾Ū˻ꤷʤƤ⡢Javadoc ġ 3 ĤˡǼ¹ԤǤޤˡȤϡ(1) ѥå̾Ϥ(2) \f2\-subpackages\fP Ѥ롢(3) ե̾ǥ磻ɥɤѤ (\f2*.java\fP) 3 ĤǤξ硢Javadoc ġ뤬\f2.java\fPץեνԤΤϡΥե뤬Τ٤Ƥ׷Ǥ .RS 3 .TP 2 o -名前から \f2.java\fP の接尾辞を取り除くと、実際に有効なクラス名になっている (有効な文字については、 +̾\f2.java\fPפȼºݤͭʥ饹̾ˤʤäƤ (ͭʸˤĤƤ .na -\f2「Identifiers」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625を参照) +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾) .TP 2 o -ソースツリーのルートから相対的なディレクトリパスが、区切り文字をドットに変換すると、実際に有効なパッケージ名になっている +ĥ꡼Υ롼ȤŪʥǥ쥯ȥѥڤʸɥåȤѴȡºݤͭʥѥå̾ˤʤäƤ .TP 2 o -パッケージ文には有効なパッケージ名が含まれる (前項目で指定) +ѥåʸˤͭʥѥå̾ޤޤ (ܤǻ) .RE - -.LP -.LP -\f3リンクの処理\fP \- Javadoc ツールは、処理の実行中に、その実行でドキュメント化されるパッケージ、クラス、およびメンバーの名前に対して、自動的に相互参照リンクを追加します。このようなリンクは、次のような場所に追加されます。 .LP +\f3󥯤ν\fP \- Javadoc ġϡμ¹ˡμ¹ԤǥɥȲѥå饹ӥС̾ФơưŪ߻ȥ󥯤ɲäޤΤ褦ʥ󥯤ϡΤ褦ʾɲäޤ .RS 3 .TP 2 o -宣言 (戻り値の型、引数の型、フィールドの型) + (ͤηηեɤη) .TP 2 o -\f2@see\fP タグから生成された [関連項目] セクション +\f2@see\fP 줿 [Ϣ] .TP 2 o -\f2{@link}\fP タグから生成されたインラインテキスト +\f2{@link}\fP 줿饤ƥ .TP 2 o -\f2@throws\fP タグから生成された例外の名前 +\f2@throws\fP 줿㳰̾ .TP 2 o -"インタフェースのメンバーに対する [定義] リンクと、クラスのメンバーに対する [オーバーライド] リンク +󥿥եΥСФץ󥯤ȡ饹ΥСФ֥С饤ɡץ .TP 2 o -パッケージ、クラス、およびメンバーを列挙している概要テーブル +ѥå饹ӥС󤷤Ƥ복ץơ֥ .TP 2 o -パッケージおよびクラスの継承ツリー +ѥåӥ饹ηѾĥ꡼ .TP 2 o -索引 + .RE - .LP +ޥɹԤǻꤷʤä饹ˤĤƤδ¸Υƥ (̤ƥ) Фƥϥѡ󥯤ɲäˤϡ\f2\-link\fP \f2\-linkoffline\fP ץѤǤޤ .LP -コマンド行で指定しなかったクラスについての既存のテキスト (別に生成したテキスト) に対してハイパーリンクを追加するには、\f2\-link\fP および \f2\-linkoffline\fP オプションを利用できます。 +\f3¾νˤĤƤξܺ\fP \- Javadoc ġϡ¹Ԥ뤿Ӥ 1 ĤδʥɥȤޤɥȤɲ뤳ȤϤǤޤ󡣤ĤޤꡢJavadoc ġΰμ¹Է̤ꡢƤľȤ줿ꤹ뤳ȤϤǤޤ󡣤ҤΤ褦ˡμ¹Է̤Фƥ󥯤ɲä뤳ȤϤǤޤ .LP +ͳ顢Javadoc ġϡ¹Ԥ뤿 java ѥɬפȤjava ѥ˰¸ƤޤJavadoc ġϡ \f2javac\fP ΰƤӽФ򥳥ѥ뤷ޤСμ̵뤷ޤJavadoc ġϡ饹ؤޤ९饹˭٤ɽȥ饹Ρֻѡ״طۤξ󤫤 HTML ޤˡJavadoc ġϡɤΥɥơ󥳥Ȥ顢桼󶡤ɥȤޤ .LP -\f3その他の処理についての詳細\fP \- Javadoc ツールは、実行するたびに 1 つの完全なドキュメントを作成します。 ドキュメントを追加生成することはできません。 つまり、Javadoc ツールの以前の実行結果を修正したり、その内容を直接組み入れたりすることはできません。ただし、前述のように、以前の実行結果に対してリンクを追加することはできます。 +ºݤˤϡJavadoc ġϡ᥽åΤʤʥ֥եǤ褦 \f2.java\fP եǤưޤäơAPI κˤϡ򵭽Ҥ߷פᤤʳǡɥơ󥳥Ȥ򵭽Ҥ javadoc ġ¹ԤǤޤ .LP -.LP -実装上の理由から、Javadoc ツールは、処理を実行するために java コンパイラを必要とし、java コンパイラに依存しています。Javadoc ツールは \f2javac\fP の一部を呼び出すことにより、宣言をコンパイルし、メンバーの実装は無視します。Javadoc ツールは、クラス階層を含むクラスの豊富な内部表現とクラスの「使用」関係を構築し、その情報から HTML を生成します。さらに、Javadoc ツールは、ソースコードのドキュメンテーションコメントから、ユーザーの提供したドキュメントも取得します。 -.LP -.LP -Javadoc ツールは、メソッド本体のない純粋なスタブファイルである \f2.java\fP ソースファイルに対しても、実行することができます。したがって、API の作成時には、実装を記述する前の設計の早い段階で、ドキュメンテーションコメントを記述して javadoc ツールを実行できます。 -.LP -.LP -コンパイラに依存することによって、HTML 出力は、実際の実装に正確に対応します。 実際の実装は、明示的なソースコードにではなく、暗黙のソースコードに依存する場合があります。たとえば、Javadoc ツールは、\f2.class\fP ファイル内に存在するが、ソースコード内には存在しない +ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤ .na -\f2デフォルトコンストラクタ\fP @ +\f2ǥեȥ󥹥ȥ饯\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java 言語仕様のセクション 8.6.7) をドキュメント化します。 +http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java ͤΥ 8.6.7) \f2ɥȲ\fP ޤ .LP +̾Javadoc ġǤϡեΥɤԴޤϥ顼ޤǤǤɥȤǤޤΤᡢǥХåȥ֥륷塼ƥ󥰤λ˥ɥȤǤޤȤСJava ͤˤȡݥ᥽åɤޤ९饹ϡ켫ݤȤʤФʤޤ󡣤Υ顼򸡽Фȡjavac ѥߤޤJavadoc ġϷٹФ˽³ԤޤJavadoc ġϥɥơ󥳥ȤδŪʥåԤޤɥơ󥳥ȤܤåɬפϡDocCheck ɥååȤѤƤ .LP -通常、Javadoc ツールでは、ソースファイルのコードが不完全またはエラーを含んでいる場合でもドキュメントを生成できます。このため、デバッグやトラブルシューティングを完了する前にドキュメントを生成できます。たとえば、Java 言語仕様によると、抽象メソッドを含むクラスは、それ自体抽象として宣言されなければなりません。このエラーを検出すると、javac コンパイラは停止しますが、Javadoc ツールは警告を出さずに処理を続行します。Javadoc ツールはドキュメンテーションコメントの基本的なチェックを行います。ドキュメンテーションコメントをより詳しくチェックする必要がある場合は、DocCheck ドックレットを使用してください。 -.LP -.LP -Javadoc ツールは、ドキュメントの内部構造を構築する際、参照クラスをすべてロードします。このため、Javadoc ツールは、ブートストラップクラス、拡張機能、またはユーザークラスにかかわらず、すべての参照クラスを検索できなければなりません。詳細は、 +Javadoc ġϡɥȤ¤ۤݡȥ饹򤹤٤ƥɤޤΤᡢJavadoc ġϡ֡ȥȥåץ饹ĥǽޤϥ桼饹ˤ餺٤Ƥλȥ饹򸡺ǤʤФʤޤ󡣾ܺ٤ϡ .na -\f2「クラスの検索方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.htmlを参照してください。通常、作成するクラスは、拡張機能としてロードするか、Javadoc ツールのクラスパス内に置く必要があります。 -.LP +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html򻲾ȤƤ̾륯饹ϡĥǽȤƥɤ뤫Javadoc ġΥ饹ѥ֤ɬפޤ .SS -Javadoc のドックレット -.LP -.LP -Javadoc ツールの出力の内容と形式は、ドックレットを使ってカスタマイズできます。Javadoc ツールには、標準ドックレットと呼ばれるデフォルトの「組み込み」ドックレットがあります。 標準ドックレットは、HTML 形式の API ドキュメントを生成します。標準ドックレットを修正またはサブクラス化することや、HTML、XML、MIF、RTF などの好みの出力形式を生成する独自のドックレットを記述することも可能です。ドックレットとその使用法については、次の項目を参照してください。 +Javadoc Υɥåå .LP +Javadoc ġνϤƤȷϡɥååȤȤäƥޥǤޤJavadoc ġˤϡɸɥååȤȸƤФǥեȤΡȤ߹ߡץɥååȤޤɸɥååȤϡHTML API ɥȤޤɸɥååȤޤϥ֥饹뤳Ȥ䡢HTMLXMLMIFRTF ʤɤιߤνϷȼΥɥååȤ򵭽Ҥ뤳ȤǽǤɥååȤȤλˡˤĤƤϡιܤ򻲾ȤƤ .RS 3 .TP 2 o .na -\f2Javadoc のドックレット\fP @ +\f2Javadoc Υɥåå\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html .TP 2 o -\f2\-doclet\fP コマンド行オプション +\f2\-doclet\fP ޥɹԥץ .RE - -.LP -.LP -\f2\-doclet\fP コマンド行オプションでカスタムドックレットが指定されていない場合、Javadoc ツールは、デフォルトの標準ドックレットを使用します。javadoc ツールには、使用されているドックレットに関係なく使用できるコマンド行オプションがあります。標準ドックレットでは、これらのほかに、いくつかのコマンド行オプションが追加されます。どちらのオプションについても、このあとの「オプション」で説明します。 .LP +\f2\-doclet\fP ޥɹԥץǥɥååȤꤵƤʤ硢Javadoc ġϡǥեȤɸɥååȤѤޤjavadoc ġˤϡѤƤɥååȤ˴طʤѤǤ륳ޥɹԥץ󤬤ޤɸɥååȤǤϡΤۤˡĤΥޥɹԥץɲäޤɤΥץˤĤƤ⡢ΤȤΡ֥ץפޤ .SS -関連ドキュメントおよびドックレット -.LP +ϢɥȤӥɥåå .RS 3 .TP 2 o .na -\f2Javadoc に施された機能強化\fP @ +\f2Javadoc ˻ܤ줿ĥǽ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html \- Javadoc で追加された改良点の詳細 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html \- Javadoc 1.4 ɲä줿ξܺ .TP 2 o .na \f2Javadoc FAQ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html \- 頻繁に寄せられる質問に対する回答、Javadoc 関連のツールについての情報、およびバグの回避方法 +http://java.sun.com/j2se/javadoc/faq/index.html \- ˤ˴󤻤ФJavadoc ϢΥġˤĤƤξ󡢤ӥХβˡ .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ドキュメンテーションコメントの記述方法に関する Sun の規約 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε .TP 2 o .na \f2Requirements for Writing API Specifications\fP @ .fi -http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Java 2 プラットフォーム仕様を記述する際に使用された標準要件。この情報は、ソースファイルのドキュメンテーションコメント形式で API 仕様を記述する場合にも、その他の形式で記述する場合にも役立ちます。検証可能なアサーションを満たすパッケージ、クラス、インタフェース、フィールド、およびメソッドについての要件を定めています。 +http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Java SE ץåȥեͤ򵭽Ҥݤ˻Ѥ줿ɸ׷盧ξϡեΥɥơ󥳥ȷ API ͤ򵭽Ҥˤ⡢¾ηǵҤˤΩޤڲǽʥѥå饹󥿥եեɡӥ᥽åɤˤĤƤ׷Ƥޤ .TP 2 o .na -\f2ドキュメンテーションコメントの仕様\fP @ +\f2ɥơ󥳥Ȥλ\fP @ .fi -http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- ドキュメンテーションコメントのオリジナル仕様については、『Java Language Specification』 (James Gosling、Bill Joy、Guy Steele 共著) の初版の第 18 章「Documentation Comments」を参照してください。この章は、第 2 版では削除されました。 +http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- ɥơ󥳥ȤΥꥸʥͤˤĤƤϡJava Language Specification (James GoslingBill JoyGuy Steele ) νǤ 18 ϡDocumentation Commentsפ򻲾ȤƤξϤϡ 2 ǤǤϺޤ .TP 2 o .na -\f2DocCheck ドックレット\fP @ +\f2DocCheck ɥåå\fP @ .fi -http://java.sun.com/javadoc/doccheck \- ソースファイル内のドキュメンテーションコメントをチェックし、検出されたエラーや不正のレポートを生成します。Sun Doc Check ユーティリティーの一部です。Sun Doc Check ユーティリティーの一部です。 +http://java.sun.com/javadoc/doccheck \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ .TP 2 o .na -\f2MIF ドックレット\fP @ +\f2MIF ɥåå\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- MIF、FrameMaker、PDF の書式で API ドキュメントを自動生成します。MIF は Adobe FrameMaker の交換書式です。 +http://java.sun.com/javadoc/mifdoclet \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ .RE - -.LP .SS -用語 -.LP -.LP -\f2「ドキュメンテーションコメント」\fP、\f2「doc コメント」\fP、\f2「主説明」\fP、\f2「タグ」\fP、\f2「ブロックタグ」\fP、および\f2「インラインタグ」\fPの用語については、「ドキュメンテーションコメント」で説明します。次のその他の用語は、Javadoc ツールのコンテキストで特定の意味を持ちます。 +Ѹ .LP +\f2֥ɥơ󥳥ȡ\fP\f2doc ȡ\fP\f2ּ\fP\f2֥\fP\f2֥֥å\fP\f2֥饤󥿥\fPѸˤĤƤϡ֥ɥơ󥳥ȡפޤʲΤ¾ѸϡJavadoc ġΥƥȤΰ̣ޤ .RS 3 .TP 3 -生成ドキュメント (generated document) -javadoc ツールが Java ソースコード内のドキュメンテーションコメントから生成したドキュメントのことです。デフォルトの生成ドキュメントは HTML 形式で、標準ドックレットによって作成されます。 +ɥ (generated document) +javadoc ġ뤬 Java Υɥơ󥳥ȤɥȤΤȤǤǥեȤɥȤ HTML ǡɸɥååȤˤäƺޤ .LP .TP 3 -名前 (name) -Java 言語で書かれたプログラム要素の名前、つまりパッケージ、クラス、インタフェース、フィールド、コンストラクタ、またはメソッドの名前のことです。名前は、\f2java.lang.String.equals(java.lang.Object)\fP のように完全修飾することも、\f2equals(Object)\fP のように部分修飾することもできます。 +̾ (name) +Java ǽ񤫤줿ץǤ̾Ĥޤѥå饹󥿥եեɡ󥹥ȥ饯ޤϥ᥽åɤ̾ΤȤǤ̾ϡ \f2java.lang.String.equals(java.lang.Object)\fP Τ褦ʴ̾ˤ뤳Ȥ⡢ \f2equals(Object)\fP Τ褦ʬ̾ˤ뤳ȤǤޤ .LP .TP 3 -ドキュメント化されるクラス (documented classes) -javadoc ツールの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。ドキュメント化するには、ソースファイルが使用可能でなければならず、ソースファイル名またはパッケージ名を javadoc コマンドに渡され、アクセス修飾子 (public、protected、package\-private または private) によってフィルタ処理されないようにしなければなりません。ドキュメント化されるクラスは、javadoc ツールの出力に組み込まれるクラス、つまり「包含クラス」とも呼ばれます。 +ɥȲ륯饹 (documented classes) +javadoc ġμ¹Ԥˤäƾܺ٤ʥɥȤ륯饹ӥ󥿥եΤȤǤɥȲˤϡե뤬ѲǽǤʤФʤ餺ե̾ޤϥѥå̾ javadoc ޥɤϤ졢 (publicprotectedpackage\-private ޤ private) ˤäƥե륿ʤ褦ˤʤФʤޤ󡣥ɥȲ륯饹ϡjavadoc ġνϤȤ߹ޤ륯饹Ĥޤޥ饹פȤƤФޤ .LP .TP 3 -包含クラス (included classes) -ツールの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。「ドキュメント化されるクラス」 と同じ。 +ޥ饹 (included classes) +ġμ¹Ԥˤäƾܺ٤ʥɥȤ륯饹ӥ󥿥եΤȤǤ֥ɥȲ륯饹פƱ .LP .TP 3 -除外クラス (excluded classes) -ツールの実行によって詳細なドキュメントが生成されないクラスおよびインタフェースのことです。 +饹 (excluded classes) +ġμ¹Ԥˤäƾܺ٤ʥɥȤʤ饹ӥ󥿥եΤȤǤ .LP .TP 3 -参照クラス (referenced classes) -ドキュメント化されるクラスおよびインタフェースの定義 (実装) またはドキュメンテーションコメントの中で明示的に参照されているクラスおよびインタフェースのことです。参照の例としては、戻り値の型、パラメータの型、キャストの型、拡張されたクラス、実装されたインタフェース、インポートされたクラス、メソッド本体で使用されるクラス、@see、{@link}、{@linkplain}、{@inheritDoc} タグなどがあります。この定義は +ȥ饹 (referenced classes) +ɥȲ륯饹ӥ󥿥ե () ޤϥɥơ󥳥ȤŪ˻ȤƤ륯饹ӥ󥿥եΤȤǤȤȤƤϡͤηѥ᡼η㥹Ȥηĥ줿饹줿󥿥եݡȤ줿饹᥽åΤǻѤ륯饹@see{@link}{@linkplain}{@inheritDoc} ʤɤޤ .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses から変更されています。javadoc ツールを実行するときは、Javadoc のブートクラスパスおよびクラスパス内にあるすべての参照クラスをメモリーにロードする必要があります。参照クラスが見つからない場合は、「クラスが見つかりません」という警告が表示されます。Javadoc ツールは、クラスの存在とそのメンバーの完全指定の名前を判別するのに必要なすべての情報を、.class ファイルから引き出すことができます。 +http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ .LP .TP 3 -外部参照クラス (external referenced classes) -参照クラスのうち、javadoc ツールの実行中にドキュメントが生成されないクラスのことです。つまり、これらのクラスは、コマンド行で Javadoc ツールに渡されていません。生成ドキュメント内でこれらのクラスにリンクしている箇所は、「外部参照」または「外部リンク」と呼ばれます。たとえば、\f2java.awt\fP パッケージに対してだけ Javadoc ツールを実行した場合、\f2Object\fP などの \f2java.lang\fP 内のすべてのクラスが外部参照クラスになります。外部参照クラスにリンクするには、\f2\-link\fP および \f2\-linkoffline\fP オプションを使用します。外部参照クラスには、通常そのソースコメントを javadoc ツールの実行で利用できないという重要な特徴があります。この場合、それらのコメントを継承することはできません。 +ȥ饹 (external referenced classes) +ȥ饹Τjavadoc ġμ¹˥ɥȤʤ饹ΤȤǤĤޤꡢΥ饹ϡޥɹԤ Javadoc ġϤƤޤɥǤΥ饹˥󥯤Ƥսϡֳȡפޤϡֳ󥯡פȸƤФޤȤСJavadoc ġμ¹оݤ \f2java.awt\fP ѥåΤߤǤ硢 \f2java.lang\fP Τ٤ƤΥ饹 ( \f2Object\fPʤ) ȥ饹ˤʤޤȥ饹˥󥯤ˤϡ \f2\-link\fP \f2\-linkoffline\fP ץѤޤȥ饹ˤϡ̾綠ΥȤ javadoc ġμ¹ԤѤǤʤȤפħޤξ硢ΥȤѾ뤳ȤϤǤޤ .RE - -.LP -.SH "ソースファイル" -.LP -.LP -Javadoc ツールは、4 種類の異なるソースファイルから出力結果を生成します。そのファイルは、クラスの Java 言語ソースファイル (\f2.java\fP)、パッケージコメントファイル、概要コメントファイル、およびその他の処理されないファイルです。また、ドキュメント化しないがソースツリーに存在する場合があるテストファイルやテンプレートファイルについても説明します。 +.SH "ե" .LP +Javadoc ġ 4 ΰۤʤ֥ץե뤫Ϥޤ 4 Ȥϡ饹 Java 쥽ե (\f2.java\fP)ѥåȥե롢ץȥե롢Ӥ¾νʤեǤޤɥȲʤĥ꡼¸ߤ礬ƥȥեƥץ졼ȥեˤĤƤޤ .SS -クラスソースコードファイル -.LP -.LP -それぞれのクラスまたはインタフェース、およびそのメンバーは、独自のドキュメンテーションコメントを持つことができ、それを \f2.java\fP ファイル内に保持します。ドキュメンテーションコメントの詳細は、「ドキュメンテーションコメント」を参照してください。 +饹ɥե .LP +줾Υ饹ޤϥ󥿥եӤΥСϡȼΥɥơ󥳥ȤĤȤǤ \f2.java\fP եݻޤɥơ󥳥Ȥξܺ٤ϡ֥ɥơ󥳥ȡפ򻲾ȤƤ .SS -パッケージコメントファイル +ѥåȥե .LP +줾ΥѥåϡȼΥɥơ󥳥ȤĤȤǤѤΡ֥ץեݻޤƤϡJavadoc ġˤä복ץڡȤ߹ޤޤΥȤˤϡ̾ΥѥåΤƤϤޤɥȤ򵭽Ҥޤ .LP -それぞれのパッケージは、独自のドキュメンテーションコメントを持つことができ、それを専用の「ソース」ファイルに保持します。 その内容は、Javadoc ツールによって生成される概要ページに組み込まれます。このコメントには、通常、そのパッケージ全体に当てはまるドキュメントを記述します。 -.LP -.LP -パッケージコメントファイルを作成する場合、コメントの格納先として、次の 2 つのファイルのいずれかを選択できます。 -.LP +ѥåȥե硢ȤγǼȤơ 2 ĤΥեΤ줫Ǥޤ .RS 3 .TP 2 o -\f2package\-info.java\fP \- パッケージ宣言、パッケージ注釈、パッケージコメント、および Javadoc タグを格納できます。このファイルは JDK 5.0 で導入されたものであり、package.html よりも推奨されています。 +\f2package\-info.java\fP \- ѥåѥåᡢѥåȡ Javadoc ǼǤޤΥեϰ̤ˡpackage.html 侩ޤ .TP 2 o -\f2package.html\fP \- 格納できるのはパッケージコメントと Javadoc タグだけです。 パッケージ注釈は格納できません。 +\f2package.html\fP \- ǼǤΤϥѥåȤ Javadoc ǤѥåϳǼǤޤ .RE - .LP +ƥѥåǤϡñ \f2package.html\fP ե롢ñ \f2package\-info.java\fP եΤ줫Ǥޤξ򤹤뤳ȤϤǤޤ󡣤Τɤ餫Υե \f2.java\fP եȤȤˡĥ꡼ΤΥѥåΥǥ쥯ȥ֤Ƥ .LP -各パッケージは、単一の \f2package.html\fP ファイル、単一の \f2package\-info.java\fP ファイルのいずれかを持つことができますが、両方を持つことはできません。このどちらかのファイルを \f2.java\fP ファイルとともに、ソースツリー内のそのパッケージのディレクトリ内に配置してください。 +\f4package\-info.java\fP \- Υեˤϡι¤ΥѥåȤǼǤޤ Ȥϥѥå֤ޤ .LP -.LP -\f4package\-info.java\fP \- このファイルには、次の構造のパッケージコメントを格納できます。 コメントはパッケージ宣言の前に配置します。 -.LP -.LP -File:\f2java/applet/package\-info.java\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 +File: \f2java/applet/package\-info.java\fP .nf \f3 .fl /** .fl - * Provides the classes necessary to create an + * Provides the classes necessary to create an .fl * applet and the classes an applet uses .fl @@ -372,285 +288,91 @@ package java.lang.applet; .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 352 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - .LP +ȶڤʸ \f2/**\fP \f2/*\fP ¸ߤƤɬפޤֹԤιƬΥꥹϾάƤ⤫ޤޤ .LP -コメント区切り文字の \f2/**\fP と \f2/*\fP は記述する必要がありますが、中間行の行頭のアスタリスクは省略してもかまいません。 +\f4package.html\fP \- Υեˤϡι¤ΥѥåȤǼǤޤȤ \f2\fP ֤ޤ .LP -.LP -\f4package.html\fP \- このファイルには、次の構造のパッケージコメントを格納できます。 コメントは \f2\fP 要素内に配置します。 -.LP -.LP -File:\f2java/applet/package.html\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 +File: \f2java/applet/package.html\fP .nf \f3 .fl - -.fl - -.fl -Provides the classes necessary to create an applet and the -.fl -classes an applet uses to communicate with its applet context. -.fl -

    + Provides the classes necessary to create an applet and the classes an applet uses to communicate with its applet context.

    .fl The applet framework involves two entities: the applet .fl -and the applet context. An applet is an embeddable -.fl -window (see the {@link java.awt.Panel} class) with a -.fl -few extra methods that the applet context can use to -.fl -initialize, start, and stop the applet. -.fl - -.fl -@since 1.0 -.fl -@see java.awt -.fl - -.fl - +and the applet context. An applet is an embeddable window (see the {@link java.awt.Panel} class) with a few extra methods that the applet context can use to initialize, start, and stop the applet.@since 1.0 @see java.awt .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 405 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-40 - .LP -.LP -これは単なる通常の HTML ファイルであり、パッケージ宣言を含んでいない点に注意してください。パッケージコメントファイルの内容は、ほかのすべてのコメントと同様に HTML で記述されています。それは、このドキュメンテーションコメントには、コメント区切り文字である \f2/**\fP と \f2*/\fP、および行頭のアスタリスクを含めてはならない、ということです。コメントを書く場合は、最初の文をパッケージの概要とし、\f2\fP と最初の文の間にタイトルやその他のテキストを含めないようにします。パッケージタグを含めることはできますが、ほかのドキュメンテーションコメントと同様、すべてのブロックタグは、主説明のあとに置かなければなりません。パッケージコメントファイルに \f2@see\fP タグを追加する場合は、完全指定の名前を使用する必要があります。詳細は、 +ñʤ̾ HTML եǤꡢѥåޤǤʤդƤѥåȥեƤϡۤΤ٤ƤΥȤƱͤ HTML ǵҤޤ1 Ĥ㳰ޤϡΥɥơ󥳥Ȥˤϡȶڤʸ Ǥ \f2/**\fP \f2*/\fP ӹƬΥꥹޤƤϤʤʤȤǤȤ񤯾ϡǽʸѥåγפȤ \f2\fP Ⱥǽʸδ֤˥ȥ䤽¾ΥƥȤޤʤ褦ˤޤѥåޤ뤳ȤϤǤޤۤΥɥơ󥳥ȤƱ͡٤ƤΥ֥åϡΤȤ֤ʤФʤޤ \f2@see\fP ѥåȥեɲäˤϡ̾Ѥɬפޤܺ٤ϡ .na -\f2package.html\fP の例 @ +\f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecommentsを参照してください。 -.LP -.LP -\f3パッケージコメントファイルの処理\fP \- Javadoc ツールは、実行時にパッケージコメントファイルを自動的に検索し、このファイルを見つけると次の処理を行います。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments򻲾ȤƤ .LP +\f3ѥåȥեν\fP \- Javadoc ġϡ¹Ի˥ѥåȥեưŪ˸Υե򸫤ĤȼνԤޤ .RS 3 .TP 2 o -処理できるようにコメントをコピーする (\f2package.html\fP の場合であれば、\f2\fP と \f2\fP HTML タグの間にある内容をすべてコピーする。\f2\fP を含め、そこに \f2\fP やソースファイルの著作権記述などの情報を配置することもできるが、生成後のドキュメンテーションにはそれらは一切表示されない) +Ǥ褦˥Ȥ򥳥ԡ( \f2package.html\fP ξǤС \f2<body>\fP \f2</body>\fP HTML δ֤ˤƤ򤹤٤ƥԡ롣 \f2<head>\fP ޤᡢ \f2<title>\fP 䥽եҤʤɤξ֤뤳ȤǤ뤬ΥɥơˤϤϰɽʤ) .TP 2 o -パッケージタグがあれば、すべて処理する +ѥåС٤ƽ .TP 2 o -生成したパッケージの概要ページの最後に、処理したテキストを挿入する (例: +ѥåγץڡκǸˡƥȤ (: .na -\f2パッケージの概要\fP @ +\f2ѥåγ\fP @ .fi http://java.sun.com/javase/6/docs/api/java/applet/package\-summary.html) .TP 2 o -パッケージの概要ページの先頭に、パッケージコメントの最初の文をコピーする。さらに、概要ページのパッケージリストに、パッケージ名とパッケージコメントの最初の文を追加する (例: +ѥåγץڡƬˡѥåȤκǽʸ򥳥ԡ롣ˡץڡΥѥåꥹȤˡѥå̾ȥѥåȤκǽʸɲä (: .na -\f2概要の要約\fP @ +\f2פ\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html)。文の末尾は、クラスやメンバーの主説明の最初の文の末尾と同じ規則によって判断される +http://java.sun.com/javase/6/docs/api/overview\-summary.html)ʸϡ饹СμκǽʸƱ§ˤäȽǤ .RE - -.LP .SS -概要コメントファイル +ץȥե .LP +ɥȲƥץꥱޤϥѥååȤϡȼγץɥơ󥳥ȤĤȤǤѤΡ֥ץեݻޤƤϡJavadoc ġˤä복ץڡȤ߹ޤޤΥȤˤϡ̾ץꥱޤϥѥååΤƤϤޤɥȤ򵭽Ҥޤ .LP -ドキュメント化する各アプリケーションまたはパッケージセットは、独自の概要ドキュメンテーションコメントを持つことができ、それは専用の「ソース」ファイルに保持されます。 その内容は、Javadoc ツールによって生成される概要ページに組み込まれます。このコメントには、通常、アプリケーションまたはパッケージセット全体に当てはまるドキュメントを記述します。 +ץȥեˤϡեǤդ̾ (̾ \f4overview.html\fP) դǤդξ (̾ϥĥ꡼κǾ) ֤ǤޤȤС \f2java.applet\fP ѥåΥե뤬 \f2/home/user/src/java/applet\fP ǥ쥯ȥ˳ǼƤСץȥե \f2/home/user/src/overview.html ˺Ǥޤ\fP .LP +ۤʤѥåΥåȤФ javadoc ʣ¹ԤϡƱ 1 ĤΥեΥåȤФʣγץȥեǤޤȤСɥơѤ \-private ꤷ javadoc 1 ¹ԤȡɥơѤˤΥץꤷʤǺټ¹Ԥ뤳ȤǤޤξ硢Ƴץȥե 1 ʸܤǡΥɥơѤޤѤȤƵҤǤޤ .LP -概要コメントファイルを作成する場合は、ファイルに任意の名前を付け、任意の場所に置くことができます。ただし、通常は、ファイル名を \f4overview.html\fP にして、ソースツリーの最上位レベルに置きます。たとえば、\f2java.applet\fP パッケージのソースファイルが \f2/home/user/src/java/applet\fP ディレクトリに含まれている場合は、\f2/home/user/src/overview.html\fP に概要コメントファイルを作成できます。 -.LP -.LP -異なるパッケージのセットに対して javadoc を複数回実行する場合は、同じ 1 つのソースファイルのセットに対して複数の概要コメントファイルを作成できます。たとえば、内部ドキュメンテーション用に \-private を指定して javadoc を 1 回実行したあと、公開ドキュメンテーション用にそのオプションを指定しないで再度実行することができます。この場合、各概要コメントファイルの 1 文目で、そのドキュメンテーションを公開用または内部用として記述できます。 -.LP -.LP -概要コメントファイルの内容は、前述のパッケージコメントファイルと同様、HTML で記述された 1 つの大きなドキュメンテーションコメントです。詳細は、前述の説明を参照してください。要点を繰り返すと、このコメントを記述する場合は、最初の文をアプリケーションまたはパッケージセットの要約とし、\f2<body>\fP と最初の文の間にタイトルその他のテキストを含めないようにします。概要タグを含めることができます。 どのドキュメンテーションコメントについても、インラインタグ (\f2{@link}\fP など) 以外のすべてのタグは、主説明のあとに置く必要があります。\f2@see\fP タグを追加する場合は、完全指定の名前を使用しなければなりません。 -.LP -.LP -Javadoc ツールの実行時に、\-overview オプションを使って概要コメントファイル名を指定します。このファイルは、パッケージコメントファイルと同じように処理されます。 +ץȥեƤϡҤΥѥåȥեƱ͡HTML ǵҤ줿 1 Ĥ礭ʥɥơ󥳥ȤǤܺ٤ϡҤ򻲾ȤƤ򷫤֤ȡΥȤ򵭽Ҥϡǽʸ򥢥ץꥱޤϥѥååȤȤ \f2<body>\fP Ⱥǽʸδ֤˥ȥ뤽¾ΥƥȤޤʤ褦ˤޤץޤ뤳ȤǤޤۤΥɥơ󥳥ȤƱ \f2{@link}\fP ʤɤΥ饤󥿥٤ƤΥϡΤȤ֤ɬפޤ \f2@see\fP ɲäˤϡ̾Ѥɬפޤ .LP +Javadoc ġμ¹Իˡ\-overview ץȤäƳץȥե̾ꤷޤΥեϡѥåȥեƱ褦˽ޤ .RS 3 .TP 2 o -\f2<body>\fP タグと \f2</body>\fP タグの間にあるすべての内容を処理のためにコピーする +\f2<body>\fP \f2</body>\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ .TP 2 o -概要タグがあればすべて処理する +ץС٤ƽ .TP 2 o -生成した概要ページの最後に、処理したテキストを挿入する (例: +ץڡκǸˡƥȤ (: .na -\f2概要の要約\fP @ +\f2פ\fP @ .fi http://java.sun.com/javase/6/docs/api/overview\-summary.html) .TP 2 o -概要ページの先頭に、概要コメントの最初の文をコピーする +ץڡƬˡץȤκǽʸ򥳥ԡ .RE - -.LP .SS -その他の未処理のファイル +¾̤Υե .LP +ˤϡJavadoc ġˤäΥǥ쥯ȥ˥ԡ롢¾ǤդΥեޤ뤳ȤǤޤ̤ˡΤ褦ʥեˤϡեåե롢ץ Java (.java) ӥ饹 (.class) ե롢Ƥ̾ Java եΥɥơ󥳥ȤαƶʤΩ HTML եʤɤޤ .LP -ソースには、Javadoc ツールによって生成先のディレクトリにコピーされる、その他の任意のファイルを含めることができます。一般に、このようなファイルには、グラフィックファイル、サンプルの Java ソース (.java) およびクラス (.class) ファイル、内容が通常の Java ソースファイルのドキュメンテーションコメントの影響を受けない独立した HTML ファイルなどがあります。 -.LP -.LP -未処理のファイルをソースに含めるには、それらのファイルを \f4doc\-files\fP というディレクトリに置きます。 このディレクトリは、ソースファイルがある任意のパッケージディレクトリの下に作成できます。このようなサブディレクトリは、パッケージごとに 1 つ用意できます。イメージ、サンプルコード、ソースファイル、.class ファイル、アプレット、および HTML ファイルをこのディレクトリに格納できます。たとえば、ボタンのイメージ \f2button.gif\fP を \f2java.awt.Button\fP クラスのドキュメントに含める場合は、そのファイルを \f2/home/user/src/java/awt/doc\-files/\fP ディレクトリに置きます。\f2doc\-files\fP ディレクトリを \f2/home/user/src/java/doc\-files\fP に置くことはできません。 これは、\f2java\fP はパッケージではなく、そのディレクトリそのものにソースファイルが入っていないからです。 -.LP -.LP -これらの未処理のファイルへのリンクは、すべて明示的に記述する必要があります。 これは、Javadoc ツールがそれらのファイルを見ずに、単にディレクトリとその内容を生成先にコピーするだけだからです。たとえば、\f2Button.java\fP のドキュメンテーションコメント内のリンクは、次のようになります。 +ʤեޤˤϡ\f4doc\-files\fP Ȥ̾Υǥ쥯ȥˤΥե֤ޤΥǥ쥯ȥϡե뤬Ǽ줿ǤդΥѥåǥ쥯ȥΥ֥ǥ쥯ȥˤޤΤ褦ʥ֥ǥ쥯ȥϡѥåȤ 1 ѰդǤޤ᡼ץ륳ɡե롢.class ե롢ץåȡ HTML ե򤳤Υǥ쥯ȥ˳ǼǤޤȤСܥβ \f2button.gif\fP \f2java.awt.Button\fP 饹Υɥơ˴ޤˤϡΥե \f2/home/user/src/java/awt/doc\-files/\fP ǥ쥯ȥ֤ޤʤ \f2doc\-files\fP ǥ쥯ȥ \f2/home/user/src/java/doc\-files\fP ֤뤳ȤϤǤޤ󡣤ʤʤ顢 \f2java\fP ϥѥåǤϤʤǤĤޤꡢjava ľܴޤޤƤ륽ե 1 Ĥ¸ߤƤޤ .LP +̤ΥեؤΥ󥯤ϡ٤Ū˵ҤɬפޤϡJavadoc ġ뤬Υե򸫤ˡñ˥ǥ쥯ȥȤƤ˥ԡǤȤС \f2Button.java\fP Υɥơ󥳥Υ󥯤ϡΤ褦ˤʤޤ .nf \f3 .fl @@ -664,23 +386,16 @@ o .fl \fP .fi - -.LP .SS -テストファイルおよびテンプレートファイル +ƥȥե뤪ӥƥץ졼ȥե .LP +γȯԤ顢ƥȥե뤪ӥƥץ졼ȥեб륽եζ᤯Υĥ꡼¸Ȥ˾ޤĤޤꡢΥեƱǥ쥯ȥޤϥ֥ǥ쥯ȥ¸ȤȤǤ .LP -一部の開発者から、テストファイルおよびテンプレートファイルを対応するソースファイルの近くのソースツリーに保存したいという要望がありました。つまり、これらのソースファイルと同じディレクトリまたはサブディレクトリに保存したいということです。 +̤Υե̾ŪϤ Javadoc ġ¹Ԥϡƥȥե뤪ӥƥץ졼ȥետŪ˽ơʤ褦ˤ뤳ȤǤޤѥå̾ޤϥ磻ɥɤϤϡʲΥ롼˽äơΥƥȥե뤪ӥƥץ졼ȥե뤬ʤ褦ˤɬפޤ .LP +ƥȥեȥƥץ졼ȥեΰ㤤ϡƥȥեϡǥѥǽʥեǤΤФơƥץ졼ȥեϡǤϤʤȤǤƥץ졼ȥե.javaפǽ뤳ȤǤޤ .LP -個別のソースファイル名で明示的に渡して Javadoc ツールを実行する場合は、テストファイルおよびテンプレートファイルを意図的に除外して、処理されないようにすることができます。ただし、パッケージ名またはワイルドカードで渡す場合は、以下のルールに従って、これらのテストファイルおよびテンプレートファイルが処理されないようにする必要があります。 -.LP -.LP -テストファイルとテンプレートファイルの違いは、テストファイルは、正当でコンパイル可能なソースファイルであるのに対して、テンプレートファイルは、そうではないという点です。 ただし、テンプレートファイルも「.java」で終わることができます。 -.LP -.LP -\f3テストファイル\fP \- 開発者の多くは、あるパッケージのコンパイル可能で実行可能なテストファイルをそのパッケージのソースファイルと同じディレクトリに配置したいと考えています。しかしテストファイルは、名前なしパッケージなど、ソースファイルパッケージとは別のパッケージに属させたいとも考えています (そのため、テストファイルには package ステートメントがないか、またはソースとは別の package ステートメントがある)。このような状況では、コマンド行で指定されているソースのパッケージ名を指定してそのソースがドキュメント化されているときに、テストファイルは警告またはエラーを引き起こします。そのようなテストファイルはサブディレクトリに配置する必要があります。\f2com.package1\fP に追加する場合は、それらのテストファイルを、ハイフンが含まれるためパッケージ名としては無効になるサブディレクトリに配置します。 -.LP +\f3ƥȥե\fP \- ȯԤ¿ϡѥåΥѥǽǼ¹Բǽʥƥȥե򤽤ΥѥåΥեƱǥ쥯ȥ֤ȹͤƤޤƥȥեϡ̾ʤѥåʤɡեѥåȤ̤Υѥå°ȤͤƤޤ (Τᡢƥȥեˤ package ơȥȤʤޤϥȤ̤ package ơȥȤ)Τ褦ʾǤϡޥɹԤǻꤵƤ륽Υѥå̾ꤷƤΥɥȲƤȤˡƥȥեϷٹޤϥ顼ޤΤ褦ʥƥȥեϥ֥ǥ쥯ȥ֤ɬפޤȤС \f2com.package1\fP ΥեФƥȥեɲäϼΤ褦ˡϥեޤǤ뤿˥ѥå̾ȤƤ̵Ǥ褦ʥ֥ǥ쥯ȥˡΥե֤ޤ .nf \f3 .fl @@ -688,248 +403,189 @@ o .fl \fP .fi - .LP +ȡJavadoc ġǤϷٹʤ test ǥ쥯ȥ򥹥åפޤ .LP -こうすると、Javadoc ツールでは警告なしで test ディレクトリをスキップします。 +ƥȥե doc Ȥޤޤ硢Τ褦˥磻ɥɤޤƥȥե̾ϤƥƥȥեΥɥȤ褦ˡJavadoc ġ̸Ĥ˼¹ԤǤ褦ǤޤȤС \f2com/package1/test\-files/*.java ʤɤǤ\fP .LP -.LP -テストファイルに doc コメントが含まれる場合、次のようにワイルドカードを含んだテストソースファイル名で渡してテストファイルのドキュメントを生成するように、Javadoc ツールを別個に実行できるように設定できます。 たとえば、\f2com/package1/test\-files/*.java\fP などです。 -.LP -.LP -\f3ソースファイルのテンプレート\fP \- テンプレートファイルの名前は「.java」で終わることもありますが、テンプレートファイルはコンパイルできません。ソースディレクトリに保持したいソースファイルのテンプレートがある場合は、このファイル名にハイフン (\f2Buffer\-Template.java\fP など) やその他の不正な Java 文字を使用します。 こうすることで、処理されないようになります。これは、Javadoc ツールが処理するのは、「.java」接尾辞を除いた名前が 正規のクラス名であるソースファイルだけであるためです ( +\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ ( .na -\f2「識別子」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625参照)。 +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625) +.SH "ե" .LP -.SH "生成されるファイル" -.LP -.LP -デフォルトでは、javadoc ツールは、HTML 形式のドキュメントを生成する標準ドックレットを使います。このドックレットは、以下の種類のファイルを生成します。 それぞれの HTML ページは、個々のファイルに相当します。javadoc が生成するファイルの名前には、クラスやインタフェースの名前にちなんだものと、そうでないもの (\f2package\-summary.html\fP など) の 2 種類があります。後者のグループのファイル名には、前者のグループとファイル名が競合しないように、ハイフンが含まれています。 -.LP -.LP -\f3基本内容ページ\fP +ǥեȤǤϡjavadoc ġϡHTML ΥɥȤɸɥååȤȤޤΥɥååȤϡʲμΥեޤ줾 HTML ڡϡġΥեޤjavadoc ե̾ˤϡ饹䥤󥿥ե̾ˤʤΤȡǤʤ ( \f2package\-summary.html ʤ\fP) 2 बޤԤΥ롼פΥե̾ˤϡԤΥ롼פȥե̾礷ʤ褦ˡϥե󤬴ޤޤƤޤ .LP +\f3ƥڡ\fP .RS 3 .TP 2 o -ドキュメント化するクラスまたはインタフェースごとに 1 つの\f3クラスページまたはインタフェースページ\fP (\f2クラス名\fP\f2.html\fP) +ɥȲ륯饹ޤϥ󥿥եȤ 1 Ĥ\f3饹ڡޤϥ󥿥եڡ\fP (\f2饹̾\fP\f2.html\fP) .TP 2 o -ドキュメント化するパッケージごとに 1 つの\f3パッケージページ\fP (\f2package\-summary.html\fP)。Javadoc ツールは、ソースツリーのパッケージディレクトリ内に \f2package.html\fP または \f2package\-info.java\fP というファイルがあれば、その中の HTML テキストをこのページに組み入れます。 +ɥȲѥåȤ 1 Ĥ\f3ѥåڡ\fP (\f2package\-summary.html\fP)Javadoc ġϡ \f2package.html\fP ޤ \f2package\-info.java\fP Ȥ̾Υե HTML ƥȤ򤹤٤Ȥޤ .TP 2 o -パッケージセット全体に対して 1 つの\f3概要ページ\fP (\f2overview\-summary.html\fP)。これは、生成ドキュメントの先頭ページになります。Javadoc ツールは、\f2\-overview\fP オプションで指定されたファイル内の HTML テキストをこのページに組み入れます。このページのファイルは、javadoc に複数のパッケージ名を渡した場合にだけ作成されます。詳細は、「HTML フレーム」を参照してください。 +ѥåΥåΤФ 1 Ĥ\f3ץڡ\fP (\f2overview\-summary.html\fP)ϡɥȤƬڡˤʤޤJavadoc ġϡ\f2\-overview\fP ץǻꤵ줿ե HTML ƥȤ򤹤٤ȤޤΥڡΥեϡjavadoc ʣΥѥå̾Ϥˤޤܺ٤ϡHTML ե졼פ򻲾ȤƤ .RE - -.LP -.LP -\f3相互参照ページ\fP .LP +\f3߻ȥڡ\fP .RS 3 .TP 2 o -\f3パッケージのセット全体に対して 1 つのクラス階層ページ\fP (\f2overview\-tree.html\fP)。このページを表示するには、ナビゲーションバーの [概要] をクリックしてから、[階層ツリー] をクリックします。 +\f3ѥåΥåΤФ 1 ĤΥ饹إڡ\fP (\f2overview\-tree.html\fP)ΥڡɽˤϡʥӥС [] 򥯥åƤ顢[إĥ꡼] 򥯥åޤ .TP 2 o -\f3パッケージごとに 1 つのクラス階層ページ\fP (\f2package\-tree.html\fP)。 特定のパッケージ、クラス、またはインタフェースのページを表示してから、[階層ツリー] をクリックすると、そのパッケージのクラス階層が表示されます。 +\f3ѥåȤ 1 ĤΥ饹إڡ\fP (\f2package\-tree.html\fP)ɽˤϡΥѥå饹ޤϥ󥿥եΥڡ˰ư[إĥ꡼] 򥯥åƤΥѥåγؤɽޤ .TP 2 o -\f3パッケージごとに 1 つの [使用] ページ\fP (\f2package\-use.html\fP)と、\f3クラスおよびインタフェースごとに 1 つずつの [使用] ページ\fP (\f2class\-use/\fP\f2クラス名\fP\f2.html\fP)。このページには、特定のクラス、インタフェース、またはパッケージの一部を使っているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドについて記述されます。クラスまたはインタフェース A を例にして考えると、その [使用] ページには、A のサブクラス、A として宣言されたフィールド、A を返すメソッド、A 型のパラメータを持つメソッドおよびコンストラクタが表示されます。 このページを表示するには、まず、パッケージ、クラス、またはインタフェースのページに移動してから、ナビゲーションバーの [使用] リンクをクリックします。 +\f3ѥåȤ 1 Ĥ [] ڡ\fP (\f2package\-use.html\fP) ȡ饹ӥ󥿥եȤ 1 ĤĤ [] ڡ (\f2class\-use/\fP\f2饹̾\fP\f2.html\fP)ΥڡˤϡΥ饹󥿥եޤϥѥåΰȤäƤѥå饹᥽åɡ󥹥ȥ饯ӥեɤˤĤƵҤޤ饹ޤϥ󥿥ե A ˤƹͤȡ [] ڡˤϡA Υ֥饹A Ȥ줿եɡA ֤᥽åɡA Υѥ᡼ĥ᥽åɤӥ󥹥ȥ饯ɽޤ Υڡɽˤϡޤѥå饹ޤϥ󥿥եΥڡ˰ưƤ顢ʥӥС [] 󥯤򥯥åޤ .TP 2 o -\f3非推奨 API ページ\fP (\f2deprecated\-list.html\fP)。 推奨されないすべての名前が一覧表示されます。非推奨名は、一般に改良された API が存在するために使用が推奨されていない API の名前であり、通常、それに置き換わる名前が提示されています。非推奨 API は、将来の実装では削除される可能性があります。 +\f3侩 API ڡ\fP (\f2deprecated\-list.html\fP)侩ʤ̾٤ưɽޤ侩̾ϡ̤˲ɤ줿 API ¸ߤ뤿˻Ѥ侩Ƥʤ API ̾Ǥꡢ̾֤̾󼨤Ƥޤ侩 API ϡμǤϺǽޤ .TP 2 o -\f3定数フィールド値ページ\fP (\f2constant\-values.html\fP)。 static フィールドの値用です。 +\f3եͥڡ\fP (\f2constant\-values.html\fP)static եɤѤǤ .TP 2 o -\f3直列化されたフォームページ\fP (\f2serialized\-form.html\fP)。 直列化および外部化可能なクラスです。これらの各クラスには、直列化フィールドおよびメソッドに関する説明があります。これらの情報は、API を使う開発者ではなく、再実装を行う開発者に必要な情報です。ナビゲーションバーにこのページへのリンクはありませんが、直列化されたクラスに移動して、そのクラスの説明にある [関連項目] セクションで [直列化された形式] をクリックすると、この情報を取得できます。標準ドックレットは、直列化された形式のページを自動的に生成します。ここには、Serializable を実装する public または非 public のクラスが組み込まれており、さらに、\f2readObject\fP メソッド、\f2writeObject\fP メソッド、直列化されたフィールド、および \f2@serial\fP タグ、\f2@serialField\fP タグ、\f2@serialData\fP タグからのドキュメンテーションコメントが組み込まれています。直列化が可能な public クラスを除外するには、そのクラスまたはそのクラスが属するパッケージを \f2@serial exclude\fP タグで指定します。 直列化が可能な package private クラスを含めるには、そのクラスまたはそのクラスが属するパッケージを \f2@serial include\fP タグで指定します。バージョン 1.4 では、\f2\-private\fP オプションの指定なしで javadoc ツールを実行することにより、public クラスおよび private クラスの完全に直列化されたクラスを生成できます。 +\f3ľ󲽤줿ڡ\fP (\f2serialized\-form.html\fP)ľ󲽲ǽijǽʥ饹˴ؤѤǤγƥ饹ˤϡľ󲽥եɤӥ᥽åɤ˴ؤޤξϡAPI ȤȯԤǤϤʤƼԤȯԤɬפʾǤʥӥСˤΥڡؤΥ󥯤Ϥޤ󤬡ľ󲽤줿饹˰ươΥ饹ˤִϢܡץǡľ󲽤줿פ򥯥åȡξǤޤɸɥååȤľ󲽤줿ڡưޤSerializable 뤹٤ƤΥ饹 (public ޤ public) ޤޤۤ \f2readObject\fP ᥽åɤ \f2writeObject\fP ᥽åɡľ󲽤եɡ \f2@serial\fP\f2@serialField\fP\f2@serialData\fP Υɥơ󥳥Ȥޤޤޤpublic ľ󲽲ǽ饹ˤϡΥ饹 (ޤϤΥѥå) \f2@serial exclude\fP ǥޡޤpackage\-private ľ󲽲ǽ饹ޤˤϡΥ饹 (ޤϤΥѥå) \f2@serial include\fP ǥޡޤС 1.4 Ǥ \f2\-private\fP ץλʤ javadoc ġ¹Ԥ뤳Ȥˤꡢpublic 饹 private 饹δľ󲽤줿饹Ǥޤ .TP 2 o -\f3索引\fP (\f2index\-*.html\fP)。 すべてのクラス名、インタフェース名、コンストラクタ名、フィールド名、およびメソッド名が、アルファベット順に並んでいます。索引は、Unicode を扱えるように国際化されています。 1 つのファイルとして生成することも、先頭文字 (英語の場合 A 〜 Z) ごとに別々のファイルとして生成することもできます。 +\f3\fP (\f2index\-*.html\fP)٤ƤΥ饹󥿥ե󥹥ȥ饯եɡӥ᥽åɤ̾ե٥åȽ¤ǤޤϡUnicode 򰷤褦˹ݲƤޤ1 ĤΥեȤ뤳Ȥ⡢Ƭʸ (Ѹξ A Z) Ȥ̡ΥեȤ뤳ȤǤޤ .RE - -.LP -.LP -\f3サポートファイル\fP .LP +\f3ݡȥե\fP .RS 3 .TP 2 o -\f3ヘルプページ\fP (\f2help\-doc.html\fP)。 ナビゲーションバーや前述の各ページに関する説明が記載されています。\f2\-helpfile\fP を使うと、デフォルトのヘルプファイルに代わる独自のカスタムヘルプファイルを提供することもできます。 +\f3إץڡ\fP (\f2help\-doc.html\fP)ʥӥСҤγƥڡ˴ؤܤƤޤǥեȤΥإץեȼΥإץե󶡤ˤϡ\f2\-helpfile\fP Ѥޤ .TP 2 o -表示用の HTML フレームを作成する 1 つの \f3index.html ファイル\fP。このファイルは、フレーム付きの先頭ページを表示する場合にロードします。このファイル自体には、テキスト内容は含まれていません。 +ɽѤ HTML ե졼 1 Ĥ \f3index.html ե\fPΥեϡե졼դƬڡɽ˥ɤޤΥե뼫ΤˤϡƥƤϴޤޤƤޤ .TP 2 o -複数の\f3フレームファイル\fP (\f2*\-frame.html\fP)。 パッケージ、クラス、およびインタフェースのリストが含まれています。 HTML フレームを表示するときに使用されます。 +ʣ\f3ե졼ե\fP (\f2*\-frame.html\fP)ѥå饹ӥ󥿥եΥꥹȤޤޤƤޤHTML ե졼ɽȤ˻Ѥޤ .TP 2 o -\f3パッケージリスト\fPファイル (\f2package\-list\fP)。 \f2\-link\fP オプションおよび \f2\-linkoffline\fP オプションで使用されます。これは、HTML ファイルではなくテキストファイルであり、どのリンクからもアクセスできません。 +\f3ѥåꥹ\fPե (\f2package\-list\fP) \f2\-link\fP \f2\-linkoffline\fP ץǻѤޤϡHTML եǤϤʤƥȥեǤꡢɤΥ󥯤⥢Ǥޤ .TP 2 o -\f3スタイルシート\fPファイル (\f2stylesheet.css\fP)。 生成されるページ上のいくつかの要素について、色、フォントファミリ、フォントサイズ、フォントのスタイル、および配置を制御します。 +\f3륷\fPե (\f2stylesheet.css\fP)ڡΤĤǤˤĤơեȥեߥꡢեȥեȤΥ롢֤椷ޤ .TP 2 o -\f3doc\-files\fP ディレクトリ。 生成先ディレクトリにコピーするイメージ、サンプルコード、ソースコードなどのファイルがすべて格納されます。これらのファイルは、Javadoc ツールによって処理されないため、ファイル内に javadoc タグがあっても無視されます。このディレクトリは、ソースツリーの中にある場合にのみ生成されます。 +\f3doc\-files\fP ǥ쥯ȥꡣǥ쥯ȥ˥ԡ륤᡼ץ륳ɡɤʤɤΥե뤬٤ƳǼޤΥեϡJavadoc ġˤäƽʤᡢե avadoc äƤ̵뤵ޤΥǥ쥯ȥϡĥ꡼ˤˤΤޤ .RE - .LP +\f3HTML ե졼\fP .LP -\f3HTML フレーム\fP +Javadoc ġϡοޤ˼褦ˡ2 3 Ĥ HTML ե졼ޤ1 ĤΥѥåʤ (ޤϥѥåʤ) ϡѥåΰά뤳ȤˤäƺɬפʿΥե졼ޤñΥѥå°륽ե (*.java) ޤñΥѥå̾Ȥ javadoc ޥɤϤϡ¦˥饹ΰɽե졼 (C) 1 ĤޤJavadoc ʣΥѥå̾Ϥϡץڡ (Detail) ˲äơ٤ƤΥѥåɽ 3 Υե졼 (P) ޤγץڡΥե̾ϡ \f2overview\-summary.html Ǥ\fPäơΥեϡ2 İʾΥѥå̾Ϥˤޤ֥ե졼ʤץ󥯤򥯥å뤫overview\-summary.html ǽɽȡե졼άǤޤ .LP +HTML ե졼˴ƤʤϡΥե졼ӥ뤹ˤϡΥե졼ˡ֥եפʤФʤʤȤդƤե졼˥եͿˤϡΥե졼򥯥åޤΤ褦ˤȡ¿Υ֥饦ǤϡڡȤäƤΥե졼򥹥뤷ꡢְץ˥塼ޥɤȤäƤΥե졼Ǥޤ .LP -Javadoc ツールは、下の図に示すように、2 〜 3 つの HTML フレームを生成します。1 つのパッケージしかない場合 (またはパッケージがない場合) は、パッケージの一覧を省略することによって最低限必要な数のフレームを作成します。単一のパッケージに属するソースファイル (*.java) または単一のパッケージ名を引数として javadoc コマンドに渡す場合は、左側の列にクラスの一覧を表示するフレーム (C) 1 つだけが作成されます。Javadoc に複数のパッケージ名を渡した場合は、概要ページ (Detail) に加えて、すべてのパッケージを一覧表示する第 3 のフレーム (P) が作成されます。この概要ページのファイル名は、\f2overview\-summary.html\fP です。したがって、このファイルは、2 つ以上のパッケージ名を渡した場合にだけ作成されます。[フレームなし] リンクをクリックするか、overview\-summary.html を最初に表示すると、フレームを省略できます。 -.LP -.LP -HTML フレームに慣れていない場合は、特定のフレームを印刷およびスクロールするには、そのフレームに「フォーカス」がなければならないことに注意してください。フレームにフォーカスを与えるには、そのフレームをクリックします。このようにすると、多くのブラウザでは、矢印キーやページキーを使ってそのフレームをスクロールしたり、[印刷] メニューコマンドを使ってそのフレームを印刷したりできます。 -.LP -.nf -\f3 -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - |C| Detail | |P| Detail | -.fl - | | | | | | -.fl - | | | |\-| | -.fl - | | | |C| | -.fl - | | | | | | -.fl - | | | | | | -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - javadoc *.java javadoc java.lang java.awt -.fl -\fP -.fi - -.LP -.LP -HTML フレームが必要かどうかによって、次のどちらかのファイルを開始ページとしてロードします。 -.LP +HTML ե졼बɬפɤˤäơΤɤ餫Υե򳫻ϥڡȤƥɤޤ .RS 3 .TP 2 o -\f2index.html\fP (フレームあり) +\f2index.html\fP (ե졼ढ) .TP 2 o -\f2overview\-summary.html\fP (フレームなし) +\f2overview\-summary.html\fP (ե졼ʤ) .RE - .LP +\f3եι¤\fP .LP -\f3生成されるファイルの構造\fP +륯饹ե뤪ӥ󥿥եեϡJava ե뤪ӥ饹եƱǥ쥯ȥ곬ؤޤ1 ĤΥ֥ѥåˤĤ 1 ĤΥǥ쥯ȥꡢȤ¤ˤʤޤ .LP +ȤС \f2java.applet.Applet\fP 饹Ѥ줿ɥȤϡ \f2java/applet/Applet.html\fP ˳ǼޤΥǥ쥯ȥ̾ \f2apidocs\fP Ȥȡjava.applet ѥåΥե빽¤ϡβ˹ۤޤҤΤ褦ˡframeפȤ̾˴ޤեϡ٤ƺޤϺΥե졼ɽޤʳ HTML եϡ٤Ʊ¦Υե졼ɽޤ .LP -生成されるクラスファイルおよびインタフェースファイルは、Java ソースファイルおよびクラスファイルと同じディレクトリ階層に編成されます。1 つのサブパッケージにつき 1 つのディレクトリ、という構造になります。 -.LP -.LP -たとえば、\f2java.applet.Applet\fP クラスに対して生成されるドキュメントは、\f2java/applet/Applet.html\fP に格納されます。生成先のディレクトリの名前が \f2apidocs\fP だとすると、java.applet パッケージのファイル構造は、その下に構築されます。前述のように、「frame」という語を名前に含むファイルは、すべて左上または左下のフレームに表示されます。それ以外の HTML ファイルは、すべて右側のフレームに表示されます。 -.LP -.RS 3 - -.LP -.LP -注 \- 下の階層図で、ディレクトリは\f3太字\fP (\f3bold\fP) で示してあります。アスタリスク (\f2*\fP) は、javadoc への引数がパッケージ名ではなくソースファイル名 (*.java) である場合に省略されるファイルおよびディレクトリを示しています。また、引数がソースファイル名の場合は、\f2package\-list\fP は作成されますが、内容は空です。doc\-files ディレクトリは、ソースツリー内に存在する場合にのみ、生成先に作成されます。 -.LP -.RE + \- γؿޤǡǥ쥯ȥ\f3\fP (bold) ǼƤޤꥹ (\f2*\fP) ϡjavadoc ؤΰѥå̾ǤϤʤե̾ (*.java) Ǥ˾άե뤪ӥǥ쥯ȥ򼨤Ƥޤޤե̾ξ硢 \f2package\-list\fP ϺޤȤ϶Ǥdoc\-files ǥ쥯ȥϡĥ꡼¸ߤˤΤߡ˺ޤ .nf \f3 .fl .fl -\fP\f3apidocs\fP 最上位ディレクトリ +\fP\f3apidocs\fP Ǿ̥ǥ쥯ȥ .fl - index.html HTML フレームを設定する初期ページ + index.html HTML ե졼ꤹڡ .fl - * overview\-summary.html 全パッケージのリスト。 先頭に要約文がある + * overview\-summary.html ѥåΥꥹȡƬʸˤդ .fl - overview\-tree.html 全パッケージのクラス階層のリスト + overview\-tree.html ѥåΥ饹ؤΥꥹ .fl - deprecated\-list.html 全パッケージの推奨されない API のリスト + deprecated\-list.html ѥå侩 API Υꥹ .fl - constant\-values.html 全パッケージの static フィールドの値のリスト + constant\-values.html ѥå static եɤͤΥꥹ .fl - serialized\-form.html 全パッケージの直列化された形式のリスト + serialized\-form.html ѥåľ󲽤줿Υꥹ .fl - * overview\-frame.html 全パッケージのリスト。 左上のフレームに表示される + * overview\-frame.html ѥåΥꥹȡΥե졼ǻѤ .fl - allclasses\-frame.html 全パッケージの全クラスのリスト。 左下のフレームに表示される + allclasses\-frame.html ѥå饹ΥꥹȡΥե졼ǻѤ .fl - help\-doc.html これらのページの構成を示すユーザーヘルプを表示する + help\-doc.html Υڡι򼨤桼إפΥꥹ .fl - index\-all.html \-splitindex オプションなしで作成されたデフォルト索引 + index\-all.html \-splitindex ץꤷʤä˺ǥեȤκ .fl - \f3index\-files\fP \-splitindex オプションを指定して作成されたディレクトリ + \f3index\-files\fP \-splitindex ץꤷ˺ǥ쥯ȥ .fl - index\-<number>.html \-splitindex オプションを指定して作成された索引ファイル + index\-<number>.html \-splitindex ץꤷ˺ե .fl - package\-list パッケージ名のリスト。 外部参照を解決するためだけに使用される + package\-list ѥå̾ΥꥹȡȤ褹뤿˻Ѥ .fl - stylesheet.css フォント、色、配置を定義する HTML スタイルシート + stylesheet.css եȡ֤ HTML 륷 .fl - \f3java\fP パッケージディレクトリ + \f3java\fP ѥåǥ쥯ȥ .fl - \f3applet\fP サブパッケージディレクトリ + \f3applet\fP ֥ѥåǥ쥯ȥ .fl - Applet.html Applet クラスのページ + Applet.html Applet 饹Υڡ .fl - AppletContext.html AppletContext インタフェースのページ + AppletContext.html AppletContext 󥿥եΥڡ .fl - AppletStub.html AppletStub インタフェースのページ + AppletStub.html AppletStub 󥿥եΥڡ .fl - AudioClip.html AudioClip インタフェースのページ + AudioClip.html AudioClip 󥿥եΥڡ .fl - * package\-summary.html このパッケージのクラスのリスト。 先頭に要約文がある + * package\-summary.html ΥѥåΥ饹ΥꥹȡƬʸˤդ .fl - * package\-frame.html このパッケージのクラスのリスト。 左下のフレームに表示される + * package\-frame.html ΥѥåΥ饹ΥꥹȡΥե졼ǻѤ .fl - * package\-tree.html このパッケージのクラス階層のリスト + * package\-tree.html ΥѥåΥ饹ؤΥꥹ .fl - package\-use このパッケージが使用されている場所のリスト + package\-use ΥѥåѤƤΥꥹ .fl - \f3doc\-files\fP イメージやサンプルのファイルが格納されるディレクトリ + \f3doc\-files\fP 䥵ץեݻǥ쥯ȥ .fl - \f3class\-use\fP API が使用されている場所のページを格納するディレクトリ + \f3class\-use\fP API ѤƤΥڡݻǥ쥯ȥ .fl - Applet.html Applet クラスを使用するページ + Applet.html Applet 饹λѤ˴ؤڡ .fl - AppletContext.html AppletContext インタフェースを使用するページ + AppletContext.html AppletContext 󥿥եλѤ˴ؤڡ .fl - AppletStub.html AppletStub インタフェースを使用するページ + AppletStub.html AppletStub 󥿥եλѤ˴ؤڡ .fl - AudioClip.html AudioClip インタフェースを使用するページ + AudioClip.html AudioClip 󥿥եλѤ˴ؤڡ .fl - \f3src\-html\fP ソースコードディレクトリ + \f3src\-html\fP ɥǥ쥯ȥ .fl - \f3java\fP パッケージディレクトリ + \f3java\fP ѥåǥ쥯ȥ .fl - \f3applet\fP サブパッケージディレクトリ + \f3applet\fP ֥ѥåǥ쥯ȥ .fl - Applet.html Applet ソースコードのページ + Applet.html Applet ɤΥڡ .fl - AppletContext.html AppletContext ソースコードのページ + AppletContext.html AppletContext ɤΥڡ .fl - AppletStub.html AppletStub ソースコードのページ + AppletStub.html AppletStub ɤΥڡ .fl - AudioClip.html AudioClip ソースコードのページ + AudioClip.html AudioClip ɤΥڡ .fl .fi - -.LP .SS -生成される API 宣言 -.LP -.LP -Javadoc ツールは、それぞれのクラス、インタフェース、フィールド、コンストラクタ、およびメソッドの説明の最初に、その API 用の宣言を生成します。 この宣言は、その API 項目の宣言です。たとえば、\f2Boolean\fP クラスの宣言は、次のようになります。 + API .LP +Javadoc ġϡ줾Υ饹󥿥եեɡ󥹥ȥ饯ӥ᥽åɤκǽˡ API ѤޤȤС \f2Boolean\fP 饹ϡΤ褦ˤʤޤ .LP \f2public final class Boolean\fP .br @@ -937,29 +593,20 @@ Javadoc ツールは、それぞれのクラス、インタフェース、フィ .br \f2implements Serializable\fP .LP -.LP -また、\f2Boolean.valueOf\fP メソッドの宣言は、次のようになります。 -.LP +ޤ \f2Boolean.valueOf\fP ᥽åɤϡΤ褦ˤʤޤ .LP \f2public static Boolean valueOf(String s)\fP .LP +Javadoc ġǤϡ \f2public\fP \f2protected\fP \f2private\fP \f2abstract\fP \f2final\fP \f2static\fP \f2transient\fP \f2volatile\fP Ȥ߹ޤ \f2synchronized\fP \f2native\fP Ȥ߹ޤ󡣤Ԥ 2 ĤνҤϡξܺ٤ȸʤƤ뤿ᡢAPI ͤˤϴޤޤޤ .LP -Javadoc ツールは、修飾子 \f2public\fP、\f2protected\fP、\f2private\fP、\f2abstract\fP、\f2final\fP、\f2static\fP、\f2transient\fP、および \f2volatile\fP を組み込むことができますが、\f2synchronized\fP と \f2native\fP を組み込むことができません。これら後者の 2 つの修飾子は、実装の詳細と見なされているため、API 仕様には含まれません。 -.LP -.LP -API では、並行性のセマンティクスについて、キーワード \f2synchronized\fP に依存するのではなく、コメントによる主説明としてドキュメント化する必要があります。 たとえば、「1 つの \f2Enumeration\fP を複数のスレッドから並行して使用することはできない」などのコメントを記述します。ドキュメントには、これらのセマンティクスを実現する方法を記述するべきではありません。たとえば、\f2Hashtable\fP はスレッドに対して安全である必要がありますが、「エクスポートされるすべてのメソッドを同期化すればそれを実現できる」のようには指定する根拠はありません。バケットレベルで内部的に同期化する権利を残しておく必要があります。 そうすれば、より高度な並行性が提供されます。 -.LP -.SH "ドキュメンテーションコメント" -.LP -.LP -オリジナルの「ドキュメンテーションコメントの仕様」は、「関連項目」を参照してください。 +API Ǥϡ¹ޥƥˤĤơ \f2synchronized\fP ˰¸ΤǤϤʤȤμȤƥɥȲ٤Ǥ \f2ȤС1 Ĥ Enumeration \fP ʣΥåɤ¹ԤƻѤ뤳ȤϤǤʤפʤɤȵҤޤɥȤˤϡΥޥƥ¸ˡ򵭽Ҥ٤ǤϤޤ󡣤ȤС \f2Hashtable\fP ϥåɤФưǤɬפޤ֥ݡȤ뤹٤ƤΥ᥽åɤƱФ¸ǤפΤ褦ˤϻꤹ뺬Ϥޤ󡣥Хåȥ٥ŪƱ븢ĤƤɬפޤС٤¹󶡤ޤ +.SH "ɥơ󥳥" .LP +ꥸʥΡ֥ɥơ󥳥Ȥλ͡פϡִϢܡפ򻲾ȤƤ .SS -ソースコードへのコメントの挿入 -.LP -.LP -ソースコードの任意のクラス、インタフェース、メソッド、コンストラクタ、またはフィールドの宣言の前に、ドキュメンテーションコメント ("doc comments") を記述することができます。各パッケージにドキュメンテーションコメントを作成できます。 構文は若干異なりますが、概要にもドキュメンテーションコメントを作成できます。ドキュメンテーションコメントは、非公式に「Javadoc コメント」と呼ばれています (この用語は商標関連の使用法に違反)。ドキュメンテーションコメントは、コメントの始まりを示す文字列 \f2/**\fP と、コメントの終わりを示す文字列 \f2*/\fP の間にある文字で構成されます。行の先頭のアスタリスクは、各行に記述できます。 詳細は、以下で説明します。コメントのテキストは、複数行にわたって記述できます。 +ɤؤΥȤ .LP +ɤǤդΥ饹󥿥ե᥽åɡ󥹥ȥ饯ޤϥեɤˡɥơ󥳥 ("doc comments") 򵭽Ҥ뤳ȤǤޤƥѥå˥ɥơ󥳥ȤǤޤʸϼ㴳ۤʤޤפˤɥơ󥳥ȤǤޤɥơ󥳥ȤϡˡJavadoc ȡפȸƤФƤޤ (ѸϾɸϢλˡ˰ȿ)ɥơ󥳥ȤϡȤϤޤ򼨤ʸ \f2/**\fP ȡȤ򽪤򼨤ʸ \f2*/\fP δ֤ˤʸ鹽ޤԤƬΥꥹϡƹԤ˵ҤǤޤܺ٤ϡʲޤȤΥƥȤϡʣԤˤ錄äƵҤǤޤ .nf \f3 .fl @@ -973,26 +620,19 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -次のようにして 1 行に記述すると、スペースを節約できます。 .LP +Τ褦ˤ 1 Ԥ˵ҤȡڡǤޤ .nf \f3 .fl -/** This comment takes up only one line. */ +/** This comment takes up only one line.*/ .fl \fP .fi - .LP +\f3Ȥ\fP \- ɥơ󥳥Ȥϡ饹󥿥ե󥹥ȥ饯᥽åɡޤϥեɤľ֤ƤȤˤǧޤ饹㡢᥽åɤ㡢ӥեɤ򻲾ȤƤ᥽åɤΤ֤Ƥɥơ󥳥Ȥ̵뤵ޤjavadoc ġǤϡ1 ĤʸˤĤ 1 ĤΥɥơ󥳥Ȥǧޤ .LP -\f3コメントの配置\fP \- ドキュメンテーションコメントは、クラス、インタフェース、コンストラクタ、メソッド、またはフィールドの宣言の直前に置かれているときにだけ認識されます。 クラスの例、メソッドの例、およびフィールドの例を参照してください。メソッドの本体に置かれているドキュメンテーションコメントは無視されます。javadoc ツールでは、1 つの宣言文につき 1 つのドキュメンテーションコメントだけが認識されます。 -.LP -.LP -よくある間違いは、クラスのコメントとクラスの宣言の間に \f2import\fP 文を置いてしまうことです。このような記述はしないでください。 このようなクラスコメントは無視されます。 -.LP +褯ְ㤤ϡ饹Ȥȥ饹δ֤ \f2import\fP ʸ֤ƤޤȤǤΤ褦ʵҤϤʤǤΤ褦ʥ饹Ȥ̵뤵ޤ .nf \f3 .fl @@ -1014,11 +654,8 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -\f3ドキュメンテーションコメントは主説明のあとにタグセクションが続く\fP \- コメントの開始区切り文字である \f2/**\fP のあとからタグセクションまでが主説明になります。タグセクションは、先頭文字が \f2@\fP である行で定義される最初のブロックタグから始まります (行の先頭のアスタリスク、空白、および行の先頭の区切り文字 \f2/**\fP は除く)。主説明を記述せず、タグセクションだけのコメントを記述することもできます。主説明は、タグセクション以降に続けることはできません。タグの引数は、複数行にわたって記述できます。タグの数に制限はありません。 何回も記述できるタグと、1 回しか記述できないタグがあります。例えば、次の \f2@see\fP からタグセクションが始まります。 .LP +\f3ɥơ󥳥ȤϼΤȤ˥³ \- Ȥγ϶ڤʸǤ\fP \f2/**\fP ΤȤ饿ޤǤˤʤޤϡԤƬˤǽ \f2@\fP ǽΥ֥åϤޤޤ (ƬΥꥹƬζڤʸ \f2/**\fP Ͻ)򵭽ҤΥȤ򵭽Ҥ뤳ȤǤޤϡʹߤ³뤳ȤϤǤޤ󡣥ΰϡʣԤˤ錄äƵҤǤޤο¤Ϥޤ󡣲⵭ҤǤ륿ȡ1 󤷤ҤǤʤޤȤС \f2@see\fP ϡ򳫻ϤƤޤ .nf \f3 .fl @@ -1032,11 +669,8 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -\f3ブロックタグとインラインタグ\fP \- 「タグ」は、Javadoc が処理できる、ドキュメンテーションコメント内の特別なキーワードです。\f2@tag\fP のように記述するブロックタグ (「スタンドアロンタグ」とも呼ばれる) と、インラインタグ (\f2{@tag}\fP のように中括弧で囲んで記述) の 2 種類のタグがあります。ブロックタグが正しく解釈されるためには、行の先頭のアスタリスク、空白、区切り文字 (\f2/**\fP) を除いて、行の先頭に置かなければなりません。これは、テキスト内のそれ以外の位置で \f2@\fP 文字を使用しても、タグの開始としては解釈されないことを意味しています。行の最初に \f2@\fP 文字を使用してもタグとして解釈されないようにするには、HTML エンティティーの「\f2@\fP」を使用してください。それぞれのブロックタグには、対応付けられたテキストがあります。 このテキストは、タグのあとから、次のタグの前、またはドキュメンテーションコメントの最後までの間に記述されたテキスト (タグやコメント区切り文字を除く) です。この関連テキストは複数行にわたって記述できます。インラインタグは、テキストを記述できる場所であればどこにでも置くことができ、正しく解釈されます。次のコード例には、ブロックタグ \f2@deprecated\fP と、インラインタグ \f2{@link}\fP が含まれています。 .LP +\f3֥åȥ饤󥿥\fP \- \f2֥\fPϡJavadoc Ǥ롢ɥơ󥳥̤ʥɤǤˤ 2 ढޤ1 Ĥ @tag Τ褦ɽ֥å \f2(ɸॿפȤƤФ)\fP ⤦ 1 Ĥ {@tag} Τ褦̤ǰϤޤ륤饤󥿥 \f2Ǥ\fP֥åᤵ뤿ˤϡԤƬΥꥹ򡢶ڤʸ (\f2/**\fP) ơԤƬ֤ʤФʤޤ󡣤ϡ \f2@\fP ʸƥ̤ξǻѤˤϥγϤȤƲᤵʤȤ̣ƤޤԤƬ \f2@\fP ʸѤƤ⤽줬ᤵʤ褦ˤˤϡHTML ƥƥ \f2@\fP Ѥޤ줾Υ֥åˤϡбդ줿ƥȤޤΥƥȤϡΤȤ顢Υޤϥɥơ󥳥ȤκǸޤǤδ֤˵Ҥ줿ƥ (䥳ȶڤʸ) ǤδϢƥȤʣԤˤ錄äƵҤǤޤ饤󥿥ϡƥȤ򵭽ҤǤǤФɤˤǤ֤ȤǤᤵޤˤϥ֥å \f2@deprecated\fP ȥ饤󥿥 \f2{@link}\fP ޤޤƤޤ .nf \f3 .fl @@ -1048,17 +682,12 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - .LP +\f3Ȥ HTML ǵҤ\fP \- ƥȤ HTML ǵҤʤФʤޤ󡣤ϡHTML ΥƥƥȤɬפ뤳ȡ HTML ѤǤ뤳Ȥ̣ޤҤ HTML ΥСȤƤϡѤ֥饦ݡȤǤդΥСѤǤޤɸɥååȤϡǥ󥰥륷 (CSS) ȥե졼ޤᡢ٤Ƥʬ (ɥơ󥳥Ȱʳʬ) HTML 3.2 ˽򤷤ɤ褦˺Ƥޤե졼ॻåбΤᡢƥեˤϡHTML 4.0פȵҤޤ .LP -\f3コメントは HTML で記述する\fP \- テキストは HTML 形式で記述しなければなりません。 これは、HTML のエンティティーを使う必要があること、および HTML タグを使用できることを意味します。記述する HTML のバージョンとしては、使用するブラウザがサポートする任意のバージョンを使用できます。 標準ドックレットは、カスケーディングスタイルシート (CSS) とフレームを含め、すべての部分 (ドキュメンテーションコメント以外の部分) で HTML 3.2 に準拠したコードを生成するように作成されています。ただし、フレームセット対応のため、生成される各ファイルには「HTML 4.0」と記述されます。 -.LP -.LP -たとえば、より小さい (\f2<\fP) およびより大きい (\f2>\fP) という記号は\f2<\fP および \f2>\fP として記述する必要があります。同様に、アンパサンド (\f2&\fP) は、\f2&\fP と記述する必要があります。次の例では、ボールドの HTML タグ \f2<b>\fP を使っています。 -.LP -.LP -次に、ドキュメンテーションコメントを示します。 +ȤС꾮 (\f2<\fP) 椪Ӥ礭 (\f2>\fP) Υƥƥϡ \f2<\fP \f2>\fP ȵҤ٤ǤƱͤˡѥ (\f2&\fP) \f2&\fP ȵҤ٤ǤǤϥܡɤ HTML \f2<b>\fP Ƥޤ .LP +ˡɥơ󥳥Ȥ򼨤ޤ .nf \f3 .fl @@ -1072,20 +701,12 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - .LP +\f3ƬΥꥹ\fP \- javadoc ˤɥơ󥳥ȤβϻˡƹԤƬˤ륢ꥹ (\f2*\fP) ʸ˴ޤǽΥꥹ (\f2*\fP) ʸˤ䥿֤˴ޤС 1.4 ϡԤƬΥꥹάƤ⡢ƬζʸϺʤʤޤΤᡢľܥɥơ󥳥Ȥ \f2<PRE>\fP ˥ڡȤƤ⡢ǥȤݻޤ̾֥饦ϡʸ򥿥֤Χ˲ᤷޤǥȤεϺޡˤʤޤ (ڤʸ \f2/**\fP ޤ \f2<PRE>\fP ǤϤʤ) .LP -\f3行頭のアスタリスク\fP \- Javadoc は、ドキュメンテーションコメントを解析するときに、各行の先頭にあるアスタリスク (\f2*\fP) をすべて破棄します。 また、最初のアスタリスク (\f2*\fP) より前の空白とタブも破棄します。バージョン 1.4 からは、行の先頭のアスタリスクを省略しても、先頭の空白文字は削除されなくなりました。このため、コード例を直接ドキュメンテーションコメントの \f2<PRE>\fP タグ内にペーストしても、インデントが保持されます。通常、ブラウザは、空白文字をタブよりも一律に解釈します。インデントは区切り文字 \f2/**\fP または \f2<PRE>\fP タグよりも左寄りになります。 -.LP -.LP -\f3最初の文\fP \- 各ドキュメンテーションコメントの最初の文は、宣言されているエンティティーに関する簡潔かつ完全な要約文である必要があります。この「最初の文」は、直後にスペース、タブ、または改行が続く最初のピリオド (ロケールが英語に設定されている場合)、または最初のタグがある位置で終わります。最初の文は、Javadoc ツールによって HTML ページの最初にあるメンバーの概要の部分にコピーされます。 -.LP -.LP -\f3複数フィールドの宣言\fP \- Java では、1 つの文で複数のフィールドを宣言できます。 ただし、この文には、1 つのドキュメンテーションコメントしか記述できません。 そのコメントが、すべてのフィールドに対してコピーされます。したがって、フィールドごとにドキュメンテーションコメントを記述する必要がある場合は、各フィールドを別々の文で宣言しなければなりません。たとえば、次のドキュメンテーションコメントは、1 つの宣言として記述すると不適切です。 この場合は、宣言を 2 つに分けることをお勧めします。 -.LP -.RS 3 - +\f3ǽʸ\fP \- ƥɥơ󥳥ȤκǽʸϡƤ륨ƥƥ˴ؤʷ餫ĴʸǤɬפޤΡֺǽʸפϡľ˥ڡ֡ޤϲԤ³ǽΥԥꥪ (뤬ѸꤵƤ)ޤϺǽΥ֤ǽޤǽʸϡJavadoc ġˤä HTML ڡκǽˤСγפʬ˥ԡޤ .LP +\f3ʣեɤ\fP \- Java Ǥϡ1 ĤʸʣΥեɤǤޤʸˤϡ1 ĤΥɥơ󥳥ȤҤǤޤ󡣤ΥȤ٤ƤΥեɤФƥԡޤäơեɤȤ˥ɥơ󥳥Ȥ򵭽Ҥɬפϡƥեɤ̡ʸʤФʤޤ󡣤ȤСΥɥơ󥳥Ȥϡ1 ĤȤƵҤŬڤǤξϡ 2 Ĥʬ뤳Ȥ򤪴ᤷޤ .nf \f3 .fl @@ -1099,145 +720,105 @@ public int x, y; // Avoid this .fl \fP .fi -.RE - -.LP -.LP -上記のコードからは、次のようなドキュメントが生成されます。 -.LP -.RS 3 - .LP +嵭ΥɤϡΤ褦ʥɥȤޤ .nf \f3 .fl public int \fP\f3x\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP .nf \f3 .fl public int \fP\f3y\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP -.RE -.LP -\f3見出しタグはなるべく使用しない\fP \- メンバーに対してドキュメンテーションコメントを記述するときには、<H1> や <H2> などの HTML 見出しタグは、なるべく使わないでください。 Javadoc ツールは、完全に構造化されたドキュメントを作成するので、このような構造化タグが使われていると、生成ドキュメントの形式が悪影響を受けることがあります。ただし、クラスやパッケージのコメントでは、これらの見出しタグを使って独自の構造を組み立ててかまいません。 .LP +\f3ФϤʤ٤Ѥʤ\fP \- СФƥɥơ󥳥Ȥ򵭽ҤȤˤϡ<H1> <H2> ʤɤ HTML Фϡʤ٤ȤʤǤ Javadoc ġϡ˹¤줿ɥȤΤǡΤ褦ʹ¤ȤƤȡɥȤηƶ뤳Ȥޤ饹ѥåΥȤǤϡθФȤäȼι¤ȤΩƤƤޤޤ .SS -メソッドコメントの自動コピー -.LP -.LP -Javadoc ツールには、次の 2 つの場合に、クラスおよびインタフェースのメソッドコメントをコピーまたは「継承」する機能があります。コンストラクタ、フィールド、および入れ子のクラスは、ドキュメンテーションコメントを継承しません。 +᥽åɥȤμưԡ .LP +Javadoc ġˤϡ 2 Ĥξˡ饹ӥ󥿥եΥ᥽åɥȤ򥳥ԡޤϡַѾפ뵡ǽޤ󥹥ȥ饯եɡҤΥ饹ϡɥơ󥳥ȤѾޤ .RS 3 .TP 2 o -\f3自動的にコメントを継承して、見つからないテキストを埋める\fP \- 主説明、または \f2@return\fP タグ、\f2@param\fP タグ、\f2@throws\fP タグが、メソッドコメントで見つからない場合、Javadoc ツールは、オーバーライドしたメソッドまたは実装している場合はそのメソッドから、対応する主説明またはタグコメントを、次のアルゴリズムに従ってコピーします。 +\f3ưŪ˥ȤѾƸĤʤƥȤ\fP \- \f2@return\fP \f2@param\fP ޤ \f2@throws\fP ᥽åɥȤ˸Ĥʤ硢Javadoc ġϡС饤ɤޤϼƤϤоݤȤʤ᥽åɤ顢бޤϥȤ򡢼Υ르ꥺ˽äƥԡޤ .LP -厳密には、特定のパラメータの \f2@param\fP タグが見つからない場合、そのパラメータのコメントが、上位の継承階層のメソッドからコピーされます。特定の例外の \f2@throws\fP タグが見つからない場合、その例外が宣言されている場合にかぎり、その \f2@throws\fP タグがコピーされます。 +̩ˤϡΥѥ᡼ \f2@param\fP Ĥʤ硢Υѥ᡼ΥȤ̤ηѾؤΥ᥽åɤ饳ԡޤ㳰 \f2@throws\fP Ĥʤ硢㳰Ƥˤꡢ \f2@throws\fP ԡޤ .LP -この動作はバージョン 1.3 以前の動作とは対照的です。 これまでのバージョンでは、主説明またはタグが存在すれば、コメントは一切継承されませんでした。 +ưϥС 1.3 ưȤоŪǤޤǤΥСǤϡޤϥ¸ߤСȤϰڷѾޤǤ .TP 2 o -\f3{@inheritDoc} タグを持つコメントを明示的に継承する\fP \- インラインタグ \f2{@inheritDoc}\fP を、メソッドの主説明、または \f2@return\fP、\f2@param\fP、\f2@throws\fP タグコメントに挿入します。 継承した対応する主説明またはタグコメントは、その箇所にコピーされます。 +\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ .RE - .LP +ɥơ󥳥Ȥºݤ˥ԡѤˤϡѾ᥽åɤΥե뤬 \-sourcepath ǻꤷѥ֤Ƥ뤳ȤɬפˤʤޤޥɹԤǡ饹ѥåϤɬפϤޤ󡣤ϡ饹ɥȲ륯饹ǤʤФʤʤä 1.3.x Υ꡼Ȱۤʤޤ .LP -ドキュメンテーションコメントを実際にコピーに利用するには、継承したメソッドのソースファイルが \-sourcepath で指定したパスだけに置かれていることが必要になります。コマンド行で、クラスもパッケージも渡す必要はありません。この点は、クラスがドキュメント化されるクラスでなければならなかった 1.3.x 以前のリリースと異なります。 -.LP -.LP -\f3クラスおよびインタフェースからの継承\fP \- クラスおよびインタフェースから継承する次の 3 つの場合に、コメントの継承が行われます。 -.LP +\f3饹ӥ󥿥եηѾ\fP \- 饹ӥ󥿥եѾ뼡 3 ĤξˡȤηѾԤޤ .RS 3 .TP 2 o -クラスのメソッドがスーパークラスのメソッドをオーバーライドしている +饹Υ᥽åɤѡ饹Υ᥽åɤ򥪡С饤ɤƤ .TP 2 o -インタフェースのメソッドがスーパーインタフェースのメソッドをオーバーライドしている +󥿥եΥ᥽åɤѡ󥿥եΥ᥽åɤ򥪡С饤ɤƤ .TP 2 o -クラスのメソッドがインタフェースのメソッドを実装している +饹Υ᥽åɤ󥿥եΥ᥽åɤƤ .RE - .LP +ǽ 2 ĤΥ (᥽åɤС饤ɤƤ) ǤϡJavadoc ġϡΥȤѾƤ뤫ɤˤ餺С饤ɤƤ᥽åɤΥɥˡ֥С饤ɡפȤФС饤ɤƤ᥽åɤؤΥ󥯤񤭹ߤޤ .LP -最初の 2 つのケース (メソッドがオーバーライドしている場合) では、Javadoc ツールは、そのコメントが継承されているかどうかにかかわらず、オーバーライドしているメソッドのドキュメント内に「オーバーライド」という小見出しを生成し、オーバーライドされているメソッドへのリンクを書き込みます。 -.LP -.LP -3 つ目のケース (特定のクラスのメソッドがインタフェースのメソッドを実装している場合) では、javadoc ツールは、オーバーライドしているメソッドのドキュメント内に「定義」という小見出しを生成し、実装されているメソッドへのリンクを書き込みます。これは、コメントが継承されているかどうかにかかわりません。 -.LP -.LP -\f3メソッドの説明が継承されるアルゴリズム\fP \- あるメソッドにドキュメンテーションコメントが記述されていない場合、または {@inheritDoc} タグがある場合、Javadoc ツールは、次のようなアルゴリズムを使用して適切なコメントを検索します。 このアルゴリズムは、もっとも適切なドキュメンテーションコメントを検索できるように設計されており、スーパークラスよりもインタフェースが優先されるようになっています。 +3 ܤΥ (Υ饹Υ᥽åɤ󥿥եΥ᥽åɤƤ) Ǥϡjavadoc ġϡС饤ɤƤ᥽åɤΥɥˡפȤФƤ᥽åɤؤΥ󥯤񤭹ߤޤϡȤѾƤ뤫ɤˤޤ .LP +\f3᥽åɤѾ륢르ꥺ\fP \- ᥽åɤ˥ɥơ󥳥ȤҤƤʤ硢ޤ {@inheritDoc} 硢Javadoc ġϡΤ褦ʥ르ꥺѤŬڤʥȤ򸡺ޤ Υ르ꥺϡäȤŬڤʥɥơ󥳥Ȥ򸡺Ǥ褦߷פƤꡢѡ饹⥤󥿥եͥ褵褦ˤʤäƤޤ .RS 3 .TP 3 1. -直接に実装されている (または、拡張されている) インタフェースを、メソッドの宣言で implements (または extends) キーワードのあとに登場する順序で、1 つずつ調べる。このメソッドについて最初に見つかったドキュメンテーションコメントを採用する +ľܤ˼Ƥ (ޤϡĥƤ) 󥿥ե򡢥᥽åɤ implements (ޤ extends) ɤΤȤо줹ǡ1 ĤĴ٤롣Υ᥽åɤˤĤƺǽ˸Ĥäɥơ󥳥ȤѤ .TP 3 2. -手順 1 でドキュメンテーションコメントが見つからなかった場合は、直接実装されている (または、拡張されている) インタフェースのそれぞれに対して、このアルゴリズム全体を再帰的に適用する (その際の順序は、手順 1 でインタフェースを調べたときの順序と同じ) + 1 ǥɥơ󥳥ȤĤʤäϡľܼƤ (ޤϡĥƤ) 󥿥եΤ줾ФơΥ르ꥺΤƵŪŬѤ (κݤνϡ 1 ǥ󥿥եĴ٤ȤνƱ) .TP 3 3. -手順 2 でドキュメンテーションコメントが見つからなかった場合で、このクラスが Object 以外のクラスである (インタフェースではない) 場合は、次のように処理する + 2 ǥɥơ󥳥ȤĤʤäǡΥ饹 Object ʳΥ饹Ǥ (󥿥եǤϤʤ) ϡΤ褦˽ .RS 3 .TP 3 a. -スーパークラスにこのメソッドについてのドキュメンテーションコメントが記述されていれば、そのコメントを採用する +ѡ饹ˤΥ᥽åɤˤĤƤΥɥơ󥳥ȤҤƤСΥȤѤ .TP 3 b. -手順 3a でドキュメンテーションコメントが見つからなかった場合は、スーパークラスに対して、このアルゴリズム全体を適用する + 3a ǥɥơ󥳥ȤĤʤäϡѡ饹ФơΥ르ꥺΤŬѤ .RE .RE - +.SH "javadoc " .LP -.SH "javadoc タグ" -.LP -.LP -Javadoc ツールは、Java のドキュメンテーションコメント内に埋め込まれた特別なタグを解析します。これらのドキュメンテーションタグを使うと、書式の整った完全な API ドキュメントをソースコードから自動的に生成できます。タグは、単価記号 (\f2@\fP) で始まり、大文字と小文字が区別されます。 これらのタグは、定められたとおりの大文字と小文字を使用して記述する必要があります。タグは、行の先頭 (先行する空白と省略可能なアスタリスクは除く) に置かなければなりません。慣例として、同じ名前のタグは 1 か所にまとめて記述するようにします。たとえば、\f2@see\fP タグが複数ある場合は、すべてを 1 か所にまとめて記述します。 -.LP -.LP -タグには 2 つのタイプがあります。 +Javadoc ġϡJava Υɥơ󥳥ޤ줿̤ʥϤޤΥɥơ󥿥Ȥȡ񼰤ä API ɥȤ򥽡ɤ鼫ưŪǤޤϡ֥åȥޡ׵ (\f2@\fP) ǻϤޤꡢʸȾʸζ̤ޤϡʸȾʸѤơɽƤȤϤɬפޤϡԤƬ (ԤȾάǽʥꥹϽ) ֤ʤФʤޤ󡣴ȤơƱ̾Υ 1 ˤޤȤƵҤ褦ˤޤȤС \f2@see\fP Ϥ٤Ʊ֤ޤ .LP +ˤ 2 ĤΥפޤ .RS 3 .TP 2 o -\f3ブロックタグ\fP \- 主説明に続くタグセクション内にのみ記述可能。ブロックタグは、\f2@tag\fP の形式をとります。 +\f3֥å\fP \- ³ˤΤߵҲǽ֥åϡ \f2@tag\fP ηȤޤ .TP 2 o -\f3インラインタグ\fP \- コメントの主説明内またはブロックタグのコメント内に記述可能。インラインタグは、\f2{@tag}\fP のように中括弧で囲みます。 +\f3饤󥿥\fP \- ⡢ޤϥ֥åΥ˵Ҳǽ饤󥿥ϡ \f2{@tag}\fP.Τ褦̤ǰϤߤޤ .RE - .LP -.LP -今後のリリースで導入されるタグについては、 +Υ꡼Ƴ륿ˤĤƤϡ .na -\f2「Proposed Javadoc Tags」\fP @ +\f2Proposed Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください。 -.LP -.LP -現時点で有効なタグは、次のとおりです。 -.LP -.RS 3 - +http://java.sun.com/j2se/javadoc/proposed\-tags.html򻲾ȤƤ .LP +ͭʥϡΤȤǤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -1267,7 +848,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f3導入された JDK/SDK のバージョン\fP +\f3Ƴ줿 JDK/SDK ΥС\fP .br .di .nr a| \n(dn @@ -1278,7 +859,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3タグ\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@author\fP .if \n(80<\n(38 .nr 80 \n(38 @@ -1373,7 +954,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 1124 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 867 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1392,7 +973,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3タグ\fP\h'|\n(41u' +\&\h'|\n(40u'\f3\fP\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -1486,74 +1067,38 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .rm a+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-44 - -.LP -.RE -.LP -カスタムタグについては、\-tag オプションを参照してください。 .LP +ॿˤĤƤϡ\-tag ץ򻲾ȤƤ .RS 3 .TP 3 @author\ name\-text -\-author オプションが使われている場合、生成ドキュメントに「著者」の項目を追加し、指定された \f2name\-text\fP を書き込みます。1 つのドキュメンテーションコメントに複数の \f2@author\fP タグを含めることができます。1 つの \f2@author\fP タグに 1 つの名前を指定することも、1 つのタグに複数の名前を指定することもできます。前者の場合は、Javadoc ツールによって、名前と名前の間にコンマ (\f2,\fP) とスペースが挿入されます。後者の場合は、テキスト全体が、解析されることなく、生成ドキュメントにそのままコピーされます。したがって、コンマではなく、各言語に対応した名前区切り文字を使う必要があるときは、1 つのタグに複数の名前を指定してください。 +\-author ץ󤬻ѤƤ硢ꤵ줿 \f2name\-text\fP ޤ [] ȥɥȤɲäޤ1 ĤΥɥơ󥳥Ȥʣ \f2@author\fP ޤ뤳ȤǤޤ1 Ĥ \f2@author\fP 1 Ĥ̾ꤹ뤳Ȥ⡢ʣ̾ꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .RE - .LP -.RS 3 - -.LP -.LP -詳細については、「タグを使用できる場所」および +ܺ٤ˤĤƤϡ֥ѤǤפ .na -\f2@author タグのドキュメント\fP @ +\f2@author Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@authorを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author򻲾ȤƤ .LP -.LP - -.LP -.RE .RS 3 .TP 3 -@deprecated\ deprecated\-text -.RS 3 - -.LP -.LP -注: JDK 5.0 から、 -.na -\f2@Deprecated 注釈\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/deprecation.htmlを使って特定のプログラム要素を非推奨にできるようになりました。 -.LP +@deprecated\ deprecated\-text : @Deprecated ȤäΥץǤ侩ˤǤޤ .RE -.RE -.RS 3 - .LP + API ư³ޤ API Ѥ٤ǤϤʤȤ򼨤ȤɲäޤJavadoc ġϡ \f2deprecated\-text\fP ˰ưƥåˤ˥ܡɤηٹֿ侩ޤ󡣡פɲäޤΥϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .LP -この API は動作し続けますが、この API を使用するべきではないことを示すコメントを追加します。Javadoc ツールは、\f2deprecated\-text\fP を主説明の前に移動してイタリックにし、その前にボールドの警告「推奨されません。」を追加します。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 +\f2deprecated\-text\fP κǽʸǤϡʤȤ⡢ API 侩ʤʤäȡػѤ٤ API ɼԤ󼨤ɬפޤJavadoc ġϡκǽʸ򡢳ץȺ˥ԡޤΤȤʸǤϡ API 侩ʤͳ뤳ȤǤޤAPI ؤ \f2{@link}\fP ( Javadoc 1.2 ʹߤξ) ޤ٤Ǥ .LP -.LP -\f2deprecated\-text\fP の最初の文では、少なくとも、その API が推奨されなくなった時期と、代替使用するべき API を読者に提示する必要があります。Javadoc ツールは、この最初の文だけを、概要セクションと索引にコピーします。そのあとの文では、その API が推奨されない理由を説明することもできます。また、代わりの API を指し示す \f2{@link}\fP タグ (Javadoc 1.2 以降の場合) を含める必要があります。 次のように記述します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@deprecated タグのドキュメント\fP @ +\f2@deprecated Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecatedを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated򻲾ȤƤ .RS 3 .TP 2 o -Javadoc 1.2 以降では、\f2{@link}\fP タグを使用します。これにより、必要な場所にインラインでリンクを作成できます。例を示します。 -.RE - -.LP -.RS 3 - -.LP +Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤ǤޤȤС .nf \f3 .fl @@ -1567,106 +1112,71 @@ Javadoc 1.2 以降では、\f2{@link}\fP タグを使用します。これによ .fl \fP .fi -.RE - -.LP -.RS 3 .TP 2 o -Javadoc 1.1 では、各 \f2@deprecated\fP タグに対して \f2@see\fP タグ (インラインにはできない) を記述するのが標準の形式です。 +Javadoc 1.1 ξɸϡ \f2@see\fP (饤Բ) \f2@deprecated\fP Ȥ˺뤳ȤǤ .RE - .LP -.LP -推奨されないタグについての詳細は、 +侩ʤˤĤƤξܺ٤ϡ .na -\f2@deprecated タグ\fP @ +\f2@deprecated \fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htmlのドキュメントを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htmlΥɥȤ򻲾ȤƤ .LP -.LP - -.LP -.RE .RS 3 .TP 3 {@code\ text} -\f2<code>{@literal}</code>\fP と同等です。 -.RE - -.LP -.RS 3 - -.LP -.LP -テキストを HTML マークアップまたは入れ子になった javadoc タグとして解釈せずに、\f2text\fP を \f2code\fP フォントで表示します。これにより doc コメントでは、パラメータの種類 (\f2<Object>\fP)、不等号 (\f23 < 4\fP)、または矢印 (\f2<\-\fP) などで、HTML エンティティー (\f2<\fP および \f2>\fP) ではなく、通常の山括弧 (\f2<\fP および \f2>\fP) を使用できます。たとえば doc コメントのテキスト +\f2<code>{@literal}</code>\fP ƱǤ .LP +ƥȤ \f2HTML ޡå\fP ޤ \f2Ҥˤʤä javadoc \fP ȤƲ᤻ˡtext 򥳡ɥեȤɽޤΤᡢɥơ󥳥̾λ (\f2<\fP \f2>\fP) HTML ƥƥ (\f2<\fP \f2>\fP) ˻ѤǤޤȤСѥ᡼η (\f2<Object>\fP) (\f23 < 4\fP) (\f2<\-\fP) ʤɤǤȤСΥɥơ󥳥 .nf \f3 .fl \fP\f4{@code A<B>C}\fP\f3 .fl - + .fl \fP .fi - -.LP -.LP -は、生成された HTML ページで、次のようにそのまま表示されます。 .LP +ϡ줿 HTML ڡǡΤ褦ˤΤޤɽޤ .nf \f3 .fl \fP\f4A<B>C\fP\f3 .fl - + .fl \fP .fi - .LP +ܤ٤ϡ \f2<B>\fP ȤƲᤵ줺ΥեȤϥɥեȤˤʤ롢ȤǤ .LP -注目すべき点として、\f2<B>\fP は太字であると解釈されませんが、コードフォントになります。 +ɥեȤʤƱǽ¸ˤϡ\f2{@literal}\fP Ѥޤ .LP -.LP -コードフォントなしで同じ機能を実現するには、\f2{@literal}\fP を使用します。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@docRoot} -生成されるページから見た、生成ドキュメントの (生成先の) ルートディレクトリへの相対パスを表します。このタグは、著作権のページや会社のロゴなど、生成されるすべてのページから参照するファイルを組み込むときに便利です。通常は、各ページの下部から著作権のページにリンクします。 -.RE - -.LP -.RS 3 - -.LP -.LP -この \f2{@docRoot}\fP タグは、コマンド行からも、ドキュメンテーションコメントの中でも使用できます。このタグは、@return、@param、@deprecated などの任意のタグのテキスト部分を含む、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 +ڡ鸫ɥȤ () 롼ȥǥ쥯ȥؤХѥɽޤΥϡΥڡҤΥʤɡ뤹٤ƤΥڡ黲ȤեȤ߹ȤǤ̾ϡƥڡβΥڡ˥󥯤ޤ .LP + \f2{@docRoot}\fP ϡޥɹԤǤɥơ󥳥ǤѤǤޤΥϡ@return@param@deprecated ʤɤǤդΥΥƥʬޤࡢ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .RS 3 .TP 3 1. -コマンド行では、ヘッダー、フッター、またはボトムノートは次のように定義します。 +ޥɹԤǤϡإåեåޤϥܥȥΡȤϼΤ褦ޤ .nf \f3 .fl javadoc \-bottom '<a href="{@docRoot}/copyright.html">Copyright</a>' .fl - + .fl \fP .fi .LP -\- \f2{@docRoot}\fP をこのように利用する場合、一部の Makefile プログラムでは、中括弧 { } 文字をエスケープする必要があります。たとえば、Inprise MAKE バージョン 5.2 を Windows 上で実行する場合は、「\f2{{@docRoot}}\fP」のように、中括弧を二重にする必要があります。さらに、\f2\-bottom\fP などのオプションに対する引数を、単一引用符ではなく、二重引用符で囲む必要があります。 \f2href\fP 引数の値を囲む引用符は省略します。 + \- \f2{@docRoot}\fP Makefile ǤΤ褦Ѥ硢 Makefile ץǤϡ { } ʸ򥨥פɬפޤȤСInprise MAKE С 5.2 Windows Ǽ¹Ԥϡ \f2{{@docRoot}} Τ褦ˡ̤Ťˤɬפޤ\fPˡ \f2\-bottom\fP ʤɤΥץФñǤϤʤŰǰϤɬפ⤢ޤ ( \f2href\fP ΰϤϾά) .TP 3 2. -ドキュメンテーションコメントの中では、次のように使用します。 +ɥơ󥳥ȤǤϡΤ褦˻Ѥޤ .nf \f3 .fl @@ -1676,16 +1186,13 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htm .fl */ .fl - + .fl \fP .fi .RE - -.LP -.LP -このタグが必要な理由は、生成ドキュメントが、サブパッケージと同じ深さを持つ階層構造のディレクトリに格納されるからです。次に例を示します。 .LP +ΥɬפͳϡɥȤ֥ѥåƱijع¤Υǥ쥯ȥ˳Ǽ뤫Ǥ򼨤ޤ .nf \f3 .fl @@ -1695,201 +1202,118 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htm .fl \fP .fi - -.LP -.LP -次のように解決されます。 .LP +Τ褦˲褵ޤ .nf \f3 .fl - <a href="../../copyright.html"> java/lang/Object.java の場合 + <a href="../../copyright.html"> java/lang/Object.java ξ .fl .fl \fP .fi - -.LP -.LP -および .LP + .nf \f3 .fl - <a href="../../../copyright.html"> java/lang/ref/Reference.java の場合 + <a href="../../../copyright.html"> java/lang/ref/Reference.java ξ .fl .fl \fP .fi - .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @exception\ class\-name\ description -\f2@exception\fP タグは、\f2@throws\fP タグと同義です。 -.RE - +\f2@exception\fP \f2@throws\fP ƱǤ .LP -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@inheritDoc}\ -もっとも近い継承可能なクラスまたは実装可能なインタフェースから、このタグの現在のドキュメンテーションコメントに、ドキュメントを継承 (コピー) します。この機能により、より汎用的なコメントを継承ツリーの上位に記述し、コピーしたテキストを使って記述することができます。 -.RE - -.LP -.RS 3 - -.LP -.LP -このタグは、ドキュメンテーションコメントの次の位置でのみ有効です。 +äȤᤤѾǽʥ饹ޤϼǽʥ󥿥ե顢ΥθߤΥɥơ󥳥ȤˡɥȤѾ (ԡ) ޤεǽˤꡢŪʥȤѾĥ꡼ξ̤˵ҤԡƥȤȤäƵҤ뤳ȤǤޤ .LP +Υϡɥơ󥳥Ȥμΰ֤ǤΤͭǤ .RS 3 .TP 2 o -メソッドの主説明ブロック内。この場合、主説明は、上位階層のクラスまたはインタフェースからコピーされる +᥽åɤμ֥å⡣ξ硢ϡ̳ؤΥ饹ޤϥ󥿥ե饳ԡ .TP 2 o -メソッドの @return、@param、@throws タグのテキスト引数内。この場合、タグテキストは、上位階層の対応するタグからコピーされる +᥽åɤ @return@param@throws ΥƥȰ⡣ξ硢ƥȤϡ̳ؤб륿饳ԡ .RE - .LP +ѾؤǥȤ򸫤Ĥˡ˴ؤΤˤĤơ֥᥽åɥȤμưԡפ򻲾ȤƤΥĤʤ硢Ȥϡ롼˱ơưŪ˷Ѿ뤫ɤޤޤ .LP -継承階層でコメントを見つける方法に関する正確な説明について、「メソッドコメントの自動コピー」を参照してください。このタグが見つからない場合、コメントは、この節で説明するルールに応じて、自動的に継承されるかどうかが決まります。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 -{@link\ \ package.class#member\ \ label}\ -表示テキスト \f2label\fP とのインラインリンクを挿入します。 \f2label\fP は、参照クラスの指定されたパッケージ、クラス、またはメンバーの名前のドキュメンテーションを指し示します。このタグは、@return、@param、@deprecated などの任意のタグのテキスト部分を含む、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 -.RE - +{@link\ package.class#member\ label} +ɽƥ \f2label\fP ȤΥ饤󥯤ޤlabel ϡȥ饹λꤵ줿ѥå饹ޤϥС̾ΥɥơؤޤΥϡ@return@param@deprecated ʤɤǤդΥΥƥʬޤࡢ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .LP -.RS 3 - +Υ \f2@see\fP ˤ褯Ƥޤɤ⡢\f2package.class\fP\f2#\fP\f2member\fP \f2label\fP λȤλƱǡͭʹʸޤäƱǤ礭ʰ㤤ϡ \f2{@link}\fP Ǥϡ[Ϣ] ˥󥯤֤ˡ饤Υ󥯤ȤǤޤ饤ƥȤΤۤʬȶ̤뤿ˡ \f2{@link}\fP κǽȺǸ̤򵭽Ҥޤ٥ǡ}פȤɬפϡHTML ƥƥΡ}פȤޤ .LP +1 ʸǻѲǽ \f2{@link}\fP ο¤Ϥޤ󡣤Υϡɥơ󥳥Ȥμʬޤ @deprecated@return@param ʤɤǤդΥΥƥʬǻȤȤǤޤ .LP -このタグは、\f2@see\fP タグとよく似ています。 どちらのタグも、\f2package.class\fP\f2#\fP\f2member\fP および \f2label\fP の参照の仕方が同じで、有効な構文もまったく同じです。大きな違いは、\f2{@link}\fP は、リンクを [関連項目] セクションに置くのではなく、インラインリンクを生成するということです。また、インラインテキストのほかの部分と区別するために、\f2{@link}\fP タグの最初と最後に中括弧を記述します。ラベルの中で「}」を使う必要がある場合は、HTML エンティティーの「}」を使います。 -.LP -.LP -1 つの文の中で使用できる \f2{@link}\fP タグの数に制限はありません。このタグは、ドキュメンテーションコメントの主説明部分、または @deprecated、@return、@param などの任意のタグのテキスト部分で使うことができます。 -.LP -.LP -たとえば、次のコメントでは \f2getComponentAt(int, int)\fP メソッドを参照しています。 -.LP +ȤСΥȤǤ \f2getComponentAt(int, int)\fP ᥽åɤ򻲾ȤƤޤ .nf \f3 .fl -{@link #getComponentAt(int, int) getComponentAt} メソッドを使用します。 +{@link #getComponentAt(int, int) getComponentAt} ᥽åɤѤޤ .fl .fl \fP .fi - -.LP -.LP -標準ドックレットでは、上記のコメントから次の HTML が生成されます (このコメントが同じパッケージの別のクラスを参照している場合)。 .LP +ɸɥååȤǤϡ嵭ΥȤ鼡 HTML ޤ (ΥȤƱѥå̤Υ饹򻲾ȤƤ) .nf \f3 .fl -<a href="Component.html#getComponentAt(int, int)">getComponentAt</a> メソッドを使用します。 +<a href="Component.html#getComponentAt(int, int)">getComponentAt</a> ᥽åɤѤޤ .fl .fl \fP .fi - -.LP -.LP -この HTML は、Web ページ上では次のように表示されます。 .LP + HTML ϡWeb ڡǤϼΤ褦ɽޤ .nf \f3 .fl -getComponentAt メソッドを使用します。 +getComponentAt ᥽åɤѤޤ .fl .fl \fP .fi - .LP +\f2{@link}\fP ĥƥɥȲʤ饹ؤΥ󥯤ǽˤˤϡ\f2\-link\fP ץѤޤ .LP -\f2{@link}\fP を、ドキュメント化の対象にしていないクラスにまで拡張するには、\f2\-link\fP オプションを使用します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2{@link} タグのドキュメント\fP @ +\f2{@link} Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}を参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@linkplain\ package.class#member\ label} -リンクのラベルがコードフォントではなくプレーンテキストで表示される点以外は \f2{@link}\fP と同じです。ラベルがプレーンテキストで記述されていると便利です。例: -.RE - -.LP -.RS 3 - -.LP +󥯤Υ٥뤬ɥեȤǤϤʤץ졼ƥȤɽʳ \f2{@link}\fP ƱǤ٥뤬ץ졼ƥȤǵҤƤǤ򻲾ȤƤ: .nf \f3 .fl - {@linkplain add() the overridden method} を参照してください。 + {@linkplain add() the overridden method} 򻲾ȤƤ .fl .fl \fP .fi - .LP +ϰʲΤ褦ɽޤ .LP -これは以下のように表示されます。 +the overridden method 򻲾ȤƤ .LP -.RS 3 - -.LP -.LP -the overridden method を参照してください。 -.LP -.RE -.LP - -.LP -.RE -.RS 3 .TP 3 {@literal\ text} -テキストを HTML マークアップまたは入れ子になった javadoc タグとして解釈せずに、\f2text\fP を表示します。これにより doc コメントでは、パラメータの種類 (\f2<Object>\fP)、不等号 (\f23 < 4\fP)、または矢印 (\f2<\-\fP) などで、HTML エンティティー (\f2<\fP および \f2>\fP) ではなく、通常の山括弧 (\f2<\fP および \f2>\fP) を使用できます。たとえば doc コメントのテキスト -.RE - -.LP -.RS 3 - -.LP +ƥȤ HTML ޡåפޤҤˤʤä javadoc ȤƲ᤻ˡ \f2text\fP ɽޤΤᡢɥơ󥳥̾λ (\f2<\fP \f2>\fP) HTML ƥƥ (\f2<\fP \f2>\fP) ˻ѤǤޤȤСѥ᡼η (\f2<Object>\fP) (\f23 < 4\fP) (\f2<\-\fP) ʤɤǤȤСΥɥơ󥳥 .nf \f3 .fl @@ -1899,40 +1323,22 @@ the overridden method を参照してください。 .fl \fP .fi - .LP +ϡ줿 HTML ڡϥ֥饦ǼΤ褦ˤΤޤɽޤ .LP -は、生成された HTML ページはブラウザで次のようにそのまま表示されます。 +\f2\ \ \ \ \ \fPA<B>C .LP +ܤ٤ϡ \f2<B>\fP ȤƲᤵ줺ΥեȤϥɥեȤˤʤ롢ȤǤ .LP -\f2\ \ \ \ \ \fPA<B>C +ɥեȤƱǽ¸ˤϡ\f2{@code}\fP Ѥޤ .LP -.LP -注目すべき点として、\f2<B>\fP は太字であると解釈されません (コードフォントにならない)。 -.LP -.LP -コードフォントで同じ機能を実現するには、\f2{@code}\fP を使用します。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @param\ parameter\-name description -指定した \f2parameter\-name\fP と指定した \f2description\fP を使用してパラメータを「Parameters」セクションに追加します。doc コメントを記述するときは、\f2description\fP を複数行に続けることができます。このタグは、メソッド、コンストラクタ、またはクラスの doc コメント内でのみ有効です。 -.RE - +ꤵ줿 \f2parameter\-name\fP ΤȤ˻ꤵ줿 \f2description\fP ³ѥ᡼[ѥ᡼] ɲäޤɥơ󥳥Ȥ򵭽ҤȤˤϡ \f2description\fP ʣԤˤ錄äƵҤ뤳ȤǤޤΥϡ᥽åɡ󥹥ȥ饯ޤϥ饹 doc ǤΤͭǤ .LP -.RS 3 - -.LP -.LP -\f2parameter\-name\fP は、メソッドまたはコンストラクタでのパラメータの名前か、クラス、メソッドまたはコンストラクタのタイプパラメータの名前になります。山括弧でパラメータ名を囲むと、型パラメータを使用することを指定します。 -.LP -.LP -クラスの型パラメータの例: +\f2parameter\-name\fP ϡ᥽åɤޤϥ󥹥ȥ饯ǤΥѥ᡼̾饹᥽åɤޤϥ󥹥ȥ饯Υץѥ᡼̾ˤʤޤ̤ǥѥ᡼̾Ϥȡѥ᡼Ѥ뤳Ȥ ꤷޤ .LP +饹ηѥ᡼: .nf \f3 .fl @@ -1950,11 +1356,8 @@ the overridden method を参照してください。 .fl \fP .fi - -.LP -.LP -メソッドの型パラメータの例: .LP +᥽åɤηѥ᡼: .nf \f3 .fl @@ -1978,125 +1381,87 @@ the overridden method を参照してください。 .fl \fP .fi - .LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@param タグのドキュメント\fP @ +\f2@param Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@paramを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @return\ description -[戻り値] セクションを追加して、\f2description\fP のテキストを書き込みます。このテキストでは、戻り値の型と、取り得る値の範囲について記述する必要があります。このタグは、メソッドのドキュメンテーションコメントでのみ有効です。 -.RE - +[] ɲäơ \f2description\fP ΥƥȤ񤭹ߤޤΥƥȤǤϡͤηȡͤϰϤˤĤƵҤɬפޤΥϡ᥽åɤΥɥơ󥳥ȤǤΤͭǤ .LP -.RS 3 - -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@return タグのドキュメント\fP @ +\f2@return Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@returnを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 -@see\ \ reference -[関連項目] 見出しを追加し、\f2reference\fP を指すリンクか、またはテキストエントリを書き込みます。1 つのドキュメンテーションコメントには、任意の数の \f2@see\fP タグを指定できます。 すべての \f2@see\fP タグの内容は、同じの見出しの下にグループ化されます。\f2@see\fP タグには、次の 3 種類の形式があります。 もっともよく使われるのは、3 番目の形式です。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。パッケージ、クラス、またはメンバーに対するインラインリンクを文中に挿入する方法は、\f2{@link}\fP を参照してください。 +@see\ reference +ִϢܡ׸Фɲä \f2reference ؤ󥯤ޤϥƥȥȥ񤭹ߤޤ\fPɥơ󥳥ȤˤǤդο \f2@see\fP ޤ뤳ȤǤޤϤ٤ƱФβ˥롼ײޤ \f2@see\fP ˤϡ 3 ηޤäȤ褯ȤΤϡ3 ܤηǤΥϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤѥå饹ޤϥСФ륤饤󥯤ʸˡϡ\f2{@link}\fP 򻲾ȤƤ .RS 3 .TP 3 @see "string" -\f2string\fP のテキストエントリを追加します。リンクは生成されません。\f2string\fP は、書籍または URL ではアクセスできない情報の参照先です。Javadoc ツールは、最初の文字が二重引用符 (\f2"\fP) かどうかを調べて、この形式をほかの 2 つの形式と区別します。例を示します。 +\f2string Υƥȥȥɲäޤ\fP󥯤ޤ \f2string\fP ϡҤޤ URL ǤϥǤʤλǤJavadoc ġϡǽʸŰ (\f2"\fP) ɤĴ٤ơηۤ 2 Ĥηȶ̤ޤȤС .nf \f3 .fl @see "The Java Programming Language" .fl - -.fl -\fP -.fi -.LP -これは次のようなテキストを生成します。 -.RE -.RS 3 -.RS 3 - -.LP -.RS 3 -.TP 3 -関連項目: -The Java Programming Language -.RE - -.LP -.RE -.RE -.TP 3 -@see <a href="URL#value">label</a> -\f2URL\fP#\f2value\fP で定義されたとおりにリンクを追加します。\f2URL\fP#\f2value\fP は、相対 URL または絶対 URL です。Javadoc ツールは、最初の文字が「より小さい」記号 (\f2<\fP) かどうかを調べて、この形式をほかの 2 つの形式と区別します。例を示します。 -.nf -\f3 -.fl - @see <a href="spec.html#section">Java Spec</a> -.fl .fl \fP .fi .LP -これは次のようなリンクを生成します。 +ϼΤ褦ʥƥȤޤ +.RE +.RE +.RS 3 +.RS 3 .RS 3 .RS 3 .TP 3 -関連項目: +Ϣ: +The Java Programming Language +.RE +.RE +.TP 3 +@see <a href="URL#value">label</a> +\f2URL\fP#\f2value\fP 줿Ȥ˥󥯤ɲäޤ \f2URL\fP#\f2value\fP URL ޤ URL ǤJavadoc ġϡǽʸ֤꾮׵ (\f2<\fP) ɤĴ٤ơηۤ 2 Ĥηȶ̤ޤȤС +.nf +\f3 +.fl + @see <a href="spec.html#section">Java Spec</a> +.fl +\fP +.fi +ϼΤ褦ʥ󥯤ޤ +.RS 3 +.TP 3 +Ϣ: Java Spec .RE -.RE -.RE -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @see\ package.class#member\ label -指定された名前を持つ、参照されている Java 言語のメンバーについてのドキュメントを指すリンクを、表示テキスト \f2label\fP とともに追加します。\f2label\fP は省略可能です。 \f2label\fP を省略すると、リンク先のメンバーの名前が適切に短縮されて表示されます。 「名前が表示される方法」を参照してください。\-noqualifier を使用すると、表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストを指定する場合に使います。 +ĻΥƥ \f2label\fP ĥ󥯤ɲäޤΥ󥯤ϡȤʤ롢ꤵ줿 Java ̾Υɥơؤޤ \f2label\fP ϾάǽǤlabel άȡΥС̾Ŭڤṳ̂ɽޤ ̾ɽˡפ򻲾ȤƤ\-noqualifier ѤȡɽƥȤѥå̾Ū˺ޤ٥ϡưɽƥȤȤϰۤʤɽƥȤꤹ˻Ȥޤ .LP -バージョン 1.2 だけは、ラベルではなく、名前が <code> HTML タグ内に自動的に表示されます。 1.2.2 からは、ラベルを使用するか、しないかにかかわらず、<code> は常に表示テキストを囲むかたちで、含まれます。 +С 1.2 ϡ٥ǤϤʤ̾ <code> HTML ˼ưŪɽޤ 1.2.2 ϡ٥Ѥ뤫ʤˤ餺<code> ϾɽƥȤϤफǡޤޤޤ .LP .RS 3 .TP 2 o -\f4package.class\fP\f4#\fP\f4member\fP には、参照されている任意の有効なプログラム要素の名前を指定します。 つまり、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、またはフィールドの名前です。 ただし、メンバー名ーの前のドットは、シャープ記号 (\f2#\fP) で置き換えます。\f2class\fP は、任意のトップレベルまたは入れ子にされたクラスまたはインタフェースを表します。\f2member\fP は、任意のコンストラクタ、メソッドまたはフィールド (入れ子にされたクラスまたはインタフェースではない) を表します。指定した名前が、ドキュメント化されているクラスに含まれている場合、Javadoc ツールは、その名前へのリンクを自動的に作成します。外部参照クラスへのリンクを作成するには、\f2\-link\fP オプションを使います。参照クラスに属していない名前のドキュメントを参照するには、ほかの 2 つの形式の \f2@see\fP タグを使います。この引数については、このあとの「名前の指定」で詳しく説明します。 +\f4package.class\fP\f4#\fP\f4member\fP ˤϡȤƤǤդͭʥץǤ̾ꤷޤĤޤꡢѥå饹󥿥ե󥹥ȥ饯᥽åɡޤϥեɤ̾ǤС̾ΥɥåȤϡ㡼׵ (\f2#\fP) ֤ޤ \f2class\fP ϡǤդΥȥåץ٥ޤҤˤ줿饹ޤϥ󥿥եɽޤ \f2member\fP ϡǤդΥ󥹥ȥ饯᥽åɤޤϥե (Ҥˤ줿饹ޤϥ󥿥եǤϤʤ) ɽޤꤷ̾ɥȲƤ륯饹˴ޤޤƤ硢Javadoc ġϡ̾ؤΥ󥯤ưŪ˺ޤȥ饹ؤΥ󥯤ˤϡ\f2\-link\fP ץȤޤΥ饹°Ƥʤ̾Υɥơ򻲾ȤˤϡĤ 2 Ĥ \f2@see\fP ΤΤɤ餫ѤޤΰˤĤƤϡΤȤΡ̾λפǾܤޤ .TP 2 o -\f4label\fP は、省略可能なテキストで、リンクのラベルとして表示されます。\f2label\fP には空白を含めることができます。\f2label\fP を省略すると、\f2package.class.member\fP が、現在のクラスおよびパッケージに応じて適切に短縮されて表示されます。 「名前が表示される方法」を参照してください。 +\f4label\fP ϡάǽʥƥȤǡ󥯤Υ٥Ȥɽޤ \f2label\fP ˤ϶ޤ뤳ȤǤޤ \f2label\fP άȡ\f2package.class.member\fP ߤΥ饹ӥѥå˱Ŭڤṳ̂ɽޤ̾ɽˡפ򻲾ȤƤ .TP 2 o -空白文字は、\f2package.class\fP\f2#\fP\f2member\fP と \f2label\fP の間の区切り文字です。括弧の内側の空白文字はラベルの先頭とは解釈されないため、メソッドのパラメータ間に空白文字を入れてもかまいません。 +򤬡 \f2package.class\fP\f2#\fP\f2member\fP \f2label\fP δ֤ζڤʸˤʤޤ̤¦ζʸϥ٥ƬȤϲᤵʤᡢ᥽åɤΥѥ᡼֤˶ʸƤ⤫ޤޤ .RE .LP -\f3例\fP \- この例では、\f2Character\fP クラスにある \f2@see\fP タグが、\f2String\fP クラスの \f2equals\fP メソッドを参照しています。タグには、名前 \f2String#equals(Object)\fP とラベル \f2equals\fP の両方の引数が含まれています。 -.RS 3 - -.LP +\f3\fP \- Ǥϡ \f2@see\fP ( \f2Character\fP 饹) String 饹 \f2equals\fP ᥽å \f2򻲾\fP ƤޤΥˤ̾\f2String#equals(Object)\fPפȥ٥\f2equals\fPפξΰޤޤƤޤ .nf \f3 .fl @@ -2106,62 +1471,33 @@ o .fl */ .fl - -.fl \fP .fi -.RE -.LP -標準ドックレットは、次のような HTML を生成します。 -.RS 3 - -.LP +ɸɥååȤϡΤ褦 HTML ޤ .nf \f3 .fl <dl> .fl -<dt><b>See also:</b> +<dt><b>See Also:</b> .fl <dd><a href="../../java/lang/String#equals(java.lang.Object)"><code>equals<code></a> .fl </dl> -.fl - .fl \fP .fi -.RE -.LP -これは、ブラウザでは次のように表示され、ラベルがリンクテキストになります。 -.RS 3 +ϡ֥饦ǤϼΤ褦ɽ졢٥뤬󥯥ƥȤˤʤޤ .RS 3 .TP 3 -関連項目: +Ϣ: equals .RE -.RE -.RE - .LP -.RS 3 - +\f3̾λ\fP \- \f2package.class\fP\f2#\fP\f2member\fP Ȥ̾ϡ \f2java.lang.String#toUpperCase()\fP Τ褦ʴ̾ˤ뤳Ȥ⡢ \f2String#toUpperCase()\fP \f2#toUpperCase()\fP Τ褦̾ˤ뤳ȤǤޤ̾ꤵƤʤ硢Javadoc ġϡJava ѥ̾θǤ̾򸡺ޤܺ٤ϡΤȤΡ@see θפ򻲾ȤƤ̾ˤϡ᥽åɤʣΰδ֤ʤɡ̤¦Ǥжޤ뤳ȤǤޤ .LP +ʬŪ˻פû̾ꤹ뤳ȤϡϤʸ뤳Ȥ䡢ɤɤߤ䤹ʤ뤳ȤǤɽˡޤޤʷ̾򼨤ޤǡ \f2Class\fP ˤϥ饹ޤϥ󥿥ե \f2Type\fP ˤϥ饹󥿥ե󡢤ޤϴܥǡ \f2method\fP ˤϥ᥽åɤޤϥ󥹥ȥ饯򡢤줾Ǥޤ .LP - -.LP -.LP -\f3名前の指定\fP \- このタグに指定する \f2package.class\fP\f2#\fP\f2member\fP という名前は、\f2java.lang.String#toUpperCase()\fP のように完全指定することも、\f2String#toUpperCase()\fP や \f2#toUpperCase()\fP のように部分的に指定することもできます。名前が完全指定されていない場合、Javadoc ツールは、Java コンパイラの通常の検索順序でその名前を検索します。詳細は、このあとの「@see の検索順序」を参照してください。名前には、メソッドの複数の引数の間など、括弧の内側であれば空白を含めることができます。 -.LP -.LP -「部分的に指定」した短い名前を指定することの利点は、入力する文字数が減ることや、ソースコードが読みやすくなることです。次の表に、さまざまな形式の名前を示します。 この表の中で、\f2Class\fP にはクラスまたはインタフェースを、\f2Type\fP にはクラス、インタフェース、配列、または基本データ型を、そして \f2method\fP にはメソッドまたはコンストラクタを指定できます。 -.LP -.LP - -.LP -.RE -.RS 3 -.RS 3 .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -2191,7 +1527,7 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f4@see\fP\f3\ \fP\f4package.class#member\fP\f3 の一般的な形式\fP +\f4@see\fP\f3\ \fP\f4package.class#member\fP\f3 ΰŪʷ\fP .br .di .nr a| \n(dn @@ -2207,9 +1543,9 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3現在のクラスのメンバーを参照する\fP +\f3ߤΥ饹ΥС򻲾Ȥ\fP .br -\f2@see\fP\ \f2#\fP\f2field\fP +\f2@see\fP\ \f2#\fP\f2ե\fP .br \f2@see\fP\ \f2#\fP\f2method(Type,\ Type,...)\fP .br @@ -2233,21 +1569,21 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3現在の、またはインポートされたパッケージの別のクラスを参照する\fP +\f3ߤΡޤϥݡȤ줿ѥå̤Υ饹򻲾Ȥ\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2field\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2ե\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2method(Type,\ Type,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2method(Type,\ Type,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2method(Type\ argname,\ Type\ argname,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2method(Type\ argname,\ Type\ argname,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2constructor(Type,\ Type,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2constructor(Type,\ Type,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2constructor(Type\ argname,\ Type\ argname,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2constructor(Type\ argname,\ Type\ argname,...)\fP .br \f2@see\fP\ \f2Class.NestedClass\fP .br -\f2@see\fP\ \f2Class\fP +\f2@see\fP\ \f2饹\fP .br .di .nr c| \n(dn @@ -2263,9 +1599,9 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3別のパッケージの要素を参照する\fP\ (完全修飾) +\f3̤ΥѥåǤ򻲾Ȥ\fP\ () .br -\f2@see\fP\ \f2package.Class\fP\f2#\fP\f2field\fP +\f2@see\fP\ \f2package.Class\fP\f2#\fP\f2ե\fP .br \f2@see\fP\ \f2package.Class\fP\f2#\fP\f2method(Type,\ Type,...)\fP .br @@ -2279,7 +1615,7 @@ equals .br \f2@see\fP\ \f2package.Class\fP .br -\f2@see\fP\ \f2package\fP +\f2@see\fP\ \f2ѥå\fP .br .di .nr d| \n(dn @@ -2308,7 +1644,7 @@ equals .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1860 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1358 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2396,74 +1732,52 @@ equals .rm d+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-58 -.RE -.RE - -.LP -.RS 3 - -.LP -.LP -上の表に対する補足事項を次に示します。 .LP +ɽФ­򼡤˼ޤ .RS 3 .TP 2 o -最初の種類の形式 (パッケージとクラスを省略) の場合、Javadoc ツールは、現在のクラスの階層だけを検索します。つまり、現在のクラスかインタフェース、そのスーパークラスかスーパーインタフェース、または現在のクラスかインタフェースを囲んでいるクラスかインタフェースからメンバーを検索します (このあとの検索手順 1 〜 3)。現在のパッケージのほかの部分や、ほかのパッケージは検索しません (検索手順 4 〜 5)。 +ǽμη (ѥåȥ饹ά) ξ硢Javadoc ġϡߤΥ饹γؤ򸡺ޤĤޤꡢߤΥ饹󥿥եΥѡ饹ѡ󥿥եޤϸߤΥ饹󥿥եϤǤ륯饹󥿥եС򸡺ޤ (ΤȤθ 1 3)ߤΥѥåΤۤʬ䡢ۤΥѥåϸޤ ( 4 5) .TP 2 o -メソッドまたはコンストラクタを指定するときに括弧を付けずに名前だけ (\f2getValue\fP など) を使用した場合、同じ名前のフィールドが存在しなければ、Javadoc ツールはそのメソッドに対して正しくリンクを作成します。 ただし、括弧と引数を追加するように促す警告メッセージを出力します。このメソッドがオーバーロードされている場合、Javadoc ツールは、検索で最初に見つかったメソッドにリンクします。 結果は前もって特定できません。 +᥽åɤޤϥ󥹥ȥ饯λˡ \f2getValue\fP Τ褦˳̤ʤ̾Ѥ硢Ʊ̾Υեɤ¸ߤƤʤСJavadoc ġˤäƤ̾ؤΥ󥯤ޤ̤ɲä桼¥ηٹåɽޤΥ᥽åɤСɤƤ硢Javadoc ġϡǺǽ˸Ĥä᥽åɤ˥󥯤ޤ̤äǤޤ .TP 2 o -入れ子にされたクラスは、上記のどの形式の場合も、単に「\f2inner\fP」ではなく、「\f2outer\fP\f2.\fP\f2inner\fP」として指定しなければなりません。 +Ҥˤʤä饹ϡ٤ƤηˤĤơ \f2outer\fP\f2.\fP\f2inner\fP Ȥƻꤹɬפޤñ \f2inner\fP ȤϤʤǤ .TP 2 o -すでに述べたとおり、クラスとメンバーを区切るために、ドット (\f2.\fP) ではなくシャープ記号 (\f2#\fP) を使用することに注意してください。このように指定すると、Javadoc ツールは、あいまいさを解決できます。 ドットは、クラス、入れ子にされたクラス、パッケージ、およびサブパッケージを区切るためにも使用されます。ただし、Javadoc ツールでは一般に許容範囲が広く、あいまいさがなければ、ドットでも正しく解析されます。 その場合でも警告は表示されます。 +Ǥ˽Ҥ٤褦ˡ\f2饹ȥСȤδ֤ζڤʸȤƤϡ\fPɥå (\f2.\fP) ǤϤʤ㡼ʸ (#) ѤޤΤ褦˻ꤹȡJavadoc ġϡޤǤޤɥåȤϡ饹Ҥˤ줿饹ѥåӥ֥ѥåڤ뤿ˤѤޤJavadoc ġǤϰ̤˵ϰϤޤʤСɥåȤǤϤޤξǤٹɽޤ .RE - .LP +\f3@see θ\fP \- Javadoc ġϡե (.java)ѥåե (package.html ޤ package\-info.java) ޤϳץե (overview.html) ˴ޤޤ \f2@see\fP ޤԤ 2 ĤΥեǤϡ̾ \f2@see\fP ˻ꤷʤФʤޤ󡣥եǤϡ̾ޤʬ̾Ǥޤ .LP -\f3@see の検索順序\fP \- Javadoc ツールは、ソースファイル (.java)、パッケージファイル (package.html または package\-info.java)、または概要ファイル (overview.html) の中に登場する \f2@see\fP タグを処理します。後者の 2 つのファイルでは、完全指定の名前を \f2@see\fP タグに指定しなければなりません。ソースファイルでは、完全指定の名前、または部分指定の名前を指定できます。 -.LP -.LP -Javadoc ツールは、\f2.java\fP ファイル内で完全指定でない名前が記述された \f2@see\fP タグを見つけると、Java コンパイラと同じ順序で指定された名前を検索します。 ただし、Javadoc ツールは、特定の名前空間のあいまいさを検出しません。 これは、ソースコードにこれらのエラーが存在していないことを前提としているためです。この検索順序は、Java 言語仕様第 2 版の第 6 章「Names」で正式に定義されています。Javadoc ツールは、関連するクラスとパッケージ、およびインポートされたクラスとパッケージのすべてから名前を検索します。具体的には、次の順序で検索します。 -.LP +Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿ǤθϡJava 2 Ǥ 6 ϡNamesפƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ .RS 3 .TP 3 1. -現在のクラスまたはインタフェース +ߤΥ饹ޤϥ󥿥ե .TP 3 2. -外側を囲んでいるクラスとインタフェース (もっとも近いものから検索) +¦ϤǤ륯饹ȥ󥿥ե (äȤᤤΤ鸡) .TP 3 3. -スーパークラスとスーパーインタフェース (もっとも近いものから検索) +ѡ饹ȥѡ󥿥ե (äȤᤤΤ鸡) .TP 3 4. -現在のパッケージ +ߤΥѥå .TP 3 5. -インポートされているパッケージ、クラス、およびインタフェース (import 文の順序に従って検索) +ݡȤƤѥå饹ӥ󥿥ե (import ʸν˽äƸ) .RE - .LP +Javadoc ġϡƥ饹ˤĤƼ 1 3 ƵŪŬѤʤ顢פ̾ĤޤǸ³ޤĤޤꡢޤߤΥ饹򸡺ˤΥ饹ϤǤ륯饹 E 򸡺μ E Υѡ饹򸡺ˤμ E ϤǤ륯饹򸡺ޤ 4 5 Ǥϡ1 ĤΥѥåΥ饹ޤϥ󥿥ե򸡺ϷޤäƤޤ󡣤νϡġΥѥˤäưۤʤޤ 5 ǤϡJavadoc ġϡjava.lang 򸡺ޤΥѥåϡ٤ƤΥץ˼ưŪ˥ݡȤ뤫Ǥ .LP -Javadoc ツールは、各クラスについて手順 1 〜 3 を再帰的に適用しながら、一致する名前が見つかるまで検索を続けます。つまり、まず現在のクラスを検索し、次にそのクラスを囲んでいるクラス E を検索し、その次に E のスーパークラスを検索し、さらにその次に E を囲んでいるクラスを検索します。 手順 4 と 5 では、1 つのパッケージ内のクラスまたはインタフェースを検索する順序は決まっていません。 その順序は、個々のコンパイラによって異なります。手順 5 では、Javadoc ツールは、java.lang を検索します。 このパッケージは、すべてのプログラムに自動的にインポートされるからです。 +Javadoc ġϡɬ⥵֥饹򸡺Ȥϸ¤ޤ󡣤ޤjavadoc μ¹ˤۤΥѥåΥɥȤǤ⡢ۤΥѥå򸡺ޤ󡣤ȤС \f2@see\fP \f2java.awt.event.KeyEvent\fP 饹˴ޤޤƤơ \f2java.awt\fP ѥåΤ̾򻲾ȤƤƤ⡢Υ饹ǤΥѥåݡȤʤꡢjavadoc ϤΥѥåǤθԤޤ .LP +\f3̾ɽˡ\fP \- \f2label\fP άϡ\f2package.class.member\fP ɽޤ̤ˡpackage.class.member ϡߤΥ饹ӥѥå˱Ŭڤṳ̂ޤṳ̂פȤϡɬ׺Ǿ¤̾ɽȤȤǤȤС \f2String.toUpperCase()\fP ᥽åɤˡƱ饹ΥСؤλȤȤۤΥ饹ΥСؤλȤޤޤƤ硢饹̾ɽΤϸԤΥǤ (ɽ򻲾) .LP -Javadoc ツールは、必ずしもサブクラスを検索するとは限りません。 また、javadoc の実行中にほかのパッケージのドキュメントが生成される場合でも、ほかのパッケージを検索しません。たとえば、\f2@see\fP タグが \f2java.awt.event.KeyEvent\fP クラス内にあって、\f2java.awt\fP パッケージにある名前を参照している場合、Javadoc は、そのクラスがインポートしないかぎりそのパッケージを検索しません。 -.LP -.LP -\f3名前が表示される方法\fP \- \f2label\fP を省略すると、\f2package.class.member\fP が表示されます。一般に、package.class.member は、現在のクラスおよびパッケージに応じて適切に短縮されます。「短縮される」とは、必要最小限の名前だけが表示されるということです。たとえば、\f2String.toUpperCase()\fP メソッドに、同じクラスのメンバーへの参照とほかのクラスのメンバーへの参照が含まれている場合、クラス名が表示されるのは後者のケースだけです (次の表を参照)。 -.LP -.LP -パッケージ名を広域的に削除するには、\-noqualifier を使用します。 +ѥå̾򹭰Ū˺ˤϡ\-noqualifier Ѥޤ .br - -.LP -.RE -.RS 3 -.RS 3 .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -2493,7 +1807,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f4String.toUpperCase()\fP\f3 での例\fP +\f4String.toUpperCase() Ǥ\fP .br .di .nr a| \n(dn @@ -2509,7 +1823,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが同じクラスのメンバーを参照している +\f2@see\fP Ʊ饹ƱѥåΥС򻲾ȤƤ .br .di .nr b| \n(dn @@ -2525,7 +1839,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2toLowerCase()\fP (クラス名は省略) +\f2toLowerCase()\fP (饹̾Ͼά) .br .di .nr c| \n(dn @@ -2541,7 +1855,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが別のクラスのメンバーを参照している +\f2@see\fP ۤʤ륯饹ƱѥåΥС򻲾ȤƤ .br .di .nr d| \n(dn @@ -2573,7 +1887,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2Character.toLowerCase(char)\fP (パッケージ名は省略し、クラス名を含む) +\f2Character.toLowerCase(char)\fP (ѥå̾Ͼά饹̾ޤ) .br .di .nr f| \n(dn @@ -2589,7 +1903,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが別のクラスのメンバーを参照している +\f2@see\fP ۤʤ륯饹ۤʤѥåΥС򻲾ȤƤ .br .di .nr g| \n(dn @@ -2621,7 +1935,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2java.io.File.exists()\fP (パッケージ名とクラス名を含む) +\f2java.io.File.exists()\fP (ѥå̾ȥ饹̾ޤ) .br .di .nr i| \n(dn @@ -2632,7 +1946,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3参照の種類\fP +.nr 38 \w\f3Ȥμ\fP .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 @@ -2654,7 +1968,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nr 38 \n(h- .if \n(81<\n(38 .nr 81 \n(38 .nr 82 0 -.nr 38 \w\f3表示される名前\fP +.nr 38 \w\f3ɽ̾\fP .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 @@ -2676,7 +1990,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1958 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1434 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2695,7 +2009,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3参照の種類\fP\h'|\n(41u'\h'|\n(42u'\f3表示される名前\fP +\&\h'|\n(40u'\f3Ȥμ\fP\h'|\n(41u'\h'|\n(42u'\f3ɽ̾\fP .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -2814,22 +2128,14 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .rm i+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-28 -.RE -.RE - .LP -.RS 3 - -.LP -.LP -\f3@see の例\fP +\f3@see \fP .br -右側のコメントは、\f2@see\fP タグが別のパッケージ (\f2java.applet.Applet\fP など) のクラス内にある場合に、名前がどのように表示されるかを示しています。 -.LP +¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP Τ褦̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ .nf \f3 .fl - 関連項目: + Ϣ: .fl @see java.lang.String // String \fP\f3 .fl @@ -2848,122 +2154,69 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま @see <a href="spec.html">Java Spec</a> // Java Spec \fP\f3 .fl @see "The Java Programming Language" // "The Java Programming Language" \fP\f3 -.fl - .fl \fP .fi - +\f2@see\fP ĥƥɥȲʤ饹ؤΥ󥯤ǽˤˤϡ\f2\-link\fP ץѤޤ .LP -.LP -\f2@see\fP を、ドキュメント化の対象にしていないクラスにまで拡張するには、\f2\-link\fP オプションを使用します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@see タグのドキュメント\fP @ +\f2@see Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@seeを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see򻲾ȤƤ +.RE .RE -.LP - .LP .RS 3 .TP 3 @serial\ field\-description | include | exclude -デフォルトの直列化可能フィールドのドキュメンテーションコメントで使用します。 -.RE - +ǥեȤľ󲽲ǽեɤΥɥơ󥳥ȤǻѤޤ .LP -.RS 3 - +\f2field\-description\fP (άǽ) Ǥϡեɤΰ̣ͤΥꥹȤ򼨤ɬפޤɬפ˱ơʣιԤϤä򵭽ҤǤޤɸɥååȤϡξľ󲽤줿Υڡɲäޤ .LP +饹ľ󲽤ȤФ餯Ƥľ󲽲ǽեɤ򥯥饹ɲä硢ˡɲäС̤ʸɲäɬפޤ .LP -\f2field\-description\fP (省略可能) では、フィールドの意味を説明し、取り得る値のリストを示す必要があります。必要に応じて、複数の行に渡って説明を記述できます。標準ドックレットは、この情報を、直列化された形式のページに追加します。 -.LP -.LP -クラスを直列化したあとしばらくしてから直列化可能フィールドをクラスに追加した場合、主説明に、追加したバージョンを識別する文を追加する必要があります。 -.LP -.LP -\f2include\fP および \f2exclude\fP 引数は、直列化された形式のページにクラスまたはパッケージを含めるか除外するかを示します。これらの引数には、次のような効果があります。 -.LP +\f2include\fP \f2exclude\fP ϡľ󲽤줿Υڡ˥饹ޤϥѥåޤ뤫뤫򼨤ޤΰˤϡΤ褦ʸ̤ޤ .RS 3 .TP 2 o -\f2Serializable\fP を実装している public または protected クラスは、通常はそのページに含められます。 ただし、そのクラスまたはそのクラスが属するパッケージが \f2@serial exclude\fP で指定されていると、そのページから除外されます。 +\f2Serializable\fP Ƥ public ޤ protected 饹ϡΥ饹 (ޤϤΥѥå) \f2@serial exclude\fP ȤƥޡƤʤꡢޤޤ .TP 2 o -\f2Serializable\fP を実装している private または package private クラスは、通常はそのページから除外されます。 ただし、そのクラスまたはそのクラスが属するパッケージが \f2@serial include\fP で指定されていると、そのページに含められます。 +\f2Serializable\fP Ƥ private ޤ package\-private 饹ϡΥ饹 (ޤϤΥѥå) \f2@serial include\fP Ȥ ޡƤʤꡢޤ .RE - .LP +: \f2javax.swing\fP ѥå \f2@serial exclude\fP ( \f2package.html\fP ޤ \f2package\-info.java\fP) ȤƥޡƤޤpublic 饹 \f2java.security.BasicPermission\fP \f2@serial exclude\fP ȤƥޡƤޤpackage\-private 饹 \f2java.util.PropertyPermissionCollection\fP \f2@serial include\fP ȤƥޡƤޤ .LP -例: \f2javax.swing\fP パッケージは、\f2@serial exclude\fP で指定されています (\f2package.html\fP または \f2package\-info.java\fP 内)。public クラス \f2java.security.BasicPermission\fP は、\f2@serial exclude\fP で指定されています。package private クラス \f2java.util.PropertyPermissionCollection\fP は、\f2@serial include\fP で指定されています。 +饹٥ǻꤵ줿 @serial ϡѥå٥ǻꤵ줿 @serial 򥪡С饤ɤޤ .LP -.LP -クラスレベルで指定された @serial タグは、パッケージレベルで指定された @serial タグをオーバーライドします。 -.LP -.LP -これらのタグの使用法についての詳細と使用例は、「Java オブジェクト直列化仕様」の第 1.6 節 +ΥλˡˤĤƤξܺ٤ȻϡJava ֥ľ󲽻͡פ 1.6 .na -\f2「クラスの直列化可能なフィールドおよびデータの文書化」\fP @ +\f2֥饹ľ󲽲ǽʥեɤӥǡʸ񲽡\fP @ .fi -http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.htmlを参照してください。また、 +http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html򻲾ȤƤޤ .na -\f2「直列化の FAQ」\fP @ +\f2ľ󲽤 FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missingも参照してください。 この FAQ には、「\-private スイッチを指定しないで javadoc を実行しているのに private フィールドの @serial タグが見つからないという javadoc の警告が表示される」などの一般的な質問への回答が記載されています。直列化形式仕様にクラスを含める場合には、 +http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ .na -\f2「Sun の仕様」\fP @ +\f2Sun λ͡\fP @ .fi -http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.htmlも参照してください。 +http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.html⻲ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @serialField\ field\-name\ field\-type\ field\-description -\f2Serializable\fP クラスの \f2serialPersistentFields\fP メンバーの \f2ObjectStreamField\fP コンポーネントをドキュメント化します。各 \f2ObjectStreamField\fP コンポーネントに対して \f2@serialField\fP タグを 1 つ使う必要があります。 -.RE - +Serializable \f2饹\fP serialPersistentFields \f2С\fP ObjectStreamField ݡͥ \f2ɥȲ\fP ޤ1 Ĥ \f2@serialField\fP \f2ObjectStreamField\fP ݡͥȤǻѤ٤Ǥ .LP -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @serialData\ data\-description -\f2data\-description\fP は、直列化された形式でのデータの型と順序を説明するテキストです。このデータには、特に、\f2writeObject\fP メソッドによって書き込まれる省略可能なデータ、および \f2Externalizable.writeExternal\fP メソッドによって書き込まれるすべてのデータ (基底クラスを含む) が含まれます。 -.RE - +\f2data\-description\fP ϡľ󲽤줿ǤΥǡηȽƥȤǤŪ˸ȡΥǡˤϡ \f2writeObject\fP ᥽åɤˤäƽ񤭹ޤάǽʥǡ \f2Externalizable.writeExternal\fP ᥽åɤˤäƽ񤭹ޤ뤹٤ƤΥǡ (쥯饹ޤ) ޤޤޤ .LP -.RS 3 - +\f2@serialData\fP ϡ \f2writeObject\fP \f2readObject\fP \f2writeExternal\fP \f2readExternal\fP \f2writeReplace\fP \f2readResolve\fP ᥽åɤΥɥơ󥳥ǻѤǤޤ .LP -.LP -\f2@serialData\fP タグは、\f2writeObject\fP、\f2readObject\fP、\f2writeExternal\fP、\f2readExternal\fP、\f2writeReplace\fP、および \f2readResolve\fP メソッドのドキュメンテーションコメントで使用できます。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @since\ since\-text -生成ドキュメントに [導入されたバージョン] 見出しを追加し、指定された \f2since\-text\fP を書き込みます。このテキストには、特別な内部構造はありません。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。このタグは、特定の変更または機能が、\f2since\-text\fP に示されたソフトウェアリリース以降、存在していることを意味します。例を示します。 -.RE - -.LP -.RS 3 - -.LP +ɥȤ [Ƴ줿С] Фɲäꤵ줿 \f2since\-text\fP 񤭹ߤޤΥƥȤˤϡ̤¤Ϥޤ󡣤Υϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤΥϡѹޤϵǽ \f2since\-text ˼줿եȥ꡼ʹߡ¸ߤƤ뤳Ȥ̣ޤ\fPȤС .nf \f3 .fl @@ -2973,52 +2226,26 @@ http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.htmlも参 .fl \fP .fi - .LP +Java ץåȥեΥɤξ硢ΥϡJava ץåȥե API ͤΥС򼨤ޤѹ䵡ǽե󥹼ɲä줿򼨤Ȥϸ¤ޤʣ @since ѤǤʣ @author Τ褦˰ޤץǤʣ API ǻѤ硢ʣΥѤǤޤ .LP -Java プラットフォームのソースコードの場合、このタグは、Java プラットフォーム API 仕様のバージョンを示します。 その変更や機能がリファレンス実装に追加された時期を示すとは限りません。複数の @since タグを使用でき、複数の @author タグのように扱われます。プログラム要素が複数の API で使用される場合、複数のタグを使用できます。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 -@throws\ class\-name\ description\ -\f2@throws\fP タグと \f2@exception\fP タグは同義です。生成ドキュメントに [例外] 小見出しを追加して、\f2class\-name\fP と \f2description\fP テキストを書き込みます。\f2class\-name\fP は、そのメソッドからスローされる可能性のある例外の名前です。このタグは、メソッド、コンストラクタの doc コメント内でのみ有効です。このクラスが完全指定の名前で記述されていない場合、Javadoc ツールは、検索順序に従ってクラスを探します。同じまたは異なる例外の doc コメントで、複数の \f2@throws\fP タグを使用できます。 -.RE - +@throws\ class\-name\ description +\f2@throws\fP \f2@exception\fP ƱǤɥȤˡ㳰׾Фɲäơ \f2class\-name\fP \f2description\fP ΥƥȤ񤭹ߤޤ \f2class\-name\fP ϡΥ᥽åɤ饹ǽΤ㳰̾ǤΥϡ᥽åɡ󥹥ȥ饯 doc ǤΤͭǤΥ饹̾ǵҤƤʤ硢Javadoc ġϡ˽äƥ饹õޤƱޤϰۤʤ㳰 doc Ȥǡʣ \f2@throws\fP ѤǤޤ .LP -.RS 3 - +٤ƤΥåѤ㳰ɥȲ褦ˤ뤿ˡ \f2@throws\fP throws 㳰Ѥ¸ߤʤϡ@throws ΤɥȤǤ뤫Τ褦ˡJavadoc ġˤä㳰 HTML ϤʤǼưŪɲäޤ .LP +С饤ɤ᥽å㳰ŪƤΤߡ \f2@throws\fP ɥơ󤬤Υ᥽åɤ饵֥饹˥ԡޤ󥿥ե᥽åɤ᥽åɤ˥ԡƱͤǤ@throws ˥ɥơѾˤϡ{@inheritDoc} ѤǤޤ .LP -すべてのチェック済み例外がドキュメント化されるようにするために、\f2@throws\fP タグが throws 節内の例外用に存在しない場合は、@throws タグのあるドキュメントであるかのように、Javadoc ツールによって例外が HTML 出力に説明なしで自動的に追加されます。 -.LP -.LP -オーバーライドされるメソッド内で例外が明示的に宣言されている場合のみ、\f2@throws\fP ドキュメンテーションをそのメソッドからサブクラスにコピーされます。インタフェースメソッドから実装メソッドにコピーされる場合も同様です。@throws にドキュメンテーションを継承させるには、{@inheritDoc} を使用できます。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@throws タグのドキュメント\fP @ +\f2@throws Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@value\ package.class#field} -\f2{@value}\fP が静的フィールドの doc コメントで 引数なしで使用されている場合、その定数の値が表示されます。 -.RE - -.LP -.RS 3 - -.LP +\f2{@value}\fP Ūեɤ doc Ȥ ʤǻѤƤ硢ͤɽޤ .nf \f3 .fl @@ -3034,11 +2261,8 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参 .fl \fP .fi - -.LP -.LP -任意の doc コメント内で引数 \f2package.class#field\fP ありで使用されている場合は、指定した定数の値が表示されます。 .LP +ǤդΥɥơ󥳥ǰ \f2package.class#field\fP ǻѤ줿ϡλꤵ줿ͤɽޤ .nf \f3 .fl @@ -3056,448 +2280,130 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参 .fl \fP .fi - .LP + \f2package.class#field\fP ϡ@see ƱηˤʤޤСŪեɤˤʤФʤʤۤʤޤ .LP -引数 \f2package.class#field\fP は、@see 引数と同一の形式になります。ただし、メンバーが静的フィールドになければならない点が異なります。 -.LP -.LP -これらの定数での値は、 +Ǥͤϡ .na -\f2定数フィールド値\fP @ +\f2ե\fP @ .fi -http://java.sun.com/javase/6/docs/api/constant\-values.htmlページにも表示されます。 +http://java.sun.com/javase/6/docs/api/constant\-values.htmlڡˤɽޤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @version\ version\-text -\-version オプションが使われている場合、生成ドキュメントに [バージョン] 小見出しを追加して、指定された \f2version\-text\fP を書き込みます。このタグは、このコードが含まれるソフトウェアの現在のバージョン番号を保持するように意図されています。 これに対し、@since は、このコードが導入されたバージョン番号を保持します。\f2version\-text\fP には、特別な内部構造はありません。バージョンタグを使用できる場所を調べるには、「タグを使用できる場所」を参照してください。 -.RE - +\-version ץ󤬻ѤȡɥȤ [С] Фɲäꤵ줿 \f2version\-text\fP 񤭹ߤޤΥϡΥɤޤޤ륽եȥθߤΥСֹݻ褦˰տޤƤޤФ@since ϡΥɤƳ줿Сֹݻޤ \f2version\-text\fP ˤϡ̤¤Ϥޤ󡣥С󥿥ѤǤĴ٤ˤϡ֥ѤǤפ򻲾ȤƤ .LP -.RS 3 - +1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶ̾δ֤ޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .LP -.LP -1 つのドキュメンテーションコメントに複数の \f2@version\fP タグを含めることができます。必要に応じて、\f2@version\fP タグごとに 1 つのバージョン番号を指定することも、タグごとに複数のバージョン番号を指定することもできます。前者の場合は、Javadoc ツールによって、名前と名前の間にコンマ (\f2,\fP) とスペースが挿入されます。後者の場合は、テキスト全体が、解析されることなく、生成ドキュメントにそのままコピーされます。したがって、コンマではなく、各言語に対応した名前区切り文字を使う必要があるときは、1 つのタグに複数の名前を指定してください。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@version タグのドキュメント\fP @ +\f2@version Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@versionを参照してください。 -.LP -.RE -.LP -.SS -タグを使用できる場所 -.LP -ここでは、タグを使用できる場所について説明します。\f2@see\fP、\f2@since\fP、\f2@deprecated\fP、\f2{@link}\fP、\f2{@linkplain}\fP および \f2{@docroot}\fP のタグは、すべての doc コメントで使用できます。 -.RS 3 - -.LP -.SS -概要のドキュメンテーションタグ -.LP -.LP -概要タグは、概要ページのドキュメンテーションコメントで使用できるタグです。 このドキュメンテーションコメントは、通常 \f2overview.html\fP という名前ソースファイル内にあります。ほかのドキュメンテーションコメントの場合と同様に、これらのタグは、主説明のあとで使う必要があります。 -.LP -.LP -\f3注\fP \- バージョン 1.2 では、概要ドキュメント内の \f2{@link}\fP タグにバグがあります。テキストは正しく表示されますが、リンクが設定されません。現在のところ、\f2{@docRoot}\fP タグは、概要ドキュメント内では動作しません。 -.LP -.RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3概要タグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2279 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3概要タグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-20 - -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version򻲾ȤƤ .RE .SS -パッケージドキュメンテーションタグ +ѤǤ .LP +ǤϡѤǤˤĤޤ٤ƤΥɥơ󥳥ȤǻѲǽʥϼΤȤǤ \f2@see\fP \f2@since\fP \f2@deprecated\fP \f2{@link}\fP \f2{@linkplain}\fP \f2{@docroot}\fP +.SS +פΥɥơ󥿥 .LP -パッケージタグは、パッケージのドキュメンテーションコメントで使用できるタグです。 このドキュメンテーションコメントは、\f2package.html\fP または \f2package\-info.java\fP という名前のソースファイル内にあります。ここで使用できる \f2@serial\fP タグは、\f2include\fP または \f2exclude\fP 引数を指定したものだけです。 +ץϡץڡΥɥơ󥳥ȤǻѤǤ륿ǤΥɥơ󥳥Ȥϡ̾ \f2overview.html\fP Ȥ̾Υեˤޤ ۤΥɥơ󥳥ȤξƱͤˡΥϡΤȤǻȤɬפޤ .LP +\f3\fP \- С 1.2 Ǥϡץɥ \f2{@link}\fP ˥ХޤƥȤɽޤ󥯤ꤵޤ󡣸ߤΤȤ \f2{@docRoot}\fP ϡץɥǤưޤ +.LP +\f3ץ\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3パッケージタグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2315 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3パッケージタグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-22 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE .SS -クラスおよびインタフェースドキュメンテーションタグ +ѥåɥơ󥿥 .LP +ѥåϡѥåΥɥơ󥳥ȤǻѤǤ륿ǤΥɥơ󥳥Ȥ \f2package.html\fP ޤ \f2package\-info.java\fP Ȥ̾ΥեˤޤǻѤǤ \f2@serial\fP ϡ \f2include\fP ޤ \f2exclude\fP ꤵ줿ΤǤ .LP -次に、クラスまたはインタフェースのドキュメンテーションコメントで使用できるタグを示します。ここで使用できる \f2@serial\fP タグは、\f2include\fP または \f2exclude\fP 引数を指定したものだけです。 -.LP +\f3ѥå\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f3クラスおよびインタフェースタグ\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 80 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \n(b- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2355 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE -\f3次にクラスコメントの例を示します。\fP +.SS +饹ӥ󥿥եɥơ󥿥 .LP +ˡ饹ޤϥ󥿥եΥɥơ󥳥ȤǻѤǤ륿򼨤ޤǻѤǤ \f2@serial\fP ϡ \f2include\fP ޤ \f2exclude\fP ꤵ줿ΤǤ +.LP +\f3饹ӥ󥿥ե\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE +\f3˥饹Ȥ򼨤ޤ\fP .nf \f3 .fl @@ -3532,138 +2438,45 @@ class Window extends BaseWindow { ... .fl } -.fl - .fl \fP .fi - -.LP .SS -フィールドドキュメンテーションタグ +եɥɥơ󥿥 .LP +ˡեɤΥɥơ󥳥ȤǻѤǤ륿򼨤ޤ .LP -次に、フィールドのドキュメンテーションコメントで使用できるタグを示します。 -.LP +\f3եɥ\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@serialField\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -\f2{@value}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3フィールドタグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2436 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3フィールドタグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@serialField\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.TP 2 +o +\f2{@value}\fP .RE -\f3次にフィールドコメントの例を示します。\fP -.LP +\f3˥եɥȤ򼨤ޤ\fP .nf \f3 .fl @@ -3679,170 +2492,50 @@ class Window extends BaseWindow { .fl int x = 1263732; .fl - -.fl \fP .fi - -.LP .SS -コンストラクタおよびメソッドドキュメンテーションタグ +󥹥ȥ饯ӥ᥽åɥɥơ󥿥 .LP +ˡ󥹥ȥ饯ޤϥ᥽åɤΥɥơ󥳥ȤǻѤǤ륿򼨤ޤ \f2@return\fP ϥ󥹥ȥ饯ǤϻѤǤ \f2{@inheritDoc}\fP ˤ¤ޤ \f2@serialData\fP ľ󲽥᥽åɤ doc ȤǤΤ߻ѤǤޤ .LP -次に、コンストラクタまたはメソッドのドキュメンテーションコメント内で表示できるタグを示します。 ただし、\f2@return\fP はコンストラクタでは表示できず、\f2{@inheritDoc}\fP は表示に制限があります。\f2@serialData\fP タグは特定の直列化メソッドの doc コメントでのみ使用できます。 -.LP +\f3᥽åɤӥ󥹥ȥ饯\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f3メソッドおよびコンストラクタタグ\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 80 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@param\fP -.br -\f2@return\fP -.br -\f2@throws\fP と \f2@exception\fP -.br -\f2@serialData\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@inheritDoc}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \n(b- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2503 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-30 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@param\fP +.TP 2 +o +\f2@return\fP +.TP 2 +o +\f2@throws\fP \f2@exception\fP +.TP 2 +o +\f2@serialData\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@inheritDoc}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE -\f3次にメソッドのドキュメンテーションコメントの例を示します。\fP -.LP +\f3˥᥽åɤΥɥơ󥳥Ȥ򼨤ޤ\fP .nf \f3 .fl @@ -3874,22 +2567,13 @@ class Window extends BaseWindow { .fl } .fl - -.fl \fP .fi -.RE -.SH "オプション" +.SH "ץ" .LP +javadoc ġϡɥååȤȤäƽϤꤷޤJavadoc ġϡ\-doclet ץǥɥååȤꤵƤʳϡǥեȤɸɥååȤȤޤJavadoc ġˤϡǤդΥɥååȤȤȤ˻ѤǤ륳ޥɹԥץ󤬤ޤΥץˤĤƤϡΤȤΡJavadoc ץפޤɸɥååȤǤϡΤۤˡĤɲäΥޥɹԥץ󶡤ޤΥץˤĤƤϡΤȤΡɸɥååȤ󶡤륪ץפޤɤΥץ̾⡢ʸȾʸ̤ޤ󡣤ץΰǤϡʸȾʸ̤ޤ .LP -javadoc ツールは、ドックレットを使って出力を決定します。Javadoc ツールは、\-doclet オプションでカスタムドックレットが指定されている場合以外は、デフォルトの標準ドックレットを使います。Javadoc ツールには、任意のドックレットとともに使用できるコマンド行オプションがあります。 これらのオプションについては、このあとの「Javadoc オプション」で説明します。標準ドックレットでは、このほかに、いくつかの追加のコマンド行オプションが提供されます。 これらのオプションについては、そのあとの「標準ドックレットが提供するオプション」で説明します。どのオプション名も、大文字と小文字が区別されません。 ただし、オプションの引数では、大文字と小文字が区別されます。 -.LP -.LP -オプションを次に示します。 -.LP -.RS 3 - -.LP +ץϼΤȤǤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -4043,6 +2727,8 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .br \-\f2sourcepath\fP .br +\-sourcetab +.br \-splitindex .br \-stylesheetfile @@ -4055,6 +2741,8 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .br \-tagletpath .br +\-top +.br \-title .br \-use @@ -4101,7 +2789,7 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2680 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 2009 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4157,54 +2845,49 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .rm b+ .rm c+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-123 - -.LP -.RE -.LP -\f2イタリック\fPで示されたオプションは、Javadoc の基本オプションであり、Javadoc ツールのフロントエンドによって提供され、すべてのドックレットで使用できます。標準ドックレット自体は、イタリックでないオプションを提供します。 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-127 .LP +\f2å\fP Ǽ줿ץϡJavadoc δܥץǤꡢJavadoc ġΥեȥɤˤä󶡤졢٤ƤΥɥååȤǻѤǤޤɸɥååȼΤϡåǤʤץ󶡤ޤ .SS -Javadoc オプション -.LP +Javadoc ץ .RS 3 .TP 3 \-overview \ path/filename -Javadoc に対して、\f2path/filename\fP で指定された「ソース」ファイルから概要ドキュメント用のテキストを取得し、そのテキストを概要ページ (\f2overview\-summary.html\fP) に配置するように指定します。\f2path/filename\fP は、\f2\-sourcepath\fP への相対パスです。 +Javadoc Фơ\f2path/filename\fP ǻꤵ줿֥ץե뤫鳵ץɥѤΥƥȤΥƥȤץڡ (\f2overview\-summary.html\fP) ֤褦˻ꤷޤ \f2path/filename\fP ϡȥǥ쥯ȥ꤫ХѥǤ .LP -\f2filename\fP と \f2path\fP には、それぞれ任意の名前と場所を指定できますが、通常は、\f2overview.html\fP という名前を付けて、ソースツリー内の最上位のパッケージディレクトリがあるディレクトリに配置します。この場所に配置すると、\f2\-sourcepath\fP によってこのファイルが指し示されるので、パッケージをドキュメント化する際に \f2path\fP が不要になります。たとえば、\f2java.lang\fP パッケージのソースツリーが \f2/src/classes/java/lang/\fP の場合、概要ファイルを \f2/src/classes/overview.html\fP に配置できます。「使用例」を参照してください。 +\f2filename\fPǤդ̾Ѥ\f2path\fP Ǥդ򤹤뤳ȤǽǤ̾ \f2overview.html\fP Ȥ̾դĥ꡼κǾ̥ѥåǥ쥯ȥޤǥ쥯ȥ֤ޤξ֤ȡѥåɥȲȤ \f2path\fP ꤹɬפʤʤޤʤʤ顢 \f2\-sourcepath\fP ˤäƤΥե뤬ؤ뤫ǤȤС \f2java.lang\fP ѥåΥĥ꡼ \f2/src/classes/java/lang/\fP ξ硢ץե \f2/src/classes/overview.html\fP ֤Ǥޤֻפ򻲾ȤƤ .LP -\f2path/filename\fP で指定するファイルについては、「概要コメントファイル」を参照してください。 +\f2path/filename\fP ǻꤹեˤĤƤϡֳץȥեפ򻲾ȤƤ .LP -概要ページが作成されるのは、Javadoc に複数のパッケージ名を渡した場合だけです。詳細は、「HTML フレーム」を参照してください。 +ץڡΤϡJavadoc ʣΥѥå̾ϤǤܺ٤ϡHTML ե졼פ򻲾ȤƤ .LP -概要ページのタイトルは、\f2\-doctitle\fP によって設定されます。 +ץڡΥȥϡ\f2\-doctitle\fP ˤäꤵޤ .LP .TP 3 \-public -public クラスおよびメンバーだけを表示します。 +public 饹ӥСɽޤ .LP .TP 3 \-protected -protected および public のクラスとメンバーだけを表示します。これはデフォルトの設定です。 +protected public Υ饹ȥСɽޤ줬ǥեȤǤ .LP .TP 3 \-package -package、protected、および public のクラスとメンバーだけを表示します。 +packageprotected public Υ饹ȥСɽޤ .LP .TP 3 \-private -すべてのクラスとメンバーを表示します。 +٤ƤΥ饹ȥСɽޤ .LP .TP 3 \-help -オンラインヘルプを表示します。 Javadoc とドックレットのコマンド行オプションが一覧表示されます。 +饤إפɽޤJavadoc ȥɥååȤΥޥɹԥץ󤬰ɽޤ .LP .TP 3 \-doclet\ class -ドキュメントの生成に使うドックレットを起動するためのクラスファイルを指定します。完全指定の名前を指定してください。このドックレットにより、出力の内容と形式が定義されます。\f4\-doclet\fP オプションが使われていない場合、Javadoc は、標準ドックレットを使ってデフォルトの HTML 形式を生成します。このクラスには、\f2start(Root)\fP メソッドが含まれていなければなりません。この起動クラスへのパスは、\f2\-docletpath\fP オプションによって定義されます。 +ɥȤ˻ȤɥååȤư뤿Υ饹եꤷޤ̾ꤷƤΥɥååȤˤꡢϤƤȷޤ\f4\-doclet\fP ץ󤬻ȤƤʤ硢Javadoc ϡɸɥååȤȤäƥǥեȤ HTML ޤΥ饹ˤ \f2start(Root)\fP ޤޤƤɬפޤεư饹ؤΥѥ \f2\-docletpath\fP ץˤäޤ .LP -たとえば、MIF ドックレットを呼び出すには、次のように指定します。 +ȤСMIF ɥååȤƤӽФˤϡΤ褦˻ꤷޤ .nf \f3 .fl @@ -4213,17 +2896,17 @@ package、protected、および public のクラスとメンバーだけを表 \fP .fi .LP -特定のドックレットを実行した完全な例については、 +ΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ .LP .TP 3 \-docletpath\ classpathlist -\f2\-doclet\fP オプションで指定されているドックレット開始クラスファイル、およびそれが依存するすべての jar ファイルへのパスを指定します。開始クラスファイルが jar ファイル内にある場合、以下の例のように jar ファイルのパスが指定されます。絶対パスまたは現在のディレクトリからの相対パスを指定できます。\f2classpathlist\fP には、複数のパスまたは JAR ファイルを含めることができます。 その場合、各パスまたは JAR ファイルを、Solaris の場合にはコロン (:)、Windows の場合にはセミコロン (;) で区切ります。目的のドックレット開始クラスがすでに検索パス内にある場合は、このオプションは不要です。 +\f2\-doclet\fP ץǻꤵ줿ɥååȳϥ饹ե롢 ӤΥ饹¸뤹٤Ƥ JAR եؤΥѥꤷޤϥ饹ե뤬 jar եˤ硢ʲΤ褦 jar եΥѥꤵޤХѥޤϸߤΥǥ쥯ȥ꤫ХѥǤޤ \f2classpathlist\fP ˤϡʣΥѥޤ JAR եޤ뤳ȤǤޤ ξ硢ƥѥޤ JAR եSolaris ξˤϥ (:)Windows ξˤϥߥ (;) ǶڤޤŪΥɥååȳϥ饹Ǥ˸ѥˤϡΥץפǤ .LP -jar ファイルへのパスの例には、ドックレット開始クラスファイルが含まれています。jar ファイル名が含まれている点に注目してください。 +jar եؤΥѥˤϡɥååȳϥ饹ե뤬ޤޤƤޤjar ե̾ޤޤƤܤƤ .nf \f3 .fl @@ -4231,7 +2914,7 @@ jar ファイルへのパスの例には、ドックレット開始クラスフ .fl \fP .fi -ドックレット開始クラスファイルのパスの例。クラスファイル名が省略されている点に注目してください。 +ɥååȳϥ饹եΥѥ㡣饹ե̾άƤܤƤ .nf \f3 .fl @@ -4239,212 +2922,40 @@ jar ファイルへのパスの例には、ドックレット開始クラスフ .fl \fP .fi -特定のドックレットを実行した完全な例については、 +ΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ .LP .TP 3 \-1.1 -\f2この機能は、Javadoc 1.4 では削除されました。代替機能はありません。このオプションは、Javadoc 1.1 によって生成されるのと同じ外見と機能を持つドキュメントを作成するためのものでした。 入れ子のクラスはサポートされていません。このオプションが必要な場合は、Javadoc 1.2 または 1.3 を使用してください。\fP +\f2εǽ Javadoc 1.4 ޤصǽϤޤ󡣤ΥץϡJavadoc 1.1 ˤäΤƱȵǽĥɥȤ뤿ΤΤǤҤΥ饹ϥݡȤƤޤ󡣤ΥץɬפʾϡJavadoc 1.2 ޤ 1.3 ѤƤ\fP .LP .TP 3 \-source release -受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。 +դ륽ɤΥСꤷޤ\f2release\fP ˤϼͤǤޤ +.RS 3 +.TP 2 +o +\f31.5\fP \- javadoc ϡJDK 1.5 Ƴ줿Τʤɤθ쵡ǽޤॳɤդޤ\f3\-source\fP ե饰ѤʤäΥѥΥǥեưϡ1.5 ΤΤˤʤޤ +.TP 2 +o +\f31.4\fP Javadoc ϡJDK 1.4 Ƴ줿ޤॳɤդޤ +.TP 2 +o +\f31.3\fP Javadoc ϡJDK 1.3 ʹߤƳ줿Ρޤ¾θ쵡ǽ򥵥ݡȤޤ +.RE .LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 81 -.nr 34 \n(.lu -.eo -.am 81 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.5 で導入された総称および他の言語機能を含んだコードを受け付けます。\f3\-source\fP フラグを指定しないと、コンパイラはデフォルトとして 1.5 の動作をします。 -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.4 で導入された、アサーションを含むコードを受け付けます。 -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di c+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.3 以降に導入されたアサーション、総称、または他の言語機能をサポートしません。 -.br -.di -.nr c| \n(dn -.nr c- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 31 0 -.nr 32 0 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.5\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.4\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.3\fP -.if \n(32<\n(38 .nr 32 \n(38 -.80 -.rm 80 -.nr 60 \n(31 -.nr 38 \n(60+\n(32 -.if \n(38>\n(80 .nr 80 \n(38 -.if \n(38<\n(80 .nr 60 +(\n(80-\n(38)/2 -.nr 81 0 -.81 -.rm 81 -.nr 38 \n(a- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(b- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(c- -.if \n(81<\n(38 .nr 81 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr 60 +\n(40 -.nr 41 \n(80+(3*\n(38) -.nr 81 +\n(41 -.nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 2790 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.5\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.4\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(c|u+\n(.Vu -.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.3\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.c+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.rm c+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-14 -.LP -javac でコードをコンパイルするときに使用した値に対応する \f2release\fP の値を使用します。 +javac ǥɤ򥳥ѥ뤹Ȥ˻Ѥͤб \f2release\fP ͤѤޤ .LP .TP 3 \-sourcepath\ sourcepathlist -\f2javadoc\fP コマンドにパッケージ名または \f2\-subpackages\fP を渡すときに、ソースファイル (\f2.java\fP) を検索するためのパスを指定します。\f2sourcepathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使って、ドキュメント化されるソースファイルの位置だけでなく、それ自体はドキュメント化されないがドキュメント化されるソースファイルから継承されたコメントを持つソースファイルの位置も確認できます。 +ѥå̾ޤ \-subpackages javadoc ޥɤϤȤϡե (.\f2.java\fP) 򸫤Ĥ뤿 \f2ѥ\fP \f2ޤ\fP \f2sourcepathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤΥץȤäơɥȲ륽եΰ֤Ǥʤ켫ΤϥɥȲʤɥȲ륽ե뤫Ѿ줿Ȥĥեΰ֤ǧǤޤ .LP -\f2\-sourcepath\fP オプションは、javadoc コマンドにパッケージ名を渡すときにだけ使用できます。 \f2javadoc\fP コマンドに渡される \f2.java\fP ファイルは、このパスからは検索されません。\f2.java\fP ファイルを検索するには、そのファイルのあるディレクトリに cd によって移動するか、または各ファイルの先頭にパスを含めます (「1 つ以上のクラスのドキュメント化」を参照)。\f2\-sourcepath\fP が省略された場合、Javadoc は、クラスパスを使ってソースファイルを検索します (\-classpath を参照)。したがって、デフォルトの \-sourcepath は、クラスパスの値です。\-classpath も省略してパッケージ名を Javadoc に渡すと、Javadoc は現在のディレクトリおよびそのサブディレクトリからソースファイルを検索します。 +\f2\-sourcepath\fP ץѤǤΤϡjavadoc ޥɤ˥ѥå̾ϤǤΥѥϡjavadoc ޥɤϤ줿 \f2.java\fP ե \f2\fP ޤ \f2.java\fP ե򸡺ˤϡΥեΤǥ쥯ȥ cd ˤäưư뤫ޤϳƥեƬ˥ѥޤޤ (1 İʾΥ饹ΥɥȲפ򻲾) \f2\-sourcepath\fP ά줿硢Javadoc ϡ饹ѥȤäƥե򸡺ޤ (\-classpath 򻲾)äơǥեȤ \-sourcepath ϡ饹ѥͤǤ\-classpath άƥѥå̾ Javadoc ϤȡJavadoc ϸߤΥǥ쥯ȥꤪӤΥ֥ǥ쥯ȥ꤫饽ե򸡺ޤ .LP -\f2sourcepathlist\fP には、ドキュメント化するパッケージ名のソースツリーのルートディレクトリを設定します。たとえば、\f2com.mypackage\fP というパッケージをドキュメント化する場合に、そのソースファイルが次の場所にあるとします。 +\f2sourcepathlist\fP ˤϡɥȲѥå̾Υĥ꡼Υ롼ȥǥ쥯ȥꤷޤȤС \f2com.mypackage\fP Ȥ̾ΥѥåɥȲˡΥե뤬ξˤȤޤ .nf \f3 .fl @@ -4452,16 +2963,16 @@ javac でコードをコンパイルするときに使用した値に対応す .fl \fP .fi -この場合、次のようにして \f2sourcepath\fP を \f2/home/user/src\fP、つまり \f2com/mypackage\fP を含むディレクトリに指定し、それからパッケージ名 \f2com.mypackage\fP を指定します。 +ΤȤΤ褦ˡ \f2sourcepath\fP com/mypackage ޤǥ쥯ȥǤ \f2/home/user/src\fP ˻ꤷȡ ѥå̾ \f2com.mypackage\fP ꤷޤ .nf \f3 .fl % \fP\f3javadoc \-sourcepath /home/user/src/ com.mypackage\fP .fl .fi -この方法は、ソースパスの値とパッケージ名を連結して、ドットを (円記号) 「\\」に変えると、パッケージのフルパス (C:\\user\\src\\com\\mypackage) になることを理解すると簡単です。\f2/home/user/src/com/mypackage\fP. +ˡϡѥͤȥѥå̾Ϣ뤷ơɥåȤ (ߵ) \\פѤȡѥåΥեѥ \f2/home/user/src/com/mypackage ˤʤ뤳Ȥ򤹤ȴñǤ\fP .LP -2 つのソースパスを設定するには、次のようにします。 +2 ĤΥѥꤹˤϡΤ褦ˤޤ .nf \f3 .fl @@ -4471,132 +2982,124 @@ javac でコードをコンパイルするときに使用した値に対応す .LP .TP 3 \-classpath\ classpathlist -Javadoc が参照クラス (\f2.class\fP ファイル) を検索するパスを指定します。 参照クラスとは、ドキュメント化されるクラスとそれらのクラスによって参照されるすべてのクラスのことです。\f2classpathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパスの以下すべてのサブディレクトリを検索します。\f2classpathlist\fP を指定するときは、 +javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ Javadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ .na -\f2クラスパス\fP @ +\f2饹ѥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#generalのドキュメントにある指示に従ってください。 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#generalΥɥȤˤؼ \f2˽äƤ\fP .LP -\f2\-sourcepath\fP が省略されている場合、Javadoc ツールは、\f2\-classpath\fP を使って、クラスファイルだけでなくソースファイルも検索します (下位互換性のため)。したがって、ソースファイルとクラスファイルを別々のパスから検索する必要がある場合は、\f2\-sourcepath\fP と \f2\-classpath\fP の両方を使います。 +\f2\-sourcepath\fP άȡJavadoc ġϥ饹ե򸡺ȤǤʤե򸡺Ȥˤ \f2\-classpath\fP Ѥޤ (̸ߴΤ)äơեȥ饹ե̡Υѥ鸡ɬפϡ \f2\-sourcepath\fP \f2\-classpath ξȤޤ\fP. .LP -たとえば、\f2com.mypackage\fP をドキュメント化する場合に、ソースファイルがディレクトリ \f2/home/user/src/com/mypackage\fP にあり、このパッケージが \f2/home/user/lib\fP 内のライブラリを使うのであれば、次のように指定します。 +ȤС \f2com.mypackage\fP ɥȲˡΥե뤬ǥ쥯ȥ \f2/home/user/src/com/mypackage\fP ˳ǼƤꡢΥѥå \f2/home/user/lib\fP Υ饤֥˰¸ƤȤޤΤȤΤ褦˻ꤷޤ .nf \f3 .fl % \fP\f3javadoc \-classpath /home/user/lib \-sourcepath /home/user/src com.mypackage\fP .fl .fi -ほかのツールと同様に、\f2\-classpath\fP が指定されていない場合は、CLASSPATH 環境変数が設定されていれば、Javadoc ツールはこの環境変数を使います。どちらも設定されていない場合、Javadoc ツールは現在のディレクトリからクラスを検索します。 +\f2\-classpath\fP ꤵʤä硢Javadoc ġϤۤΥġƱCLASSPATH ĶѿꤵƤФͤѤޤɤꤵƤʤ硢Javadoc ġϸߤΥǥ쥯ȥ꤫饯饹򸡺ޤ .LP -Javadoc ツールは拡張機能クラスおよびブートストラップクラスに関連しているため、Javadoc ツールが \f2\-classpath\fP を使用してユーザークラスを検索する方法についての詳細は、 +Javadoc ġ뤬 \f2\-classpath\fP Ѥƥ桼饹򸡺ˡˤĤơĥ饹֡ȥȥåץ饹ȴϢդƤꤹˤϡ .na -\f2「クラスの検索方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.htmlをご覧ください。 +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html򻲾ȤƤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡ \f2.jar\fP ޤ \f2.JAR\fP ĥҤ˻ĥǥ쥯ȥΤ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤̤ȤʤޤΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ* \f2饹ѥȥϡ\fP ȥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .LP .TP 3 \-subpackages\ \ package1:package2:... -ソースファイルから指定されたパッケージおよびそのサブパッケージ内に再帰的にドキュメントを生成します。このオプションは、ソースコードに新しいサブパッケージを追加する際に便利です。新しいサブパッケージは自動的に組み込まれます。各 \f2package\fP 引数は、任意の最上位サブパッケージ (\f2java\fP など) または完全指定のパッケージ (\f2javax.swing\fP など) になります。ソースファイルを含める必要はありません。引数は、コロンで区切られます (すべてのオペレーティングシステム)。ワイルドカードは不要です (使用不可)。パッケージの検索場所を指定するには、\f2\-sourcepath\fP を使用します。このオプションは、「ソースファイルの処理」で説明したとおり、ソースツリーにあるがパッケージには属していないソースファイルを処理しないので役立ちます。 +ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤΥץϡɤ˿֥ѥåɲäݤǤ֥ѥåϼưŪȤ߹ޤޤ \f2package\fP ϡǤդκǾ̥֥ѥå ( \f2java\fP ʤ) ޤϴѥå ( \f2javax.swing\fP ʤ) ˤʤޤեޤɬפϤޤ󡣰ϡǶڤޤ (٤ƤΥڥ졼ƥ󥰥ƥ)磻ɥɤפǤ (Բ)ѥåθꤹˤϡ\f2\-sourcepath\fP ѤޤΥץϡ֥եνפȤꡢĥ꡼ˤ뤬ѥåˤ°ƤʤեʤΤΩޤ .LP -例を示します。 +ȤС .nf \f3 .fl % \fP\f3javadoc \-d docs \-sourcepath /home/user/src \-subpackages java:javax.swing\fP .fl .fi -このコマンドは、「java」および「javax.swing」という名前のパッケージとこれらのサブパッケージ全部のドキュメントを生成します。 +Υޥɤϡjavaפӡjavax.swingפȤ̾ΥѥåȤΥ֥ѥåΥɥȤޤ .LP -\f2\-exclude\fP とともに \f2\-subpackages\fP を使用すると、特定のパッケージを除外できます。 +\f2\-subpackages\fP \f2\-exclude\fP Ȥ߹碌ƻѤȡΥѥåǤޤ .LP .TP 3 \-exclude\ \ packagename1:packagename2:... -指定されたパッケージとそのサブパッケージを \f2\-subpackages\fP によって作成されたリストから無条件に除外します。過去の \f2\-subpackages\fP オプションの指定によって組み込まれたパッケージ、または将来組み込まれるパッケージも除外の対象となります。例を示します。 +ꤵ줿ѥåȤΥ֥ѥå \f2\-subpackages\fP ˤäƺ줿ꥹȤ̵˽ޤ \f2\-subpackages\fP ץλˤäȤ߹ޤ줿ѥåޤϾȤ߹ޤѥåоݤȤʤޤ 򼨤ޤ .nf \f3 .fl % \fP\f3javadoc \-sourcepath /home/user/src \-subpackages java \-exclude java.net:java.lang\fP .fl .fi -このうち、\f2java.io\fP、\f2java.util\fP、\f2java.math\fP は組み込まれますが、\f2java.net\fP と \f2java.lang\fP 以下のパッケージは除外されます。ただし、\f2java.lang\fP のサブパッケージである \f2java.lang.ref\fP は除外されます。 +ξ硢 \f2java.io\fP \f2java.util\fP \f2java.math\fP ʤɤޤ졢 \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåޤξ硢 \f2java.lang\fP Υ֥ѥåǤ \f2java.lang.ref\fP դƤ .LP .TP 3 \-bootclasspath\ classpathlist -ブートクラスが存在するパスを指定します。ブートクラスとは、通常、Java プラットフォームのコアクラスのことです。ブートクラスパスは、Javadoc ツールがソースファイルとクラスファイルを探すときに使う検索パスの一部です。詳細は、 +֡ȥ饹¸ߤѥꤷޤ֡ȥ饹Ȥϡ̾Java ץåȥեΥ饹ΤȤǤ֡ȥ饹ѥϡJavadoc ġ뤬եȥ饹եõȤ˻ȤѥΰǤܺ٤ϡ .na -\f2「javac と javadoc がクラスを検索する方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfilesを参照してください。\f2classpathlist\fP 内の複数のディレクトリは、コロン (:) で区切ります。 +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles򻲾ȤƤ (:) \f2classpathlist\fP Υǥ쥯ȥ֤ζڤʸȤƻѤޤ .LP .TP 3 \-extdirs\ dirlist -拡張機能クラスが存在するディレクトリを指定します。拡張機能クラスとは、Java 拡張機能機構を使うすべてのクラスです。extdirs は、Javadoc ツールがソースファイルとクラスファイルを探すときに使う検索パスの一部です。詳細は、前述の \f2\-classpath\fP を参照してください。\f2dirlist\fP 内の複数のディレクトリは、コロン (:) で区切ります。 +ĥǽ饹¸ߤǥ쥯ȥꤷޤĥǽ饹ȤϡJava ĥǽȤ٤ƤΥ饹Ǥextdirs ϡJavadoc ġ뤬եȥ饹եõȤ˻ȤѥΰǤܺ٤ϡҤ \f2\-classpath\fP 򻲾ȤƤ (:) \f2dirlist\fP Υǥ쥯ȥ֤ζڤʸȤƻѤޤ .LP .TP 3 \-verbose -javadoc の実行中に詳細なメッセージを表示します。verbose オプションを指定しないと、ソースファイルのロード時、ドキュメントの生成時 (ソースファイルごとに 1 つのメッセージ)、およびソート時にメッセージが表示されます。verbose オプションを指定すると、各 Java ソースファイルの解析に要した時間 (ミリ秒単位) など、追加のメッセージが表示されます。 +javadoc μ¹˾ܺ٤ʥåɽޤverbose ץꤷʤȡեΥɻɥȤ (ե뤴Ȥ 1 ĤΥå)ӥȻ˥åɽޤverbose ץꤹȡ Java եβϤפ (ߥñ) ʤɡɲäΥåɽޤ .LP .TP 3 \-quiet -エラーメッセージまたは警告メッセージ以外のメッセージを抑制し、警告とエラーだけが表示されるようにして、これらを特定しやすくします。バージョン文字列も抑制します。 +顼åޤϷٹåʳΥåٹȥ顼ɽ褦ˤơꤷ䤹ޤСʸޤ .LP .TP 3 \-breakiterator\ -英語言語というロケール固有のアルゴリズムではなく、 +ѸκǽʸꤹݤˡѸѤΥͭΥ르ꥺǤϤʤ .na \f2java.text.BreakIterator\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html の国際化された文境界を使用して、英文の最初の文の終わりを判断します (他のすべてのロケールはすでに \f2BreakIterator\fP を使用)。\f2「最初の文」\fPとは、パッケージ、クラス、またはメンバーの主説明での最初の文のことです。この文は、パッケージ、クラス、またはメンバーの要約にコピーされ、アルファベット順のインデックスにコピーされます。 +http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html ιݲ줿ʸѤޤ (ۤΤ٤ƤΥǤϤǤ \f2BreakIterator\fP ѤƤ)\f2ֺǽʸ\fPȤϡѥå饹ޤϥСμǤκǽʸΤȤǤʸϡѥå饹ޤϥС˥ԡ졢ե٥åȽΥǥå˥ԡޤ .LP -JDK 1.2 以降、BreakIterator クラスは、英語を除くすべての言語の文の終わりを判断するために、すでに使用されています。したがって、1.2 以降では、\f2\-breakiterator\fP オプションは英文以外には効果がありません。英文には、次のような独自のデフォルトのアルゴリズムがあります。 +JDK 1.2 ʹߡBreakIterator 饹ϡѸ٤ƤθʸνȽǤ뤿ˡǤ˻ѤƤޤäơ \f2\-breakiterator\fP ץϡ1.2 ʹߤǤϱʸʳˤϸ̤ޤ󡣱ʸˤϡΤ褦ȼΥǥեȤΥ르ꥺबޤ .RS 3 .TP 2 o -英文のデフォルトの文区切りアルゴリズム \- 空白または HTML ブロックタグ (\f2<P>\fP など) が続くピリオドで停止する +ʸΥǥեȤʸڤꥢ르ꥺ \- ޤ HTML ֥å ( \f2<P>\fP ʤ) ³ԥꥪɤߤ .TP 2 o -breakiterator 文区切りアルゴリズム \- 一般に、次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止する。このアルゴリズムでは、ほとんどの省略表記が処理される (「The serial no. is valid」は処理されるが「Mr. Smith」は処理されない)。HTML タグや、数字または記号で始まる文では停止しない。HTML タグに埋め込まれている場合でも、「../filename」の最後のピリオドで停止する +breakiterator ʸڤꥢ르ꥺ \- ̤ˡθ줬ʸǻϤޤ硢ʸ³ԥꥪɡ䡢ޤϴòߤ롣Υ르ꥺǤϡThe serial no. is validפʤɡۤȤɤξάɽޤMr. SmithפʤɤϽޤHTML 䡢ޤϵǻϤޤʸǤߤʤHTML ޤƤǤ⡢../filenameפκǸΥԥꥪɤߤ .RE -.RS 3 - .LP -.LP -注: 1.5.0 からは、1.4.x に設けられていた breakiterator 警告メッセージを削除し、デフォルトの文区切りアルゴリズムを変更していません。つまり、\\\-breakiterator オプションは、1.5.0 ではデフォルトではなくなり、またデフォルトにするつもりもありません。これは、「次のメジャーリリース」(1.5.0) でデフォルトを変更するという、以前の目的とは逆になっています。つまり、ソースコードを変更せず、1.4.x での breakiterator 警告を除去していない場合でも、1.5.0 からは何もする必要がなく、警告は消滅しています。 この逆戻りの理由は、breakiterator をデフォルトにするメリットよりも、デフォルトにするために必要となる、互換性のないソースの変更の方が負担が大きかったためです。この件で皆様に余分の手間をおかけし、混乱を招いたことをお詫びいたします。 -.LP -.RE +: 1.5.0 ϡ1.4.x ߤƤ breakiterator ٹåǥեȤʸڤꥢ르ꥺѹƤޤ󡣤Ĥޤꡢ\\\-breakiterator ץϡ1.5.0 ǤϥǥեȤǤϤʤʤꡢޤǥեȤˤĤ⤢ޤ󡣤ϡּΥ᥸㡼꡼(1.5.0) ǥǥեȤѹȤŪȤϵդˤʤäƤޤĤޤꡢɤѹ1.4.x Ǥ breakiterator ٹƤʤǤ⡢1.5.0 ϲ⤹ɬפʤٹϾǤƤޤεͳϡbreakiterator ǥեȤˤåȤ⡢ǥեȤˤ뤿ɬפȤʤ롢ߴΤʤѹô礭äǤηdzͤ;ʬμ֤򤪤򾷤ȤͤӤޤ .TP 3 \-locale\ language_country_variant -.RS 3 .LP -\f3重要\fP \- \f2\-locale\fP オプションは、標準ドックレットが提供するすべてのオプション、またはその他の任意のドックレットの提供するすべてのオプションより前 (左側) に指定する必要があります。そうしないと、ナビゲーションバーが英語で表示されます。このコマンド行オプションだけは、指定する順序に依存します。 +\f3\fP \- \f2\-locale\fP ץϡ\f2ɸɥååȤ󶡤뤹٤ƤΥץ\fPޤϤ¾ǤդΥɥååȤ󶡤뤹٤ƤΥץ (¦) ˻ꤹɬפޤʤȡʥӥСѸɽޤΥޥɹԥץϡꤹ˰¸ޤ .LP -.RE +Javadoc ɥȤȤ˻ȤꤷޤΰϼΤ褦ʡjava.util.Locale ΥɥơƤ̾Ǥ \f2en_US\fP (Ѹ졢ƹ) ޤ \f2en_US_WIN\fP (Windows ǻѤѸ) .LP -Javadoc がドキュメントを生成するときに使うロケールを指定します。引数には、java.util.Locale のドキュメントで説明されているロケールの名前を指定します。たとえば、\f2en_US\fP (英語、米国)、\f2en_US_WIN\fP (Windows で使われる英語) などを指定します。 -.LP -ロケールを指定すると、指定したロケールのリソースファイルが Javadoc によって選択されて、メッセージ (ナビゲーションバー、リストと表の見出し、ヘルプファイルの目次、stylesheet.css のコメントなどの文字列) のために使われます。また、アルファベット順にソートされるリストのソート順、および最初の文の末尾を判別するための文の区切り文字も、指定したロケールによって決まります。ただし、このオプションは、ドキュメント化されるクラスのソースファイル内で指定されているドキュメンテーションコメントのテキストのロケールを決定するものではありません。 +ꤹȡꤷΥ꥽ե뤬 Javadoc ˤä򤵤ơå (ʥӥСꥹȤɽθФإץեܼstylesheet.css ΥȤʤɤʸ) Τ˻Ȥޤޤե٥åȽ˥ȤꥹȤΥȽ硢ӺǽʸȽ̤뤿ʸζڤʸ⡢ꤷˤäƷޤޤΥץϡɥȲ륯饹ΥեǻꤵƤɥơ󥳥ȤΥƥȤΥꤹΤǤϤޤ .LP .TP 3 \-encoding\ name -ソースファイルのエンコーディングの名前 (\f2EUCJIS/SJIS\fP など) を指定します。このオプションが指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 +եΥ󥳡ǥ󥰤̾ ( \f2EUCJIS/SJIS\fP ʤ) ꤷޤ Υץ󤬻ꤵƤʤϡץåȥեΥǥեȥСȤޤ .LP -\-docencoding および \-charset も参照してください。 +\-docencoding \-charset ⻲ȤƤ .LP .TP 3 \-Jflag -javadoc を実行する実行時システム java に、\f2flag\fP を直接渡します。\f2J\fP と \f2flag\fP の間に空白を入れてはなりません。たとえば、生成ドキュメントを処理するためにシステムで 32M バイトのメモリーを確保しておく必要がある場合は、Java の \f2\-Xmx\fP オプションを次のように呼び出します。 \f2\-Xms\fP は、省略可能です。 これは、初期メモリーのサイズを設定するだけのオプションで、必要なメモリーの最小サイズがわかっている場合に便利です。 +javadoc ¹Ԥ¹Իƥ java ˡ\f2flag\fP ľϤޤ \f2J\fP \f2flag\fP δ֤˶ʤ褦դƤȤСɥȤνѤȤ32M ХȤΥ꡼򥷥ƥdzݤƤɬפˤϡjava \f2\-Xmx\fP ץ򼡤Τ褦˸ƤӽФޤ\f2\-Xms\fP ϾάǽǤϡ꡼νꤹΥץǡ꡼κɬ̤狼äƤǤ .nf \f3 .fl % \fP\f3javadoc \-J\-Xmx32m \-J\-Xms32m\fP \f3com.mypackage\fP .fl .fi -使用している javadoc のバージョンを確認するには、次のように java の「\f2\-version\fP」オプションを呼び出します。 +ѤƤ javadoc ΥСǧˤϡΤ褦 Java \f2\-version\fPץƤӽФޤ .nf \f3 .fl @@ -4607,17 +3110,16 @@ javadoc を実行する実行時システム java に、\f2flag\fP を直接渡 Classic VM (build JDK\-1.2\-V, green threads, sunwjit) .fl .fi -出力ストリームには標準ドックレットのバージョン番号が含まれます。 +ϥȥ꡼ˤɸɥååȤΥСֹ椬ޤޤޤ .RE .SS -標準ドックレットが提供するオプション -.LP +ɸɥååȤ󶡤륪ץ .RS 3 .TP 3 \-d\ directory -生成された HTML ファイルを保存する生成先ディレクトリを指定します(「d」は「生成先 (destination)」の意味)。このオプションを省略すると、生成されたファイルは現在のディレクトリに保存されます。値 \f2directory\fP には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。バージョン 1.4 では、javadoc を実行すると生成先ディレクトリが自動的に作成されます。 +줿 HTML ե¸ǥ쥯ȥꤷޤ(dפϡ (destination)פΰ̣)Υץάȡ줿եϸߤΥǥ쥯ȥ¸ޤ \f2directory\fP ˤϡХǥ쥯ȥꡢޤϸߤκȥǥ쥯ȥ꤫Хǥ쥯ȥǤޤС 1.4 Ǥϡjavadoc ¹Ԥǥ쥯ȥ꤬ưŪ˺ޤ .LP -たとえば、次の例では、\f2com.mypackage\fP パッケージのドキュメントを生成し、結果を \f2/home/user/doc/\fP ディレクトリに保存します。 +Ȥмξ硢ѥå \f2com.mypackage\fP ΥɥȤ졢η̤ \f2/home/user/doc/\fP ǥ쥯ȥ¸ޤ .nf \f3 .fl @@ -4627,50 +3129,50 @@ javadoc を実行する実行時システム java に、\f2flag\fP を直接渡 .LP .TP 3 \-use -ドキュメント化されるクラスおよびパッケージごとに 1 つの [使用] ページを組み込みます。このページには、その特定のクラスまたはパッケージの API を使っているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラス C を例にとると、クラス C を使っているものとしては、C のサブクラス、C として宣言されているフィールド、C を返すメソッド、および、型 C のパラメータを持つメソッドとコンストラクタがあります。 +ɥȲ륯饹ӥѥåȤ 1 ĤΡֻѡץڡȤ߹ߤޤΥڡˤϡΥ饹ޤϥѥå API ȤäƤѥå饹᥽åɡ󥹥ȥ饯ӥեɤҤޤȤС饹 C ˤȤȡ饹 C ȤäƤΤȤƤϡC Υ֥饹C ȤƤեɡC ֤᥽åɡӡ C Υѥ᡼ĥ᥽åɤȥ󥹥ȥ饯ޤ .LP -たとえば、String の [使用] ページに何が表示されるかを見てみましょう。\f2java.awt.Font\fP クラスの \f2getName()\fP メソッドは、\f2String\fP 型を返します。したがって、\f2getName()\fP は \f2String\fP を使っているので、\f2String\fP の [使用] ページにはこのメソッドがあります。 +ȤСString [] ڡ˲ɽ뤫򸫤Ƥߤޤ礦java.awt.Font 饹 \f2getName()\fP ᥽åɤϡ \f2String\fP ͤ \f2֤ޤ\fPäơ \f2getName()\fP \f2String\fP ѤƤΤǡString [] ڡ \f2Υ᥽åɤɽޤ\fP .LP -ただし、ドキュメント化されるのは API の使用だけであって、実装はドキュメント化されません。あるメソッドが、その実装の中で \f2String\fP を使っていても、引数として文字列をとったり、文字列を返したりしない場合は、\f2String\fP の「使用」とはみなされません。 +ɥȲΤ API λѤǤäơϥɥȲޤ󡣤᥽åɤμ \f2String\fP ȤäƤƤ⡢ȤʸȤäꡢʸ֤ꤷʤϡ \f2String\fP ΡֻѡפȤϤߤʤޤ .LP -生成された [使用] ページにアクセスするには、目的のクラスまたはパッケージに移動し、ナビゲーションバーの [使用] リンクをクリックします。 +줿 [] ڡ˥ˤϡŪΥ饹ޤϥѥå˰ưʥӥС [] 󥯤򥯥åޤ .TP 3 \-version -生成ドキュメントに、@version のテキストを組み込みます。このテキストは、デフォルトでは省略されます。使用している Javadoc ツールのバージョンを確認するには、\f2\-J\-version\fP オプションを使用します。 +ɥȤˡ@version ΥƥȤȤ߹ߤޤΥƥȤϡǥեȤǤϾάޤѤƤ Javadoc ġΥСǧˤ \f2\-J\-version\fP ץѤޤ .LP .TP 3 \-author -生成ドキュメントに、@author のテキストを組み込みます。 +ɥȤˡ@author ΥƥȤȤ߹ߤޤ .LP .TP 3 \-splitindex -索引ファイルをアルファベットごとに複数のファイルに分割し、文字ごとに 1 つのファイルと、アルファベット以外の文字で始まる索引エントリ用に 1 つのファイルを作成します。 +ե򥢥ե٥åȤȤʣΥեʬ䤷ʸȤ 1 ĤΥեȡե٥åȰʳʸǻϤޤȥѤ 1 ĤΥեޤ .LP .TP 3 \-windowtitle\ title -HTML の <title> タグに配置するタイトルを指定します。指定したタイトルは、ウィンドウのタイトルや、このページに対して作成されたブラウザのブックマーク (お気に入り) に表示されます。このタイトルには HTML タグを含めないでください。 タイトルに HTML タグが含まれていると、ブラウザがタグを正しく解釈できません。\f2title\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。\-windowtitle が省略されている場合、Javadoc ツールは、このオプションの代わりに \-doctitle の値を使います。 +HTML <title> ֤륿ȥꤷޤꤷȥϡɥΥȥ䡢ΥڡФƺ줿֥饦Υ֥åޡ () ɽޤΥȥˤ HTML ޤʤǤȥ HTML ޤޤƤȡ֥饦Ǥޤ\f2title\fP ǰȤϡ򥨥פɬפޤ\-windowtitle άƤ硢Javadoc ġϡΥץ \-doctitle ͤȤޤ .nf \f3 .fl - % \fP\f3javadoc \-windowtitle "Java 2 Platform" com.mypackage\fP + % \fP\f3javadoc \-windowtitle "Java SE Platform" com.mypackage\fP .fl .fi .TP 3 \-doctitle\ title -概要ファイルの最上部の近くに配置するタイトルを指定します。タイトルは中央揃えになり、レベル 1 の見出しとして、上部ナビゲーションバーのすぐ下に置かれます。\f2title\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2title\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ץեκǾζ᤯֤륿ȥꤷޤȥ·ˤʤꡢ٥ 1 θФȤơʥӥСΤ֤ޤ\f2title\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2title\fP ǰȤϡ򥨥פɬפޤ .nf \f3 .fl - % \fP\f3javadoc \-doctitle "Java (TM)" com.mypackage\fP + % \fP\f3javadoc \-doctitle "Java(TM)" com.mypackage\fP .fl .fi .TP 3 \-title\ title -\f3このオプションは、現在は存在しません。\fPJavadoc 1.2 のベータ版にだけ存在しました。このオプションは、\f2\-doctitle\fP という名前に変更されました。名前を変更した理由は、このオプションが、ウィンドウのタイトルではなくドキュメントのタイトルを定義することを明確にするためです。 +\f3ΥץϤ⤦¸ߤƤޤ\fPΥץ Javadoc 1.2 Υ١Ǥˤ¸ߤƤޤǤΥץ̾ \f2\-doctitle\fP ѹޤ̾ѹͳϡΥץ󤬡ɥΥȥǤϤʤɥȤΥȥ뤳ȤΤˤ뤿Ǥ .LP .TP 3 \-header\ header -各出力ファイルの上端に配置するヘッダーテキストを指定します。ヘッダーは、上部ナビゲーションバーの右側に配置されます。\f2header\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2header\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեξü֤إåƥȤꤷޤإåϡʥӥСα¦֤ޤ\f2header\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2header\fP ǰȤϡ򥨥פɬפޤ .nf \f3 .fl @@ -4680,73 +3182,77 @@ HTML の <title> タグに配置するタイトルを指定します。指定し .LP .TP 3 \-footer\ footer -各出力ファイルの下端に配置するフッターテキストを指定します。フッターは、下部ナビゲーションバーの右側に配置されます。 \f2footer\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2footer\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեβü֤եåƥȤꤷޤեåϡʥӥСα¦֤ޤ\f2footer\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2footer\fP ǰȤϡ򥨥פɬפޤ +.LP +.TP 3 +\-top +ƽϥեξü֤ƥȤꤷޤ .LP .TP 3 \-bottom\ text -各出力ファイルの最下部に配置するテキストを指定します。このテキストは、下部ナビゲーションバーより下の、ページの最下部に配置されます。\f2text\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2text\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեκDz֤ƥȤꤷޤΥƥȤϡʥӥС겼ΡڡκDz֤ޤ \f2text\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ󡣰 \f2text\fP ǻѤ硢򥨥פʤФʤʤǽޤ .LP .TP 3 \-link\ extdocURL -javadoc により生成された既存の外部参照クラスのドキュメンテーションへのリンクを作成します。引数を 1 つとります。 +javadoc ˤ줿¸γȥ饹ΥɥơؤΥ󥯤ޤ 1 ĤȤޤ .LP .RS 3 .TP 2 o -\f4extdocURL\fP は、リンク先として指定する、javadoc によって生成された外部ドキュメントを含むディレクトリの絶対 URL または相対 URL です。あとで例を示します。このディレクトリ内にパッケージリストファイルが存在していなければなりません。 存在しない場合は、\f2\-linkoffline\fP を使用します。Javadoc ツールは、\f2パッケージリスト\fPファイルからパッケージ名を読み取り、これらのパッケージをその URL にリンクします。Javadoc ツールを実行すると、作成される \f2<A HREF>\fP リンク内に \f2extdocURL\fP の値がそのままコピーされます。したがって、\f2extdocURL\fP はファイルへの URL ではなく「ディレクトリへの URL」でなければなりません。 +\f4extdocURL\fP ϡȤƻꤹ롢javadoc ˤä줿ɥȤޤǥ쥯ȥ URL ޤ URL ǤȤ򼨤ޤΥǥ쥯ȥ˥ѥåꥹȥե뤬¸ߤƤʤФʤޤ ¸ߤʤϡ\f2\-linkoffline\fP ѤޤJavadoc ġϡ \f2package\-list\fP ե뤫ѥå̾ɤ߼äȡ URL ǤΥѥå˥󥯤ޤJavadoc ġμ¹Իˡ\f2extdocURL\fP ͤΤޤޡ줿 \f2<A HREF>\fP ˥ԡޤäơ\f2extdocURL\fP ϥեؤ URL ǤϤʤ֥ǥ쥯ȥؤ URLפǤʤФʤޤ .LP -\f2extdocURL\fP への絶対リンクを使用すると、ユーザーのドキュメントを任意の Web サイト上のドキュメントにリンクできます。 相対位置へリンクするだけでよい場合は相対リンクを使用できます。相対リンクを使用する場合、\f2\-d\fP を使って、生成先ディレクトリからリンクされるパッケージのあるディレクトリの相対パスを指定する必要があります。 +\f2extdocURL\fP ؤХ󥯤Ѥȡ桼ΥɥȤǤդ Web ȾΥɥȤ˥󥯤Ǥޤа֤إ󥯤Ǥ褤Х󥯤ѤǤޤХ󥯤ξ硢桼Ϥͤϡ( \f2\-d\fP ǻꤵ줿) ǥ쥯ȥ꤫顢Ȥʤѥåޤǥ쥯ȥؤХѥˤ٤Ǥ .LP -通常、絶対リンクを指定する場合は、\f2http:\fPリンクを使用します。Web サーバーを持たないファイルシステムにリンクする場合は、\f2file:\fP リンクを使用できます。ただし、この方法は、すべてのユーザーが生成された同じファイルシステムを共有するドキュメントにアクセスする必要がある場合以外は使用しないでください。 +̾Х󥯤ꤹϡ \f2http:\fP 󥯤ѤޤWeb Сʤե륷ƥ˥󥯤ϡ \f2file: 󥯤ѤǤޤ\fP ˡϡ٤ƤΥ桼줿Ʊե륷ƥͭɥȤ˥ɬפʳϻѤʤǤ .LP -いかなる場合にも、いかなるオペレーティングシステムでも、絶対 URL か相対 URL か、「http:」ベースか「file:」ベースかにかかわらず、スラッシュを区切り文字として使用します ( +٤Ƥξ硢٤ƤΥڥ졼ƥ󥰥ƥǡ URL URLhttp:ץ١ȡfile:ץ١ˤ餺åڤʸȤƻѤޤ ( .na \f2URL Memo\fP @ .fi -http://www.ietf.org/rfc/rfc1738.txt で指定)。 +http://www.ietf.org/rfc/rfc1738.txt ǻ) .RS 3 .TP 3 -http:ベースの絶対リンク: +http: ١Х: \f2\-link http://<host>/<directory>/<directory>/.../<name>\fP .TP 3 -file:ベースの絶対リンク: +file: ١Х: \f2\-link file://<host>/<directory>/<directory>/.../<name>\fP .TP 3 -相対リンク: +Х: \f2\-link <directory>/<directory>/.../<name>\fP .RE .RE .LP -javadoc の実行時に複数の \f2\-link\fP オプションを指定して、複数のドキュメントへのリンクを作成することもできます。 \f3\-linkoffline または \-link の選択\fP +javadoc 1 μ¹Ԥʣ \f2\-link\fP ץꤹСʣΥɥȤؤΥ󥯤Ǥޤ \f3\-linkoffline ޤ \-link \fP .br -\f2\-link\fP を使用する場合: +\f2\-link\fPѤ: .RS 3 .TP 2 o -外部 API ドキュメントへの相対パスを使用する場合 + API ɥȤؤХѥѤ .TP 2 o -外部 API ドキュメントへの絶対 URL を使用する場合 (プログラムがその URL に接続し、読み取りを行うことがシェルによって許可されている場合) + API ɥȤؤ URL Ѥ (ץब URL ³ɤ߼ԤȤˤäƵĤƤ) .RE -次のような場合は、\f2\-linkoffline\fP オプションを使用します。 +\f2\-linkoffline\fP Ѥ: .RS 3 .TP 2 o -プログラムがその URL に接続し、読み取りを行うことがシェルによって許可されていない場合に外部 API ドキュメントへの絶対 URL を使用する場合。このような状況は、リンク先のドキュメントがファイアウォールの向こう側にある場合に発生します。 + API ɥȤؤ URL Ѥ (ץब URL ³ɤ߼ԤȤˤäƵĤƤʤ)Τ褦ʾϡΥɥȤեθ¦ˤȯޤ .RE .LP -\f3外部ドキュメントへの絶対リンクの使用例\fP \- +\f3ɥȤؤХ󥯤λ\fP \- \f2java.lang\fP \f2java.io\fP ¾ Java ץåȥեѥå ( .na -\f2http://java.sun.com/j2se/1.5.0/docs/api\fP @ +\f2http://java.sun.com/javase/6/docs/api/\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api 内の \f2java.lang\fP、\f2java.io\fP、その他の Java 2 プラットフォームパッケージにリンクしたい場合があります。 次のコマンドは、\f2com.mypackage\fP パッケージのドキュメントと Java 2 プラットフォームパッケージへのリンクを生成します。生成されたドキュメントには、たとえばクラスツリー内の \f2Object\fP クラスへのリンクが含まれています。\f2\-sourcepath\fP や \f2\-d\fP などの他のオプションは表示されません。 +http://java.sun.com/javase/6/docs/api ) ˥󥯤ͤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/j2se/1.5.0/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP .fl .fi -\f3外部ドキュメントへの相対リンクの使用例\fP \- 2 つのパッケージがあり、そのドキュメントが Javadoc ツールを複数回実行した結果生成されたものであるとします。 さらに、これらのドキュメントが相対パスで分割されているとします。この例の場合、2 つのパッケージは、API である \f2com.apipackage\fP とSPI (サービスプロバイダインタフェース) である \f2com.spipackage\fP です。ドキュメントの格納先は \f2docs/api/com/apipackage\fP パッケージと \f2docs/spi/com/spipackage\fP パッケージです。API パッケージのドキュメントがすでに生成されていて、現在のディレクトリが \f2docs\fP である場合、次のコマンドを実行することによって、この API ドキュメントへのリンクを持つ SPI パッケージをドキュメント化します。 +\f3ɥȤؤХ󥯤λ\fP \- 2 ĤΥѥåꡢΥɥȤ Javadoc ġʣ¹Ԥ줿ΤǤȤޤˡΥɥȤХѥʬ䤵ƤȤޤξ硢ѥåϡAPI Ǥ \f2com.apipackage\fP ȡSPI (ӥץХ󥿥ե) Ǥ \f2com.spipackage\fP ǤɥȤγǼϡ \f2docs/api/com/apipackage\fP \f2docs/spi/com/spipackage\fP ǤAPI ѥåΥɥȤϤǤѤߤǡ \f2docs\fP ȥǥ쥯ȥˤʤäƤȲꤹȡAPI ɥȤؤΥ󥯤ޤ SPI ѥåɥȲˤϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -4754,43 +3260,43 @@ http://java.sun.com/j2se/1.5.0/docs/api 内の \f2java.lang\fP、\f2java.io\fP .fl .fi .LP -\f2\-link\fP 引数は、生成先ディレクトリ (\f2docs/spi\fP) の相対パスです。 +\f2\-link\fP ΰϡǥ쥯ȥ (\f2docs/spi\fP) ХѥǤ .LP -\f3詳細\fP \- \f2\-link\fP オプションを使うと、「コードからは参照されていても、Javadoc の今回の実行ではドキュメント化されない」というクラスにリンクできるようになります。リンクから有効なページに移動できるようにするには、それらの HTML ページがある場所を調べ、その場所を \f2extdocURL\fP に指定する必要があります。このオプションを使うと、たとえば、サードパーティーのドキュメントから、\f2http://java.sun.com\fP にある \f2java.*\fP のドキュメントにリンクすることができます。 +\f3ܺ\fP \- \f2\-link\fP ץȤȡ֥ɤϻȤƤƤ⡢Javadoc κμ¹ԤǤϥɥȲʤפȤ饹˥󥯤Ǥ褦ˤʤޤ󥯤ͭʥڡ˰ưǤ褦ˤˤϡ HTML ڡĴ١ξ \f2extdocURL\fP ˻ꤹɬפޤˤꡢȤСɥѡƥΥɥȤ \f2http://java.sun.com java.*\fP ΥɥȤؤΥ󥯤 \f2ǽȤʤޤ\fP .LP -今回の実行で Javadoc によって生成されるドキュメント内の API だけを対象にリンクを作成する場合は、\f2\-link\fP オプションを省略します。\f2\-link\fP オプションが指定されていない場合、Javadoc ツールは、外部参照されたドキュメントへのリンクを作成しません。これは、そのドキュメントが存在するかどうか、および存在する場合はその場所を判別できないからです。 +μ¹Ԥ Javadoc ˤäɥ API оݤ \f2󥯤ϡ\fP \-link ץάޤ \f2\-link\fP ץ󤬻ꤵƤʤ硢Javadoc ġϡȤ줿ɥȤؤΥ󥯤ޤ󡣤ϡΥɥȤ¸ߤ뤫ɤ¸ߤϤξȽ̤ǤʤǤ .LP -このオプションでは、生成ドキュメント内の複数の場所にリンクを作成できます。 +ΥץǤϡɥʣξ˥󥯤Ǥޤ .LP -また、このオプションを使うと、複数のパッケージ群の間にクロスリンクを作成することもできます。つまり、ある一式のパッケージに対して javadoc を実行したあと、別の一式のパッケージに対して javadoc を実行し、これら 2 つのパッケージ群の間にクロスリンクを作成できます。 +⤦ 1 ĤӤϡѥååȴ֤ǤΥ󥯤ǤΥѥååȤФ javadoc ¹Ԥȡ¾ΥѥååȤФ javadoc ټ¹Ԥ뤳Ȥˤꡢξåȴ֤Υ󥯤Ǥޤ .LP -\f3クラスの参照方法\fP \- 外部参照クラスへのリンクを、テキストラベルだけではなく実際に表示するには、次の方法でクラスを参照する必要があります。メソッドの本体でクラスを参照するだけでは十分ではありません。\f2import\fP 文または宣言で参照する必要があります。次に、クラス \f2java.io.File\fP を参照する方法の例を示します。 +\f3饹λˡ\fP \- ȥ饹ؤΥ󥯤򡢥ƥȥ٥ǤϤʤºݤɽˤϡˡǥ饹򻲾Ȥɬפޤ᥽åɤΤǥ饹򻲾ȤǤϽʬǤϤޤ󡣤Υ饹ϡ \f2import\fP ʸΤξǻȤƤɬפޤHere are examples of how the class \f2java.io.File\fP can be referenced: .RS 3 .TP 2 o -すべての種類の \f2import\fP 文の場合: ワイルドカードによるインポート、名前による明示的なインポート、または \f2java.lang.*\fP に対する自動的なインポート。たとえば、次のようにすれば十分です。 +٤Ƥμ \f2import\fP ʸξ: 磻ɥɤˤ륤ݡȡ̾ˤŪʥݡȡޤ \f2java.lang.* Ф뼫ưŪʥݡ\fPȤСΤ褦ˤнʬǤ .br \f2import java.io.*;\fP .br -1.3.x および 1.2.x では、名前による明示的なインポートだけです。ワイルドカードによるインポート文も、自動インポート \f2java.lang.*\fP も使用できません。 +1.3.x 1.2.x Ǥϡ̾ˤŪʥݡȤǤ磻ɥɤˤ륤ݡʸ⡢ \f2java.lang.* μưݡȤѤǤޤ\fP .TP 2 o -宣言の場合: +ξ: .br \f2void foo(File f) {}\fP .br -この参照を使用し、メソッド、コンストラクタ、フィールド、クラス、またはインタフェースの戻り値の型またはパラメータの型に置くか、\f2implements\fP、\f2extends\fP、または \f2throws\fP 文に置きます。 +λȤѤ᥽åɡ󥹥ȥ饯եɡ饹ޤϥ󥿥եͤηޤϥѥ᡼η֤ \f2implements\fP \f2extends\fP ޤ \f2throws\fP ʸ֤ޤ .RE .LP -この結果、\f2\-link\fP オプションを使用しても、この制限のために誤って表示されない多くのリンクが多数発生する可能性があります。テキストはハイパーテキストリンクが付けられずに表示されます。これらのリンクが表示する警告から、このリンクを認識できます。クラスを正しく参照し、それによってリンクを追加するためのもっとも安全な方法は上で説明したとおり、当該のクラスをインポートすることです。 +פʷ̤Ȥơ \f2\-link\fP ץλѻˡ¤Τ˸äɽʤ󥯤¿ȯǽޤƥȤϥϥѡƥȥ󥯤դ줺ɽޤΥ󥯤ɽٹ𤫤顢Υ󥯤ǧǤޤ饹Ȥˤäƥ󥯤ɲä뤿ΤäȤˡϾȤꡢΥ饹򥤥ݡȤ뤳ȤǤ .LP -\f3パッケージリスト\fP \- \f2\-link\fP オプションは、\f2package\-list\fP という名前のファイルを要求します。 このファイルは、Javadoc ツールによって生成され、\f2\-link\fP によって指定した URL に存在します。\f2package\-list\fP ファイルは、その場所にあるドキュメント化されたパッケージの名前のリストが入った単純なテキストファイルです。前の例では、Javadoc ツールは指定された URL にある \f2package\-list\fP という名前のファイルを探し、パッケージ名を読み込んで、その URL にあるそれらのパッケージへのリンクを作成しました。 +\f3ѥåꥹ\fP \- \f2\-link\fP ץǽˤϡJavadoc ġˤä \f2package\-list\fP Ȥ̾Υե뤬桼 \f2\-link\fP ˻ꤷ URL ¸ߤƤɬפޤ \f2package\-list\fP եϡξˤɥȲ줿ѥå̾ΥꥹȤäñʥƥȥեǤǤϡJavadoc ġϡꤵ줿 URL \f2package\-list\fP Ȥ̾Υե򸡺ѥå̾ɤ߹ȡ URL ˤ뤽ΥѥåؤΥ󥯤ޤ .LP -たとえば、Java プラットフォーム v5.0 API のパッケージリストは +ȤСJava SE 6 API ΥѥåꥹȤ .na -\f2http://java.sun.com/j2se/1.5.0/docs/api/package\-list\fP @ +\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api/package\-list にあり、次のような内容で始まっています。 +http://java.sun.com/javase/6/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ .nf \f3 .fl @@ -4808,64 +3314,64 @@ http://java.sun.com/j2se/1.5.0/docs/api/package\-list にあり、次のよう .fl java.awt.font .fl - その他 ... + ¾ .fl \fP .fi .LP -\f2\-link\fP オプションを指定せずに javadoc を実行した場合、外部参照クラスに属する名前を見つけると、javadoc はその名前をリンクを持たない形で出力します。一方、\f2\-link\fP オプションを指定した場合は、指定した \f2extdocURL\fP にある \f2package\-list\fP ファイルから該当するパッケージ名が検索されます。パッケージ名が見つかると、\f2extdocURL\fP が名前の前に付加されます。 +\f2\-link\fP ץꤻ javadoc ¹Ԥ硢ȥ饹°̾򸫤Ĥȡjavadoc Ϥ̾󥯤ʤǽϤޤ \f2\-link\fP ץ󤬻ꤵ줿硢Javadoc ġϡ \f2ꤵ줿\fP \f2extdocURL\fP ξˤ package\-list եǡΥѥå̾򸡺ޤѥå̾Ĥȡ\f2extdocURL\fP ̾ղäޤ .LP -すべてのリンクが正しく機能するためには、外部参照のすべてのドキュメントが、指定した URL に存在していなければなりません。Javadoc ツールは、指定された package\-list が存在するかどうかを調べるだけで、指定された URL に目的のページが存在するかどうかはチェックしません。 +٤ƤΥ󥯤ǽ뤿ˤϡȤΤ٤ƤΥɥȤꤷ URL ¸ߤƤʤФʤޤJavadoc ġϡꤵ줿 package\-list ¸ߤ뤫ɤĴ٤ǡꤵ줿 URL ŪΥڡ¸ߤ뤫ɤϥåޤ .LP -\f3複数のリンク\fP \- 複数の \f2\-link\fP オプションを指定すると、生成された任意の数の外部ドキュメントに対してリンクを設定できます。Javadoc 1.2 には、複数の \f2\-link\fP オプションを指定できないというバグがあります。これは 1.2.2 で修正されました。 +\f3ʣΥ\fP \- ʣ \f2\-link\fP ץꤹȡǤդογɥȤؤΥ󥯤ǤޤJavadoc 1.2 ˤϡʣ \f2\-link\fP ޥɤǤʤȤХޤ 1.2.2 ǽޤ .LP -リンクする外部ドキュメントごとに、次のように別々のリンクオプションを指定します。 +󥯤볰ɥȤȤˡΤ褦̡Υ󥯥ץꤷޤ .LP -\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2...\fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP +\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP .LP -\f2extdocURL1\fP、\f2extdocURL2\fP、... \f2extdocURLn\fP は、それぞれ外部ドキュメントのルートを指し、各ルートには \f2package\-list\fP という名前のファイルが入っています。 +\f2extdocURL1\fP\f2extdocURL2\fP... \f2extdocURLn\fP ϡ줾쳰ɥȤΥ롼Ȥؤƥ롼Ȥˤϡ \f2package\-list\fP Ȥ̾Υե뤬äƤޤ .LP -\f3クロスリンク\fP \- まだ生成されていない 2 つ以上のドキュメントをクロスリンクする場合は、「ブートストラップ」が必要になります。つまり、どのドキュメントについても \f2package\-list\fP が存在していない場合は、最初のドキュメントに対して javadoc ツールを実行する時点で、2 番目のドキュメントの \f2package\-list\fP がまだ存在していません。したがって、外部リンクを作成するには、2 番目のドキュメントを生成したあとで、最初のドキュメントを生成し直す必要があります。 +\f3\fP \- ޤƤʤ 2 İʾΥɥȤ򥯥󥯤ϡ֥֡ȥȥåספɬפˤʤޤĤޤꡢɤΥɥȤˤĤƤ \f2package\-list\fP ¸ߤƤʤϡǽΥɥȤФ Javadoc ġ¹Ԥǡ2 ܤΥɥȤ \f2package\-list\fP Ϥޤ¸ߤƤޤ󡣤äơ󥯤ˤϡ2 ܤΥɥȤȤǡǽΥɥȤľɬפޤ .LP -この場合、最初のドキュメント生成の目的は、そのドキュメントの \f2package\-list\fP を作成することです。 パッケージ名をすべて把握している場合は、package\-list を手動で作成することもできます。次に、2 番目のドキュメントとその外部リンクを生成します。必要な外部の \f2package\-list\fP ファイルが存在しない場合、Javadoc ツールは警告を表示します。 +ξ硢ǽΥɥŪϡ \f2package\-list\fP 뤳ȤǤѥå̾򤹤٤İƤϡpackage\-list ưǺƤ⤫ޤޤ󡣼ˡ2 ܤΥɥȤȤγ󥯤ޤɬפʳ \f2package\-list\fP ե뤬¸ߤʤϡJavadoc ġ뤫ٹ𤬽Ϥޤ .LP .TP 3 \-linkoffline\ extdocURL\ packagelistLoc -このオプションは、\f2\-link\fP オプションを変えたものです。 どちらも、javadoc によって生成された外部参照クラスのドキュメントへのリンクを作成します。Javadoc ツール自体がオフラインになっているとき (Web 接続を使ってドキュメントにアクセスできないとき)、Web 上のドキュメントにリンクするには、\f2\-linkoffline\fP オプションを使用します。 +Υץ \f2\-link\fP ΥХꥨ 1 ĤǤɤ⡢ȥ饹 javadoc ɥȤؤΥ󥯤ޤJavadoc \f2ġ뼫Τ\fP ե饤ˤʤäƤȤ (Web ³ȤäƥɥȤ˥ǤʤȤ)Web ΥɥȤ˥󥯤ˤϡ\-linkoffline ץѤޤ .LP -厳密には、外部ドキュメントの \f2package\-list\fP ファイルにアクセスできないとき、またはこのファイルが \f2extdocURL\fP で指定された場所とは異なる場所 (通常、\f2packageListLoc\fP で指定可能なローカルな場所) に存在するとき、\f2\-linkoffline\fP を使用します。したがって、\f2extdocURL\fP に WWW 上でしかアクセスできない場合は、\f2\-linkoffline\fP を指定することにより、ドキュメントの生成時に javadoc ツールが Web に接続できなければならないという制約がなくなります。 +̩ˤϡ \f2\fP ɥȤ \f2package\-list\fP ե˥ǤʤȤޤϤΥե뤬 \f2extdocURL\fP ǻꤵ줿Ȥϰۤʤ (̾\f2packageListLoc\fP ǻǽʥʾ) ¸ߤȤ\-linkoffline ѤޤäơWWW ͳǤ \f2extdocURL\fP ˥Ǥʤ硢 \f2\-linkoffline\fP ꤹ뤳ȤˤꡢɥȤ Javadoc ġ뤬 Web ³ǤʤФʤʤȤ󤬤ʤʤޤ .LP -さらに、ドキュメントを更新するための「ハッキング」としての使用も可能です。パッケージのセット全体に対して javadoc を実行したあと、変更した一部のパッケージだけに対して javadoc を実行します。 こうして、更新されたファイルを、オリジナルのファイルセットに挿入できるようにします。例をあとで示します。 +ˡɥȤ򹹿뤿Ρ֥ϥå󥰡פȤƤλѤǽǤѥåΥåΤФ javadoc ¹ԤȡѹΥѥåФ javadoc ¹Ԥޤơ줿ե򡢥ꥸʥΥե륻åȤǤ褦ˤޤ򤢤ȤǼޤ .LP -\f2\-linkoffline\fP オプションは引数を 2 つ取ります。 最初の引数は \f2<a href>\fP リンクに組み込まれる文字列を指定する引数、2 番目の引数は \f2package\-list\fP の検索場所を指定する引数です。 +\f2\-linkoffline\fP ץϰ 2 ļޤ1 Ĥϡ \f2<a href>\fP 󥯤Ȥ߹ޤʸɽ⤦ 1 Ĥ \f2package\-list\fP θ򼨤Ǥ .RS 3 .TP 2 o -\f4extdocURL\fP は、リンク先として指定する、javadoc によって生成された外部ドキュメントを含むディレクトリの絶対 URL または相対 URL です。相対リンクを使用する場合、\f2\-d\fP を使って、生成先ディレクトリからリンクされるパッケージのルートの相対パスを指定する必要があります。詳細は、\f2\-link\fP オプションの \f2extdocURL\fP を参照してください。 +\f4extdocURL\fP ϡȤƻꤹ롢javadoc ˤä줿ɥȤޤǥ쥯ȥ URL ޤ URL ǤХ󥯤ξ硢ͤϡ( \f2\-d\fP ǻꤵ줿) ǥ쥯ȥ꤫ѥåΥ롼ȤؤХѥˤ٤Ǥܺ٤ϡ\-link ץ \f2extdocURL\fP \f2򻲾\fP Ƥ .TP 2 o -\f4packagelistLoc\fP には、外部ドキュメントの \f2package\-list\fP ファイルが入っているディレクトリのパスまたは URL を指定します。これは、URL (http: または file:)or file:)とファイルパスのどちらでもかまいません。また、絶対パスと相対パスのどちらでも指定できます。相対パスの場合は、javadoc が実行されるカレントディレクトリからの相対パスとして指定します。\f2package\-list\fP というファイル名は含めないでください。 +\f4packagelistLoc\fP ϡɥȤ \f2package\-list\fP եޤǥ쥯ȥؤΥѥޤ URL ǤϡURL (http: ޤ file:) ǤեѥǤ⤫ޤޤ󤷡ХѥǤХѥǤ⤫ޤޤХѥξϡjavadoc ¹Ԥ륫ȥǥ쥯ȥ꤫ХѥȤƻꤷޤե̾ \f2package\-list\fP ϴޤʤǤ .RE .LP -javadoc の 1 回の実行で、複数の \f2\-linkoffline\fP オプションを指定できます。1.2.2 より前は、複数のオプションを指定することはできませんでした。 +1 javadoc ¹Ԥʣ \f2\-linkoffline\fP ץǤޤ1.2.2 ϡʣΥץꤹ뤳ȤϤǤޤǤ .LP -\f3外部ドキュメントへの絶対リンクを使った例\fP \- \f2http://java.sun.com/j2se/1.5.0/docs/api\fP 内の \f2java.lang\fP、\f2java.io\fP、、およびその他の Java 2 プラットフォームパッケージにリンクしたくても、Web にアクセスできない 場合について考えてみます。この場合は、ブラウザで +\f3ɥȤؤХ󥯤λ\fP \- http://java.sun.com/javase/6/docs/api \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ\fP Web ˥Ǥʤͤޤ֥饦 \f2\fP .na -\f2http://java.sun.com/j2se/1.5.0/docs/api/package\-list\fP @ +\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api/package\-list にある \f2package\-list\fP ファイルを開き、ローカルディレクトリに保存します。 さらに、2 番目の引数 \f2packagelistLoc\fP にこのローカルコピーの場所を指定します。この例では、パッケージリストファイルはカレントディレクトリ "\f2.\fP" に保存されています。次のコマンドは、Java 2 プラットフォーム API へのリンクを含む、\f2com.mypackage\fP パッケージのドキュメントを生成します。生成されたドキュメントには、たとえばクラスツリー内の \f2Object\fP クラスへのリンクが含まれています。\f2\-sourcepath\fP などの他の必要なオプションは表示されません。 +http://java.sun.com/javase/6/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ɬץץϼƤޤ .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/j2se/1.5.0/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP .fl .fi .LP -\f3外部ドキュメントへの相対リンクの使用例\fP \- 通常、\f2\-linkoffline\fP に相対パスを指定することはありません。 \f2\-link\fP で同じことができるからです。\f2\-linkoffline\fP を使用する際、\f2package\-list\fP には通常ローカルのファイルを指定します。 相対リンクを使用する際も、リンク先のファイルには通常ローカルのファイルを指定します。したがって、\f2\-linkoffline\fP の 2 つの引数に別々のパスを指定する必要はありません。2 つの引数が同一である場合は、\f2\-link\fP を使用できます。\f2\-link\fP の相対リンクの例を参照してください。 +\f3ɥȤؤХ󥯤λ\fP \- \f2\-linkoffline\fP ХѥѤ뤳Ȥϡޤꤢޤͳñǡ̾ \f2\-link\fP ǽʬǤ \f2\-linkoffline\fP Ѥݡ \f2package\-list\fP ˤ̾Υեꤷޤ Х󥯤Ѥݤ⡢Υեˤ̾Υեꤷޤäơ \f2\-linkoffline 2 Ĥΰ̡ΥѥꤹɬפϤޤ\fP2 ĤΰƱǤϡ \f2\-link\fP ѤǤޤ \f2\-link\fP Х󥯤򻲾ȤƤ .LP -\f4package\-list\fP\f3 ファイルを手動で作成\fP \- \f2package\-list\fP ファイルがまだ存在しなくても、ドキュメントのリンク先のパッケージ名がわかっている場合は、このファイルを自分で作成し、\f2packagelistLoc\fP でそのパスを指定することができます。\f2com.apipackage\fP が最初に生成され、\f2com.spipackage\fP のパッケージリストが存在しないという前出の例を参照してください。この方法は、パッケージ名はわかっているものの、まだ公開されていない、新しい外部ドキュメントにリンクするドキュメントを生成する必要がある場合に便利です。また、\f2package\-list\fP ファイルが生成されない Javadoc 1.0 や 1.1 などで生成されたパッケージ向けに \f2package\-list\fP ファイルを作成するときにも、この方法を利用します。同様に、2 つの会社が未公開の \f2package\-list\fP ファイルを共有することもできるため、クロスリンクを設定したドキュメントを同時にリリースすることも可能です。 +\f4package\-list\fP\f3 եưǺ\fP \- \f2package\-list\fP ե뤬ޤ¸ߤʤƤ⡢ɥȤΥΥѥå̾狼äƤϡΥեʬǺpackagelistLoc \f2ǤΥѥꤹ뤳ȤǤޤ\fPcom.apipackage ǽ \f2com.spipackage\fP ΥѥåꥹȤ¸ߤƤʤäȤ \f2ФΥ\fP ȤƵ󤲤ޤˡϡѥå̾Ϥ狼äƤΤΡޤƤʤɥȤ˥󥯤ɥȤɬפǤޤJavadoc 1.0 ޤ 1.1 줿ѥå \f2package\-list\fP եɬפˤ⡢ˡȤޤΥСǤϡ \f2package\-list\fP եƤޤǤƱͤˡ2 ĤδȤ̤ \f2package\-list\fP եͭС󥯤ޤɥȤƱ˥꡼뤳ȤǽȤʤޤ .LP -\f3複数のドキュメントへのリンク\fP \- \f2\-linkoffline\fP は、参照先の生成ドキュメントごとに 1 つずつ指定します。 次の例では、わかりやすくするためにオプションごとに行を分けています。 +\f3ʣΥɥȤؤΥ\fP \- ȤʤɥȤȤ \f2\-linkoffline\fP 1 󤺤Ĵޤ뤳ȤǤޤ狼䤹뤿ˡץ󤴤Ȥ˲ԤƼƤޤ .LP \f2% \fP\f4javadoc \-linkoffline\fP \f2extdocURL1\fP \f2packagelistLoc1\fP \f2\\\fP .br @@ -4873,24 +3379,24 @@ http://java.sun.com/j2se/1.5.0/docs/api/package\-list にある \f2package\-list .br \f2\ \ \ \ \ \ \ \ \ \ ...\fP .LP -\f3ドキュメントの更新\fP \- 前述の \f2\-linkoffline\fP オプションのもうひとつの用途は、プロジェクトに大量のパッケージが含まれていて、すでにツリー全体に対して javadoc の実行が完了している場合に、次の実行では、少量の変更を手早く加えたあと、ソースツリーのごく一部に対してだけ javadoc を再実行する場合に便利です。これは、ドキュメンテーションコメントに対してだけ変更を加え、宣言は変更しない場合にのみ正しく処理されるので、ハッキングのようなものです。ソースコードの宣言を追加、削除、または変更した場合は、索引、パッケージツリー、継承されるメンバーのリスト、[使用] ページなどの場所で、リンクが壊れることがあります。 +\f3ɥȤι\fP \- Ҥ \f2\-linkoffline\fP ץΤ⤦ҤȤĤӤϡץȤ̤ΥѥåޤޤƤơǤ˥ĥ꡼ΤФ javadoc μ¹ԤλƤˡμ¹ԤǤϡ̤ѹ᤯äȡĥ꡼ΤФƤ javadoc Ƽ¹ԤǤϡɥơ󥳥ȤФƤѹäѹʤˤΤΤǡϥå󥰤Τ褦ʤΤǤɤɲáޤѹϡѥåĥ꡼ѾСΥꥹȡֻѡץڡʤɤξǡ󥯤뤳Ȥޤ .LP -まず、今回の実行で使用する新しい生成先ディレクトリ (\f2update\fP) を作成します。元の生成先ディレクトリの名前が \f2html\fP だとします。もっとも単純な例では、\f2html\fP ディレクトリの親ディレクトリに移動 (cd) します。\f2\-linkoffline\fP の最初の引数にカレントディレクトリ "." を指定し、2 番目の引数に \f2html\fP への相対パスを指定します。 ここで、\f2package\-list\fP が検索されます。 更新対照のパッケージのパッケージ名だけを指定してください。 +ޤοʼ¹ѤȤơǥ쥯ȥ ( \f2update\fP ̿̾) ޤǥ쥯ȥ̾ \f2html\fP äȤޤäȤñǤϡ \f2html ǥ쥯ȥοƥǥ쥯ȥ˰ư (cd) ޤ\fP \f2\-linkoffline\fP 1 򥫥ȥǥ쥯ȥ.פꤷ 2 package\-list ޤޤƤ \f2html\fP ؤХѥꤷ \f2ѥåΥѥå̾Τߤ\fPϤޤ .nf \f3 .fl % \fP\f3javadoc \-d update \-linkoffline . html com.mypackage\fP .fl .fi -Javadoc ツールの終了後、\f2update/com/package\fP 内の生成されたクラスのページをコピーし (概要や索引を除く)、\f2html/com/package\fP 内の元のファイルに上書きします。 +Javadoc ĥ꡼νλ塢 \f2update/com/package\fP 줿饹Υڡ򥳥ԡ (פϽ) \f2html/com/package θΥե˾񤭤ޤ\fP .LP .TP 3 \-linksource\ -各ソースファイル (行番号付き) の HTML バージョンを作成し、標準 HTML ドキュメントからソースファイルへのリンクを追加します。リンクは、ソースファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルトコンストラクタ、生成されたクラスに対しては作成されません。 +ƥե (ֹդ) HTML Сɸ HTML ɥȤ饽եؤΥ󥯤ɲäޤ󥯤ϡեƤ륯饹󥿥ե󥹥ȥ饯᥽åɡեɤФƺޤǥեȥ󥹥ȥ饯줿饹ФƤϺޤ .LP -\f3このオプションは、\fP\f4\-public\fP\f3、\fP\f4\-package\fP\f3、\fP\f4\-protected\fP\f3、\fP\f4\-private\fP\f3 の各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソースファイル内のすべての非公開実装の詳細を公開します。\fP\f2\-private\fP オプションを指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 +\f3Υץϡ\fP\f4\-public\fP\f3 \fP\f4\-package\fP\f3 \fP\f4\-protected\fP\f3 \fP\f4\-private\fP\f3 γƥץȤϴطʤΥ饹եɡΥ᥽åɤΤϤȤȤ߹ޤ줿եΤ٤Ƥξܺ٤ޤ\fP\f2\-private\fP ץʻƻꤷʤꡢΤ٤ƤΥ饹䥤󥿥ե˥󥯷ͳǥǤȤϤޤ .LP -各リンクは、その宣言内の識別子名の上に作成されます。たとえば、\f2Button\fP クラスのソースコードヘのリンクは、「Button」という語の上に作成されます。 +ƥ󥯤ϡμ̻̾ξ˺ޤȤС \f2Button\fP 饹ΥɤؤΥ󥯤ϡButtonפȤξ˺ޤ .nf \f3 .fl @@ -4902,7 +3408,7 @@ Javadoc ツールの終了後、\f2update/com/package\fP 内の生成された .fl \fP .fi -Button クラスの \f2getLabel()\fP メソッドのソースコードへのリンクは、「getLabel」という語の上に作成されます。 +ޤButton 饹 \f2getLabel()\fP ᥽åɤΥɤؤΥ󥯤ϡgetLabelפȤξ˺ޤ .nf \f3 .fl @@ -4913,26 +3419,21 @@ Button クラスの \f2getLabel()\fP メソッドのソースコードへのリ .LP .TP 3 \-group\ groupheading\ packagepattern:packagepattern:... -概要ページの複数のパッケージを、指定したグループに分けて、グループごとに表を作成します。各グループは、それぞれ別の \f2\-group\fP オプションで指定します。これらのグループは、コマンド行で指定した順序でページに表示されます。 各グループ内では、パッケージがアルファベット順に並べられます。指定した \f2\-group\fP オプションごとに、\f2packagepattern\fP 式のリストと一致するパッケージが、見出し \f2groupheading\fP を持つ 1 つの表にまとめて表示されます。 +ץڡʣΥѥå򡢻ꤷ롼פʬơ롼פȤɽޤƥ롼פϡ줾̤ \f2\-group\fP ץǻꤷޤΥ롼פϡޥɹԤǻꤷǥڡɽޤƥ롼Ǥϡѥåե٥åȽ¤٤ޤ \f2\-group\fP ץǤϡ \f2packagepattern\fP ΥꥹȤ˰פѥå \f2groupheading\fP ȤФɽɽޤ .RS 3 .TP 2 o -\f4groupheading\fP には、任意のテキストを指定でき、空白を含めることができます。指定したテキストは、グループの表見出しになります。 +\f4groupheading\fP ˤϡǤդΥƥȤǤޤ뤳ȤǤޤꤷƥȤϡ롼פɽФˤʤޤ .TP 2 o -\f4packagepattern\fP には、任意のパッケージ名、または任意のパッケージ名の先頭部分とそれに続く 1 つのアスタリスク (\f2*\fP) を指定できます。アスタリスクは、「任意の文字に一致する」という意味のワイルドカードです。ワイルドカードとして指定できるのは、アスタリスクだけです。1 つのグループには、コロン (\f2:\fP) で区切って複数のパターンを含めることができます。 -.RE -.RS 3 - -.LP -.LP -\f3注: パターンやパターンリスト内でアスタリスクを使う場合は、\fP\f4"java.lang*:java.util"\fP\f3 のように、パターンリストを引用符で囲む必要があります。\fP -.LP +\f4packagepattern\fP ˤϡǤդΥѥå̾ޤǤդΥѥå̾ƬʬȤ³ 1 ĤΥꥹ (\f2*\fP) Ǥޤ ꥹϡǤդʸ˰פפȤ̣Υ磻ɥɤǤ磻ɥɤȤƻǤΤϡꥹǤ1 ĤΥ롼פˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ .RE .LP -\f2\-group\fP オプションが指定されていない場合は、すべてのパッケージが、「パッケージ」という見出しの 1 つのグループに入れられます。ドキュメント化されるパッケージの中に、指定したグループのどのグループにも入らないパッケージがある場合、このようなパッケージは「その他のパッケージ」という見出しを持つ独立したグループに入れられます。 +\f3: ѥѥꥹǥꥹȤϡ \fP\f4"java.lang*:java.util" Τ褦ˡѥꥹȤǰϤɬפޤ\fP .LP -たとえば、次のようにオプションを指定すると、ドキュメント化される 5 つのパッケージは、コアパッケージ、拡張機能パッケージ、およびその他のパッケージに分けられます。「java.lang*」では、最後のドットを指定していないことに注目してください。 「java.lang.*」のようにドットを入れると、java.lang パッケージは除外されることになります。 +桼 \f2\-group\fP ץ 1 Ĥꤷʤä硢֥ѥåפȤФ 1 ĤΥ롼ˡ٤ƤΥѥå֤ޤɥȲѥåˡꤷ롼פΤɤΥ롼פˤʤѥå硢Τ褦ʥѥåϡ֤¾ΥѥåפȤФΩ롼פޤ +.LP +ȤСΤ褦˥ץꤹȡɥȲ 5 ĤΥѥåϡѥåĥǽѥåӤ¾Υѥåʬޤjava.lang*פǤϡǸΥɥåȤꤷƤʤȤܤƤjava.lang.*פΤ褦˥ɥåȤȡjava.lang ѥåϽ뤳Ȥˤʤޤ .nf \f3 .fl @@ -4943,56 +3444,52 @@ o java.lang java.lang.reflect java.util javax.servlet java.new\fP .fl .fi -この結果、次のようなグループ化が行われます。 -.RS 3 +η̡Τ褦ʥ롼ײԤޤ .RS 3 .TP 3 -コアパッケージ +ѥå \f2java.lang\fP \f2java.lang.reflect\fP \f2java.util\fP .TP 3 -拡張機能パッケージ +ĥǽѥå \f2javax.servlet\fP .TP 3 -その他のパッケージ +¾Υѥå \f2java.new\fP .RE - -.LP -.RE .LP .TP 3 \-nodeprecated -推奨されない API をドキュメントに生成しないようにします。このオプションを指定すると、\-nodeprecatedlist オプションを指定した場合と同じ効果があることに加えて、ドキュメントのほかの部分全体でも、推奨されない API が生成されません。このオプションは、コードを記述しているとき、推奨されないコードによって気を散らされたくない場合に便利です。 +侩ʤ API ɥȤʤ褦ˤޤΥץꤹȡ\-nodeprecatedlist ץꤷƱ̤뤳Ȥ˲äơɥȤΤۤʬΤǤ⡢侩ʤ API ޤ󡣤Υץϡɤ򵭽ҤƤȤ侩ʤɤˤäƵ򻶤餵줿ʤǤ .LP .TP 3 \-nodeprecatedlist -推奨されない API のリストを含むファイル (deprecated\-list.html)、およびナビゲーションバーのそのページへのリンクが生成されないようにします。ただし、ドキュメントのほかの部分では、推奨されない API が生成されます。このオプションは、推奨されない API がソースコードに含まれておらず、ナビゲーションバーをすっきりと見せたい場合に便利です。 +侩ʤ API ΥꥹȤޤե (deprecated\-list.html)ӥʥӥСΤΥڡؤΥ󥯤ʤ褦ˤޤɥȤΤۤʬǤϡ侩ʤ API ޤΥץϡ侩ʤ API ɤ˴ޤޤƤ餺ʥӥС򤹤äȸǤ .LP .TP 3 \-nosince -生成ドキュメントから、@since タグに対応する「導入されたバージョン」 セクションを省略します。 +ɥȤ顢@since бƳ줿С άޤ .LP .TP 3 \-notree -生成されるドキュメントからクラスおよびインタフェースの階層ページを省略します。これらのページには、ナビゲーションバーの「ツリー」ボタンからアクセスできます。デフォルトでは、階層が生成されます。 +ɥȤ饯饹ӥ󥿥եγإڡάޤΥڡˤϡʥӥСΡ֥ĥ꡼ץܥ󤫤饢ǤޤǥեȤǤϡؤޤ .LP .TP 3 \-noindex -生成ドキュメントから、索引を省略します。デフォルトでは、索引が生成されます。 +ɥȤ顢άޤǥեȤǤϡޤ .LP .TP 3 \-nohelp -出力の各ページの最上部と最下部にあるナビゲーションバーから [ヘルプ] リンクを省略します。 +ϤγƥڡκǾȺDzˤʥӥС֥إסץ󥯤άޤ .LP .TP 3 \-nonavbar -生成されるページの最上部と最下部に表示されるナビゲーションバー、ヘッダー、およびフッターを生成しないようにします。このオプションは、bottom オプションには影響を与えません。\f2\-nonavbar\fP オプションは、印刷するためだけにファイルを PostScript または PDF に変換する場合など、内容だけが重要で、ナビゲーションの必要がない場合に便利です。 +ڡκǾȺDzɽʥӥСإåӥեåʤ褦ˤޤΥץϡbottom ץˤϱƶͿޤ \f2\-nonavbar\fP ץϡ뤿˥ե PostScript ޤ PDF ѴʤɡƤפǡʥӥɬפʤǤ .LP .TP 3 \-helpfile\ path/filename -上部と下部のナビゲーションバーの [ヘルプ] リンクのリンク先となる代替ヘルプファイル \f2path/filename\fP のパスを指定します。このオプションが指定されていない場合、Javadoc ツールは、ハードコードされているヘルプファイル \f2help\-doc.html\fP を自動的に作成します。このオプションを使うと、そのデフォルトの動作をオーバーライドできます。\f2filename\fP にはどんなファイル名でも指定でき、\f2help\-doc.html\fP には限定されません。例を示します。 +ȲΥʥӥСΡ֥إסץ󥯤ΥȤʤإإץե \f2path/filename\fP ΥѥꤷޤΥץ󤬻ꤵʤȡJavadoc ġϡġǥϡɥɤƤإץե \f2help\-doc.html\fP ưޤΥץȤȡΥǥեȤư򥪡С饤ɤǤޤ\f2filename\fP ˤϤɤʥե̾ǤǤ \f2help\-doc.html ˤϸꤵޤ\fP Javadoc ġϡʥӥСΥ󥯤ɬפ˱Ĵޤ򼨤ޤ .nf \f3 .fl @@ -5001,7 +3498,7 @@ o .fi .TP 3 \-stylesheetfile\ path/filename -代替 HTML スタイルシートファイルのパスを指定します。このオプションが指定されていない場合、Javadoc ツールは、ハードコードされているスタイルシートファイル \f2stylesheet.css\fP を自動的に作成します。このオプションを使うと、そのデフォルトの動作をオーバーライドできます。\f2filename\fP にはどんなファイル名でも指定でき、\f2stylesheet.css\fP には限定されません。例を示します。 + HTML 륷ȥեΥѥꤷޤΥץ󤬻ꤵʤȡJavadoc ġϡġǥϡɥɤƤ륹륷ȥե \f2stylesheet.css\fP ưޤΥץȤȡΥǥեȤư򥪡С饤ɤǤޤ\f2filename\fP ˤϤɤʥե̾ǤǤ \f2stylesheet.css ˤϸꤵޤ\fPȤС .nf \f3 .fl @@ -5010,22 +3507,22 @@ o .fi .TP 3 \-serialwarn -@serial タグがない場合は、コンパイル時に警告を生成します。デフォルトでは、Javadoc 1.2.2 以降のバージョンでは、直列化の警告は生成されません。1.2.2 より前の初期バージョンでは、警告が生成されます。このオプションを使用すると、直列化の警告が表示されるので、デフォルトの直列化可能フィールドと \f2writeExternal\fP メソッドを適切にドキュメント化するのに役立ちます。 +@serial ʤϡѥ˷ٹޤǥեȤǤϡJavadoc 1.2.2 ʹߤΥСǤϡľ󲽤ηٹޤ1.2.2 νСǤϡٹޤΥץѤȡľ󲽤ηٹɽΤǡǥեȤľ󲽲ǽեɤ \f2writeExternal\fP ᥽åɤŬڤ˥ɥȲΤΩޤ .LP .TP 3 \-charset\ name -このドキュメント用の HTML 文字セットを指定します。この名前は、 +ΥɥѤ HTML ʸåȤꤷޤ̾ϡ .na \f2IANA Registry\fP @ .fi -http://www.iana.org/assignments/character\-sets で与えられた、推奨される MIME 名でなければなりません。例を示します。 +http://www.iana.org/assignments/character\-sets Ϳ줿侩 MIME ̾ǤʤФʤޤ󡣤ȤС .nf \f3 .fl % \fP\f3javadoc \-charset "iso\-8859\-1" mypackage\fP .fl .fi -生成されるすべてのページの先頭に、次の行が挿入されます。 +뤹٤ƤΥڡƬˡιԤޤ .nf \f3 .fl @@ -5033,34 +3530,34 @@ http://www.iana.org/assignments/character\-sets で与えられた、推奨さ .fl \fP .fi -この META タグについては、 + META ˤĤƤϡ .na -\f2HTML の標準\fP @ +\f2HTML ɸ\fP @ .fi -http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2 (4197265 および 4137321) を参照してください。 +http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2 (4197265 4137321) 򻲾ȤƤ .LP -\-encoding および \-docencoding も参照してください。 +\-encoding \-docencoding ⻲ȤƤ .LP .TP 3 \-docencoding\ name -生成される HTML ファイルのエンコーディングを指定します。この名前は、 + HTML եΥ󥳡ǥ󥰤ꤷޤ̾ϡ .na \f2IANA Registry\fP @ .fi -http://www.iana.org/assignments/character\-sets で与えられた、推奨される MIME 名でなければなりません。このオプションを省略しながら \-encoding を使用した場合、生成される HTML ファイルのエンコードは、\-encoding によって決められます。例: +http://www.iana.org/assignments/character\-sets Ϳ줿侩 MIME ̾ǤʤФʤޤ󡣤Υץάʤ \-encoding Ѥ硢 HTML եΥ󥳡ɤϡ\-encoding ˤäƷޤ: .nf \f3 .fl % \fP\f3javadoc \-docencoding "ISO\-8859\-1" mypackage\fP .fl .fi -\-encoding および \-charset も参照してください。 +\-encoding \-charset ⻲ȤƤ .LP .TP 3 \-keywords -HTML メタキーワードタグを、クラスごとに生成されるファイルに追加します。これらのタグは、メタタグを検索するサーチエンジンがページを見つける場合に役立ちます。インターネット全体を検索する多くのサーチエンジンは、ページがメタタグを誤用しているため、メタタグを調べません。 一方、検索を自身の Web サイトに限定している企業では、サーチエンジンがメタタグを調べることによってメリットを得られます。 +HTML ᥿ɥ򡢥饹ȤեɲäޤΥϡ᥿򸡺륵󥸥󤬥ڡ򸫤ĤΩޤ󥿡ͥåΤ򸡺¿Υ󥸥ϡڡ᥿ѤƤ뤿ᡢ᥿Ĵ٤ޤ󡣰򼫿Ȥ Web Ȥ˸ꤷƤȤǤϡ󥸥󤬥᥿Ĵ٤뤳ȤˤäƥåȤޤ .LP -メタタグには、クラスの完全修飾名と、フィールドおよびメソッドの修飾されていない名前が含まれます。コンストラクタは、クラス名と同じであるため含まれません。たとえば、クラス String は次のキーワードで開始します。 +᥿ˤϡ饹δ̾ȡեɤӥ᥽åɤνƤʤ̾ޤޤޤ󥹥ȥ饯ϡ饹̾ƱǤ뤿ޤޤޤ󡣤ȤС饹 String ϼΥɤdzϤޤ .nf \f3 .fl @@ -5077,29 +3574,29 @@ HTML メタキーワードタグを、クラスごとに生成されるファイ .LP .TP 3 \-tag\ \ tagname:Xaoptcmf:"taghead" -Javadoc ツールがドキュメンテーションコメント内の引数を 1 つ取る単純なカスタムブロックタグ \f2@\fP\f2tagname\fP を解釈できるようにします。これにより、Javadoc ツールはタグ名の「スペルチェック」を行うことができるので、ソースコード内のすべてのカスタムタグに \f2\-tag\fP オプションを組み込むことをお勧めします。今回の実行で出力されないタグは、\f2X\fP を付けて無効にします。 +Javadoc ġ뤬ɥơ󥳥ΰ 1 ļñʥ֥å \f2@\fP\f2tagname\fP Ǥ褦ˤޤJavadoc ġϥ̾Ρ֥ڥåפԤȤǤΤǡ¸ߤ뤹٤ƤΥॿˤĤơ \f2\-tag\fP ץޤ뤳ȤפǤμ¹ԤǤϽϤʤϡX դ̵ \f2ˤޤ\fP .LP -コロン (\f4:\fP) は常に区切り文字になります。\f2tagname\fP でコロンを使用するには、「タグ名でのコロンの使用」を参照してください。 + (\f4:\fP) ˶ڤʸˤʤޤtagname \f2ǥѤˡˤĤƤϡ\fP ֥̾ǤΥλѡפ򻲾ȤƤ .LP -\f2\-tag\fP オプションは、タグの見出し「taghead」を太字で出力します。 その次の行には、このオプションの引数で指定したテキストが続きます。 以下の例を参照してください。ブロックタグと同様、この引数のテキストにはインラインタグを含めることができます。 このインラインタグも解釈されます。出力は、引数を 1 つ取る標準のタグ (\f2@return\fP、\f2@author\fP など) の出力とよく似ています。\f2taghead\fP を省略すると、\f2tagname\fP が見出しとして表示されます。 +\f2\-tag\fP ץϡθФtagheadפǽϤޤ μιԤˤϡΥץΰǻꤷƥȤ³ޤ ʲ򻲾ȤƤ֥åƱ͡ΰΥƥȤˤϥ饤󥿥ޤ뤳ȤǤޤΥ饤󥿥ᤵޤϤϡ 1 ļɸΥ ( \f2@return\fP \f2@author\fP ʤ) νϤȤ褯Ƥޤ\f2taghead\fP άȡ\f2tagname\fP ФȤɽޤ .LP -\f3タグの配置\fP \- 引数の \f4Xaoptcmf\fP 部分は、ソースコード内のタグを配置できる位置と、\f2X\fP を使ってこのタグを無効にできるかどうかを特定します。タグの配置位置を制限しない場合は \f4a\fP を指定します。 それ以外の文字の組み合わせも可能です。 \f4X\fP (タグの無効化) +\f3\fP \- \f4Xaoptcmf\fP ʬϡΥ֤Ǥ֤ȡ ȤäƤΥ̵ˤǤ뤫ɤꤷޤ \f2X\fP). ְ֤¤ʤ \f4a\fP ꤷޤʳʸȤ߹碌ǽǤ \f4X\fP (̵) .br -\f4a\fP (すべての位置) +\f4a\fP (٤) .br -\f4o\fP (概要) +\f4o\fP () .br -\f4p\fP (パッケージ) +\f4p\fP (ѥå) .br -\f4t\fP (型すなわちクラスおよびインタフェース) +\f4t\fP (Ĥޤꥯ饹ȥ󥿥ե) .br -\f4c\fP (コンストラクタ) +\f4c\fP (󥹥ȥ饯) .br -\f4m\fP (メソッド) +\f4m\fP (᥽å) .br -\f4f\fP (フィールド) +\f4f\fP (ե) .LP -\f3シングルタグの例\fP \- ソースコード内の任意の位置で使用で気るタグのタグオプションの例を示します。 +\f3󥰥륿\fP \- Ǥդΰ֤ǻѤǤ륿Υץ򼨤ޤ .nf \f3 .fl @@ -5107,7 +3604,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -@todo をコンストラクタ、メソッド、フィールドのみで使用する場合は、以下のオプションを使用します。 +@todo 򥳥󥹥ȥ饯᥽åɡեɤΤߤǻѤϡʲΥץѤޤ .nf \f3 .fl @@ -5115,7 +3612,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -上の例の最後のコロン (\f2:\fP) は、パラメータ区切り子ですが、見出しテキストの一部になっています (以下の例を参照)。次の例のように、\f2@todo\fP タグを含むソースコードでは、いずれかのタグオプションを使用します。 +κǸΥ (\f2:\fP) ϡѥ᡼ڤҤǤФƥȤΰˤʤäƤޤ (ʲ򻲾)Τ褦ˡ \f2@todo\fP ޤॽɤǤϡ줫ΥץѤޤ .nf \f3 .fl @@ -5123,7 +3620,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -\f3タグ名にコロンを使用する\fP \- コロン (:) をバックスラッシュでエスケープすると、コロンをタグ名に使用することができます。このドキュメンテーションコメントの中では、次のように使用します。 +\f3̾˥Ѥ\fP \- (:) Хååǥפȡ򥿥̾˻Ѥ뤳ȤǤޤΥɥơ󥳥ȤǤϡΤ褦˻Ѥޤ .nf \f3 .fl @@ -5135,7 +3632,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -でこのタグオプションを使用すると、 +ǤΥץѤȡ .nf \f3 .fl @@ -5143,9 +3640,9 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -\f3タグ名のスペルチェック (タグの無効化)\fP \- ソースコード内に配置した一部のカスタムタグの出力を抑制したい場合があります。この場合も、ソースコード内にすべてのタグを配置し、出力を抑制しないタグを有効にし、出力を抑制するタグを無効にします。タグを無効にするには、\f2X\fP を指定します。指定しないと、そのタグは有効になります。 これにより、Javadoc ツールは、検出したタグが入力ミスなどによる未知のタグであるかどうかを特定できます。未知のタグを検出した場合、Javadoc ツールは警告を出力します。 +\f3̾Υڥå (̵)\fP \- ֤ΥॿνϤ礬ޤξ⡢ˤ٤ƤΥ֤ϤʤͭˤϤ륿̵ˤޤ \f2X\fP ¸ߤϥ̵ˤʤꡢ¸ߤʤϥͭˤʤޤˤꡢJavadoc ġϡФϥߥʤɤˤ̤ΤΥǤ뤫ɤǤޤ̤ΤΥ򸡽Ф硢Javadoc ġϷٹϤޤ .LP -すでに配置されている値に \f2X\fP を追加できます。 こうしておけば、\f2X\fP を削除するだけでタグを有効にすることができます。たとえば、@todo タグの出力を抑制したい場合、次のように指定します。 +Ǥ֤Ƥͤ \f2X\fP ɲäǤޤƤС \f2X ǥͭˤ뤳ȤǤޤ\fPȤС@todo νϤ硢Τ褦˻ꤷޤ .nf \f3 .fl @@ -5153,7 +3650,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -さらに単純な指定方法もあります。 +ñʻˡ⤢ޤ .nf \f3 .fl @@ -5162,13 +3659,13 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 \fP .fi .LP -構文 \f2\-tag todo:X\fP は、\f2@todo\fP が taglet で定義されている場合も有効です。 +ʸ \f2\-tag todo:X\fP ϡ \f2@todo\fP åȤƤƤͭǤ .LP -\f3タグの順序\fP \- \f2\-tag\fP (および \f2\-taglet\fP) オプションの順序によって、その出力順序が決定します。カスタムタグと標準タグを組み合わせて使用することもできます。標準タグのタグオプションは、順序を決定するためだけのプレースホルダです。これらは標準タグ名のみを使用します。(標準タグの小見出しは変更できません。)これについては、以下の例で説明します。 +\f3ν\fP \- \f2\-tag\fP ( \f2\-taglet\fP) ץνˤäơνϽ礬ޤޤॿɸॿȤ߹碌ƻѤ뤳ȤǤޤɸॿΥץϡꤹ뤿Υץ졼ۥǤɸॿ̾ΤߤѤޤ(ɸॿξФѹǤޤ)ˤĤƤϡʲޤ .LP -\f2\-tag\fP がない場合、\f2\-taglet\fP の位置によってその順序が決定します。タグが両方とも存在する場合、コマンド行の最後にあるほうがその順序を決定します。これは、タグやタグレットがコマンド行に指定された順番に処理されるためです。たとえば、\f2\-taglet\fP と \f2\-tag\fP の両方が todo という名前を持っている場合、コマンド行の最後にあるほうが順序を決定します。 +\f2\-tag\fP ¸ߤʤϡ \f2\-taglet\fP ΰ֤ˤäƤνޤޤξȤ¸ߤ硢ޥɹԤκǸˤۤνꤷޤϡ䥿åȤޥɹԤ˻ꤵ줿֤˽뤿ǤȤС \f2\-taglet\fP \f2\-tag\fP ξ todo Ȥ̾äƤ硢ޥɹԤκǸˤۤꤷޤ .LP -\f3タグの完全セットの例\fP \- この例では、出力の「Parameters」と「Throws」の間に「To Do」を挿入します。X を使用して、@example が、ソースコード内の今回の実行では出力されないタグであることを指定します。@argfile を使用する場合は、次のように、引数ファイル内の別々の行にタグを配置できます。 行の継続を示す文字は不要です。 +\f3δåȤ\fP \- ǤϡϤΡParametersפȡThrowsפδ֤ˡTo DoפޤX Ѥơ@example κμ¹ԤǤϽϤʤǤ뤳Ȥꤷޤ@argfile ѤϡΤ褦ˡե̡ιԤ˥֤ǤޤԤη³򼨤ʸפǤ .nf \f3 .fl @@ -5187,37 +3684,37 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 \fP .fi .LP -javadoc がドキュメンテーションコメントを解析する際に検出されたタグのうち、標準タグでも \f2\-tag\fP や \f2\-taglet\fP で渡されるタグでもないものは、未知のタグの見なされます。 この場合、警告がスローされます。 +javadoc ɥơ󥳥ȤϤݤ˸줿ΤɸॿǤ⡢ \f2\-tag\fP \f2\-taglet\fP Ϥ줿ǤʤΤϤ٤̤ΤΥȤߤʤ졢ٹ𤬥ޤ .LP -標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\f2\-tag\fP オプションを使用すると、このリストに追加されるタグ、すなわち標準タグの位置がデフォルトの位置から移動します。つまり、標準タグに \f2\-tag\fP オプションを付けなければ、これらはデフォルトの位置に配置されたままになります。 +ɸॿϡǽ顢ǥեȤνǥꥹŪ˳Ǽޤ \f2\-tag\fP ץѤȡΥꥹȤɲä륿ʤɸॿΰ֤ǥեȤΰ֤ưޤĤޤꡢɸॿ \f2\-tag\fP ץդʤСϥǥեȤΰ֤֤줿ޤޤˤʤޤ .LP -\f3競合の回避\fP \- 固有の名前空間を分割するには、パッケージに使用されている \f2com.mycompany.todo\fP のように、ドット (.) 区切りの命名規則を使用します。Sun は、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Sun が提供する同じ名前のタグの動作をオーバーライドします。つまり、ユーザーが \f2@todo\fP という名前のタグまたはタグレットを作成している場合、Sun があとから同じ名前の標準タグを作成しても、そのタグまたはタグレットは元の動作を保持します。 +\f3β\fP \- ֤ͭ̾٤ʬˤϡѥå˻ѤƤ \f2com.mycompany.todo Ȥ̾Τ褦ˡɥå (.) ڤ국Ȥ̾Ȥޤ\fPOracle ϡ̾˥ɥåȤޤޤʤɸॿޤ桼ϡOracle 󶡤Ʊ̾Υư򥪡С饤ɤޤĤޤꡢ \f2@todo\fP Ȥ̾ΥޤϥåȤ桼硢Oracle θƱ̾ɸॿȤƤ⡢ưϾ˥桼ưƱˤʤޤ .LP -\f3注釈 vs. Javadoc タグ\fP \- 一般に、追加する必要のあるマークアップが、ドキュメンテーションに影響を与えたりドキュメンテーションを生成したりするためのものである場合、そのマークアップは javadoc タグにすべきです。 それ以外の場合は注釈にすべきです。 +\f3 vs. Javadoc \fP \- ̤ˡɲäɬפΤޡåפɥơ˱ƶͿɥơꤹ뤿ΤΤǤ硢Υޡåפ javadoc ˤ٤Ǥʳξˤ٤Ǥ .na -\f2「Comparing Annotations and Javadoc Tags」\fP @ +\f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotationsを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations򻲾ȤƤ .LP -\-taglet オプションを使用して、より複雑なブロックタグやカスタムインラインタグを 作成することができます。 +\-taglet ץѤơʣʥ֥å䥫।饤󥿥 뤳ȤǤޤ .LP .TP 3 \-taglet\ \ class -そのタグのドキュメントの生成に使うドックレットを起動するためのクラスファイルを指定します。クラスの完全指定名を指定してください。このタグレットは、カスタムタグのテキスト引数の数も定義します。タグレットは、これらの引数を受け付け、処理し、出力を生成します。外部ドキュメントとサンプルタグレットについては、以下を参照してください。 +ΥΥɥȤ˻ȤɥååȤư뤿Υ饹եꤷޤ饹δ̾ꤷƤΥåȤϡॿΥƥȰοޤåȤϡΰդϤޤɥȤȥץ륿åȤˤĤƤϡʲ򻲾ȤƤ .RS 3 .TP 2 o .na -\f2「タグレットの概要」\fP @ +\f2֥åȤγס\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html .RE .LP -タグレットは、標準タグまたはインラインタグで便利です。タグレットは任意の数の引数をとることができます。 また、テキストを太字にする、箇条書きを作成する、テキストをファイルに書き出す、その他のプロセスを開始するなどのカスタム動作を実装できます。 +åȤϡ֥åޤϥ饤󥿥ǤåȤǤդοΰȤ뤳ȤǤޤޤƥȤˤ롢վ񤭤롢ƥȤե˽񤭽Ф¾Υץ򳫻ϤʤɤΥưǤޤ .LP -タグレットで指定できるのは、タグの配置場所と配置形式のみです。その他のすべての決定は、ドックレットによって行われます。タグレットを使用しても、包含クラスのリストからクラス名を削除するなどの処理は実行できません。ただし、タグのテキストをファイルに出力したり、別のプロセスをトリガーするなどの副作用は得られます。 +åȤǻǤΤϡ־ַΤߤǤ¾Τ٤ƤηϡɥååȤˤäƹԤޤåȤѤƤ⡢ޥ饹ΥꥹȤ饯饹̾ʤɤνϼ¹ԤǤޤ󡣤ΥƥȤե˽Ϥꡢ̤ΥץȥꥬʤɤѤޤ .LP -タグレットのパスを指定するには、\f2\-tagletpath\fP オプションを使用します。以下は、生成されるページの「Parameter」と「Throws」の間に「To Do」タグレットを挿入する例です。 +åȤΥѥꤹˤϡ\f2\-tagletpath\fP ץѤޤʲϡڡΡParameterפȡThrowsפδ֤ˡTo DoץåȤǤ .nf \f3 .fl @@ -5238,25 +3735,25 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html \fP .fi .LP -\f2\-tag\fP オプションの代わりに \f2\-taglet\fP オプションを使用することもできますが、読みやすさを考慮するなら、\f2\-tag\fP オプションを使用したほうがよいでしょう。 +ޤ \f2\-taglet\fP ץ \f2\-tag\fP ץ˻Ѥ뤳ȤǤޤȲ㲼ǽޤ .LP .TP 3 \-tagletpath\ \ tagletpathlist -taglet クラスファイル (.class) の検索パスを指定します。\f2tagletpathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパスの以下すべてのサブディレクトリを検索します。 +taglet 饹ե (.class) θѥꤷޤ\f2tagletpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤ .LP .TP 3 \-docfilessubdirs\ -\f2doc\-files\fP ディレクトリの深いコピーを有効にします。つまり、コピー先には、サブディレクトリとすべてのコンテンツがコピーされます。たとえば、\f2doc\-files/example/images\fP ディレクトリとその中のファイルがコピーされます。ここでも、サブディレクトリを除外する指定が可能です。 +\f2doc\-files\fPץǥ쥯ȥοԡͭˤޤĤޤꡢԡˤϡ֥ǥ쥯ȥȤ٤ƤΥƥĤԡޤȤСǥ쥯ȥ \f2doc\-files/example/images\fP ȤΤ٤ƤƤԡޤǤ⡢֥ǥ쥯ȥ꤬ǽǤ .LP .TP 3 \-excludedocfilessubdir\ \ name1:name2... -所定の名前の \f2doc\-files\fP サブディレクトリを除外します。これにより、SCCS とその他のソースコード制御サブディレクトリのコピーを防ぎます。 +\f2doc\-files\fPפΡꤵ줿̾Υ֥ǥ쥯ȥ򤹤٤ƽޤˤꡢSCCS Ȥ¾Υ極֥ǥ쥯ȥΥԡɤޤ .LP .TP 3 \-noqualifier\ \ all\ | \ packagename1:packagename2:... -出力されるクラス名の先頭のパッケージ名 (パッケージ修飾子) を省略します。\f2\-noqualifier\fP の引数として \f2all\fP を指定した場合、すべてのパッケージ修飾子がすべて省略されます。 削除する複数のパッケージ名をコロンで区切って、ワイルドカードとともに指定することもできます。クラスまたはインタフェース名が表示される位置からパッケージ名が削除されます。 +Ϥ륯饹̾ƬΥѥå̾ (ѥå) άޤ \f2\-noqualifier\fP ΰϡ\f2all\fP(٤ƤΥѥåҤά)ҤȤƺ٤ѥåΥڤꥹ (磻ɥɤ)Τ줫Ȥʤޤ饹ޤϥ󥿥ե̾ɽ֤ѥå̾ޤ .LP -次の例では、すべてのパッケージ修飾子を省略します。 +Ǥϡ٤ƤΥѥåҤάޤ .nf \f3 .fl @@ -5264,7 +3761,7 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -次の例では、パッケージ修飾子 java.lang および java.io を省略します。 +Ǥϡѥå java.lang java.io άޤ .nf \f3 .fl @@ -5272,7 +3769,7 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -次の例では、java で始まるパッケージ修飾子と com.sun というサブパッケージ (javax ではない) を省略します。 +Ǥϡjava ǻϤޤѥåҤ com.sun Ȥ֥ѥå (javax ǤϤʤ) άޤ .nf \f3 .fl @@ -5280,63 +3777,54 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -パッケージ修飾子が上記の動作に従って表示される場合、名前は適切に短くされます。 詳細は「名前の表示方法」を参照してください。この規則は、\f2\-noqualifier\fP を使用したかどうかにかかわらず有効です。 +ѥåҤ嵭ư˽äɽ硢̾Ŭڤûޤܺ٤ϡ̾ɽˡפ򻲾ȤƤε§ϡ \f2\-noqualifier\fP Ѥ뤫ɤˤ餺ͭǤ .LP .TP 3 \-notimestamp\ -タイムスタンプが抑制されます。 各ページ先頭近くにある、生成された HTML 内の HTML コメントでタイムスタンプが隠されます。Javadoc を 2 つのソースベースで実行し、それらに対して diff を実行するときにこのオプションを使用すると、タイムスタンプによって diff が発生しなくなるので便利です (このオプションを使用しないと、各ページで diff になります)。タイムスタンプには Javadoc のバージョン番号が含まれており、次のようになります。 +ॹפޤƥڡƬ᤯ˤ롢줿 HTML HTML ȤǥॹפޤJavadoc 2 ĤΥ١Ǽ¹ԤФ diff ¹ԤȤˤΥץѤȡॹפˤä diff ȯʤʤΤǤ (ΥץѤʤȡƥڡ diff ˤʤޤ)ॹפˤ Javadoc ΥСֹ椬ޤޤƤꡢΤ褦ˤʤޤ .nf \f3 .fl - <!\-\- Generated by javadoc (build 1.5.0\-internal) on Tue Jun 22 09:57:24 PDT 2004 \-\-> + <!\-\- Generated by javadoc (build 1.5.0_01) on Thu Apr 02 14:04:52 IST 2009 \-\-> .fl \fP .fi .LP .TP 3 \-nocomment\ -主説明およびすべてのタグを含むコメント本文全体を抑制し、宣言だけを生成します。このオプションにより、元は異なる目的のためだったソースファイルを再利用し、新しいプロジェクトの早い段階でスケルトン HTML ドキュメントを作成できるようになりました。 +Ӥ٤ƤΥޤॳʸΤޤΥץˤꡢϰۤʤŪΤäեѤץȤᤤʳǥȥ HTML ɥȤǤ褦ˤʤޤ +.LP +.TP 3 +\-sourcetab tabLength +dzƥ֤οꤷޤ .RE -.SH "コマンド行引数ファイル" +.SH "ޥɹ԰ե" .LP +javadoc ΥޥɹԤûʷˤꤹ뤿ˡ \f2javadoc\fP ޥɤФ ( \f2\-J\fP ץ) ä 1 İʾΥեꤹ뤳ȤǤޤΤȤѤСɤΥڥ졼ƥ󥰥ƥǤ⡢ǤդĹ javadoc ޥɤǤޤ .LP -\f2javadoc\fP のコマンド行を短くしたり簡潔にしたりするために、\f2javadoc\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) が入った 1 つ以上のファイルを指定することができます。このことを利用すれば、どのオペレーティングシステム上でも、任意の長さの javadoc コマンドを作成できます。 +եˤϡjavac Υץȥե̾ͳȤ߹碌ƵҤǤޤեγưϡڡޤϲԤǶڤޤե̾˶򤬴ޤޤƤϡΥե̾ΤŰǰϤߤޤ .LP +եΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣰եΥե̾ꥹȤǤϡ磻ɥ (*) ϻѤǤޤ󡣤ȤС \f2*.java\fP ȤϻǤޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ \f2\-J\fP ץ⥵ݡȤƤޤ ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP -引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。 -.LP -.LP -引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 -.LP -.LP -javadoc を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javadoc は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 -.LP +javadoc ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤjavadoc ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .SS -引数ファイルを 1 つ指定する例 -.LP -.LP -\f2argfile\fP という名前の引数ファイルにすべての Javadoc 引数を格納し、次のように使用することができます。 +ե 1 Ļꤹ .LP +Τ褦ˡ\f2argfile\fPפȤ̾ñΰեˡJavadoc Τ٤ƤΰǼޤ .nf \f3 .fl % \fP\f3javadoc @argfile\fP .fl .fi - -.LP -.LP -この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。 .LP +ΰեˤϡǼƤ 2 ĤΥեƤξȤ뤳ȤǤޤ .SS -引数ファイルを 2 つ指定する例 +ե 2 Ļꤹ .LP +2 ĤΰեǤޤ1 Ĥ Javadoc ץѡ⤦ 1 Ĥϥѥå̾ޤϥե̾ѤǤʤΥꥹȤǤϹԷ³ʸѤƤޤ .LP -Javadoc オプション用に 1 つ、ソースファイル名用に 1 つというように、2 つの引数ファイルを作成し、次のようにして使用することができます。なお、このあとのリストでは、行の継続文字を使用していません。 -.LP -.LP -以下の内容を含む \f2options\fP という名前のファイルを作成します。 -.LP +Ƥޤࡢ\f2options\fPפȤ̾Υեޤ .nf \f3 .fl @@ -5346,27 +3834,24 @@ Javadoc オプション用に 1 つ、ソースファイル名用に 1 つとい .fl \-splitindex .fl - \-windowtitle 'Java 2 Platform v1.3 API Specification' + \-windowtitle 'Java SE 7 API Specification' .fl - \-doctitle 'Java(TM) 2 Platform 5.0 API Specification' + \-doctitle 'Java SE 7 API Specification' .fl - \-header '<b>Java 2 Platform </b><br><font size="\-1">5.0</font>' + \-header '<b>Java(TM) SE 7</b>' .fl - \-bottom 'Copyright 1993\-2000 Sun Microsystems, Inc. All Rights Reserved.' + \-bottom 'Copyright © 1993\-2011 Oracle and/or its affiliates. All rights reserved.' .fl \-group "Core Packages" "java.*" .fl - \-overview /java/pubs/ws/1.5/src/share/classes/overview\-core.html + \-overview /java/pubs/ws/1.7.0/src/share/classes/overview\-core.html .fl - \-sourcepath /java/pubs/ws/1.5/src/share/classes + \-sourcepath /java/pubs/ws/1.7.0/src/share/classes .fl \fP .fi - -.LP -.LP -以下の内容を含む \f2packages\fP という名前のファイルを作成します。 .LP +Ƥޤࡢ\f2packages\fPפȤ̾Υեޤ .nf \f3 .fl @@ -5378,115 +3863,89 @@ Javadoc オプション用に 1 つ、ソースファイル名用に 1 つとい .fl \fP .fi - -.LP -.LP -そのあと、次のコマンドを使用して javadoc を実行します。 .LP +ΤȡΥޥɤѤ javadoc ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc @options @packages\fP .fl .fi - -.LP .SS -パス付きの引数ファイルの例 -.LP -.LP -引数ファイルには、パスを指定できます。 ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。 つまり、下の例の場合は、\f2path1\fP や \f2path2\fP から見た相対パスではありません。 +ѥդΰե .LP +եˤϡѥǤޤΥե˻ꤵ줿ե̾ϡߤκȥǥ쥯ȥ꤫鸫ХѥˤʤޤĤޤꡢξϡ \f2path1\fP \f2path2\fP 鸫ХѥǤϤޤ .nf \f3 .fl % \fP\f3javadoc @path1/options @path2/packages\fP .fl .fi - -.LP .SS -オプションの引数の例 -.LP -.LP -次に、Javadoc オプションに対する引数だけを引数ファイルに格納する例を示します。ここでは、\f2\-bottom\fP を例に取り上げます。 そのオプションには、かなり長い引数を指定することがあるからです。まず、このオプションのテキスト引数になる次のような内容を含む、\f2bottom\fP という名前のファイルを作成します。 +ץΰ .LP +ˡJavadoc ץФե˳Ǽ򼨤ޤǤ \f2\-bottom\fP ץѤޤȤΤ⡢Ĺʤǽ뤫ǤΤ褦ʥƥȰޤࡢ\f2bottom\fPפȤ̾ΥեǤޤ .nf \f3 .fl -'<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a +<font size="\-1"> .fl -bug or feature</a><br><br>Java is a trademark or registered trademark of + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl -Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-2000 Sun + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl -All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font> .fl \fP .fi - -.LP -.LP -そのあと、次のようにして Javadoc ツールを実行します。 .LP +ΤȡΤ褦ˤ Javadoc ġ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc \-bottom @bottom @packages\fP .fl .fi - -.LP -.LP -また、引数ファイルの先頭に \f2\-bottom\fP オプションを組み込んでおけば、次のようにして実行できます。 .LP +뤤ϡեƬ \f2\-bottom\fP ץȤ߹ȡΤ褦˼¹ԤƤ⤫ޤޤ .nf \f3 .fl % \fP\f3javadoc @bottom @packages\fP .fl .fi -.SH "名前" -実行 -.SH "Javadoc の実行" +.SH "̾" +¹ +.SH "Javadoc μ¹" .LP +\f3Сֹ\fP \- javadoc ΥСֹȽ̤ˤϡ\f3javadoc \-J\-version\fP Ѥޤϥȥ꡼ˤɸɥååȤΥСֹ椬ޤޤޤνϤ̵ˤˤϡ \f2\-quiet\fP Ѥޤ .LP -\f3バージョン番号\fP \- javadoc のバージョン番号を判別するには、\f3javadoc \-J\-version\fP を使用します。出力ストリームには標準ドックレットのバージョン番号が含まれます。\f2\-quiet\fP で無効にできます。 -.LP -.LP -\f3公開プログラムインタフェース\fP \- Java 言語で記述されたプログラムから Javadoc ツールを起動するとき使用します。このインタフェースは \f2com.sun.tools.javadoc.Main\fP にあります (javadoc は再入可能)。詳細は、 +\f3ץ।󥿥ե\fP \- Java ǵҤ줿ץफ Javadoc ġưȤѤޤΥ󥿥ե \f2com.sun.tools.javadoc.Main ˤޤ\fP (javadoc Ϻǽ)ܺ٤ϡ .na -\f2「標準ドックレット」\fP @ +\f2ɸɥååȡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammaticallyを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically򻲾ȤƤ .LP -.LP -\f3ドックレットの実行\fP \- 下記の説明は、標準 HTML ドックレットを呼び出すためのものです。カスタムドックレットを呼び出すには、\-doclet および \-docletpath オプションを使用します。特定のドックレットを実行した完全な例については、 +\f3ɥååȤμ¹\fP \- ϡɸ HTML ɥååȤƤӽФΤΤǤɥååȤƤӽФˤϡ\-doclet \-docletpath ץѤޤΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 -.LP -.SH "簡単な例" -.LP -.LP -javadoc は、パッケージ全体に対して実行することも、個々のソースファイルに対して実行することもできます。各パッケージ名は、それぞれのパッケージ名に対応するディレクトリ名を持ちます。次の例では、ソースファイルは \f2/home/src/java/awt/*.java\fP にあります。生成先ディレクトリは \f2/home/html\fP です。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ +.SH "ñ" .LP +javadoc ϡѥåΤФƼ¹Ԥ뤳Ȥ⡢ġΥեФƼ¹Ԥ뤳ȤǤޤƥѥå̾ϡ줾Υѥå̾бǥ쥯ȥ̾ޤǤϡե \f2/home/src/java/awt/*.java ˤޤ\fPǥ쥯ȥ \f2/home/html Ǥ\fP .SS -1 つ以上のパッケージのドキュメント化 +1 İʾΥѥåΥɥȲ .LP +ѥåɥȲˤϡΥѥåΥե (\f2*.java\fP) 򡢤ΥѥåƱ̾Υǥ쥯ȥ˳Ǽɬפޤѥå̾ ( \f2java.awt.color\fP Τ褦˥ɥåȤǶڤ줿) Ĥμ̻Ҥ鹽Ƥ硢¦μ̻Ҥ˿ʤिӤˡμ̻Ҥ꿼֥ǥ쥯ȥбƤɬפޤ ( \f2java/awt/color\fP ʤ) ñѥåΥե 2 롼פʬۤʤˤ뤽Τ褦 2 ĤΥǥ쥯ȥĥ꡼ˤ줾ǼƤ⤫ޤޤ󡣤ξΥǥ쥯ȥؤΥѥ \f2\-sourcepath\fP ꤹɬפޤ: \f2src1/java/awt/color\fP \f2src2/java/awt/color\fP .LP -パッケージをドキュメント化するには、そのパッケージのソースファイル (\f2*.java\fP) が、パッケージと同じ名前を持つディレクトリ内に存在していなければなりません。パッケージ名が複数の識別子で構成されている (\f2java.awt.color\fP のように、各識別子はドットで区切られている) 場合は、後続の各識別子が下位のサブディレクトリに対応していなければなりません (\f2java/awt/color\fP など)。1 つのパッケージのための複数のソースファイルを、異なる場所にある 2 つのディレクトリツリーに分けて格納することも可能です (\f2src1/java/awt/color\fP と \f2src2/java/awt/color\fP など)。 ただし、その場合は、\f2\-sourcepath\fP によって、その両方の場所を指定しなければなりません。 -.LP -.LP -javadoc を実行するには、\f2cd\fP コマンドを使ってディレクトリを変更するか、または \f2\-sourcepath\fP オプションを使用します。以下の例では、両方の方法について説明します。 -.LP +javadoc ¹Ԥˤϡ \f2cd\fP Ѥƥǥ쥯ȥѹ뤫 \f2\-sourcepath\fP ץѤޤʲǤϡξˡˤĤޤ .RS 3 .TP 2 o -\f3ケース 1 \- 1 つ以上のパッケージからの起動を再帰的に実行\fP \- この例では javadoc が任意のディレクトリから実行できるように、\-sourcepath を使用し、再帰的処理のために \-subpackages (1.4 の新オプション) を使用します。これは、\f2java\fP のサブパッケージ (\f2java.net\fP および \f2java.lang\fP をルートとするパッケージを除く) を処理します。ただし、\f2java.lang\fP のサブパッケージである \f2java.lang.ref\fP は除外されます。 +\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåϽޤΤȤ \f2java.lang Υ֥ѥå\fPǤ java.lang.ref \f2ޤ\fP .nf \f3 .fl @@ -5494,10 +3953,10 @@ o .fl .fi .LP -その他のパッケージツリーを巡回するには、\f2java:javax:org.xml.sax\fP のように、\f2\-subpackages\fP 引数にその名前を追加します。 +ۤΥѥåĥ꡼Ⲽˤɤˤϡ \f2java:javax:org.xml.sax Τ褦ˡ\fP Υѥå̾ \-subpackages \f2ΰɲäޤ\fP .TP 2 o -\f3ケース 2 \- ルートソースディレクトリに移ってから明示的なパッケージに対して実行\fP \- 完全指定のパッケージ名の親ディレクトリに移ります。次に、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。 +\f3 2 \- 롼ȥǥ쥯ȥ˰ܤäƤŪʥѥåФƼ¹\fP \- Υѥå̾οƥǥ쥯ȥ˰ܤޤˡɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5508,7 +3967,7 @@ o .fi .TP 2 o -\f3ケース 3 \- 任意のディレクトリから実行。 ソースファイルは 1 つのディレクトリツリー内にある\fP \- このケースでは、現在のディレクトリがどこであってもかまいません。最上位パッケージの親ディレクトリを \f2\-sourcepath\fP に指定し、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。 +\f3 3 \- ǤդΥǥ쥯ȥ꤫¹ԡե 1 ĤΥǥ쥯ȥĥ꡼ˤ\fP \- ΥǤϡߤΥǥ쥯ȥ꤬ɤǤäƤ⤫ޤޤ󡣺Ǿ̥ѥåοƥǥ쥯ȥ \f2\-sourcepath\fP ˻ꤷɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5517,7 +3976,7 @@ o .fi .TP 2 o -\f3ケース 4 \- 任意のディレクトリから実行。 ソースファイルは複数のディレクトリツリー内にある\fP \- これはケース 3 と似ていますが、パッケージが複数のディレクトリツリーに存在します。それぞれのツリーのルートへのパスを \f2\-sourcepath\fP に指定し (コロンで区切る)、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。1 つのパッケージのすべてのソースファイルが、1 つのルートディレクトリの下に存在しなければならない、ということはありません。 ソースパスとして指定された場所のどこかで見つかれば十分です。 +\f3 4 \- ǤդΥǥ쥯ȥ꤫¹ԡեʣΥǥ쥯ȥĥ꡼ˤ\fP \- ϥ 3 ȻƤޤѥåʣΥǥ쥯ȥĥ꡼¸ߤޤ줾Υĥ꡼Υ롼ȤؤΥѥ \f2\-sourcepath\fP ˻ꤷ (Ƕڤ)ɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ1 ĤΥѥåΤ٤ƤΥե뤬1 ĤΥ롼ȥǥ쥯ȥβ¸ߤʤФʤʤȤȤϤޤ󡣥ѥȤƻꤵ줿ΤɤǸĤнʬǤ .nf \f3 .fl @@ -5525,21 +3984,16 @@ o .fl .fi .RE - -.LP -.LP -結果: 上記のどのケースでも、\f2java.awt\fP と \f2java.awt.event\fP パッケージ内の public および protected クラスとインタフェースについて、HTML 形式のドキュメントが生成され、指定された生成先ディレクトリ (\f2/home/html\fP) に HTML ファイルが保存されます。2 つ以上のパッケージが生成されているので、ドキュメントは、パッケージのリスト、クラスのリスト、およびメインのクラスページという 3 つのフレームを持つことになります。 .LP +: ٤ƤΥǥѥå \f2java.awt\fP \f2java.awt.event\fP public protected 饹ȥ󥿥եˤĤơHTML ΥɥȤ졢ꤵ줿ǥ쥯ȥ (\f2/home/html\fP) HTML ե뤬¸ޤ2 İʾΥѥåƤΤǡɥȤϡѥåΥꥹȡ饹ΥꥹȡӥᥤΥ饹ڡȤ 3 ĤΥե졼ĤȤˤʤޤ .SS -1 つ以上のクラスのドキュメント化 -.LP -.LP -また、1 つ以上のソースファイル (\f2.java\fP) を渡して、Javadoc ツールを実行することもできます。javadoc は、次の 2 つのどちらかの方法で実行できます。 1 つは、\f2cd\fP コマンドでディレクトリを変更する方法、もう 1 つは \f2.java\fP ファイルへのパスを完全指定する方法です。相対パスは、現在のディレクトリを起点とします。ソースファイル名を渡すときは、\f2\-sourcepath\fP オプションは無視されます。アスタリスク (*) のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 +1 İʾΥ饹ΥɥȲ .LP +ޤ1 İʾΥե (\f2.java\fP) ϤơJavadoc ġ¹Ԥ뤳ȤǤޤjavadoc ϡ 2 ĤˡΤ줫Ǽ¹ԤǤޤ1 Ĥ \f2cd\fP Ѥƥǥ쥯ȥѹˡ⤦ 1 Ĥ \f2.java\fP եؤΥѥ˻ꤹˡǤХѥϡߤΥǥ쥯ȥȤޤե̾ϤȤϡ \f2\-sourcepath\fP ץ̵뤵ޤꥹ (*) Τ褦ʥޥɹԥ磻ɥɤѤȡ饹Υ롼פǤޤ .RS 3 .TP 2 o -\f3ケース 1 \- ソースディレクトリに移る\fP \- \f2.java\fP ファイルのあるディレクトリに移ります。次に、ドキュメント化する 1 つ以上のソースファイルの名前を指定して javadoc を実行します。 +\f3 1 \- ǥ쥯ȥ˰ܤ\fP \- \f2.java\fP եΤǥ쥯ȥ˰ܤޤˡɥȲ 1 İʾΥե̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5548,10 +4002,10 @@ o % \f3javadoc \-d /home/html Button.java Canvas.java Graphics*.java\fP .fl .fi -この例では、クラス \f2Button\fP と \f2Canvas\fP、および名前が \f2Graphics\fP で始まるクラスについて、HTML 形式のドキュメントが生成されます。パッケージ名ではなくソースファイルが javadoc に引数として渡されているので、ドキュメントは、クラスのリストとメインページという 2 つのフレームを持つことになります。 +Ǥϡ饹 \f2Button\fP \f2Canvas\fP ̾ \f2Graphics ǻϤޤ륯饹ˤĤơHTML ΥɥȤޤ\fPѥå̾ǤϤʤե뤬 javadoc ˰ȤϤƤΤǡɥȤϡ饹ΥꥹȤȥᥤڡȤ 2 ĤΥե졼ĤȤˤʤޤ .TP 2 o -\f3ケース 2 \- パッケージのルートディレクトリに移る\fP \- これは、同じルート内にある複数のサブパッケージの個々のソースファイルをドキュメント化する場合に便利です。パッケージのルートディレクトリに移り、各ソースファイルを、ルートからのパスとともに指定します。 +\f3 2 \- ѥåΥ롼ȥǥ쥯ȥ˰ܤ\fP \- ϡƱ롼ˤʣΥ֥ѥåθġΥեɥȲǤѥåΥ롼ȥǥ쥯ȥ˰ܤꡢƥե򡢥롼ȤΥѥȤȤ˻ꤷޤ .nf \f3 .fl @@ -5560,103 +4014,88 @@ o % \f3javadoc \-d /home/html java/awt/Button.java java/applet/Applet.java\fP .fl .fi -この例では、\f2Button\fP クラスおよび \f2Applet\fP クラスについて、HTML 形式のドキュメントが生成されます。 +Ǥϡ饹 \f2Button\fP \f2Applet ˤĤơHTML ΥɥȤޤ\fP .TP 2 o -\f3ケース 3 \- 任意のディレクトリから\fP \- このケースでは、現在のディレクトリがどこであってもかまいません。ドキュメント化する \f2.java\fP ファイルへの絶対パス (または、現在のディレクトリからの相対パス) を指定して javadoc を実行します。 +\f3 3 \- ǤդΥǥ쥯ȥ꤫\fP \- ΥǤϡߤΥǥ쥯ȥ꤬ɤǤäƤ⤫ޤޤ󡣥ɥȲ .java եؤХѥ (ޤϥȥǥ쥯ȥ꤫Хѥ) ꤷ \f2javadoc\fP ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc \-d /home/html /home/src/java/awt/Button.java /home/src/java/awt/Graphics*.java\fP .fl .fi -この例では、クラス \f2Button\fP と、名前が \f2Graphics\fP で始まるクラスについて、HTML 形式のドキュメントが生成されます。 +Ǥϡ饹 \f2Button\fP ȡ̾ \f2Graphics ǻϤޤ륯饹ˤĤơHTML ΥɥȤޤ\fP .RE - -.LP .SS -パッケージとクラスのドキュメント化 -.LP -.LP -パッケージ全体と個々のクラスを同時に指定してドキュメント化することもできます。次に前述の 2 つの例を組み合わせた例を示します。\f2\-sourcepath\fP は、パッケージへのパスに対しては使用できますが、個々のクラスのパスに対しては使用できません。 +ѥåȥ饹ΥɥȲ .LP +ѥåΤȸġΥ饹Ʊ˻ꤷƥɥȲ뤳ȤǤޤҤ 2 ĤȤ߹碌򼨤ޤ \f2\-sourcepath\fP ϡѥåؤΥѥФƤϻѤǤޤġΥ饹ΥѥФƤϻѤǤޤ .nf \f3 .fl % \fP\f3javadoc \-d /home/html \-sourcepath /home/src java.awt /home/src/java/applet/Applet.java\fP .fl .fi - .LP +Ǥϡѥå \f2java.awt\fP ȥ饹 \f2Applet ˤĤơHTML ΥɥȤޤ\fPJavadoc ġϡ \f2Applet.java ե˥ѥåС\fP ˴Ť \f2Applet Υѥå̾\fP Ƚꤷޤ +.SH "" .LP -この例では、パッケージ \f2java.awt\fP と、クラス \f2Applet\fP について、HTML 形式のドキュメントが生成されます。Javadoc ツールは、\f2Applet\fP のパッケージ名を、\f2Applet.java\fP ソースファイル内のパッケージ宣言 (その宣言がある場合) から判別します。 -.LP -.SH "使用例" -.LP -.LP -Javadoc ツールには多くの便利なオプションがあり、その中にはほかのオプションよりも頻繁に使われるものがあります。ここで紹介するのは、Java プラットフォーム API に対して Javadoc ツールを実行するときに使用する実際のコマンドです。Java 2 Platform, Standard Edition, v1.2 に存在する、約 1500 個の public および protected クラスについてドキュメントを生成するために、180M バイトのメモリーを使用しました。 -.LP -.LP -同じ例を 2 回掲載します。 最初の例はコマンド行から実行するもので、2 番目の例は Makefile から実行するものです。オプションの引数に絶対パスを使用しているため、任意のディレクトリからこの \f2javadoc\fP コマンドを実行できます。 +Javadoc ġˤ¿ʥץ󤬤ꡢˤϤۤΥץˤ˻ȤΤޤǾҲ𤹤ΤϡJava ץåȥե API Ф Javadoc ġ¹ԤȤ˻ѤºݤΥޥɤǤǤϡJava SE Platform, Standard Edition, v1.2 () 1500 Ĥ public protected 饹ΥɥȤ뤿ˡ180M ХȤΥ꡼Ѥޤ .LP +Ʊ 2 ǺܤޤǽϥޥɹԤ¹ԤΤǡ2 ܤ Makefile ¹ԤΤǤץΰХѥѤƤ뤿ᡢƱ \f2javadoc\fP ޥɤɤΥǥ쥯ȥ꤫Ǥ¹ԤǤޤ .SS -コマンド行の例 -.LP -.LP -次のコマンド行の例は 900 文字を超えているため、DOS などのシェルには大きすぎます。この制限を回避するには、コマンド行引数ファイルを使用します。 または、シェルスクリプトを記述します。 +ޥɹԤ .LP +ϡDOS ʤɤΰΥǤĹǽޤ¤򤹤ˤϡޥɹ԰եѤޤޤϡ륹ץȤ򵭽Ҥޤ .nf \f3 .fl -% javadoc \-sourcepath /java/jdk/src/share/classes \\ +% javadoc \-sourcepath /java/jdk/src/share/classes \\ .fl - \-overview /java/jdk/src/share/classes/overview.html \\ + \-overview /java/jdk/src/share/classes/overview.html \\ .fl - \-d /java/jdk/build/api \\ + \-d /java/jdk/build/api \\ .fl - \-use \\ + \-use \\ .fl - \-splitIndex \\ + \-splitIndex \\ .fl - \-windowtitle 'Java 2 Platform 5.0 API Specification' \\ + \-windowtitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-doctitle 'Java(TM) 2 Platform 5.0 API Specification' \\ + \-doctitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-header '<b>Java 2 Platform </b><br><font size="\-1">5.0</font>' \\ + \-header '<b>Java(TM) SE 7</b>' \\ .fl - \-bottom '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit + \-bottom '<font size="\-1"> .fl -a bug or feature</a><br><br>Java is a trademark or registered trademark of Sun Microsystems, + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl -Inc. in the US and other countries.<br>Copyright 1993\-1999 Sun Microsystems, Inc. + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. All Rights Reserved.</font>' \\ + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. +.fl + Other names may be trademarks of their respective owners.</font>' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl - \-group "Extension Packages" "javax.*" \\ + \-group "Extension Packages" "javax.*" \\ .fl - \-J\-Xmx180m \\ + \-J\-Xmx180m \\ .fl @packages .fl \fP .fi - -.LP -.LP -上記のコマンドで、\f2packages\fP は、処理対象のパッケージ名 (\f2java.applet java.lang\fP など) が入っているファイルの名前です。各オプションの、単一引用符で囲まれた引数の内側には、改行文字を挿入できません。たとえば、この例をコピー&ペーストする場合は、\f2\-bottom\fP オプションから改行文字を削除してください。さらに、このあとの「注」も参照してください。 .LP +嵭Υޥɤǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ .SS -Makefile の例 +Makefile .LP -.LP -ここでは、GNU Makefile の例を示します。Windows の Makefile の例については、 +ǤϡGNU Makefile 򼨤ޤWindows Makefile ˤĤƤϡ .na -\f2Windows の Makefile の作成方法\fP @ +\f2Windows Makefile κˡ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html#makefilesを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/faq/index.html#makefiles򻲾ȤƤ .nf \f3 .fl @@ -5692,101 +4131,83 @@ javadoc \-\fP\f3sourcepath\fP\f3 $(SRCDIR) \\ /* Sets path for so .fl .fl -WINDOWTITLE = 'Java 2 Platform v1.2 API Specification' +WINDOWTITLE = 'Java(TM) SE 7 API Specification' .fl -DOCTITLE = 'Java(TM) 2 Platform v1.2 API Specification' +DOCTITLE = 'Java(TM) Platform Standard Edition 7 API Specification' .fl -HEADER = '<b>Java 2 Platform </b><br><font size="\-1">v1.2</font>' +HEADER = '<b>Java(TM) SE 7</font>' .fl -BOTTOM = '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit +BOTTOM = '<font size="\-1"> .fl - a bug or feature</a><br><br>Java is a trademark or registered trademark + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl - of Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-1999 + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl - Sun Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font>' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl GROUPEXT = '"Extension Packages" "javax.*"' .fl -SRCDIR = '/java/jdk/1.2/src/share/classes' +SRCDIR = '/java/jdk/1.7.0/src/share/classes' .fl \fP .fi - .LP +Makefile ΰϡñǰϤߤޤ .LP -Makefile の引数は、単一引用符で囲みます。 -.LP -.LP -\f3注\fP -.LP +\f3\fP .RS 3 .TP 2 o -\f2\-windowtitle\fP オプションを省略すると、Javadoc ツールによって、ドキュメントタイトルがウィンドウタイトルにコピーされます。\f2\-windowtitle\fP のテキストは、基本的に \f2\-doctitle\fP と同じです。 ただし、HTML タグは使用しません。 HTML タグは、ウィンドウタイトルにそのままのテキストとして表示されてしまいます。 +\-windowtitle \f2ץάȡ\fP Javadoc ġˤäƥɥȥȥ뤬ɥȥ˥ԡޤ \f2\-windowtitle\fP ΥƥȤϴŪ \f2\-doctitle\fP ΤΤƱǤHTML ޤޤʤۤʤޤϡHTML raw ƥȤȤƥɥȥɽΤɤǤ .TP 2 o -この例のように \f2\-footer\fP オプションを省略すると、Javadoc ツールによって、ヘッダーテキストがフッターにコピーされます。 +ǹԤäƤ褦 \f2\-footer\fP ץάȡJavadoc ġˤäƥإåΥƥȤեå˥ԡޤ .TP 2 o -この例では必要ありませんが、\-\f2classpath\fP および \-\f2link\fP も重要なオプションです。 +Ǥɬפޤ󤬡\-\f2classpath\fP \-\f2link\fP פʥץǤ .RE - -.LP -.SH "トラブルシューティング" -.LP +.SH "ȥ֥륷塼ƥ" .SS -一般的なトラブルシューティング -.LP +Ūʥȥ֥륷塼ƥ .RS 3 .TP 2 o -\f3Javadoc FAQ\fP \- 一般的なバグおよびトラブルシューティングのヒントは、 +\f3Javadoc FAQ\fP \- ŪʥХӥȥ֥륷塼ƥ󥰤ΥҥȤϡ .na -\f2「Javadoc FAQ」\fP @ +\f2Javadoc FAQ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html#B で参照できます。 +http://java.sun.com/j2se/javadoc/faq/index.html#B ǻȤǤޤ .TP 2 o -\f3バグおよび制限事項\fP \- バグの一部は、「Important Bug Fixes and Changes」 でも参照できます。 +\f3Х»\fP \- ХΰϡImportant Bug Fixes and Changes Ǥ⻲ȤǤޤ .TP 2 o -\f3バージョン番号\fP \- 「バージョン番号」を参照してください。 +\f3Сֹ\fP \- ֥Сֹפ򻲾ȤƤ .TP 2 o -\f3有効なクラスだけをドキュメント化\fP \- パッケージをドキュメント化するとき、Javadoc は、有効なクラス名で構成されているファイルのみを読み込みます。たとえば、ファイル名にハイフン「\-」を含めることで、javadoc によるファイルの解析を防ぐことができます。 +\f3ͭʥ饹ɥȲ\fP \- ѥåɥȲȤJavadoc ϡͭʥ饹̾ǹƤեΤߤɤ߹ߤޤȤСե̾˥ϥե\-פޤ뤳Ȥǡjavadoc ˤեβϤɤȤǤޤ .RE - -.LP .SS -エラーと警告 -.LP -.LP -エラーおよび警告メッセージには、ファイル名と宣言行 (ドキュメンテーションコメント内の特定の行ではない) の行番号が含まれます。 +顼ȷٹ .LP +顼ӷٹåˤϡե̾ (ɥơ󥳥ιԤǤϤʤ) ιֹ椬ޤޤޤ .RS 3 .TP 2 o -\f2"error:cannot read:Class1.java"\fP Javadoc ツールはカレントディレクトリに Class1.java クラスをロードしようとしています。絶対パスまたは相対パスとともに表示されるクラス名は、この例の場合 \f2./Class1.java\fP と同じです。 +\f2"error: cannot read: Class1.java"\fP Javadoc ġϥȥǥ쥯ȥ Class1.java 饹ɤ褦ȤƤޤХѥޤХѥȤȤɽ륯饹̾ϡξ \f2./Class1.java ƱǤ\fP .RE - -.LP -.SH "環境" -.LP +.SH "Ķ" .RS 3 .TP 3 CLASSPATH -Javadoc がユーザークラスのファイルを探すときに使うパスを指定する環境変数です。この環境変数は、\f2\-classpath\fP オプションによってオーバーライドされます。ディレクトリは、次のようにコロンで区切ります。 +Javadoc 桼饹ΥեõȤ˻ȤѥꤹĶѿǤδĶѿϡ \f2\-classpath\fP ץˤäƥС饤ɤޤǥ쥯ȥϡΤ褦˥Ƕڤޤ .:/home/classes:/usr/local/java/classes .RE - -.LP -.SH "関連項目" -.LP +.SH "Ϣ" .RS 3 .TP 2 o @@ -5806,7 +4227,7 @@ javap(1) .TP 2 o .na -\f2Javadoc のホームページ\fP @ +\f2Javadoc Υۡڡ\fP @ .fi http://java.sun.com/j2se/javadoc/index.jsp .TP 2 @@ -5818,16 +4239,14 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html .TP 2 o .na -\f2クラスパスの設定\fP @ +\f2饹ѥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/tools/index.html#general .TP 2 o .na -\f2javac と javadoc がクラスを検索する方法\fP @ +\f2javac javadoc 饹򸡺ˡ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) .RE - -.LP diff --git a/jdk/src/linux/doc/man/ja/javah.1 b/jdk/src/linux/doc/man/ja/javah.1 index 386c5d01752..114b2138719 100644 --- a/jdk/src/linux/doc/man/ja/javah.1 +++ b/jdk/src/linux/doc/man/ja/javah.1 @@ -19,82 +19,67 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "02 Jun 2010" +.TH javah 1 "14 Apr 2011" .LP -.SH "名前" -javah \- C ヘッダーとスタブファイルジェネレータ -.LP -.RS 3 - +.SH "̾" +javah \- C إåȥ֥ե른ͥ졼 .LP .LP -\f3javah\fP は、Java クラスから C ヘッダーファイルと C ソースファイルを作成します。これらのファイルは、Java プログラミング言語で書かれたコードと、C などのその他の言語で書かれたコードを接続し、コードが相互に作用するようにします。 +\f3javah\fP ϡJava 饹 C إåե C եޤΥեϡJava ץߥ󥰸ǽ񤫤줿ɤȡC ʤɤΤ¾θǽ񤫤줿ɤ³ɤߤ˺Ѥ褦ˤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl javah [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . .fl -javah_g [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . -.fl \fP .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javah\fP は、ネイティブメソッドを実装するために必要な C ヘッダーとソースファイルを生成します。作成されたヘッダーとソースファイルは、ネイティブソースコードからオブジェクトのインスタンス変数を参照するために C プログラムによって使用されます。.h ファイルは、対応するクラスと一致する配置を持つ構造体定義を含みます。構造体のフィールドは、クラスのインスタンス変数に対応します。 +\f3javah\fP ϡͥƥ֥᥽åɤ뤿ɬפ C إåȥեޤ줿إåȥեϡͥƥ֥ɤ饪֥ȤΥ󥹥ѿ򻲾Ȥ뤿 C ץˤäƻѤޤ.h եϡб륯饹Ȱפ֤Ťޤߤޤ¤ΤΥեɤϡ饹Υ󥹥ѿбޤ .LP .LP -ヘッダーファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\f3javah\fP に渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダーファイル名と構造体名の両方に付加されます。下線 (_) が名前の区切り文字として使用されます。 +إåեȤ빽¤Τ̾ϥ饹̾ޤ\f3javah\fP Ϥ륯饹ѥåˤ硢ѥå̾ϥإåե̾ȹ¤̾ξղäޤ (_) ̾ζڤʸȤƻѤޤ .LP .LP -デフォルトでは \f3javah\fP は、コマンド行にリストされる各クラスのヘッダーファイルを作成し、現在のディレクトリにファイルを置きます。ソースファイルを作成するには、\f2\-stubs\fP オプションを使用してください。1 つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\f2\-o\fP オプションを使用してください。 +ǥեȤǤ \f3javah\fP ϡޥɹԤ˥ꥹȤƥ饹ΥإåեߤΥǥ쥯ȥ˥ե֤ޤեˤϡ\f2\-stubs\fP ץѤƤ1 ĤΥեˡꥹȤ줿٤ƤΥ饹η̤Ϣ뤹ˤϡ\f2\-o\fP ץѤƤ .LP .LP -新しいネイティブメソッドインタフェースである Java Native Interface (JNI) は、ヘッダー情報またはスタブファイルを必要としません。 現在では、\f3javah\fP は、JNI 形式のネイティブメソッドに必要なネイティブメソッド機能プロトタイプを生成します。 デフォルトでは、\f3javah\fP は JNI 形式で出力され、その結果は .h ファイルに格納されます。 +ͥƥ֥᥽åɥ󥿥եǤ Java Native Interface (JNI) ϡإåޤϥ֥եɬפȤޤ󡣸ߤǤϡ\f3javah\fP ϡJNI Υͥƥ֥᥽åɤɬפʥͥƥ֥᥽åɵǽץȥפޤǥեȤǤϡ\f3javah\fP JNI ǽϤ졢η̤ .h ե˳Ǽޤ .LP -.LP -\f3javah_g\fP は、jdb(1) のようなデバッガに適した、\f3javah\fP の最適化されていないバージョンです。 -.LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-o outputfile -コマンド行にリストされたすべてのクラスに対して、結果のヘッダーまたはソースファイルを連結して \f2outputfile\fP に格納します。\f3\-o\fP または \f3\-d\fP のどちらか一方だけが使われます。 +ޥɹԤ˥ꥹȤ줿٤ƤΥ饹Фơ̤ΥإåޤϥեϢ뤷 \f2outputfile\fP ˳Ǽޤ\f3\-o\fP ޤ \f3\-d\fP Τɤ餫Ȥޤ .TP 3 \-d directory -\f3javah\fP がヘッダーファイルまたはスタブファイルを保存する、ディレクトリを設定します。\f3\-d\fP または \f3\-o\fP のどちらか一方だけが使われます。 +\f3javah\fP إåեޤϥ֥ե¸롢ǥ쥯ȥꤷޤ\f3\-d\fP ޤ \f3\-o\fP Τɤ餫Ȥޤ .TP 3 \-stubs -\f3javah\fP が、Java オブジェクトファイルから C 宣言を生成します。 +\f3javah\fP Java ֥ȥե뤫 C ޤ .TP 3 \-verbose -詳細出力を指定し、作成ファイルの状態に関するメッセージを、\f3javah\fP が標準出力に出力します。 +ܺٽϤꤷեξ֤˴ؤå\f3javah\fP ɸϤ˽Ϥޤ .TP 3 \-help -\f3javah\fP の使用法についてのヘルプメッセージを出力します。 +\f3javah\fP λˡˤĤƤΥإץåϤޤ .TP 3 \-version -\f3javah\fP のバージョン情報を出力します。 +\f3javah\fP ΥСϤޤ .TP 3 \-jni -JNI 形式のネイティブファイル機能プロトタイプを含む出力ファイルを、\f3javah\fP が作成します。これは標準出力であるため、\f3\-jni\fP の使用はオプションです。 +JNI Υͥƥ֥ե뵡ǽץȥפޤϥե\f3javah\fP ޤɸϤǤ뤿ᡢ\f3\-jni\fP λѤϥץǤ .TP 3 \-classpath path -クラスを探すために \f3javah\fP が使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 +饹õ \f3javah\fP ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -102,7 +87,7 @@ JNI 形式のネイティブファイル機能プロトタイプを含む出力 .fl \fP .fi -例を示します。 +򼨤ޤ .nf \f3 .fl @@ -111,33 +96,31 @@ JNI 形式のネイティブファイル機能プロトタイプを含む出力 \fP .fi .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (Java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .TP 3 \-bootclasspath path -ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。 +֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ .TP 3 \-old -古い JDK1.0 形式のヘッダーファイルを生成するように指定します。 +Ť JDK1.0 Υإåե褦˻ꤷޤ .TP 3 \-force -出力ファイルが常に書き込まれるように指定します。 +ϥե뤬˽񤭹ޤ褦˻ꤷޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割されています。 +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤵Ƥޤ .nf \f3 .fl @@ -148,11 +131,9 @@ CLASSPATH .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、java(1)、jdb(1)、javap(1)、javadoc(1) +javac(1)java(1)jdb(1)javap(1)javadoc(1) .LP diff --git a/jdk/src/linux/doc/man/ja/javap.1 b/jdk/src/linux/doc/man/ja/javap.1 index f8589435ec7..99e6edfcb28 100644 --- a/jdk/src/linux/doc/man/ja/javap.1 +++ b/jdk/src/linux/doc/man/ja/javap.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "02 Jun 2010" +.TH javap 1 "14 Apr 2011" .LP -.SH "名前" -javap \- Java クラスファイル逆アセンブラ -.LP -.RS 3 - +.SH "̾" +javap \- Java 饹եե֥ .LP .LP -クラスファイルを逆アセンブルします。 +饹եե֥뤷ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,15 +39,10 @@ javap [ \fP\f3options\fP\f3 ] class. . . .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javap\fP コマンドは、クラスファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、\f3javap\fP は、そのパッケージ、渡されたクラスの protected および public のフィールドとメソッドを出力します。 \f3javap\fP はその出力を標準出力に表示します。たとえば、次のクラス宣言をコンパイルするとします。 -.LP -.RS 3 - +\f3javap\fP ޥɤϡ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤȤСΥ饹򥳥ѥ뤹Ȥޤ .LP .nf \f3 @@ -96,14 +85,10 @@ public class DocFooter extends Applet { .fl \fP .fi -.RE .LP .LP -\f3javap DocFooter\fP がもたらす出力は次のようになります。 -.LP -.RS 3 - +\f3javap DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 @@ -126,14 +111,10 @@ public class DocFooter extends java.applet.Applet { .fl \fP .fi -.RE .LP .LP -\f3javap \-c DocFooter\fP がもたらす出力は次のようになります。 -.LP -.RS 3 - +\f3javap \-c DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 @@ -244,41 +225,35 @@ Method void paint(java.awt.Graphics) .fl \fP .fi -.RE .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -\-help -\f3javap\fP のヘルプメッセージを出力します。 +\-help \-\-help \-? +\f3javap\fP ΥإץåϤޤ +.TP 3 +\-version +Сɽޤ .TP 3 \-l -行番号と局所変数テーブルを表示します。 -.TP 3 -\-b -JDK 1.1 の \f3javap\fP との下位互換性を保証します。 +ֹȶɽѿơ֥ɽޤ .TP 3 \-public -public クラスおよびメンバーだけを表示します。 +public 饹ӥСɽޤ .TP 3 \-protected -protected および public のクラスとメンバーだけを表示します。 +protected public Υ饹ȥСɽޤ .TP 3 \-package -package、protected、および public のクラスとメンバーだけを表示します。これはデフォルトの設定です。 +packageprotected public Υ饹ȥСɽޤϥǥեȤǤ .TP 3 -\-private -すべてのクラスとメンバーを表示します。 +\-private \-p +٤ƤΥ饹ȥСɽޤ .TP 3 \-Jflag -ランタイムシステムに直接 \f2flag\fP を渡します。使用例を次に示します。 -.RS 3 - -.LP +󥿥ॷƥľ \f2flag\fP Ϥޤ򼡤˼ޤ .nf \f3 .fl @@ -288,23 +263,28 @@ javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassNam .fl \fP .fi -.RE .TP 3 \-s -内部の型シグニチャーを出力します。 +η˥㡼Ϥޤ +.TP 3 +\-sysinfo +Υ饹Υƥ (ѥաMD5 ϥå) ɽޤ +.TP 3 +\-constants +static final ɽޤ .TP 3 \-c -クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。これらは +饹γƥ᥽åɤΤ˵ե֥뤵륳ɡʤ Java Хȥɤ̿ɽޤ .na -\f2「Java Virtual Machine Specification」\fP @ +\f2Java Virtual Machine Specification\fP @ .fi -http://java.sun.com/docs/books/vmspec/にドキュメント化されています。 +http://java.sun.com/docs/books/vmspec/˥ɥȲƤޤ .TP 3 \-verbose -メソッドのスタックサイズ、および \f2locals\fP と \f2args\fP の数を出力します。 +᥽åɤΥå \f2locals\fP \f2args\fP οϤޤ .TP 3 \-classpath path -\f3javap\fP がクラスを探すために使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 +\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -312,7 +292,7 @@ http://java.sun.com/docs/books/vmspec/にドキュメント化されています .fl \fP .fi -例を示します。 +򼨤ޤ .nf \f3 .fl @@ -322,24 +302,19 @@ http://java.sun.com/docs/books/vmspec/にドキュメント化されています .fi .TP 3 \-bootclasspath path -ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。 +֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ .TP 3 \-extdirs dirs -インストールされた拡張機能を検索する場所をオーバーライドします。The default location for extensions is the value of \f2java.ext.dirs\fP. +󥹥ȡ뤵줿ĥǽ򸡺򥪡С饤ɤޤĥǽϡǥեȤǤ \f2java.ext.dirs\fP ˤޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。 次に例を示します。 -.RS 3 - -.LP +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -348,14 +323,11 @@ CLASSPATH \fP .fi .RE -.RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、 java(1)、jdb(1)、javah(1)、javadoc(1) +javac(1)java(1)jdb(1)javah(1)javadoc(1) .LP diff --git a/jdk/src/linux/doc/man/ja/javaws.1 b/jdk/src/linux/doc/man/ja/javaws.1 index 72e426f4461..03d3349c7a0 100644 --- a/jdk/src/linux/doc/man/ja/javaws.1 +++ b/jdk/src/linux/doc/man/ja/javaws.1 @@ -19,30 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "02 Jun 2010" +.TH javaws 1 "14 Apr 2011" .LP -.SH "名前" -\f2javaws\fP コマンド行 +.SH "̾" +\f2javaws\fP ޥɹ +.LP +.SH "̾" .LP .LP -\ +\f2javaws\fP \- Java Web Start ưޥ .LP -.SS -NAME -.LP -.RS 3 - -.LP -.LP -\f2javaws\fP \- Java Web Start 起動コマンド -.LP -.RE -.SS -形式 -.LP -.RS 3 - +.SH "" .LP .LP \f2javaws [run\-options] <jnlp>\fP @@ -50,309 +38,185 @@ NAME .LP \f2javaws [control\-options]\fP .LP -.RE -.SS -パラメータ -.LP -.RS 3 - +.SH "ѥ᡼" .LP .LP \f2[run\-options]\fP .LP -.RS 3 - .LP +ޥɹԼ¹ԥץ󡣼¹ԥץǤդνǻǤޤƼ索ץˤĤƤϡ ּ¹ԥץפ򻲾ȤƤ .LP -コマンド行実行オプション。 実行オプションは任意の順序で指定できます。各種オプションについては、下の 「実行オプション」を参照してください。 -.LP -.RE .LP \f2<jnlp>\fP .LP -.RS 3 - .LP +JNLP (Java Network Launching Protocol) եΥѥޤ URL (Uniform Resource Locator) Τɤ餫Ǥ .LP -JNLP (Java Network Launching Protocol) ファイルのパスまたは URL (Uniform Resource Locator) のどちらかです。 -.LP -.RE .LP \f2[control\-options]\fP .LP -.RS 3 - +.LP +ޥɹ楪ץ楪ץǤդνǻǤޤƼ索ץˤĤƤϡ 楪ץפ򻲾ȤƤ +.LP +.SH "" .LP .LP -コマンド行制御オプション。 制御オプションは任意の順序で指定できます。各種オプションについては、下の 「制御オプション」を参照してください。 -.LP -.RE -.RE -.SS -説明 -.LP -.RS 3 - +\f2javaws\fP ޥɤϡJNLP (Java Network Launching Protocol) Υե󥹼Ǥ Java Web Start ưޤJava Web Start ϡͥåȥư Java ץꥱޤϥץåȤưޤ .LP .LP -\f2javaws\fP コマンドは、JNLP (Java Network Launching Protocol) のリファレンス実装である Java Web Start を起動します。Java Web Start は、ネットワーク上で動作する Java アプリケーションまたはアプレットを起動します。 +JNLP ե뤬ꤵ줿硢 \f2javaws\fP ϡ JNLP եǻꤵ줿 Java ץꥱ/ץåȤưޤ .LP .LP -JNLP ファイルを指定すると、\f2javaws\fP は JNLP ファイルに指定された Java アプリケーションまたはアプレットを起動します。 +\f2javaws\fP ưġˤϡߤΥ꡼ǥݡȤƤ 1 ȤΥץ󤬤ޤΥץϾΥ꡼ǤϺǽޤ .LP -.LP -\f2javaws\fP 起動ツールには、現在のリリースでサポートされている 1 組のオプションがあります。ただし、これらのオプションは将来のリリースでは削除される可能性があります。 -.LP -.RE -.SS -実行オプション -.LP -.RS 3 - +.SH "¹ԥץ" .LP .LP \f2\-offline\fP .LP -.RS 3 - .LP +Java Web Start 򥪥ե饤⡼ɤǼ¹Ԥޤ .LP -Java Web Start をオフラインモードで実行します。 -.LP -.RE .LP \f2\-Xnosplash\fP .LP -.RS 3 - .LP +ǽΥץå̤ɽ̵ˤޤ .LP -最初のスプラッシュ画面の表示を無効にします。 -.LP -.RE .LP \f2\-open <arguments>\fP .LP -.RS 3 - .LP +ΥץꤹȡJNLP եΰ \f2\-open <arguments>\fP ֤ޤ .LP -このオプションを指定すると、JNLP ファイル内の引数が \f2\-open <arguments>\fP に置き換わります。 -.LP -.RE .LP \f2\-print <arguments>\fP .LP -.RS 3 - .LP +ΥץꤹȡJNLP եΰ \f2\-print <arguments>\fP ֤ޤ .LP -このオプションを指定すると、JNLP ファイル内の引数が \f2\-print <arguments>\fP に置き換わります。 -.LP -.RE .LP \f2\-online\fP .LP -.RS 3 - .LP +饤⡼ɤǼ¹Ԥޤ (ǥեȤư) .LP -オンラインモードで実行します (デフォルトの動作)。 -.LP -.RE .LP \f2\-wait\fP .LP -.RS 3 - .LP +Υץꤷ硢 \f2javaws\fP ץϡץꥱ󤬽λޤǽλޤWindows ץåȥեǤϡΥץȤ˵ǽޤ .LP -このオプションを指定すると、アプリケーションが終了するまで \f2javaws\fP プロセスは終了しません。 -.LP -.RE .LP \f2\-verbose\fP .LP -.RS 3 - .LP +ɲäνϤɽޤ .LP -追加の出力を表示します。 -.LP -.RE .LP \f2\-J<option>\fP .LP -.RS 3 - .LP +vm ˥ץ䤤ޤ .LP -vm にオプションを補います。 -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +ץꥱ򥷥ƥ७å夫Τ߼¹Ԥޤ .LP -アプリケーションをシステムキャッシュからのみ実行します。 -.LP -.RE -.RE -.SS -制御オプション -.LP -.RS 3 - +.SH "楪ץ" .LP .LP \f2\-viewer\fP .LP -.RS 3 - +.LP +Java ȥѥͥǥåӥ塼ɽޤ .LP .LP -Java コントロールパネルでキャッシュビューアを表示します。 +\f2\-clearcache\fP +.LP +.LP +󥹥ȡ뤵Ƥʤ٤ƤΥץꥱ򥭥å夫ޤ .LP -.RE .LP \f2\-userConfig <property name>\fP .LP -.RS 3 - .LP +ꤵ줿ץѥƥ򥯥ꥢޤ .LP -指定された配備プロパティーをクリアします。 -.LP -.RE .LP \f2\-userConfig <property name> <property value>\fP .LP -.RS 3 - .LP +ꤵ줿ץѥƥꤵ줿ͤꤷޤ .LP -指定された配備プロパティーを指定された値に設定します。 -.LP -.RE .LP \f2\-uninstall\fP .LP -.RS 3 - .LP +å夫餹٤ƤΥץꥱޤ .LP -キャッシュからすべてのアプリケーションを削除します。 -.LP -.RE .LP \f2\-uninstall <jnlp>\fP .LP -.RS 3 - .LP +å夫饢ץꥱޤ .LP -キャッシュからアプリケーションを削除します。 -.LP -.RE .LP \f2\-import [import\-options] <jnlp>\fP .LP -.RS 3 - .LP +å˥ץꥱ򥤥ݡȤޤ .LP -キャッシュにアプリケーションをインポートします。 -.LP -.RE -\f3インポートオプション\fP +.SH "ݡȥץ" .LP .LP \f2\-silent\fP .LP -.RS 3 - .LP +ȥ⡼ɤǥݡȤޤ (UI ɽޤ) .LP -サイレントモードでインポートします (UI は表示されません)。 -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +ƥ७å˥ץꥱ򥤥ݡȤޤ .LP -システムキャッシュにアプリケーションをインポートします。 -.LP -.RE .LP \f2\-codebase <url>\fP .LP -.RS 3 - .LP +Ǥդ codebase ꥽ޤ .LP -任意の codebase からリソースを取得します。 -.LP -.RE .LP \f2\-shortcut\fP .LP -.RS 3 - .LP +桼ƥץץȤΤ褦˥硼ȥåȤ򥤥󥹥ȡ뤷ޤΥץϡ \f2\-silent\fP ץѤʤȸ̤ޤ .LP -ユーザー許容プロンプトのようにショートカットをインストールします。このオプションは、\f2\-silent\fP オプションと一緒に使用しないと効果がありません。 -.LP -.RE .LP \f2\-association\fP .LP -.RS 3 - +.LP +桼ƥץץȤΤ褦˴Ϣդ򥤥󥹥ȡ뤷ޤΥץϡ \f2\-silent\fP ץѤʤȸ̤ޤ +.LP +.SH "ե" .LP .LP -ユーザー許容プロンプトのように関連付けをインストールします。このオプションは、\f2\-silent\fP オプションと一緒に使用しないと効果がありません。 -.LP -.RE -.RE -.SS -ファイル -.LP -.RS 3 - -.LP -.LP -ユーザーキャッシュ、システムキャッシュ、および deployment.properties ファイルについては、 +桼å塢ƥ७å塢 deployment.properties եˤĤƤϡ .na -\f2システムレベルおよびユーザーレベルのプロパティー\fP @ +\f2ƥ٥뤪ӥ桼٥Υץѥƥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.html򻲾ȤƤ .LP -.RE -.SS -詳細情報 -.LP -.RS 3 - +.SH "ܺپ" .LP .LP -Java Web Start の詳細は、 +Java Web Start ξܺ٤ϡ .na -\f2「Java Web Start」\fP @ +\f2Java Web Start\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.html򻲾ȤƤ .LP -.RS 3 - -.LP -.LP -\ -.LP -.RE -.RE diff --git a/jdk/src/linux/doc/man/ja/jconsole.1 b/jdk/src/linux/doc/man/ja/jconsole.1 index 2ce3990317c..309fc14f41d 100644 --- a/jdk/src/linux/doc/man/ja/jconsole.1 +++ b/jdk/src/linux/doc/man/ja/jconsole.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "02 Jun 2010" +.TH jconsole 1 "14 Apr 2011" .LP -.SH "名前" -jconsole \- Java 監視および管理コンソール +.SH "̾" +jconsole \- Java ƻ뤪Ӵ󥽡 .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -58,63 +56,60 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 -.br +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 connection = pid | host:port | jmxUrl .RS 3 -\f2pid\fP\ \ \ ローカルの Java VM のプロセス ID。Java VM は、jconsole を実行しているユーザー ID と同じユーザー ID を使用して実行する必要があります。詳細については、 +.TP 2 +o +\f2pid\fP Java VM Υץ IDJava VM ϡjconsole ¹ԤƤ桼 ID Ʊ桼 ID ѤƼ¹Ԥɬפޤܺ٤ˤĤƤϡ .na -\f2「JMX 監視および管理」\fP @ +\f2JMX ƻ뤪Ӵ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.htmlを参照してください。 -.br -\f2host\fP:\f2port\fP\ \ Java VM が実行しているホストシステムの名前と、JVM を起動したときにシステムプロパティー \f2com.sun.management.jmxremote.port\fP で指定したポート番号。詳細については、 +http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html򻲾ȤƤ +.TP 2 +o +\f2host\fP:\f2port\fP Java VM ¹ԤƤۥȥƥ̾ȡJVM ưȤ˥ƥץѥƥ \f2com.sun.management.jmxremote.port\fP ǻꤷݡֹ档ܺ٤ˤĤƤϡ .na -\f2「JMX 監視および管理」\fP @ +\f2JMX ƻ뤪Ӵ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.htmlを参照してください。 -.br -\f2jmxUrl\fP 接続先の JMX エージェントのアドレス。 これについては、 +http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html򻲾ȤƤ +.TP 2 +o +\f2jmxUrl\fP ³ JMX ȤΥɥ쥹ˤĤƤϡ .na \f2JMXServiceURL\fP @ .fi -http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html を参照してください。 +http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html 򻲾ȤƤ .RE .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jconsole\fP コマンドは、ローカルマシンまたはリモートマシン上の Java アプリケーションと仮想マシンの監視と管理を行うグラフィカルコンソールツールを起動します。 +\f3jconsole\fP ޥɤϡޥޤϥ⡼ȥޥ Java ץꥱȲۥޥδƻȴԤե륳󥽡ġưޤ .LP .LP -Windows 上では、\f3jconsole\fP はコンソールウィンドウと関連付けられていません。ただし、なんらかの理由で \f3jconsole\fP コマンドが失敗すると、エラー情報を示すダイアログボックスが表示されます。 +Windows Ǥϡ\f3jconsole\fP ϥ󥽡륦ɥȴϢդƤޤ󡣤ʤ餫ͳ \f3jconsole\fP ޥɤԤȡ顼򼨤ܥåɽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-interval=n -更新間隔を \f2n\fP 秒に設定します (デフォルトは 4 秒)。 +ֳ֤ \f2n\fP äꤷޤ (ǥեȤ 4 ) .TP 3 -\-notile\ -最初にウィンドウをタイリングしません (複数の接続のため)。 +\-notile +ǽ˥ɥ򥿥󥰤ޤ (ʣ³Τ) .TP 3 -\-pluginpath\ plugins -JConsole プラグインの検索先となるディレクトリまたは JAR ファイルのリストを指定します。\f2plugins\fP パスには、次の名前のプロバイダ構成ファイルを含めてください。 +\-pluginpath plugins +JConsole ץ饰θȤʤǥ쥯ȥޤ JAR եΥꥹȤꤷޤ\f2plugins\fP ѥˤϡ̾ΥץХեޤƤ .br .nf \f3 @@ -124,36 +119,36 @@ JConsole プラグインの検索先となるディレクトリまたは JAR フ \fP .fi .LP -これには、 +ˤϡ .na \f2com.sun.tools.jconsole.JConsolePlugin\fP @ .fi -http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html クラスを実装するクラスの完全修飾クラス名を指定する行が、プラグインごとに 1 行ずつ含まれています。 +http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html 饹륯饹δ饹̾ꤹԤץ饰󤴤Ȥ 1 ԤĴޤޤƤޤ .TP 3 -\-version\ -バージョン情報を出力して終了します。 +\-version +СϤƽλޤ .TP 3 -\-help\ -ヘルプメッセージを出力して終了します。 +\-help +إץåϤƽλޤ .TP 3 -\-J<flag>\ -jconsole が実行されている Java 仮想マシンに <flag> を渡します。 +\-J<flag> +jconsole ¹ԤƤ Java ۥޥ <flag> Ϥޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2jconsole の使用\fP @ +\f2JConsole λ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html .TP 2 o .na -\f2「Java プラットフォームの監視および管理」\fP @ +\f2Java ץåȥեδƻ뤪Ӵ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/management/index.html .RE diff --git a/jdk/src/linux/doc/man/ja/jdb.1 b/jdk/src/linux/doc/man/ja/jdb.1 index af81524bb8a..7c189369748 100644 --- a/jdk/src/linux/doc/man/ja/jdb.1 +++ b/jdk/src/linux/doc/man/ja/jdb.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "02 Jun 2010" +.TH jdb 1 "14 Apr 2011" .LP -.SH "名前" -jdb \- Java デバッガ -.LP -.RS 3 - +.SH "̾" +jdb \- Java ǥХå .LP .LP -\f3jdb\fP は、Java 言語プログラムのバグを見つけて修正するために使用するツールです。 +\f3jdb\fP ϡJava ץΥХ򸫤Ĥƽ뤿˻ѤġǤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -43,43 +37,34 @@ jdb \- Java デバッガ .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -次に示すコマンド行オプション +˼ޥɹԥץ .TP 3 class -デバッグを開始するクラスの名前 +ǥХå򳫻Ϥ륯饹̾ .TP 3 arguments -\f2class\fP の \f2main()\fP メソッドに渡す引数 +class \f2main()\fP ᥽åɤϤ \f2\fP .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -Java デバッガ \f3jdb\fP は、Java クラス用の簡単なコマンド行デバッガです。 +Java ǥХå \f3jdb\fP ϡJava 饹ѤδñʥޥɹԥǥХåǤ .na \f2Java Platform Debugger Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html を視覚的に実行し、ローカルまたはリモートの Java Virtual Machine の検査とデバッグを行うことができます。 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html Ū˼¹Ԥޤϥ⡼Ȥ Java Virtual Machine θȥǥХåԤȤǤޤ .LP .SS -jdb セッションの開始 -.LP -.RS 3 - +jdb åγ .LP .LP -jdb セッションを開始するにはさまざまな方法があります。もっとも頻繁に使われるのは、デバッグするアプリケーションのメインクラスを使用して、\f3jdb\fP から新しい Java 仮想マシン (VM) を起動する方法です。コマンド行で、 \f3java\fP の代わりに \f3jdb\fP コマンドを入力します。たとえば、アプリケーションのメインクラスが MyClass の場合は、JDB 環境でデバッグするときに次のコマンドを使用します。 +jdb å򳫻ϤˤϤޤޤˡޤäȤˤ˻ȤΤϡǥХå륢ץꥱΥᥤ󥯥饹Ѥơ\f3jdb\fP 鿷 Java ۥޥ (VM) ưˡǤޥɹԤǡ\f3java\fP \f3jdb\fP ޥɤϤޤȤСץꥱΥᥤ󥯥饹 MyClass ξϡJDB ĶǥǥХåȤ˼ΥޥɤѤޤ .LP .nf \f3 @@ -91,10 +76,10 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -この方法で起動すると、\f3jdb\fP は、指定されたパラメータを使って 2 つ目の Java VM を呼び出します。 次に、指定されたクラスをロードして、クラスの最初の命令を実行する前に VM を停止させます。 +ˡǵưȡ\f3jdb\fP ϡꤵ줿ѥ᡼Ȥä 2 ܤ Java VM ƤӽФޤˡꤵ줿饹ɤơ饹κǽ̿¹Ԥ VM ߤޤ .LP .LP -\f3jdb\fP のもう 1 つの使用方法は、すでに起動している Java VM に jdb を接続することです。jdb が接続する VM を、その実行中に起動するための構文を次に示します。これは、インプロセスデバッグ用ライブラリをロードし、接続の種類を指定します。 +\f3jdb\fP Τ⤦ 1 ĤλˡϡǤ˵ưƤ Java VM jdb ³뤳ȤǤjdb ³ VM 򡢤μ¹˵ư뤿ιʸ򼡤˼ޤϡץǥХåѥ饤֥ɤ³μꤷޤ .LP .nf \f3 @@ -106,7 +91,7 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -たとえば、次のコマンドは、MyClass アプリケーションを実行して、\f3jdb\fP があとでそのアプリケーションに接続できるようにします。 +ȤСΥޥɤϡMyClass ץꥱ¹Ԥơ\f3jdb\fP ȤǤΥץꥱ³Ǥ褦ˤޤ .LP .nf \f3 @@ -118,7 +103,7 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -次のコマンドを使用して、\f3jdb\fP を VM に接続できます。 +ΥޥɤѤơ\f3jdb\fP VM ³Ǥޤ .LP .nf \f3 @@ -130,45 +115,42 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -この場合、\f3jdb\fP は新しい VM を起動する代わりに既存の VM に接続されるため、\f3jdb\fP コマンド行には「MyClass」は指定しません。 +ξ硢\f3jdb\fP Ͽ VM ư˴¸ VM ³뤿ᡢ\f3jdb\fP ޥɹԤˤϡMyClassפϻꤷޤ .LP .LP -デバッガを VM に接続するにはほかにもさまざまな方法があり、すべて \f3jdb\fP でサポートされています。接続オプションについては、Java Platform Debugger Architecture の +ǥХå VM ³ˤϤۤˤ⤵ޤޤˡꡢ٤ \f3jdb\fP ǥݡȤƤޤ³ץˤĤƤϡJava Platform Debugger Architecture .na -\f2ドキュメント\fP @ +\f2ɥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.htmlを参照してください。\f3jdb\fP で使用するために J2SE 1.4.2 以前の VM を起動する方法については、 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html򻲾ȤƤ\f3jdb\fP ǻѤ뤿 J2SE 1.4.2 VM ưˡˤĤƤϡ .na -\f21.4.2 のドキュメント\fP @ +\f21.4.2 Υɥ\fP @ .fi -http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.htmlを参照してください。 +http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html򻲾ȤƤ .LP .SS -基本 jdb コマンド + jdb ޥ .LP .LP -基本的な \f3jdb\fP コマンドの一覧を示します。Java デバッガがサポートするコマンドはこれ以外にもあり、それらは \f3jdb\fP の \f2help\fP コマンドを使用して表示できます。 -.LP -.RS 3 - +Ū \f3jdb\fP ޥɤΰ򼨤ޤJava ǥХåݡȤ륳ޥɤϤʳˤ⤢ꡢ \f3jdb\fP \f2help\fP ޥɤѤɽǤޤ .LP .RS 3 .TP 3 -help または ? -もっとも重要な \f3jdb\fP コマンド \f2help\fP は、認識されたコマンドのリストに簡潔な説明を付けて表示します。 +help ޤ ? +äȤפ \f3jdb\fP ޥ \f2help\fP ϡǧ줿ޥɤΥꥹȤ˴ʷդɽޤ .TP 3 run -\f3jdb\fP を起動して必要なブレークポイントを設定したあとに、このコマンドを使用して、デバッグするアプリケーションの実行を開始できます。このコマンドは、既存の VM に接続している場合とは異なり、デバッグするアプリケーションが \f3jdb\fP から起動したときにだけ使用できます。 +\f3jdb\fP ưɬפʥ֥졼ݥȤꤷȤˡΥޥɤѤơǥХå륢ץꥱμ¹Ԥ򳫻ϤǤޤΥޥɤϡ¸ VM ³ƤȤϰۤʤꡢǥХå륢ץꥱ \f3jdb\fP 鵯ưȤˤѤǤޤ .TP 3 cont -ブレークポイント、例外、またはステップ実行のあとで、デバッグするアプリケーションの実行を継続します。 +֥졼ݥȡ㳰ޤϥƥå׼¹ԤΤȤǡǥХå륢ץꥱμ¹Ԥ³ޤ .TP 3 print -Java オブジェクトおよびプリミティブ値を表示します。プリミティブ型の変数またはフィールドの場合には、実際の値が出力されます。オブジェクトの場合には、短い説明が出力されます。オブジェクトについては、以降の \f2dump\fP コマンドの説明を参照してください。 +Java ֥ȤӥץߥƥͤɽޤץߥƥַѿޤϥեɤξˤϡºݤͤϤޤ֥ȤξˤϡûϤޤ֥ȤˤĤƤϡʹߤ \f2dump\fP ޥɤ򻲾ȤƤ .LP -\f2注:局所変数を表示するには、その変数を含むクラスが \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP オプションでコンパイルされていなければなりません。 +\f2: ɽѿɽˤϡѿޤ९饹 \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP ץǥѥ뤵Ƥɬפޤ .LP -\f2print\fP では、メソッドの呼び出しを含む多数の簡単な Java 式がサポートされています。 次に例を示します。 +\f2print\fP Ǥϡ᥽åɤθƤӽФޤ¿δñ Java ݡȤƤޤ򼨤ޤ .RS 3 .TP 2 o @@ -178,25 +160,22 @@ o \f2print myObj.myInstanceField\fP .TP 2 o -\f2print i + j + k\fP (i、j、および k はプリミティブであり、フィールドまたは局所変数のいずれか) +\f2print i + j + k\fP (ij k ϥץߥƥ֤Ǥꡢեɤޤ϶ɽѿΤ줫) .TP 2 o -\f2print myObj.myMethod()\fP (myMethod が null 以外を返す場合) +\f2print myObj.myMethod()\fP (myMethod null ʳ֤) .TP 2 o \f2print new java.lang.String("Hello").length()\fP .RE .TP 3 dump -プリミティブ値の場合には、このコマンドは \f2print\fP と同じです。オブジェクトの場合には、オブジェクト内に定義されている各フィールドの現在の値が出力されます。static フィールドと instance フィールドが出力されます。 +ץߥƥͤξˤϡΥޥɤ \f2print\fP ƱǤ֥Ȥξˤϡ֥ƤƥեɤθߤͤϤޤstatic եɤ instance եɤϤޤ .LP -\f2dump\fP コマンドでは、\f2print\fP コマンドと同じ式がサポートされます。 +\f2dump\fP ޥɤǤϡ\f2print\fP ޥɤƱݡȤޤ .TP 3 threads -現在実行中のスレッドを一覧表示します。スレッドごとに、名前と現在の状態、およびほかのコマンドに使用できるインデックスが出力されます。 次に例を示します。 -.RS 3 - -.LP +߼¹ΥåɤɽޤåɤȤˡ̾ȸߤξ֡ӤۤΥޥɤ˻ѤǤ륤ǥåϤޤ򼨤ޤ .nf \f3 .fl @@ -204,163 +183,144 @@ threads .fl \fP .fi -.RE -この例では、スレッドインデックスは 4 であり、スレッドは java.lang.Thread のインスタンスです。 スレッドの名前は「main」であり、現在実行中です。 +Ǥϡåɥǥå 4 Ǥꡢåɤ java.lang.Thread Υ󥹥󥹤Ǥåɤ̾ϡmainפǤꡢ߼¹Ǥ .TP 3 thread -現在のスレッドにするスレッドを選択します。多くの \f3jdb\fP コマンドは、現在のスレッドの設定に基づいて実行されます。スレッドは、\f2threads\fP コマンドで説明したスレッドインデックスとともに指定します。 +ߤΥåɤˤ륹åɤ򤷤ޤ¿ \f3jdb\fP ޥɤϡߤΥåɤ˴ŤƼ¹Ԥޤåɤϡ\f2threads\fP ޥɤåɥǥåȤȤ˻ꤷޤ .TP 3 where -引数を指定しないで \f2where\fP を実行すると、現在のスレッドのスタックがダンプされます。 \f2where all\fP コマンドは、現在のスレッドグループにあるスレッドのスタックを、すべてダンプします。 \f2where\fP \f2threadindex\fP は、指定されたスレッドのスタックをダンプします。 +\f2ꤷʤ\fP where ¹ԤȡߤΥåɤΥåפޤ \f2where all\fP ޥɤϡߤΥåɥ롼פˤ륹åɤΥå򤹤٤ƥפޤ \f2where\fP \f2threadindex\fP ϡꤵ줿åɤΥåפޤ .LP -現在のスレッドが (ブレークポイントか \f2suspend\fP コマンドによって) 中断している場合は、局所変数とフィールドは \f2print\fP コマンドと \f2dump\fP コマンドで表示できます。\f2up\fP コマンドと \f2down\fP コマンドで、どのスタックフレームをカレントにするかを選ぶことができます。 +ߤΥåɤ (֥졼ݥȤ \f2suspend\fP ޥɤˤä) ǤƤϡɽѿȥեɤ \f2print\fP ޥɤ \f2dump\fP ޥɤɽǤޤ\f2up\fP ޥɤ \f2down\fP ޥɤǡɤΥåե졼򥫥Ȥˤ뤫֤ȤǤޤ .RE .LP -.RE .SS -ブレークポイント -.LP -.RS 3 - +֥졼ݥ .LP .LP -ブレークポイントは、行番号またはメソッドの最初の命令で \f3jdb\fP に設定できます。 次に例を示します。 +֥졼ݥȤϡֹޤϥ᥽åɤκǽ̿ \f3jdb\fP Ǥޤ򼨤ޤ .LP .RS 3 .TP 2 o -\f2stop at MyClass:22\fP (MyClass が含まれるソースファイルの 22 行目の最初の命令にブレークポイントを設定) +\f2stop at MyClass:22\fP (MyClass ޤޤ륽ե 22 ܤκǽ̿˥֥졼ݥȤ) .TP 2 o -\f2stop in java.lang.String.length\fP (\f2java.lang.String.length\fP メソッドの最初にブレークポイントを設定) +\f2stop in java.lang.String.length\fP (\f2java.lang.String.length\fP ᥽åɤκǽ˥֥졼ݥȤ) .TP 2 o -\f2stop in MyClass.<init>\fP (<init> は MyClass コンストラクタを識別) +\f2stop in MyClass.<init>\fP (<init> MyClass 󥹥ȥ饯) .TP 2 o -\f2stop in MyClass.<clinit>\fP (<clinit> は MyClass の静的初期化コードを識別) +\f2stop in MyClass.<clinit>\fP (<clinit> MyClass Ūɤ) .RE .LP .LP -メソッドがオーバーロードされている場合には、メソッドの引数の型も指定して、ブレークポイントに対して適切なメソッドが選択されるようにしなければなりません。たとえば、「\f2MyClass.myMethod(int,java.lang.String)\fP」または「\f2MyClass.myMethod()\fP」と指定します。 +᥽åɤСɤƤˤϡ᥽åɤΰηꤷơ֥졼ݥȤФŬڤʥ᥽åɤ򤵤褦ˤʤФʤޤ󡣤ȤС\f2MyClass.myMethod(int,java.lang.String)\fPפޤϡ\f2MyClass.myMethod()\fPפȻꤷޤ .LP .LP -\f2clear\fP コマンドは、「\f2clear\ MyClass:45\fP」のような構文を使用してブレークポイントを削除します。\f2clear\fP を使用するか、引数を指定しないでコマンドを使用すると、現在設定されているすべてのブレークポイントが表示されます。\f2cont\fP コマンドは実行を継続します。 +\f2clear\fP ޥɤϡ\f2clear\ MyClass:45\fPפΤ褦ʹʸѤƥ֥졼ݥȤޤ\f2clear\fP Ѥ뤫ꤷʤǥޥɤѤȡꤵƤ뤹٤ƤΥ֥졼ݥȤɽޤ\f2cont\fP ޥɤϼ¹Ԥ³ޤ .LP -.RE .SS -ステップ実行 -.LP -.RS 3 - +ƥå׼¹ .LP .LP -\f2step\fP コマンドは、現在のスタックフレームまたは呼び出されたメソッド内で、次の行を実行します。\f2next\fP コマンドは、現在のスタックフレームの次の行を実行します。 +\f2step\fP ޥɤϡߤΥåե졼ޤϸƤӽФ줿᥽åǡιԤ¹Ԥޤ\f2next\fP ޥɤϡߤΥåե졼μιԤ¹Ԥޤ .LP -.RE .SS -例外 -.LP -.RS 3 - +㳰 .LP .LP -スローしているスレッドの呼び出しスタック上のどこにも catch 文がない場合に例外が発生すると、VM は通常、例外トレースを出力して終了します。ただし、\f3jdb\fP 環境で実行している場合は、例外が発生すると \f3jdb\fP に制御が戻ります。次に、\f3jdb\fP を使用して例外の原因を診断します。 +Ƥ륹åɤθƤӽФåΤɤˤ catch ʸʤ㳰ȯȡVM ̾㳰ȥ졼Ϥƽλޤ\f3jdb\fP ĶǼ¹ԤƤϡ㳰ȯ \f3jdb\fP 椬ޤˡ\f3jdb\fP Ѥ㳰θǤޤ .LP .LP -たとえば、「\f2catch java.io.FileNotFoundException\fP」または「\f2catch mypackage.BigTroubleException\fP」のように \f2catch\fP コマンドを使用すると、デバッグされたアプリケーションは、ほかの例外がスローされたときに停止します。例外が特定のクラス (またはサブクラス) のインスタンスの場合は、アプリケーションは例外がスローされた場所で停止します。 +ȤС\f2catch java.io.FileNotFoundException\fPפޤϡ\f2catch mypackage.BigTroubleException\fPפΤ褦 \f2catch\fP ޥɤѤȡǥХå줿ץꥱϡۤ㳰줿Ȥߤޤ㳰Υ饹 (ޤϥ֥饹) Υ󥹥󥹤ξϡץꥱ㳰줿ߤޤ .LP .LP -\f2ignore\fP コマンドを使うと、以前の \f2catch\fP コマンドの効果が無効になります。 +\f2ignore\fP ޥɤȤȡ \f2catch\fP ޥɤθ̵̤ˤʤޤ .LP .LP -\f2注:\fP\f2ignore\fP コマンドでは、デバッグされる VM は例外を無視せず、デバッガだけが例外を無視します。 +\f2: \fP\f2ignore\fP ޥɤǤϡǥХå VM 㳰̵뤻ǥХå㳰̵뤷ޤ .LP -.RE -.RE -.SH "コマンド行オプション" -.LP - +.SH "ޥɹԥץ" .LP .LP -コマンド行で Java アプリケーション起動ツールの代わりに \f3jdb\fP を使用する場合、\f3jdb\fP は、\f2\-D\fP、\f2\-classpath\fP、\f2\-X<option>\fP など、java コマンドと同じ数のオプションを受け入れます。 +ޥɹԤ Java ץꥱưġ \f3jdb\fP Ѥ硢\f3jdb\fP ϡ\f2\-D\fP\f2\-classpath\fP\f2\-X<option>\fP ʤɡjava ޥɤƱΥץޤ .LP .LP -\f3jdb\fP は、そのほかに次のオプションを受け入れます。 +\f3jdb\fP ϡΤۤ˼Υץޤ .LP .RS 3 .TP 3 \-help -ヘルプメッセージを表示します。 +إץåɽޤ .TP 3 \-sourcepath <dir1:dir2:...> -指定されたパスを使用して、ソースファイルを検索します。このオプションが指定されていない場合は、デフォルトパスの「.」が使われます。 +ꤵ줿ѥѤơե򸡺ޤΥץ󤬻ꤵƤʤϡǥեȥѥΡ.פȤޤ .TP 3 \-attach <address> -デフォルトの接続機構を使用して、すでに実行中の VM にデバッガを接続します。 +ǥեȤ³ѤơǤ˼¹ VM ˥ǥХå³ޤ .TP 3 \-listen <address> -実行中の VM が標準のコネクタを使って指定されたアドレスに接続するのを待機します。 +¹ VM ɸΥͥȤäƻꤵ줿ɥ쥹³ΤԵޤ .TP 3 \-listenany -実行中の VM が標準のコネクタを使って利用可能な任意のアドレスに接続するのを待機します。 +¹ VM ɸΥͥȤäѲǽǤդΥɥ쥹³ΤԵޤ .TP 3 \-launch -デバッグするアプリケーションを jdb の起動後ただちに起動します。このオプションによって、\f2run\fP コマンドを使用する必要がなくなります。デバッグするアプリケーションは、起動後、初期アプリケーションクラスがロードされる直前に停止します。その時点で、必要なブレークポイントを設定し、\f2cont\fP を使用して実行を継続できます。 +ǥХå륢ץꥱ jdb εư夿˵ưޤΥץˤäơ\f2run\fP ޥɤѤɬפʤʤޤǥХå륢ץꥱϡư塢ץꥱ󥯥饹ɤľߤޤλǡɬפʥ֥졼ݥȤꤷ\f2cont\fP ѤƼ¹Ԥ³Ǥޤ .TP 3 \-listconnectors -この VM で利用できるコネクタを一覧表示します。 + VM ѤǤ륳ͥɽޤ .TP 3 \-connect <connector\-name>:<name1>=<value1>,... -一覧表示された引数の値と指定のコネクタを使ってターゲット VM に接続します。 +ɽ줿ͤȻΥͥȤäƥå VM ³ޤ .TP 3 \-dbgtrace [flags] -jdb のデバッグ情報を出力します。 +jdb ΥǥХåϤޤ .TP 3 \-tclient -Java HotSpot(tm) VM (クライアント) 内でアプリケーションを実行します。 +Java HotSpot(tm) VM (饤) ǥץꥱ¹Ԥޤ .TP 3 \-tserver -Java HotSpot(tm) VM (サーバー) 内でアプリケーションを実行します。 +Java HotSpot(tm) VM (С) ǥץꥱ¹Ԥޤ .TP 3 \-Joption -jdb の実行に使用される Java 仮想マシンに \f2option\fP を渡します。(アプリケーション Java 仮想マシンに対するオプションは、\f3run\fP コマンドに渡される)。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +jdb μ¹Ԥ˻Ѥ Java ۥޥ \f2option\fP Ϥޤ(ץꥱ Java ۥޥФ륪ץϡ\f3run\fP ޥɤϤ)ȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP .LP -デバッガとデバッグを行う VM を接続するための代替機構に対して、その他のオプションがサポートされています。その他の接続オプションについては、Java Platform Debugger Architecture の +ǥХåȥǥХåԤ VM ³뤿صФơ¾Υץ󤬥ݡȤƤޤ¾³ץˤĤƤϡJava Platform Debugger Architecture .na -\f2ドキュメント\fP @ +\f2ɥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html򻲾ȤƤ .LP .SS -デバッグ対象のプロセスに転送されるオプション +ǥХåоݤΥץž륪ץ .LP .RS 3 .TP 3 \-v \-verbose[:class|gc|jni] -冗長モードにします。 +Ĺ⡼ɤˤޤ .TP 3 \-D<name>=<value> -システムプロパティーを設定します。 +ƥץѥƥꤷޤ .TP 3 \-classpath <directories separated by ":"> -クラスを検索するディレクトリを一覧表示します。 +饹򸡺ǥ쥯ȥɽޤ .TP 3 \-X<option> -非標準ターゲット VM オプションです。 +ɸॿå VM ץǤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、java(1)、javah(1)、javap(1)、javadoc(1) +javac(1)java(1)javah(1)javap(1)javadoc(1) .LP diff --git a/jdk/src/linux/doc/man/ja/jhat.1 b/jdk/src/linux/doc/man/ja/jhat.1 index 1871ec86869..57ff839ce47 100644 --- a/jdk/src/linux/doc/man/ja/jhat.1 +++ b/jdk/src/linux/doc/man/ja/jhat.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "02 Jun 2010" +.TH jhat 1 "14 Apr 2011" .LP -.SH "名前" -jhat \- Java ヒープ解析ツール +.SH "̾" +jhat \- Java ҡײϥġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -58,88 +56,90 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 -.br +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 heap\-dump\-file -ブラウズ対象となる Java バイナリヒープダンプファイル。複数のヒープダンプを含むダンプファイルの場合、「foo.hprof#3」のようにファイル名の後に「#<number>」を付加することで、ファイル内の特定のダンプを指定できます。 -.SH "説明" +֥饦оݤȤʤ Java Хʥҡץץե롣ʣΥҡץפޤץեξ硢foo.hprof#3פΤ褦˥ե̾θˡ#<number>פղä뤳ȤǡեΥפǤޤ +.RE + +.LP +.SH "" .LP .LP -\f3jhat\fP コマンドは、java ヒープダンプファイルを解析し、Web サーバーを起動します。 jhat を使えば、お好みの Web ブラウザを使ってヒープダンプをブラウズできます。 jhat は、「ある既知のクラス「Foo」のすべてのインスタンスを表示する」といった、事前に設計されたクエリのほか、\f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) もサポートします。OQL のヘルプには、jhat によって表示される OQL ヘルプページからアクセスできます。デフォルトポートを使用する場合、OQL のヘルプは http://localhost:7000/oqlhelp/ で利用可能です。 +\f3jhat\fP ޥɤϡjava ҡץץեϤWeb Сưޤjhat ȤСߤ Web ֥饦Ȥäƥҡץפ֥饦Ǥޤjhat ϡ֤ΤΥ饹FooפΤ٤ƤΥ󥹥󥹤ɽפȤä߷פ줿Τۤ\f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) ⥵ݡȤޤOQL Υإפˤϡjhat ˤäɽ OQL إץڡ饢ǤޤǥեȥݡȤѤ硢OQL Υإפ http://localhost:7000/oqlhelp/ ѲǽǤ .LP .LP -Java のヒープダンプを生成するには、いくつかの方法があります。 +Java ΥҡץפˤϡĤˡޤ .LP .RS 3 .TP 2 o -jmap(1) の \-dump オプションを使って実行時にヒープダンプを取得する。 +jmap(1) \-dump ץȤäƼ¹Ի˥ҡץפ롣 .TP 2 o -jconsole(1) のオプションを使って +jconsole(1) ΥץȤä .na \f2HotSpotDiagnosticMXBean\fP @ .fi -http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html 経由で実行時にヒープダンプを取得する。 +http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html ͳǼ¹Ի˥ҡץפ롣 .TP 2 o -\-XX:+HeapDumpOnOutOfMemoryError VM オプションを指定すると、OutOfMemoryError のスロー時にヒープダンプが生成される。 +\-XX:+HeapDumpOnOutOfMemoryError VM ץꤹȡOutOfMemoryError Υ˥ҡץפ롣 .TP 2 o .na \f2hprof\fP @ .fi -http://java.sun.com/developer/technicalArticles/Programming/HPROF.html を使用する。 +http://java.sun.com/developer/technicalArticles/Programming/HPROF.html Ѥ롣 .RE .LP .LP -\f3注:\fP このツールは\f3試験的なもの\fPであり、将来の JDK のバージョンでは\f3利用できなくなる\fP可能性があります。 +\f3:\fP Υġ\f3Ūʤ\fPǤꡢ JDK ΥСǤ\f3ѤǤʤʤ\fPǽޤ +.LP +.SH "ץ" .LP -.SH "オプション" .RS 3 .TP 3 \-stack false/true -オブジェクト割り当て呼び出しスタックの追跡を無効にします。ヒープダンプ内で割り当てサイト情報が使用できない場合、このフラグを false に設定する必要があります。デフォルトは true です。 +֥ȳƸƤӽФåפ̵ˤޤҡץdzƥȾ󤬻ѤǤʤ硢Υե饰 false ꤹɬפޤǥեȤ true Ǥ .TP 3 \-refs false/true -オブジェクトへの参照の追跡を無効にします。デフォルトは true です。デフォルトでは、ヒープ内のすべてのオブジェクトについて、バックポインタ (指定されたオブジェクトをポイントしているオブジェクト。 参照者または受信参照とも呼ばれる) が計算されます。 +֥ȤؤλȤפ̵ˤޤǥեȤ true ǤǥեȤǤϡҡΤ٤ƤΥ֥ȤˤĤơХåݥ (ꤵ줿֥ȤݥȤƤ륪֥ȡȼԤޤϼȤȤƤФ) ׻ޤ .TP 3 \-port port\-number -jhat の HTTP サーバーのポートを設定します。デフォルトは 7000 です。 +jhat HTTP СΥݡȤꤷޤǥեȤ 7000 Ǥ .TP 3 \-exclude exclude\-file -「到達可能なオブジェクト」のクエリから除外すべきデータメンバーの一覧を含むファイルを指定します。たとえば、このファイルに \f2java.lang.String.value\fP が含まれていた場合、特定のオブジェクト「o」から到達可能なオブジェクトのリストを計算する際に、\f2java.lang.String.value\fP フィールドに関連する参照パスが考慮されなくなります。 +ãǽʥ֥ȡפΥ꤫٤ǡСΰޤեꤷޤȤСΥե \f2java.lang.String.value\fP ޤޤƤ硢Υ֥ȡoפãǽʥ֥ȤΥꥹȤ׻ݤˡ\f2java.lang.String.value\fP եɤ˴Ϣ뻲ȥѥθʤʤޤ .TP 3 \-baseline baseline\-dump\-file -ベースラインとなるヒープダンプを指定します。両方のヒープダンプ内で同じオブジェクト ID を持つオブジェクトは「新規ではない」としてマークされます。その他のオブジェクトは「新規」としてマークされます。これは、異なる 2 つのヒープダンプを比較する際に役立ちます。 +١饤ȤʤҡץפꤷޤξΥҡץƱ֥ ID ĥ֥ȤϡֿǤϤʤפȤƥޡޤ¾Υ֥ȤϡֿפȤƥޡޤϡۤʤ 2 ĤΥҡץפӤݤΩޤ .TP 3 \-debug int -このツールのデバッグレベルを設定します。0 は「デバッグ出力なし」を意味します。より大きな値を設定すると、より冗長なモードになります。 +ΥġΥǥХå٥ꤷޤ0 ϡ֥ǥХåϤʤפ̣ޤ礭ͤꤹȡĹʥ⡼ɤˤʤޤ .TP 3 -\-version\ -バージョン番号を報告したあと、終了します。 +\-version +Сֹ𤷤ȡλޤ .TP 3 -\-h\ -ヘルプメッセージを出力して終了します。 +\-h +إץåϤƽλޤ .TP 3 -\-help\ -ヘルプメッセージを出力して終了します。 +\-help +إץåϤƽλޤ .TP 3 -\-J<flag>\ -jhat が実行されている Java 仮想マシンに <flag> を渡します。たとえば、512M バイトの最大ヒープサイズを使用するには、\-J\-Xmx512m とします。 +\-J<flag> +jhat ¹ԤƤ Java ۥޥ <flag> ϤޤȤС512M ХȤκҡץѤˤϡ\-J\-Xmx512m Ȥޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" +.LP .RS 3 .TP 2 o @@ -150,9 +150,10 @@ jconsole(1) .TP 2 o .na -\f2hprof \- ヒープおよび CPU プロファイリングツール\fP @ +\f2hprof \- ҡפ CPU ץե󥰥ġ\fP @ .fi http://java.sun.com/developer/technicalArticles/Programming/HPROF.html .RE -.RE + +.LP diff --git a/jdk/src/linux/doc/man/ja/jinfo.1 b/jdk/src/linux/doc/man/ja/jinfo.1 index 4a8856260f9..14b6814173e 100644 --- a/jdk/src/linux/doc/man/ja/jinfo.1 +++ b/jdk/src/linux/doc/man/ja/jinfo.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "02 Jun 2010" +.TH jinfo 1 "14 Apr 2011" .LP -.SH "名前" -jinfo \- 構成情報 +.SH "̾" +jinfo \- .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -60,98 +58,100 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 option -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤ +.RE + +.LP .RS 3 .TP 3 pid -出力する構成情報のプロセス ID。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +Ϥ빽Υץ IDץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .RE + +.LP .RS 3 .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .RE + +.LP .RS 3 .TP 3 core -出力する構成情報のコアファイル。 +Ϥ빽Υե롣 .RE + +.LP .RS 3 .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .RE + +.LP .RS 3 .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 -.RE +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jinfo\fP は、指定された Java プロセスやコアファイルまたはリモートデバッグサーバーの Java 構成情報を出力します。構成情報は、Java システムプロパティーと Java 仮想マシンのコマンド行フラグから構成されます。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 +\f3jinfo\fP ϡꤵ줿 Java ץ䥳եޤϥ⡼ȥǥХåС Java ϤޤϡJava ƥץѥƥ Java ۥޥΥޥɹԥե饰鹽ޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .br - -.LP -.RS 3 - -.LP jinfo \-J\-d64 \-sysprops pid -.RE .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。Windows 上の jinfo でサポートされているのは、実行中のプロセスの \-flag オプションだけです。\fP .LP -.SH "オプション" +\f3 \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \fP\f4PATH\fP\f3 ĶѿˤϡåȥץˤäƻѤ \fP\f4jvm.dll\fP\f3 ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ\fP .LP - +.LP +\f3򼨤ޤ \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP +.SH "ץ" .LP .RS 3 .TP 3 -<オプションなし> -コマンド行フラグを、システムプロパティー名と値のペアとともに出力します。 +<ץʤ> +ޥɹԥե饰򡢥ƥץѥƥ̾ͤΥڥȤȤ˽Ϥޤ .br .TP 3 \-flag name -指定されたコマンド行フラグの名前と値を出力します。 +ꤵ줿ޥɹԥե饰̾ͤϤޤ .br .TP 3 \-flag [+|\-]name -指定されたブール型のコマンド行フラグを有効または無効にします。 +ꤵ줿֡뷿Υޥɹԥե饰ͭޤ̵ˤޤ .br .TP 3 \-flag name=value -指定されたコマンド行フラグを指定された値に設定します。 +ꤵ줿ޥɹԥե饰ꤵ줿ͤꤷޤ .br .TP 3 \-flags -JVM に渡されるコマンド行フラグをペアで出力します。 +JVM Ϥ륳ޥɹԥե饰ڥǽϤޤ .br .TP 3 \-sysprops -Java システムプロパティーを名前と値のペアとして出力します。 +Java ƥץѥƥ̾ͤΥڥȤƽϤޤ .br .TP 3 \-h -ヘルプメッセージを出力します。 +إץåϤޤ .TP 3 \-help -ヘルプメッセージを出力します。 +إץåϤޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/linux/doc/man/ja/jmap.1 b/jdk/src/linux/doc/man/ja/jmap.1 index 87dc7cdf37e..b3679c520fe 100644 --- a/jdk/src/linux/doc/man/ja/jmap.1 +++ b/jdk/src/linux/doc/man/ja/jmap.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "02 Jun 2010" +.TH jmap 1 "14 Apr 2011" .LP -.SH "名前" -jmap \- メモリーマップ +.SH "̾" +jmap \- ꡼ޥå .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -60,46 +58,39 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 option -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤ .TP 3 pid -印刷するメモリーマップのプロセス ID。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +꡼ޥåפΥץ IDץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .br .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .br .TP 3 core -印刷するメモリーマップのコアファイル。 +꡼ޥåפΥե롣 .br .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .br .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .br .RE .LP -.SH " 説明" -.LP - +.SH "" .LP .LP -\f3jmap\fP は、指定されたプロセスやコアファイルまたはリモートデバッグサーバーの、共用オブジェクトメモリーマップまたはヒープメモリーの詳細を印刷します。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 -.LP -.RS 3 - +\f3jmap\fP ϡꤵ줿ץ䥳եޤϥ⡼ȥǥХåСΡѥ֥ȥ꡼ޥåפޤϥҡץ꡼ξܺ٤ޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .LP .nf \f3 @@ -108,76 +99,66 @@ jmap \-J\-d64 \-heap pid .fl \fP .fi -.RE .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。\fP +.LP +\f3: Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \fP\f4PATH\fP\f3 ĶѿˤϡåȥץˤäƻѤ \fP\f4jvm.dll\fP\f3 ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ\fP +.LP +.LP +\f3򼨤ޤ \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP .br .LP -Windows プラットフォーム上で使用可能な唯一の jmap 形式は、次のとおりです。 -.RS 3 - -.LP -jmap \-dump:<\f2dump\-options\fP> pid -.RE -および -.RS 3 - -.LP -jmap \-histo[:live] pid -.RE -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -<オプションなし> -オプションを使用しない場合、\f3jmap\fP は共用オブジェクトマッピングを印刷します。ターゲット VM にロードされた共用オブジェクトごとに、開始アドレス、マッピングのサイズ、および共用オブジェクトファイルのフルパスが印刷されます。これは、Solaris \f3pmap\fP ユーティリティーと類似しています。 +<ץʤ> +ץѤʤ硢jmap ϶ѥ֥ȥޥåԥ󥰤ޤå VM ˥ɤ줿ѥ֥ȤȤˡϥɥ쥹ޥåԥ󥰤ΥӶѥ֥ȥեΥեѥޤϡSolaris \f3pmap\fP 桼ƥƥƤޤ .br .TP 3 \-dump:[live,]format=b,file=<filename> -Java ヒープを hprof バイナリ形式で filename にダンプします。\f2live\fP サブオプションは省略可能です。これが指定された場合、ヒープ内で生存中のオブジェクトのみがダンプされます。ヒープダンプを参照するには、生成されたファイルを jhat(1) (Java Heap Analysis Tool) を使って読み取ります。 +Java ҡפ hprof Хʥ filename ˥פޤ\f2live\fP ֥ץϾάǽǤ줬ꤵ줿硢ҡ¸Υ֥ȤΤߤפޤҡץפ򻲾Ȥˤϡ줿ե jhat(1) (Java Heap Analysis Tool) Ȥäɤ߼ޤ .br .TP 3 \-finalizerinfo -ファイナライズを待っているオブジェクトに関する情報を出力します。 +եʥ饤ԤäƤ륪֥Ȥ˴ؤϤޤ .br .TP 3 \-heap -ヒープサマリーを印刷します。使用される GC アルゴリズム、ヒープ構成、および世代ごとのヒープ使用率が印刷されます。 +ҡץޥ꡼ޤѤ GC 르ꥺࡢҡ׹头ȤΥҡ׻Ψޤ .br .TP 3 \-histo[:live] -ヒープのヒストグラムを印刷します。Java クラスごとに、オブジェクトの数、バイト単位でのメモリーサイズ、および完全修飾クラス名が印刷されます。VM 内部クラス名は、「*」の接頭辞を付けて印刷されます。\f2live\fP サブオプションが指定された場合、生存中のオブジェクトのみがカウントされます。 +ҡפΥҥȥޤJava 饹Ȥˡ֥ȤοХñ̤ǤΥ꡼Ӵ饹̾ޤVM 饹̾ϡ*פƬդưޤ\f2live\fP ֥ץ󤬻ꤵ줿硢¸Υ֥ȤΤߤȤޤ .br .TP 3 \-permstat -Permanent 世代の Java ヒープの、クラスローダー関連の統計データを印刷します。クラスローダーごとに、その名前、状態、アドレス、親クラスローダー、およびクラスローダーがロードしたクラスの数とサイズが印刷されます。さらに、intern された文字列の数とサイズも出力されます。 +Permanent Java ҡפΡ饹Ϣץǡޤ饹Ȥˡ̾֡ɥ쥹ƥ饹ӥ饹ɤ饹οȥޤˡintern 줿ʸοȥϤޤ .br .TP 3 \-F -強制 (Force)。pid が応答しない場合に、jmap \-dump または jmap \-histo オプションとともに使用します。このモードでは、\f2live\fP サブオプションはサポートされません。 + (Force)pid ʤˡjmap \-dump ޤ jmap \-histo ץȤȤ˻ѤޤΥ⡼ɤǤϡ\f2live\fP ֥ץϥݡȤޤ .br .TP 3 \-h -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-help -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-J<flag> -jmap が実行されている Java 仮想マシンに <flag> を渡します。 +jmap ¹ԤƤ Java ۥޥ <flag> Ϥޤ .br .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/linux/doc/man/ja/jps.1 b/jdk/src/linux/doc/man/ja/jps.1 index f4f80ce430e..718cbdc8ef0 100644 --- a/jdk/src/linux/doc/man/ja/jps.1 +++ b/jdk/src/linux/doc/man/ja/jps.1 @@ -19,43 +19,41 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "02 Jun 2010" +.TH jps 1 "14 Apr 2011" .LP -.SH "名前" -jps \- Java 仮想マシンプロセスステータスツール +.SH "̾" +jps \- Java ۥޥץơġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -ホスト識別子 +ۥȼ̻ .TP 2 o -出力形式 +Ϸ .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -67,79 +65,70 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 hostid -プロセスレポートを生成するホストのホスト識別子。\f2hostid\fP には、通信プロトコル、ポート番号、実装に固有な他のデータを指定したオプションコンポーネントを含めることができます。 +ץݡȤۥȤΥۥȼ̻ҡ\f2hostid\fP ˤϡ̿ץȥ롢ݡֹ桢˸ͭ¾Υǡꤷץ󥳥ݡͥȤޤ뤳ȤǤޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jps\fP ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。 +\f3jps\fP ġϡåȥƥǷ¬줿 HotSpot Java ۥޥ (JVM) ɽޤΥġɽǤݡȾϡä JVM ˴ؤΤ˸ꤵޤ .LP .LP -\f2hostid\fP を指定せずに \f3jps\fP を実行した場合、ローカルホストで計測された JVM が検索されます。\f2hostid\fP を指定して起動した場合、指定されたプロトコルとポートを使用して、指定されたホスト上の JVM を検索します。\f3jstatd\fP プロセスがターゲットホスト上で実行されていると想定されます。 +\f2hostid\fP ꤻ \f3jps\fP ¹Ԥ硢ۥȤǷ¬줿 JVM ޤ\f2hostid\fP ꤷƵư硢ꤵ줿ץȥȥݡȤѤơꤵ줿ۥȾ JVM 򸡺ޤ\f3jstatd\fP ץåȥۥȾǼ¹ԤƤꤵޤ .LP .LP -\f3jps\fP コマンドは、ターゲットシステムで計測された各 JVM について、ローカル VM 識別子、つまり \f2lvmid\fP をレポートします。\f3lvmid\fP は、必須ではありませんが、一般的には JVM プロセスに対するオペレーティングシステムのプロセス識別子です。オプションを指定しない場合、\f3jps\fP によって、各 Java アプリケーションの \f2lvmid\fP が一覧表示され、それぞれにアプリケーションのクラス名または JAR ファイル名が簡単な形式で示されます。この簡単な形式のクラス名と JAR ファイル名では、クラスのパッケージ情報または JAR ファイルパス情報が省略されています。 +\f3jps\fP ޥɤϡåȥƥǷ¬줿 JVM ˤĤơ VM ̻ҡĤޤ \f2lvmid\fP ݡȤޤ\f3lvmid\fP ϡɬܤǤϤޤ󤬡Ūˤ JVM ץФ륪ڥ졼ƥ󥰥ƥΥץ̻ҤǤץꤷʤ硢\f3jps\fP ˤäơ Java ץꥱ \f2lvmid\fP ɽ졢줾˥ץꥱΥ饹̾ޤ JAR ե̾ñʷǼޤδñʷΥ饹̾ JAR ե̾Ǥϡ饹Υѥåޤ JAR եѥ󤬾άƤޤ .LP .LP -\f3jps\fP コマンドは、\f3Java\fP 起動ツールを使用して、\f2main\fP メソッドに渡されるクラス名と引数を検索します。独自の起動ツールを使用してターゲット JVM を起動した場合は、\f2main\fP メソッドに渡されるクラス名 (または JAR ファイル名) と引数は利用できません。この場合、\f3jps\fP コマンドは、main メソッドへ渡されるクラス名 (または JAR ファイル名) と引数に対して、文字列 \f2Unknown\fP を出力します。 +\f3jps\fP ޥɤϡ\f3Java\fP ưġѤ \f2main\fP ᥽åɤϤ륯饹̾Ȱ򸡺ޤȼεưġѤƥå JVM ưϡ \f2main\fP ᥽åɤϤ륯饹̾ (ޤ JAR ե̾) ȰѤǤޤ󡣤ξ硢\f3jps\fP ޥɤϡmain ᥽åɤϤ륯饹̾ (ޤ JAR ե̾) ȰФơʸ \f2Unknown\fP Ϥޤ .LP .LP -\f3jps\fP コマンドで生成される JVM のリストは、このコマンドを実行する主体に与えられたアクセス権に基づき、制限される場合があります。このコマンドは、オペレーティングシステム独自のアクセス制御機構による決定に基づいて、主体にアクセス権が与えられている JVM だけを一覧表示します。 +\f3jps\fP ޥɤ JVM ΥꥹȤϡΥޥɤ¹ԤΤͿ줿˴Ť¤礬ޤΥޥɤϡڥ졼ƥ󥰥ƥȼΥ浡ˤ˴ŤơΤ˥ͿƤ JVM ɽޤ .LP .LP -\f3注:\fP このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3:\fP Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jps\fP コマンドでは、コマンドの出力を変更するオプションが多数サポートされています。将来、これらのオプションは、変更または廃止される可能性があります。 +\f3jps\fP ޥɤǤϡޥɤνϤѹ륪ץ¿ݡȤƤޤ衢Υץϡѹޤѻߤǽޤ .LP .RS 3 .TP 3 \-q -ローカル VM 識別子のリストだけを生成するように、\f2main\fP メソッドに渡されるクラス名、JAR ファイル名、および引数の出力を制御します。 +饹̾JAR ե̾ \f2main\fP ᥽åɤϤ줿νϤ VM ̻ҤΰΤߤޤ .TP 3 \-m -main メソッドに渡される引数を出力します。この出力は、組み込まれている JVM に対して null になることもあります。 +main ᥽åɤϤϤޤνϤϡȤ߹ޤƤ JVM Ф null ˤʤ뤳Ȥ⤢ޤ .TP 3 \-l -アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力します。 +ץꥱμפʥ饹Υեѥå̾ޤϥץꥱ JAR եؤΥեѥ̾Ϥޤ .TP 3 \-v -JVM に渡される引数を出力します。 +JVM ϤϤޤ .TP 3 \-V -フラグファイル (.hotspotrc ファイルまたは \-XX:Flags=<\f2filename\fP> の引数で指定されたファイル) を通じて JVM に渡される引数を出力します。 +ե饰ե (.hotspotrc եޤ \-XX:Flags=<\f2filename\fP> ΰǻꤵ줿ե) ̤ JVM ϤϤޤ .TP 3 \-Joption -\f3jps\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 +\f3jps\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ .RE .LP .SS -ホスト識別子 -.LP -.RS 3 - +ۥȼ̻ .LP .LP -ホスト識別子、つまり \f2hostid\fP は、ターゲットシステムを示す文字列です。\f2hostid\fP 文字列の構文の大部分は、URI の構文に対応しています。 +ۥȼ̻ҡĤޤ \f2hostid\fP ϡåȥƥ򼨤ʸǤ\f2hostid\fP ʸιʸʬϡURI ιʸбƤޤ .LP .nf \f3 @@ -155,26 +144,23 @@ JVM に渡される引数を出力します。 .RS 3 .TP 3 protocol -通信プロトコルです。\f2protocol\fP が省略され、\f2hostname\fP が指定されていない場合、デフォルトのプロトコルが、プラットフォーム固有の最適化されたローカルプロトコルになります。\f2protocol\fP が省略され、\f2hostname\fP が指定されている場合は、デフォルトプロトコルは \f3rmi\fP になります。 +̿ץȥǤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤʤ硢ǥեȤΥץȥ뤬ץåȥեͭκŬ줿ץȥˤʤޤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤϡǥեȥץȥ \f3rmi\fP ˤʤޤ .TP 3 hostname -ターゲットホストを示すホスト名または IP アドレスです。\f2hostname\fP が省略されている場合は、ターゲットホストはローカルホストになります。 +åȥۥȤ򼨤ۥ̾ޤ IP ɥ쥹Ǥ\f2hostname\fP άƤϡåȥۥȤϥۥȤˤʤޤ .TP 3 port -リモートサーバーと通信するためのデフォルトポートです。\f2hostname\fP が省略されているか、\f2protocol\fP で最適化されたローカルプロトコルが指定されている場合、\f2port\fP は無視されます。そうでなければ、\f2port\fP パラメータの扱いは、実装によって異なります。デフォルトの \f3rmi\fP プロトコルの場合、\f2port\fP は、リモートホスト上の rmiregistry のポート番号を示します。\f2port\fP が省略され、\f2protocol\fP で \f3rmi\fP が指定されている場合、デフォルトの rmiregistry ポート (1099) が使用されます。 +⡼ȥС̿뤿ΥǥեȥݡȤǤ\f2hostname\fP άƤ뤫\f2protocol\fP ǺŬ줿ץȥ뤬ꤵƤ硢\f2port\fP ̵뤵ޤǤʤС\f2port\fP ѥ᡼ΰϡˤäưۤʤޤǥեȤ \f3rmi\fP ץȥξ硢\f2port\fP ϡ⡼ȥۥȾ rmiregistry Υݡֹ򼨤ޤ\f2port\fP ά졢\f2protocol\fP \f3rmi\fP ꤵƤ硢ǥեȤ rmiregistry ݡ (1099) Ѥޤ .TP 3 servername -このパラメータの扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。\f3rmi\fP プロトコルの場合、このパラメータは、リモートホスト上の RMI リモートオブジェクトの名前を示す文字列になります。jstatd(1) コマンドについては、\f3\-n\fP オプションを参照してください。 +Υѥ᡼ΰϡˤäưۤʤޤŬ줿ץȥξ硢Υեɤ̵뤵ޤ\f3rmi\fP ץȥξ硢Υѥ᡼ϡ⡼ȥۥȾ RMI ⡼ȥ֥Ȥ̾򼨤ʸˤʤޤjstatd(1) ޥɤˤĤƤϡ\f3\-n\fP ץ򻲾ȤƤ .RE .LP -.RE -.SH "出力形式" -.LP - +.SH "Ϸ" .LP .LP -\f3jps\fP コマンドの出力は、次のパターンに従います。 +\f3jps\fP ޥɤνϤϡΥѥ˽ޤ .LP .nf \f3 @@ -188,22 +174,20 @@ servername .LP .LP -すべての出力トークンは空白で区切ります。\f2arg\fP の中で空白を使用すると、実際の定位置パラメータに引数をマッピングしようとするときに、あいまいになります。 +٤Ƥνϥȡ϶Ƕڤޤ\f2arg\fP ǶѤȡºݤ֥ѥ᡼˰ޥåԥ󥰤褦ȤȤˡޤˤʤޤ .br .br -\f3注\fP: 将来のリリースでこの形式は変更される可能性があるため、\f3jps\fP 出力を解析するスクリプトは作成しないことをお勧めします。\f3jps\fP 出力を解析するスクリプトを作成すると、このツールの将来のリリースで、作成したスクリプトを変更する必要が予測されます。 +\f3\fP: Υ꡼Ǥηѹǽ뤿ᡢ\f3jps\fP νϤϤ륹ץȤϺʤȤ򤪴ᤷޤ\f3jps\fP ϤϤ륹ץȤȡΥġξΥ꡼ǡץȤѹɬפͽ¬ޤ .br .LP -.SH "例" -.LP - +.SH "" .LP .LP -この節では、\f3jps\fP コマンドの例を示します。 +Ǥϡ\f3jps\fP ޥɤ򼨤ޤ .LP .LP -ローカルホスト上で計測された JVM を一覧表示する場合: +ۥȾǷ¬줿 JVM ɽ: .LP .nf \f3 @@ -228,10 +212,10 @@ servername .LP .LP -リモートホスト上で計測された JVM を一覧表示する場合: +⡼ȥۥȾǷ¬줿 JVM ɽ: .LP .LP -この例では、\f3jstat\fP サーバーと、その内部 RMI レジストリまたは別の外部 \f3rmiregistry\fP プロセスのいずれかとが、リモートホストのデフォルトポート (ポート 1099) で実行されていると想定しています。また、ローカルホストが、リモートホストへの有効なアクセス権を持っていることも想定しています。この例には、\f2\-l\fP オプションも含まれ、クラス名または JAR ファイル名を詳細な形式で出力します。 +Ǥϡ\f3jstat\fP Сȡ RMI 쥸ȥޤ̤γ \f3rmiregistry\fP ץΤ줫Ȥ⡼ȥۥȤΥǥեȥݡ (ݡ 1099) Ǽ¹ԤƤꤷƤޤޤۥȤ⡼ȥۥȤؤͭʥäƤ뤳ȤꤷƤޤˤϡ\f2\-l\fP ץޤޤ졢饹̾ޤ JAR ե̾ܺ٤ʷǽϤޤ .LP .nf \f3 @@ -240,7 +224,7 @@ servername .br .fl -3002 /opt/jdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR +3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR .br .fl @@ -252,10 +236,10 @@ servername .LP .LP -RMI レジストリにデフォルトではないポートを使用して、リモートホスト上で計測された JVM を一覧表示する場合: +RMI 쥸ȥ˥ǥեȤǤϤʤݡȤѤơ⡼ȥۥȾǷ¬줿 JVM ɽ: .LP .LP -この例では、内部 RMI レジストリがポート 2002 にバインドされた \f3jstatd\fP サーバーが、リモートホスト上で実行していると想定しています。また、\f2\-m\fP オプションを使用して、一覧表示されたそれぞれの Java アプリケーションの \f2main\fP メソッドに渡される引数を組み込んでいます。 +Ǥϡ RMI 쥸ȥ꤬ݡ 2002 ˥Хɤ줿 \f3jstatd\fP С⡼ȥۥȾǼ¹ԤƤꤷƤޤޤ\f2\-m\fP ץѤơɽ줿줾 Java ץꥱ \f2main\fP ᥽åɤϤȤ߹Ǥޤ .LP .nf \f3 @@ -264,7 +248,7 @@ RMI レジストリにデフォルトではないポートを使用して、リ .br .fl -3002 /opt/jdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR +3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR .br .fl @@ -273,21 +257,21 @@ RMI レジストリにデフォルトではないポートを使用して、リ .fi .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jstat(1) \- Java 仮想マシン統計データ監視ツール」 +jstat(1) \- Java ۥޥץǡƻġ .TP 2 o -「jstatd(1) \- 仮想マシン jstat デーモン」 +jstatd(1) \- ۥޥ jstat ǡ .TP 2 o -「rmiregistry(1) \- Java リモートオブジェクトレジストリ」 +rmiregistry(1) \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/jrunscript.1 b/jdk/src/linux/doc/man/ja/jrunscript.1 index 0f4b3599cde..70b527f7e45 100644 --- a/jdk/src/linux/doc/man/ja/jrunscript.1 +++ b/jdk/src/linux/doc/man/ja/jrunscript.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,40 +19,38 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "02 Jun 2010" +.TH jrunscript 1 "14 Apr 2011" .LP -.SH "名前" -jrunscript \- コマンド行スクリプトシェル +.SH "̾" +jrunscript \- ޥɹԥץȥ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -引数 + .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -62,85 +60,77 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 arguments -引数を使用する場合、オプションまたはコマンド名の直後に記述してください。 +Ѥ硢ץޤϥޥ̾ľ˵ҤƤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jrunscript\fP はコマンド行スクリプトシェルです。 jrunscript は、対話型 (読み取り \- 評価 \- 出力) モードとバッチ (\-f オプション) モードの両方のスクリプト実行をサポートします。これはスクリプト言語に依存しないシェルです。デフォルトの使用言語は JavaScript ですが、\-l オプションを使えばほかの言語も指定できます。jrunscript は、Java とスクリプト言語との通信によって「探求的なプログラミング」スタイルをサポートします。 +\f3jrunscript\fP ϥޥɹԥץȥǤjrunscript ϡ÷ (ɤ߼ \- ɾ \- ) ⡼ɤȥХå (\-f ץ) ⡼ɤξΥץȼ¹Ԥ򥵥ݡȤޤϥץȸ˰¸ʤǤǥեȤλѸ JavaScript Ǥ\-l ץȤФۤθǤޤjrunscript ϡJava ȥץȸȤ̿ˤäơõŪʥץߥ󥰡ץ򥵥ݡȤޤ .LP .LP -\f3注:\fP このツールは\f3試験的なもの\fPであり、将来の JDK のバージョンでは\f3利用できなくなる\fP可能性があります。 +\f3:\fP Υġ\f3Ūʤ\fPǤꡢ JDK ΥСǤ\f3ѤǤʤʤ\fPǽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-classpath path -スクリプトからのアクセス対象となるユーザーの .class ファイルの検索場所を指定します。 +ץȤΥоݤȤʤ桼 .class եθꤷޤ .TP 3 \-cp path -\-classpath \f2path\fP と同義です。 +\-classpath \f2path\fP ƱǤ .TP 3 \-Dname=value -Java のシステムプロパティーを設定します。 +Java Υƥץѥƥꤷޤ .TP 3 \-J<flag> -jrunscript が実行されている Java 仮想マシンに <flag> を渡します。 +jrunscript ¹ԤƤ Java ۥޥ <flag> Ϥޤ .TP 3 \-l language -指定されたスクリプト言語を使用します。デフォルトでは JavaScript が使用されます。ほかのスクリプト言語を使用するには、対応するスクリプトエンジンの JAR ファイルも指定する必要があります。 それには、\-cp、\-classpath のいずれかのオプションを使用します。 +ꤵ줿ץȸѤޤǥեȤǤ JavaScript ѤޤۤΥץȸѤˤϡб륹ץȥ󥸥 JAR եꤹɬפޤˤϡ\-cp\-classpath Τ줫ΥץѤޤ .TP 3 \-e script -指定されたスクリプトを評価します。このオプションを使えば、コマンド行にすべてが指定された「1 行」スクリプトを実行できます。 +ꤵ줿ץȤɾޤΥץȤСޥɹԤˤ٤Ƥꤵ줿1 ԡץץȤ¹ԤǤޤ .TP 3 \-encoding encoding -スクリプトファイルの読み取り時に使用する文字エンコーディングを指定します。 +ץȥեɤ߼˻Ѥʸ󥳡ǥ󥰤ꤷޤ .TP 3 \-f script\-file -指定されたスクリプトファイルを評価します (バッチモード)。 +ꤵ줿ץȥեɾޤ (Хå⡼) .TP 3 \-f \- -標準入力からスクリプトを読み取り、それを評価します (対話型モード)。 +ɸϤ饹ץȤɤ߼ꡢɾޤ (÷⡼) .TP 3 \-help\ -ヘルプメッセージを出力して終了します。 +إץåϤƽλޤ .TP 3 \-?\ -ヘルプメッセージを出力して終了します。 +إץåϤƽλޤ .TP 3 \-q\ -利用可能なすべてのスクリプトエンジンを一覧表示したあと、終了します。 +Ѳǽʤ٤ƤΥץȥ󥸥ɽȡλޤ .RE .LP -.SH "引数" +.SH "" .LP .LP -[arguments...] が存在していて、かつ \f3\-e\fP、\f3\-f\fP のいずれのオプションも使用されなかった場合、最初の引数がスクリプトファイルとなり、他の引数が存在する場合はスクリプト引数として渡されます。[arguments..] が使用され、かつ \f3\-e\fP、\f3\-f\fP のいずれかのオプションが使用された場合、すべての [arguments..] がスクリプト引数として渡されます。[arguments..]、\f3\-e\fP、\f3\-f\fP がどれも存在しなかった場合は、対話型モードが使用されます。スクリプトからスクリプト引数を使用するには、「arguments」という名前の String 配列型のエンジン変数を使用します。 +[arguments...] ¸ߤƤơ \f3\-e\fP\f3\-f\fP ΤΥץѤʤä硢ǽΰץȥեȤʤꡢ¾ΰ¸ߤϥץȰȤϤޤ[arguments..] ȡ\f3\-e\fP ޤ \f3\-f\fP ѤƤ硢٤Ƥ [arguments..] ץȰȤϤޤ[arguments..]\f3\-e\fP\f3\-f\fP ɤ¸ߤʤäϡ÷⡼ɤѤޤץȤ饹ץȰѤˤϡargumentsפȤ̾ String 󷿤Υ󥸥ѿѤޤ .LP -.SH "例" +.SH "" .LP -\f3インラインスクリプトの実行\fP -.LP -.RS 3 - +.SS +饤󥹥ץȤμ¹ .LP .nf \f3 @@ -151,13 +141,10 @@ jrunscript \-e "cat('http://java.sun.com')" .fl \fP .fi -.RE .LP -\f3指定された言語を使用し、指定されたスクリプトファイルを評価する\fP -.LP -.RS 3 - +.SS +ꤵ줿Ѥꤵ줿ץȥեɾ .LP .nf \f3 @@ -166,42 +153,42 @@ jrunscript \-l js \-f test.js .fl \fP .fi -.RE .LP -\f3対話型モード\fP -.LP -.RS 3 - +.SS +÷⡼ .LP .nf \f3 .fl jrunscript .fl -js>print('hello world'); +js> print('Hello World\\n'); .fl -hello world +Hello World .fl -js>34 + 55 +js> 34 + 55 .fl -89 +89.0 .fl -js> thread(function() { print('hello world'); } +js> t = new java.lang.Thread(function() { print('Hello World\\n'); }) .fl -hello world +Thread[Thread\-0,5,main] +.fl +js> t.start() +.fl +js> Hello World +.fl + .fl js> .fl \fP .fi -.RE .LP -\f3スクリプト引数を指定してスクリプトファイルを実行する\fP -.LP -.RS 3 - +.SS +ץȰꤷƥץȥե¹Ԥ .LP .nf \f3 @@ -210,13 +197,12 @@ jrunscript test.js arg1 arg2 arg3 .fl \fP .fi -.RE .LP -test.js が実行対象となるスクリプトファイルであり、arg1、arg2、および arg3 はスクリプト引数としてスクリプトに渡されます。スクリプトは「arguments」配列を使ってこれらにアクセスできます。 -.SH "関連項目" +test.js ¹оݤȤʤ륹ץȥեǤꡢarg1arg2 arg3 ϥץȰȤƥץȤϤޤץȤϡargumentsȤäƤ˥Ǥޤ +.SH "Ϣ" .LP .LP -JavaScript が使用される場合、jrunscript は、最初のユーザー定義スクリプトを評価する前に、いくつかの組み込み関数や組み込みオブジェクトを初期化します。これらの JavaScript 組み込み機能については、jsdocs を参照してください。 +JavaScript Ѥ硢jrunscript ϡǽΥ桼ץȤɾˡĤȤ߹ߴؿȤ߹ߥ֥Ȥޤ JavaScript Ȥ߹ߵǽˤĤƤϡjsdocs 򻲾ȤƤ .LP diff --git a/jdk/src/linux/doc/man/ja/jsadebugd.1 b/jdk/src/linux/doc/man/ja/jsadebugd.1 index d61e4ec9b48..928334062e7 100644 --- a/jdk/src/linux/doc/man/ja/jsadebugd.1 +++ b/jdk/src/linux/doc/man/ja/jsadebugd.1 @@ -19,31 +19,29 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "02 Jun 2010" +.TH jsadebugd 1 "14 Apr 2011" .LP -.SH "名前" -jsadebugd \- サービスアビリティーエージェントデバッグデーモン +.SH "̾" +jsadebugd \- ӥӥƥȥǥХåǡ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -55,14 +53,12 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 pid -デバッグサーバーが接続するプロセスのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。単一のプロセスに接続できるデバッグサーバーのインスタンスは、1 つに制限されます。 +ǥХåС³ץΥץ ID Ǥץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) ѤޤñΥץ³ǤǥХåСΥ󥹥󥹤ϡ1 Ĥ¤ޤ .RE .LP @@ -74,37 +70,32 @@ executable .LP .RS 3 .TP 3 -コアダンプの作成元になる Java 実行可能ファイルです。 +פκˤʤ Java ¹ԲǽեǤ .RE .LP .RS 3 .TP 3 core -デバッグサーバーを接続するコアファイルです。 +ǥХåС³륳եǤ .RE .LP .RS 3 .TP 3 server\-id -複数のデバッグサーバーが同一のマシン上で実行している場合に必要になる、オプション固有の ID です。この ID は、リモートクライアントが、接続先のデバッグサーバーを特定するために使用する必要があります。この ID は、単一のマシン内で一意でなければなりません。 +ʣΥǥХåСƱΥޥǼ¹ԤƤɬפˤʤ롢ץͭ ID Ǥ ID ϡ⡼ȥ饤Ȥ³ΥǥХåСꤹ뤿˻Ѥɬפޤ ID ϡñΥޥǰդǤʤФʤޤ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jsadebugd\fP は、Java プロセスまたはコアファイルに接続し、デバッグサーバーとして機能します。jstack(1)、jmap(1)、および jinfo(1) などのリモートクライアントは、Java Remote Method Invocation (RMI) を使用しているサーバーに接続できます。\f2jsadebugd\fP を起動する前に、次のように指定して +\f3jsadebugd\fP ϡJava ץޤϥե³ǥХåСȤƵǽޤjstack(1)jmap(1) jinfo(1) ʤɤΥ⡼ȥ饤ȤϡJava Remote Method Invocation (RMI) ѤƤ륵С³Ǥޤ \f2jsadebugd\fP ưˡΤ褦ˤ .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi を起動する必要があります。 -.LP -.RS 3 - +http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi ưɬפޤ .LP .nf \f3 @@ -113,16 +104,18 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi を起動する .fl \fP .fi -.RE .LP .LP -ここで、\f2$JAVA_HOME\fP は、JDK のインストールディレクトリです。rmiregistry が起動していない場合、jsadebugd は標準 (1099) ポートの rmiregistry を内部で起動します。デバッグサーバーは、SIGINT を送信する (Ctrl+C を押す) ことにより停止できます。 +ǡ \f2$JAVA_HOME\fP JDK 󥹥ȡǥ쥯ȥǤrmiregistry ưƤʤ硢jsadebugd ɸ (1099) ݡȤ rmiregistry ǵưޤǥХåСϡSIGINT (Ctrl+C 򲡤) ȤˤߤǤޤ .LP .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。 jsadebugd は、現時点では、Windows プラットフォームでは使用できません。\fP +\f3\fP \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \f2PATH\fP ĶѿˤϡåȥץˤäƻѤ \f2jvm.dll\fP ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ .LP -.SH "関連項目" +.LP +򼨤ޤ \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/linux/doc/man/ja/jstack.1 b/jdk/src/linux/doc/man/ja/jstack.1 index f8e29461513..a8b3c8f59ab 100644 --- a/jdk/src/linux/doc/man/ja/jstack.1 +++ b/jdk/src/linux/doc/man/ja/jstack.1 @@ -19,41 +19,39 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "02 Jun 2010" +.TH jstack 1 "14 Apr 2011" .LP -.SH "名前" -jstack \- スタックトレース +.SH "̾" +jstack \- åȥ졼 .br .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .br .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .TP 2 o -既知のバグ +ΤΥХ .br .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -67,50 +65,43 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .LP -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。オプションを参照してください。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤץ򻲾ȤƤ .LP .RS 3 .TP 3 pid -印刷するスタックトレースのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +륹åȥ졼Υץ ID Ǥץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .RE .LP .RS 3 .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .br .TP 3 core -印刷するスタックトレースのコアファイルです。 +륹åȥ졼ΥեǤ .br .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .br .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jstack\fP は、指定された Java プロセスやコアファイルまたはリモートデバッグサーバーに対する Java スレッドの Java スタックトレースを印刷します。Java フレームごとに、フルクラス名、メソッド名、「bci」(バイトコードインデックス)、および行番号 (利用可能な場合) が印刷されます。\-m オプションを使用すると、jstack は、すべてのスレッドの Java フレームとネイティブフレームの両方を、「pc」(プログラムカウンタ) とともに印刷します。ネイティブフレームごとに、「pc」にもっとも近いネイティブシンボル (利用可能な場合) が印刷されます。C++ 分解名は分解解除されません。C++ 名を分解解除するには、このコマンドの出力を \f3c++filt\fP にパイプします。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 +\f3jstack\fP ϡꤵ줿 Java ץ䥳եޤϥ⡼ȥǥХåСФ Java åɤ Java åȥ졼ޤJava ե졼ऴȤˡե륯饹̾᥽å̾bci(Хȥɥǥå)ӹֹ (Ѳǽʾ) ޤ\-m ץѤȡjstack ϡ٤ƤΥåɤ Java ե졼ȥͥƥ֥ե졼ξ򡢡pc(ץ५) ȤȤ˰ޤͥƥ֥ե졼ऴȤˡpcפˤäȤᤤͥƥ֥ܥ (Ѳǽʾ) ޤC++ ʬ̾ʬޤC++ ̾ʬˤϡΥޥɤνϤ \f3c++filt\fP ˥ѥפޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .br -.LP -.RS 3 - .LP .nf \f3 @@ -119,51 +110,43 @@ jstack \-J\-d64 \-m pid .fl \fP .fi -.RE .LP .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。Windows プラットフォーム上で使用可能な唯一の jstack 形式は、次のとおりです。\fP +\f3\fP \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \f2PATH\fP ĶѿˤϡåȥץˤäƻѤ \f2jvm.dll\fP ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ .LP -.nf -\f3 -.fl -\fP\f3 jstack [\-l] pid \fP -.fl -.fi - .LP -.SH "オプション" +򼨤ޤ \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP - +.SH "ץ" .LP .RS 3 .TP 3 \-F -「jstack [\-l] pid」が応答しない場合にスタックダンプを強制します。 +jstack [\-l] pidפʤ˥åפޤ .TP 3 \-l -長形式のリスト。所有 java.util.concurrent の +ĹΥꥹȡͭ java.util.concurrent .na -\f2所有できるシンクロナイザ\fP @ +\f2ͭǤ륷󥯥ʥ\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.htmlの一覧など、ロックについての追加情報を印刷します。 +http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.htmlΰʤɡåˤĤƤɲþޤ .TP 3 \-m -混合モード (Java およびネイティブ C/C++ フレームの両方) のスタックトレースを印刷します。 +⡼ (Java ӥͥƥ C/C++ ե졼ξ) Υåȥ졼ޤ .TP 3 \-h -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-help -ヘルプメッセージを印刷します。 +إץåϤޤ .br .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -181,11 +164,9 @@ jsadebugd(1) .RE .LP -.SH "既知のバグ" -.LP - +.SH "ΤΥХ" .LP .LP -混合モードのスタックトレース (\-m オプション使用) は、リモートデバッグサーバーでは機能しません。 +⡼ɤΥåȥ졼 (\-m ץ) ϡ⡼ȥǥХåСǤϵǽޤ .LP diff --git a/jdk/src/linux/doc/man/ja/jstat.1 b/jdk/src/linux/doc/man/ja/jstat.1 index 3ee68ea035d..8b3e670a49d 100644 --- a/jdk/src/linux/doc/man/ja/jstat.1 +++ b/jdk/src/linux/doc/man/ja/jstat.1 @@ -19,44 +19,46 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "02 Jun 2010" +.TH jstat 1 "14 Apr 2011" .LP -.SH "名前" -jstat \- Java 仮想マシン統計データ監視ツール +.SH "̾" +jstat \- Java ۥޥץǡƻġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -仮想マシン識別子 +ۥޥ̻ .TP 2 o -オプション -.br -\ \ \- 一般的なオプション -.br -\ \ \- 出力オプション +ץ +.RS 3 +.TP 2 +* +Ūʥץ +.TP 2 +* +ϥץ +.RE .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -66,56 +68,49 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 generalOption -単独で使用する一般的なコマンド行オプションです (\-help、\-options、または \-version)。 +ñȤǻѤŪʥޥɹԥץǤ (\-help\-optionsޤ \-version) .TP 3 outputOptions -単一の \f2statOption\fP と、\-t、\-h、および \-J オプションのいずれかを組み合わせた、1 つまたは複数の出力オプションです。 +ñ \f2statOption\fP ȡ\-t\-h \-J ץΤ줫Ȥ߹碌1 ĤޤʣνϥץǤ .TP 3 vmid -ターゲットの Java 仮想マシン (JVM) を示す文字列である仮想マシン識別子です。一般的な構文は次のようになります。 +åȤ Java ۥޥ (JVM) 򼨤ʸǤ벾ۥޥ̻ҤǤŪʹʸϼΤ褦ˤʤޤ .nf \f3 .fl [\fP\f4protocol\fP\f3:][//]\fP\f4lvmid\fP[@\f2hostname\fP[:\f2port\fP]/\f2servername\fP] .fl .fi -vmid 文字列の構文の大部分は、URI の構文に対応しています。\f2vmid\fP は、ローカル JVM を表す単純な整数から、通信プロトコル、ポート番号、および他の実装固有の値を示す複雑な構造まで、さまざまに異なります。詳細は、「仮想マシン識別子」を参照してください。 +vmid ʸιʸʬϡURI ιʸбƤޤ\f2vmid\fP ϡ JVM ɽñ顢̿ץȥ롢ݡֹ桢¾μͭͤ򼨤ʣʹ¤ޤǡޤޤ˰ۤʤޤܺ٤ϡֲۥޥ̻ҡפ򻲾ȤƤ .TP 3 interval[s|ms] -秒 (s) またはミリ秒 (ms) のうち指定した単位でのサンプリング間隔です。デフォルトの単位はミリ秒です。\ 正の整数でなければなりません。\ これが指定された場合、\f3jstat\fP は interval ごとに出力を生成します。 + (s) ޤϥߥ (ms) Τꤷñ̤ǤΥץ󥰴ֳ֤ǤǥեȤñ̤ϥߥäǤǤʤФʤޤ󡣤줬ꤵ줿硢\f3jstat\fP interval Ȥ˽Ϥޤ .TP 3 count -表示するサンプル数です。デフォルト値は無限です。 つまり、\f3jstat\fP は、ターゲット JVM が終了するまで、または \f3jstat\fP コマンドが終了するまで、統計データを表示します。 正の整数値を使用する必要があります。 +ɽ륵ץǤǥե̵ͤ¤ǤĤޤꡢ\f3jstat\fP ϡå JVM λޤǡޤ \f3jstat\fP ޥɤλޤǡץǡɽޤǤʤФʤޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jstat\fP ツールは、設置されている HotSpot Java 仮想マシン (JVM) のパフォーマンス統計データを表示します。ターゲット JVM は、仮想マシン識別子、つまり下記の \f2vmid\fP オプションによって識別されます。 +\f3jstat\fP ġϡ֤Ƥ HotSpot Java ۥޥ (JVM) Υѥեޥץǡɽޤå JVM ϡۥޥ̻ҡĤޤ겼 \f2vmid\fP ץˤäƼ̤ޤ .LP .LP -\f3注\fP: このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3\fP: Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .br .LP .SS -仮想マシン識別子 -.LP -.RS 3 - +ۥޥ̻ .LP .LP -\f2vmid\fP 文字列の構文の大部分は、URI の構文に対応しています。 +\f2vmid\fP ʸιʸʬϡURI ιʸбƤޤ .LP .nf \f3 @@ -128,79 +123,73 @@ count .RS 3 .TP 3 protocol -通信プロトコルです。\f2protocol\fP が省略され、\f2hostname\fP が指定されていない場合、デフォルトのプロトコルが、プラットフォーム固有の最適化されたローカルプロトコルになります。\f2protocol\fP が省略され、\f2hostname\fP が指定されている場合は、デフォルトプロトコルは \f3rmi\fP になります。 +̿ץȥǤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤʤ硢ǥեȤΥץȥ뤬ץåȥեͭκŬ줿ץȥˤʤޤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤϡǥեȥץȥ \f3rmi\fP ˤʤޤ .TP 3 lvmid -ターゲット JVM のローカル仮想マシン識別子です。\f2lvmid\fP は、システム上の JVM を一意に識別するプラットフォーム固有の値です。\f2lvmid\fP は、仮想マシン識別子の唯一の必須要素です。\f2lvmid\fP は、絶対というわけではありませんが、一般的にはターゲット JVM プロセスに対するオペレーティングシステムのプロセス識別子です。jps(1) コマンドを使用して、\f2lvmid\fP を指定できます。また、Unix プラットフォームでは\f3ps\fP コマンドを使用して、Windows では Windows タスクマネージャーを使用して、\f2lvmid\fP を指定できます。 +å JVM Υ벾ۥޥ̻ҤǤ\f2lvmid\fP ϡƥ JVM դ˼̤ץåȥեͭͤǤ\f2lvmid\fP ϡۥޥ̻ҤͣɬǤǤ\f2lvmid\fP ϡФȤ櫓ǤϤޤ󤬡Ūˤϥå JVM ץФ륪ڥ졼ƥ󥰥ƥΥץ̻ҤǤjps(1) ޥɤѤơ\f2lvmid\fP ǤޤޤUnix ץåȥեǤ\f3ps\fP ޥɤѤơWindows Ǥ Windows ޥ͡㡼Ѥơ\f2lvmid\fP Ǥޤ .TP 3 hostname -ターゲットホストを示すホスト名または IP アドレスです。\f2hostname\fP が省略されている場合は、ターゲットホストはローカルホストになります。 +åȥۥȤ򼨤ۥ̾ޤ IP ɥ쥹Ǥ\f2hostname\fP άƤϡåȥۥȤϥۥȤˤʤޤ .TP 3 port -リモートサーバーと通信するためのデフォルトポートです。\f2hostname\fP が省略されているか、\f2protocol\fP で最適化されたローカルプロトコルが指定されている場合、\f2port\fP は無視されます。そうでなければ、\f2port\fP パラメータの扱いは、実装によって異なります。デフォルトの \f3rmi\fP プロトコルの場合、\f2port\fP は、リモートホスト上の rmiregistry のポート番号を示します。\f2port\fP が省略され、\f2protocol\fP で \f3rmi\fP が指定されている場合、デフォルトの rmiregistry ポート (1099) が使用されます。 +⡼ȥС̿뤿ΥǥեȥݡȤǤ\f2hostname\fP άƤ뤫\f2protocol\fP ǺŬ줿ץȥ뤬ꤵƤ硢\f2port\fP ̵뤵ޤǤʤС\f2port\fP ѥ᡼ΰϡˤäưۤʤޤǥեȤ \f3rmi\fP ץȥξ硢\f2port\fP ϡ⡼ȥۥȾ rmiregistry Υݡֹ򼨤ޤ\f2port\fP ά졢\f2protocol\fP \f3rmi\fP ꤵƤ硢ǥեȤ rmiregistry ݡ (1099) Ѥޤ .TP 3 servername -このパラメータの扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。\f3rmi\fP プロトコルの場合は、このパラメータは、リモートホスト上の RMI リソースオブジェクトの名前を示します。 +Υѥ᡼ΰϡˤäưۤʤޤŬ줿ץȥξ硢Υեɤ̵뤵ޤ\f3rmi\fP ץȥξϡΥѥ᡼ϡ⡼ȥۥȾ RMI ꥽֥Ȥ̾򼨤ޤ .RE .LP -.RE -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jstat\fP コマンドは、一般的なオプションと出力オプションの 2 つのタイプのオプションをサポートしています。一般的なオプションを使用した場合、\f3jstat\fP は簡単な使用率およびバージョン情報を表示します。出力オプションでは、統計データ出力の内容と形式を指定します。 +\f3jstat\fP ޥɤϡŪʥץȽϥץ 2 ĤΥפΥץ򥵥ݡȤƤޤŪʥץѤ硢\f3jstat\fP ϴñʻΨӥСɽޤϥץǤϡץǡϤƤȷꤷޤ .br .LP .LP -\f3注\fP: すべてのオプションとその機能は、将来のリリースで変更または廃止される可能性があります。 +\f3\fP: ٤ƤΥץȤεǽϡΥ꡼ѹޤѻߤǽޤ .LP .SS -一般的なオプション +Ūʥץ .LP .LP -いずれかの一般的なオプションを指定した場合、他のオプションまたはパラメータは一切指定できません。 +줫ΰŪʥץꤷ硢¾Υץޤϥѥ᡼ϰڻǤޤ .LP .RS 3 .TP 3 \-help -ヘルプメッセージを表示します。 +إץåɽޤ .TP 3 \-version -バージョン情報を表示します。 +Сɽޤ .TP 3 \-options -統計データオプションを一覧表示します。下記の「出力オプション」の節を参照してください。 +ץǡץɽޤΡֽϥץפ򻲾ȤƤ .RE .LP .SS -出力オプション -.LP -.RS 3 - +ϥץ .LP .LP -一般的なオプションを指定しない場合に、出力オプションを指定できます。出力オプションは、\f3jstat\fP の出力の内容および形式を指定し、単一の \f2statOption\fP と、他のいずれかの出力オプション (\-h、\-t、および \-J) とで構成されます。\ \f2statOption\fP は最初に記述する必要があります。 +ŪʥץꤷʤˡϥץǤޤϥץϡ\f3jstat\fP νϤƤӷꤷñ \f2statOption\fP ȡ¾Τ줫νϥץ (\-h\-t \-J) Ȥǹޤ\f2statOption\fP Ϻǽ˵Ҥɬפޤ .LP .LP -出力は、各列が空白で区切られたテーブルの形式で構成されます。タイトルを記したヘッダー行に、各列の説明が記されます。 \f3\-h\fP オプションを使用して、ヘッダーを表示する頻度を設定します。\ 通常、列のヘッダー名はオプションが異なっている場合でも一貫しています。一般に、2 つのオプションで同じ名前の列が使用されていれば、2 つの列のデータソースは同じになります。 +Ϥϡ󤬶Ƕڤ줿ơ֥ηǹޤȥޤإåԤˤäơΰ̣狼ޤإåɽ٤ꤹˤϡ\f3\-h\fP ץѤޤΥإå̾ϰ̤ˡץ֤ǰݤƤޤ̤ˡ2 ĤΥץƱ̾󤬻ѤƤС2 ĤΥǡƱˤʤޤ .LP .LP -\f3\-t\fP オプションを使用すると、\f2Timestamp\fP というラベルの付いたタイムスタンプの列が、出力の最初の列として表示されます。\f2Timestamp\fP 列には、ターゲット JVM の起動からの経過時間が、秒単位で表示されます。タイムスタンプの精度は、さまざまな要因によって異なり、大量の負荷のかかったシステムでのスレッドスケジュールの遅延により変動します。 +\f3\-t\fP ץѤȡ \f2Timestamp Ȥ٥դॹפ󤬡\fP ϤκǽȤɽޤ \f2Timestamp\fP ˤϡå JVM εưηв֤ñ̤ɽޤॹפ٤ϡޤޤװˤäưۤʤꡢ̤٤ΤäƥǤΥåɥ塼ٱˤưޤ .LP .LP -\f2interval\fP および \f2count\fP パラメータを使用して、\f3jstat\fP がその出力を表示する頻度と回数をそれぞれ指定します。 +\f2interval\fP \f2count\fP ѥ᡼Ѥơ\f3jstat\fP νϤɽ٤Ȳ򤽤줾ꤷޤ .LP .LP -\f3注\fP: 将来のリリースでこの形式は変更される可能性があるため、\f3jstat\fP の出力を解析するスクリプトは作成しないことをお勧めします。\f3jstat\fP 出力を解析するスクリプトを作成する場合は、このツールの将来のリリースで、そのスクリプトを変更しなければならないことに留意してください。 +\f3\fP: Υ꡼Ǥηѹǽ뤿ᡢ\f3jstat\fP νϤϤ륹ץȤϺʤȤ򤪴ᤷޤ\f3jstat\fP ϤϤ륹ץȤϡΥġξΥ꡼ǡΥץȤѹʤФʤʤȤαդƤ .LP .RS 3 .TP 3 \-statOption -\f3jstat\fP が表示する統計データ情報を指定します。次の表には、利用可能なオプションが一覧表示されています。 特定のプラットフォームのインストールについて、オプションを一覧表示するには、一般的なオプションの \f3\-options\fP を使用します。 +\f3jstat\fP ɽץǡꤷޤɽˡѲǽʥץΰ򼨤ޤΥץåȥե।󥹥ȡΥץɽˤϡŪʥץ \f3\-options\fP Ѥޤ .br .br .LP @@ -232,7 +221,7 @@ servername .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -クラスローダーの動作に関する統計データ +饹ư˴ؤץǡ .br .di .nr a| \n(dn @@ -248,7 +237,7 @@ servername .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HotSpot Just\-in\-Time コンパイラの動作に関する統計データ +HotSpot Just\-in\-Time ѥư˴ؤץǡ .br .di .nr b| \n(dn @@ -264,7 +253,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクトされたヒープの動作に関する統計データ +١쥯Ȥ줿ҡפư˴ؤץǡ .br .di .nr c| \n(dn @@ -280,7 +269,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -世代ごとの容量と対応する領域に関する統計データ +头Ȥ̤бΰ˴ؤץǡ .br .di .nr d| \n(dn @@ -296,7 +285,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション統計データの概要 (\f3\-gcutil\fP と同じ) と、直前および現在 (適用可能な場合) のガベージコレクションイベントの原因 +١쥯ץǡγ (\f3\-gcutil\fP Ʊ) ȡľӸ (ŬѲǽʾ) Υ١쥯󥤥٥Ȥθ .br .di .nr e| \n(dn @@ -312,7 +301,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の動作に関する統計データ +New ư˴ؤץǡ .br .di .nr f| \n(dn @@ -328,7 +317,7 @@ New 世代の動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代のサイズと対応する領域に関する統計データ +New Υбΰ˴ؤץǡ .br .di .nr g| \n(dn @@ -344,7 +333,7 @@ New 世代のサイズと対応する領域に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代および Permanent 世代の動作に関する統計データ +Old 太 Permanent ư˴ؤץǡ .br .di .nr h| \n(dn @@ -360,7 +349,7 @@ Old 世代および Permanent 世代の動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代のサイズに関する統計データ +Old Υ˴ؤץǡ .br .di .nr i| \n(dn @@ -376,7 +365,7 @@ Old 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代のサイズに関する統計データ +Permanent Υ˴ؤץǡ .br .di .nr j| \n(dn @@ -392,7 +381,7 @@ Permanent 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション統計データの概要 +١쥯ץǡγ .br .di .nr k| \n(dn @@ -408,7 +397,7 @@ Permanent 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HotSpot コンパイル方法の統計データ +HotSpot ѥˡץǡ .br .di .nr l| \n(dn @@ -419,7 +408,7 @@ HotSpot コンパイル方法の統計データ .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wclass .if \n(80<\n(38 .nr 80 \n(38 @@ -448,7 +437,7 @@ HotSpot コンパイル方法の統計データ .80 .rm 80 .nr 81 0 -.nr 38 \w\f3表示内容\fP +.nr 38 \w\f3ɽ\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -486,7 +475,7 @@ HotSpot コンパイル方法の統計データ .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 259 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 248 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -503,7 +492,7 @@ HotSpot コンパイル方法の統計データ .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3表示内容\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3ɽ\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -716,30 +705,26 @@ HotSpot コンパイル方法の統計データ .if \n-(b.=0 .nr c. \n(.c-\n(d.-52 .TP 3 \-h n -\f2n\fP サンプル (出力行) ごとに列ヘッダーを表示。 ただし、\f2n\fP は正の整数値。デフォルト値は 0。 このとき、データの最初の行の上に列ヘッダーが表示される +\f2n\fP ץ (Ϲ) Ȥإåɽ \f2n\fP ͡ǥեͤ 0 ΤȤǡκǽιԤξإåɽ .TP 3 \-t n -タイムスタンプ列を出力の最初の列として表示。タイムスタンプは、ターゲット JVM の起動時からの経過時間 +ॹϤκǽȤɽॹפϡå JVM εưηв .TP 3 -\-J javaOption -\f2javaOption\fP を \f3java\fP アプリケーション起動ツールへ渡す。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。オプションの完全なリストについては、「java(1)」のドキュメントを参照してください。 +\-JjavaOption +\f2javaOption\fP \f3java\fP ץꥱưġϤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤץδʥꥹȤˤĤƤϡjava(1)פΥɥȤ򻲾ȤƤ .RE .LP -.RE .SS -statOption と出力 -.LP -.RS 3 - +statOption Ƚ .LP .LP -以降の表では、\f3jstat\fP が \f2statOption\fP ごとに出力する列について概要を示します。 +ʹߤɽǤϡ\f3jstat\fP \f2statOption\fP Ȥ˽ϤˤĤƳפ򼨤ޤ .br .LP .SS -\-class オプション +\-class ץ .LP .LP .TS @@ -770,7 +755,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ロードされたクラスの数 +ɤ줿饹ο .br .di .nr a| \n(dn @@ -786,7 +771,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ロードされた K バイト数 +ɤ줿 K Хȿ .br .di .nr b| \n(dn @@ -802,7 +787,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -アンロードされたクラスの数 +ɤ줿饹ο .br .di .nr c| \n(dn @@ -818,7 +803,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -アンロードされた K バイト数 +ɤ줿 K Хȿ .br .di .nr d| \n(dn @@ -834,7 +819,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -クラスのロードやアンロード処理に要した時間 +饹Υɤ䥢ɽפ .br .di .nr e| \n(dn @@ -845,9 +830,9 @@ statOption と出力 .nf .ll \n(34u .nr 80 0 -.nr 38 \wクラスローダーの統計データ +.nr 38 \w饹ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wLoaded .if \n(80<\n(38 .nr 80 \n(38 @@ -862,7 +847,7 @@ statOption と出力 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -886,7 +871,7 @@ statOption と出力 .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 313 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 298 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -903,11 +888,11 @@ statOption と出力 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'クラスローダーの統計データ\h'|\n(41u' +\&\h'|\n(40u'饹ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1002,7 +987,7 @@ statOption と出力 .LP .SS -\-compiler オプション +\-compiler ץ .LP .LP .TS @@ -1033,7 +1018,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -実行されたコンパイルタスクの数 +¹Ԥ줿ѥ륿ο .br .di .nr a| \n(dn @@ -1049,7 +1034,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -失敗したコンパイルタスクの数 +Ԥѥ륿ο .br .di .nr b| \n(dn @@ -1065,7 +1050,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -無効にされたコンパイルタスクの数 +̵ˤ줿ѥ륿ο .br .di .nr c| \n(dn @@ -1081,7 +1066,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイルタスクの実行に要した時間 +ѥ륿μ¹Ԥפ .br .di .nr d| \n(dn @@ -1097,7 +1082,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後に失敗したコンパイルのコンパイルタイプ +Ǹ˼ԤѥΥѥ륿 .br .di .nr e| \n(dn @@ -1113,7 +1098,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後に失敗したコンパイルのクラス名とメソッド +Ǹ˼ԤѥΥ饹̾ȥ᥽å .br .di .nr f| \n(dn @@ -1124,9 +1109,9 @@ statOption と出力 .nf .ll \n(34u .nr 80 0 -.nr 38 \wHotSpot Just\-In\-Time コンパイラの統計データ +.nr 38 \wHotSpot Just\-In\-Time ѥץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wCompiled .if \n(80<\n(38 .nr 80 \n(38 @@ -1143,7 +1128,7 @@ statOption と出力 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -1169,7 +1154,7 @@ statOption と出力 .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 349 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 334 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1186,11 +1171,11 @@ statOption と出力 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'HotSpot Just\-In\-Time コンパイラの統計データ\h'|\n(41u' +\&\h'|\n(40u'HotSpot Just\-In\-Time ѥץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1302,7 +1287,7 @@ statOption と出力 .LP .SS -\-gc オプション +\-gc ץ .LP .LP .TS @@ -1333,7 +1318,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr a| \n(dn @@ -1349,7 +1334,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr b| \n(dn @@ -1365,7 +1350,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (KB) +Survivor ΰ 0 λΨ (KB) .br .di .nr c| \n(dn @@ -1381,7 +1366,7 @@ Survivor 領域 0 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (KB) +Survivor ΰ 1 λΨ (KB) .br .di .nr d| \n(dn @@ -1397,7 +1382,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr e| \n(dn @@ -1413,7 +1398,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (KB) +Eden ΰλΨ (KB) .br .di .nr f| \n(dn @@ -1429,7 +1414,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr g| \n(dn @@ -1445,7 +1430,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (KB) +Old ΰλΨ (KB) .br .di .nr h| \n(dn @@ -1461,7 +1446,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr i| \n(dn @@ -1477,7 +1462,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (KB) +Permanent ΰλΨ (KB) .br .di .nr j| \n(dn @@ -1493,7 +1478,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr k| \n(dn @@ -1509,7 +1494,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr l| \n(dn @@ -1525,7 +1510,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr m| \n(dn @@ -1541,7 +1526,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr n| \n(dn @@ -1552,9 +1537,9 @@ Permanent 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wガベージコレクトされたヒープの統計データ +.nr 38 \w١쥯Ȥ줿ҡפץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0C .if \n(80<\n(38 .nr 80 \n(38 @@ -1589,9 +1574,9 @@ Permanent 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -1633,7 +1618,7 @@ Permanent 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 419 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 404 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1650,11 +1635,11 @@ Permanent 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'ガベージコレクトされたヒープの統計データ\h'|\n(41u' +\&\h'|\n(40u'١쥯Ȥ줿ҡפץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1850,7 +1835,7 @@ Permanent 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(m|u+\n(.Vu .if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1906,7 +1891,7 @@ Permanent 領域の使用率 (KB) .LP .SS -\-gccapacity オプション +\-gccapacity ץ .LP .LP .TS @@ -1937,7 +1922,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最小容量 (KB) +New κǾ (KB) .br .di .nr a| \n(dn @@ -1953,7 +1938,7 @@ New 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最大容量 (KB) +New κ (KB) .br .di .nr b| \n(dn @@ -1969,7 +1954,7 @@ New 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の現在の容量 (KB) +New θߤ (KB) .br .di .nr c| \n(dn @@ -1985,7 +1970,7 @@ New 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr d| \n(dn @@ -2001,7 +1986,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr e| \n(dn @@ -2017,7 +2002,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr f| \n(dn @@ -2033,7 +2018,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最小容量 (KB) +Old κǾ (KB) .br .di .nr g| \n(dn @@ -2049,7 +2034,7 @@ Old 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最大容量 (KB) +Old κ (KB) .br .di .nr h| \n(dn @@ -2065,7 +2050,7 @@ Old 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の現在の容量 (KB) +Old θߤ (KB) .br .di .nr i| \n(dn @@ -2081,7 +2066,7 @@ Old 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr j| \n(dn @@ -2097,7 +2082,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最小容量 (KB) +Permanent κǾ (KB) .br .di .nr k| \n(dn @@ -2113,7 +2098,7 @@ Permanent 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最大容量 (KB) +Permanent κ (KB) .br .di .nr l| \n(dn @@ -2129,7 +2114,7 @@ Permanent 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の現在の容量 (KB) +Permanent θߤ (KB) .br .di .nr m| \n(dn @@ -2145,7 +2130,7 @@ Permanent 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr n| \n(dn @@ -2161,7 +2146,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr o| \n(dn @@ -2172,9 +2157,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wメモリープール世代および領域容量 +.nr 38 \w꡼ס太ΰ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -2211,9 +2196,9 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2257,7 +2242,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 493 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 478 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2274,11 +2259,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'メモリープール世代および領域容量\h'|\n(41u' +\&\h'|\n(40u'꡼ס太ΰ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -2522,7 +2507,7 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .fc .nr T. 1 .T# 1 @@ -2547,10 +2532,10 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gccause オプション +\-gccause ץ .LP .LP -このオプションは、\f3\-gcutil\fP オプションと同じガベージコレクション統計データの概要を表示しますが、最後のガベージコレクションイベントと (適用可能な場合は) 現在のガベージコレクションイベントの原因が含まれます。\f3\-gcutil\fP で一覧表示される列の他に、このオプションでは次の列が追加されます。 +Υץϡ\f3\-gcutil\fP ץƱ١쥯ץǡγפɽޤǸΥ١쥯󥤥٥Ȥ (ŬѲǽʾ) ߤΥ١쥯󥤥٥Ȥθޤޤޤ\f3\-gcutil\fP ǰɽ¾ˡΥץǤϼɲäޤ .LP .LP .TS @@ -2581,7 +2566,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後のガベージコレクションの原因 +ǸΥ١쥯θ .br .di .nr a| \n(dn @@ -2597,7 +2582,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -現在のガベージコレクションの原因 +ߤΥ١쥯θ .br .di .nr b| \n(dn @@ -2608,9 +2593,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wGC イベントを含むガベージコレクション統計データ +.nr 38 \wGC ٥Ȥޤ६١쥯ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wLGCC .if \n(80<\n(38 .nr 80 \n(38 @@ -2619,7 +2604,7 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2637,7 +2622,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 516 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 501 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2654,11 +2639,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'GC イベントを含むガベージコレクション統計データ\h'|\n(41u' +\&\h'|\n(40u'GC ٥Ȥޤ६١쥯ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -2702,7 +2687,7 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gcnew オプション +\-gcnew ץ .LP .LP .TS @@ -2733,7 +2718,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr a| \n(dn @@ -2749,7 +2734,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr b| \n(dn @@ -2765,7 +2750,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (KB) +Survivor ΰ 0 λΨ (KB) .br .di .nr c| \n(dn @@ -2781,7 +2766,7 @@ Survivor 領域 0 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (KB) +Survivor ΰ 1 λΨ (KB) .br .di .nr d| \n(dn @@ -2797,7 +2782,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最大殿堂入りしきい値 +Ʋꤷ .br .di .nr e| \n(dn @@ -2813,7 +2798,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -適切な Survivor サイズ (KB) +Ŭڤ Survivor (KB) .br .di .nr f| \n(dn @@ -2829,7 +2814,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr g| \n(dn @@ -2845,7 +2830,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (KB) +Eden ΰλΨ (KB) .br .di .nr h| \n(dn @@ -2861,7 +2846,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr i| \n(dn @@ -2877,7 +2862,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr j| \n(dn @@ -2888,9 +2873,9 @@ Eden 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wNew 世代の統計データ +.nr 38 \wNew ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0C .if \n(80<\n(38 .nr 80 \n(38 @@ -2917,9 +2902,9 @@ Eden 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \w殿堂入りしきい値 +.nr 38 \wƲꤷ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2953,7 +2938,7 @@ Eden 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 570 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 555 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2970,11 +2955,11 @@ Eden 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'New 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'New ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3042,7 +3027,7 @@ Eden 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'TT\h'|\n(41u'殿堂入りしきい値 +\&\h'|\n(40u'TT\h'|\n(41u'Ʋꤷ .ne \n(e|u+\n(.Vu .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3158,7 +3143,7 @@ Eden 領域の使用率 (KB) .LP .SS -\-gcnewcapacity オプション +\-gcnewcapacity ץ .LP .LP .TS @@ -3181,16 +3166,15 @@ Eden 領域の使用率 (KB) .rm 80 81 .nr 34 \n(.lu .eo -.am 80 +.am 81 .br .di a+ .35 .ft \n(.f .ll \n(34u*1u/3u -.if \n(.l<\n(80 .ll \n(80u +.if \n(.l<\n(81 .ll \n(81u .in 0 -NGCMN\ \ \ \ \ \ \ \ \ T}~T{ -New 世代の最小容量 (KB) +New κǾ (KB) .br .di .nr a| \n(dn @@ -3206,7 +3190,7 @@ New 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最大容量 (KB) +New κ (KB) .br .di .nr b| \n(dn @@ -3222,7 +3206,7 @@ New 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の現在の容量 (KB) +New θߤ (KB) .br .di .nr c| \n(dn @@ -3238,7 +3222,7 @@ New 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の最大容量 (KB) +Survivor ΰ 0 κ (KB) .br .di .nr d| \n(dn @@ -3254,7 +3238,7 @@ Survivor 領域 0 の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr e| \n(dn @@ -3270,7 +3254,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の最大容量 (KB) +Survivor ΰ 1 κ (KB) .br .di .nr f| \n(dn @@ -3286,7 +3270,7 @@ Survivor 領域 1 の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr g| \n(dn @@ -3302,7 +3286,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の最大容量 (KB) +Eden ΰκ (KB) .br .di .nr h| \n(dn @@ -3318,7 +3302,7 @@ Eden 領域の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr i| \n(dn @@ -3334,7 +3318,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr j| \n(dn @@ -3345,13 +3329,15 @@ Eden 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wNew 世代領域サイズの統計データ +.nr 38 \wNew ΰ襵ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGCMX \ \ \ +.nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGC \ \ \ +.nr 38 \wNGCMX +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wNGC .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0CMX .if \n(80<\n(38 .nr 80 \n(38 @@ -3371,15 +3357,15 @@ Eden 領域の現在の容量 (KB) .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(b- .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(c- @@ -3408,7 +3394,7 @@ Eden 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 626 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 609 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3425,21 +3411,21 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'New 世代領域サイズの統計データ\h'|\n(41u' +\&\h'|\n(40u'New ΰ襵ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u' +\&\h'|\n(40u'NGCMN\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v -.nr 37 \n(40u +.nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u @@ -3451,7 +3437,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGCMX \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGCMX\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3467,7 +3453,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGC \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGC\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3593,7 +3579,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .fc .nr T. 1 .T# 1 @@ -3609,11 +3595,11 @@ Eden 領域の現在の容量 (KB) .rm i+ .rm j+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-49 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-47 .LP .SS -\-gcold オプション +\-gcold ץ .LP .LP .TS @@ -3644,7 +3630,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr a| \n(dn @@ -3660,7 +3646,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (KB) +Permanent ΰλΨ (KB) .br .di .nr b| \n(dn @@ -3676,7 +3662,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr c| \n(dn @@ -3692,7 +3678,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (KB) +Old ΰλΨ (KB) .br .di .nr d| \n(dn @@ -3708,7 +3694,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -3724,7 +3710,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -3740,7 +3726,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -3751,9 +3737,9 @@ Old 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wOld および Permanent 世代の統計データ +.nr 38 \wOld Permanent ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wPC .if \n(80<\n(38 .nr 80 \n(38 @@ -3774,9 +3760,9 @@ Old 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -3804,7 +3790,7 @@ Old 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 668 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 651 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3821,11 +3807,11 @@ Old 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Old および Permanent 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Old Permanent ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3909,7 +3895,7 @@ Old 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3958,7 +3944,7 @@ Old 領域の使用率 (KB) .LP .SS -\-gcoldcapacity オプション +\-gcoldcapacity ץ .LP .LP .TS @@ -3989,7 +3975,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最小容量 (KB) +Old κǾ (KB) .br .di .nr a| \n(dn @@ -4005,7 +3991,7 @@ Old 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最大容量 (KB) +Old κ (KB) .br .di .nr b| \n(dn @@ -4021,7 +4007,7 @@ Old 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の現在の容量 (KB) +Old θߤ (KB) .br .di .nr c| \n(dn @@ -4037,7 +4023,7 @@ Old 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr d| \n(dn @@ -4053,7 +4039,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -4069,7 +4055,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -4085,7 +4071,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -4096,9 +4082,9 @@ Old 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wOld 世代の統計データ +.nr 38 \wOld ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wOGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -4119,9 +4105,9 @@ Old 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4149,7 +4135,7 @@ Old 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 710 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 693 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4166,11 +4152,11 @@ Old 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Old 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Old ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4254,7 +4240,7 @@ Old 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4303,7 +4289,7 @@ Old 領域の現在の容量 (KB) .LP .SS -\-gcpermcapacity オプション +\-gcpermcapacity ץ .LP .LP .TS @@ -4334,7 +4320,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最小容量 (KB) +Permanent κǾ (KB) .br .di .nr a| \n(dn @@ -4350,7 +4336,7 @@ Permanent 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最大容量 (KB) +Permanent κ (KB) .br .di .nr b| \n(dn @@ -4366,7 +4352,7 @@ Permanent 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の現在の容量 (KB) +Permanent θߤ (KB) .br .di .nr c| \n(dn @@ -4382,7 +4368,7 @@ Permanent 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr d| \n(dn @@ -4398,7 +4384,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -4414,7 +4400,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -4430,7 +4416,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -4441,9 +4427,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wPermanent 世代の統計データ +.nr 38 \wPermanent ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wPGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -4464,9 +4450,9 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4494,7 +4480,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 752 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 735 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4511,11 +4497,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Permanent 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Permanent ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4599,7 +4585,7 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4648,7 +4634,7 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gcutil オプション +\-gcutil ץ .LP .LP .TS @@ -4679,7 +4665,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ) +Survivor ΰ 0 λΨ (ߤ̤Фѡơ) .br .di .nr a| \n(dn @@ -4695,7 +4681,7 @@ Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ) +Survivor ΰ 1 λΨ (ߤ̤Фѡơ) .br .di .nr b| \n(dn @@ -4711,7 +4697,7 @@ Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (現在の容量に対するパーセンテージ) +Eden ΰλΨ (ߤ̤Фѡơ) .br .di .nr c| \n(dn @@ -4727,7 +4713,7 @@ Eden 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (現在の容量に対するパーセンテージ) +Old ΰλΨ (ߤ̤Фѡơ) .br .di .nr d| \n(dn @@ -4743,7 +4729,7 @@ Old 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (現在の容量に対するパーセンテージ) +Permanent ΰλΨ (ߤ̤Фѡơ) .br .di .nr e| \n(dn @@ -4759,7 +4745,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr f| \n(dn @@ -4775,7 +4761,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr g| \n(dn @@ -4791,7 +4777,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr h| \n(dn @@ -4807,7 +4793,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr i| \n(dn @@ -4818,9 +4804,9 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nf .ll \n(34u .nr 80 0 -.nr 38 \wガベージコレクション統計データの概要 +.nr 38 \w١쥯ץǡγ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0 .if \n(80<\n(38 .nr 80 \n(38 @@ -4845,9 +4831,9 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4879,7 +4865,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 802 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 785 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4896,11 +4882,11 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'ガベージコレクション統計データの概要\h'|\n(41u' +\&\h'|\n(40u'١쥯ץǡγ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5016,7 +5002,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(h|u+\n(.Vu .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5067,7 +5053,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .LP .SS -\-printcompilation オプション +\-printcompilation ץ .LP .LP .TS @@ -5098,7 +5084,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -実行されたコンパイルタスクの数 +¹Ԥ줿ѥ륿ο .br .di .nr a| \n(dn @@ -5114,7 +5100,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -メソッドのバイトコードのバイト数 +᥽åɤΥХȥɤΥХȿ .br .di .nr b| \n(dn @@ -5130,7 +5116,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイル方法を特定するクラス名とメソッド名。クラス名では、名前空間の区切り文字として、「.」ではなく「/」が使用される。メソッド名は、指定されたクラス内のメソッドである。これらの 2 つのフィールドの形式は、HotSpot \- \f3XX:+PrintComplation\fP オプションと対応している +ѥˡꤹ륯饹̾ȥ᥽å̾饹̾Ǥϡ֤̾ζڤʸȤơ.פˡ/פѤ롣᥽å̾ϡꤵ줿饹Υ᥽åɤǤ롣 2 ĤΥեɤηϡHotSpot \- \f3XX:+PrintComplation\fP ץбƤ .br .di .nr c| \n(dn @@ -5141,24 +5127,24 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nf .ll \n(34u .nr 80 0 -.nr 38 \wHotSpot コンパイル方法の統計データ +.nr 38 \wHotSpot ѥˡץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wCompiled .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wサイズ +.nr 38 \w .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w型 +.nr 38 \w .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wメソッド +.nr 38 \w᥽å .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wコンパイルタイプ +.nr 38 \wѥ륿 .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -5178,7 +5164,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 828 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 811 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -5195,11 +5181,11 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'HotSpot コンパイル方法の統計データ\h'|\n(41u' +\&\h'|\n(40u'HotSpot ѥˡץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5221,7 +5207,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'サイズ\h'|\n(41u' +\&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -5235,13 +5221,13 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'型\h'|\n(41u'コンパイルタイプ +\&\h'|\n(40u'\h'|\n(41u'ѥ륿 .ne \n(c|u+\n(.Vu .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'メソッド\h'|\n(41u' +\&\h'|\n(40u'᥽å\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -5263,19 +5249,16 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .LP -.SS - -.LP -.SH "" +.SH "" .LP .LP -この項では、21891 の \f2lvmid\fP を持つローカル JVM を監視する例を示します。 +ιǤϡ21891 \f2lvmid\fP ĥ JVM ƻ뤹򼨤ޤ .LP .SS -gcutil オプションの使用 +gcutil ץλ .LP .LP -この例は、\f2lvmid\fP 21891 に接続して、250 ミリ秒間隔で 7 つのサンプルを取得し、\f3\-gcutil\fP オプションでの指定に従って出力を表示します。 +ϡ\f2lvmid\fP 21891 ³ơ250 ߥôֳ֤ 7 ĤΥץ\f3\-gcutil\fP ץǤλ˽äƽϤɽޤ .LP .nf \f3 @@ -5320,13 +5303,13 @@ gcutil オプションの使用 .LP .LP -この例の出力は、若い世代のコレクションが 3 番目と 4 番目のサンプル間で行われたことを示しています。コレクションには 0.001 秒かかっており、オブジェクトが Eden 領域 (E) から Old 領域 (O) に昇格したため、Old 領域の使用率は 9.49% から 9.51% に増加しています。Survivor 領域は、コレクション前は 12.44% が使用されていましたが、コレクション後は 7.74% しか使用されていません。 +νϤϡ㤤Υ쥯 3 ܤ 4 ܤΥץ֤ǹԤ줿Ȥ򼨤Ƥޤ쥯ˤ 0.001 ääƤꡢ֥Ȥ Eden ΰ (E) Old ΰ (O) ˾ʤᡢOld ΰλΨ 9.49% 9.51% äƤޤSurvivor ΰϡ쥯 12.44% ѤƤޤ쥯 7.74% ѤƤޤ .LP .SS -列ヘッダー文字列の繰り返し +إåʸη֤ .LP .LP -この例は、\f2lvmid\fP 21891 に接続して、250 ミリ秒間隔でサンプルを取得し、\f3\-gcutil\fP オプションでの指定に従って出力を表示します。さらに、\f3\-h3\fP オプションを使用して、データが 3 行表示されるごとに列ヘッダーを出力します。 +ϡ\f2lvmid\fP 21891 ³ơ250 ߥôֳ֤ǥץ\f3\-gcutil\fP ץǤλ˽äƽϤɽޤˡ\f3\-h3\fP ץѤơǡ 3 ɽ뤴ȤإåϤޤ .LP .nf \f3 @@ -5379,16 +5362,16 @@ gcutil オプションの使用 .LP .LP -この例では、ヘッダー文字列の繰り返しが見られるほかにも、2 番目と 3 番目のサンプル間で Young GC が行われたことがわかります。この継続時間は 0.001 秒でした。このコレクションでは、Survivor 領域 0 の使用率 (S0U) が適切な Survivor サイズ (DSS) を超過することになるライブデータが検出されました。この結果、オブジェクトは、Old 世代 (この出力には非表示) へ昇格され、殿堂入りしきい値 (TT) が、31 から 2 へ降格されました。 +Ǥϡإåʸη֤ۤˤ⡢2 ܤ 3 ܤΥץ֤ Young GC Ԥ줿Ȥ狼ޤη³֤ 0.001 äǤΥ쥯ǤϡSurvivor ΰ 0 λΨ (S0U) Ŭڤ Survivor (DSS) Ķ᤹뤳Ȥˤʤ饤֥ǡФޤη̡֥ȤϡOld (νϤˤɽ) ؾʤ졢Ʋꤷ (TT) 31 2 ع߳ʤޤ .LP .LP -別のコレクションが、5 番目と 6 番目のサンプル間で行われています。このコレクションでは、Survivor がほとんど見られず、殿堂入りしきい値を 31 に戻しました。 +̤Υ쥯󤬡5 ܤ 6 ܤΥץ֤ǹԤƤޤΥ쥯ǤϡSurvivor ۤȤɸ줺Ʋꤷͤ 31 ᤷޤ .LP .SS -サンプルごとのタイムスタンプの挿入 +ץ뤴ȤΥॹפ .LP .LP -この例は、\f2lvmid\fP 21891 へ接続し、250 ミリ秒間隔で 3 つのサンプルを取得しています。\f3\-t\fP オプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 +ϡ\f2lvmid\fP 21891 ³250 ߥôֳ֤ 3 ĤΥץƤޤ\f3\-t\fP ץѤơǽ˥ץ뤴ȤΥॹפɽƤޤ .LP .nf \f3 @@ -5417,13 +5400,13 @@ Timestamp OGCMN OGCMX OGC OC YGC FGC .LP .LP -\f2Timestamp\fP 列には、ターゲット JVM の起動時からの経過時間が、秒単位でレポートされています。さらに、\f3\-gcoldcapacity\fP 出力では、割り当て要求または昇格要求あるいはその両方を満たすためにヒープが拡張するごとに、Old 世代の容量 (OGC) と Old 領域の容量 (OC) とが増加していることがわかります。Old 世代の容量 (OGC) は、81 番目のフル GC (FGC) 後に、11696 KB から 13820 KB へ増加しています。Old 世代 (および領域) の最大容量は、60544 KB (OGCMX) なので、まだ拡張できる余裕が残されています。 +\f2Timestamp\fP ˤϡå JVM εưηв֤ñ̤ǥݡȤƤޤˡ\f3\-gcoldcapacity\fP ϤǤϡ׵ޤϾ׵ᤢ뤤Ϥξ˥ҡפĥ뤴ȤˡOld (OGC) Old ΰ (OC) ȤäƤ뤳Ȥ狼ޤOld (OGC) ϡ81 ܤΥե GC (FGC) ˡ11696 KB 13820 KB äƤޤOld (ΰ) κ̤ϡ60544 KB (OGCMX) ʤΤǡޤĥǤ;͵ĤƤޤ .LP .SS -リモート JVM のインストゥルメンテーションの監視 +⡼ JVM Υ󥹥ȥơδƻ .LP .LP -この例は、\f3\-gcutil\fP オプションを使用して、\f2remote.domain\fP というシステム上の \f2lvmid\fP 40496 に接続し、サンプルを秒単位で無期限に取得しています。 +ϡ\f3\-gcutil\fP ץѤơ\f2remote.domain\fP Ȥƥ \f2lvmid\fP 40496 ³ץñ̵̤¤˼Ƥޤ .LP .nf \f3 @@ -5440,24 +5423,23 @@ Timestamp OGCMN OGCMX OGC OC YGC FGC .LP .LP -\f2lvmid\fP は、リモートホストの名前と結合されて、\f240496@remote.domain\fP の \f2vmid\fP を構成しています。結果として、この \f2vmid\fP は、\f3rmi\fP プロトコルを使用して、リモートホスト上のデフォルトの \f3jstatd\fP サーバーと通信します。\f3jstatd\fP サーバーは、\f3rmiregistry\fP を使用して、デフォルトの \f3rmiregistry\fP ポート (ポート 1099) にバインドされた \f2remote.domain\fP に配置されれます。 +\f2lvmid\fP ϡ⡼ȥۥȤ̾ȷ礵ơ\f240496@remote.domain\fP \f2vmid\fP Ƥޤ̤Ȥơ \f2vmid\fP ϡ\f3rmi\fP ץȥѤơ⡼ȥۥȾΥǥեȤ \f3jstatd\fP С̿ޤ\f3jstatd\fP Сϡ\f3rmiregistry\fP ѤơǥեȤ \f3rmiregistry\fP ݡ (ݡ 1099) ˥Хɤ줿 \f2remote.domain\fP ֤ޤ .LP -.RE -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jps(1) \- Java 仮想マシンプロセスステータスツール」 +jps(1) \- Java ۥޥץơġ .TP 2 o -「jstatd(1) \- 仮想マシン jstat デーモン」 +jstatd(1) \- ۥޥ jstat ǡ .TP 2 o -「rmiregistry(1) \- Java リモートオブジェクトレジストリ」 +rmiregistry(1) \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/jstatd.1 b/jdk/src/linux/doc/man/ja/jstatd.1 index 4aca5a7fe63..af3fc39b9db 100644 --- a/jdk/src/linux/doc/man/ja/jstatd.1 +++ b/jdk/src/linux/doc/man/ja/jstatd.1 @@ -19,43 +19,41 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "02 Jun 2010" +.TH jstatd 1 "14 Apr 2011" .LP -.SH "名前" -jstatd \- 仮想マシン jstat デーモン +.SH "̾" +jstatd \- ۥޥ jstat ǡ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -セキュリティー +ƥ .TP 2 o -リモートインタフェース +⡼ȥ󥿥ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -68,72 +66,64 @@ jstatd [ \fP\f4options\fP\f3 ]\fP .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -コマンド行オプション。オプションは任意の順序で指定できます。重複または矛盾するオプションがある場合、最後に指定したオプションが優先されます。 +ޥɹԥץ󡣥ץǤդνǻǤޤʣޤ̷⤹륪ץ󤬤硢Ǹ˻ꤷץͥ褵ޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jstatd\fP ツールは、計測された HotSpot Java 仮想マシン (JVM) の作成と終了を監視し、ローカルシステム上で実行している Java 仮想マシンに、リモート監視ツールが接続できるようにするためのインタフェースを提供する RMI サーバーアプリケーションです。 +\f3jstatd\fP ġϡ¬줿 HotSpot Java ۥޥ (JVM) κȽλƻ뤷륷ƥǼ¹ԤƤ Java ۥޥˡ⡼ȴƻġ뤬³Ǥ褦ˤ뤿Υ󥿥ե󶡤 RMI СץꥱǤ .LP .LP -\f3jstatd\fP サーバーでは、ローカルホストに RMI レジストリが存在することが必要になります。\f3jstatd\fP サーバーは、デフォルトポートまたは \f2\-p port\fP オプションで指定されたポート上の RMI レジストリに接続しようとします。RMI レジストリが見つからない場合、\f2\-p port\fP オプションで指定されたポート、または \f2\-p port\fP が省略されている場合は、デフォルト RMI レジストリにバインドされた \f3jstatd\fP アプリケーション内に、1 つの RMI レジストリが作成されます。内部 RMI レジストリの作成は、\f2\-nr\fP オプションを指定することによって禁止することができます。 +\f3jstatd\fP СǤϡۥȤ RMI 쥸ȥ꤬¸ߤ뤳Ȥɬפˤʤޤ\f3jstatd\fP СϡǥեȥݡȤޤ \f2\-p port\fP ץǻꤵ줿ݡȾ RMI 쥸ȥ³褦ȤޤRMI 쥸ȥ꤬Ĥʤ硢\f2\-p port\fP ץǻꤵ줿ݡȡޤ \f2\-p port\fP άƤϡǥե RMI 쥸ȥ˥Хɤ줿 \f3jstatd\fP ץꥱˡ1 Ĥ RMI 쥸ȥ꤬ޤ RMI 쥸ȥκϡ\f2\-nr\fP ץꤹ뤳Ȥˤäƶػߤ뤳ȤǤޤ .LP .LP -\f3注:\fP このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3:\fP Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jstatd\fP コマンドは次のオプションをサポートしています。 +\f3jstatd\fP ޥɤϼΥץ򥵥ݡȤƤޤ .LP .RS 3 .TP 3 \-nr -既存の RMI レジストリが見つからない場合、\f2jstatd\fP プロセス内に内部 RMI レジストリを作成しないようにします。 +¸ RMI 쥸ȥ꤬Ĥʤ硢\f2jstatd\fP ץ RMI 쥸ȥʤ褦ˤޤ .TP 3 \-p\ port -RMI レジストリがあると予想されるポート番号です。 見つからない場合は、\f2\-nr\fP が指定されていなければ作成されます。 +RMI 쥸ȥ꤬ͽۤݡֹǤ Ĥʤϡ\f2\-nr\fP ꤵƤʤкޤ .TP 3 \-n\ rminame -RMI レジストリにおいて、リモート RMI オブジェクトがバインドされる名前です。デフォルト名は \f2JStatRemoteHost\fP です。複数の \f3jstatd\fP サーバーが同じホスト上で起動している場合、各サーバーのエクスポートした RMI オブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。ただし、このオプションを使用する場合、監視クライアントの \f2hostid\fP および \f2vmid\fP 文字列に、その一意のサーバー名を含める必要があります。 +RMI 쥸ȥˤơ⡼ RMI ֥ȤХɤ̾Ǥǥե̾ \f2JStatRemoteHost\fP Ǥʣ \f3jstatd\fP СƱۥȾǵưƤ硢ƥСΥݡȤ RMI ֥Ȥ̾ϡΥץꤹ뤳Ȥˤäơդ̾ˤ뤳ȤǤޤΥץѤ硢ƻ륯饤Ȥ \f2hostid\fP \f2vmid\fP ʸˡΰդΥС̾ޤɬפޤ .TP 3 \-Joption -\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 +\f3javac\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ .RE .LP -.SH "セキュリティー" -.LP - +.SH "ƥ" .LP .LP -\f3jstatd\fP サーバーは、有効なネイティブアクセス権を持つ JVM だけを監視できます。したがって、\f3jstatd\fP プロセスは、ターゲット JVM と同じユーザー資格で実行している必要があります。一部のユーザー資格は、Unix(TM) ベースのシステムにおける \f2root\fP ユーザーのように、システム上の任意の JVM によってエクスポートされたインストゥルメンテーションへのアクセス権を持っています。このような資格で実行している \f3jstatd\fP プロセスは、システム上のすべての JVM を監視できますが、セキュリティー上の別の問題が起こります。 +\f3jstatd\fP Сϡͭʥͥƥ֥ JVM ƻǤޤäơ\f3jstatd\fP ץϡå JVM Ʊ桼ʤǼ¹ԤƤɬפޤΥ桼ʤϡUNIX(TM) ١Υƥˤ \f2root\fP 桼Τ褦ˡƥǤդ JVM ˤäƥݡȤ줿󥹥ȥơؤΥäƤޤΤ褦ʻʤǼ¹ԤƤ \f3jstatd\fP ץϡƥΤ٤Ƥ JVM ƻǤޤƥ̤꤬ޤ .LP .LP -\f3jstatd\fP サーバーは、リモートクライアントの認証を一切与えません。そのため、\f3jstatd\fP サーバープロセスを実行すると、\f3jstatd\fP プロセスがアクセス権を持つすべての JVM によるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。この無防備な状態は、環境的に望ましくない場合があります。 特に実稼働環境または安全でないネットワークでは、\f3jstatd\fP プロセスを起動する前に、ローカルセキュリティーポリシーを検討する必要があります。 +\f3jstatd\fP Сϡ⡼ȥ饤ȤǧڤͿޤ󡣤Τᡢ\f3jstatd\fP Сץ¹Ԥȡ\f3jstatd\fP ץĤ٤Ƥ JVM ˤ륤󥹥ȥơΥݡȤ򡢥ͥåȥΤ٤ƤΥ桼˸뤳Ȥˤʤޤ̵ʾ֤ϡĶŪ˾ޤʤ礬ޤ ä˼²ƯĶޤϰǤʤͥåȥǤϡ\f3jstatd\fP ץưˡ륻ƥݥꥷƤɬפޤ .LP .LP -\f3jstatd\fP サーバーは、他のセキュリティーマネージャーがインストールされていない場合には、RMISecurityPolicy のインスタンスをインストールします。 そのため、セキュリティーポリシーファイルを指定する必要があります。ポリシーファイルは、デフォルトポリシー実装の +\f3jstatd\fP Сϡ¾Υƥޥ͡㡼󥹥ȡ뤵ƤʤˤϡRMISecurityPolicy Υ󥹥󥹤򥤥󥹥ȡ뤷ޤ Τᡢƥݥꥷեꤹɬפޤݥꥷեϡǥեȥݥꥷ .na -\f2ポリシーファイルの構文\fP @ +\f2ݥꥷեιʸ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.htmlに準拠する必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html˽򤹤ɬפޤ .LP .LP -次のポリシーファイルの場合、\f3jstatd\fP サーバーは一切のセキュリティー例外を使用せずに実行できます。このポリシーは、すべてのコードベースへのあらゆるアクセス権を認めるポリシーよりも自由度は低いですが、\f3jstatd\fP サーバーを実行するために最低限必要なアクセス権しか認めないポリシーよりも自由度は高くなっています。 +Υݥꥷեξ硢\f3jstatd\fP СϰڤΥƥ㳰Ѥ˼¹ԤǤޤΥݥꥷϡ٤ƤΥɥ١ؤΤ륢ǧݥꥷ⼫ͳ٤㤤Ǥ\f3jstatd\fP С¹Ԥ뤿˺ɬפʥǧʤݥꥷ⼫ͳ٤Ϲ⤯ʤäƤޤ .LP .nf \f3 @@ -155,7 +145,7 @@ grant codebase "file:${java.home}/../lib/tools.jar" {\fP .LP .LP -このポリシーを使用するには、このテキストを \f2jstatd.all.policy\fP というファイルにコピーし、次のように \f3jstatd\fP サーバーを実行します。 +ΥݥꥷѤˤϡΥƥȤ \f2jstatd.all.policy\fP Ȥե˥ԡΤ褦 \f3jstatd\fP С¹Ԥޤ .LP .nf \f3 @@ -169,27 +159,23 @@ jstatd \-J\-Djava.security.policy=jstatd.all.policy\fP .LP .LP -より厳しいセキュリティーを実施するサイトの場合、カスタムポリシーファイルを使用して、特定の信頼できるホストまたはネットワークにアクセスを制限することができます。 ただし、このような方法は、IP アドレスの盗聴攻撃を受けやすくなります。セキュリティーの問題について、カスタマイズしたポリシーファイルでも対処できない場合は、\f3jstatd\fP サーバーを実行せずに、\f3jstat\fP と \f3jps\fP ツールをローカルで使用することがもっとも安全な方法になります。 +긷ƥ»ܤ륵Ȥξ硢ݥꥷեѤơοǤۥȤޤϥͥåȥ˥¤뤳ȤǤޤ Τ褦ˡϡIP ɥ쥹İ䤹ʤޤƥˤĤơޥݥꥷեǤнǤʤϡ\f3jstatd\fP С¹Ԥˡ\f3jstat\fP \f3jps\fP ġǻѤ뤳ȤäȤˡˤʤޤ .LP -.SH "リモートインタフェース" -.LP - +.SH "⡼ȥ󥿥ե" .LP .LP -\f3jstatd\fP プロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。ユーザーおよび開発者は、このインタフェースへの書き込みを行わないでください。 +\f3jstatd\fP ץݡȤ륤󥿥եϡȼ˳ȯΤǤѹͽǤ桼ӳȯԤϡΥ󥿥եؤν񤭹ߤԤʤǤ .LP -.SH "例" -.LP - +.SH "" .LP .LP -次に \f3jstatd\fP を起動する例を紹介します。\f3jstatd\fP スクリプトによって、サーバーはバックグラウンドで自動的に起動します。 + \f3jstatd\fP ưҲ𤷤ޤ\f3jstatd\fP ץȤˤäơСϥХå饦ɤǼưŪ˵ưޤ .LP .SS -内部 RMI レジストリの使用 + RMI 쥸ȥλ .LP .LP -この例は、内部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。この例では、デフォルトの RMI レジストリポート (ポート 1099) には、他のサーバーはバインドされていないと想定しています。 +ϡ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤǤϡǥեȤ RMI 쥸ȥݡ (ݡ 1099) ˤϡ¾ΥСϥХɤƤʤꤷƤޤ .LP .nf \f3 @@ -201,10 +187,10 @@ jstatd \-J\-Djava.security.policy=all.policy .LP .SS -外部 RMI レジストリの使用 + RMI 쥸ȥλ .LP .LP -この例は、外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -218,7 +204,7 @@ jstatd \-J\-Djava.security.policy=all.policy .LP .LP -この例は、ポート 2020 の外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡݡ 2020 γ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -232,7 +218,7 @@ jstatd \-J\-Djava.security.policy=all.policy \-p 2020 .LP .LP -この例は、AlternateJstatdServerName の名前にバインドされた、ポート 2020 の外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡAlternateJstatdServerName ̾˥Хɤ줿ݡ 2020 γ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -246,10 +232,10 @@ jstatd \-J\-Djava.security.policy=all.policy \-p 2020 \-n AlternateJstatdServerN .LP .SS -インプロセス RMI レジストリの作成の禁止 +ץ RMI 쥸ȥκζػ .LP .LP -この例は、RMI レジストリが見つからない場合に RMI レジストリを作成しない \f3jstatd\fP の起動を表しています。この例では、RMI レジストリがすでに実行していると想定しています。実行していない場合は、該当するエラーメッセージが表示されます。 +ϡRMI 쥸ȥ꤬Ĥʤ RMI 쥸ȥʤ \f3jstatd\fP εưɽƤޤǤϡRMI 쥸ȥ꤬Ǥ˼¹ԤƤꤷƤޤ¹ԤƤʤϡ륨顼åɽޤ .LP .nf \f3 @@ -261,10 +247,10 @@ jstatd \-J\-Djava.security.policy=all.policy \-nr .LP .SS -RMI ログ機能の有効化 +RMI ǽͭ .LP .LP -この例は、RMI ログ機能を有効にした \f3jstatd\fP の起動を表しています。この方法は、トラブルシューティングまたはサーバー活動の監視に役立ちます。 +ϡRMI ǽͭˤ \f3jstatd\fP εưɽƤޤˡϡȥ֥륷塼ƥ󥰤ޤϥСưδƻΩޤ .LP .nf \f3 @@ -275,25 +261,25 @@ jstatd \-J\-Djava.security.policy=all.policy \-J\-Djava.rmi.server.logCalls=true .fi .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jps(1) \- Java 仮想マシンプロセスステータスツール」 +jps(1) \- Java ۥޥץơġ .TP 2 o -「jstat(1) \- Java 仮想マシン統計データ監視ツール」 +jstat(1) \- Java ۥޥץǡƻġ .TP 2 o -「 + .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- Java リモートオブジェクトレジストリ」 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/jvisualvm.1 b/jdk/src/linux/doc/man/ja/jvisualvm.1 new file mode 100644 index 00000000000..f31c622f479 --- /dev/null +++ b/jdk/src/linux/doc/man/ja/jvisualvm.1 @@ -0,0 +1,126 @@ +." Copyright (c) 2008, 2010, 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. +." +.TH jvisualvm 1 "14 Apr 2011" + +.LP +.SH "̾" +\f2jvisualvm\fP \- Java ۥޥδƻ롢ȥ֥륷塼ƥ󥰡ӥץե󥰥ġ +.LP +.RS 3 +.TP 2 +o + +.TP 2 +o +ѥ᡼ +.TP 2 +o + +.TP 2 +o +ץ +.TP 2 +o +ˡ +.TP 2 +o +Ϣ +.RE + +.LP +.SH "" +.LP +.nf +\f3 +.fl + \fP\f3jvisualvm\fP [ \f2options\fP ] +.fl +.fi + +.LP +.SH "ѥ᡼" +.LP +.LP +ץѤ硢ޥ̾ľ˵ҤƤץλ˷ޤϤޤΥץŬѤѥ᡼ˤĤƤϡΤȤΡ֥ץפ򻲾ȤƤ +.LP +.SH " " +.LP +.LP +Java VisualVM ϡꤵ줿 Java ۥޥ (JVM(*)) Java ƥΥ١Υץꥱ (Java ץꥱ) ¹ԤƤȤˡ Java ץꥱ˴ؤܺ٤ʾ󶡤ľŪʥե桼󥿥եǤJava VisualVM Ȥ̾ϡJava VisualVM JVM եȥ˴ؤֻŪˡ󶡤Ȥ¤ͳ褷Ƥޤ +.LP +.LP +Java VisualVM ϡĤδƻ롢ȥ֥륷塼ƥ󥰡ӥץե󥰥桼ƥƥ 1 ĤΥġ礷ޤȤСɥġ \f2jmap\fP \f2jinfo\fP \f2jstat\fP \f2jstack\fP 󶡤Ƥ뵡ǽΤۤȤɤJava VisualVM Ȥ߹ޤƤޤJConsole ġˤä󶡤εǽʤɡۤεǽϥץΥץ饰ȤɲäǤޤ +.LP +.SH "ץ" +.LP +.LP +ΥץϡJava VisualVM ưȤ˼¹Բǽˤʤޤ +.LP +.RS 3 +.TP 3 +\-J<jvm_option>\ + \f2<jvm_option>\fP JVM եȥϤޤ +.RE + +.LP +.SH "ˡ" +.LP +.LP +Java VisualVM ϡJava ץꥱγȯԤץꥱΥȥ֥륷塼ƥ󥰤ԤʤäꡢץꥱΥѥեޥ󥹤ƻ뤪ӲꤹΤΩޤJava VisualVM ѤȡȯԤϥҡץפӲϡ꡼꡼ꡢ١쥯μ¹ԤӴƻ롢ӥ꡼ CPU δʰץץե󥰤μ¹ԤǽˤʤޤJava VisualVM εǽĥץ饰⤤ĤޤȤСJConsole ġΤۤȤɤεǽϡMBeans ֤ JConsole Plug\-in Wrapper ץ饰𤷤ƻѤǤޤɸ Java VisualVM ץ饰Υ򤹤ˤϡJava VisualVM ˥塼Ρ֥ġ>֥ץ饰פ򤷤ޤ +.LP +.LP +Java VisualVM ưˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +% jvisualvm \fP\f4<options>\fP\f3 +.fl +\fP +.fi + +.LP +.SH "Ϣ" +.LP +.LP +Java VisualVM ξܺ٤ϡΥڡ򻲾ȤƤ +.LP +.RS 3 +.TP 2 +o +.na +\f2Java VisualVM ȯԤΥ\fP @ +.fi +https://visualvm.dev.java.net +.TP 2 +o +.na +\f2Java SE ץåȥեǤ Java VisualVM Υɥ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html +.RE + +.LP +.LP +\f2(* Java ۥޥפȡJVMפȤѸϡJava ץåȥեβۥޥ̣Ƥޤ)\fP +.LP + diff --git a/jdk/src/linux/doc/man/ja/keytool.1 b/jdk/src/linux/doc/man/ja/keytool.1 index 6ee2f26e028..e9701dd73ad 100644 --- a/jdk/src/linux/doc/man/ja/keytool.1 +++ b/jdk/src/linux/doc/man/ja/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2010 keytool tool, 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 @@ -19,20 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "02 Jun 2010" +.TH keytool 1 "14 Apr 2011" .LP -.SH "名前" -keytool \- 鍵と証明書の管理ツール +.SH "̾" +keytool \- Ⱦδġ .LP -.RS 3 - .LP -暗号化鍵、X.509 証明書チェーン、および信頼できる証明書を含むキーストア (データベース) を管理します。 -.RE -.SH "形式" +Ź沽X.509 󡢤ӿǤޤ७ȥ (ǡ١) ޤ .LP - +.SH "" .LP .nf \f3 @@ -43,48 +39,44 @@ keytool \- 鍵と証明書の管理ツール .LP .LP -Java SE 6 で keytool のコマンドインタフェースが変更されました。 詳細については「変更点」の節を参照してください。以前に定義されたコマンドも引き続きサポートされています。 +Java SE 6 keytool Υޥɥ󥿥եѹޤܺ٤ˤĤƤϡѹפ򻲾ȤƤ줿ޥɤ³ݡȤƤޤ .LP -.SH "説明" +.SH "" .LP - +\f3keytool\fP ϡȾ뤿Υ桼ƥƥǤkeytool ȤȡʬθΥڥӴϢǥ̾Ȥäǧ (ۤΥ桼ޤϥӥФƼʬȤǧڤ뤳) 䡢ǡȾ˴ؤ륵ӥѤ뤳ȤǤޤkeytool Ǥϡ̿θ (η) å夹뤳ȤǤޤ .LP -\f3keytool\fP は、鍵と証明書を管理するためのユーティリティーです。keytool を使うと、自分の公開鍵と非公開鍵のペア、および関連する証明書を管理し、デジタル署名を使った自己認証 (ほかのユーザーまたはサービスに対して自分自身を認証すること) や、データの整合性と証明書に関するサービスを利用することができます。keytool では、通信相手の公開鍵を (証明書の形で) キャッシュすることもできます。 -.LP -「証明書」とは、あるエンティティー (人物、会社など) からのデジタル署名付きの文書のことです。 証明書には、ほかのあるエンティティーの公開鍵 (およびその他の情報) が特別な値を持っていることが書かれています(「証明書」を参照)。データにデジタル署名が付いている場合は、デジタル署名を検証することで、データの整合性およびデータが本物であることをチェックできます。データの「整合性」とは、データが変更されたり、改変されたりしていないことを意味します。 また、データが「本物である」とは、そのデータが、データを作成して署名したと称する人物から実際に渡されたデータであることを意味します。 +־פȤϡ륨ƥƥ (ʪҤʤ) Υǥ̾դʸΤȤǤˤϡۤΤ륨ƥƥθ (Ӥ¾ξ) ̤ͤäƤ뤳Ȥ񤫤Ƥޤ(־פ򻲾)ǡ˥ǥ̾դƤϡǥ̾򸡾ڤ뤳ȤǡǡӥǡʪǤ뤳ȤåǤޤǡΡפȤϡǡѹ줿ꡢѤ줿ꤷƤʤȤ̣ޤ ޤǡʪǤפȤϡΥǡǡƽ̾ȾΤʪºݤϤ줿ǡǤ뤳Ȥ̣ޤ .LP .LP -また、\f3keytool\fP を使えば、DES などの対称暗号化/復号化で使用される秘密鍵を管理することもできます。 +ޤ\f3keytool\fP ȤСDES ʤɤоΰŹ沽/沽ǻѤ̩뤳ȤǤޤ .LP .LP -\f3keytool\fP は、鍵と証明書を\f2「キーストア」\fPに格納します。 +\f3keytool\fP ϡȾ\f2֥ȥ\fP˳Ǽޤ .LP -.SH "コマンドとオプションに関する注" -.LP - +.SH "ޥɤȥץ˴ؤ" .LP .LP -以下では、コマンドとそのオプションについて説明します。注: +ʲǤϡޥɤȤΥץˤĤޤ: .LP .RS 3 .TP 2 o -どのコマンド名およびオプション名にも先頭にマイナス記号 (\-) が付く +ɤΥޥ̾ӥץ̾ˤƬ˥ޥʥ (\-) դ .TP 2 o -各コマンドのオプションは任意の順序で指定できる +ƥޥɤΥץǤդνǻǤ .TP 2 o -イタリック体になっていないすべての項目、または中括弧か角括弧で囲まれているすべての項目は、そのとおりに指定する必要がある +åΤˤʤäƤʤ٤Ƥιܡޤ̤ѳ̤ǰϤޤƤ뤹٤ƤιܤϡΤȤ˻ꤹɬפ .TP 2 o -オプションを囲む中括弧は、一般に、そのオプションをコマンド行で指定しなかった場合に、デフォルト値が使われることを意味する。中括弧は、\f2\-v\fP、\f2\-rfc\fP、および \f2\-J\fP オプションを囲むのにも使われるが、これらのオプションはコマンド行で指定された場合にのみ意味を持つ (つまり、これらのオプションには、オプション自体を指定しないこと以外に「デフォルト値」は存在しない) +ץϤ̤ϡ̤ˡΥץ򥳥ޥɹԤǻꤷʤäˡǥեͤȤ뤳Ȥ̣롣̤ϡ \f2\-v\fP \f2\-rfc\fP \f2\-J\fP ץϤΤˤȤ뤬ΥץϥޥɹԤǻꤵ줿ˤΤ̣߰ (ĤޤꡢΥץˤϡץΤꤷʤȰʳˡ֥ǥե͡פ¸ߤʤ) .TP 2 o -オプションを囲む角括弧は、そのオプションをコマンド行で指定しなかった場合に、値の入力を求められることを意味する。ただし、\f2\-keypass\fP オプションをコマンド行で指定しなかった場合は、\f3keytool\fP がキーストアのパスワードから非公開/秘密鍵の復元を試みる。 ユーザーは、この試みが失敗した場合に非公開/秘密鍵の入力を求められる +ץϤѳ̤ϡΥץ򥳥ޥɹԤǻꤷʤäˡͤϤ뤳Ȥ̣롣( \f2\-keypass\fP ץξ硢ץ򥳥ޥɹԤǻꤷʤäϡ\f3keytool\fP ޤȥΥѥɤ/̩ߤ롣 桼ϡλߤԤ/̩ΥѥɤϤ .TP 2 o -イタリック体の項目の実際の値 (オプションの値) は、ユーザーが指定する必要がある。たとえば、\f2\-printcert\fP コマンドの形式は次のとおりである +åΤιܤμºݤ (ץ) ϡ桼ꤹɬפ뤿ȤС \f2\-printcert\fP ޥɤηϼΤȤǤ .nf \f3 .fl @@ -93,7 +85,7 @@ o \fP .fi .LP -\f2\-printcert\fP コマンドを指定するときは、\f2cert_file\fP の代わりに実際のファイル名を指定する。次に例を示す +\f2\-printcert\fP ޥɤꤹȤϡ\f2cert_file\fP ˼ºݤΥե̾ꤹ롣򼨤 .nf \f3 .fl @@ -103,10 +95,10 @@ o .fi .TP 2 o -オプションの値に空白 (スペース) が含まれている場合は、値を引用符で囲む必要がある +ץͤ˶ (ڡ) ޤޤƤϡͤǰϤɬפ .TP 2 o -\f2\-help\fP コマンドはデフォルトのコマンドである。たとえば、次のようにコマンド行を指定したとする +\f2\-help\fP ޥɤϥǥեȤΥޥɤǤ롣ȤСΤ褦˥ޥɹԤꤷȤ .nf \f3 .fl @@ -114,7 +106,8 @@ o .fl \fP .fi -これは、次のように指定することと同じである +.LP +ϡΤ褦˻ꤹ뤳ȤƱǤ .nf \f3 .fl @@ -126,12 +119,11 @@ o .LP .SS -オプションのデフォルト値 +ץΥǥե .LP -.RS 3 - .LP -オプションのデフォルト値は、次のとおりです。 +ץΥǥեͤϡΤȤǤ +.LP .nf \f3 .fl @@ -141,19 +133,25 @@ o .fl \-keyalg .fl - "DSA" (\fP\f3\-genkeypair\fP\f3 を使用している場合) + "DSA" (\fP\f3\-genkeypair\fP\f3 ѤƤ) .fl - "DES" (\fP\f3\-genseckey\fP\f3 を使用している場合) + "DES" (\fP\f3\-genseckey\fP\f3 ѤƤ) .fl .fl \-keysize .fl - 1024 (\fP\f3\-genkeypair\fP\f3 を使用している場合) + 2048 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "RSA" ξ) .fl - 56 (\fP\f3\-genseckey\fP\f3 を使用していて \-keyalg が "DES" の場合) + 1024 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "DSA" ξ) .fl - 168 (\fP\f3\-genseckey\fP\f3 を使用していて \-keyalg が "DESede" の場合) + 256 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "EC" ξ) +.fl + 56 (\fP\f3\-genseckey\fP\f3 ѤƤ \-keyalg "DES" ξ) +.fl + 168 (\fP\f3\-genseckey\fP\f3 ѤƤ \-keyalg "DESede" ξ) +.fl + .fl .fl @@ -161,320 +159,933 @@ o .fl .fl -\-keystore \fP\f4ユーザーのホームディレクトリの \fP\f4.keystore\fP\f3 というファイル\fP\f3 +\-keystore 桼Υۡǥ쥯ȥ \fP\f4.keystore\fP\f3 Ȥե .fl .fl -\-storetype \fP\f4セキュリティープロパティーファイルの「keystore.type」プロパティーの値で、 +\-storetype ƥץѥƥեΡkeystore.typeץץѥƥͤǡ .fl - \fP\f4java.security.KeyStore\fP\f3 の静的な \fP\f4getDefaultType\fP\f3 メソッドから返される\fP\f3 + java.security.KeyStore Ū getDefaultType ᥽åɤ֤ \fP\f4 \fP\f3 +.fl + \fP\f4 \fP\f3 .fl .fl -\-file \fP\f4読み込みの場合は標準入力、書き込みの場合は標準出力\fP\f3 +\-file ɤ߹ߤξɸϡ񤭹ߤξɸ .fl .fl \-protected false -.fl - .fl \fP .fi .LP -公開/非公開鍵ペアの生成において、署名アルゴリズム (\f2\-sigalg\fP オプション) は、基になる非公開鍵のアルゴリズムから派生します。基になる非公開鍵が DSA タイプである場合、\f2\-sigalg\fP オプションのデフォルト値は SHA1withDSA になり、基になる非公開鍵が RSA タイプである場合は、\f2\-sigalg\fP オプションのデフォルト値は MD5withRSA になります。選択可能な \f2\-keyalg\fP および \f2\-sigalg\fP の完全な一覧については、 -.na -\f2「Java Cryptography Architecture API Specification & Reference」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。 -.RE -.SS -一般オプション +.LP +/ڥˤơ̾르ꥺ (\f2\-sigalg\fP ץ) ϡˤʤΥ르ꥺफޤ .LP .RS 3 +.TP 2 +o +ˤʤ DSA פǤ硢\f2\-sigalg\fP ץΥǥեͤ SHA1withDSA ˤʤꡢ +.TP 2 +o +ˤʤ RSA פǤϡ\f2\-sigalg\fP ץΥǥեͤ SHA256withRSA ˤʤꡢ +.TP 2 +o +ˤʤ EC פǤϡ\f2\-sigalg\fP ץΥǥեͤ SHA256withECDSA ˤʤޤ +.RE .LP -\f2\-v\fP オプションは、\f2\-help\fP コマンドを除くすべてのコマンドで使用できます。このオプションを指定した場合、コマンドは「冗長」モードで実行され、詳細な証明書情報が出力されます。 .LP -また、\f2\-J\fP\f2javaoption\fP オプションも、任意のコマンドで使用できます。このオプションを指定した場合、指定された \f2javaoption\fP 文字列が Java インタプリタに直接渡されます。このオプションには、空白を含めることはできません。このオプションは、実行環境またはメモリー使用を調整する場合に便利です。指定できるインタプリタオプションを一覧表示するには、コマンド行で \f2java \-h\fP または \f2java \-X\fP と入力してください。 +ǽ \f2\-keyalg\fP \f2\-sigalg\fP δʰˤĤƤϡ +.na +\f2Java Cryptography Architecture API Specification & Reference\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤ +.LP +.SS +̥ץ .LP .LP -次のオプションは、キーストアに対する操作を行うすべてのコマンドで指定できます。 +\f2\-v\fP ץϡ \f2\-help\fP ޥɤ٤ƤΥޥɤǻѤǤޤΥץꤷ硢ޥɤϡ־Ĺץ⡼ɤǼ¹Ԥ졢ܺ٤ʾ󤬽Ϥޤ +.LP +.LP +ޤ \f2\-J\fP\f2javaoption\fP ץ⡢ǤդΥޥɤǻѤǤޤΥץꤷ硢ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤǤ륤󥿥ץ꥿ץɽˤϡޥɹԤ \f2java \-h\fP ޤ \f2java \-X\fP ϤƤ +.LP +.LP +ΥץϡȥФԤ٤ƤΥޥɤǻǤޤ .LP .RS 3 .TP 3 \-storetype storetype -この修飾子は、インスタンスを生成するキーストアのタイプを指定します。 +.LP +νҤϡ󥹥󥹤륭ȥΥפꤷޤ .TP 3 \-keystore keystore -キーストアの場所を指定します。 .LP -特定の \f3keytool\fP コマンドを実行する際に、JKS ストアタイプが使用され、かつキーストアファイルがまだ存在していなかった場合、新しいキーストアファイルが作成されます。たとえば、\f2keytool \-genkeypair\fP の実行時に \f2\-keystore\fP オプションが指定されなかった場合、\f2.keystore\fP という名前のデフォルトキーストアファイルがユーザーのホームディレクトリ内にまだ存在していなければ、そこに作成されます。同様に、\f2\-keystore \fP\f2ks_file\fP というオプションが指定されてもその \f2ks_file\fP が存在しなかった場合、そのファイルが作成されます。 +ȥξꤷޤ .LP -\f2\-keystore\fP オプションからの入力ストリームは、\f2KeyStore.load\fP メソッドに渡されます。URL として \f2NONE\fP が指定されている場合は、null のストリームが \f2KeyStore.load\fP メソッドに渡されます。\f2NONE\fP は、\f2KeyStore\fP がファイルベースではなく、たとえば、ハードウェアトークンデバイスに置かれている場合に指定します。 + \f3keytool\fP ޥɤ¹ԤݤˡJKS ȥפѤ졢ĥȥե뤬ޤ¸ߤƤʤä硢ȥե뤬ޤȤС \f2keytool \-genkeypair\fP μ¹Ի \f2\-keystore\fP ץ󤬻ꤵʤä硢 \f2.keystore\fP Ȥ̾Υǥեȥȥե뤬桼Υۡǥ쥯ȥˤޤ¸ߤƤʤС˺ޤƱͤˡ \f2\-keystore \fP\f2ks_file\fP Ȥץ󤬻ꤵƤ⤽ \f2ks_file\fP ¸ߤʤä硢Υե뤬ޤ +.LP +\f2\-keystore\fP ץ󤫤ϥȥ꡼ϡ \f2KeyStore.load\fP ᥽åɤϤޤURL Ȥ \f2NONE\fP ꤵƤϡnull Υȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤޤ \f2NONE\fP ϡ \f2KeyStore\fP ե١ǤϤʤȤСϡɥȡǥХ֤Ƥ˻ꤷޤ .TP 3 -\-storepass storepass -キーストアの整合性を保護するために使うパスワードを指定します。 +\-storepass[:env|:file] argument .LP -\f2storepass\fP は、6 文字以上にする必要があります。指定したパスワードは、キーストアの内容にアクセスするすべてのコマンドで使われます。この種のコマンドを実行するときに、コマンド行で \f2\-storepass\fP オプションを指定しなかった場合は、パスワードの入力を求められます。 +ȥݸ뤿˻Ȥѥɤꤷޤ .LP -キーストアから情報を取り出す場合は、パスワードを省略できます。 パスワードを省略すると、取り出す情報の整合性をチェックできないので、警告が表示されます。 + \f2env\fP ޤ \f2file\fP ꤷʤ硢ѥɤͤ \f2argument\fP ˤʤޤͤϡ6 ʸʾˤɬפޤʳξ硢ѥɤϼΤ褦˼ޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +\f3\fP: \f2\-keypass\fP \f2\-srckeypass\fP \f2\-destkeypass\fP \f2\-srcstorepass\fP \f2\-deststorepass\fP ʤɤΥѥɤɬפȤ뤽¾ΥץϤ٤ơ \f2env\fP \f2file\fP ҤդޤѥɥץȽҤϡɬ (\f2:\fP) ǶڤäƤ +.LP +ѥɤϡȥƤ˥뤹٤ƤΥޥɤǻȤޤμΥޥɤ¹ԤȤˡޥɹԤ \f2\-storepass\fP ץꤷʤäϡѥɤϤޤ +.LP +ȥФϡѥɤάǤޤ ѥɤάȡФåǤʤΤǡٹɽޤ .TP 3 \-providerName provider_name -セキュリティープロパティーファイル内に含まれる暗号化サービスプロバイダ名を特定するために使用されます。 +.LP +ƥץѥƥե˴ޤޤŹ沽ӥץХ̾ꤹ뤿˻Ѥޤ .TP 3 \-providerClass provider_class_name -暗号化サービスプロバイダがセキュリティープロパティーファイルに指定されていないときは、そのマスタークラスファイルの名前を指定するときに使われます。 +.LP +Ź沽ӥץХƥץѥƥե˻ꤵƤʤȤϡΥޥ饹ե̾ꤹȤ˻Ȥޤ .TP 3 \-providerArg provider_arg -\f2\-providerClass\fP と組み合わせて使用します。\f2provider_class_name\fP のコンストラクタに対する省略可能な文字列入力引数を表します。 +.LP +\f2\-providerClass\fP Ȥ߹碌ƻѤޤ\f2provider_class_name\fP Υ󥹥ȥ饯Фάǽʸϰɽޤ .TP 3 \-protected -\f2true\fP または \f2false\fP のいずれか。専用 PIN リーダーなどの保護された認証パスを介してパスワードを指定する必要がある場合には、この値に \f2true\fP を指定してください。 +.LP +\f2true\fP ޤ \f2false\fP Τ줫 PIN ꡼ʤɤݸ줿ǧڥѥ𤷤ƥѥɤꤹɬפˤϡͤ \f2true\fP ꤷƤ +.LP +: \f2\-importkeystore\fP ޥɤˤ 2 ĤΥȥطƤ뤿ᡢ2 ĤΥץ󡢤Ĥޤ \f2\-srcprotected\fP \f2\-destprotected\fP ȥȥåȥȥˤ줾ꤵޤ +.TP 3 +\-ext {name{:critical}{=value}} +.LP +X.509 񥨥ƥ󥷥򼨤ޤΥץ \-genkeypair \-gencert ǻѤơޤ \f2\-certreq\fP ˥ƥ󥷥ߡ׵׵ᤵ륨ƥ󥷥򼨤ȤǤޤΥץϡʣѤǤޤname ˤϡݡȤƤ륨ƥ󥷥̾ (򻲾) ޤǤդ OID ֹǤޤvalue ꤷϡƥ󥷥Υѥ᡼򼨤ޤάϡƥ󥷥Υǥե (Ƥ) 򼨤ޤϥƥ󥷥˥ѥ᡼ɬפޤ \f2:critical\fP Ҥꤷϡƥ󥷥 isCritical ° true Ǥ뤳Ȥ򼨤ޤʳξ false Ǥ뤳Ȥ򼨤ޤ:critical : \f2:c\fP ѤǤޤ . .RE .LP -.RE -.SH "コマンド" .LP +ߡkeytool ϼ̾Υƥ󥷥򥵥ݡȤƤޤ (ʸȾʸ϶̤ʤ) +.LP +.LP +.TS +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 80 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +BC ޤ BasicConstraints +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ʷϡca:{true|false}[,pathlen:<len>]פǡ<len> ϡca:true,pathlen:<len>פξάɽǤ άȡca:trueפΰ̣ˤʤޤ +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +usage(,usage)*usage ˤϡdigitalSignature nonRepudiation (contentCommitment)keyEnciphermentdataEnciphermentkeyAgreementkeyCertSigncRLSignencipherOnlydecipherOnly Τ줫ǤޤUsage ϡޤʤСǽοʸ (ȤСdigitalSignature dig ) ޤϥ륱 (ȤС digitalSignature dS ˡcRLSign cRLS ) ṳ̂ǤޤUsage ʸȾʸ϶̤ޤ +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +EKU ޤ ExtendedkeyUsage +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +usage(,usage)*usage ˤϡanyExtendedKeyUsage serverAuthclientAuthcodeSigningemailProtection timeStampingOCSPSigningޤǤդ OID ʸΤ줫Ǥޤ ̾դ usage ϡޤʤС ǽοʸޤϥ륱 ṳ̂ǤޤUsage ʸȾʸ϶̤ޤ +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +SAN ޤ SubjectAlternativeName +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di g+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +type:value(,type:value)*type ˤϡEMAILURIDNSIPޤ OID Ǥޤvalue ϡtype ʸͤǤ +.br +.di +.nr g| \n(dn +.nr g- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di h+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +IAN ޤ IssuerAlternativeName +.br +.di +.nr h| \n(dn +.nr h- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di i+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +SubjectAlternativeName ƱǤ +.br +.di +.nr i| \n(dn +.nr i- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di j+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +SIA ޤ SubjectInfoAccess +.br +.di +.nr j| \n(dn +.nr j- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di k+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +method:location\-type:location\-value (,method:location\-type:location\-value)* method ˤϡtimeStampingסcaRepositoryסޤǤդ OID Ǥޤlocation\-type location\-value ˤϡSubjectAlternativeName ƥ󥷥ǥݡȤǤդ type:value Ǥޤ +.br +.di +.nr k| \n(dn +.nr k- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di l+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +AIA ޤ AuthorityInfoAccess +.br +.di +.nr l| \n(dn +.nr l- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di m+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +SubjectInfoAccess ƱǤmethod ˤϡocspסcaIssuersסޤǤդ OID Ǥޤ +.br +.di +.nr m| \n(dn +.nr m- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3̾\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wKU ޤ KeyUsage +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(a- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(f- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(h- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(j- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(l- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(g- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(i- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(k- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(m- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 325 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3̾\fP\h'|\n(41u'\f3\fP +.ne \n(a|u+\n(.Vu +.ne \n(b|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'KU ޤ KeyUsage\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.ne \n(g|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.g+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(h|u+\n(.Vu +.ne \n(i|u+\n(.Vu +.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) +.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.h+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.i+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(j|u+\n(.Vu +.ne \n(k|u+\n(.Vu +.if (\n(j|+\n(#^-1v)>\n(#- .nr #- +(\n(j|+\n(#^-\n(#--1v) +.if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.j+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.k+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(l|u+\n(.Vu +.ne \n(m|u+\n(.Vu +.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v) +.if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.l+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.m+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.rm g+ +.rm h+ +.rm i+ +.rm j+ +.rm k+ +.rm l+ +.rm m+ +.TE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-44 +.LP +.LP +OID ̾ξ硢OCTET STRING פĹΥХȤƥ󥷥ˤĤƤϡͤ extnValue HEX פ DER 󥳡ǥ󥰤ǤHEX ʸǤϡɸ HEX (0\-9a\-fA\-F) ʳʸ̵뤵ޤäơ \f201:02:03:04\fP \f201020304פξȤ\fP ƱͤȤƼդޤͤʤ硢ƥ󥷥ͥեɤ϶ˤʤޤ +.LP +.LP +\f2\-gencert\fP ǤΤ߻ѤhonoredפȤ̤̾ϡ׵˴ޤޤ륨ƥ󥷥ͥ褹ˡ򼨤ޤ̾ͤϡ \f2all\fP (׵ᤵ뤹٤ƤΥƥ󥷥ͥ褵) \f2name{:[critical|non\-critical]}\fP (̾դΥƥ󥷥ͥ褵뤬̤ isCritical °Ѥ) \f2\-name\fP (allפȤȤ˻Ѥ㳰򼨤) Υ޶ڤꥹȤǤǥեȤǤϡ׵ᤵ륨ƥ󥷥ͥ褵ޤ +.LP +.LP +\-ext ͥΥץ˲ä̤̾Ρޤ OID \-ext ΥץꤷϡΥƥ󥷥󤬡Ǥͥ褵Ƥ륨ƥ󥷥ɲäޤ̾ (ޤ OID) ͥ褵ͤǤѤϡͤȽ׵˴ޤޤΤ򥪡С饤ɤޤ +.LP +.LP +subjectKeyIdentifier ƥ󥷥Ͼ˺ޤʽ̾ǤʤξϡauthorityKeyIdentifier ˺ޤ +.LP +.LP +\f3:\fP 桼ϡƥ󥷥 (ӾΤۤΥե) Ȥ߹碌ˤäƤϡ󥿡ͥåȤɸ˽򤷤ʤ礬뤳ȤդƤܺ٤ˤĤƤϡ־ν˴ؤջפ򻲾ȤƤ +.LP +.SH "ޥ" .LP .SS -キーストアへのデータの作成または追加 -.LP -.RS 3 - +ȥؤΥǡκޤɲ .LP .RS 3 .TP 3 -\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-gencert {\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -鍵のペア (公開鍵および関連する非公開鍵) を生成します。公開鍵は X.509 v3 自己署名証明書でラップされます。 証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと非公開鍵は、\f2alias\fP で特定される新しいキーストアエントリに格納されます。 +׵ե ( \f2keytool \-certreq\fP ޥɤǺǤ) ˱ƾޤΥޥɤϡ\f2infile\fP (άϡɸϤ) ׵ɤ߹ߡ̾ȤäƤ׵˽̾ơX.509 \f2outfile\fP (άϡɸϤ) Ϥޤ \f2\-rfc\fP ꤷ硢Ϸ BASE64 沽 PEM ˤʤޤʳξϡХʥ DER ޤ .LP -\f2keyalg\fP には、鍵のペアを生成するのに使うアルゴリズムを指定し、\f2keysize\fP には、生成する各鍵のサイズを指定します。 \f2sigalg\fP には、自己署名証明書に署名を付けるときに使うアルゴリズムを指定します。このアルゴリズムは、\f2keyalg\fP と互換性のあるものでなければなりません。 +\f2sigalg\fP ˤϡ˽̾դȤ˻Ȥ르ꥺꤷޤ\f2startdate\fP ϡͭˤʤ볫ϻ/դǤ\f2valDays\fP ˤϡͭꤷޤ .LP -\f2dname\fP には、\f2alias\fP に関連付け、自己署名証明書の \f2issuer\fP フィールドと \f2subject\fP フィールドとして使う X.500 識別名を指定します。コマンド行で識別名を指定しなかった場合は、識別名の入力を求められます。 +\f2dname\fP ꤹȡμΤȤƻѤޤʳξϡ׵ᤫ̾Ѥޤ .LP -\f2keypass\fP には、生成される鍵のペアのうち、非公開鍵を保護するのに使うパスワードを指定します。パスワードを指定しなかった場合、ユーザーはその入力求められます。このとき、Return キーを押すと、キーストアのパスワードと同じパスワードが鍵のパスワードに設定されます。 \f2keypass\fP は、6 文字以上でなければなりません。 +\f2ext\fP ϡޤ X.509 ƥ󥷥򼨤ޤ\-ext ʸˡˤĤƤϡְ̥ץפ򻲾ȤƤ .LP -\f2valDays\fP には、証明書の有効日数を指定します。 +\f2\-gencert\fP ޥɤѤȡǤޤǤϡ \f2e1\fP Ȥޤξξˤϡ3 Ĥξ񤬴ޤޤƤޤ .LP -このコマンドは、以前のリリースでは \f2\-genkey\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-genkeypair\fP を使用することをお勧めします。 +Υޥɤϡcaca1ca2 e1 4 Ĥθڥޤ +.nf +\f3 +.fl +keytool \-alias ca \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca1 \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca2 \-dname CN=CA \-genkeypair +.fl +keytool \-alias e1 \-dname CN=E1 \-genkeypair +.fl +\fP +.fi +.LP + 2 ĤΥޥɤϡ̾դΥޤ \f2ca\fP ca1 ˽̾ \f2ca1 signs ca2\fP ˽̾ޤ٤ƼȯԤǤ +.nf +\f3 +.fl +keytool \-alias ca1 \-certreq | keytool \-alias ca \-gencert \-ext san=dns:ca1 | keytool \-alias ca1 \-importcert +.fl +keytool \-alias ca2 \-certreq | $KT \-alias ca1 \-gencert \-ext san=dns:ca2 | $KT \-alias ca2 \-importcert +.fl +\fP +.fi +.LP +Υޥɤϡ e1 ƥե e1.cert ˳Ǽޤξ ca2 ˤäƽ̾ޤη̡e1 ξˤ caca1 ca2 ޤޤ뤳Ȥˤʤޤ +.nf +\f3 +.fl +keytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1.cert +.fl +\fP +.fi +.TP 3 +\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +.LP +Υڥ (ӴϢ) ޤ X.509 v3 ʽ̾ǥåפޤϡñǤľȤƳǼޤξϡ\f2alias\fP ꤵ뿷ȥȥ˳Ǽޤ +.LP +\f2keyalg\fP ϸΥڥ˻Ѥ륢르ꥺ\f2keysize\fP ƸΥ򡢤줾ꤷޤ\f2sigalg\fP ˤϡʽ̾˽̾դȤ˻Ȥ르ꥺꤷޤΥ르ꥺϡ\f2keyalg\fP ȸߴΤΤǤʤФʤޤ +.LP +\f2dname\fP ˤϡ\f2alias\fP ˴Ϣդʽ̾ issuer եɤ subject եɤȤƻȤ X.500 ̾ꤷޤ ޥɹԤǼ̾ꤷʤäϡ̾Ϥޤ +.LP +\f2keypass\fP ˤϡ븰ΥڥΤݸΤ˻ȤѥɤꤷޤѥɤꤷʤäϡѥɤϤޤΤȤReturn 򲡤ȡȥΥѥɤƱѥɤΥѥɤꤵޤ\f2keypass\fP ϡ6 ʸʾˤɬפޤ +.LP +\f2startdate\fP ˤϡȯԻꤷޤϡX.509 ΡValidityץեɤΡNot BeforeͤȤƤФޤ +.LP +ץͤϡ 2 ĤηΤ줫Ǥޤ +.RS 3 +.TP 3 +1. +([+\-]\f2nnn\fP[ymdHMS])+ +.TP 3 +2. +[yyyy/mm/dd] [HH:MM:SS] +.RE +.LP +ǽηǤϡȯԻϡꤵͤߤλ狼ܤޤꤵͤϡϢβ̤ͤϢ뤷Τˤʤޤ̤γͤǡץ饹 (+) ϻ֤ʤळȤ򡢥ޥʥ (\-) ϻ֤뤳Ȥ̣Ƥޤܤ֤ \f2nnn\fP ǡñ̤ǯ֡ʬޤäǤ (줾졢1 ʸΡyסmסdסHסMסޤϡSפǼƤ)̤γͤ \f2java.util.GregorianCalendar.add(int field, int amount)\fP ᥽åɤȤȤǡȯԻɲäͤ鱦ط׻ޤȤС \f2\-startdate \-1y+1m\-1d\fPȻꤹȡϻϼΤ褦ˤʤޤ +.nf +\f3 +.fl + Calendar c = new GregorianCalendar(); +.fl + c.add(Calendar.YEAR, \-1); +.fl + c.add(Calendar.MONTH, 1); +.fl + c.add(Calendar.DATE, \-1); +.fl + return c.getTime() +.fl +\fP +.fi +.LP +2 ܤηǤϡ桼ϡǯ//Ȼ:ʬ:ä 2 ĤʬǸ̩ʳϻꤷޤ (ϸλӤ)桼ϡ1 ĤʬǤޤϡ⤦ 1 Ĥʬϸߤ (ޤϻ) ƱˤʤȤȤǤ桼ϡ˼Ƥ褦ˡ̩˻ꤹɬפޤ (û 0 )դȻξꤵ줿֤ǡ2 Ĥʬδ֤˶ʸ 1 (1 Ĥ) ޤ֤Ͼ 24 ַǻꤷƤ +.LP +ץꤷʤȡդϸߤλˤʤޤץϡ 1 Ǥޤ +.LP +\f2valDays\fP ˤϡͭꤷޤ ( \f2\-startdate\fP ǻꤵ줿աޤ \f2\-startdate\fP ꤵƤʤϸߤդϤޤ) +.LP +ΥޥɤϡΥ꡼Ǥ \f2\-genkey\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-genkeypair\fP Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-genseckey {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -秘密鍵を生成し、それを \f2alias\fP で特定される新しい \f2KeyStore.SecretKeyEntry\fP 内に格納します。 +̩򿷤 \f2KeyStore.SecretKeyEntry\fP (\f2alias\fP ꤵ) ˳Ǽޤ .LP -\f2keyalg\fP は秘密鍵の生成に使用するアルゴリズムを、\f2keysize\fP は生成する鍵のサイズを、それぞれ指定します。\f2keypass\fP は秘密鍵の保護に使用するパスワードです。パスワードを指定しなかった場合、ユーザーはその入力求められます。このとき、Return キーを押すと、キーストアのパスワードと同じパスワードが鍵のパスワードに設定されます。 \f2keypass\fP は、6 文字以上でなければなりません。 +\f2keyalg\fP ̩˻Ѥ륢르ꥺ\f2keysize\fP 븰Υ򡢤줾ꤷޤ\f2keypass\fP ̩ݸ˻ѤѥɤǤѥɤꤷʤäϡѥɤϤޤΤȤReturn 򲡤ȡȥΥѥɤƱѥɤΥѥɤꤵޤ\f2keypass\fP ϡ6 ʸʾˤɬפޤ .TP 3 \-importcert {\-alias alias} {\-file cert_file} [\-keypass keypass] {\-noprompt} {\-trustcacerts} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -ファイル \f2cert_file\fP から証明書または証明書チェーン (証明書チェーンの場合は、PKCS#7 形式の応答で提供されるもの) を読み込み、\f2alias\fP によって特定されるキーストアエントリに格納します。ファイルが指定されていない場合は、標準入力から証明書または PKCS#7 応答を読み込みます。 +ե \f2cert_file\fP ޤϾ (ξϡPKCS#7 αޤϰϢ X.509 󶡤) ɤ߹ߡ\f2alias\fP ˤäꤵ륭ȥȥ˳Ǽޤե뤬ꤵƤʤϡɸϤޤϾɤ߹ߤޤ .LP -\f3keytool\fP では、X.509 v1、v2、v3 の証明書、および、PKCS#7 形式の証明書から構成されている PKCS#7 形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式 (Base64 符号化とも呼ばれる) のどちらかで提供する必要があります。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。この符号化方式の場合、証明書は「\-\-\-\-\-BEGIN」で始まる文字列で開始され、「\-\-\-\-\-END」で始まる文字列で終了しなければなりません。 +\f3keytool\fP ǤϡX.509 v1v2v3 ξ񡢤ӡPKCS#7 ξ񤫤鹽Ƥ PKCS#7 ξ򥤥ݡȤǤޤݡȤǡϡХʥ沽ޤϽϲǽ沽 (Base64 沽ȤƤФ) Τɤ餫󶡤ɬפޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ沽ξ硢ϡ\-\-\-\-\-BEGINפǻϤޤʸdzϤ졢\-\-\-\-\-ENDפǻϤޤʸǽλʤФʤޤ .LP -証明書のインポートには、次の 2 つの目的があります。 +ΥݡȤˤϡ 2 ĤŪޤ .RS 3 .TP 3 1. -信頼できる証明書のリストに証明書を追加する +ǤΥꥹȤ˾ɲä .TP 3 2. -CA に証明書署名要求 (\-certreq コマンドを参照) を送信した結果として、CA から受け取った証明応答をインポートする +CA ˾̾׵ (\-certreq ޥɤ򻲾) ̤ȤơCA ä򥤥ݡȤ .RE .LP -どちらの種類のインポートを行うかは、\f2\-alias\fP オプションの値によって指定します。 +ɤμΥݡȤԤϡ \f2\-alias\fP ץͤˤäƻꤷޤ .RS 3 .TP 3 1. -\f3別名がキーエントリをポイントしない場合\fP、\f3keytool\fP はユーザーが信頼できる証明書エントリを追加しようとしているものと見なします。この場合、別名がキーストア内にすでに存在していてはいけません。別名がすでに存在している場合、その別名の信頼できる証明書がすでに存在することになるので、\f3keytool\fP はエラーを出力し、証明書のインポートを行いません。 +\f3̾ȥݥȤʤ\fP\f3keytool\fP ϥ桼Ǥ񥨥ȥɲä褦ȤƤΤȸʤޤξ硢̾ȥˤǤ¸ߤƤƤϤޤ̾Ǥ¸ߤƤ硢̾οǤ񤬤Ǥ¸ߤ뤳ȤˤʤΤǡ\f3keytool\fP ϥ顼ϤΥݡȤԤޤ .TP 3 2. -\f3別名がキーエントリをポイントしない場合\fP、\f3keytool\fP はユーザーが信頼できる証明書エントリを追加しようとしているものと見なします。 +.LP +\f3̾ȥݥȤʤ\fP\f3keytool\fP ϥ桼Ǥ񥨥ȥɲä褦ȤƤΤȸʤޤ .RE -\f3新しい信頼できる証明書のインポート\fP -.RS 3 - +\f3ǤΥݡ\fP .LP +\f3keytool\fP ϡȥ˾ɲäˡȥˤǤ¸ߤ뿮ǤȤäơݡȤ񤫤 (롼 CA ) ʽ̾˻ޤǤοΥιۤߤޤ .LP -\f3keytool\fP は、キーストアに証明書を追加する前に、キーストア内にすでに存在する信頼できる証明書を使って、インポートする証明書から (ルート CA の) 自己署名証明書に至るまでの信頼のチェーンの構築を試みます。 +\f2\-trustcacerts\fP ץꤷ硢ɲäξϿǤ뤹ʤ cacerts Ȥ̾Υե˴ޤޤΥȸʤޤ .LP +\f3keytool\fP ݡȤ񤫤鼫ʽ̾ (ȥޤ cacerts ե˴ޤޤƤ뼫ʽ̾) ˻ޤǤοΥѥιۤ˼ԤϡݡȤξɽ桼˳ǧޤ ξϡɽ줿Υե󥬡ץȤȡۤΤʤ餫 (Ǥ) (νͭܿͤʤ) ꤷե󥬡ץȤȤӤޤֿǤפȤƾ򥤥ݡȤȤϡͭǤ뤳Ȥ򿵽Ť˳ǧɬפޤܺ٤ϡֿǤΥݡȤ˴ؤջפ򻲾ȤƤݡϡǧߤǤޤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ +\f3Υݡ\fP .LP -\f2\-trustcacerts\fP オプションを指定した場合、追加の証明書は信頼できるすなわち cacerts という名前のファイルに含まれる証明書のチェーンと見なされます。 -.LP -.LP -\f3keytool\fP が、インポートする証明書から自己署名証明書 (キーストアまたは cacerts ファイルに含まれている自己署名証明書) に至るまでの信頼のパスの構築に失敗した場合は、インポートする証明書の情報を表示し、ユーザーに確認を求めます。 この場合は、表示された証明書のフィンガープリントと、ほかのなんらかの (信頼できる) 情報源 (証明書の所有者本人など) から入手したフィンガープリントとを比較します。「信頼できる証明書」として証明書をインポートするときは、証明書が有効であることを慎重に確認する必要があります。詳細は、「信頼できる証明書のインポートに関する注意事項」を参照してください。インポート操作は、証明書を確認する時点で中止できます。ただし、\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 -.LP -.RE -\f3証明応答のインポート\fP -.RS 3 -.LP -「証明応答」をインポートするときは、キーストア内の信頼できる証明書、および (\f2\-trustcacerts\fP オプションが指定されている場合は) cacerts キーストアファイルで構成された証明書を使って証明応答が検査されます。 -.LP -.LP -証明応答が信頼できるかどうかを決定する方法は次のとおりです。 +־פ򥤥ݡȤȤϡȥοǤ񡢤 (\-trustcacerts ץ󤬻ꤵƤ) cacerts ȥեǹ줿Ȥäƾޤ .LP +Ǥ뤫ɤꤹˡϼΤȤǤ .RS 3 .TP 2 o -\f3証明応答が単一の X.509 証明書である場合\fP、\f3keytool\fP は、証明応答から (ルート CA の) 自己署名証明書に至るまでの信頼チェーンの確立を試みます。証明応答と、証明応答の認証に使われる証明書の階層構造は、\f2alias\fP の新しい証明書チェーンを形成します。信頼チェーンが確立されない場合、証明応答はインポートされません。この場合、\f3keytool\fP は証明書を出力せず、ユーザーに検証を求めるプロンプトを表示します。 ユーザーが証明応答の信頼性を判断するのは、不可能ではなくても非常に困難だからです。 +\f3ñ X.509 Ǥ\fP\f3keytool\fP ϡ (롼 CA ) ʽ̾˻ޤǤογΩߤޤȡǧڤ˻Ȥγع¤ϡ\f2alias\fP οޤ󤬳Ωʤ硢ϥݡȤޤ󡣤ξ硢\f3keytool\fP ϾϤ桼˸ڤץץȤɽޤ桼οȽǤΤϡԲǽǤϤʤƤ˺Ǥ .TP 2 o -\f3証明応答が PKCS#7 形式の証明書チェーンである場合\fP、\f3keytool\fP は、まずチェーンを並べ替えて、ユーザーの証明書が最初に、ルート CA の自己署名証明書が最後にくるようにしたあと、証明応答に含まれるルート CA の証明書と、キーストア内または (\f2\-trustcacerts\fP オプションが指定されている場合は) cacerts キーストアファイル内の信頼できる証明書とをすべて比較し、一致するものがあるかどうかを調べます。一致するものが見つからなかった場合は、ルート CA の証明書の情報を表示し、ユーザーに確認を求めます。 この場合は、表示された証明書のフィンガープリントと、ほかのなんらかの (信頼できる) 情報源 (ルート CA 自身など) から入手したフィンガープリントとを比較します。インポート操作は、証明書を確認する時点で中止できます。ただし、\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 -.RE - -.LP -.LP -証明書応答内の公開鍵が \f2alias\fP の下にすでに格納されているユーザーの公開鍵に一致した場合、古い証明書チェーンが応答内の新しい証明書チェーンで置き換えられます。以前の証明書チェーンを新しい証明書チェーンで置き換えることができるのは、有効な \f2keypass\fP、つまり該当するエントリの非公開鍵を保護するためのパスワードを指定した場合だけです。パスワードを指定しておらず、非公開鍵のパスワードがキーストアのパスワードと異なる場合は、非公開鍵のパスワードの入力を求められます。 -.LP +\f3 PKCS#7 ξޤϰϢ X.509 Ǥ\fPϡ桼ξ񤬺ǽˡ0 ʾ CA 񤬤μˤ褦¤٤ޤ󤬼ʽ̾Υ롼 CA ǽꡢ \f2\-trustcacerts\fP ץ󤬻ꤵƤ硢\f3keytool\fP ϡξȡȥޤϡcacertsץȥեοǤ뤹٤Ƥξȹ礷褦Ȥޤ󤬼ʽ̾Υ롼 CA ǽäƤ餺 \f2\-trustcacerts\fP ץ󤬻ꤵƤ硢\f3keytool\fP ϡȥޤϡcacertsץȥեοǤ񤫤鼫ʽ̾Υ롼 CA 򸫤ĤƤɲä褦Ȥޤξ񤬸Ĥ餺 \f2\-noprompt\fP ץ󤬻ꤵƤʤϡκǸξξ󤬽Ϥ졢桼ϳǧޤ .RE .LP -このコマンドは、以前のリリースでは \f2\-import\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-importcert\fP を使用することをお勧めします。 +θ \f2alias\fP βˤǤ˳ǼƤ桼θ˰פ硢Ť󤬱ο֤ޤξ򿷤֤뤳ȤǤΤϡͭ \f2keypass\fPĤޤ곺륨ȥݸ뤿ΥѥɤꤷǤѥɤꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤ +.LP +ΥޥɤϡΥ꡼Ǥ \f2\-import\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-importcert\fP Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-importkeystore \-srckeystore srckeystore \-destkeystore destkeystore {\-srcstoretype srcstoretype} {\-deststoretype deststoretype} [\-srcstorepass srcstorepass] [\-deststorepass deststorepass] {\-srcprotected} {\-destprotected} {\-srcalias srcalias {\-destalias destalias} [\-srckeypass srckeypass] [\-destkeypass destkeypass] } {\-noprompt} {\-srcProviderName src_provider_name} {\-destProviderName dest_provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -ソースキーストアからターゲットキーストアへ、単一のエントリまたはすべてのエントリをインポートします。 +ȥ饿åȥȥءñΥȥޤϤ٤ƤΥȥ򥤥ݡȤޤ .LP -\f2srcalias\fP オプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲットキーストアにインポートします。\f2destalias\fP 経由でターゲット別名が指定されなかった場合、\f2srcalias\fP がターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\f2srckeypass\fP を使ってそのエントリが回復されます。\f2srckeypass\fP が指定されなかった場合、\f3keytool\fP は \f2srcstorepass\fP を使ってそのエントリを回復しようとします。\f2srcstorepass\fP が指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットエントリは \f2destkeypass\fP によって保護されます。\f2destkeypass\fP が指定されなかった場合、ターゲットエントリはソースエントリのパスワードによって保護されます。 +\f2srcalias\fP ץ󤬻ꤵ줿硢Υޥɤϡ̾ꤵñΥȥ򥿡åȥȥ˥ݡȤޤ\f2destalias\fP ͳǥå̾ꤵʤä硢\f2srcalias\fP å̾ȤƻѤޤΥȥ꤬ѥɤݸƤ硢\f2srckeypass\fP ȤäƤΥȥ꤬ޤ\f2srckeypass\fP ꤵʤä硢\f3keytool\fP \f2srcstorepass\fP ȤäƤΥȥ褦Ȥޤ\f2srcstorepass\fP ꤵʤäʤä硢桼ϥѥɤϤޤåȥȥ \f2destkeypass\fP ˤäݸޤ\f2destkeypass\fP ꤵʤä硢åȥȥϥȥΥѥɤˤäݸޤ .LP -\f2srcalias\fP オプションが指定されなかった場合、ソースキーストア内のすべてのエントリがターゲットキーストア内にインポートされます。各ターゲットエントリは対応するソースエントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\f2srcstorepass\fP を使ってそのエントリが回復されます。\f2srcstorepass\fP が指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソースキーストア内のあるエントリタイプがターゲットキーストアでサポートされていない場合や、あるエントリをターゲットキーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、あるいは処理を中断するかの選択を求められます。ターゲットエントリはソースエントリのパスワードによって保護されます。 +\f2srcalias\fP ץ󤬻ꤵʤä硢ȥΤ٤ƤΥȥ꤬åȥȥ˥ݡȤޤƥåȥȥб륽ȥ̾β˳ǼޤΥȥ꤬ѥɤݸƤ硢\f2srcstorepass\fP ȤäƤΥȥ꤬ޤ\f2srcstorepass\fP ꤵʤäʤä硢桼ϥѥɤϤޤȥΤ륨ȥ꥿פåȥȥǥݡȤƤʤ䡢륨ȥ򥿡åȥȥ˳Ǽݤ˥顼ȯ硢桼ϤΥȥ򥹥åפƽ³Ԥ뤫뤤ϽǤ뤫ޤåȥȥϥȥΥѥɤˤäݸޤ .LP -ターゲット別名がターゲットキーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。 +å̾åȥȥˤǤ¸ߤƤ硢桼ϡΥȥ񤭤뤫뤤ϰۤʤ̾βǿȥ뤫ޤ .LP -\f2\-noprompt\fP を指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリはそのターゲット別名で自動的に上書きされます。最後に、インポートできないエントリは自動的にスキップされ、警告が出力されます。 +\f2\-noprompt\fP ꤷ硢桼Ͽå̾Ϥޤ󡣴¸ΥȥϤΥå̾ǼưŪ˾񤭤ޤǸˡݡȤǤʤȥϼưŪ˥åפ졢ٹ𤬽Ϥޤ +.TP 3 +\-printcertreq {\-file file} +.LP +PKCS #10 ξ׵ƤϤޤ׵ϡkeytool \-certreq ޥɤǤޤΥޥɤϡfile ׵ɤ߹ߤޤfile άƤϡɸϤɤ߹ߤޤ .RE -.RE -.SS -データのエクスポート -.LP -.RS 3 +.LP +.SS +ǡΥݡ .LP .RS 3 .TP 3 -\-certreq {\-alias alias} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-certreq {\-alias alias} {\-dname dname} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -PKCS#10 形式を使って証明書署名要求 (CSR) を生成します。 +PKCS#10 Ȥäƾ̾׵ (CSR) ޤ .LP -CSR は、証明書発行局 (CA) に送信することを目的としたものです。CA は、証明書要求者を (通常はオフラインで) 認証し、証明書または証明書チェーンを送り返します。 この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン (最初は 1 つの自己署名証明書から構成される) に置き換えて使います。 +CSR ϡȯԶ (CA) 뤳ȤŪȤΤǤCA ϡ׵Ԥ (̾ϥե饤) ǧڤޤϾ֤ޤ ξޤϾϡȥδ¸ξ (ǽ 1 Ĥμʽ̾񤫤鹽) ֤ƻȤޤ .LP -\f2alias\fP に関連付けられた非公開鍵と X.500 識別名は、PKCS#10 証明書要求を作成するのに使われます。非公開鍵はキーストア内ではパスワードによって保護されているので、非公開鍵にアクセスするには、適切なパスワードを提供する必要があります。コマンド行で \f2keypass\fP を指定しておらず、非公開鍵のパスワードがキーストアのパスワードと異なる場合は、非公開鍵のパスワードの入力を求められます。 +\f2alias\fP ˴Ϣդ줿ϡPKCS#10 ׵Τ˻ȤޤϥȥǤϥѥɤˤäݸƤΤǡ˥ˤϡŬڤʥѥɤ󶡤ɬפޤޥɹԤ \f2keypass\fP ꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤdname ꤵƤϡ줬 CSR ǼΤȤƻѤޤʳξϡ̾˴Ϣդ줿 X.500 ̾Ѥޤ .LP -\f2sigalg\fP には、CSR に署名を付けるときに使うアルゴリズムを指定します。 +\f2sigalg\fP ˤϡCSR ˽̾դȤ˻Ȥ르ꥺꤷޤ .LP -CSR は、ファイル \f2certreq_file\fP に格納されます。ファイルが指定されていない場合は、標準出力に CSR が出力されます。 +CSR ϡե \f2certreq_file\fP ˳Ǽޤե뤬ꤵƤʤϡɸϤ CSR Ϥޤ .LP -CA からの応答をインポートするには、\f2importcert\fP コマンドを使います。 +CA α򥤥ݡȤˤϡ\f2importcert\fP ޥɤȤޤ .TP 3 \-exportcert {\-alias alias} {\-file cert_file} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-rfc} {\-v} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP に関連付けられた証明書を (キーストアから) 読み込み、ファイル \f2cert_file\fP に格納します。 +\f2alias\fP ˴Ϣդ줿 (ȥ) ɤ߹ߡե \f2cert_file\fP ˳Ǽޤ .LP -ファイルが指定されていない場合は、標準出力に証明書が出力されます。 +ե뤬ꤵƤʤϡɸϤ˾񤬽Ϥޤ .LP -デフォルトでは、バイナリ符号化方式の証明書が出力されます。 ただし、\f2\-rfc\fP オプションを指定した場合は、出力可能符号化方式の証明書が出力されます。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。 +ǥեȤǤϡХʥ沽ξ񤬽Ϥޤ \-rfc ץꤷϡϲǽ沽ξ񤬽Ϥޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ .LP -\f2alias\fP が、信頼できる証明書を参照している場合は、該当する証明書が出力されます。それ以外の場合、\f2alias\fP は、関連付けられた証明書チェーンを持つ鍵エントリを参照します。この場合は、チェーン内の最初の証明書が返されます。この証明書は、\f2alias\fP によって表されるエンティティーの公開鍵を認証する証明書です。 +\f2alias\fP Ǥ򻲾ȤƤϡ񤬽Ϥޤʳξ硢\f2alias\fP ϡϢդ줿ĸȥ򻲾Ȥޤξϡκǽξ֤ޤξϡ\f2alias\fP ˤäɽ륨ƥƥθǧڤǤ .LP -このコマンドは、以前のリリースでは \f2\-export\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-exportcert\fP を使用することをお勧めします。 +ΥޥɤϡΥ꡼Ǥ \f2\-export\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-exportcert\fP Ѥ뤳Ȥ򤪴ᤷޤ .RE .LP -.RE .SS -データの表示 -.LP -.RS 3 - +ǡɽ .LP .RS 3 .TP 3 \-list {\-alias alias} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v | \-rfc} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP で特定されるキーストアエントリの内容を (標準出力に) 出力します。別名が指定されていない場合は、キーストア全体の内容が表示されます。 +\f2alias\fP ꤵ륭ȥȥƤ (ɸϤ) Ϥޤ̾ꤵƤʤϡȥΤƤɽޤ .LP -このコマンドは、デフォルトでは証明書の MD5 フィンガープリントを表示します。\f2\-v\fP オプションが指定されている場合は、所有者、発行者、シリアル番号、拡張機能などの付加的な情報とともに、人間が読むことのできる形式で証明書が表示されます。\f2\-rfc\fP オプションが指定されている場合は、出力可能符号化方式で証明書の内容が表示されます。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。 +ΥޥɤϡǥեȤǤϾ SHA1 ե󥬡ץȤɽޤ \f2\-v\fP ץ󤬻ꤵƤϡͭԡȯԼԡꥢֹ桢ĥǽʤɤղŪʾȤȤˡʹ֤ɤळȤΤǤǾɽޤ \f2\-rfc\fP ץ󤬻ꤵƤϡϲǽ沽ǾƤɽޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ .LP -\f2\-v\fP オプションと \f2\-rfc\fP オプションとを同時に指定することはできません。 +\f2\-v\fP ץ \f2\-rfc\fP ץƱ˻ꤹ뤳ȤϤǤޤ .TP 3 -\-printcert {\-file cert_file} {\-v} {\-Jjavaoption} +\-printcert {\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption} .LP -ファイル +ե \f2cert_file\fP\f2host:port\fP ˤ SSL СޤϽ̾դ JAR ե \f2JAR_file\fP ( \f2\-jarfile\fP ץ) ɤ߹ߡʹ֤ɤळȤΤǤǾƤɽޤݡȤꤵƤʤϡɸ HTTPS ݡ 443 ꤵޤ \f2\-sslserver\fP \f2\-file\fP ץƱ˻ꤹ뤳ȤϤǤޤƱ˻ꤹȡ顼𤵤ޤץ󤬻ꤵƤʤϡɸϤɤ߹ߤޤ .LP -インターネット RFC 1421 証明書符号化規格で定義されています。 +\f2\-rfc\fP ꤵƤ硢keytool ϡ󥿡ͥå RFC 1421 ɸƤ褦ˡPEM ⡼ɤǾϤޤ .LP -注:このコマンドはキーストアとは関係なく動作します。 +եޤɸϤɤ߹硢ξϡ󥿡ͥå RFC 1421 ɸƤ褦ˡХʥ沽ޤϽϲǽ沽ɽǤޤ +.LP +SSL Сեظˤϡ \f2\-J\-Dhttps.proxyHost=proxyhost\fP \f2\-J\-Dhttps.proxyPort=proxyport\fP 򥳥ޥɹԤǻꤷơץȥͥ󥰤ѤǤޤܺ٤ϡ +.na +\f2JSSE ե󥹥ɡ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html򻲾ȤƤ +.LP +\f3\fP: ΥץϥȥȤϴطʤѤǤޤ +.TP 3 +\-printcrl \-file crl_ {\-v} +.LP +ե \f2crl_file\fP μäꥹ (CRL) ɤ߹ߤޤ +.LP +μäꥹ (CRL) ϡǥȯԤȯԶ (CA) ˤäƼä줿ǥΥꥹȤǤCA ϡ\f2crl_file\fP ޤ +.LP +\f3\fP: ΥץϥȥȤϴطʤѤǤޤ .RE .LP -.RE .SS -キーストアの管理 -.LP -.RS 3 - +ȥδ .LP .RS 3 .TP 3 \-storepasswd [\-new new_storepass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption} .LP -キーストアの内容の整合性を保護するために使うパスワードを変更します。\f2new_storepass\fP には、新しいパスワードを指定します。 \f2new_storepass\fP は、6 文字以上でなければなりません。 +ȥƤݸ뤿˻Ȥѥɤѹޤ\f2new_storepass\fP ˤϡѥɤꤷޤnew_storepass ϡ6 ʸʾǤʤФʤޤ .TP 3 \-keypasswd {\-alias alias} [\-keypass old_keypass] [\-new new_keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption} .LP -\f2alias\fP によって特定される非公開/秘密鍵を保護するためのパスワードを、\f2old_keypass\fP から \f2new_keypass\fP に変更します。 \f2new_keypass\fP は、6 文字以上でなければなりません。 +\f2alias\fP ˤäꤵ/̩ݸ뤿Υѥɤ\f2old_keypass\fP \f2new_keypass\fP ѹޤnew_keypass ϡ6 ʸʾǤʤФʤޤ .LP -コマンド行で \f2\-keypass\fP オプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 +ޥɹԤ \f2\-keypass\fP ץꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤ .LP -コマンド行で \f2\-new\fP オプションを指定しなかった場合は、新しいパスワードの入力を求められます。 +ޥɹԤ \f2\-new\fP ץꤷʤäϡѥɤϤޤ .TP 3 \-delete [\-alias alias] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP によって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 +\f2alias\fP ˤäꤵ륨ȥ򥭡ȥޤޥɹԤ̾ꤷʤäϡ̾Ϥޤ .TP 3 \-changealias {\-alias alias} [\-destalias destalias] [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -指定された \f2alias\fP から新しい別名 \f2destalias\fP へ、既存のキーストアエントリを移動します。ターゲット別名が指定されなかった場合、このコマンドはその入力を求めます。元のエントリがエントリパスワードで保護されていた場合、「\-keypass」オプション経由でそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\f2storepass\fP (指定された場合) がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 +ꤵ줿 \f2alias\fP 鿷̾ \f2destalias\fP ء¸Υȥȥưޤå̾ꤵʤä硢ΥޥɤϤϤޤΥȥ꤬ȥѥɤݸƤ硢\-keypassץץͳǤΥѥɤǤޤѥɤꤵʤä硢\f2storepass\fP (ꤵ줿) ޤߤޤλߤԤȡ桼ϥѥɤϤޤ .RE .LP -.RE .SS -ヘルプの表示 -.LP -.RS 3 - +إפɽ .LP .RS 3 .TP 3 \-help .LP -基本的なコマンドとそのオプションの一覧を表示します。 +ŪʥޥɤȤΥץΰɽޤ +.LP +Υޥɤξܺ٤ˤĤƤϡΤ褦ϤƤ \f2command_name\fP ϥޥɤ̾Ǥ +.nf +\f3 +.fl + keytool \-\fP\f4command_name\fP\f3 \-help +.fl +\fP +.fi .RE .LP -.RE -.SH "例" -.LP - +.SH "" .LP .LP -ここでは、自分の鍵のペアおよび信頼できるエンティティーからの証明書を管理するためのキーストアを作成する場合を例として示します。 +ǤϡʬθΥڥӿǤ륨ƥƥξ뤿ΥȥȤƼޤ .LP .SS -鍵のペアの生成 -.LP -.RS 3 - +Υڥ .LP .LP -まず、キーストアを作成して鍵のペアを生成する必要があります。次に示すのは、実行するコマンドの例です。 +ޤȥƸΥڥɬפޤ˼Τϡ¹Ԥ륳ޥɤǤ .LP .nf \f3 .fl - keytool \-genkeypair \-dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" + keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl \-alias business \-keypass kpi135 \-keystore /working/mykeystore .fl @@ -485,16 +1096,16 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .LP .LP -注:このコマンドは 1 行に入力しなければなりません。例で複数行に入力しているのは読みやすくするためです。 +: Υޥɤ 1 ԤϤʤФʤޤʣԤϤƤΤɤߤ䤹뤿Ǥ .LP .LP -この例では、working ディレクトリに mykeystore という名前のキーストアを作成し (キーストアはまだ存在していないと仮定する)、作成したキーストアにパスワード ab987c を割り当てます。生成する公開鍵と非公開鍵のペアに対応するエンティティーの「識別名」は、通称が「Mark Jones」、組織単位が「JavaSoft」、組織が「Sun」、2 文字の国番号が「US」です。公開鍵と非公開鍵のサイズはどちらも 1024 ビットで、鍵の作成にはデフォルトの DSA 鍵生成アルゴリズムを使用します。 +Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥ˥ѥ ab987c ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ .LP .LP -このコマンドは、公開鍵と識別名情報を含む自己署名証明書 (デフォルトの SHA1withDSA 署名アルゴリズムを使用) を作成します。証明書の有効期間は 180 日です。 証明書は、別名「business」で特定されるキーストアエントリ内の非公開鍵に関連付けられます。非公開鍵にはパスワード「kpi135」が割り当てられます。 +Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϥѥɡkpi135פƤޤ .LP .LP -オプションのデフォルト値を使う場合は、上に示したコマンドを大幅に短くすることができます。実際には、オプションを 1 つも指定せずにコマンドを実行することも可能です。 デフォルト値を持つオプションでは、オプションを指定しなければデフォルト値が使われ、必要な値については入力を求められます。たとえば、単に次のように入力することもできます。 +ץΥǥեͤȤϡ˼ޥɤû뤳ȤǤޤºݤˤϡץ 1 Ĥꤻ˥ޥɤ¹Ԥ뤳ȤǽǤ ǥեͤĥץǤϡץꤷʤХǥեͤȤ졢ɬפͤˤĤƤϤޤȤСñ˼Τ褦Ϥ뤳ȤǤޤ .LP .nf \f3 @@ -505,19 +1116,17 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .fi .LP -この場合は、mykey という別名でキーストアエントリが作成され、新しく生成された鍵のペア、および 90 日間有効な証明書がこのエントリに格納されます。このエントリは、ホームディレクトリ内の .keystore という名前のキーストアに置かれます。このキーストアがまだ存在していない場合は、作成されます。識別名情報、キーストアのパスワード、および非公開鍵のパスワードについては、入力を求められます。 .LP -以下では、オプションを指定しないで \f2\-genkeypair\fP コマンドを実行したものとして例を示します。 情報の入力を求められた場合は、最初に示した \f2\-genkeypair\fP コマンドの値を入力したものとします (たとえば、非公開鍵のパスワードには kpi135 と指定)。 +ξϡmykey Ȥ̾ǥȥȥ꤬졢줿Υڥ 90 ͭʾ񤬤Υȥ˳ǼޤΥȥϡۡǥ쥯ȥ .keystore Ȥ̾Υȥ֤ޤΥȥޤ¸ߤƤʤϡޤ̾󡢥ȥΥѥɡΥѥɤˤĤƤϡϤޤ +.LP +.LP +ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤСΥѥɤˤ kpi135 Ȼ) .LP -.RE .SS -証明書発行局に対する署名付き証明書の要求 -.LP -.RS 3 - +ȯԶɤФ̾դ׵ .LP .LP -現時点で手元にあるのは、1 通の自己署名証明書だけです。証明書に証明書発行局 (CA) の署名が付いていれば、ほかのユーザーから証明書が信頼できる可能性も高くなります。CA の署名を取得するには、まず、証明書署名要求 (CSR) を生成します。 たとえば、次のようにします。 +Ǽ긵ˤΤϡ1 ̤μʽ̾Ǥ˾ȯԶ (CA) ν̾դƤСۤΥ桼񤬿Ǥǽ⤯ʤޤCA ν̾ˤϡޤ̾׵ (CSR) ޤ ȤСΤ褦ˤޤ .LP .nf \f3 @@ -528,41 +1137,39 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .fi .LP -CSR (デフォルト別名「mykey」によって特定されるエンティティーの CSR) が作成され、MarkJ.csr という名前のファイルに置かれます。このファイルは、VeriSign などの CA に提出します。 CA は要求者を (通常はオフラインで) 認証し、要求者の公開鍵を認証した署名付きの証明書を送り返します。場合によっては、CA が証明書のチェーンを返すこともあります。 証明書のチェーンでは、各証明書がチェーン内のその前の署名者の公開鍵を認証します。 -.RE +.LP +CSR (ǥե̾mykeyפˤäꤵ륨ƥƥ CSR) 졢MarkJ.csr Ȥ̾Υե֤ޤΥեϡVeriSign ʤɤ CA Фޤ CA ׵Ԥ (̾ϥե饤) ǧڤ׵Ԥθǧڤ̾դξ֤ޤˤäƤϡCA Υ֤Ȥ⤢ޤΥǤϡƾ񤬥Τν̾Ԥθǧڤޤ +.LP .SS -CA からの証明書のインポート -.LP -.RS 3 - +CA ξΥݡ .LP .LP -作成した自己署名証明書は、証明書チェーンで置き換える必要があります。 証明書チェーンでは、各証明書が、「ルート」CA を起点とするチェーン内の次の証明書の署名者の公開鍵を認証します。 +ʽ̾ϡ֤ɬפޤǤϡƾ񤬡֥롼ȡCA Ȥμξν̾Ԥθǧڤޤ .LP .LP -CA からの証明応答をインポートするには、キーストアか、(importcert コマンド で説明しているように) \f2cacerts\fP キーストアファイル内に 1 つ以上の「信頼できる証明書」がある必要があります。 +CA ξ򥤥ݡȤˤϡȥ \f2cacerts\fP ȥե (importcert ޥɤ) 1 İʾΡֿǤפɬפޤ .LP .RS 3 .TP 2 o -証明応答が証明書チェーンの場合は、チェーンのトップの証明書 (その CA の公開鍵を認証する「ルート」CA の証明書) だけを必要とする +ξϡΥȥåפξ ( CA θǧڤ֥롼ȡCA ξ) ɬפȤ .TP 2 o -証明応答が単一の証明書の場合は、証明書に署名した CA の発行用の証明書が必要で、その証明書が自己署名されない場合は、さらにその証明書の署名者用の証明書を必要とする。 このようにして自己署名される「ルート」CA の証明書までそれぞれ証明書を必要とする +ñξξϡ˽̾ CA ȯѤξɬפǡξ񤬼ʽ̾ʤϡˤξν̾ѤξɬפȤ롣 Τ褦ˤƼʽ֥̾롼ȡCA ξޤǤ줾ɬפȤ .RE .LP .LP -cacerts キーストアファイルは、5 つの VeriSign ルート CA 証明書を含んだ状態で出荷されているので、VeriSign の証明書を、信頼できる証明書としてキーストア内にインポートする必要はないかもしれません。ただし、ほかの CA に対して署名付き証明書を要求していて、この CA の公開鍵を認証する証明書が、cacerts にまだ追加されていない場合は、該当する CA からの証明書を、「信頼できる証明書」としてインポートする必要があります。 +cacerts ȥեϡĤ VeriSign 롼 CA ޤ֤ǽв٤ƤΤǡVeriSign ξ򡢿ǤȤƥȥ˥ݡȤɬפϤʤ⤷ޤ󡣤ۤ CA Фƽ̾դ׵ᤷƤơ CA θǧڤ񤬡cacerts ˤޤɲäƤʤϡ CA ξ򡢡ֿǤפȤƥݡȤɬפޤ .LP .LP -通常、CA からの証明書は、自己署名証明書、またはほかの CA によって署名された証明書です (後者の場合は、該当するほかの CA の公開鍵を認証する証明書も必要)。たとえば、ABC という企業が CA だとします。 このとき、この CA の公開鍵を認証する自己署名証明書と考えられる ABCCA.cer という名前のファイルを、ABC から入手したとします。 +̾CA ξϡʽ̾񡢤ޤϤۤ CA ˤäƽ̾줿Ǥ (Ԥξϡۤ CA θǧڤɬ)ȤСABC ȤȤ CA ȤޤΤȤ CA θǧڤ뼫ʽ̾ȹͤ ABCCA.cer Ȥ̾ΥեABC ꤷȤޤ .LP .LP -「信頼できる証明書」として証明書をインポートするときは、証明書が有効であることを慎重に確認する必要があります。まず、証明書の内容を表示し (\f3keytool\fP \f2\-printcert\fP コマンドを使用するか、または \f2\-noprompt\fP オプションを指定しないで \f3keytool\fP \f2\-importcert\fP コマンドを使用)、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した (または安全な公開鍵のリポジトリによって提示される) フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中でほかの何者か (攻撃者など) による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。 +ֿǤפȤƾ򥤥ݡȤȤϡͭǤ뤳Ȥ򿵽Ť˳ǧɬפޤޤƤɽ (\f3keytool\fP \f2\-printcert\fP ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \f3keytool\fP \f2\-importcert\fP ޥɤѤ ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤʪϢοʪ󼨤 (ޤϰʸΥݥȥˤä󼨤) ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤΤꤹ뤳Ȥˤʤޤ .LP .LP -ABCCA.cer を有効な証明書として信頼する場合は、証明書をキーストアに追加できます。 たとえば、次のようにします。 +ABCCA.cer ͭʾȤƿꤹϡ򥭡ȥɲäǤޤ ȤСΤ褦ˤޤ .LP .nf \f3 @@ -573,19 +1180,17 @@ ABCCA.cer を有効な証明書として信頼する場合は、証明書をキ .fi .LP -ABCCA.cer ファイルのデータを含む「信頼できる証明書」のエントリがキーストア内に作成され、該当するエントリに abc という別名が割り当てられます。 -.RE +.LP +ABCCA.cer եΥǡޤֿǤפΥȥ꤬ȥ˺졢륨ȥ abc Ȥ̾Ƥޤ +.LP .SS -CA からの証明応答のインポート -.LP -.RS 3 - +CA ξΥݡ .LP .LP -証明書署名要求の提出先の CA の公開鍵を認証する証明書をインポートしたあとは (または同種の証明書がすでに cacerts ファイル内に存在している場合は)、証明応答をインポートし、自己署名証明書を証明書チェーンで置き換えることができます。この証明書チェーンは、CA の応答がチェーンの場合、証明書署名要求に対する応答として CA から送り返された証明書チェーンです。 また、CA の応答が単一の証明書の場合は、この証明応答と、インポート先のキーストア内または cacerts キーストアファイル内にすでに存在する信頼できる証明書とを使って構築した証明書チェーンです。 +̾׵ CA θǧڤ򥤥ݡȤȤ (ޤƱξ񤬤Ǥ cacerts ե¸ߤƤ)򥤥ݡȤʽ֤̾뤳ȤǤޤξϡCA αξ硢̾׵ФȤ CA ֤줿Ǥ ޤCA αñξξϡξȡݡΥȥޤ cacerts ȥեˤǤ¸ߤ뿮ǤȤȤäƹۤǤ .LP .LP -たとえば、証明書署名要求を VeriSign に送信したとします。送り返された証明書の名前が VSMarkJ.cer だとすると、次のようにして応答をインポートできます。 +ȤС̾׵ VeriSign Ȥޤ֤줿̾ VSMarkJ.cer ȤȡΤ褦ˤƱ򥤥ݡȤǤޤ .LP .nf \f3 @@ -594,18 +1199,16 @@ CA からの証明応答のインポート .fl \fP .fi -.RE .LP .SS -公開鍵を認証する証明書のエクスポート +ǧڤΥݡ .LP -.RS 3 - .LP -たとえば、jarsigner(1) を使って Java ARchive (JAR) ファイルに署名したとします。この JAR ファイルはクライアントによって使われますが、クライアント側では署名を認証したいと考えています。 +ȤСjarsigner(1) ġȤä Java ARchive (JAR) ե˽̾դȤޤ JAR եϥ饤ȤˤäƻȤޤ饤¦ǤϽ̾ǧڤȹͤƤޤ .LP -クライアントが署名を認証する方法の 1 つに、まず自分の公開鍵の証明書を「信頼できる」エントリとしてクライアントのキーストアにインポートする方法があります。そのためには、証明書をエクスポートして、クライアントに提供します。たとえば、次のようにして、証明書を \f2MJ.cer\fP という名前のファイルにコピーします。 このエントリには「mykey」という別名が使われているとします。 +.LP +饤Ȥ̾ǧڤˡ 1 ĤˡޤʬθξֿǤץȥȤƥ饤ȤΥȥ˥ݡȤˡޤΤˤϡ򥨥ݡȤơ饤Ȥ󶡤ޤȤСΤ褦ˤơ \f2MJ.cer\fP Ȥ̾Υե˥ԡޤΥȥˤϡmykeyפȤ̾ȤƤȤޤ .LP .nf \f3 @@ -616,24 +1219,22 @@ CA からの証明応答のインポート .fi .LP -証明書と署名付き JAR ファイルを入手したクライアントは、\f3jarsigner\fP ツールを使って署名を認証できます。 -.RE +.LP +Ƚ̾դ JAR եꤷ饤Ȥϡ\f3jarsigner\fP ġȤäƽ̾ǧڤǤޤ +.LP .SS -キーストアのインポート -.LP -.RS 3 - +ȥΥݡ .LP .LP -コマンド「importkeystore」を使えば、あるキーストアの全体を別のキーストア内にインポートできます。 これは、鍵や証明書といったソースキーストア内のすべてのエントリが、単一のコマンドを使ってターゲットキーストア内にインポートされることを意味します。このコマンドを使えば、異なるタイプのキーストア内に含まれるエントリをインポートすることができます。インポート時には、ターゲットキーストア内の新しいエントリはすべて、元と同じ別名および (秘密鍵や非公開鍵の場合は) 保護用パスワードを持ちます。ソースキーストア内の非公開鍵や秘密鍵の回復時に問題が発生した場合、\f3keytool\fP はユーザーにパスワードの入力を求めます。このコマンドは、別名の重複を検出すると、ユーザーに新しい別名の入力を求めます。 ユーザーは、新しい別名を指定することも、単純に既存の別名の上書きを \f3keytool\fP に許可することもできます。 +ޥɡimportkeystoreפȤС륭ȥΤ̤Υȥ˥ݡȤǤޤϡȤäȥΤ٤ƤΥȥ꤬ñΥޥɤȤäƥåȥȥ˥ݡȤ뤳Ȥ̣ޤΥޥɤȤСۤʤ륿פΥȥ˴ޤޤ륨ȥ򥤥ݡȤ뤳ȤǤޤݡȻˤϡåȥȥοȥϤ٤ơƱ̾ (̩ξ) ݸѥѥɤޤȥ̩β꤬ȯ硢\f3keytool\fP ϥ桼˥ѥɤϤޤΥޥɤϡ̾νʣ򸡽Фȡ桼˿̾Ϥޤ桼ϡ̾ꤹ뤳Ȥ⡢ñ˴¸̾ξ񤭤 \f3keytool\fP ˵Ĥ뤳ȤǤޤ .LP .LP -たとえば、通常の JKS タイプのキーストア key.jks 内のエントリを PKCS #11 タイプのハードウェアベースのキーストア内にインポートするには、次のコマンドを使用できます。 +ȤС̾ JKS פΥȥ key.jks Υȥ PKCS #11 פΥϡɥ١Υȥ˥ݡȤˤϡΥޥɤѤǤޤ .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl @@ -646,12 +1247,12 @@ keytool \-importkeystore .LP .LP -また、importkeystore コマンドを使えば、あるソースキーストア内の単一のエントリをターゲットキーストアにインポートすることもできます。この場合、上記の例で示したオプションに加え、インポート対象となる別名を指定する必要があります。srcalias オプションを指定する場合には、ターゲット別名もコマンド行から指定できるほか、秘密/非公開鍵の保護用パスワードやターゲット保護用パスワードも指定できます。そうすれば、プロンプトのまったく表示されない \f3keytool\fP コマンドを発行できます。これは、\f3keytool\fP コマンドをスクリプトファイルに含める際に非常に便利です。 次に例を示します。 +ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤСץץȤΤޤäɽʤ \f3keytool\fP ޥɤȯԤǤޤϡ\f3keytool\fP ޥɤ򥹥ץȥե˴ޤݤǤ򼨤ޤ .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl @@ -667,55 +1268,74 @@ keytool \-importkeystore .fl \fP .fi -.RE - -.LP -.SH "用語と警告" -.LP .LP .SS -キーストア +Ū SSL СѤξ .LP -.RS 3 +.LP +ˡ3 ĤΥƥƥĤޤ롼 CA (root) CA (ca) SSL С (server) ѤθڥȾ keytool ޥɤ򼨤ޤ٤ƤξƱȥ˳Ǽ褦ˤƤǤϡΥ르ꥺȤ RSA ꤹ뤳Ȥ򤪴ᤷޤ +.LP +.nf +\f3 +.fl +keytool \-genkeypair \-keystore root.jks \-alias root \-ext bc:c +.fl +keytool \-genkeypair \-keystore ca.jks \-alias ca \-ext bc:c +.fl +keytool \-genkeypair \-keystore server.jks \-alias server +.fl + +.fl +keytool \-keystore root.jks \-alias root \-exportcert \-rfc > root.pem +.fl + +.fl +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-certreq \-alias ca | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore root.jks \-gencert \-alias root \-ext BC=0 \-rfc > ca.pem +.fl +keytool \-keystore ca.jks \-importcert \-alias ca \-file ca.pem +.fl + +.fl +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore server.jks \-certreq \-alias server | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE \-rfc > server.pem +.fl +cat root.pem ca.pem server.pem | keytool \-keystore server.jks \-importcert \-alias server +.fl +\fP +.fi .LP -キーストアは、暗号化の鍵と証明書を格納するための機能です。 -.RE +.SH "Ѹȷٹ" +.LP +.SS +KeyStore +.LP +.LP +ȥϡŹ沽θȾǼ뤿εǽǤ +.LP .RS 3 .TP 2 o -.TP 2 -o -\f3キーストアのエントリ\fP -.RS 3 - +\f3ȥΥȥ\fP .LP -キーストアには異なるタイプのエントリを含めることができます。\f3keytool\fP でもっとも適用範囲の広いエントリタイプは、次の 2 つです。 +ȥˤϰۤʤ륿פΥȥޤ뤳ȤǤޤ\f3keytool\fP ǤäȤŬϰϤιȥ꥿פϡ 2 ĤǤ .RS 3 .TP 3 1. -\f3鍵のエントリ\fP \- 各エントリは、非常に重要な暗号化の鍵の情報を保持します。この情報は、許可していないアクセスを防ぐために、保護された形で格納されます。一般に、この種のエントリとして格納される鍵は、秘密鍵か、対応する公開鍵の証明書チェーンを伴う非公開鍵です。\f3keytool\fP がこの両方のタイプのエントリを処理できるのに対し、\f3jarsigner\fP ツールは後者のタイプのエントリ、つまり非公開鍵とそれに関連付けられた証明書チェーンのみを処理します。 +\f3Υȥ\fP \- ƥȥϡ˽פʰŹ沽θξݻޤξϡĤƤʤɤˡݸ줿dzǼޤ ̤ˡμΥȥȤƳǼ븰ϡ̩бξȼǤ\f3keytool\fP ξΥפΥȥǤΤФ\f3jarsigner\fP ġϸԤΥפΥȥꡢĤޤȤ˴Ϣդ줿Τߤޤ .TP 3 2. -\f3信頼できる証明書のエントリ\fP \- 各エントリは、第三者からの公開鍵証明書を 1 つ含んでいます。この証明書は、「信頼できる証明書」と呼ばれます。 それは、証明書内の公開鍵が、証明書の「Subject」(所有者) によって特定されるアイデンティティーに由来するものであることを、キーストアの所有者が信頼するからです。証明書の発行者は、証明書に署名を付けることによって、その内容を保証します。 -.RE - -.LP +\f3ǤΥȥ\fP \- ƥȥϡ軰Ԥθ 1 ĴޤǤޤξϡֿǤפȸƤФޤ ϡθΡSubject(ͭ) ˤäꤵ륢ǥƥƥͳ褹ΤǤ뤳Ȥ򡢥ȥνͭԤꤹ뤫ǤȯԼԤϡ˽̾դ뤳ȤˤäơƤݾڤޤ .RE .TP 2 o -\f3キーストアの別名\fP -.RS 3 +\f3ȥ̾\fP .LP -キーストアのすべてのエントリ (鍵および信頼できる証明書) は、一意の「別名」を介してアクセスされます。 +ȥΤ٤ƤΥȥ (ӿǤ) ϡդΡ̾פ𤷤ƥޤ .LP +̾ꤹΤϡ\-genseckey ޥɤȤä̩ꡢ\-genkeypair ޥɤȤäƸڥ () ꡢ\-importcert ޥɤȤäƾޤϾǤΥꥹȤɲäꤹʤɡΥƥƥ򥭡ȥɲäǤʸ塢\f3keytool\fP ޥɤǥƥƥ򻲾ȤϡΤȤ˻ꤷ̾Ѥɬפޤ .LP -別名を指定するのは、\-genseckey コマンドを使って秘密鍵を生成したり、\-genkeypair コマンドを使って鍵ペア (公開鍵と非公開鍵) を生成したり、\-importcert コマンドを使って証明書または証明書チェーンを信頼できる証明書のリストに追加したりするなど、特定のエンティティーをキーストアに追加する場合です。これ以後、\f3keytool\fP コマンドでエンティティーを参照する場合は、このときに指定した別名を使用する必要があります。 -.LP -.LP -たとえば、\f2duke\fP という別名を使って新しい公開鍵と非公開鍵のペアを生成し、公開鍵を自己署名証明書 (「証明書チェーン」を参照) でラップするとします。 この場合は、次のコマンドを実行します。 -.LP +ȤС\f2duke\fP Ȥ̾ȤäƿΥڥ򼫸ʽ̾ (־פ򻲾) ǥåפȤޤ ξϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -723,9 +1343,8 @@ o .fl \fP .fi - .LP -ここでは、初期パスワードとして dukekeypasswd を指定しています。 以後、別名 \f2duke\fP に関連付けられた非公開鍵にアクセスするコマンドを実行するときは、このパスワードが必要になります。duke の非公開鍵のパスワードをあとから変更するには、次のコマンドを実行します。 +ǤϡѥɤȤ dukekeypasswd ꤷƤޤ ʸ塢̾ duke Ϣդ줿˥륳ޥɤ¹ԤȤϡΥѥɤɬפˤʤޤ duke Υѥɤ򤢤ȤѹˤϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -733,49 +1352,37 @@ o .fl \fP .fi - .LP -パスワードが、dukekeypasswd から newpass に変更されます。 +ѥɤdukekeypasswd newpass ѹޤ .LP -注 \-テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 -.LP -.RE +: ƥȤŪȤ硢ޤϰǤ뤳Ȥ狼äƤ륷ƥǼ¹ԤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤɬפʥѥɤΥץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ .TP 2 o -\f3キーストアの実装\fP -.RS 3 -\f2java.security\fP パッケージで提供される \f2KeyStore\fP クラスには、キーストア内の情報に対するアクセスと変更を行うための明確に定義されたインタフェースが用意されています。キーストアの固定実装としては、それぞれが特定の「タイプ」のキーストアを対象とする複数の異なる実装が存在可能です。 +\f3ȥμ\fP .LP -現在、\f3keytool\fP と \f3jarsigner\fP の 2 つのコマンド行ツールと、\f3Policy Tool\fP という名前の 1 つの GUI ベースのツールが、キーストアの実装を使用しています。\f2KeyStore\fP は public として使用可能なので、JDK ユーザーは \f2KeyStore\fP を使ったほかのセキュリティーアプリケーションも作成できます。 +\f2KeyStore\fP 饹 ( \f2java.security\fP ѥå󶡤) ˤϡȥξФ륢ѹԤΤ줿󥿥եѰդƤޤȥθȤƤϡ줾줬Ρ֥ספΥȥоݤȤʣΰۤʤ¸߲ǽǤ .LP +ߡ\f3keytool\fP \f3jarsigner\fP 2 ĤΥޥɹԥġȡ\f3Policy Tool\fP Ȥ̾ 1 Ĥ GUI ١Υġ뤬ȥμѤƤޤ \f2KeyStore\fP public ȤƻѲǽʤΤǡJDK 桼 KeyStore ȤäۤΥƥץꥱǤޤ .LP -キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアをファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワードによって保護され、キーストア全体の整合性も (非公開鍵とは別の) パスワードによって保護されます。 +ȥˤϡOracle 󶡤Ȥ߹ߤΥǥեȤμޤϡJKS Ȥ̾ȼΥȥ () ѤΤǡȥեȤƼƤޤμǤϡġϸ̤Υѥɤˤäݸ졢ȥΤ (Ȥ̤) ѥɤˤäݸޤ .LP -.LP -キーストアの実装は、プロバイダベースです。具体的には、\f2KeyStore\fP が提供するアプリケーションインタフェースは、Service Provider Interface (SPI) という形で実装されています。つまり、対応する \f2KeystoreSpi\fP 抽象クラス (これも \f2java.security\fP パッケージに含まれている) があり、このクラスが Service Provider Interface のメソッドを定義しています。 これらのメソッドは、「プロバイダ」が実装しなければなりません。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービスのサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合のことです。したがって、キーストアの実装を提供するには、 +ȥμϡץХ١ǤŪˤϡ \f2KeyStore\fP 󶡤륢ץꥱ󥤥󥿥եϡService Provider Interface (SPI) ȤǼƤޤĤޤꡢб \f2KeystoreSpi\fP ݥ饹 ( \f2java.security\fP ѥå˴ޤޤƤ) ꡢΥ饹֥ץХפɬפΤ Service Provider Interface Υ᥽åɤƤޤǡ֥ץХפȤϡJava Security API ˤäƥǽʥӥΥ֥åȤФθ󶡤ѥåޤϥѥåνΤȤǤäơȥμ󶡤ˤϡ .na -\f2「Java(TM) 暗号化アーキテクチャー用プロバイダの実装方法」\fP @ +\f2Java(TM) Ź沽ƥ㡼ѥץХμˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlで説明しているように、クライアントが「プロバイダ」を実装し、KeystoreSpi サブクラスの実装を提供する必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlƤ褦ˡ饤Ȥ֥ץХפKeystoreSpi ֥饹μ󶡤ɬפޤ .LP +ץꥱǤϡKeyStore 饹󶡤 getInstance եȥ᥽åɤȤȤǡޤޤʥץХۤʤ֥ספΥȥμǤޤ ȥΥפϡȥγǼȥǡȤȤˡȥ/̩ȥȥΤݸ뤿˻Ȥ륢르ꥺޤۤʤ륿פΥȥμˤϡߴϤޤ .LP -アプリケーションでは、\f2KeyStore\fP クラスが提供する getInstance ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式を定義するとともに、キーストア内の非公開/秘密鍵とキーストア自体の整合性を保護するために使われるアルゴリズムを定義します。異なるタイプのキーストアの実装には、互換性はありません。 +\f3keytool\fP ϡǤդΥե١Υȥưޤkeytool ϡޥɹԤϤ줿ȥξե̾Ȥư FileInputStream ѴơFileInputStream 饭ȥξɤޤ\f3jarsigner\fP ġ \f3policytool\fP ġϡURL ǻǽǤդξ꤫饭ȥɤ߹ळȤǤޤ .LP +\f3keytool\fP \f3jarsigner\fP ξ硢\f2\-storetype\fP ץȤäƥޥɹԤǥȥΥפǤޤ\f3Policy Tool\fPξϡ֥ȥץ˥塼ˤäƥȥΥפǤޤ .LP -\f3keytool\fP は、任意のファイルベースのキーストア実装で動作します。keytool は、コマンド行から渡されたキーストアの場所をファイル名として扱い、これを FileInputStream に変換して、FileInputStream からキーストアの情報をロードします。一方、\f3jarsigner\fP ツールと \f3policytool\fP ツールは、URL で指定可能な任意の場所からキーストアを読み込むことができます。 +ȥΥפŪ˻ꤷʤ硢keytooljarsigner policytool γƥġϡƥץѥƥեǻꤵ줿 \f2keystore.type\fP ץѥƥͤ˴Ťƥȥμ򤷤ޤƥץѥƥեϡ\f2java.security\fP Ȥ̾ǥƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ֤Ƥޤ\f2java.home\fP ϡ¹ԴĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment κǾ̥ǥ쥯ȥ) Ǥ .LP +ƥġϡ \f2keystore.type\fP ͤͤǻꤵ줿פΥȥƤץХĤޤǡߥ󥹥ȡ뤵Ƥ뤹٤ƤΥץХĴ٤ޤŪΥץХĤȡΥץХΥȥμȤޤ .LP -\f3keytool\fP と \f3jarsigner\fP の場合、\f2\-storetype\fP オプションを使ってコマンド行でキーストアのタイプを指定できます。\f3Policy Tool\fPの場合は、「キーストア」メニューによってキーストアのタイプを指定できます。 -.LP -.LP -キーストアのタイプを明示的に指定しない場合、keytool、jarsigner、および policytool の各ツールは、セキュリティープロパティーファイル内で指定された \f2keystore.type\fP プロパティーの値に基づいてキーストアの実装を選択します。セキュリティープロパティーファイルは、\f2java.security\fP という名前でセキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位ディレクトリ) です。 -.LP -.LP -各ツールは、\f2keystore.type\fP の値を取得し、この値で指定されたタイプのキーストアを実装しているプロバイダが見つかるまで、現在インストールされているすべてのプロバイダを調べます。目的のプロバイダが見つかると、そのプロバイダからのキーストアの実装を使います。 -.LP -.LP -\f2KeyStore\fP クラスでは \f2getDefaultType\fP という名前の static メソッドが定義されており、アプリケーションとアプレットはこのメソッドを使うことで \f2keystore.type\fP プロパティーの値を取得できます。次のコードは、デフォルトのキーストアタイプ (\f2keystore.type\fP プロパティーで指定されたタイプ) のインスタンスを生成します。 -.LP +\f2KeyStore\fP 饹Ǥ \f2getDefaultType\fP Ȥ̾ static ᥽åɤƤꡢץꥱȥץåȤϤΥ᥽åɤȤȤ \f2keystore.type\fP ץѥƥͤǤޤΥɤϡǥեȤΥȥ ( \f2keystore.type\fP ץѥƥǻꤵ줿) Υ󥹥󥹤ޤ .nf \f3 .fl @@ -783,11 +1390,8 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi - -.LP -.LP -デフォルトのキーストアタイプは JKS (Sun が提供する独自のタイプのキーストアの実装) です。これは、セキュリティープロパティーファイル内の次の行によって指定されています。 .LP +ǥեȤΥȥפ JKS (Oracle 󶡤ȼΥפΥȥμ) ǤϡƥץѥƥեμιԤˤäƻꤵƤޤ .nf \f3 .fl @@ -795,14 +1399,10 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi - .LP +ƥġǥǥեȰʳΥȥμѤˤϡιԤѹ̤ΥȥΥפꤷޤ .LP -各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して別のキーストアのタイプを指定します。 -.LP -.LP -たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供しているプロバイダパッケージを使用するには、上の行を次のように変更します。 -.LP +ȤСpkcs12 ȸƤФ륿פΥȥμ󶡤ƤץХѥåѤˤϡιԤ򼡤Τ褦ѹޤ .nf \f3 .fl @@ -810,561 +1410,163 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi +.LP +: ȥΥפλǤϡʸȾʸ϶̤ޤ󡣤ȤСJKS jks ƱΤȤưޤ +.RE .LP -注:キーストアのタイプの指定では、大文字と小文字は区別されません。たとえば、JKS と jks は同じものとして扱われます。 -.RE -.RE .SS -証明書 + .LP -.RS 3 - -.LP -\f3証明書\fP (\f3公開鍵証明書\fPとも呼ぶ) とは、あるエンティティー (「発行者」) からのデジタル署名付きの文書のことです。 証明書には、ほかのあるエンティティー (「署名者」) の公開鍵 (およびその他の情報) が特別な値を持っていることが書かれています。 -.RE +\f3\fP (\f3\fPȤƤ) Ȥϡ륨ƥƥ (ȯԼԡ) Υǥ̾դʸΤȤǤ ˤϡۤΤ륨ƥƥ (ֽ̾ԡ) θ (Ӥ¾ξ) ̤ͤäƤ뤳Ȥ񤫤Ƥޤ .RS 3 .TP 2 o -.TP 2 -o -\f3証明書の用語\fP +\f3Ѹ\fP .RS 3 - +.TP 3 + .LP -.RS 3 +ϡΥƥƥ˴Ϣդ줿Ǥϡ륨ƥƥȤδ֤˿Ǥطɬפ뤹٤ƤοͤФƸ뤳ȤտޤΤǤϡ̾򸡾ڤΤ˻Ȥޤ .TP 3 -公開鍵 -公開鍵は、特定のエンティティーに関連付けられた数です。 公開鍵は、該当するエンティティーとの間に信頼できる関係を持つ必要があるすべての人に対して公開することを意図したものです。公開鍵は、署名を検証するのに使われます。 +ǥ̾ +.LP +ǡ֥ǥ̾פȡΥǡϡƥƥΡ֥ǥƥƥפȡΥƥƥǡƤˤĤΤäƤ뤳Ȥ̾ȤȤ˳ǼޤƥƥȤäƥǡ˽̾դȡǡε¤Բǽˤʤޤ .TP 3 -デジタル署名 -データが「\f2デジタル署名\fP」されると、そのデータは、エンティティーの「アイデンティティー」と、そのエンティティーがデータの内容について知っていることを証明する署名とともに格納されます。エンティティーの非公開鍵を使ってデータに署名を付けると、データの偽造は不可能になります。 +ǥƥƥ +.LP +ƥƥꤹ뤿δΤˡǤƥˤäƤϡ򥢥ǥƥƥˤΤޤΤۤˤ⡢Unix UID Żҥ᡼륢ɥ쥹X.509 ̾ʤɡޤޤʤΤ򥢥ǥƥƥȤ뤳ȤǤޤ .TP 3 -アイデンティティー -エンティティーを特定するための既知の方法です。システムによっては、公開鍵をアイデンティティーにするものがあります。 公開鍵のほかにも、Unix UID や電子メールアドレス、X.509 識別名など、さまざまなものをアイデンティティーとすることができます。 +̾ +.LP +̾ϡʤ餫Υǡ˥ƥƥ (̾ԡ ˴ؤƤȯԼԤȤƤФ) ȤäƷ׻ޤ .TP 3 -署名 -署名は、なんらかのデータを基にエンティティー (署名者。 証明書に関しては発行者とも呼ばれる) の非公開鍵を使って計算されます。 + +.LP +ΥƥƥΤäƤΤȤǡοΤȤ򡢤ΥƥƥȤޤϡۤΤʤ褦̩ˤƤȤˤʤäƤޤȸϡ٤ƤθŹ沽ƥФˤʤä¸ߤƤޤDSA ʤɤŵŪʸŹ沽ƥξ硢1 ĤΤ 1 Ĥθбޤϡ̾׻Τ˻Ȥޤ .TP 3 -非公開鍵 -非公開鍵は特定のエンティティーだけが知っている数のことで、この数のことを、そのエンティティーの非公開鍵といいます。非公開鍵は、ほかに知られないように秘密にしておくことが前提になっています。 非公開鍵と公開鍵は、すべての公開鍵暗号化システムで対になって存在しています。DSA などの典型的な公開鍵暗号化システムの場合、1 つの非公開鍵は正確に 1 つの公開鍵に対応します。非公開鍵は、署名を計算するのに使われます。 -.TP 3 -エンティティー -エンテンティーは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となるさまざまなものを指します。 +ƥƥ +.LP +ƥƥϡ͡ȿץࡢԥ塼ȡԤʤɡٹ礤ǿоݤȤʤ뤵ޤޤʤΤؤޤ .RE - .LP -.LP -公開鍵暗号化では、その性質上、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティー間で以前の関係が引き続き確立されていると仮定したり、使われているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、「証明書発行局 (CA)」が信頼できる第三者として機能します。CA は、ほかのエンティティーの証明書に署名する (発行する) 行為を、信頼して任されているエンティティー (企業など) です。CA は法律上の契約に拘束されるので、有効かつ信頼できる証明書だけを作成するものとして扱われます。 +Ź沽Ǥϡ塢桼θ˥ɬפޤ絬ϤʥͥåȥĶǤϡߤ̿Ƥ륨ƥƥ֤ǰδط³ΩƤȲꤷꡢȤƤ뤹٤Ƥθ᤿Ǥݥȥ꤬¸ߤȲꤷꤹ뤳ȤԲǽǤΤ褦ʸۤ˴ؤ褹뤿˾񤬹ͰƤޤߤǤϡ־ȯԶ (CA)פǤ軰ԤȤƵǽޤCA ϡۤΥƥƥξ˽̾ (ȯԤ) ԰٤򡢿ꤷǤƤ륨ƥƥ (Ȥʤ) ǤCA ˡΧη˹«ΤǡͭĿǤΤȤưޤ .na \f2VeriSign\fP @ .fi -http://www.verisign.com/、 +http://www.verisign.com/ .na \f2Thawte\fP @ .fi -http://www.thawte.com/、 +http://www.thawte.com/ .na \f2Entrust\fP @ .fi -http://www.entrust.com/ をはじめ、多くの CA が存在します。Netscape や Microsoft の認証サーバー、Entrust の CA 製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。 +http://www.entrust.com/ Ϥᡢ¿ CA ¸ߤޤMicrosoft ǧڥСEntrust CA ʤʤɤ°ȿѤСȼξȯԶɤ򱿱Ĥ뤳ȤǽǤ .LP +\f3keytool\fP ȤȡɽݡȡӥݡȤԤȤǤޤޤʽ̾뤳ȤǤޤ .LP -\f3keytool\fP を使うと、証明書の表示、インポート、およびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 -.LP -.LP -現在、\f3keytool\fP は X.509 証明書を対象にしています。 -.LP -.RE +ߡ\f3keytool\fP X.509 оݤˤƤޤ .TP 2 o -\f3X.509 証明書\fP -.RS 3 -X.509 規格では、証明書に含める情報が定義されており、この情報を証明書に書き込む方法 (データ形式) についても記述されています。証明書のすべてのデータは、ASN.1/DER と呼ばれる 2 つの関連規格を使って符号化されます。\f2Abstract Syntax Notation 1\fP はデータについて記述しています。\f2Definite Encoding Rules\fP は、データの保存および転送の方法について記述しています。 +\f3X.509 \fP .LP -すべての X.509 証明書は、署名のほかに次のデータを含んでいます。 +X.509 ʤǤϡ˴ޤƤꡢξ˽񤭹ˡ (ǡ) ˤĤƤ⵭ҤƤޤΤ٤ƤΥǡϡASN.1/DER ȸƤФ 2 ĤδϢʤȤä沽ޤ\f2Abstract Syntax Notation 1\fP ϥǡˤĤƵҤƤޤ\f2Definite Encoding Rules\fP ϡǡ¸žˡˤĤƵҤƤޤ .LP +٤Ƥ X.509 ϡ̾Τۤ˼ΥǡޤǤޤ .RS 3 .TP 3 -バージョン -証明書に適用される X.509 規格のバージョンを特定します。 証明書に指定できる情報は、バージョンによって異なります。これまでに、3 つのバージョンが定義されています。\f3keytool\fP では、v1、v2、および v3 の証明書のインポートとエクスポートが可能です。keytool が生成するのは、v3 の証明書です。 +С .LP -「X.509 Version 1」は、1988 年から利用されて広く普及しており、もっとも一般的です。 +ŬѤ X.509 ʤΥСꤷޤ˻ǤϡСˤäưۤʤޤޤǤˡ3 ĤΥСƤޤ\f3keytool\fP Ǥϡv1v2 v3 ξΥݡȤȥݡȤǽǤkeytool Τϡv3 ξǤ .LP -「X.509 Version 2」では、Subject や発行者の名前をあとで再利用できるようにするために、Subject と発行者の一意識別子の概念が導入されました。ほとんどの証明書プロファイル文書では、名前を再使用しないことと、証明書で一意な識別子を使わないことが、強く推奨されています。Version 2 の証明書は、広くは使われていません。 +X.509 Version 1פϡ1988 ǯѤƹڤƤꡢäȤŪǤ .LP -「X.509 Version 3」はもっとも新しい (1996 年) 規格で、エクステンションの概念をサポートしています。エクステンションは誰でも定義することができ、証明書に含めることができます。現在使われている一般的なエクステンションとしては、KeyUsage (「署名専用」など、鍵の使用を特定の目的に制限する)、AlternativeNames (DNS 名、電子メールアドレス、IP アドレスなど、ほかのアイデンティティーを公開鍵に関連付けることができる) などがあります。エクステンションには、critical というマークを付けて、そのエクステンションのチェックと使用を義務づけることができます。たとえば、critical とマークされ、KeyCertSign が設定された KeyUsage エクステンションが証明書に含まれている場合、この証明書を SSL 通信中に提示すると、証明書が拒否されます。 これは、証明書のエクステンションによって、関連する非公開鍵が証明書の署名専用として指定されており、SSL では使用できないためです。 +X.509 Version 2פǤϡSubject ȯԼԤ̾򤢤ȤǺѤǤ褦ˤ뤿ˡSubject ȯԼԤΰռ̻ҤγǰƳޤۤȤɤξץեʸǤϡ̾ƻѤʤȤȡǰդʼ̻ҤȤʤȤ侩ƤޤVersion 2 ξϡϻȤƤޤ +.LP +X.509 Version 3פϤäȤ⿷ (1996 ǯ) ʤǡƥ󥷥γǰ򥵥ݡȤƤޤƥ󥷥ïǤ뤳ȤǤ˴ޤ뤳ȤǤޤ߻ȤƤŪʥƥ󥷥ȤƤϡKeyUsage (ֽ̾ѡפʤɡλѤŪ¤)AlternativeNames (DNS ̾Żҥ᡼륢ɥ쥹IP ɥ쥹ʤɡۤΥǥƥƥ˴Ϣդ뤳ȤǤ) ʤɤޤƥ󥷥ˤϡcritical ȤޡդơΥƥ󥷥ΥåȻѤ̳Ť뤳ȤǤޤȤСcritical ȥޡ졢KeyCertSign ꤵ줿 KeyUsage ƥ󥷥󤬾˴ޤޤƤ硢ξ SSL ̿󼨤ȡ񤬵ݤޤϡΥƥ󥷥ˤäơϢν̾ѤȤƻꤵƤꡢSSL ǤϻѤǤʤǤ .TP 3 -シリアル番号 -証明書を作成したエンティティーは、そのエンティティーが発行するほかの証明書と区別するために、証明書にシリアル番号を割り当てます。この情報は、さまざまな方法で使われます。 たとえば、証明書が取り消されると、シリアル番号が証明書の取り消しリスト (CRL) に格納されます。 +ꥢֹ +.LP +ƥƥϡΥƥƥȯԤۤξȶ̤뤿ˡ˥ꥢֹƤޤξϡޤޤˡǻȤޤȤС񤬼äȡꥢֹ椬μäꥹ (CRL) ˳Ǽޤ .TP 3 -署名アルゴリズム識別子 -証明書に署名を付けるときに CA が使ったアルゴリズムを特定します。 +̾르ꥺ༱̻ +.LP +˽̾դȤ CA Ȥä르ꥺꤷޤ .TP 3 -発行者名 -証明書に署名を付けたエンティティーの X.500 識別名です。エンティティーは、通常は CA です。この証明書を使うことは、証明書に署名を付けたエンティティーを信頼することを意味します。「ルート」つまり「トップレベル」の CA の証明書など、場合によっては発行者が自身の証明書に署名を付けることがある点に注意してください。 +ȯԼ̾ +.LP +˽̾դƥƥ X.500 ̾Ǥƥƥϡ̾ CA ǤξȤȤϡ˽̾դƥƥꤹ뤳Ȥ̣ޤ֥롼ȡפĤޤ֥ȥåץ٥פ CA ξʤɡˤäƤȯԼԤȤξ˽̾դ뤳ȤդƤ .TP 3 -有効期間 -各証明書は、限られた期間だけ有効になります。この期間は開始の日時と終了の日時によって指定され、数秒の短い期間から 100 年という長期にわたることもあります。選択される有効期間は、証明書への署名に使われる非公開鍵の強度や証明書に支払う金額など、さまざまな要因で異なります。有効期間は、使用する非公開鍵が損なわれない場合に、エンティティーが公開鍵を信頼できると期待される期間です。 +ͭ +.LP +ƾϡ¤줿֤ͭˤʤޤδ֤ϳϤȽλˤäƻꤵ졢äû֤ 100 ǯȤĹˤ錄뤳Ȥ⤢ޤ򤵤֤ͭϡؤν̾˻Ȥζ٤˻ʧۤʤɡޤޤװǰۤʤޤ֤ͭϡѤ»ʤʤˡƥƥǤȴԤ֤Ǥ .TP 3 -Subject 名 -証明書で公開鍵が識別されているエンティティーの名前です。この名前は X.500 標準を使うので、インターネット全体で一意なものと想定されます。これは、エンティティーの X.500 識別名 (DN) です。 次に例を示します。 +Subject ̾ +.LP +Ǹ̤Ƥ륨ƥƥ̾Ǥ̾ X.500 ɸȤΤǡ󥿡ͥåΤǰդʤΤꤵޤϡƥƥ X.500 ̾ (DN) Ǥ򼨤ޤ .nf \f3 .fl - CN=Java Duke, OU=Java Software Division, O=Sun Microsystems Inc, C=US + CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US .fl \fP .fi -これらはそれぞれ主体の通称、組織単位、組織、国を表します。 +.LP +Ϥ줾Τ̾Ρȿñ̡ȿɽޤ .TP 3 -Subject の公開鍵情報 -名前を付けられたエンティティーの公開鍵とアルゴリズム識別子です。 アルゴリズム識別子では、公開鍵に対して使われている公開鍵暗号化システムおよび関連する鍵パラメータが指定されています。 -.RE - +Subject θ .LP +̾դ줿ƥƥθȥ르ꥺ༱̻ҤǤ르ꥺ༱̻ҤǤϡФƻȤƤŹ沽ƥपӴϢ븰ѥ᡼ꤵƤޤ .RE .TP 2 o -\f3証明書チェーン\fP -.RS 3 +\f3\fP .LP -\f3keytool\fP では、非公開鍵および関連する証明書「チェーン」を含むキーストアの「鍵」エントリを作成し、管理することができます。このようなエントリでは、非公開鍵に対応する公開鍵は、チェーンの最初の証明書に含まれています。 +\f3keytool\fP ǤϡӴϢ֥פޤ७ȥΡָץȥ뤳ȤǤޤΤ褦ʥȥǤϡбϡκǽξ˴ޤޤƤޤ .LP +ƺ (\-genkeypair ޥɤ򻲾)ּʽ̾פȤ 1 ĤǤޤ󤬳Ϥޤʽ̾ϡȯԼ (̾) (ǧڤƤλ) ƱǤΤȤǤ \f2\-genkeypair\fP ޥɤƤӽФƿΥڥȡϾ˼ʽ̾ǥåפޤ .LP -鍵を初めて作成すると (\-genkeypair コマンドを参照)、「自己署名証明書」という 1 つの要素だけを含むチェーンが開始されます。自己署名証明書は、発行者 (署名者) が主体 (証明書で認証されている公開鍵の持ち主) と同じである証明書のことです。\f2\-genkeypair\fP コマンドを呼び出して新しい公開鍵と非公開鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 +Τȡ̾׵ (CSR) (\-certreq ޥɤ򻲾)CSR ȯԶ (CA) ȡCA αݡȤ (\-importcert ޥɤ򻲾)μʽ̾Ͼˤä֤ޤκǸˤΤϡSubject θǧڤ CA ȯԤ () ǤΤξϡCAפθǧڤǤ .LP +CA θǧڤϡ¿ξ硢ʽ̾ (Ĥޤ CA Ȥθǧڤ) ǤꡢϥκǽξˤʤޤˤäƤϡCA Υ֤Ȥ⤢ޤξ硢κǸξ (CA ˤäƽ̾졢ȥθǧڤ) ѤϤޤ󤬡ΤξϡCSR CA Ȥϡ̤ΡCA ˤäƽ̾졢CSR CA θǧڤˤʤޤˡΤξϡ CA θǧڤˤʤޤ ʲƱͤˡʽ̾줿֥롼ȡ׾ãޤǥ³ޤäơ (ǽξʸ) ƾǤϡμξν̾ԤθǧڤƤ뤳Ȥˤʤޤ .LP -このあと、証明書署名要求 (CSR) が生成されて (\-certreq コマンドを参照)、CSR が証明書発行局 (CA) に送信されると、CA からの応答がインポートされ (\-importcert コマンドを参照)、元の自己署名証明書は証明書チェーンによって置き換えられます。チェーンの最後にあるのは、Subject の公開鍵を認証した CA が発行した証明書 (応答) です。チェーン内のその前の証明書は、「CA」の公開鍵を認証する証明書です。 +¿ CA ϡ򥵥ݡȤȯԺѤߤξ֤ޤäˡ֤ CA ¸ߤʤեåȤʳع¤ξϡηǤΤ褦ʾϡȥˤǤ˳ǼƤ뿮Ǥ󤫤顢Ωɬפޤ .LP +̤α (PKCS#7 Ƥ) Ǥ⡢ȯԺѤ߾˲äΥݡȤޤޤƤޤ\f3keytool\fP ǤϡɤαⰷȤǤޤ .LP -CA の公開鍵を認証する証明書は、多くの場合、自己署名証明書 (つまり CA が自身の公開鍵を認証した証明書) であり、これはチェーンの最初の証明書になります。場合によっては、CA が証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書 (CA によって署名され、鍵エントリの公開鍵を認証する証明書) に変わりはありませんが、チェーン内のその前の証明書は、CSR の送信先の CA とは「別の」CA によって署名され、CSR の送信先の CA の公開鍵を認証する証明書になります。さらに、チェーン内のその前の証明書は、次の CA の鍵を認証する証明書になります。 以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の (最初の証明書以後の) 各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 -.LP -.LP -多くの CA は、チェーンをサポートせずに発行済みの証明書だけを返します。 特に、中間の CA が存在しないフラットな階層構造の場合は、その傾向が顕著です。このような場合は、キーストアにすでに格納されている信頼できる証明書情報から、証明書チェーンを確立する必要があります。 -.LP -.LP -別の応答形式 (PKCS#7 で定義されている形式) でも、発行済み証明書に加え、証明書チェーンのサポートが含まれています。\f3keytool\fP では、どちらの応答形式も扱うことができます。 -.LP -.LP -トップレベル (ルート) CA の証明書は、自己署名証明書です。ただし、ルートの公開鍵に対する信頼は、ルートの証明書自体から導き出されるものではなく (たとえば、VeriSign ルート CA のような有名な識別名を使った自己署名証明書を作成すること自体は誰でも可能)、新聞などのほかの情報源に由来するものです。ルート CA の公開鍵は広く知られています。ルート CA の公開鍵を証明書に格納する理由は、証明書という形式にすることで多くのツールから利用できるようになるからにすぎません。 つまり、証明書は、ルート CA の公開鍵を運ぶ「媒体」として利用されるだけです。ルート CA の証明書をキーストアに追加するときは、その前に証明書の内容を表示し (\f2\-printcert\fP オプションを使用)、表示されたフィンガープリントと、新聞やルート CA の Web ページなどから入手した既知のフィンガープリントとを比較する必要があります。 -.LP -.RE +ȥåץ٥ (롼) CA ξϡʽ̾Ǥ롼ȤθФ뿮ϡ롼ȤξΤƳФΤǤϤʤ (ȤСVeriSign 롼 CA Τ褦ͭ̾ʼ̾Ȥäʽ̾뤳ȼΤïǤǽ)ʹʤɤΤۤξ󸻤ͳ褹ΤǤ롼 CA θϹΤƤޤ롼 CA θ˳ǼͳϡȤˤ뤳Ȥ¿Υġ뤫ѤǤ褦ˤʤ뤫ˤޤ Ĥޤꡢϡ롼 CA θ򱿤֡ΡפȤѤǤ롼 CA ξ򥭡ȥɲäȤϡ˾Ƥɽ ( \f2\-printcert\fP ץ)ɽ줿ե󥬡ץȤȡʹ롼 CA Web ڡʤɤꤷΤΥե󥬡ץȤȤӤɬפޤ .TP 2 o -\f3cacerts 証明書ファイル\fP -.RS 3 +\f3cacerts ե\fP .LP -\f3cacerts\fP 証明書ファイルは、セキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位ディレクトリ) です。 +\f3cacerts\fP Ȥ̾ξեϡƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ֤Ƥޤ\f2java.home\fP ϡ¹ԴĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment κǾ̥ǥ쥯ȥ) Ǥ .LP +cacerts եϡCA ξޤࡢƥΤΥȥǤƥԤϡȥפ jks ꤹ뤳Ȥǡ\f3keytool\fP ȤäƤΥեιȴԤȤǤޤcacerts ȥեϡ롼 CA ΥǥեȥåȤޤ֤ǽв٤ƤޤξɽˤϡΥޥɤѤޤ +.nf +\f3 +.fl +keytool \-list \-keystore \fP\f4java.home\fP\f3/lib/security/cacerts +.fl +\fP +.fi .LP -cacerts ファイルは、CA の証明書を含む、システム全体のキーストアです。システム管理者は、キーストアタイプに jks を指定することで、\f3keytool\fP を使ってこのファイルの構成と管理を行うことができます。cacerts キーストアファイルは、次の別名および X.500 所有者識別名を持ついくつかのルート CA 証明書を含んだ状態で出荷されています。 +cacerts ȥեνѥɤϡchangeit ǤƥԤϡSDK Υ󥹥ȡ塢ΥեΥѥɤȥǥեȥѹɬפޤ .LP -.RS 3 -.TP 2 -* -\f3Alias\fP:thawtepersonalfreemailca -.br -\f3Owner DN\fP:EmailAddress=personal\-freemail@thawte.com, -.br -CN=Thawte Personal Freemail CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepersonalbasicca -.br -\f3Owner DN\fP:EmailAddress=personal\-basic@thawte.com, -.br -CN=Thawte Personal Basic CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepersonalpremiumca -.br -\f3Owner DN\fP:EmailAddress=personal\-premium@thawte.com, -.br -CN=Thawte Personal Premium CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawteserverca -.br -\f3Owner DN\fP:EmailAddress=server\-certs@thawte.com, -.br -CN=Thawte Server CA, OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepremiumserverca -.br -\f3Owner DN\fP:EmailAddress=premium\-server@thawte.com, -.br -CN=Thawte Premium Server CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:verisignclass1ca -.br -\f3Owner DN\fP:OU=Class 1 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2ca -.br -\f3Owner DN\fP:OU=Class 2 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3ca -.br -\f3Owner DN\fP:OU=Class 3 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignserverca -.br -\f3Owner DN\fP:OU=Secure Server Certification Authority, -.br -O="RSA Data Security, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass1g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 1 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass1g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 1 Public Primary Certification Authority \- G3, OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 2 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 2 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 3 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 3 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:baltimorecodesigningca -.br -\f3Owner DN\fP:CN=Baltimore CyberTrust Code Signing Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP:gtecybertrustglobalca -.br -\f3Owner DN\fP:CN=GTE CyberTrust Global Root, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP:baltimorecybertrustca -.br -\f3Owner DN\fP:CN=Baltimore CyberTrust Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP:gtecybertrust5ca -.br -\f3Owner DN\fP:CN=GTE CyberTrust Root 5, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP:entrustclientca -.br -\f3Owner DN\fP:CN=Entrust.net Client Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/Client_CA_Info/CPS incorp. by ref. limits liab., -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP:entrustglobalclientca -.br -\f3Owner DN\fP:CN=Entrust.net Client Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/GCCA_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:entrust2048ca -.br -\f3Owner DN\fP:CN=Entrust.net Certification Authority (2048), -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:entrustsslca -.br -\f3Owner DN\fP:CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP:entrustgsslca -.br -\f3Owner DN\fP:CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/SSL_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:godaddyclass2ca -.br -\f3Owner DN\fP:OU=Go Daddy Class 2 Certification Authority, -.br -O="The Go Daddy Group, Inc.", C=US -.TP 2 -* -\f3Alias\fP:starfieldclass2ca -.br -\f3Owner DN\fP:OU=Starfield Class 2 Certification Authority, -.br -O="Starfield Technologies, Inc.", C=US -.TP 2 -* -\f3Alias\fP:valicertclass2ca -.br -\f3Owner DN\fP:EMAILADDRESS=info@valicert.com, -.br -CN=http://www.valicert.com/, -.br -OU=ValiCert Class 2 Policy Validation Authority, -.br -O="ValiCert, Inc.", L=ValiCert Validation Network -.TP 2 -* -\f3Alias\fP:geotrustglobalca -.br -\f3Owner DN\fP:CN=GeoTrust Global CA, -.br -O=GeoTrust Inc., C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureca -.br -\f3Owner DN\fP:OU=Equifax Secure Certificate Authority, -.br -O=Equifax, C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureebusinessca1 -.br -\f3Owner DN\fP:CN=Equifax Secure eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureebusinessca2 -.br -\f3Owner DN\fP:OU=Equifax Secure eBusiness CA\-2, -.br -O=Equifax Secure, C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureglobalebusinessca1 -.br -\f3Owner DN\fP:CN=Equifax Secure Global eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP:soneraclass1ca -.br -\f3Owner DN\fP:CN=Sonera Class1 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP:soneraclass2ca -.br -\f3Owner DN\fP:CN=Sonera Class2 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP:comodoaaaca -.br -\f3Owner DN\fP:CN=AAA Certificate Services, -.br -O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB -.TP 2 -* -\f3Alias\fP:addtrustclass1ca -.br -\f3Owner DN\fP:CN=AddTrust Class 1 CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:addtrustexternalca -.br -\f3Owner DN\fP:CN=AddTrust External CA Root, -.br -OU=AddTrust External TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:addtrustqualifiedca -.br -\f3Owner DN\fP:CN=AddTrust Qualified CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:utnuserfirsthardwareca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Hardware, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utnuserfirstclientauthemailca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Client Authentication and Email, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utndatacorpsgcca -.br -\f3Owner DN\fP:CN=UTN \- DATACorp SGC, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utnuserfirstobjectca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Object, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.RE - -.LP -.LP -cacerts キーストアファイルの初期パスワードは、changeit です。システム管理者は、SDK のインストール後、このファイルのパスワードとデフォルトアクセス権を変更する必要があります。 -.LP -.RS 3 - -.LP - -.LP -\f3重要:\fP\f4cacerts\fP\f3 ファイルを確認してください。\fP -.br - -.LP -\f2cacerts\fP ファイル内の CA は、署名および他のエンティティーへの証明書発行のためのエンティティーとして信頼されるため、\f2cacerts\fP ファイルの管理は慎重に行う必要があります。\f2cacerts\fP ファイルには、信頼する CA の証明書だけが含まれていなければなりません。ユーザーは、自身の責任において、\f2cacerts\fP ファイルにバンドルされている信頼できるルート CA 証明書を検証し、信頼性に関する独自の決定を行います。信頼できない CA 証明書を \f2cacerts\fP ファイルから削除するには、\f2keytool\fP コマンドの削除オプションを使用します。\f2cacerts\fP ファイルは JRE のインストールディレクトリにあります。このファイルを編集するアクセス権がない場合は、システム管理者に連絡してください。 -.br - -.LP -.RE - -.LP -.RE +\f3: \fP\f4cacerts\fP\f3 եǧƤ\fP: \f2cacerts\fP ե CA ϡ̾¾ΥƥƥؤξȯԤΤΥƥƥȤƿꤵ뤿ᡢ \f2cacerts\fP եδϿŤ˹Ԥɬפޤ \f2cacerts\fP եˤϡꤹ CA ξޤޤƤʤФʤޤ󡣥桼ϡȤǤˤơ \f2cacerts\fP ե˥Хɥ뤵Ƥ뿮Ǥ롼 CA 򸡾ڤ˴ؤȼηԤޤǤʤ CA \f2cacerts\fP ե뤫ˤϡ \f2keytool\fP ޥɤκץѤޤ \f2cacerts\fP ե JRE Υ󥹥ȡǥ쥯ȥˤޤΥեԽ륢ʤϡƥԤϢƤ .TP 2 o -\f3インターネット RFC 1421 証明書符号化規格\fP -.RS 3 +\f3󥿡ͥå RFC 1421 沽\fP .LP -多くの場合、証明書は、バイナリ符号化ではなく、インターネット RFC 1421 規格で定義されている出力可能符号化方式を使って格納されます。「Base 64 符号化」とも呼ばれるこの証明書形式では、電子メールやその他の機構を通じて、ほかのアプリケーションに証明書を容易にエクスポートできます。 +¿ξ硢ϡХʥ沽ǤϤʤ󥿡ͥå RFC 1421 ʤƤϲǽ沽ȤäƳǼޤBase 64 沽פȤƤФ뤳ξǤϡŻҥ᡼䤽¾ε̤ơۤΥץꥱ˾ưפ˥ݡȤǤޤ .LP +\f2\-importcert\fP \f2\-printcert\fP ޥɤǤϡηξȥХʥ沽ξɤ߹ळȤǤޤ .LP -\f2\-importcert\fP コマンドと \f2\-printcert\fP コマンドでは、この形式の証明書とバイナリ符号化の証明書を読み込むことができます。 +\f2\-exportcert\fP ޥɤǤϡǥեȤǥХʥ沽ξ񤬽Ϥޤ \f2\-rfc\fP ץꤷϡϲǽ沽ξ񤬽Ϥޤ .LP +\f2\-list\fP ޥɤǤϡǥեȤǾ SHA1 ե󥬡ץȤϤޤ \f2\-v\fP ץꤹȡʹ֤ɤळȤΤǤǾ񤬽Ϥޤ \f2\-rfc\fP ץꤹȡϲǽ沽Ǿ񤬽Ϥޤ .LP -\f2\-exportcert\fP コマンドでは、デフォルトでバイナリ符号化の証明書が出力されます。 ただし、\f2\-rfc\fP オプションを指定した場合は、出力可能符号化方式の証明書が出力されます。 -.LP -.LP -\f2\-list\fP コマンドでは、デフォルトで証明書の MD5 フィンガープリントが出力されます。\f2\-v\fP オプションを指定すると、人間が読むことのできる形式で証明書が出力されます。 一方、\f2\-rfc\fP オプションを指定すると、出力可能符号化方式で証明書が出力されます。 -.LP -.LP -出力可能符号化方式で符号化された証明書は、次の行で始まります。 -.LP +ϲǽ沽沽줿ϡιԤǻϤޤޤ .nf \f3 .fl @@ -1372,11 +1574,8 @@ o .fl \fP .fi - -.LP -.LP -最後は、次の行で終わります。 .LP +ǸϡιԤǽޤ .nf \f3 .fl @@ -1385,40 +1584,38 @@ o \fP .fi .RE -.RE .LP .SS -X.500 識別名 +X.500 ̾ +.LP +.LP +X.500 ̾ϡƥƥꤹ뤿˻ȤޤȤСX.509 \f2subject\fP եɤ \f2issuer\fP (̾) եɤǻꤵ̾ϡX.500 ̾Ǥ\f3keytool\fP ϡΥ֥ѡȤ򥵥ݡȤƤޤ .LP .RS 3 - -.LP -X.500 識別名は、エンティティーを特定するために使われます。 たとえば、X.509 証明書の \f2subject\fP フィールドと \f2issuer\fP (署名者) フィールドで指定される名前は、X.500 識別名です。 \f3keytool\fP は、次のサブパートをサポートしています。 -.RS 3 .TP 2 o -\f2commonName\fP \- 人の通称。 「Susan Jones」など +\f2commonName\fP \- ͤ̾Ρ Susan Jonesפʤ .TP 2 o -\f2organizationUnit\fP \- 小さな組織 (部、課など) の名称。 「仕入部」など +\f2organizationUnit\fP \- ȿ (ݤʤ) ̾Ρ ֻפʤ .TP 2 o -\f2organizationName\fP \- 大きな組織の名称。 「ABCSystems, Inc.」など +\f2organizationName\fP \- 礭ȿ̾Ρ ABCSystems, Inc.פʤ .TP 2 o -\f2localityName\fP \- 地域 (都市) 名。 「Palo Alto」など +\f2localityName\fP \- ϰ (Ի) ̾ Palo Altoפʤ .TP 2 o -\f2stateName\fP \- 州名または地方名。 「California」など +\f2stateName\fP \- ̾ޤ̾ Californiaפʤ .TP 2 o -\f2country\fP \- 2 文字の国番号。 「CH」など +\f2country\fP \- 2 ʸιֹ档 CHפʤ .RE .LP .LP -\f2\-genkeypair\fP コマンド の \f2\-dname\fP オプションの値として識別名文字列を指定する場合は、次の形式で指定する必要があります。 +\-genkeypair ޥɤ \f2\-dname\fP ץͤȤƼ̾ʸꤹϡ ηǻꤹɬפޤ .LP .nf \f3 @@ -1430,12 +1627,12 @@ CN=\fP\f4cName\fP\f3, OU=\fP\f4orgUnit\fP\f3, O=\fP\f4org\fP\f3, L=\fP\f4city\fP .LP .LP -イタリック体の項目は、実際に指定する値を表します。 短縮形のキーワードの意味は、次のとおりです。 +åΤιܤϡºݤ˻ꤹͤɽޤ û̷Υɤΰ̣ϡΤȤǤ .LP .nf \f3 .fl - CN=commonName + CN=commonName .fl OU=organizationUnit .fl @@ -1452,22 +1649,24 @@ CN=\fP\f4cName\fP\f3, OU=\fP\f4orgUnit\fP\f3, O=\fP\f4org\fP\f3, L=\fP\f4city\fP .LP .LP -次に示すのは、識別名文字列の例です。 +˼Τϡ̾ʸǤ .LP .nf \f3 .fl -CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US +CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US .fl \fP .fi .LP -次は、この文字列を使ったコマンドの例です。 +.LP +ϡʸȤäޥɤǤ +.LP .nf \f3 .fl -keytool \-genkeypair \-dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, +keytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, .fl S=California, C=US" \-alias mark .fl @@ -1476,45 +1675,43 @@ S=California, C=US" \-alias mark .LP .LP -キーワードの短縮形では、大文字と小文字は区別されません。たとえば、CN、cn、および Cn は、どれも同じものとして扱われます。 +ɤû̷ǤϡʸȾʸ϶̤ޤ󡣤ȤСCNcn Cn ϡɤƱΤȤưޤ .LP .LP -一方、キーワードの指定順序には意味があり、各サブコンポーネントは上に示した順序で指定する必要があります。ただし、サブコンポーネントをすべて指定する必要はありません。たとえば、次のように一部のサブコンポーネントだけを指定できます。 +ɤλˤϰ̣ꡢƥ֥ݡͥȤϾ˼ǻꤹɬפޤ֥ݡͥȤ򤹤٤ƻꤹɬפϤޤ󡣤ȤСΤ褦˰Υ֥ݡͥȤǤޤ .LP .nf \f3 .fl -CN=Steve Meier, OU=SunSoft, O=Sun, C=US +CN=Steve Meier, OU=Java, O=Oracle, C=US .fl \fP .fi .LP .LP -識別名文字列の値にコンマが含まれる場合に、コマンド行で文字列を指定するときには、次のようにコンマを文字 \\ でエスケープする必要があります。 +̾ʸͤ˥ޤޤޤˡޥɹԤʸꤹȤˤϡΤ褦˥ޤʸ \\ ǥפɬפޤ .LP .nf \f3 .fl - cn=peter schuster, o=Sun Microsystems\\, Inc., o=sun, c=us + cn=Peter Schuster, ou=Java\\, Product Development, o=Oracle, c=US .fl \fP .fi .LP .LP -識別名文字列をコマンド行で指定する必要はありません。識別名を必要とするコマンドを実行するときに、コマンド行で識別名を指定しなかった場合は、各サブコンポーネントの入力を求められます。この場合は、コンマを文字 \\ でエスケープする必要はありません。 +̾ʸ򥳥ޥɹԤǻꤹɬפϤޤ󡣼̾ɬפȤ륳ޥɤ¹ԤȤˡޥɹԤǼ̾ꤷʤäϡƥ֥ݡͥȤϤޤξϡޤʸ \\ ǥפɬפϤޤ .LP -.RE .SS -信頼できる証明書のインポートに関する注意事項 +ǤΥݡȤ˴ؤջ .LP -.RS 3 - .LP -重要:信頼できる証明書として証明書をインポートする前に、証明書の内容を慎重に調べてください。 +: ǤȤƾ򥤥ݡȤˡƤ򿵽ŤĴ٤Ƥ .LP -まず、証明書の内容を表示し (\f2\-printcert\fP コマンドを使用するか、または \f2\-noprompt\fP オプションを指定しないで \f2\-import\fP コマンドを使用)、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。たとえば、あるユーザーから証明書が送られてきて、この証明書を \f2/tmp/cert\fP という名前でファイルに格納しているとします。この場合は、信頼できる証明書のリストにこの証明書を追加する前に、\f2\-printcert\fP コマンドを実行してフィンガープリントを表示できます。 たとえば、次のようにします。 +.LP +ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ .LP .nf \f3 @@ -1534,91 +1731,94 @@ CN=Steve Meier, OU=SunSoft, O=Sun, C=US MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F .fl SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE +.fl + SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90: +.fl + 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4 .fl \fP .fi .LP -次に、証明書を送信した人物に連絡し、この人物が提示したフィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中でほかの何者か (攻撃者など) による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのもの (攻撃的意図を持つクラスファイルを含んだ JAR ファイルなど) を信頼することになります。 .LP -注:証明書をインポートする前に必ず \f2\-printcert\fP コマンドを実行しなければならないわけではありません。 キーストア内の信頼できる証明書のリストに証明書を追加する前に \f2\-importcert\fP コマンドを実行すると、証明書の情報が表示され、確認を求めるメッセージが表示されます。インポート操作は、この時点で中止できます。ただし、確認メッセージが表示されるのは、\f2\-importcert\fP コマンドを \f2\-noprompt\fP オプションを指定せずに実行した場合だけです。\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 +ˡʪϢοʪ󼨤ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤ (Ūտޤĥ饹եޤ JAR եʤ) ꤹ뤳Ȥˤʤޤ +.LP +.LP +: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ .LP -.RE .SS -パスワードに関する注意事項 -.LP -.RS 3 - +ѥɤ˴ؤջ .LP .LP -キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。 +ȥФԤۤȤɤΥޥɤǤϡȥΥѥɤɬפǤޤΥޥɤǤϡ/̩Υѥɤɬפˤʤ뤳Ȥޤ .LP .LP -パスワードはコマンド行で指定できます (ストアのパスワードには \f2\-storepass\fP オプション、非公開鍵のパスワードには \f2\-keypass\fP オプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。 +ѥɤϥޥɹԤǻǤޤ (ȥΥѥɤˤ \f2\-storepass\fP ץΥѥɤˤ \f2\-keypass\fP ץ)ƥȤŪȤ硢ޤϰǤ뤳Ȥ狼äƤ륷ƥǼ¹ԤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ .LP .LP -必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +ɬפʥѥɤΥץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ .LP -.RE -.SH "関連項目" +.SS +ν˴ؤջ .LP - .LP -.RS 3 -.TP 2 -o -.LP -jar(1) ツールのドキュメント -.TP 2 -o -.LP -jarsigner(1) ツールのドキュメント -.TP 2 -o -.LP -\f3keytool\fP の使用例については、 +󥿡ͥåɸ .na -\f4「Java Tutorial」\fP @ +\f2RFC 5280\fP @ .fi -http://java.sun.com/docs/books/tutorialの -.na -\f4「Security」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/security/index.htmlを参照 -.RE - +http://tools.ietf.org/rfc/rfc5280.txt ǤϡX.509 񤬽򤹤ץեƤޤΥץեˤϡΥեɤ䥨ƥ󥷥ͭͤͤȤ߹碌ޤޤƤޤ\f3keytool\fP ǤϡΤ٤Ƥε§ŬѤƤ櫓ǤϤʤΤǡɸ˽򤷤ʤǽꡢΤ褦ʾ JRE ۤΥץꥱǵݤ뤳Ȥޤ桼ϡ \f2\-dname\fP \f2\-ext\fP ʤɤŬʥץꤹ褦ˤƤ .LP -.SH "変更点" -.LP - -.LP -.LP -Java SE 6 で keytool のコマンドインタフェースが変更されました。 -.LP -.LP -\f3keytool\fP は、ユーザーがパスワードを入力する際にその入力内容を表示しなくなりました。ユーザーはパスワード入力時にその入力内容を確認できなくなったため、初期キーストアパスワードを設定したり鍵パスワードを変更したりするなど、パスワードの設定や変更を行うたびにパスワードの再入力を求められます。 -.LP -.LP -変更されたコマンドの中には、名前が変更されただけのものもあれば、廃止されてこのドキュメントに記載されなくなったものもあります。以前のすべてのコマンド (名前が変更されたものと廃止されたものの両方) は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。keytool のコマンドインタフェースに加えられたすべての変更点の概要を、次に示します。 -.LP -.LP -名前が変更されたコマンド: +.SH "Ϣ" .LP .RS 3 .TP 2 o -\f2\-export\fP の名前が \f2\-exportcert\fP に変更 +jar(1) ġΥɥ .TP 2 o -\f2\-genkey\fP の名前が \f2\-genkeypair\fP に変更 +jarsigner(1) ġΥɥ .TP 2 o -\f2\-import\fP の名前が \f2\-importcert\fP に変更 +.na +\f4keytool\fP\f2 λˤĤƤϡ\fP @ +.fi +http://download.oracle.com/javase/tutorial/security/index.html +.na +\f2Java Tutorial\fP\f4\fP @ +.fi +http://download.oracle.com/javase/tutorial/Security\f3򻲾\fP +.RE + +.LP +.SH "ѹ" +.LP +.LP +Java SE 6 keytool Υޥɥ󥿥եѹޤ +.LP +.LP +\f3keytool\fP ϡ桼ѥɤϤݤˤƤɽʤʤޤ桼ϥѥϻˤƤǧǤʤʤäᡢȥѥɤꤷ기ѥɤѹꤹʤɡѥɤѹԤӤ˥ѥɤκϤޤ +.LP +.LP +ѹ줿ޥɤˤϡ̾ѹ줿ΤΤ⤢СѻߤƤΥɥȤ˵ܤʤʤäΤ⤢ޤΤ٤ƤΥޥ (̾ѹ줿Τѻߤ줿Τξ) ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤkeytool Υޥɥ󥿥ե˲ä줿٤Ƥѹγפ򡢼˼ޤ +.LP +.LP +̾ѹ줿ޥ: +.LP +.RS 3 +.TP 2 +o +\f2\-export\fP ̾ \f2\-exportcert ѹ\fP +.TP 2 +o +\f2\-genkey\fP ̾ \f2\-genkeypair ѹ\fP +.TP 2 +o +\f2\-import\fP ̾ \f2\-importcert ѹ\fP .RE .LP .LP -廃止されてドキュメントに記載されなくなったコマンド: +ѻߤƥɥȤ˵ܤʤʤäޥ: .LP .RS 3 .TP 2 @@ -1626,19 +1826,19 @@ o .na \f2\-keyclone\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#keycloneCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#keycloneCmd .TP 2 o .na \f2\-identitydb\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#identitydbCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#identitydbCmd .TP 2 o .na \f2\-selfcert\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#selfcertCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#selfcertCmd .RE .LP diff --git a/jdk/src/linux/doc/man/ja/native2ascii.1 b/jdk/src/linux/doc/man/ja/native2ascii.1 index d7f1eedd9d4..6e775392b92 100644 --- a/jdk/src/linux/doc/man/ja/native2ascii.1 +++ b/jdk/src/linux/doc/man/ja/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2010, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "02 Jun 2010" +.TH native2ascii 1 "14 Apr 2011" .LP -.SH "名前" -native2ascii \- ネイティブ \- ASCII コンバータ -.LP -.RS 3 - +.SH "̾" +native2ascii \- ͥƥ \- ASCII С .LP .LP -ネイティブコード (Latin 1 および Unicode 以外) のファイルを Unicode コードに変換します。 +ݡȤʸ󥳡ǥ󥰤ʸΥե ASCII ޤ Unicode פ뤤ϤξΥեѴޤεդѴԤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -44,36 +38,34 @@ native2ascii \- ネイティブ \- ASCII コンバータ .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -Java コンパイラおよびその他の Java ツールは、Latin\-1 または Unicode コード (\\udddd 表記) 文字を含んだファイルだけを処理することができます。 \f2native2ascii\fP は、これら以外の文字コードのファイルを Latin\-1 または Unicode コードのファイルに変換します。 +\f2native2ascii\fP Java ¹ԴĶǥݡȤʸ󥳡ǥ󥰤˥󥳡ɤ줿եASCII ǥ󥳡ɤ줿եѴޤASCII ʸåȤΰǤʤ٤Ƥʸ Unicode (\\uxxxxפɽ) ѤޤΥץϡISO\-8859\-1 ʸåȤ˴ޤޤʤʸޤޤƤץѥƥեɬפǤΥġϡεդѴ¹Ԥ뤳ȤǤޤ .LP .LP -\f2outputfile\fP を省略した場合、標準出力に出力されます。さらに、\f2inputfile\fP を省略した場合、標準入力から入力されます。 +\f2outputfile\fP ά硢ɸϤ˽Ϥޤˡ \f2inputfile\fP ά硢ɸϤϤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-reverse -逆の処理を行います。つまり、Latin\-1 または Unicode コードのファイルをネイティブコードに変換します。 +դνԤޤĤޤꡢISO\-8859\-1 Unicode פȤäƥ󥳡ɤ줿եJava ¹ԴĶǥݡȤʸ󥳡ǥ󥰤ΥեѴޤ .br .br .TP 3 \-encoding encoding_name -変換処理で使用するコードの名前を指定します。デフォルトのコードは、システムプロパティーの \f2file.encoding\fP から取得されます。\f2encoding_name\fP 文字列は、 +ѴǻѤʸ󥳡ǥ󥰤̾ꤷޤΥץ¸ߤʤϡǥեȤʸ󥳡ǥ ( \f2java.nio.charset.Charset.defaultCharset\fP ᥽åɤ) Ѥޤ \f2encoding_name\fP ʸϡ .na -\f4「サポートされているエンコーディング」\fP @ +\f4֥ݡȤƤʸ󥨥󥳡ǥ󥰡\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.htmlドキュメントに示されている、サポートされるエンコーディングの表の最初の列から取得される必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.htmlɥȤ˼Ƥ롢Java ¹ԴĶǥݡȤʸ󥳡ǥ󥰤̾ˤɬפޤ +.br +.br .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP diff --git a/jdk/src/linux/doc/man/ja/orbd.1 b/jdk/src/linux/doc/man/ja/orbd.1 index 79406bece96..b6485a6e714 100644 --- a/jdk/src/linux/doc/man/ja/orbd.1 +++ b/jdk/src/linux/doc/man/ja/orbd.1 @@ -19,29 +19,23 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "02 Jun 2010" +.TH orbd 1 "14 Apr 2011" .LP -.SH "名前" +.SH "̾" orbd \- The Object Request Broker Daemon .LP -.RS 3 - +.LP +\f3orbd\fP ϡ饤Ȥ CORBA ĶΥСˤ³֥ȤƩŪ˸ƸƤӽФ˻Ѥޤ .LP .LP -\f3orbd\fP は、クライアントから CORBA 環境のサーバーにある持続オブジェクトを透過的に検索して呼び出すために使用します。 -.LP -.LP -\f3関連項目:\fP +\f3Ϣ:\fP .na -\f2ネームサービス\fP @ +\f2͡ॵӥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -52,42 +46,40 @@ orbd <\fP\f3options\fP\f3> .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3orbd\fP ツールに含まれるサーバーマネージャーを使うと、クライアントは CORBA 環境でサーバー上にある持続オブジェクトを透過的に検索して呼び出すことができます。持続サーバーは、ネームサービスに持続オブジェクト参照を発行する際、サーバーのポート番号の代わりに OBRD のポート番号をオブジェクト参照に含めます。持続オブジェクト参照のオブジェクト参照に ORBD ポート番号を含めることには、次のような利点があります。 +\f3orbd\fP ġ˴ޤޤ륵Сޥ͡㡼Ȥȡ饤Ȥ CORBA ĶǥСˤ³֥ȤƩŪ˸ƸƤӽФȤǤޤ³Сϡ͡ॵӥ˻³֥ȻȤȯԤݡСΥݡֹ OBRD Υݡֹ򥪥֥ȻȤ˴ޤޤ³֥ȻȤΥ֥ȻȤ ORBD ݡֹޤ뤳ȤˤϡΤ褦ޤ .LP .RS 3 .TP 2 o -ネームサービスにあるオブジェクト参照が、サーバーのライフタイムと無関係になる。オブジェクト参照は、始めてインストールされたときはネームサービスのサーバーによりネームサービスに発行されますが、その後は、サーバーの開始またはシャットダウンの回数にかかわらず、ORBD がいつでも呼び出したクライアントに正しいオブジェクト参照を返します。 +͡ॵӥˤ륪֥ȻȤСΥ饤ե̵طˤʤ롣֥ȻȤϡϤƥ󥹥ȡ뤵줿Ȥϥ͡ॵӥΥСˤ͡ॵӥȯԤޤθϡСγϤޤϥåȥβˤ餺ORBD ĤǤƤӽФ饤Ȥ֥ȻȤ֤ޤ .TP 2 o -クライアントは一度だけネーミングサービスのオブジェクト参照をルックアップする必要があるが、その後はサーバーのライフタイムによる変更とは無関係にこの参照を利用することができる +饤Ȥϰ٤͡ߥ󥰥ӥΥ֥ȻȤååפɬפ뤬θϥСΥ饤եˤѹȤ̵طˤλȤѤ뤳ȤǤ .RE .LP .LP -ORBD のサーバーマネージャーにアクセスするには、servertool(1) を使用してサーバーを起動する必要があります。 servertool は、アプリケーションプログラマが、持続サーバーの登録、登録解除、起動、およびシャットダウンを行うためのコマンド行インタフェースです。サーバーマネージャーの詳細については、このドキュメントの\f2「サーバーマネージャー」\fPを参照してください。 +ORBD ΥСޥ͡㡼˥ˤϡservertool(1) ѤƥСưɬפޤservertool ϡץꥱץޤ³СϿϿưӥåȥԤΥޥɹԥ󥿥եǤСޥ͡㡼ξܺ٤ˤĤƤϡΥɥȤΡ֥Сޥ͡㡼פ򻲾ȤƤ .LP .LP -\f2orbd\fP を起動すると、ネームサービスも起動されます。ネームサービスについては、 +\f2orbd\fP ưȡ͡ॵӥⵯưޤ͡ॵӥˤĤƤϡ .na -\f2「ネームサービス」\fP @ +\f2֥͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html򻲾ȤƤ .LP -.SH "オプション" +.SH "ץ" .LP .SS -必須オプション +ɬܥץ .LP .RS 3 .TP 3 \-ORBInitialPort nameserverport -ネームサーバーを起動するポートの番号を指定します。\f2orbd\fP は、起動されると、このポート上で着信要求を待機します。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 (必須) +͡ॵСưݡȤֹꤷޤ\f2orbd\fP ϡưȡΥݡȾ忮׵ԵޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ(ɬ) .RE .LP @@ -95,75 +87,75 @@ http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照 .LP .SS -その他のオプション +¾Υץ .LP .RS 3 .TP 3 \-port port -ORBD を起動するポートを指定します。 ORBD は、このポートで、持続オブジェクトに対する要求を受け取ります。このポートのデフォルト値は 1049 です。 このポート番号は持続 Interoperable Object References (IOR) のポートフィールドに追加されます。(省略可) +ORBD ưݡȤꤷޤORBD ϡΥݡȤǡ³֥ȤФ׵ޤΥݡȤΥǥեͤ 1049 ǤΥݡֹ椬³ Interoperable Object References (IOR). Υݡȥեɤɲäޤ(ά) .RE .LP .RS 3 .TP 3 \-defaultdb directory -ORBD 持続格納ディレクトリ \f2orb.db\fP が作成されるベースディレクトリを指定します。このオプションが指定されていない場合、デフォルト値は「./orb.db」となります。(省略可) +ORBD ³Ǽǥ쥯ȥ \f2orb.db\fP ١ǥ쥯ȥꤷޤΥץ󤬻ꤵƤʤ硢ǥեͤϡ./orb.dbפȤʤޤ(ά) .RE .LP .RS 3 .TP 3 \-serverPollingTime milliseconds -\f2servertool\fP を使用して登録された持続サーバーが正常に動作していることを ORBD が確認する回数を指定します。デフォルト値は 1,000 ミリ秒です。 「ミリ秒」の指定値は有効な整数値である必要があります。(省略可) +\f2servertool\fP ѤϿ줿³СưƤ뤳Ȥ ORBD ǧꤷޤǥեͤ 1,000 ߥäǤ\f2milliseconds\fP ˻ꤹͤϡͭǤʤФʤޤ(ά) .RE .LP .RS 3 .TP 3 \-serverStartupDelay milliseconds -\f2servertool\fP を使用して登録された持続サーバーを再起動してから、位置転送の例外を送信するまでの ORBD の待機時間を指定します。デフォルト値は 1,000 ミリ秒です。 「ミリ秒」の指定値は有効な整数値である必要があります。(省略可) +\f2servertool\fP ѤϿ줿³СƵưƤ顢ž㳰ޤǤ ORBD Ե֤ꤷޤǥեͤ 1,000 ߥäǤ\f2milliseconds\fP ˻ꤹͤϡͭǤʤФʤޤ(ά) .RE .LP .RS 3 .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .TP 3 .RE .LP -.SH "ネームサービスの起動と停止" +.SH "͡ॵӥεư" .LP .LP -ネームサービスは、 +͡ॵӥϡ .na -\f2CORBA オブジェクト\fP @ +\f2CORBA ֥\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20objectにネーミングを可能にする CORBA サービスです。 ネーミングは名前をオブジェクト参照にバインドすることにより可能になります。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object˥͡ߥ󥰤ǽˤ CORBA ӥǤ͡ߥ󥰤̾򥪥֥ȻȤ˥Хɤ뤳Ȥˤǽˤʤޤ .na -\f2「ネームバインディング」\fP @ +\f2֥͡Хǥ󥰡\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingはネームサービスに格納され、クライアントは名前を与えて目的のオブジェクト参照を取得できます。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingϥ͡ॵӥ˳Ǽ졢饤Ȥ̾ͿŪΥ֥ȻȤǤޤ .LP .LP -ORBD は、クライアントまたはサーバーを実行する前に起動します。ORBD には、持続ネームサービスおよび一時ネームサービスが組み込まれています。 これらはどちらも COS ネームサービスの実装です。 +ORBD ϡ饤ȤޤϥС¹Ԥ˵ưޤORBD ˤϡ³͡ॵӥӰ͡ॵӥȤ߹ޤƤޤϤɤ COS ͡ॵӥμǤ .LP .LP -\f3「持続」ネームサービス\fPは、ネーミングコンテキストに対して持続性を提供します。つまり、この情報は、サービスの停止や起動後にも維持され、サービスに障害が発生した場合でも回復できます。ORBD を再起動すると、持続ネームサービスはネーミングコンテキストのグラフを復元し、すべてのクライアントとサーバーの名前のバインディングが保持されます。 +\f3ֻ³ץ͡ॵӥ\fPϡ͡ߥ󥰥ƥȤФƻ³󶡤ޤĤޤꡢξϡӥߤ䵯ưˤݻ졢ӥ˾㳲ȯǤǤޤORBD Ƶưȡ³͡ॵӥϥ͡ߥ󥰥ƥȤΥդ٤ƤΥ饤ȤȥС̾ΥХǥ󥰤ݻޤ .LP .LP \ .LP .LP -下位互換性のため、旧バージョンの JDK に同梱されていた\f3一時ネームサービス\fPが、今回のリリースの J2SE にも同梱されています。一時ネームサービスでは、ネームサービスの実行中にのみネーミングコンテキストが保持されます。サービスが中断されると、ネーミングコンテキストは失われます。 +̸ߴΤᡢС JDK ƱƤ\f2͡ॵӥ\fPΥ꡼ J2SE ˤƱƤޤ͡ॵӥǤϡ͡ॵӥμ¹ˤΤߥ͡ߥ󥰥ƥȤݻޤӥǤȡ͡ߥ󥰥ƥȤϼޤ .LP .LP -\f2\-ORBInitialPort\fP 引数は、\f2orbd\fP の必須のコマンド行引数で、ネームサービスが実行されるポートの番号を設定するために使われます。以下の説明では、Java\ IDL Object Request Broker Daemon 用にポート 1050 を使用できることを前提としています。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 +\f2\-ORBInitialPort\fP ϡ\f2orbd\fP ɬܤΥޥɹ԰ǡ͡ॵӥ¹ԤݡȤֹꤹ뤿˻ȤޤʲǤϡJavaIDL Object Request Broker Daemon Ѥ˥ݡ 1050 ѤǤ뤳ȤȤƤޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤɬפǤ̤ΥݡȤѹƤ .LP .LP -UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように入力します。 +UNIX ޥɥ \f2orbd\fP ưˤϡΤ褦Ϥޤ .LP .nf \f3 @@ -175,7 +167,7 @@ UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -187,7 +179,7 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -これで ORBD が実行され、サーバーとクライアントのアプリケーションを実行できるようになります。クライアントとサーバーのアプリケーションは、実行時に、ネームサービスが実行されているポートの番号 (必要な場合はさらにマシン名) を認識している必要があります。これを実現する 1 つの方法は、次のコードをアプリケーションに追加することです。 + ORBD ¹Ԥ졢Сȥ饤ȤΥץꥱ¹ԤǤ褦ˤʤޤ饤ȤȥСΥץꥱϡ¹Իˡ͡ॵӥ¹ԤƤݡȤֹ (ɬפʾϤ˥ޥ̾) ǧƤɬפޤ¸ 1 ĤˡϡΥɤ򥢥ץꥱɲä뤳ȤǤ .LP .nf \f3 @@ -205,7 +197,7 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -この例では、ネームサービスは、ホスト MyHost のポート 1050 上で実行されます。別の方法として、コマンド行からサーバーまたはクライアントのアプリケーションを実行するときに、ポート番号またはマシン名あるいはその両方を指定する方法もあります。たとえば、次のコマンド行オプションを使用して、「HelloApplication」を起動できます。 +Ǥϡ͡ॵӥϡۥ MyHost Υݡ 1050 Ǽ¹Ԥޤ̤ˡȤơޥɹԤ饵Сޤϥ饤ȤΥץꥱ¹ԤȤˡݡֹޤϥޥ̾뤤Ϥξꤹˡ⤢ޤȤСΥޥɹԥץѤơHelloApplicationפưǤޤ .LP .nf \f3 @@ -217,35 +209,35 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -ネームサービスを停止するには、適切なオペレーティングシステムコマンドを使用します。 たとえば、Solaris では \f2pkill orbd\fP を使用し、\f2orbd\fP が実行されている DOS ウィンドウでは \f2Ctrl+C\fP キーを使用します。一時ネームサービスの場合は、サービスが終了されると、ネームサービスに登録された名前が消去される場合があります。Java IDL ネームサービスは、明示的に停止されるまで実行されます。 +͡ॵӥߤˤϡŬڤʥڥ졼ƥ󥰥ƥॳޥɤѤޤȤСSolaris \f2pkill orbd\fP \f2¹Ԥꡢ\fP \f2orbd\fP ư DOS ɥ Ctrl+C 򲡤ꤷޤ͡ॵӥξϡӥλȡ͡ॵӥϿ줿̾õ礬ޤJava IDL ͡ॵӥϡŪߤޤǼ¹Ԥޤ .LP .LP -ORDB に含まれるネームサービスの詳細については、 +ORDB ˴ޤޤ͡ॵӥξܺ٤ˤĤƤϡ .na -\f2「ネームサービス」\fP @ +\f2֥͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html򻲾ȤƤ .LP -.SH "サーバーマネージャー" +.SH "Сޥ͡㡼" .LP .LP -ORBD のサーバーマネージャーにアクセスして持続サーバーを実行するには、servertool(1) を使用してサーバーを起動する必要があります。 servertool は、アプリケーションプログラマが、持続サーバーの登録、登録解除、起動、およびシャットダウンを行うためのコマンド行インタフェースです。servertool を使用してサーバーを起動する場合は、\f2orbd\fP が実行されている場所と同じポートとホストで起動する必要があります。サーバーを異なるポートで実行すると、ローカルコンテキスト用にデータベースに保存されている情報が無効になり、サービスが正しく動作しません。 +ORBD ΥСޥ͡㡼˥ƻ³С¹Ԥˤϡservertool(1) ѤƥСưɬפޤservertool ϡץꥱץޤ³СϿϿưӥåȥԤΥޥɹԥ󥿥եǤ\f2servertool\fP ѤƥСưϡ\f2orbd\fP ¹ԤƤƱݡȤȥۥȤǵưɬפޤСۤʤݡȤǼ¹Ԥȡ륳ƥѤ˥ǡ١¸Ƥ̵ˤʤꡢӥưޤ .LP .SS -サーバーマネージャー:例 +Сޥ͡㡼: .LP .LP -デモ用の +ǥѤ .na -\f2サンプルチュートリアル\fP @ +\f2ץ塼ȥꥢ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.htmlを使用し、チュートリアルの手順に従って、\f2idlj\fP コンパイラと \f2javac\fP コンパイラを実行します。サーバーマネージャーを実行するには、次の手順に従ってアプリケーションを実行します。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.htmlѤ塼ȥꥢμ˽äơ\f2idlj\fP ѥ \f2javac\fP ѥ¹ԤޤСޥ͡㡼¹Ԥˤϡμ˽äƥץꥱ¹Ԥޤ .LP .LP -\f2orbd\fP を起動します。 +\f2orbd\fP ưޤ .LP .LP -UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように入力します。 +UNIX ޥɥ \f2orbd\fP ưˤϡΤ褦Ϥޤ .LP .LP \ @@ -260,7 +252,7 @@ UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -272,13 +264,13 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -\f21050\fP はネームサーバーを実行するポートです。\f2\-ORBInitialPort\fP は必要なコマンド行の引数です。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 +\f21050\fP ϥ͡ॵС¹ԤݡȤǤ\f2\-ORBInitialPort\fP ɬפʥޥɹԤΰǤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ .LP .LP -\f2servertool\fP を起動します。 +\f2servertool\fP ưޤ .LP .LP -Hello サーバーを起動するには、次のように入力します。 +Hello СưˤϡΤ褦Ϥޤ .LP .nf \f3 @@ -290,21 +282,21 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -前回の手順と同様にネームサーバー (\f2orbd\fP) のポートを指定します。 たとえば \f2\-ORBInitialPort 1050\fP のようになります。\f2servertool\fP は、ネームサーバーと同じポート上で起動する必要があります。 +μƱͤ˥͡ॵС (\f2orbd\fP) ΥݡȤꤷޤȤ \f2\-ORBInitialPort 1050\fP Τ褦ˤʤޤ\f2servertool\fP ϡ͡ॵСƱݡȾǵưɬפޤ .LP .LP -\f2servertool\fP コマンド行インタフェースが表示されます。 +\f2servertool\fP ޥɹԥ󥿥եɽޤ .LP .LP .LP .LP -\f2servertool\fP プロンプトから Hello サーバーを起動します。 +\f2servertool\fP ץץȤ Hello Сưޤ .LP .nf \f3 .fl - servertool > register \-server HelloServer \-classpath . \-applicationName + servertool > register \-server HelloServer \-classpath .\-applicationName .fl HelloServerApName .fl @@ -313,13 +305,13 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -\f2servertool\fP によってサーバーが登録されて、「HelloServerApName」という名前がサーバーに割り当てられ、サーバー ID が表示されます。 +\f2servertool\fP ˤäƥСϿơHelloServerApNameפȤ̾С˳Ƥ졢С ID ɽޤ .LP .LP .LP .LP -別の端末ウィンドウまたはプロンプトからクライアントアプリケーションを実行します。 +̤üɥޤϥץץȤ饯饤ȥץꥱ¹Ԥޤ .LP .LP \ @@ -334,10 +326,10 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -この例の \f2\-ORBInitialHost localhost\fP は省略することができます。 ネームサーバーが Hello クライアントとして同一ホスト上で動作しているからです。ネームサーバーが別のホストで動作している場合は、IDL ネームサーバーが動作しているホストを \f2\-ORBInitialHost\fP \f2nameserverhost\fP で指定します。 + \f2\-ORBInitialHost localhost\fP Ͼά뤳ȤǤޤ͡ॵС Hello 饤ȤȤƱۥȾưƤ뤫Ǥ͡ॵС̤ΥۥȤưƤϡIDL ͡ॵСưƤۥȤ \f2\-ORBInitialHost\fP \f2nameserverhost\fP ǻꤷޤ .LP .LP -前回の手順と同様にネームサーバー (\f2orbd\fP) のポートを指定します。 たとえば \f2\-ORBInitialPort 1050\fP のようになります。 +μƱͤ˥͡ॵС (\f2orbd\fP) ΥݡȤꤷޤȤ \f2\-ORBInitialPort 1050\fP Τ褦ˤʤޤ .LP .LP \ @@ -346,21 +338,21 @@ Hello サーバーを起動するには、次のように入力します。 \ .LP .LP -サーバーマネージャーの操作が終了したら、ネームサーバー (\f2orbd\fP) と \f2servertool\fP を停止するか終了してください。 +Сޥ͡㡼λ顢͡ॵС (\f2orbd\fP) \f2servertool\fP ߤ뤫λƤ .LP .LP -DOS プロンプトで \f2orbd\fP をシャットダウンするには、サーバーを実行しているウィンドウを選択して \f2Ctrl+C\fP と入力します。UNIX シェルで \f2orbd\fP をシャットダウンするには、プロセスを検出して終了 (kill) します。サーバーを明示的に停止するまでは、呼び出し待機状態が続きます。 +DOS ץץȤ \f2orbd\fP 򥷥åȥ󤹤ˤϡС¹ԤƤ륦ɥ򤷤 \f2Ctrl+C\fP ϤޤUNIX \f2orbd\fP 򥷥åȥ󤹤ˤϡץ򸡽Фƽλ (kill) ޤСŪߤޤǤϡƤӽФԵ֤³ޤ .LP .LP -\f2servertool\fP をシャットダウンするには、\f2quit\fP と入力し、キーボードの \f2Enter\fP キーを押します。 +\f2servertool\fP 򥷥åȥ󤹤ˤϡ \f2quit\fP Ϥƥܡɤ \f2Enter\fP 򲡤ޤ .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2ネームサービス\fP @ +\f2͡ॵӥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html .br diff --git a/jdk/src/linux/doc/man/ja/pack200.1 b/jdk/src/linux/doc/man/ja/pack200.1 index 51fb78b7101..74886e8d950 100644 --- a/jdk/src/linux/doc/man/ja/pack200.1 +++ b/jdk/src/linux/doc/man/ja/pack200.1 @@ -19,99 +19,79 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "02 Jun 2010" +.TH pack200 1 "14 Apr 2011" .LP -.SH "名前" -pack200 \- JAR パックツール +.SH "̾" +pack200 \- JAR ѥåġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -終了ステータス +λơ .TP 2 o -関連項目 +Ϣ .TP 2 o -説明 +ջ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .LP \f4pack200\fP\f2 [ \fP\f2options\fP ] \f2output\-file\fP \f2JAR\-file\fP .LP .LP -オプションの指定順序に決まりはありません。コマンド行または properties ファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。 -.LP -.RS 3 - +ץλ˷ޤϤޤ󡣥ޥɹԤޤ properties ե˻ꤵ줿ǸΥץ󤬡˻ꤵ줿٤ƤΥץͥ褵ޤ .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 output\-file -出力ファイルの名前。 +ϥե̾ .TP 3 JAR\-file -入力ファイルの名前。 +ϥե̾ .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -\f2pack200\fP ツールは、Java \f2gzip\fP 圧縮プログラムを使用して、JAR ファイルを \f2pack200\fP 圧縮ファイルに変換する Java アプリケーションです。\f2pack200\fP ファイルは高圧縮のファイルで、帯域幅の節約やダウンロード時間の短縮や直接配備することができます。 +\f2pack200\fP ġϡJava gzip ̥ץѤ JAR ե \f2pack200\fP ̥եѴ \f2Java ץꥱ\fP Ǥ \f2pack200\fP եϹⰵ̤ΥեǡӰɻ֤ṳ̂ľ뤳ȤǤޤ .LP .LP -\f2pack200\fP ツールには、圧縮エンジンの設定や微調整を行うオプションが用意されています。 +\f2pack200\fP ġˤϡ̥󥸥ĴԤץѰդƤޤ .LP .SS -一般的な使用方法: -.LP -.RS 3 - +Ūʻˡ: .LP .LP \f2% pack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP -この例では、デフォルトの \f2pack200\fP 設定で、\f2myarchive.pack.gz\fP が作成されます。 +Ǥϡ \f2ǥեȤ pack200 Ѥ\fP myarchive.pack.gz \f2ޤ\fP .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP \f4\-r \-\-repack\fP .LP -.RS 3 - .LP -.LP -\f2myarchive.jar\fP ファイルをパックした後にアンパックすることにより、JAR ファイルを生成します。生成されたファイルは、\f2jarsigner(1)\fP ツールの入力ファイルとして使用できます。 -.LP -.RS 3 - +ե \f2myarchive.jar\fP ѥåȥѥå뤳ȤǡJAR եޤ줿ե \f2jarsigner(1)\fP ġϥեȤƻѤǤޤ .LP .LP \f2% pack200 \-\-repack myarchive\-packer.jar myarchive.jar\fP @@ -119,158 +99,122 @@ JAR\-file .LP \f2% pack200 \-\-repack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-g \-\-no\-gzip\fP .LP -.RS 3 - .LP -.LP -\f2pack200\fP ファイルを生成します。このオプションを指定するときは、適切な圧縮ツールを使用する必要があります。 また、ターゲットシステムでは、対応する圧縮解除ツールを使用する必要があります。 -.LP -.RS 3 - +\f2pack200\fP եޤΥץꤹȤϡŬڤʰ̥ġѤɬפޤޤåȥƥǤϡб밵̲ġѤɬפޤ .LP .LP \f2% pack200 \-\-no\-gzip myarchive.pack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-G \-\-strip\-debug\fP .LP -.RS 3 - +.LP +ϤǥХåѤ°ޤ°ȤƤϡ \f2SourceFile\fP \f2LineNumberTable\fP \f2LocalVariableTable\fP \f2LocalVariableTypeTable\fP ʤɤ󤲤ޤ°Сɤȥ󥹥ȡΥϾʤޤǥХåεǽ¤ޤ .LP .LP -出力からデバッグ用の属性を削除します。対象となる属性には、\f2SourceFile\fP、\f2LineNumberTable\fP、\f2LocalVariableTable\fP、および \f2LocalVariableTypeTable\fP などがあります。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなりますが、デバッガの機能は制限されます。 +\f4\-\-keep\-file\-order\fP +.LP +.LP +ϥեΥեνݻޤ줬ǥեȤưǤ .LP -.RE .LP \f4\-O \-\-no\-keep\-file\-order\fP .LP -.RS 3 - .LP +ѥåġϡ٤ƤǤ¤ؤžޤޤJAR ǥ쥯ȥ̾ޤΤᡢɤΥϾʤޤǥåϤȤ JAR եκŬǽưʤʤ뤳Ȥޤ .LP -パックツールは、すべての要素を並べ替えて転送します。また、JAR ディレクトリ名を削除します。このため、ダウンロードのサイズは小さくなりますが、インデックスをはじめとする JAR ファイルの最適化機能は正常に動作しなくなることがあります。 -.LP -.RE .LP \f4\-Svalue \-\-segment\-limit=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -この値は、各アーカイブセグメントの予想ターゲットサイズ N (バイト単位) です。N バイト以上を必要とする単一の入力ファイルには、 +ͤϡƥ֥Ȥͽۥåȥ N (Хñ) Ǥñϥեɬץ .br -独立したアーカイブセグメントが割り当てられます。たとえば、これは特殊な例ですが、値が \f2\-1\fP の場合、すべての入力ファイルを含む単一の巨大なセグメントが生成されます。 一方、値が \f20\fP の場合、クラスごとにセグメントが 1 つずつ生成されます。アーカイブセグメントのサイズが大きければ大きいほど断片化は起こりにくく、圧縮率も高くなります。しかし、こうしたセグメントを処理するためには、大量のメモリーが必要になります。 +N ХȤĶȡΥեˤΩ֥ȤƤޤüʥȤơͤ \f2\-1\fP ξϡ٤Ƥϥեޤ礭ñΥȤ졢ͤ \f20\fP ξϡ饹Ȥ˥Ȥ 1 Ĥޤ֥Ȥ礭ʤȡҲʤʤ갵Ψ⤯ʤޤνˤ¿Υ꡼ɬפǤ .LP .LP -各セグメントのサイズは、セグメント内で転送される入力ファイルのサイズと、このファイルの名前のサイズ、およびその他の転送プロパティーによって予測されます。 +ƥȤΥϡȤѴ뤽줾ϥեΥΤۤ̾ȤۤץѥƥΥ׻ƿ¬ޤ .LP .LP -デフォルトのサイズは \f21000000\fP (100 万バイト) です。これは、標準サイズの入力 JAR ファイルを単一セグメント内で転送できるサイズです。パックツールおよびアンパックツールのメモリー要件には制限が課されます。 +ǥեȤ \-1 ǤĤޤꡢѥåġϾñΥȽϥեޤü礭ʽϥե뤬ˤϡϥե򥻥Ȳ (ʬ) Ƥ꾮 JAR ˤ뤳Ȥ򶯤ᤷޤ .LP .LP -この制限が課されていない 10M バイトの JAR パックファイルは通常、元の 10% 程度のサイズにパックされます。 しかし、パックツールでより大きな Java ヒープ (セグメントの制限の約 10 倍) を必要とする場合もあります。 +¤ݤƤʤ 10M ХȤ JAR ѥåե̾ 10% ٤Υ˥ѥåޤѥåġǤ礭 Java ҡ (Ȥ¤ 10 ) ɬפȤ⤢ޤ .LP -.RE .LP \f4\-Evalue \-\-effort=\fP\f2value\fP .LP -.RS 3 - +.LP +ñ 10 ʿͤꤷ硢ѥåġϡꤵ줿Ψǥ֤򰵽̤ޤ٥ \f21\fP ξϡŪû̻֤Ǥ礭Υե뤬ޤ٥ \f29\fP ξϡĹ֤ΤΡ갵Ψι⤤ե뤬ޤü \f20\fP ꤷϡ JAR ե򰵽̤ʤľܥԡޤJSR 200 ɸǤϡ٤Ƥβץब̤ʾ򥢡ΤΥѥ롼Ȳ᤹褦˵ꤷƤޤ .LP .LP -単一の 10 進数値を指定した場合、パックツールは、指定された圧縮率でアーカイブを圧縮します。レベル \f21\fP の場合、圧縮速度は速くても圧縮率はそれほど高くありません。 レベル \f29\fP の場合、圧縮速度は遅くても圧縮率は高くなります。特殊な値 \f20\fP を指定した場合は、元の JAR ファイルを圧縮なしで直接コピーします。JSR 200 標準では、すべてのアンパックツールはこの特殊な処理をアーカイブ全体のパススルーとして理解する必要があります。 +ǥեȤ \f25\fPǤξ硢ɸŪʻ֤Ŭڤʰ̤Ԥޤ .LP .LP -デフォルト値は \f25\fP です。 この場合、標準的な時間で、適度な圧縮が行われます。 -.LP -.RE -.LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -デフォルト値を上書きし、入力情報を保持します。 転送されるアーカイブのサイズは大きくなります。可能な値: +ǥեͤ񤭤Ͼ¸ޤž륢֤Υ礭ʤޤ֤ͤϼΤɤ줫ˤʤޤ .LP .RS 3 .TP 3 true .TP 3 false -どちらの場合でも、パックツールはデフレーションヒントを出力アーカイブに設定します。 アーカイブ要素の個々のデフレーションヒントは転送しません。 +ɤξǤ⡢ѥåġϥǥե졼ҥȤϥ֤ꤷޤǤθġΥǥե졼ҥȤžޤ .RE .LP .RS 3 .TP 3 keep -入力 JAR 内のデフレーションヒントを保持します (デフォルト)。 + JAR.ǸĤäǥե졼ҥȤݻޤ(줬ǥեȤǤ) .RE .LP -.RE .LP \f4\-mvalue \-\-modification\-time=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -可能な値: +֤ͤϼΤɤ줫ˤʤޤ .LP .RS 3 .TP 3 latest -パックツールは、元のアーカイブの全エントリの最終更新時刻か、そのセグメントのすべてのエントリの最終更新時刻を特定しようとします。この単一の値はセグメントの一部として転送され、各セグメントの全エントリに適用されます。この場合、すべてのインストールファイルに単一の日付が設定されるという問題はありますが、アーカイブの転送サイズを少し小さくすることができます。 +ѥåġϡΥ֤ȥκǽ狼ΥȤΤ٤ƤΥȥκǽꤷ褦ȤޤñͤϥȤΰȤž졢ƥȤȥŬѤޤξ硢٤ƤΥ󥹥ȡեñդꤵȤϤޤ֤ž򾯤뤳ȤǤޤ .TP 3 keep -入力 JAR 内の更新時刻を保持します (デフォルト)。 + JAR. ǸĤäѹݻޤ(줬ǥեȤǤ) .RE .LP -.RE .LP \f4\-Pfile \-\-pass\-file=\fP\f2file\fP .LP -.RS 3 - .LP +ե򰵽̤Хñ̤ž褦˻ꤷޤΥץ򷫤֤ѤơʣΥեǤޤƥե륻ѥ졼 JAR ե륻ѥ졼\f2/\fPפ֤ѥ̾ѴϹԤޤ ̤Ȥե̾ϡʸȤΤ JAR եǤνиȰפƤɬפޤfile ˥ǥ쥯ȥ̾ꤷ硢Υǥ쥯ȥΤ٤ƤΥե뤬žޤ .LP -ファイルを圧縮せず、バイト単位で転送するように指定します。このオプションを繰り返し使用して、複数のファイルを指定できます。パス名の変換は行われません。 システムファイルの区切り文字が JAR ファイルの区切り文字「\f2/\fP」で置き換えられるだけです。ファイル名は、JAR ファイル内の文字列と完全に一致していなければなりません。file にディレクトリ名を指定した場合、そのディレクトリ内のすべてのファイルが転送されます。 -.LP -.RE .LP \f4\-Uaction \-\-unknown\-attribute=\fP\f2action\fP .LP -.RS 3 - .LP -.LP -デフォルトの動作を無効にします。 たとえば、不明な属性を含むクラスファイルを指定したアクションで転送します。アクションとして指定可能な値: +ǥեȤư̵ˤޤȤС°ޤ९饹եꤷžޤȤƻǽ: .LP .RS 3 .TP 3 error -\f2pack200\fP の操作に失敗し、適切な解説が表示されます。 +\f2pack200\fP ˼ԤŬڤʲ⤬ɽޤ .TP 3 strip -属性はドロップされます。注: VM 必須属性を削除すると、クラスローダーの障害が発生することがあります。 +°ϥɥåפޤ: VM ɬ°ȥ饹ξ㳲ȯ뤳Ȥޤ .TP 3 pass -この属性が検出された場合、クラス全体が 1 つのリソースとして転送されます。 +°Ф줿硢饹Τ 1 ĤΥ꥽Ȥžޤ .RE .LP -.RE .LP \f4\-Cattribute\-name=\fP\f2layout\fP \f3\-\-class\-attribute=\fP\f2attribute\-name=action\fP .br @@ -280,42 +224,32 @@ pass .br \f4\-Dattribute\-name=\fP\f2layout\fP \f3\-\-code\-attribute=\fP\f2attribute\-name=action\fP .LP -.RS 3 - .LP -.LP -これら 4 つのオプションでは、クラスエンティティーに Class 属性、Field 属性、Method 属性、Code 属性などの属性のレイアウトを指定できます。attribute\-name には、これからレイアウトまたはアクションを定義する属性の名前を指定します。アクションとして指定可能な値: + 4 ĤΥץǤϡ饹ƥƥ Class °Field °Method °Code °ʤɤ°Υ쥤ȤǤޤattribute\-name ˤϡ줫쥤Ȥޤϥ°̾ꤷޤȤƻǽ: .LP .RS 3 .TP 3 -(一部のレイアウト文字列) -レイアウト言語は、JSR 200 仕様に定義されています。 +some\-layout\-string +쥤ȸϡJSR 200 ͤƤޤ .LP -例: \f2\-\-class\-attribute=SourceFile=RUH\fP +: \f2\-\-class\-attribute=SourceFile=RUH\fP .TP 3 error -この属性が検出された場合、pack200 の操作に失敗し、適切な解説が表示されます。 +°Ф줿硢pack200 ˼ԤŬڤʲ⤬ɽޤ .TP 3 strip -この属性が検出された場合、属性は出力から削除されます。注: VM 必須属性を削除すると、クラスローダーの障害が発生することがあります。 +°Ф줿硢°ϽϤޤ: VM ɬ°ȥ饹ξ㳲ȯ뤳Ȥޤ .RE .LP .LP -例: \f2\-\-class\-attribute=CompilationID=pass\fP というこの属性を含むクラスファイルを転送します。 パックツールは、その他のアクションを行いません。 +: \f2\-\-class\-attribute=CompilationID=pass\fP Ȥ°ޤ९饹եžޤѥåġϡ¾ΥԤޤ .LP -.RE .LP \f4\-f\fP\f2 \fP\f2pack.properties\fP \f3\-\-config\-file=\fP\f2pack.properties\fP .LP -.RS 3 - .LP -.LP -コマンド行に、パックツールを初期化するための Java プロパティーが含まれている設定ファイルを指定できます。 -.LP -.RS 3 - +ޥɹԤˡѥåġ뤿 Java ץѥƥޤޤƤեǤޤ .LP .LP \f2% pack200 \-f pack.properties myarchive.pack.gz myarchive.jar\fP @@ -339,71 +273,55 @@ strip \f2# Change the segment limit to be unlimited.\fP .br \f2segment.limit=\-1\fP -.LP -.RE -.RE -.RS 3 - .LP .LP \f4\-v \-\-verbose\fP .LP -.RS 3 - .LP +Ǿ¤ΥåϤޤΥץʣꤹȡĹåϤޤ .LP -最小限のメッセージを出力します。このオプションを複数指定すると、より長いメッセージが出力されます。 -.LP -.RE .LP \f4\-q \-\-quiet\fP .LP -.RS 3 - .LP +åɽưޤ .LP -メッセージを表示せずに動作します。 -.LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP .LP -.RS 3 - +.LP +ϥåΥեꤷޤ .LP .LP -出力メッセージのログファイルを指定します。 -.LP -.RE -.LP -\f4\-Joption\fP -.LP -.RS 3 - +\f4\-? \-h \-\-help\fP .LP .LP -\f2pack200\fP によって呼び出される Java 起動ツールにオプションを渡します。たとえば、\f2\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。このオプションは \f2\-X\fP で始まっていませんが、\f2pack200\fP の標準オプションではありません。\f2\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 -.LP -.RE -.RE -.SH "終了ステータス" -.LP - +Υޥɤ˴ؤإ׾Ϥޤ .LP .LP -次の終了値が返されます。 -.LP -.RS 3 - +\f4\-V \-\-version\fP .LP .LP -\f2\ 0\fP "成功" +Υޥɤ˴ؤСϤޤ .LP .LP -\f2>0\fP "エラー" +\f4\-J\fP\f2option\fP .LP -.RE -.SH "関連項目" +.LP +\f2option\fP \f2pack200\fP ƤӽФ줿 Java ưġϤޤȤС \f2\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤΥץ \f2\-X\fP ǻϤޤäƤޤ󤬡 \f2pack200\fP ɸ४ץǤϤޤ \f2\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ +.LP +.SH "λơ" +.LP +.LP +νλ֤ͤޤ +.LP +.LP +\f2\ 0\fP ェλ +.LP +.LP +\f2>0\fP 顼ȯ +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -412,35 +330,33 @@ unpack200(1) .TP 2 o .na -\f2Java SE のドキュメント\fP @ +\f2Java SE Υɥ\fP @ .fi http://java.sun.com/javase/6/docs/index.html .TP 2 o .na -\f2「Java 配備ガイド \- Pack200」\fP @ +\f2Java \- Pack200\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o -jar(1) \- Java Archive ツール」 +jar(1) \- Java Archive ġ .TP 2 o -「jarsigner(1) \- JAR 署名および検証ツール」 +jarsigner(1) \- JAR ̾Ӹڥġ .TP 2 o -\f2attributes(5)\fP のマニュアルページ +\f2attributes(5) \fP ޥ˥奢ڡ .RE .LP -.SH "注意事項" -.LP - +.SH "ջ" .LP .LP -このコマンドと \f2pack(1)\fP を混同しないでください。これらは別製品です。 +Υޥɤ \f2pack(1)\fP ƱʤǤʤǤ .LP .LP -SDK に付属する Java SE API 仕様との相違が見つかった場合には、仕様を優先してください。 +SDK ° Java SE API ͤȤ㤬Ĥäˤϡͤͥ褷Ƥ .LP diff --git a/jdk/src/linux/doc/man/ja/policytool.1 b/jdk/src/linux/doc/man/ja/policytool.1 index c53d78fe09c..ee5b9c7dbff 100644 --- a/jdk/src/linux/doc/man/ja/policytool.1 +++ b/jdk/src/linux/doc/man/ja/policytool.1 @@ -19,84 +19,82 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "02 Jun 2010" +.TH policytool 1 "14 Apr 2011" .LP -.SH "名前" -policytool \- PolicyTool 管理 GUI ユーティリティー +.SH "̾" +policytool \- PolicyTool GUI 桼ƥƥ .LP -\f3policytool\fP は、ユーティリティー GUI 経由で取得したユーザー入力に基づいて、プレーンテキストのポリシーファイルを読み書きします。 +\f3policytool\fP ϡ桼ƥƥ GUI ͳǼ桼Ϥ˴Ťơץ졼ƥȤΥݥꥷեɤ߽񤭤ޤ .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .RS 3 .TP 3 \ .TP 3 -policytool 管理者ユーティリティーを実行します +policytool ԥ桼ƥƥ¹Ԥޤ \f4policytool\fP .TP 3 -policytool を実行し、指定されたポリシーファイルを読み込みます -\f4policytool\fP\f2 [\-file\ \fP\f2filename\fP\f2]\fP +policytool ¹Ԥꤵ줿ݥꥷեɤ߹ߤޤ +\f4policytool\fP\f2[\-file\ \fP\f2filename\fP\f2]\fP .TP 3 \ .TP 3 -各要素は次のとおりです。 +ʲˤ줾ΰ̣򼨤ޤ .RS 3 .TP 3 file -ローカルポリシーファイルを読み込むように \f2policytool\fP に指示します +ݥꥷեɤ߹褦 \f2policytool\fP ˻ؼޤ .TP 3 filename -ファイル名 +ե̾ .RE -.SH "説明" +.SH "" .LP -\f3policytool\fP は、ユーザーがローカルポリシーファイルの内容を管理することを可能にする GUI です。詳細については、 +\f3policytool\fP ϡ桼ݥꥷեƤ뤳Ȥǽˤ GUI Ǥܺ٤ˤĤƤϡ .na -\f2「ポリシーファイル作成および管理ツール」\fP @ +\f2֥ݥꥷեӴġ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.htmlを参照してください。 -.SH "オプション" +http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html򻲾ȤƤ +.SH "ץ" .RS 3 .TP 3 file -\f2filename\fP を読み込みます。 -.SH "関連項目" +\f2filename\fP ɤ߹ߤޤ +.SH "Ϣ" .na -\f2「Default Policy Implementation and Syntax」\fP @ +\f2Default Policy Implementation and Syntax\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html .br .na -\f2「Policy Tool Users' Guide」\fP @ +\f2Policy Tool Users' Guide\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html .br .na -\f2「Security Permissions」\fP @ +\f2Security Permissions\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html .br .na -\f2「Security Overview」\fP @ +\f2Security Overview\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html .br diff --git a/jdk/src/linux/doc/man/ja/rmic.1 b/jdk/src/linux/doc/man/ja/rmic.1 index 85e045e6446..bef409008e5 100644 --- a/jdk/src/linux/doc/man/ja/rmic.1 +++ b/jdk/src/linux/doc/man/ja/rmic.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "02 Jun 2010" +.TH rmic 1 "14 Apr 2011" .LP -.SH "名前" -rmic \- Java RMI コンパイラ -.LP -.RS 3 - +.SH "̾" +rmic \- Java RMI ѥ .LP .LP -\f3rmic\fP によって、JRMP または IIOP プロトコルを使用するリモートオブジェクトのスタブ、スケルトン、および Tie クラスが生成されます。また、OMG IDL も生成されます。 +\f3rmic\fP ˤäơJRMP ޤ IIOP ץȥѤ⡼ȥ֥ȤΥ֡ȥ󡢤 Tie 饹ޤޤOMG IDL ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,12 +39,10 @@ rmic [ \fP\f3options\fP\f3 ] \fP\f4package\-qualified\-class\-name(s)\fP\f3 .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmic\fP コンパイラによって、リモートオブジェクトの、スタブ、スケルトンクラスファイル (JRMP プロトコル)、およびスタブと Tie クラスファイルの組み合わせ (IIOP プロトコル) が生成されます。リモートオブジェクトの実装クラスであるこれらのクラスファイルは、Java プログラミング言語のクラスをコンパイルしたときに生成されます。リモート実装クラスは、\f2java.rmi.Remote\fP インタフェースを実装するクラスです。\f3rmic\fP コマンドでのクラス名は、そのクラスが \f3javac\fP コマンドでコンパイルが成功していて、かつ完全なパッケージ名が指定されている必要があります。たとえば、クラスファイル名 \f2HelloImpl\fP で \f3rmic\fP を実行するには、次のようにします。 +\f3rmic\fP ѥˤäơ⡼ȥ֥ȤΡ֡ȥ󥯥饹ե (JRMP ץȥ)ӥ֤ Tie 饹եȤ߹碌 (IIOP ץȥ) ޤ⡼ȥ֥Ȥμ饹Ǥ뤳Υ饹եϡJava ץߥ󥰸Υ饹򥳥ѥ뤷Ȥޤ⡼ȼ饹ϡ\f2java.rmi.Remote\fP 󥿥ե륯饹Ǥ\f3rmic\fP ޥɤǤΥ饹̾ϡΥ饹 \f3javac\fP ޥɤǥѥ뤬ƤơĴʥѥå̾ꤵƤɬפޤȤС饹ե̾ \f2HelloImpl\fP \f3rmic\fP ¹ԤˤϡΤ褦ˤޤ .LP .nf \f3 @@ -62,37 +54,32 @@ rmic hello.HelloImpl .LP .LP -\f2HelloImpl_Stub.class\fP ファイルが、クラスのパッケージ名が付いた \f2hello\fP サブディレクトリに作成されます。 +\f2HelloImpl_Stub.class\fP ե뤬饹Υѥå̾դ \f2hello\fP ֥ǥ쥯ȥ˺ޤ .LP .LP -リモートオブジェクトの「スケルトン」は JRMP プロトコルサーバー側のエンティティーで、実際のリモートオブジェクト実装を呼び出すメソッドを含みます。 +⡼ȥ֥ȤΡ֥ȥפ JRMP ץȥ륵С¦ΥƥƥǡºݤΥ⡼ȥ֥ȼƤӽФ᥽åɤޤߤޤ .LP .LP -リモートオブジェクトの「Tie」は、スケルトンと同様にサーバー側のエンティティーですが、IIOP プロトコルを使ってクライアントと通信します。 +⡼ȥ֥ȤΡTieפϡȥƱͤ˥С¦ΥƥƥǤIIOP ץȥȤäƥ饤Ȥ̿ޤ .LP .LP -「スタブ」とは、リモートオブジェクトのクライアント側での代理です。 スタブは、リモートオブジェクトのメソッド呼び出しを、実物のリモートオブジェクトが常駐するサーバーと通信する役割を持ちます。したがって、クライアントのリモートオブジェクトへの参照は、実際はローカルスタブへの参照となります。 +֥֡פȤϡ⡼ȥ֥ȤΥ饤¦ǤǤ֤ϡ⡼ȥ֥ȤΥ᥽åɸƤӽФ򡢼ʪΥ⡼ȥ֥Ȥ󤹤륵С̿ޤäơ饤ȤΥ⡼ȥ֥ȤؤλȤϡºݤϥ륹֤ؤλȤȤʤޤ .LP .LP -デフォルトで \f3rmic\fP では、1.2 JRMP スタブプロトコルバージョンだけを使用するスタブクラスを生成します。 これは、\f2\-v1.2\fP オプションを指定した場合と同じ動作です。(5.0 以前では \f2\-vcompat\fP オプションがデフォルトであったことに注意。) IIOP プロトコル用のスタブおよび Tie クラスを生成するには \f2\-iiop\fP オプションを使用します。 +ǥեȤ \f3rmic\fP Ǥϡ1.2 JRMP ֥ץȥСѤ륹֥饹ޤϡ\f2\-v1.2\fP ץꤷƱưǤ(5.0 Ǥ \f2\-vcompat\fP ץ󤬥ǥեȤǤäȤաIIOP ץȥѤΥ֤ Tie 饹ˤ \f2\-iiop\fP ץѤޤ .LP .LP -スタブはリモートインタフェースだけを実装し、リモートオブジェクトが実装する局所インタフェースは実装していません。JRMP スタブはリモートオブジェクト自体が実装するリモートインタフェースと同じものを実装しているので、クライアントは、キャストや型チェックに Java プログラミング言語に組み込まれた演算子を使用することができます。IIOP の場合は、\f2PortableRemoteObject.narrow\fP メソッドを使わなければなりません。 +֤ϥ⡼ȥ󥿥ե⡼ȥ֥Ȥɽꥤ󥿥եϼƤޤJRMP ֤ϥ⡼ȥ֥ȼΤ⡼ȥ󥿥եƱΤƤΤǡ饤Ȥϡ㥹Ȥ䷿å Java ץߥ󥰸Ȥ߹ޤ줿黻ҤѤ뤳ȤǤޤIIOP ξϡ\f2PortableRemoteObject.narrow\fP ᥽åɤȤʤФʤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-bootclasspath path -ブートストラップクラスファイルの位置をオーバーライドします。 +֡ȥȥåץ饹եΰ֤򥪡С饤ɤޤ .TP 3 \-classpath path -\f3rmic\fP がクラスを探すためのパスを指定します。このオプションは、デフォルトや CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 -.RS 3 - -.LP +\f3rmic\fP 饹õΥѥꤷޤΥץϡǥեȤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -100,11 +87,7 @@ rmic hello.HelloImpl .fl \fP .fi -.RE -例を示します。 -.RS 3 - -.LP +򼨤ޤ .nf \f3 .fl @@ -112,13 +95,9 @@ rmic hello.HelloImpl .fl \fP .fi -.RE .TP 3 \-d directory -生成されたクラス階層の出力先ディレクトリのルートを指定します。このオプションを使えば、スタブ、スケルトン、および Tie ファイルを格納するディレクトリを指定できます。たとえば、次のようにして使います。 -.RS 3 - -.LP +줿饹ؤνǥ쥯ȥΥ롼ȤꤷޤΥץȤС֡ȥ󡢤 Tie եǼǥ쥯ȥǤޤȤСΤ褦ˤƻȤޤ .nf \f3 .fl @@ -126,49 +105,43 @@ rmic hello.HelloImpl .fl \fP .fi -.RE -\f2MyClass\fP から取得したスタブとスケルトンクラスを \f2/java/classes/foo\fP ディレクトリに置きます。\f2\-d\fP オプションが指定されていない場合は、\f2「\-d\ .」\fPが指定されていると見なされます。ターゲットクラスのパッケージ階層が現在のディレクトリに作成され、スタブ、Tie、およびスケルトンファイルがそのディレクトリに格納されます。(以前のバージョンの \f3rmic\fP では、\f2\-d\fP が指定されていない場合は、パッケージ階層は作成されず、出力ファイルはすべて現在のディレクトリに直接格納されていた)。 +MyClass \f2֤ȥȥ󥯥饹\fP \f2/java/classes/foo\fP ǥ쥯ȥ֤ޤ\f2\-d\fP ץ󤬻ꤵƤʤϡ\f2\-d\ .\fPꤵƤȸʤޤåȥ饹ΥѥåؤߤΥǥ쥯ȥ˺졢֡Tieӥȥե뤬Υǥ쥯ȥ˳Ǽޤ(ΥС \f3rmic\fP Ǥϡ\f2\-d\fP ꤵƤʤϡѥåؤϺ줺ϥեϤ٤ƸߤΥǥ쥯ȥľܳǼƤ) .br \ .TP 3 \-extdirs path -インストール型拡張機能の位置をオーバーライドします。 +󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ .TP 3 \-g -局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号情報だけが生成されます。 -.LP +ɽѿޤह٤ƤΥǥХåޤǥեȤǤϡֹޤ .TP 3 \-idl -\f2rmic\fP によって、指定したクラスおよび参照されたクラスの OMG IDL が生成されます。IDL では、プログラミング言語に依存せずに、宣言するだけでオブジェクトの API を指定することができます。IDL は、メソッドおよびデータの仕様として使用します。 CORBA バインディングを提供する任意の言語で、メソッドおよびデータの作成および呼び出しを行うことができます。これらの言語には、Java および C++ が含まれています。詳細は、 +\f2rmic\fP ˤäơꤷ饹ӻȤ줿饹 OMG IDL ޤIDL Ǥϡץߥ󥰸˰¸ˡǥ֥Ȥ API ꤹ뤳ȤǤޤIDL ϡ᥽åɤӥǡλͤȤƻѤޤCORBA Хǥ󥰤󶡤Ǥդθǡ᥽åɤӥǡκӸƤӽФԤȤǤޤθˤϡJava C++ ޤޤƤޤܺ٤ϡ .na \f2Java Language to IDL Mapping\fP @ .fi -http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) を参照してください。 +http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) 򻲾ȤƤ .LP -\f2\-idl\fP オプションを使うときは、ほかのオプションも指定できます。 +\f2\-idl\fP ץȤȤϡۤΥץǤޤ .RS 3 .TP 3 -\-always または \-alwaysgenerate -既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 +\-always ޤ \-alwaysgenerate +¸Υ֡Tie IDL ϥ饹꿷ȤǤ⡢Ūľޤ .TP 3 \-factory -生成された IDL で factory キーワードを使います。 +줿 IDL factory ɤȤޤ .TP 3 \-idlModule\ fromJavaPackage[.class]\ toIDLModule -IDLEntity パッケージのマップを指定します。例を示します。 \f2\-idlModule foo.bar my::real::idlmod\fP +IDLEntity ѥåΥޥåפꤷޤ򼨤ޤ \f2\-idlModule foo.bar my::real::idlmod\fP .TP 3 \-idlFile\ fromJavaPackage[.class]\ toIDLFile -IDLEntity ファイルのマップを指定します。例を示します。 \f2\-idlFile test.pkg.X TEST16.idl\fP\ +IDLEntity եΥޥåפꤷޤ򼨤ޤ \f2\-idlFile test.pkg.X TEST16.idl\fP\ .RE -.LP .TP 3 \-iiop -\f2rmic\fP によって、JRMP のスタブとスケルトンクラスの代わりに、IIOP のスタブと Tie クラスが生成されます。スタブクラスは、リモートオブジェクトのローカルプロキシで、クライアントからサーバーに呼び出しを送信するときに使われます。各リモートインタフェースにはスタブクラスが必要です。 スタブクラスによってリモートインタフェースが実装されます。クライアントでリモートオブジェクトを参照するときは、実際にはスタブを参照することになります。タイクラスは、サーバー側で着呼を処理し、その呼び出しを適切な実装クラスにディスパッチするときに使われます。各実装クラスには、タイクラスが必要です。 -.LP -\f2\-iiop\fP を使って \f2rmic\fP を呼び出すと、次の命名規約に準拠したスタブと Tie が生成されます。 -.RS 3 - +\f2rmic\fP ˤäơJRMP Υ֤ȥȥ󥯥饹ˡIIOP Υ֤ Tie 饹ޤ֥饹ϡ⡼ȥ֥ȤΥץǡ饤Ȥ饵С˸ƤӽФȤ˻Ȥޤƥ⡼ȥ󥿥եˤϥ֥饹ɬפǤ֥饹ˤäƥ⡼ȥ󥿥եޤ饤Ȥǥ⡼ȥ֥Ȥ򻲾ȤȤϡºݤˤϥ֤򻲾Ȥ뤳Ȥˤʤޤ饹ϡС¦ƤθƤӽФŬڤʼ饹˥ǥѥåȤ˻ȤޤƼ饹ˤϡ饹ɬפǤ .LP +\f2\-iiop\fP Ȥä \f2rmic\fP ƤӽФȡ̿̾˽򤷤֤ Tie ޤ .nf \f3 .fl @@ -182,66 +155,60 @@ _<interfaceName>_tie.class .fl \fP .fi -.RE .LP -\f2\-iiop\fP オプションを使うときは、ほかのオプションも指定できます。 +\f2\-iiop\fP ץȤȤϡۤΥץǤޤ .RS 3 .TP 3 -\-always または \-alwaysgenerate -既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 +\-always ޤ \-alwaysgenerate +¸Υ֡Tie IDL ϥ饹꿷ȤǤ⡢Ūľޤ .TP 3 \-nolocalstubs -同じプロセスのクライアントとサーバーに対して最適化されたスタブを作成しません。 +ƱץΥ饤ȤȥСФƺŬ줿֤ޤ .TP 3 \-noValueMethods -\f2\-idl\fP オプションとともに使われなければなりません。発行された IDL に、\f2valuetype\fP メソッドおよび初期化子を追加しません。このメソッドおよび初期化子は、\f2valuetype\fP の場合はオプションです。 \f2\-idl\fP オプションを使うときは、 \f2\-noValueMethods\fP オプションを指定しない限り生成されます。 + \f2\-idl\fP ץȤȤ˻ȤʤФʤޤȯԤ줿 IDL ˡ\f2valuetype\fP ᥽åɤӽҤɲäޤ󡣤Υ᥽åɤӽҤϡ\f2valuetype\fP ξϥץǤ \f2\-idl\fP ץȤȤϡ \f2\-noValueMethods\fP ץꤷʤ¤ޤ .TP 3 \-poa -継承が \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP から \f2org.omg.PortableServer.Servant\fP に変わります。 +Ѿ \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP \f2org.omg.PortableServer.Servant\fP Ѥޤ .LP .na \f2Portable Object Adapter\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) の \f2PortableServer\fP モジュールは、ネイティブの \f2Servant\fP 型を定義します。Java プログラミング言語では、\f2Servant\fP 型は、Java の \f2org.omg.PortableServer.Servant\fP クラスにマッピングされています。これはあらゆる POA サーバント実装の基底クラスとなり多数のメソッドを提供します。 これらのメソッドはアプリケーションプログラマが呼び出すだけではなく、POA 自身からも呼び出され、場合によってはサーバントの動作を制御するためにユーザーがオーバーライドすることもあります。OMG IDL to Java Language Mapping Specification、CORBA V 2.3.1 ptc/00\-01\-08.pdf に準拠しています。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) \f2PortableServer\fP ⥸塼ϡͥƥ֤ \f2Servant\fP ޤJava ץߥ󥰸Ǥϡ\f2Servant\fP Java \f2org.omg.PortableServer.Servant\fP 饹˥ޥåפޤΥ饹ϡ٤Ƥ POA Хȼδ쥯饹ȤƵǽץꥱץޤƤӽФȤΤǤ뤤ĤΥ᥽åɤΤۤˡPOA ΤΤˤäƸƤӽФ졢ХȤư椹뤿˥桼С饤ɤǤ᥽åɤ󶡤ޤOMG IDL to Java Language Mapping SpecificationCORBA V 2.3.1 ptc/00\-01\-08.pdf ˽򤷤Ƥޤ .RE .TP 3 \-J -\f2\-J\fP の後ろに続くオプションを \f2java\fP インタプリタに引き渡します。 \f2java\fP オプションと組み合わせて使います (\f2\-J\fP と \f2java\fP オプションの間にスペースは入れない)。 +\f2\-J\fP θ³ץ \f2java\fP 󥿥ץ꥿˰Ϥޤ \f2java\fP ץȤ߹碌ƻȤޤ (\-J java ץδ֤˥ڡʤ) .TP 3 -\-keep または \-keepgenerated -スタブ、スケルトン、または Tie クラスのための \f2.java\fP ソースファイルを \f2.class\fP ファイルと同じディレクトリに残します。 +\-keep ޤ \-keepgenerated +֡ȥ󡢤ޤ Tie 饹Τ \f2.java\fP ե \f2.class\fP եƱǥ쥯ȥ˻Ĥޤ .TP 3 \-nowarn -警告をオフにします。このオプションを指定すると、コンパイラは警告を表示しません。 -.LP +ٹ򥪥դˤޤΥץꤹȡѥϷٹɽޤ +.TP 3 +\-nowrite +ѥ뤷饹ե륷ƥ˽񤭹ߤޤ .TP 3 \-vcompat -1.1 と 1.2 の両方の JRMP スタブプロトコルバージョンと互換性のあるスタブおよびスケルトンクラスを作成します。(5.0 以前のリリースではこのオプションはデフォルト。)生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされると 1.1 スタブプロトコルバージョンを使用し、JDK 1.2 以降の仮想マシンにロードされると 1.2 スタブプロトコルバージョンを使用します。生成されたスケルトンクラスでは、1.1 と 1.2 の両方のスタブプロトコルバージョンをサポートします。生成されたクラスは両方の操作モードをサポートするために、サイズが大きくなります。 +1.1 1.2 ξ JRMP ֥ץȥСȸߴΤ륹֤ӥȥ󥯥饹ޤ(5.0 Υ꡼ǤϤΥץϥǥեȡ)줿֥饹ϡJDK 1.1 ۥޥ˥ɤ 1.1 ֥ץȥСѤJDK 1.2 ʹߤβۥޥ˥ɤ 1.2 ֥ץȥСѤޤ줿ȥ󥯥饹Ǥϡ1.1 1.2 ξΥ֥ץȥС򥵥ݡȤޤ줿饹ξ⡼ɤ򥵥ݡȤ뤿ˡ礭ʤޤ .TP 3 \-verbose -コンパイラやリンカーが、コンパイルされているクラスやロードされているクラスファイルについてのメッセージを表示するようにします。 -.LP +ѥ󥫡ѥ뤵Ƥ륯饹ɤƤ륯饹եˤĤƤΥåɽ褦ˤޤ .TP 3 \-v1.1 -1.1 JRMP スタブプロトコルバージョンのみのスタブおよびスケルトンクラスを生成します。このオプションが使用できるのは、JDK 1.1 から \f3rmic\fP ツールで生成され、アップグレードできない (さらにダイナミッククラスローディングを使用していない) 、既存の静的配備されたスタブクラスに対し、直列化互換性のあるスタブクラスを生成場合だけです。 -.LP +1.1 JRMP ֥ץȥСΤߤΥ֤ӥȥ󥯥饹ޤΥץ󤬻ѤǤΤϡJDK 1.1 \f3rmic\fP ġ졢åץ졼ɤǤʤ (˥ʥߥå饹ǥ󥰤ѤƤʤ) ¸Ū줿֥饹Фľ󲽸ߴΤ륹֥饹Ǥ .TP 3 \-v1.2 -(デフォルト) 1.2 JRMP スタブプロトコルバージョンのみのスタブクラスを生成します。スケルトンクラスは 1.2 スタブプロトコルバージョンで使用できないため、このオプションではスケルトンクラスは生成されません。生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされても動作しません。 +(ǥե) 1.2 JRMP ֥ץȥСΤߤΥ֥饹ޤȥ󥯥饹 1.2 ֥ץȥСǻѤǤʤᡢΥץǤϥȥ󥯥饹ޤ줿֥饹ϡJDK 1.1 ۥޥ˥ɤƤưޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。次に例を示します。 -.RS 3 - -.LP +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -250,15 +217,12 @@ CLASSPATH \fP .fi .RE -.RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -java(1)、javac(1)、 +java(1)javac(1) .na \f2CLASSPATH\fP @ .fi diff --git a/jdk/src/linux/doc/man/ja/rmid.1 b/jdk/src/linux/doc/man/ja/rmid.1 index 37d7d6a7657..232cf1ad050 100644 --- a/jdk/src/linux/doc/man/ja/rmid.1 +++ b/jdk/src/linux/doc/man/ja/rmid.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "02 Jun 2010" +.TH rmid 1 "14 Apr 2011" .LP -.SH "名前" -rmid \- Java RMI 起動システムデーモン -.LP -.RS 3 - +.SH "̾" +rmid \- Java RMI ưƥǡ .LP .LP -\f3rmid\fP で起動システムデーモンを開始すると、オブジェクトを仮想マシン (VM) に登録して起動できるようになります。 +\f3rmid\fP ǵưƥǡ򳫻Ϥȡ֥Ȥۥޥ (VM) ϿƵưǤ褦ˤʤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,23 +39,21 @@ rmid [options] .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmid\fP ツールは、起動システムデーモンを開始します。起動システムデーモンを開始してからでないと、起動可能オブジェクトを起動システムに登録したり、VM 内で起動したりすることができません。起動可能なリモートオブジェクトを使ったプログラムの作成方法の詳細は、 +\f3rmid\fP ġϡưƥǡ򳫻Ϥޤưƥǡ򳫻ϤƤǤʤȡưǽ֥ȤưƥϿꡢVM ǵưꤹ뤳ȤǤޤ󡣵ưǽʥ⡼ȥ֥ȤȤäץκˡξܺ٤ϡ .na -\f2「Java RMI 仕様」\fP @ +\f2Java RMI ͡\fP @ .fi -http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.htmlおよび +http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.html .na -\f2「起動のチュートリアル」\fP @ +\f2ֵưΥ塼ȥꥢ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.htmlを参照してくだ さい。 +http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html򻲾ȤƤ .LP .LP -デーモンを起動するには、次のように、セキュリティーポリシーファイルを指定して \f2rmid\fP コマンドを実行します。 +ǡưˤϡΤ褦ˡƥݥꥷեꤷ \f2rmid\fP ޥɤ¹Ԥޤ .LP .nf \f3 @@ -73,23 +65,23 @@ http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html .LP .LP -\f3注:\fP\f2rmid\fP の Sun の 実装を実行する場合、デフォルトでは、セキュリティーポリシーファイルを指定する必要があります。 それは、起動グループ用に VM を起動するために各 \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを \f2rmid\fP が検証できるようにするためです。特に、\f2ActivationGroupDesc\fP のコンストラクタに渡される \f2CommandEnvironment\fP や任意の \f2Properties\fP によって指定されるコマンドおよびオプションは、\f2rmid\fP のセキュリティーポリシーファイルの中で明示的に許可することが必要になりました。\f2sun.rmi.activation.execPolicy\fP プロパティーの値は、起動グループ用に VM を起動するために \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを判断するときに \f2rmid\fP が使用するポリシーを決定します。 +\f3:\fP \f2rmid\fP Sun ¹Ԥ硢ǥեȤǤϡƥݥꥷեꤹɬפޤϡ \f2rmid\fP ư롼Ѥ VM ư뤿˳ \f2ActivationGroupDesc\fP ξѤǤ뤫ɤ򸡾ڤǤ褦ˤ뤿ǤäˡActivationGroupDesc Υ󥹥ȥ饯Ϥ \f2CommandEnvironment\fP Ǥդ \f2Properties\fP ˤäƻꤵ \f2ޥɤ\fPץϡ \f2rmid\fP ΥƥݥꥷեŪ˵Ĥ뤳Ȥɬפˤʤޤ\f2sun.rmi.activation.execPolicy\fP ץѥƥͤϡ \f2ư롼Ѥ VM \fP ư뤿 \f2ActivationGroupDesc\fP ξѤǤ뤫ɤȽǤȤ rmid Ѥݥꥷꤷޤ .LP .LP -\f2rmid\fP をデフォルト設定で実行すると、次のような処理が行われます。 +\f2rmid\fP ǥեǼ¹ԤȡΤ褦ʽԤޤ .LP .RS 3 .TP 2 o -アクティベータを起動し、デフォルトポート 1098 で内部レジストリを起動する +ƥ١ưǥեȥݡ 1098 쥸ȥư .TP 2 o -この内部レジストリの中で、\f2ActivationSystem\fP を \f2java.rmi.activation.ActivationSystem\fP という名前にバインドする +쥸ȥǡ \f2ActivationSystem\fP \f2java.rmi.activation.ActivationSystem Ȥ̾\fP Хɤ .RE .LP .LP -レジストリにほかのポートを指定するには、\f2rmid\fP の起動時に \f2\-port\fP オプションを指定しなければなりません。次に例を示します。 +쥸ȥˤۤΥݡȤꤹˤϡrmid εư \f2\-port\fP ץ \f2ꤷʤФʤޤ\fP򼨤ޤ .LP .nf \f3 @@ -101,44 +93,42 @@ o .LP .LP -このコマンドは、起動システムデーモンを開始し、レジストリのデフォルトポート 1099 でレジストリを開始します。 +Υޥɤϡưƥǡ򳫻Ϥ쥸ȥΥǥեȥݡ 1099 ǥ쥸ȥ򳫻Ϥޤ .LP .SS -rmid を inetd/xinetd から開始する +rmid inetd/xinetd 鳫Ϥ .LP .LP -\f2rmid\fP をコマンド行から開始するには、\f2inetd\fP (Solaris の場合)、または \f2xinetd\fP (Linux) を構成して \f2rmid\fP を必要に応じて開始する方法もあります。 +\f2rmid\fP 򥳥ޥɹԤ鳫Ϥˤϡ \f2inetd\fP (Solaris ξ)ޤ \f2xinetd\fP (Linux ξ) \f2rmid\fP ɬפ˱ƳϤˡ⤢ޤ .LP .LP -\f2rmid\fP を開始すると、\f2System.inheritedChannel\fP メソッドを呼び出して、継承されたチャンネル (\f2inetd\fP/\f2xinetd\fP から継承) を取得しようとします。継承されたチャンネルが \f2null\fP であるか、\f2java.nio.channels.ServerSocketChannel\fP のインスタンスでなかった場合、\f2rmid\fP はそのチャンネルは \f2inetd\fP/\f2xinetd\fP によって起動されたものではないと判断し、前述のように起動します。 +\f2rmid\fP 򳫻ϤȡSystem.inheritedChannel ᥽åɤƤӽФơѾ줿ͥ ( \f2inetd\fP/\f2xinetd\fP Ѿ) 褦Ȥޤ Ѿ줿ͥ뤬 \f2null\fP Ǥ뤫 \f2java.nio.channels.ServerSocketChannel\fP Υ󥹥󥹤Ǥʤä硢 \f2rmid\fP rmid ϤΥͥ \f2inetd\fP/\f2xinetd\fP ˤäƵư줿ΤǤϤʤȽǤҤΤ褦˵ưޤ .LP .LP -継承されたチャンネルが \f2ServerSocketChannel\fP インスタンスである場合は、エクスポートするリモートオブジェクト、つまり \f2java.rmi.activation.ActivationSystem\fP がバインドされているレジストリと \f2java.rmi.activation.Activator\fP リモートオブジェクトに対する要求を受信するサーバーソケットとして、\f2ServerSocketChannel\fP から取得した \f2java.net.ServerSocket\fP を \f2rmid\fP では使用します。このモードでは、\f2rmid\fP の動作は、次のことを除いて、 コマンド行から起動した場合と同じです。 +Ѿ줿ͥ뤬 \f2ServerSocketChannel\fP 󥹥󥹤Ǥϡ \f2rmid\fP ϥݡȤ⡼ȥ֥ȡĤޤ java.rmi.activation.ActivationSystem ХɤƤ쥸ȥ java.rmi.activation.Activator ⡼ȥ֥ȤФ׵륵СåȤȤơServerSocketChannel java.net.ServerSocket Ѥޤ Υ⡼ɤǤϡ \f2rmid\fP ưϡΤȤơ ޥɹԤ鵯ưƱǤ .LP .RS 3 .TP 2 o -\f2System.err\fP に対する出力は、ファイルにリダイレクトされる。このファイルは \f2java.io.tmpdir\fP システムプロパティーで指定されるディレクトリ (通常は \f2/var/tmp\fP または \f2/tmp\fP) にある。 ファイル名の接頭辞は \f2rmid\-err\fP で、接尾辞は \f2"tmp"\fP である +\f2System.err\fP ФϤϡե˥쥯Ȥ롣Υե \f2java.io.tmpdir\fP ƥץѥƥǻꤵǥ쥯ȥ (̾ \f2/var/tmp\fP ޤ \f2/tmp\fP) ˤ롣ե̾Ƭ \f2"rmid\-err"\fP ǡ \f2"tmp"\fP Ǥ .TP 2 o -\f2\-port\fP オプションは拒否される。このオプションを指定すると、\f2rmid\fP はエラーメッセージを出して終了する +\f2\-port\fP ץϵݤ롣Υץꤹȡ \f2rmid\fP ϥ顼åФƽλ .TP 2 o -\f2\-log\fP オプションは必須。このオプションを指定しないと、\f2rmid\fP はエラーメッセージを出して終了する +\f2\-log\fP ץɬܡΥץꤷʤȡ \f2rmid\fP ϥ顼åФƽλ .RE .LP .LP -必要に応じてサービスを開始するように設定する詳細については、\f2inetd\fP (Solaris) または \f2xinetd\fP (Linux) のマニュアルページを参照してください。 +ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris) ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-C<someCommandLineOption> -\f2rmid\fP の子プロセス (起動グループ) が作成されたときに、それぞれの子プロセスにコマンド行引数として渡されるオプションを指定します。たとえば、次のように指定すると、起動システムデーモ ンによって生成される各仮想マシンにプロパティーを渡すことができます。 +\f2rmid\fP λҥץ (ư롼) 줿Ȥˡ줾λҥץ˥ޥɹ԰ȤϤ륪ץꤷޤȤСΤ褦˻ꤹȡưƥǡˤäƲۥޥ˥ץѥƥϤȤǤޤ .nf \f3 .fl @@ -146,7 +136,7 @@ o .fl \fP .fi -コマンド行引数を子プロセスに渡す機能は、デバッグを行う場合に便利です。たとえば、次のようなコマンドを実行できます。 +ޥɹ԰ҥץϤǽϡǥХåԤǤȤСΤ褦ʥޥɤ¹ԤǤޤ .nf \f3 .fl @@ -154,11 +144,11 @@ o .fl \fP .fi -このコマンドにより、すべての子 VM でサーバー呼び出しのログが作成されるようになります。 +Υޥɤˤꡢ٤Ƥλ VM ǥСƤӽФΥ褦ˤʤޤ .LP .TP 3 \-J<someCommandLineOption> -\f2rmid\fP を実行している \f2java\fP インタプリタに渡すオプションを指定します。たとえば、\f2rmid\fP が \f2rmid.policy\fP という名前のポリシーファイルを使用するように指定するには、\f2rmid\fP のコマンド行で \f2\-J\fP オプションを使って、\f2java.security.policy\fP プロパティーを定義します。 次に例を示します。 +rmid ¹ԤƤ \f2java\fP 󥿥ץ꥿Ϥץꤷޤ ȤС \f2rmid\fP \f2rmid.policy\fP Ȥ̾ΥݥꥷեѤ褦˻ꤹˤϡrmid ΥޥɹԤ \f2\-J\fP ץȤäơ \f2java.security.policy\fP ץѥƥޤ 򼨤ޤ .nf \f3 .fl @@ -168,16 +158,15 @@ o .fi .TP 3 \-J\-Dsun.rmi.activation.execPolicy=<policy> -起動グループが実行されることになる VM の起動に使用するコマンドおよびコマンド行オプションをチェックするために、\f2rmid\fP が採用するポリシーを指定します。このオプションは、Java RMI 起動デーモンの Sun の実装だけに存在することに注意してください。コマンド行にこのプロパティーを指定しない場合、結果は \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP を指定した場合と同じになります。\f2<policy>\fP に指定可能な値は、\f2default\fP、\f2<policyClassName>\fP、または \f2none\fP です。 それぞれの値について、このあと説明します。 -.LP +ư롼פ¹Ԥ뤳Ȥˤʤ VM εư˻Ѥ륳ޥɤӥޥɹԥץå뤿ˡ \f2rmid\fP ѤݥꥷꤷޤΥץϡJava RMI ưǡ Sun μ¸ߤ뤳ȤդƤޥɹԤˤΥץѥƥꤷʤ硢̤ \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP ꤷƱˤʤޤ\f2<policy>\fP ˻ǽͤϡ\f2default\fP\f2<policyClassName>\fPޤ \f2none\fP Ǥ .RS 3 .TP 2 o -\f3default (または、このプロパティーが「指定されていない」場合)\fP +\f3default (ޤϡΥץѥƥֻꤵƤʤ׾)\fP .LP -デフォルトの \f2execPolicy\fP の場合、\f2rmid\fP が実行できるのは、\f2rmid\fP が使用する セキュリティーポリシーファイルの中で、実行する権限が \f2rmid\fP に与えられているコマンドおよびコマンド行オプションだけです。「デフォルト」の実行ポリシーで使用できるのは、デフォルトの起動グループ実装だけです。 +ǥեȤ \f2execPolicy\fP ξ硢 \f2rmid\fP ¹ԤǤΤϡ \f2rmid\fP Ѥ륻ƥݥꥷեǡ¹Ԥ븢¤ \f2rmid\fP ͿƤ륳ޥɤӥޥɹԥץǤ֥ǥեȡפμ¹ԥݥꥷǻѤǤΤϡǥեȤεư롼׼Ǥ .LP -\f2rmid\fP は、起動グループ用の VM を起動するときに、そのグループについて登録された起動グループ記述子である \f2ActivationGroupDesc\fP 内の情報を使用します。グループ記述子は、\f2ActivationGroupDesc.CommandEnvironment\fP を指定します (省略可能)。 これには、起動グループを開始する「コマンド」と、そのコマンド行に追加できるコマンド行「オプション」が含まれています。デフォルトでは、\f2rmid\fP は、\f2java.home\fP にある \f2java\fP コマンドを使用します。グループ記述子には、オプションとしてコマンド行に追加される「プロパティー」オーバーライドも含まれています。 このプロパティーは、次のように定義します。 +\f2rmid ϡ\fP ư롼Ѥ VM ưȤˡΥ롼פˤĤϿ줿ư롼׵һҤǤ \f2ActivationGroupDesc\fP ξѤޤ롼׵һҤϡ \f2ActivationGroupDesc.CommandEnvironment\fP ꤷޤ (άǽ)ˤϡư롼פ򳫻Ϥ֥ޥɡפȡΥޥɹԤɲäǤ륳ޥɹԡ֥ץפޤޤƤޤǥեȤǤϡ \f2rmid \fP java.home ˤ \f2java\fP ޥɤѤޤ 롼׵һҤˤϡץȤƥޥɹԤɲä֥ץѥƥץС饤ɤޤޤƤޤΥץѥƥϡΤ褦ޤ .nf \f3 .fl @@ -186,33 +175,33 @@ o \fP .fi .LP -アクセス権 \f2com.sun.rmi.rmid.ExecPermission\fP を使用すると、グループ記述子の \f2CommandEnvironment\fP で指定されたコマンドを実行して起動グループを開始する権限を、\f2rmid\fP に対して許可することができます。アクセス権 \f2com.sun.rmi.rmid.ExecOptionPermission\fP を使用すると、グループ記述子でプロパティーオーバーライドとして指定されたコマンド行オプション、または \f2CommandEnvironment\fP でオプションとして指定されたコマンド行オプションを、起動グループを開始するときに \f2rmid\fP が使用できるようになります。 + \f2com.sun.rmi.rmid.ExecPermission\fP Ѥȡ \f2rmid\fP Фơ롼׵һҤ \f2CommandEnvironment\fP ǻꤵ줿ޥɤ¹ԤƵư롼פ򳫻Ϥ븢¤Ĥ뤳ȤǤޤ \f2com.sun.rmi.rmid.ExecOptionPermission\fP Ѥȡ롼׵һҤǥץѥƥС饤ɤȤƻꤵ줿ޥɹԥץ󡢤ޤ \f2CommandEnvironment\fP ǥץȤƻꤵ줿ޥɹԥץ򡢵ư롼פ򳫻ϤȤ rmid ѤǤ褦ˤʤޤ .LP -\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。 +\f2rmid \fP ޤޤʥޥɤӥץ¹Ԥ븢¤Ĥϡ \f2ExecPermission\fP \f2ExecOptionPermission\fP Ū˵ĤɬפޤĤޤꡢ٤ƤΥɥФƵĤޤ .RS 3 .TP 3 ExecPermission -\f2ExecPermission\fP クラスは、起動グループを開始するために \f2rmid\fP が特定の「コマンド」を実行する権限を表します。 +\f2ExecPermission\fP 饹ϡư롼פ򳫻Ϥ뤿 \f2rmid \fP Ρ֥ޥɡפ¹Ԥ븢¤ɽޤ .LP -\f3構文\fP +\f3ʸ\fP .br -\f2ExecPermission\fP の「名前」は、\f2rmid\fP に実行を許可するコマンドのパス名です。「/*」 (「/」はファイル区切り文字 \f2File.separatorChar\fP) で終わるパス名は、そのディレクトリに含まれるすべてのファイルを示します。「/\-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を示します。パス名に特別なトークン「<<ALL FILES>>」を指定した場合は、\f3任意の\fPファイルを示します。 +\f2ExecPermission\fP Ρ̾פϡ \f2rmid\fP ˼¹ԤĤ륳ޥɤΥѥ̾Ǥ/* (/פϥեڤʸ File.separatorChar) ǽѥ̾ϡΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥե򼨤ޤ /\-פǽѥ̾ϡΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥեȥ֥ǥ쥯ȥ (ƵŪ) 򼨤ޤѥ̤̾ʥȡ<<ALL FILES>>פꤷϡ\f3Ǥդ\fPե򼨤ޤ .LP -\f3注:\fP「*」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルを表します。 また、「\-」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルと、現在のディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を表します。 +\f3:\fP *פ 1 ĻꤷΥѥ̾ϡߤΥǥ쥯ȥΤ٤ƤΥեɽޤޤ\-פ 1 ĻꤷΥѥ̾ϡߤΥǥ쥯ȥΤ٤ƤΥեȡߤΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥեȥ֥ǥ쥯ȥ (ƵŪ) ɽޤ .TP 3 ExecOptionPermission -\f2ExecOptionPermission\fP クラスは、起動グループを開始するときに \f2rmid\fP が特定のコマンド行「オプション」を使用できる権限を表します。\f2ExecOptionPermission\fP の「名前」は、コマンド行オプションの値です。 +\f2ExecOptionPermission\fP 饹ϡư롼פ򳫻ϤȤ \f2rmid ϡư롼פ򳫻Ϥ륳ޥɤޤäڤޤ\fP Υޥɹԡ֥ץפѤǤ븢¤ɽޤ \f2ExecOptionPermission\fP Ρ̾פϡޥɹԥץͤǤ .LP -\f3構文\fP +\f3ʸ\fP .br -オプションでは、ワイルドカードが限定的にサポートされます。アスタリスクは、ワイルドカードマッチを表します。 アスタリスクは、オプション名そのものとして使用できます。 つまり、任意のオプションを表すことができます。 また、オプション名の末尾に使用することもできます。 ただし、「.」か「=」の直後にアスタリスクを指定する必要があります。 +ץǤϡ磻ɥɤŪ˥ݡȤޤꥹϡ磻ɥɥޥåɽޤ ꥹϡץ̾ΤΤȤƻѤǤޤ ĤޤꡢǤդΥץɽȤǤޤ ޤץ̾˻Ѥ뤳ȤǤޤ .פ=פľ˥ꥹꤹɬפޤ .LP -例を示します。「*」、「\-Dfoo.*」、「\-Da.b.c=*」は有効ですが、「*foo」、「\-Da*b」、「ab*」は無効です。 +򼨤ޤ*ס\-Dfoo.*ס\-Da.b.c=*פͭǤ*fooס\-Da*bסab*פ̵Ǥ .TP 3 -rmid のポリシーファイル -\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。これらのアクセス権をチェックするのは \f2rmid\fP だけなので、これらのアクセス権を汎用的に許可しても安全です。 +rmid Υݥꥷե +\f2rmid \fP ޤޤʥޥɤӥץ¹Ԥ븢¤Ĥϡ \f2ExecPermission\fP \f2ExecOptionPermission\fP Ū˵ĤɬפޤĤޤꡢ٤ƤΥɥФƵĤޤΥåΤ \f2rmid\fP ʤΤǡΥŪ˵ĤƤǤ .LP -\f2rmid\fP に各種の実行権限を許可するポリシーファイルの例を、次に示します。 +rmid ˳Ƽμ¹Ը¤Ĥݥꥷե򡢼˼ޤ .nf \f3 .fl @@ -220,13 +209,7 @@ grant { .fl permission com.sun.rmi.rmid.ExecPermission .fl - "/files/apps/java/jdk1.2.2/solaris/bin/java"; -.fl - -.fl - permission com.sun.rmi.rmid.ExecPermission -.fl - "/files/apps/java/jdk1.2.2/solaris/bin/java_g"; + "/files/apps/java/jdk1.7.0/solaris/bin/java"; .fl .fl @@ -256,29 +239,21 @@ grant { .fl \fP .fi -最初の 2 つの付与されているアクセス権は、\f2rmid\fP に対し、パス名により明示的に指定される \f2java\fP コマンドおよび \f2java_g\fP コマンドの 1.2.2 バージョンの実行を許可します。デフォルトでは、\f2java.home\fP にあるバージョンの \f2java\fP コマンド (\f2rmid\fP が使用するのと同じバージョン) が使用されるため、そのコマンドは、ポリシーファイルで指定する必要はありません。3 番目のアクセス権は、\f2rmid\fP に対して、ディレクトリ \f2/files/apps/rmidcmds\fP 内の任意のコマンドの実行権限を許可します。 +ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥ ( \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ .LP -4 番目のアクセス権 \f2ExecOptionPermission\fP は、\f2rmid\fP に対して、セキュリティーポリシーファイルを \f2/files/policies/group.policy\fP として定義している起動グループの開始を許可します。5 番目のアクセス権は、起動グループが \f2java.security.debug\fP プロパティーを使用することを許可しています。最後のアクセス権は、起動グループが \f2sun.rmi\fP というプロパティー名の階層内の任意のプロパティーを使用することを許可しています。 +3 ܤͿƤ륢 \f2ExecOptionPermission\fP ϡ \f2rmid\fP Фơƥݥꥷե \f2/files/policies/group.policy\fP ȤƤ뵯ư롼פγϤĤޤΥϡư롼פ \f2java.security.debug\fP ץѥƥѤ뤳ȤĤƤޤǸΥϡư롼פ \f2sun.rmi\fP Ȥץѥƥ̾γǤդΥץѥƥѤ뤳ȤĤƤޤ .LP -ポリシーファイルを指定して \f2rmid\fP を起動するには、\f2rmid\fP のコマンド行で \f2java.security.policy\fP プロパティーを指定する必要があります。 次に例を示します。 -.RS 3 - -.LP -.LP -\f2rmid \-J\-Djava.security.policy=rmid.policy\fP +ݥꥷեꤷ \f2rmid\fP ưˤϡrmid ΥޥɹԤ \f2java.security.policy\fP ץѥƥꤹɬפޤ 򼨤ޤ .LP +\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .RE -.RE -.TP 2 -o -.LP .TP 2 o \f4<policyClassName>\fP .LP -デフォルトの動作では十分な柔軟性が得られない場合、管理者は、\f2rmid\fP の起動時に、\f2checkExecCommand\fP メソッドが所属するクラスの名前を指定して、rmid が実行するコマンドをチェックすることができます。 +ǥեȤưǤϽʬʽʤ硢Ԥϡ \f2rmid\fP εưˡ \f2checkExecCommand\fP ᥽åɤ°륯饹̾ꤷơrmid ¹Ԥ륳ޥɤå뤳ȤǤޤ .LP -\f2policyClassName\fP には、引数なしのコンストラクタを持ち、次のような \f2checkExecCommand\fP メソッドを実装している public クラスを指定します。 +\f2policyClassName\fP ˤϡʤΥ󥹥ȥ饯Τ褦 \f2checkExecCommand\fP ᥽åɤƤ public 饹ꤷޤ .nf \f3 .fl @@ -290,22 +265,21 @@ o .fl \fP .fi -起動グループを開始する前に、\f2rmid\fP は、ポリシーの \f2checkExecCommand\fP メソッドを呼び出します。このとき、起動グループの記述子と、起動グループを開始するための完全なコマンドを含む配列をそのメソッドに渡します。\f2checkExecCommand\fP が \f2SecurityException\fP をスローすると、\f2rmid\fP はその起動グループを開始せず、オブジェクトの起動を試行している呼び出し側には \f2ActivationException\fP がスローされます。 -.LP +ư롼פ򳫻Ϥˡ \f2rmid\fP ϡݥꥷ \f2checkExecCommand\fP ᥽åɤƤӽФޤΤȤư롼פεһҤȡư롼פ򳫻Ϥ뤿δʥޥɤޤ򤽤Υ᥽åɤϤޤ \f2checkExecCommand\fP \f2SecurityException\fP 򥹥ȡ \f2rmid\fP Ϥεư롼פ򳫻Ϥ֥ȤεưԤƤƤӽФ¦ˤ \f2ActivationException\fP ޤ .TP 2 o \f3none\fP .LP -\f2sun.rmi.activation.execPolicy\fP プロパティーの値が「none」の場合、\f2rmid\fP は、起動グループを開始するコマンドをまったく検証しません。 +\f2sun.rmi.activation.execPolicy\fP ץѥƥͤnoneפξ硢 \f2rmid\fP ϡư롼פ򳫻Ϥ륳ޥɤޤäڤޤ .RE .LP .TP 3 \-log dir -起動システムデーモンがデータベースおよび関連情報を書き込むのに使うディレクトリの名前を指定します。デフォルトでは、\f2rmid\fP コマンドを実行したディレクトリに、\f2log\fP というログディレクトリが作成されます。 +ưƥǡ󤬥ǡ١ӴϢ񤭹Τ˻Ȥǥ쥯ȥ̾ꤷޤǥեȤǤϡrmid ޥɤ¹Ԥǥ쥯ȥˡ \f2log\fP Ȥǥ쥯ȥ꤬ޤ .LP .TP 3 \-port port -\f2rmid\fP のレジストリが使うポートを指定します。起動システムデーモンは、このレジストリの中で、\f2java.rmi.activation.ActivationSystem\fP という名前で\f2ActivationSystem\fP をバインドします。したがって、ローカルマシン上の \f2ActivationSystem\fP は、次のように \f2Naming.lookup\fP メソッドを呼び出すことによって取得できます。 +\f2rmid\fP Υ쥸ȥ꤬ȤݡȤꤷޤưƥǡϡΥ쥸ȥǡ \f2java.rmi.activation.ActivationSystem\fP Ȥ̾ActivationSystem Хɤޤäơޥ \f2ActivationSystem\fP ϡΤ褦 \f2Naming.lookup\fP ᥽åɤƤӽФȤˤäƼǤޤ .nf \f3 .fl @@ -322,16 +296,16 @@ o .fi .TP 3 \-stop -\f2\-port\fP オプションによって指定されたポートの、現在の \f2rmid\fP 呼び出しを停止します。ポートが指定されていない場合は、ポート 1098 で実行されている \f2rmid\fP を停止します。 +\-port ץˤäƻꤵ줿ݡȤΡߤ \f2rmid\fP ƤӽФߤޤ ݡȤꤵƤʤϡݡ 1098 Ǽ¹ԤƤ \f2rmid\fP ߤޤ .RE -.SH "環境変数" -.LP +.LP +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。例を示します。 +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -342,15 +316,13 @@ CLASSPATH .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -rmic(1)、 +rmic(1) .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath、java(1) +http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathjava(1) .LP diff --git a/jdk/src/linux/doc/man/ja/rmiregistry.1 b/jdk/src/linux/doc/man/ja/rmiregistry.1 index 7a36ac9e5d2..864ccc78375 100644 --- a/jdk/src/linux/doc/man/ja/rmiregistry.1 +++ b/jdk/src/linux/doc/man/ja/rmiregistry.1 @@ -19,22 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "02 Jun 2010" +.TH rmiregistry 1 "14 Apr 2011" .LP -.SH "名前" -rmiregistry \- Java リモートオブジェクトレジストリ +.SH "̾" +rmiregistry \- Java ⡼ȥ֥ȥ쥸ȥ .LP .RS 3 - -.LP -.LP -\f3rmiregistry\fP コマンドは、現在のホストの指定したポート上にリモートオブジェクトレジストリを開始します。 -.LP +\f3rmiregistry\fP ޥɤϡߤΥۥȤλꤷݡȾ˥⡼ȥ֥ȥ쥸ȥ򳫻Ϥޤ .RE -.SH "形式" -.LP +.LP +.SH "" .LP .nf \f3 @@ -45,52 +41,43 @@ rmiregistry [\fP\f4port\fP\f3] .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmiregistry\fP コマンドは、現在のホストの指定 \f2port\fP 上にリモートオブジェクトレジストリを作成し、開始します。\f2port\fP の指定を省略した場合、レジストリはポート 1099 で開始します。\f3rmiregistry\fP コマンドに、出力機能はありません。通常、これはバックグラウンドで実行されます。例を示します。 +\f3rmiregistry\fP ޥɤϡߤΥۥȤλ \f2port\fP ˥⡼ȥ֥ȥ쥸ȥϤޤ\f2port\fP λά硢쥸ȥϥݡ 1099 dzϤޤ\f3rmiregistry\fP ޥɤˡϵǽϤޤ̾ϥХå饦ɤǼ¹Ԥޤ򼨤ޤ .LP .LP \f2rmiregistry&\fP .LP .LP -リモートオブジェクトレジストリは、ブートストラップのネームサービスです。 同一ホストの RMI サーバーが、リモートオブジェクトを名前にバインドするために使用されます。次に、ローカルおよびリモートホストのクライアントはリモートオブジェクトを検索し、リモートメソッドの呼び出しを行います。 +⡼ȥ֥ȥ쥸ȥϡ֡ȥȥåפΥ͡ॵӥǤƱۥȤ RMI С⡼ȥ֥Ȥ̾˥Хɤ뤿˻Ѥޤˡ뤪ӥ⡼ȥۥȤΥ饤Ȥϥ⡼ȥ֥Ȥ򸡺⡼ȥ᥽åɤθƤӽФԤޤ .LP .LP -レジストリは、一般的に、最初のリモートオブジェクトの位置を指定します。 そこで、アプリケーションはメソッドを呼び出す必要があります。代わって、そのオブジェクトはアプリケーション指定のサポートを提供し、他のオブジェクトを探します。 +쥸ȥϡŪˡǽΥ⡼ȥ֥Ȥΰ֤ꤷޤ ǡץꥱϥ᥽åɤƤӽФɬפޤäơΥ֥ȤϥץꥱΥݡȤ󶡤¾Υ֥Ȥõޤ .LP .LP -\f2java.rmi.registry.LocateRegistry\fP クラスのメソッドは、ローカルホスト、またはローカルホストとポートで動作するレジストリを取得するために使用されます。 +\f2java.rmi.registry.LocateRegistry\fP 饹Υ᥽åɤϡۥȡޤϥۥȤȥݡȤư쥸ȥ뤿˻Ѥޤ .LP .LP -\f2java.rmi.Naming\fP クラスの URL ベースのメソッドは、レジストリで動作し、任意のホストおよびローカルホスト上のリモートオブジェクトの検索に使用されます。リモートオブジェクトに単純な (文字列) 名前をバインドしたり、新しい名前をリバインド (古いバインドにオーバーライド) します。 またリモートオブジェクトをアンバインドしたり、レジストリにバインドされた URL を出力します。 +\f2java.rmi.Naming\fP 饹 URL ١Υ᥽åɤϡ쥸ȥưǤդΥۥȤӥۥȾΥ⡼ȥ֥Ȥθ˻Ѥޤ⡼ȥ֥Ȥñ (ʸ) ̾Хɤꡢ̾Х (ŤХɤ˥С饤) ޤޤ⡼ȥ֥Ȥ򥢥Хɤꡢ쥸ȥ˥Хɤ줿 URL Ϥޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-J -\f2\-J\fP の後ろに続くオプションを \f2java\fP インタプリタに引き渡します。 \f2java\fP オプションと組み合わせて使います (\f2\-J\fP と \f2java\fP オプションの間にスペースは入れない)。 +\f2\-J\fP θ³ץ \f2java\fP 󥿥ץ꥿˰Ϥޤ \f2java\fP ץȤ߹碌ƻȤޤ (\-J java ץδ֤˥ڡʤ) .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP - -.LP -.LP -java(1)、 +java(1) .na \f2java.rmi.registry.LocateRegistry\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html、および +http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html .na \f2java.rmi.Naming\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html -.LP - +http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html diff --git a/jdk/src/linux/doc/man/ja/schemagen.1 b/jdk/src/linux/doc/man/ja/schemagen.1 index 6906d33f850..b9cb1a27c65 100644 --- a/jdk/src/linux/doc/man/ja/schemagen.1 +++ b/jdk/src/linux/doc/man/ja/schemagen.1 @@ -19,110 +19,106 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "02 Jun 2010" +.TH schemagen 1 "14 Apr 2011" .LP -.SH "名前" -schemagen \- XML バインドのための Java(TM) アーキテクチャースキーマジェネレータ +.SH "̾" +schemagen \- XML ХɤΤ Java(TM) ƥ㡼ޥͥ졼 .LP .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.3 +\f3С:\fP 2.1.3 .LP -.SS -schemagen の起動 +.SH "schemagen εư" .LP .LP -スキーマジェネレータは、ユーザーのプラットフォームの \f2bin\fP ディレクトリにある \f2schemagen\fP シェルスクリプトを使って起動できます。 +ޥͥ졼ưˤϡ桼Υץåȥե bin ǥ쥯ȥˤ \f2Ŭڤ schemagen 륹ץ\fP \f2ޤ\fP .LP .LP -現在のスキーマジェネレータは、Java ソースファイルとクラスファイルのいずれも処理できます。 +ߤΥޥͥ졼ϡJava եȥ饹եΤǤޤ .LP .LP -また、スキーマジェネレータを実行するための Ant タスクも用意されています。 +ޤޥͥ졼¹Ԥ뤿 Ant ѰդƤޤ .na -\f2schemagen を Ant とともに使用する\fP @ +\f2schemagen Ant ȤȤ˻Ѥ\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlための手順を参照してください。 -.LP -.RS 3 - +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlμ򻲾ȤƤ .LP .nf \f3 .fl % schemagen.sh Foo.java Bar.java ... .fl -注: Writing schema1.xsd +Note: Writing schema1.xsd .fl \fP .fi -.RE .LP .LP -ユーザーの Java ソース/クラスがほかのクラスを参照している場合、システムの CLASSPATH 環境変数経由でそれらのクラスにアクセスできるようになっているか、あるいは \f2\-classpath\fP/\f2\-cp\fP オプションを使ってそれらのクラスをツールに指定する必要があります。そうしないと、スキーマの生成時にエラーが発生します。 +桼 Java /饹ۤΥ饹򻲾ȤƤ硢ƥ ĶѿͳǤΥ饹˥Ǥ褦ˤʤäƤ뤫뤤 \f2\-classpath\fP/\f2\-cp\fP ȤäƤΥ饹ġ˻ꤹɬפޤʤȡޤ˥顼ȯޤ .LP -.RS 3 - -.LP -\f3コマンド行オプション\fP -.LP -.RS 3 - +.SS +ޥɹԥץ .LP .nf \f3 .fl -使用方法: schemagen [\-options ...] <java files> +ˡ: schemagen [\-options ...] <java files> .fl .fl -オプション: +ץ: .fl - \-d <path> : プロセッサと javac 生成のクラスファイルを置く場所を指定します。 + \-d <path> : ץå javac ˤä륯饹եγǼꤷޤ .fl - \-cp <path> : ユーザー指定ファイルの検索場所を指定します。 + \-cp <path> : 桼եθꤷޤ .fl - \-classpath <path> : ユーザー指定ファイルの検索場所を指定します。 + \-classpath <path> : 桼եθꤷޤ .fl - \-help : この使用方法に関するメッセージを表示します。 + \-encoding <encoding> : apt/javac ƤӽФ˻Ѥ륨󥳡ǥ󥰤ꤷޤ +.fl + +.fl + \-episode <file> : ̥ѥѤΥԥɥեޤ +.fl + \-version : Сɽޤ +.fl + \-help : λˡ˴ؤåɽޤ .fl \fP .fi -.RE .LP -.RE -.SS -生成されるリソースファイル +.SH "꥽ե" .LP .LP -現在のスキーマジェネレータは単純に、Java クラス内で参照されている名前空間ごとに 1 つのスキーマファイルを作成します。生成されるスキーマファイルの名前を制御する方法は、現時点では存在しません。そうした目的には、 +ߤΥޥͥ졼ñˡJava 饹ǻȤƤ֤̾Ȥ 1 ĤΥޥեޤ륹ޥե̾椹ˡϡǤ¸ߤޤ󡣤Ūˤϡ .na -\f2スキーマジェネレータの Ant タスク\fP @ +\f2ޥͥ졼 ant \fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlを使用してください。 +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlѤƤ .LP -.SH "関連項目" +.SH "̾" +Ϣ .LP .RS 3 .TP 2 o -スキーマジェネレータの実行 (schemagen):[ +ޥͥ졼μ¹ (schemagen): [ .na -\f2コマンド行の命令\fP @ +\f2ޥɹԤ̿\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagen.html、 +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagen.html .na -\f2SchemaGen を Ant とともに使用する\fP @ +\f2SchemaGen Ant ȤȤ˻Ѥ\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html] .TP 2 o .na -\f2XML バインドのための JavaTM アーキテクチャー (JAXB)\fP @ +\f2XML ХɤΤ JavaTM ƥ㡼 (JAXB)\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html .RE diff --git a/jdk/src/linux/doc/man/ja/serialver.1 b/jdk/src/linux/doc/man/ja/serialver.1 index abbaa0e5e2f..4929593320c 100644 --- a/jdk/src/linux/doc/man/ja/serialver.1 +++ b/jdk/src/linux/doc/man/ja/serialver.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "02 Jun 2010" +.TH serialver 1 "14 Apr 2011" .LP -.SH "名前" -serialver \- シリアルバージョンコマンド -.LP -.RS 3 - +.SH "̾" +serialver \- ꥢС󥳥ޥ .LP .LP -\f3serialver\fP コマンドは \f2serialVersionUID\fP を返します。 +\f3serialver\fP ޥɤ \f2serialVersionUID\fP ֤ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -43,76 +37,56 @@ serialver \- シリアルバージョンコマンド .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -このドキュメントで説明されているコマンド行オプションです。 +ΥɥȤƤ륳ޥɹԥץǤ .TP 3 classnames -1 つ以上のクラス名です。 +1 İʾΥ饹̾Ǥ .RE .LP -.RE -.SH "説明" -.LP - +.SH "" .LP .LP -\f3serialver\fP は、1 つ以上のクラスの \f2serialVersionUID\fP を、展開しているクラスへコピーするのに適した形式で返します。引数を指定しないで呼び出すと、使用方法が表示されます。 +\f3serialver\fP ϡ1 İʾΥ饹 \f2serialVersionUID\fP ŸƤ륯饹إԡΤŬ֤ޤꤷʤǸƤӽФȡˡɽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -\-classpath <: で区切られたディレクトリと zip や jar ファイル> -アプリケーションのクラスおよびリソースの検索パスを設定します。 +\-classpath <: Ƕڤ줿ǥ쥯ȥ zip jar ե> +ץꥱΥ饹ӥ꥽θѥꤷޤ .RE .LP .RS 3 .TP 3 \-show -簡単なユーザーインタフェースを表示します。完全指定のクラス名を入力して、Enter キーか [Show] ボタンを押し、シリアルバージョン UID を表示します。 +ñʥ桼󥿥եɽޤΥ饹̾ϤơEnter Showץܥ򲡤ꥢС UID ɽޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "注" -.LP - +.SH "" .LP .LP -\f3serialver\fP コマンドは、指定されたクラスをその仮想マシン内に読み込んで初期化しますが、デフォルトではセキュリティーマネージャーの設定は行いません。信頼できないクラスとともに \f3serialver\fP を実行する場合には、次のオプションを使ってセキュリティーマネージャーを設定できます。 -.LP -.RS 3 - +\f3serialver\fP ޥɤϡꤵ줿饹򤽤βۥޥɤ߹ǽޤǥեȤǤϥƥޥ͡㡼ϹԤޤ󡣿Ǥʤ饹ȤȤ \f3serialver\fP ¹ԤˤϡΥץȤäƥƥޥ͡㡼Ǥޤ .LP .LP \f2\-J\-Djava.security.manager\fP .LP -.RE .LP -また、必要であれば、次のオプションを使ってセキュリティーポリシーを指定できます。 -.LP -.RS 3 - +ޤɬפǤСΥץȤäƥƥݥꥷǤޤ .LP .LP \f2\-J\-Djava.security.policy=<policy file>\fP .LP -.RE -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP .na diff --git a/jdk/src/linux/doc/man/ja/servertool.1 b/jdk/src/linux/doc/man/ja/servertool.1 index 2bf60b6f928..1cb919bca17 100644 --- a/jdk/src/linux/doc/man/ja/servertool.1 +++ b/jdk/src/linux/doc/man/ja/servertool.1 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "02 Jun 2010" +.TH servertool 1 "14 Apr 2011" .LP -.SH "名前" -servertool \- Java(TM) IDL サーバーツール +.SH "̾" +servertool \- Java(TM) IDL Сġ .LP -.RS 3 - -.LP -\f3servertool\fP はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、および停止を行うためのコマンド行インタフェースを提供します。 -.RE -.SH "形式" -.LP - +\f3servertool\fP ϥץꥱץޤ³СϿϿưߤԤΥޥɹԥ󥿥ե󶡤ޤ +.SH "" .LP .nf \f3 @@ -44,84 +38,76 @@ servertool \-ORBInitialPort \fP\f4nameserverport\fP\f3 \fP\f3options\fP\f3 [ \fP .LP .LP -コマンドを入力しないで \f2servertool\fP を起動すると、コマンド行ツールとして \f2servertool >\fP プロンプトが表示されます。\f2servertool >\fP プロンプトにコマンドを入力します。 +ޥɤϤʤ \f2servertool\fP ưȡޥɹԥġȤ \f2servertool >\fP ץץȤɽޤ\f2servertool >\fP ץץȤ˥ޥɤϤޤ .LP .LP -コマンドを入力して \f2servertool\fP を起動すると、Java IDL サーバーツールが起動し、コマンドを実行して終了します。 +ޥɤϤ \f2servertool\fP ưȡJava IDL Сġ뤬ưޥɤ¹Ԥƽλޤ .LP .LP -\f2\-ORBInitialPort\fP \f2nameserverport\fP オプションは\f3必須\fPです。\f2nameserverport\fP の値には、\f2orbd\fP が実行され、着信要求を待機しているポートを指定する必要があります。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、\f2nameserverport\fP として 1024 または 1024 より大きいポートを使用することをお勧めします。 +\f2\-ORBInitialPort\fP \f2nameserverport\fP ץ\f3ɬ\fPǤ \f2nameserverport\fP ͤˤϡ\f2orbd\fP ¹Ԥ졢忮׵ԵƤݡȤꤹɬפޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ\f2nameserverport\fPȤ 1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f2servertool\fP はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、および停止を行うためのコマンド行インタフェースを提供します。そのほかに、サーバーに関するさまざまな統計情報を取得するためのコマンドも提供します。 +\f2servertool\fP ϥץꥱץޤ³СϿϿưߤԤΥޥɹԥ󥿥ե󶡤ޤΤۤˡС˴ؤ뤵ޤޤ׾뤿Υޥɤ󶡤ޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-ORBInitialHost nameserverhost -ネームサーバーが、実行され、着信要求を待機しているホストマシンを指定します。このオプションを指定しない場合、\f2nameserverhost\fP はデフォルトで \f2localhost\fP に設定されます。\f2orbd\fP と \f2servertool\fP が異なるマシン上で実行されている場合は、\f2orbd\fP が実行されているホストの名前と IP アドレスを指定する必要があります。 +͡ॵС¹Ԥ졢忮׵ԵƤۥȥޥꤷޤΥץꤷʤ硢\f2nameserverhost\fP ϥǥեȤ \f2localhost\fP ꤵޤ\f2orbd\fP \f2servertool\fP ۤʤޥǼ¹ԤƤϡ\f2orbd\fP ¹ԤƤۥȤ̾ IP ɥ쥹ꤹɬפޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.SH "コマンド" -.LP - +.SH "ޥ" .LP .RS 3 .TP 3 register \-server\ <server\ class\ name> \ \-classpath\ <classpath\ to\ server> [\ \-applicationName\ <application\ name> \-args\ <args\ to\ server> \-vmargs\ <flags\ to\ be\ passed\ to\ Java\ VM> \ ] -Object Request Broker Daemon (ORBD) に新規持続サーバーを登録します。サーバーが未登録の場合、登録して起動します。このコマンドによって、\f2\-server\fP オプションで識別されるサーバーのメインクラス内でインストールメソッドが呼び出されます。このインストールメソッドは、\f2public static void install(org.omg.CORBA.ORB)\fP になっている必要があります。インストールメソッドは、オプションであり、データベーススキーマの作成などの独自のサーバーインストール動作を開発者が指定できます。 +Object Request Broker Daemon (ORBD) ˿³СϿޤС̤Ͽξ硢ϿƵưޤΥޥɤˤäơ\f2\-server\fP ץǼ̤륵СΥᥤ󥯥饹ǥ󥹥ȡ᥽åɤƤӽФޤΥ󥹥ȡ᥽åɤϡ\f2public static void install(org.omg.CORBA.ORB)\fP ˤʤäƤɬפޤ󥹥ȡ᥽åɤϡץǤꡢǡ١ޤκʤɤȼΥС󥹥ȡưȯԤǤޤ .TP 3 unregister \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -サーバー ID またはアプリケーション名を使用して、ORBD のサーバーの登録を解除します。このコマンドによって、\f2\-server\fP オプションで識別されるサーバーのメインクラス内でアンインストールメソッドが呼び出されます。このアンインストールメソッドは、\f2public static void uninstall(org.omg.CORBA.ORB)\fP になっている必要があります。アンインストールメソッドは、オプションであり、インストールメソッドの動作の取り消しなどの独自のサーバーアンインストール動作を開発者が指定できます。 +С ID ޤϥץꥱ̾ѤơORBD ΥСϿޤΥޥɤˤäơ\f2\-server\fP ץǼ̤륵СΥᥤ󥯥饹ǥ󥤥󥹥ȡ᥽åɤƤӽФޤΥ󥤥󥹥ȡ᥽åɤϡ\f2public static void uninstall(org.omg.CORBA.ORB)\fP ˤʤäƤɬפޤ󥤥󥹥ȡ᥽åɤϡץǤꡢ󥹥ȡ᥽åɤưμäʤɤȼΥС󥤥󥹥ȡưȯԤǤޤ .TP 3 getserverid \-applicationName\ <application\ name> -アプリケーションに関連付けられているサーバー ID を返します。 +ץꥱ˴ϢդƤ륵С ID ֤ޤ .TP 3 list -ORBD に登録されているすべての持続サーバーに関する情報を一覧表示します。 +ORBD ϿƤ뤹٤Ƥλ³С˴ؤɽޤ .TP 3 listappnames -現在 ORBD に登録されているすべてのサーバーのアプリケーション名を一覧表示します。 + ORBD ϿƤ뤹٤ƤΥСΥץꥱ̾ɽޤ .TP 3 listactive -ORDB によって起動され、現在実行されているすべての持続サーバーに関する情報を一覧表示します。 +ORDB ˤäƵư졢߼¹ԤƤ뤹٤Ƥλ³С˴ؤɽޤ .TP 3 locate \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> [\-endpointType\ <endpointType>\ ] -登録されたサーバーで作成したすべての ORB の特定の型について端点 (ポート) を検出します。サーバーが実行されていない場合、起動されます。端点の型が指定されていない場合、サーバーの ORB ごとに関連付けられている plain 型 または non\-protected 型の端点が返されます。 +Ͽ줿СǺ٤Ƥ ORB ηˤĤü (ݡ) 򸡽ФޤС¹ԤƤʤ硢ưޤüηꤵƤʤ硢С ORB Ȥ˴ϢդƤ plain ޤ non\-protected ü֤ޤ .TP 3 locateperorb \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> [\-orbid\ <ORB\ name>\ ] -登録されたサーバーの特定の ORB で登録された端点 (ポート) を検出します。サーバーが実行されていない場合、起動されます。\f2orbid\fP が指定されていない場合は、デフォルト値の「""」が\f2orbid\fPに割り当てられます。ORB が空文字列の \f2orbid\fP で作成されている場合、登録したポートがすべて返されます。 +Ͽ줿С ORB Ͽ줿ü (ݡ) 򸡽ФޤС¹ԤƤʤ硢ưޤ\f2orbid\fP ꤵƤʤϡǥեͤΡ""פ\f2orbid\fP˳ƤޤORB ʸ \f2orbid\fP ǺƤ硢ϿݡȤ٤֤ޤ .TP 3 orblist \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -サーバー上に定義された ORB の ORBId を一覧表示します。ORBId はサーバーで作成された ORB の文字列名です。サーバーが実行されていない場合、起動されます。 +С줿 ORB ORBId ɽޤORBId ϥСǺ줿 ORB ʸ̾ǤС¹ԤƤʤ硢ưޤ .TP 3 shutdown \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -ORBD に登録されたアクティブなサーバーを停止します。このコマンドの実行中に、\f2\-serverid\fP パラメータまたは \f2\-applicationName\fP パラメータで指定されたクラス内に定義された \f2shutdown()\fP メソッドも呼び出されてサーバープロセスを正しく停止します。 +ORBD Ͽ줿ƥ֤ʥСߤޤΥޥɤμ¹ˡ\f2\-serverid\fP ѥ᡼ޤ \f2\-applicationName\fP ѥ᡼ǻꤵ줿饹줿 \f2shutdown()\fP ᥽åɤƤӽФƥСץߤޤ .TP 3 startup \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -ORBD に登録されたサーバーを起動します。サーバーが実行されていない場合は、このコマンドでサーバーを起動します。サーバーがすでに実行されている場合は、ユーザーにエラーメッセージが返されます。 +ORBD Ͽ줿СưޤС¹ԤƤʤϡΥޥɤǥСưޤСǤ˼¹ԤƤϡ桼˥顼å֤ޤ .TP 3 help -サーバーがサーバーツールで使用できるすべてのコマンドを表示します。 +ССġǻѤǤ뤹٤ƤΥޥɤɽޤ .TP 3 quit -サーバーツールを終了します。 +Сġλޤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP orbd(1) diff --git a/jdk/src/linux/doc/man/ja/tnameserv.1 b/jdk/src/linux/doc/man/ja/tnameserv.1 index 4b96e1b9998..216075e37ec 100644 --- a/jdk/src/linux/doc/man/ja/tnameserv.1 +++ b/jdk/src/linux/doc/man/ja/tnameserv.1 @@ -19,59 +19,59 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "02 Jun 2010" +.TH tnameserv 1 "14 Apr 2011" .LP -.SH "名前" -Java IDL:一時ネームサービス \- \f2tnameserv\fP +.SH "̾" +Java IDL: ͡ॵӥ \- \f2tnameserv\fP .LP .LP -このドキュメントでは、Java IDL 一時ネームサービス \f2tnameserv\fP の使用方法について説明します。Java IDL には、Object Request Broker Daemon (ORBD) も含まれています。ORBD は、ブートストラップサービス、一時ネームサービス、\f3持続\fPネームサービス、およびサーバーマネージャーを含むデーモンプロセスです。Java IDL のすべてのチュートリアルでは ORBD を使用していますが、一時ネームサービスを使用する例では、\f2orbd\fP の代わりに \f2tnameserv\fP を使用できます。\f2orbd\fP ツールの詳細については、\f2orbd\fP の orbd(1)または +ΥɥȤǤϡJava IDL ͡ॵӥ \f2tnameserv\fP λˡˤĤޤJava IDL ˤϡObject Request Broker Daemon (ORBD) ޤޤƤޤORBD ϡ֡ȥȥåץӥ͡ॵӥ\f3³\fP͡ॵӥӥСޥ͡㡼ޤǡץǤJava IDL Τ٤ƤΥ塼ȥꥢǤ ORBD ѤƤޤ͡ॵӥѤǤϡ\f2orbd\fP \f2tnameserv\fP ѤǤޤ\f2orbd\fP ġξܺ٤ˤĤƤϡorbd orbd(1)ޤ .na -\f2ORBD に含まれる Java IDL ネームサービス\fP @ +\f2ORBD ˴ޤޤ Java IDL ͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlに関するトピックを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html˴ؤȥԥå򻲾ȤƤ .LP .LP -ここでは、以下の項目について説明します。 +ǤϡʲιܤˤĤޤ .LP .RS 3 .TP 2 o -Java\ IDL 一時ネームサービス +Java\ IDL ͡ॵӥ .TP 2 o -Java\ IDL 一時ネームサービスの起動 +Java\ IDL ͡ॵӥεư .TP 2 o -Java\ IDL 一時ネームサービスの停止 +Java\ IDL ͡ॵӥ .TP 2 o -サンプルクライアント:名前空間へのオブジェクトの追加 +ץ륯饤: ֤̾ؤΥ֥Ȥɲ .TP 2 o -サンプルクライアント:名前空間のブラウズ +ץ륯饤: ֤̾Υ֥饦 .RE .LP -.SH "Java\ IDL 一時ネームサービス" +.SH "Java IDL ͡ॵӥ" .LP .LP -CORBA の COS (Common Object Services) ネームサービスは、ファイルシステムがファイルに対してディレクトリ構造を提供しているのと同じように、オブジェクト参照に対してツリー構造のディレクトリを提供します。Java IDL の一時ネームサービスである \f2tnameserv\fP は、COS ネームサービスの仕様を単純な形で実装したものです。 +CORBA COS (Common Object Services) ͡ॵӥϡե륷ƥबեФƥǥ쥯ȥ깽¤󶡤ƤΤƱ褦ˡ֥ȻȤФƥĥ꡼¤Υǥ쥯ȥ󶡤ޤJava IDL ΰ͡ॵӥǤ \f2tnameserv\fP ϡCOS ͡ॵӥλͤñʷǼΤǤ .LP .LP -オブジェクト参照は名前空間に名前で格納され、オブジェクト参照と名前のペアは、それぞれ「ネームバインディング」と呼ばれます。ネームバインディングは「ネーミングコンテキスト」に組み込むことができます。ネーミングコンテキストはそれ自体がネームバインディングであり、ファイルシステムのサブディレクトリと同じ編成機能を持ちます。すべてのバインディングは「初期ネーミングコンテキスト」に格納されます。名前空間において、初期ネーミングコンテキストは唯一の持続的バインディングです。 それ以外のネーミングコンテキストは、Java IDL のネーミングサービスプロセスが停止し、再起動されると失われます。 +֥ȻȤ֤̾̾dzǼ졢֥ȻȤ̾Υڥϡ줾֥͡Хǥ󥰡פȸƤФޤ͡Хǥ󥰤ϡ֥͡ߥ󥰥ƥȡפȤ߹ळȤǤޤ͡ߥ󥰥ƥȤϤ켫Τ͡Хǥ󥰤Ǥꡢե륷ƥΥ֥ǥ쥯ȥƱǽޤ٤ƤΥХǥ󥰤ϡֽ͡ߥ󥰥ƥȡפ˳Ǽޤ֤̾ˤơ͡ߥ󥰥ƥȤͣλ³ŪХǥ󥰤ǤʳΥ͡ߥ󥰥ƥȤϡJava IDL Υ͡ߥ󥰥ӥץߤƵưȼޤ .LP .LP -アプレットまたはアプリケーションから COS ネームサービスを使用するためには、その ORB はネームサービスが動作しているホストのポートを知っているか、そのネームサービスの文字列化された初期ネーミングコンテキストにアクセスできなければなりません。ネームサービスは、Java\ IDL のネームサービスでもその他の COS 準拠のネームサービスでもかまいません。 +ץåȤޤϥץꥱ󤫤 COS ͡ॵӥѤ뤿ˤϡ ORB ϥ͡ॵӥưƤۥȤΥݡȤΤäƤ뤫Υ͡ॵӥʸ󲽤줿͡ߥ󥰥ƥȤ˥ǤʤФʤޤ󡣥͡ॵӥϡJava IDL Υ͡ॵӥǤ⤽¾ COS Υ͡ॵӥǤ⤫ޤޤ .LP -.SH "Java\ IDL 一時ネームサービスの起動" +.SH "Java IDL ͡ॵӥεư" .LP .LP -Java\ IDL ネームサービスは、ネームサービスを使用するアプリケーションまたはアプレットより前に起動しておかなければなりません。Java\ IDL 製品をインストールすると、Java IDL ネームサービスを起動するスクリプト (Solaris: \f2tnameserv\fP) か、実行可能ファイル (Windows NT: \f2tnameserv.exe\fP) が作成されます。バックグラウンドで動作するように、ネームサービスを起動してください。 +Java IDL ͡ॵӥϡ͡ॵӥѤ륢ץꥱޤϥץåȤ˵ưƤɬפޤJava\ IDL ʤ򥤥󥹥ȡ뤹ȡJava\ IDL ͡ॵӥư륹ץ (Solaris: \f2tnameserv\fP) ޤϼ¹Բǽե (Windows NT: \f2tnameserv.exe\fP) ޤХå饦ɤư褦ˡ͡ॵӥưƤ .LP .LP -特に指定しない場合、Java IDL ネームサービスは、ORB の \f2resolve_initial_references()\fP メソッドと \f2list_initial_references()\fP メソッドの実装に使用するブートストラッププロトコルに対してポート 900 で待機します。 +ä˻ꤷʤ硢Java IDL ͡ॵӥϡORB \f2resolve_initial_references()\fP ᥽åɤ \f2list_initial_references()\fP ᥽åɤμ˻Ѥ֡ȥȥåץץȥФƥݡ 900 Եޤ .LP .nf \f3 @@ -83,7 +83,7 @@ Java\ IDL ネームサービスは、ネームサービスを使用するアプ .LP .LP -ネームサーバーポートを指定しない場合、デフォルトでポート 900 が使用されます。Solaris ソフトウェアの実行時は、1024 より小さいポートでプロセスを開始する場合、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 1050 のように別のポートを指定し、ネームサービスをバックグラウンドで実行するには、UNIX コマンドシェルで次のように入力します。 +͡ॵСݡȤꤷʤ硢ǥեȤǥݡ 900 ѤޤSolaris եȥμ¹Իϡ1024 꾮ݡȤǥץ򳫻Ϥ硢root 桼ˤʤɬפޤΤᡢ1024 ޤ 1024 礭ݡֹѤ뤳Ȥ򤪴ᤷޤ1050 Τ褦̤ΥݡȤꤷ͡ॵӥХå饦ɤǼ¹ԤˤϡUNIX ޥɥǼΤ褦Ϥޤ .LP .nf \f3 @@ -95,7 +95,7 @@ Java\ IDL ネームサービスは、ネームサービスを使用するアプ .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -107,32 +107,32 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -ネームサーバーのクライアントには、新しいポート番号を知らせる必要があります。このため、ORB オブジェクトの作成時に \f2org.omg.CORBA.ORBInitialPort\fP プロパティーに新しいポート番号を設定します。 +͡ॵСΥ饤ȤˤϡݡֹΤ餻ɬפޤΤᡢORB ֥Ȥκ \f2org.omg.CORBA.ORBInitialPort\fP ץѥƥ˿ݡֹꤷޤ .LP .SS -異なるマシン上でのクライアントとサーバーの実行 +ۤʤޥǤΥ饤ȤȥСμ¹ .LP .LP -Java IDL と RMI\-IIOP のほとんどのチュートリアルでは、ネームサービス、サーバー、およびクライアントはすべて開発用のマシン上で実行されます。実際に配備する場合には、クライアントとサーバーを、ネームサービスとは異なるホスト上で実行することが多くなります。 +Java IDL RMI\-IIOP ΤۤȤɤΥ塼ȥꥢǤϡ͡ॵӥСӥ饤ȤϤ٤ƳȯѤΥޥǼ¹Ԥޤºݤˤϡ饤ȤȥС򡢥͡ॵӥȤϰۤʤۥȾǼ¹Ԥ뤳Ȥ¿ʤޤ .LP .LP -クライアントとサーバーがネームサービスを見つけるには、クライアントとサーバーが、ネームサービスが実行されているポートの番号とホストを認識している必要があります。そのためには、クライアントとサーバーのファイル内の \f2org.omg.CORBA.ORBInitialPort\fP プロパティーと \f2org.omg.CORBA.ORBInitialHost\fP プロパティーをネームサービスが実行されているポートの番号とマシンの名前に設定します。この例は、 +饤ȤȥС͡ॵӥ򸫤Ĥˤϡ饤ȤȥС͡ॵӥ¹ԤƤݡȤֹȥۥȤǧƤɬפޤΤˤϡ饤ȤȥСΥե \f2org.omg.CORBA.ORBInitialPort\fP ץѥƥ \f2org.omg.CORBA.ORBInitialHost\fP ץѥƥ͡ॵӥ¹ԤƤݡȤֹȥޥ̾ꤷޤϡ .na -\f2「RMI\-IIOP を使った Hello World の例」\fP @ +\f2RMI\-IIOP Ȥä Hello World פ˼Ƥޤ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.htmlに示されています。コマンド行オプション \f2\-ORBInitialPort\fP \f2nameserverport#\fP と \f2\-ORBInitialHost\fP \f2nameserverhostname\fP を使用して、クライアントとサーバーに対してネームサービスを探す場所を指定することもできます。 +http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.htmlޥɹԥץ \f2\-ORBInitialPort\fP \f2nameserverport#\fP \f2\-ORBInitialHost\fP \f2nameserverhostname\fP Ѥơ饤ȤȥСФƥ͡ॵӥõꤹ뤳ȤǤޤ .na -\f2「Java IDL: 2 台のマシン上で実行する Hello World プログラム」\fP @ +\f2Java IDL: 2 ΥޥǼ¹Ԥ Hello World ץ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html には、コマンド行オプションを使用して指定する方法が示されています。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html ˤϡޥɹԥץѤƻꤹˡƤޤ .LP .LP -たとえば、一時ネームサービス \f2tnameserv\fP が、ホスト \f2nameserverhost\fP のポート 1050 上で実行されているとします。さらに、クライアントがホスト \f2clienthost\fP 上で実行され、サーバーはホスト \f2serverhost\fP 上で実行されているとします。 +ȤС͡ॵӥ \f2tnameserv\fP ۥ \f2nameserverhost\fP Υݡ 1050 Ǽ¹ԤƤȤޤˡ饤Ȥۥ \f2clienthost\fP Ǽ¹Ԥ졢Сϥۥ \f2serverhost\fP Ǽ¹ԤƤȤޤ .LP .RS 3 .TP 2 o -次のように、ホスト \f2nameserverhost\fP 上で \f2tnameserv\fP を起動します。 +Τ褦ˡۥ \f2nameserverhost\fP \f2tnameserv\fP ưޤ .nf \f3 .fl @@ -144,7 +144,7 @@ o .fi .TP 2 o -\f2serverhost\fP 上でサーバーを起動します。 +\f2serverhost\fP ǥСưޤ .nf \f3 .fl @@ -154,7 +154,7 @@ o .fi .TP 2 o -\f2clienthost\fP 上でクライアントを起動します。 +\f2clienthost\fP ǥ饤Ȥưޤ .nf \f3 .fl @@ -166,38 +166,34 @@ o .LP .SS -\-J オプション -.LP -このコマンド行オプションは、\f2tnameserve\fP とともに使用できます。 -.RS 3 - +\-J ץ .LP +Υޥɹԥץϡ\f2tnameserve\fP ȤȤ˻ѤǤޤ .RS 3 .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.RE -.SH "Java\ IDL 一時ネームサービスの停止" +.SH "Java IDL ͡ॵӥ" .LP .LP -Java IDL ネームサービスを停止するには、Unix の場合は、\f2kill\fP などのオペレーティングシステムのコマンドを使い、Windows の場合は、\f2Ctrl\-C\fP を使います。ネームサービスを明示的に停止するまでは、呼び出し待機状態が続きます。なお、サービスを終了させると、Java\ IDL ネームサービスに登録されている名前は失われます。 +Java IDL ͡ॵӥߤˤϡUnix ξϡ\f2kill\fP ʤɤΥڥ졼ƥ󥰥ƥΥޥɤȤWindows ξϡ\f2Ctrl\-C\fP Ȥޤ͡ॵӥŪߤޤǤϡƤӽФԵ֤³ޤʤӥλȡJava IDL ͡ॵӥϿƤ̾ϼޤ .LP -.SH "サンプルクライアント:名前空間へのオブジェクトの追加" +.SH "ץ륯饤: ֤̾ؤΥ֥Ȥɲ" .LP .LP -次に示すサンプルプログラムは、名前を名前空間に追加する方法を示すものです。このサンプルプログラムは、このままの状態で完全に動作する一時ネームサービスクライアントで、次のような単純なツリーを作成するものです。 +˼ץץϡ֤̾̾ɲäˡ򼨤ΤǤΥץץϡΤޤޤξ֤Ǵư͡ॵӥ饤ȤǡΤ褦ñʥĥ꡼ΤǤ .LP .nf \f3 .fl \fP\f3 .fl - \fP\f4初期\fP\f3 + \fP\f4\fP\f3 .fl - \fP\f4ネーミングコンテキスト\fP\f3 + \fP\f4͡ߥ󥰥ƥ\fP\f3 .fl / \\ .fl @@ -215,7 +211,7 @@ Java IDL ネームサービスを停止するには、Unix の場合は、\f2kil .LP .LP -この例で、\f3plans\fP はオブジェクト参照、\f3Personal\fP は \f3calendar\fP と \f3schedule\fP の 2 つのオブジェクト参照を含むネーミングコンテキストです。 +ǡ\f3plans\fP ϥ֥Ȼȡ\f3Personal\fP \f3calendar\fP \f3schedule\fP 2 ĤΥ֥ȻȤޤ͡ߥ󥰥ƥȤǤ .LP .nf \f3 @@ -242,7 +238,7 @@ public class NameClient .fi .LP -前述の「Java IDL 一時ネームサービスの起動」で、ネームサーバーはポート 1050 を使用して起動しました。 次のコードで、このポート番号をクライアントプログラムに知らせます。 +ҤΡJava IDL ͡ॵӥεưפǡ͡ॵСϥݡ 1050 ѤƵưޤΥɤǡΥݡֹ򥯥饤ȥƥΤ餻ޤ .nf \f3 .fl @@ -258,7 +254,7 @@ public class NameClient .fi .LP -次のコードでは、初期ネーミングコンテキストを取得し、それを \f3ctx\fP に代入します。2 行目では、\f3ctx\fP をダミーのオブジェクト参照 \f3objref\fP にコピーします。 この \f3objref\fP には、あとでさまざまな名前を割り当てて名前空間に追加します。 +ΥɤǤϡ͡ߥ󥰥ƥȤ \f3ctx\fP ޤ2 ܤǤϡ\f3ctx\fP ߡΥ֥Ȼ \f3objref\fP ˥ԡޤ objref ˤϡȤǤޤޤ̾Ƥ֤̾ɲäޤ .nf \f3 .fl @@ -274,7 +270,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、text 型の名前 plans を作成し、それをダミーのオブジェクト参照にバインドします。その後、\f2rebind\fP を使用して初期ネーミングコンテキストの下に "plans" を追加しています。\f2rebind\fP メソッドを使用すれば、\f2bind\fP を使用した場合に発生する例外を発生させずに、このプログラムを何度も繰り返し実行できます。 +ΥɤǤϡtext ̾ plans ߡΥ֥ȻȤ˥Хɤޤθ塢rebind Ѥƽ͡ߥ󥰥ƥȤβ \f2plans ɲäƤޤ\fP \f2rebind\fP ᥽åɤѤСbind Ѥȯ㳰ȯˡ \f2Υץ٤֤ⷫ¹ԤǤޤ\fP .nf \f3 .fl @@ -292,7 +288,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、directory 型の Personal というネーミングコンテキストを作成します。その結果得られるオブジェクト参照 \f3ctx2\fP をこの名前にバインドし、初期ネーミングコンテキストに追加します。 +ΥɤǤϡdirectory Personal Ȥ͡ߥ󥰥ƥȤޤη륪֥Ȼ \f3ctx2\fP 򤳤̾˥Хɤ͡ߥ󥰥ƥȤɲäޤ .nf \f3 .fl @@ -310,7 +306,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -残りのコードでは、ダミーのオブジェクト参照を schedule と calendar という名前でネーミングコンテキスト "Personal" (\f3ctx2\fP) にバインドします。 +ĤΥɤǤϡߡΥ֥ȻȤ schedule calendar Ȥ̾ǥ͡ߥ󥰥ƥ "Personal" (\f3ctx2\fP) ˥Хɤޤ .nf \f3 .fl @@ -350,10 +346,10 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -.SH "サンプルクライアント:名前空間のブラウズ" +.SH "ץ륯饤: ֤̾Υ֥饦" .LP .LP -次のサンプルプログラムでは、名前空間をブラウズする方法を示します。 +ΥץץǤϡ֤֥̾饦ˡ򼨤ޤ .LP .nf \f3 @@ -380,7 +376,7 @@ public class NameClientList .fi .LP -前述の「Java IDL 一時ネームサービスの起動」で、ネームサーバーはポート 1050 を使用して起動しました。 次のコードで、このポート番号をクライアントプログラムに知らせます。 +ҤΡJava IDL ͡ॵӥεưפǡ͡ॵСϥݡ 1050 ѤƵưޤΥɤǡΥݡֹ򥯥饤ȥƥΤ餻ޤ .nf \f3 .fl @@ -400,7 +396,7 @@ public class NameClientList .fi .LP -次のコードでは、初期ネーミングコンテキストを取得しています。 +ΥɤǤϡ͡ߥ󥰥ƥȤƤޤ .nf \f3 .fl @@ -414,7 +410,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -\f2list\fP メソッドは、ネーミングコンテキストに追加されているバインディングをリストします。この場合、最大 1000 個までのバインディングが初期ネーミングコンテキストから BindingListHolder に返されます。 残りのバインディングは、BindingIteratorHolder に返されます。 +\f2list\fP ᥽åɤϡ͡ߥ󥰥ƥȤɲäƤХǥ󥰤ꥹȤޤξ硢 1000 ĤޤǤΥХǥ󥰤͡ߥ󥰥ƥȤ BindingListHolder ֤ޤĤΥХǥ󥰤ϡBindingIteratorHolder ֤ޤ .nf \f3 .fl @@ -430,7 +426,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、返された BindingListHolder からバインディングの配列を取得します。バインディングがない場合は、プログラムは終了します。 +ΥɤǤϡ֤줿 BindingListHolder Хǥ󥰤ޤХǥ󥰤ʤϡץϽλޤ .nf \f3 .fl @@ -444,7 +440,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -残りのコードでは、バインディングに対してループ処理を行い、名前を出力します。 +ĤΥɤǤϡХǥ󥰤Фƥ롼׽Ԥ̾Ϥޤ .nf \f3 .fl diff --git a/jdk/src/linux/doc/man/ja/unpack200.1 b/jdk/src/linux/doc/man/ja/unpack200.1 index 8a34dd3b718..c5f12136430 100644 --- a/jdk/src/linux/doc/man/ja/unpack200.1 +++ b/jdk/src/linux/doc/man/ja/unpack200.1 @@ -19,159 +19,125 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "02 Jun 2010" +.TH unpack200 1 "14 Apr 2011" .LP -.SH "名前" -unpack200 \- JAR アンパックツール +.SH "̾" +unpack200 \- JAR ѥåġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -終了ステータス +λơ .TP 2 o -関連項目 +Ϣ .TP 2 o -説明 +ջ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .LP \f4unpack200\fP\f2 [ \fP\f2options\fP ] \f2input\-file\fP \f2JAR\-file\fP .LP .LP -オプションの指定順序に決まりはありません。コマンド行に指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。 -.LP -.RS 3 - +ץλ˷ޤϤޤ󡣥ޥɹԤ˻ꤵ줿ǸΥץ󤬡˻ꤵ줿٤ƤΥץͥ褵ޤ .LP .RS 3 .TP 3 input\-file -入力ファイルの名前。 入力ファイルは通常、pack200 gzip ファイルか pack200 ファイルです。このほかに、0 を設定すれば pack200(1) から作成された JAR ファイルも入力ファイルとして使用できます。 この場合、入力ファイルの内容が Pack200 マーカーとともに出力 JAR ファイルにコピーされます。 +ϥե̾ϥե̾pack200 gzip ե뤫 pack200 եǤΤۤˡ0 ꤹ pack200(1) 줿 JAR եϥեȤƻѤǤޤξ硢ϥեƤ Pack200 ޡȤȤ˽ JAR ե˥ԡޤ .TP 3 JAR\-file -出力 JAR ファイル名。 + JAR ե̾ .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -\f2unpack200\fP は、\f2pack200\fP(1) で作成されたパックファイルを JAR ファイルに変換するネイティブ実装です。一般的な使用方法: -.LP -.RS 3 - +\f2unpack200\fP ϡpack200(1) Ǻ줿ѥåե JAR եѴ \f2ͥƥּ\fPǤŪʻˡ: .LP .LP \f2% unpack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP -この例では、デフォルトの \f2unpack200\fP 設定で、\f2myarchive.jar\fP から \f2myarchive.pack.gz\fP が作成されます。 +Ǥϡ \f2ǥեȤ unpack200 ǡmyarchive.pack.gz\fP \f2myarchive.jar\fP \f2ޤ\fP .LP -.SH "オプション" -.LP -.SS -標準オプション -.LP -.RS 3 - +.SH "ץ" .LP .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -JAR ファイル内のすべてのエントリに \f2true\fP、\f2false\fP、\f2keep\fP としてデフレーションを設定します。デフォルトモードは \f2keep\fP です。\f2true\fP または \f2false\fP の場合、デフォルトの動作をオーバーライドして、出力 JAR ファイル内のすべてのエントリのデフレーションモードを設定します。 -.LP -.RE -.RE -.SS -非標準オプション -.LP -.RS 3 - +JAR եΤ٤ƤΥȥ \f2true\fP \f2false\fP \f2keep\fP Ȥƥǥե졼ꤷޤǥեȥ⡼ɤ \f2keep\fP Ǥ \f2true\fP ޤ \f2false 硢\fPǥեȤư򥪡С饤ɤơ JAR եΤ٤ƤΥȥΥǥե졼⡼ɤꤷޤ .LP .LP \f4\-r \-\-remove\-pack\-file\fP .LP -.RS 3 - .LP +ϥѥåեޤ .LP -入力パックファイルを削除します。 -.LP -.RE .LP \f4\-v \-\-verbose\fP .LP -.RS 3 - .LP +Ǿ¤ΥåϤޤΥץʣꤹȡĹåϤޤ .LP -最小限のメッセージを出力します。このオプションを複数指定すると、より長いメッセージが出力されます。 -.LP -.RE .LP \f4\-q \-\-quiet\fP .LP -.RS 3 - .LP +åɽưޤ .LP -メッセージを表示せずに動作します。 -.LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP .LP -.RS 3 - +.LP +ϥåΥեꤷޤ .LP .LP -出力メッセージのログファイルを指定します。 -.LP -.RE -.RE -.SH "終了ステータス" -.LP - +\f4\-? \-h \-\-help\fP .LP .LP -次の終了値が返されます。 -.LP -.RS 3 - +Υޥɤ˴ؤإ׾Ϥޤ .LP .LP -\f2\ 0\fP " 成功" +\f4\-V \-\-version\fP .LP .LP -\f2>0\fP " エラー" +Υޥɤ˴ؤСϤޤ .LP -.RE -.SH "関連項目" +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +unpack200 ˤäƸƤӽФ Java ưġ \f2ץ\fP \f2Ϥޤ\fP +.LP +.SH "λơ" +.LP +.LP +νλ֤ͤޤ +.LP +.LP +\f2\ 0\fP " " +.LP +.LP +\f2>0\fP " 顼" +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -180,35 +146,33 @@ pack200(1) .TP 2 o .na -\f2Java SE のドキュメント\fP @ +\f2Java SE Υɥ\fP @ .fi http://java.sun.com/javase/6/docs/index.html .TP 2 o .na -\f2「Java 配備ガイド \- Pack200」\fP @ +\f2Java \- Pack200\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o -jar(1) \- Java Archive ツール」 +jar(1) \- Java Archive ġ .TP 2 o -「jarsigner(1) \- JAR 署名および検証ツール」 +jarsigner(1) \- JAR ̾Ӹڥġ .TP 2 o -\f2attributes(5)\fP のマニュアルページ +\f2attributes(5)\fP Υޥ˥奢ڡ .RE .LP -.SH "注意事項" -.LP - +.SH "ջ" .LP .LP -このコマンドと \f2unpack(1)\fP を混同しないでください。これらは別製品です。 +Υޥɤ \f2unpack(1) \fPƱʤǤʤǤ .LP .LP -SDK に付属する Java SE API 仕様との相違が見つかった場合には、仕様を優先してください。 +SDK ° Java SE API ͤȤ㤬Ĥäˤϡͤͥ褷Ƥ .LP diff --git a/jdk/src/linux/doc/man/ja/wsgen.1 b/jdk/src/linux/doc/man/ja/wsgen.1 index 49f39d6054f..2a3bc5874eb 100644 --- a/jdk/src/linux/doc/man/ja/wsgen.1 +++ b/jdk/src/linux/doc/man/ja/wsgen.1 @@ -19,30 +19,24 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "02 Jun 2010" -.SH "名前" -wsgen \- XML Web Services (JAX\-WS) 2.0 のための Java(TM) API -.RS 3 - +.TH wsgen 1 "14 Apr 2011" +.SH "̾" +wsgen \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP -.LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.1 +\f3С:\fP 2.1.1 .LP +\f2wsgen\fP ġϡJAX\-WS Web ӥǻѤ JAX\-WS ݡ֥륢ƥեȤޤΥġϡWeb ӥΥɥݥȼ饹 (SEI) ɤ߼ꡢWeb ӥȸƤӽФɬפʤ٤ƤΥƥեȤޤ +.SH "" .LP -\f2wsgen\fP ツールは、JAX\-WS Web サービスで使用される JAX\-WS ポータブルアーティファクトを生成します。このツールは、Web サービスのエンドポイント実装クラス (SEI) を読み取り、Web サービスの配備と呼び出しに必要なすべてのアーティファクトを生成します。 -.LP -.RE -.SH "概要" -.LP -\f2wsgen\fP ツールは、JAX\-WS Web サービスで使用される JAX\-WS ポータブルアーティファクトを生成します。このツールは、Web サービスのエンドポイントクラスを読み取り、Web サービスの配備と呼び出しに必要なすべてのアーティファクトを生成します。JAXWS 2.1.1 RI には wsgen Ant タスクも用意されています。詳細は、 +\f2wsgen\fP ġϡJAX\-WS Web ӥǻѤ JAX\-WS ݡ֥륢ƥեȤޤΥġϡWeb ӥΥɥݥȥ饹ɤ߼ꡢWeb ӥȸƤӽФɬפʤ٤ƤΥƥեȤޤJAXWS 2.1.1 RI ˤ wsgen Ant ѰդƤޤܺ٤ϡ .na -\f2Wsgen Ant タスク\fP @ +\f2Wsgen Ant \fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsgenant.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsgenant.html򻲾ȤƤ .LP -.SH "wsgen の起動" +.SH "wsgen εư" .RS 3 .TP 2 o @@ -69,7 +63,7 @@ o .RE .LP -.SH "構文" +.SH "ʸ" .nf \f3 .fl @@ -80,7 +74,7 @@ wsgen [options] <SEI>\fP \fP .fi .LP -次の表に、\f2wsgen\fP のオプションを示します。 +ɽˡ \f2wsgen\fP Υץ򼨤ޤ .br .LP .TS @@ -111,7 +105,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -入力クラスファイルの検索場所を指定します +ϥ饹եθꤷޤ .br .di .nr a| \n(dn @@ -127,7 +121,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2\-classpath <path>\fP と同じ +\-classpath <path> \f2ƱǤ\fP .br .di .nr b| \n(dn @@ -143,7 +137,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成される出力ファイルを格納する場所を指定する +ϥեǼꤷޤ .br .di .nr c| \n(dn @@ -159,7 +153,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ベンダー拡張 (仕様で規定されていない機能) を許可します。拡張を使用すると、アプリケーションの移植性が失われたり、ほかの実装との相互運用が行えなくなる可性があります +٥ĥ (ͤǵꤵƤʤǽ) ĤޤĥѤȡץꥱΰܿ줿ꡢۤμȤ߱ѤԤʤʤޤ .br .di .nr d| \n(dn @@ -175,7 +169,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ヘルプを表示します +إפɽޤ .br .di .nr e| \n(dn @@ -191,7 +185,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されたファイルを保持します +줿եݻޤ .br .di .nr f| \n(dn @@ -207,7 +201,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \-wsdl オプションと組み合わせて使用します。WSDL などの生成されたリソースファイルの格納場所を指定します + \-wsdl ץȤ߹碌ƻѤޤWSDL ʤɤ줿꥽եγǼꤷޤ .br .di .nr g| \n(dn @@ -223,7 +217,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されるソースファイルを格納する場所を指定する +륽եǼꤹ .br .di .nr h| \n(dn @@ -239,7 +233,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイラが実行している処理に関するメッセージを出力します +ѥ餬¹ԤƤ˴ؤåϤޤ .br .di .nr i| \n(dn @@ -255,7 +249,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -バージョン情報を出力します。このオプションを使用した場合、バージョン情報が出力されるだけです。通常の処理は実行されません。 +СϤޤΥץѤ硢С󤬽ϤǤ̾νϼ¹Ԥޤ .br .di .nr j| \n(dn @@ -271,7 +265,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2wsgen\fP は、デフォルトでは WSDL ファイルを生成しません。このフラグは省略可能ですが、指定した場合は \f2wsgen\fP が WSDL ファイルを生成するようになります。このフラグは通常、エンドポイントの配備前に開発者が WSDL を参照できるようにするためだけに使用されます。\f2protocol\fP は省略可能であり、\f2wsdl:binding\fP で使用すべきプロトコルを指定するために使用されます。有効なプロトコルは次のとおりです。\f2soap1.1\fP と \f2Xsoap1.2\fP。デフォルトは \f2soap1.1\fP です。\f2Xsoap1.2\fP は標準ではないため、\f2\-extension\fP オプションと組み合わせないと使用できません。 +ǥեȤǤ \f2wsgen\fP WSDL եޤ󡣤Υե饰ϾάǽǤꤷ \f2wsgen\fP WSDL ե褦ˤʤޤΥե饰̾ɥݥȤ˳ȯԤ WSDL 򻲾ȤǤ褦ˤ뤿˻Ѥޤ \f2protocol\fP ϾάǽǤꡢwsdl:binding ǻѤ٤ץȥꤹ뤿 \f2Ѥޤ\fPͭʥץȥϼΤȤǤ \f2soap1.1\fP \f2Xsoap1.2\fPǥեȤ \f2soap1.1\fP Ǥ \f2Xsoap1.2\fP ɸǤϤʤᡢ \f2\-extension\fP ץȤ߹碌ʤȻѤǤޤ .br .di .nr k| \n(dn @@ -287,7 +281,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \f2\-wsdl\fP オプションと組み合わせて使用します。WSDL 内で生成されるべき \f2wsdl:service\fP の名前を指定するために使用します。例 : \f2\-servicename "{http://mynamespace/}MyService"\fP + \f2\-wsdl\fP ץȤ߹碌ƻѤޤWSDL ٤ \f2wsdl:service\fP ̾ꤹ뤿˻Ѥޤ: \f2\-servicename "{http://mynamespace/}MyService"\fP .br .di .nr l| \n(dn @@ -303,7 +297,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \f2\-wsdl\fP オプションと組み合わせて使用します。WSDL 内で生成されるべき \f2wsdl:port\fP の名前を指定するために使用します。例 : \f2\-portname "{http://mynamespace/}MyPort"\fP + \f2\-wsdl\fP ץȤ߹碌ƻѤޤWSDL ٤ \f2wsdl:port\fP ̾ꤹ뤿˻Ѥޤ: \f2\-portname "{http://mynamespace/}MyPort"\fP .br .br .di @@ -315,7 +309,7 @@ wsgen [options] <SEI>\fP .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f4\-classpath <path>\fP .if \n(80<\n(38 .nr 80 \n(38 @@ -346,7 +340,7 @@ wsgen [options] <SEI>\fP .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -386,7 +380,7 @@ wsgen [options] <SEI>\fP .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 143 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 137 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -403,7 +397,7 @@ wsgen [options] <SEI>\fP .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -633,7 +627,7 @@ wsgen [options] <SEI>\fP .if \n-(b.=0 .nr c. \n(.c-\n(d.-57 .LP -.SH "例" +.SH "" .nf \f3 .fl @@ -641,7 +635,7 @@ wsgen [options] <SEI>\fP .fl .fi .LP -\f3stock\fP ディレクトリ内に @WebService 注釈が付けられた、StockService に必要なラッパークラスが生成されます。 +\f3stock\fP ǥ쥯ȥ @WebService ᤬դ줿StockService ɬפʥåѡ饹ޤ .nf \f3 .fl @@ -649,7 +643,7 @@ wsgen [options] <SEI>\fP .fl .fi .LP -SOAP 1.1 WSDL と、@WebService 注釈が付けられた Java クラス stock.StockService のスキーマが生成されます。 +SOAP 1.1 WSDL ȡ@WebService ᤬դ줿 Java 饹 stock.StockService Υޤޤ .nf \f3 .fl @@ -657,6 +651,6 @@ SOAP 1.1 WSDL と、@WebService 注釈が付けられた Java クラス stock.St .fl .fi .LP -SOAP 1.2 WSDL が生成されます。 +SOAP 1.2 WSDL ޤ .LP -サービスを配備するときに JAXWS ランタイムによって自動的に WSDL が生成されるため、開発時に WSDL を生成する必要はありません。 +ӥȤ JAXWS 󥿥ˤäƼưŪ WSDL 뤿ᡢȯ WSDL ɬפϤޤ diff --git a/jdk/src/linux/doc/man/ja/wsimport.1 b/jdk/src/linux/doc/man/ja/wsimport.1 index bd51f28ca1a..ff5301792d8 100644 --- a/jdk/src/linux/doc/man/ja/wsimport.1 +++ b/jdk/src/linux/doc/man/ja/wsimport.1 @@ -19,44 +19,44 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "02 Jun 2010" -.SH "名前" -wsimport \- XML Web Services (JAX\-WS) 2.0 のための Java(TM) API +.TH wsimport 1 "14 Apr 2011" +.SH "̾" +wsimport \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.1 +\f3С:\fP 2.1.1 .br -.SH "概要" +.SH "" .LP -\f2wsimport\fP ツールは、次のような JAX\-WS ポータブルアーティファクトを生成します。 +\f2wsimport\fP ġϡΤ褦 JAX\-WS ݡ֥륢ƥեȤޤ .RS 3 .TP 2 o -サービスエンドポイントインタフェース (SEI) +ӥɥݥȥ󥿥ե (SEI) .TP 2 o -サービス +ӥ .TP 2 o -wsdl:fault からマップされる例外クラス (存在する場合) +wsdl:fault ޥåפ㳰饹 (¸ߤ) .TP 2 o -応答 wsdl:message から派生する非同期応答 Bean (存在する場合) + wsdl:message Ʊ Bean (¸ߤ) .TP 2 o -JAX\-B が生成する値タイプ (スキーマの型からマップされた Java クラス) +JAX\-B ͥ (ޤηޥåפ줿 Java 饹) .RE .LP -これらのアーティファクトは、WSDL ドキュメント、スキーマドキュメント、およびエンドポイント実装とともに WAR ファイル内にパッケージ化して配備することができます。また、wsimport Ant タスクも用意されています。 +ΥƥեȤϡWSDL ɥȡޥɥȡӥɥݥȼȤȤ WAR ե˥ѥå뤳ȤǤޤޤwsimport Ant ѰդƤޤ .na -\f2Wsimport Ant タスク\fP @ +\f2wsimport Ant \fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsimportant.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsimportant.html򻲾ȤƤ .br .LP -.SH "wsimport の起動" +.SH "wsimport εư" .RS 3 .TP 2 o @@ -77,7 +77,7 @@ o .RE .LP -.SH "構文" +.SH "ʸ" .nf \f3 .fl @@ -86,7 +86,7 @@ wsimport [options] <wsdl> \fP .fi .LP -次の表に、\f2wsimport\fP のオプションを示します。 +ɽˡ \f2wsimport\fP Υץ򼨤ޤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -116,7 +116,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成される出力ファイルを格納する場所を指定します +ϥեǼꤷޤ .br .di .nr a| \n(dn @@ -132,7 +132,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -外部の JAX\-WS または JAXB バインディングファイルを指定します (\f2<file>\fP ごとに \f2\-b\fP が必要となる) + JAX\-WS ޤ JAXB Хǥ󥰥եꤷޤ ( \f2<file>\fP Ȥ \f2\-b\fP ɬפȤʤ) .br .di .nr b| \n(dn @@ -148,7 +148,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -このオプションを JAXB スキーマコンパイラに渡します +Υץ JAXB ޥѥϤޤ .br .di .nr c| \n(dn @@ -164,11 +164,11 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -外部エンティティー参照を解決するためのカタログファイルを指定します。 TR9401、XCatalog、OASIS XML Catalog の各形式がサポートされています。 +ƥƥȤ褹뤿ΥեꤷޤTR9401XCatalogOASIS XML Catalog γƷݡȤƤޤ .na -\f2カタログ\fP @ +\f2\fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュメントをお読みになり、\f3カタログ\fPのサンプルを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlΥɥȤɤߤˤʤꡢ\f3\fPΥץ򻲾ȤƤ .br .di .nr d| \n(dn @@ -184,7 +184,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ベンダー拡張 (仕様で規定されていない機能) を許可します。拡張を使用すると、アプリケーションの移植性が失われたり、ほかの実装との相互運用が行えなくなる可能性があります +٥ĥ (ͤǵꤵƤʤǽ) ĤޤĥѤȡץꥱΰܿ줿ꡢۤμȤ߱ѤԤʤʤǽޤ .br .di .nr e| \n(dn @@ -200,7 +200,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ヘルプを表示します +إפɽޤ .br .di .nr f| \n(dn @@ -232,7 +232,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HTTP プロキシサーバーを指定します (デフォルトのポートは 8080) +HTTP ץСꤷޤ (ǥեȤΥݡȤ 8080) .br .di .nr h| \n(dn @@ -248,7 +248,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されたファイルを保持します +줿եݻޤ .br .di .nr i| \n(dn @@ -264,7 +264,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -このコマンド行オプション経由でターゲットパッケージを指定した場合、その指定内容は、パッケージ名に対するすべての WSDL/スキーマバインディングカスタマイズや、 仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます +Υޥɹԥץͳǥåȥѥåꤷ硢λƤϡѥå̾Ф뤹٤Ƥ WSDL/ޥХǥ󥰥ޥ䡢 ͤǵꤵƤǥեȤΥѥå̾르ꥺͥ褵ޤ .br .di .nr j| \n(dn @@ -280,7 +280,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されるソースファイルを格納する場所を指定します +륽եǼꤹ .br .di .nr k| \n(dn @@ -296,7 +296,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイラが実行している処理に関するメッセージを出力します +ѥ餬¹ԤƤ˴ؤåϤޤ .br .di .nr l| \n(dn @@ -312,7 +312,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -バージョン情報を出力します +СϤޤ .br .di .nr m| \n(dn @@ -344,7 +344,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2@WebServiceClient.wsdlLocation\fP 値 +\f2@WebServiceClient.wsdlLocation\fP .br .di .nr o| \n(dn @@ -360,7 +360,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -指定された JAX\-WS 仕様バージョンに従ってコードを生成します。バージョン 2.0 では、JAX\-WS 2.0 仕様に準拠したコードを生成します。 +ꤵ줿 JAX\-WS ͥС˽äƥɤޤС 2.0 ǤϡJAX\-WS 2.0 ͤ˽򤷤ɤޤ .br .di .nr p| \n(dn @@ -376,7 +376,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -wsimport 出力を抑制します +wsimport Ϥޤ .br .di .nr q| \n(dn @@ -387,7 +387,7 @@ wsimport 出力を抑制します .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f3\-d <directory> \fP .if \n(80<\n(38 .nr 80 \n(38 @@ -422,7 +422,7 @@ wsimport 出力を抑制します .nr 38 \n(n- .if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -483,7 +483,7 @@ wsimport 出力を抑制します .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -766,13 +766,294 @@ wsimport 出力を抑制します .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-72 .LP -\f2\-b\fP オプションを使って、複数の JAX\-WS および JAXB バインディングファイルを指定できます。 これらのファイルを使って、パッケージ名や Bean 名など、さまざまなカスタマイズが可能です。 JAX\-WS および JAXB バインディングファイルの詳細は、 +\-b ץȤäơʣ JAX\-WS JAXB Хǥ󥰥ե \f2Ǥޤ\fP ΥեȤäơѥå̾ Bean ̾ʤɡޤޤʥޥǽǤJAX\-WS JAXB Хǥ󥰥եξܺ٤ϡ .na -\f2カスタマイズマニュアル\fP @ +\f2ޥޥ˥奢\fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html򻲾ȤƤ .LP -.SH "例" +ɽˡ \f2wsimport\fP ɸ४ץ򼨤ޤ +.LP +.TS +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 81 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +׵ޤϱå˥Хɤʤإå Java ᥽åɤΥѥ᡼˥ޥåפޤ +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://username:password@example.org/stock?wsdl +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ǥХåϤޤ +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +\f3\-Xno\-addressing\-databinding\fP +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +W3C \f2EndpointReferenceType\fP Java ΥХǥ󥰤ͭˤޤ +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +줿 Java ե򥳥ѥ뤷ޤ +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3ץ\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-XadditionalHeaders\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xauthfile <file>\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xdebug\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xnocompile\fP +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(f- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 199 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP +.ne \n(a|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-XadditionalHeaders\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(b|u+\n(.Vu +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xauthfile <file>\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xdebug\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xnocompile\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.TE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 + +.LP +.SH "" .nf \f3 .fl @@ -780,6 +1061,6 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.htmlを参照して .fl .fi .LP -Java アーティファクトを生成し、\f2http://stockquote.xyz/quote?wsdl\fP をインポートすることで、それらのアーティファクトをコンパイルします。 +Java ƥեȤ \f2http://stockquote.xyz/quote?wsdl\fP 򥤥ݡȤ뤳ȤǡΥƥեȤ򥳥ѥ뤷ޤ .br diff --git a/jdk/src/linux/doc/man/ja/xjc.1 b/jdk/src/linux/doc/man/ja/xjc.1 index 83d80e9c21b..7aec40218aa 100644 --- a/jdk/src/linux/doc/man/ja/xjc.1 +++ b/jdk/src/linux/doc/man/ja/xjc.1 @@ -19,266 +19,277 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "02 Jun 2010" +.TH xjc 1 "14 Apr 2011" .LP .ad c -.SH "名前" -xjc \- XML バインドのための Java(TM) アーキテクチャー +.SH "̾" +xjc \- XML ХɤΤ Java(TM) ƥ㡼 .br -バインディングコンパイラ +Хǥ󥰥ѥ .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3リファレンス実装 (RI) バージョン:\fP 2.1.3 .ad l +\f3ե󥹼 (RI) С:\fP 2.1.3 .ad l .LP -.SH "xjc の起動" +.SH "xjc εư" .LP .LP -バインディングコンパイラを起動するには、使用するプラットフォームに応じた \f2bin\fP ディレクトリ内の \f2xjc\fP シェルスクリプトを使用します。また、バインディングコンパイラを実行するための Ant タスクも用意されています。 +Хǥ󥰥ѥưˤϡѤץåȥե˱ bin ǥ쥯ȥ \f2xjc\fP 륹ץ \f2\fP ѤޤޤХǥ󥰥ѥ¹Ԥ뤿 Ant ѰդƤޤ .na -\f2xjc を Ant とともに使用する\fP @ +\f2xjc Ant ȤȤ˻Ѥ\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.htmlための手順を参照してください。 -.LP -.RS 3 - +https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.htmlμ򻲾ȤƤ .LP .LP \f2% xjc \-help\fP .LP -.RE -\f3出力\fP -.LP -.RS 3 - +.SS + .LP .nf \f3 .fl -Usage: xjc [\-options ...] <schema_file/URL/dir> ... [\-b <bindinfo>] ... +Usage: xjc [\-options ...] <schema file/URL/dir/jar> ... [\-b <bindinfo>] ... +.fl +If dir is specified, all schema files in it will be compiled. +.fl +If jar is specified, /META\-INF/sun\-jaxb.episode binding file will be compiled. .fl Options: .fl - \-nv : do not perform strict validation of the input schema(s) + \-nv : do not perform strict validation of the input schema(s) .fl - \-extension : allow vendor extensions \- do not strictly follow the + \-extension : allow vendor extensions \- do not strictly follow the Compatibility Rules and App E.2 from the JAXB Spec .fl - Compatibility Rules and App E.2 from the JAXB Spec + \-b <file/dir> : specify external bindings files (each <file> must have its own \-b); if a directory is given, **/*.xjb is searched .fl - \-b <file/dir> : specify external bindings files (each <file> must have its own \-b) + \-d <dir> : generated files will go into this directory .fl - If a directory is given, **/*.xjb is searched + \-p <pkg> : specifies the target package .fl - \-d <dir> : generated files will go into this directory + \-httpproxy <proxy> : set HTTP/HTTPS proxy; format is [user[:password]@]proxyHost:proxyPort .fl - \-p <pkg> : specifies the target package + \-httpproxyfile <f> : works like \-httpproxy but takes the argument in a file to protect password .fl - \-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort + \-classpath <arg> : specify where to find user class files .fl - \-httpproxyfile <file>: set the proxy string (same format as above). + \-catalog <file> : specify catalog files to resolve external entity references; support TR9401, XCatalog, and OASIS XML Catalog format .fl - \-classpath <arg> : specify where to find user class files + \-readOnly : generated files will be in read\-only mode .fl - \-catalog <file> : specify catalog files to resolve external entity references + \-npa : suppress generation of package level annotations (**/package\-info.java) .fl - support TR9401, XCatalog, and OASIS XML Catalog format. + \-no\-header : suppress generation of a file header with timestamp .fl - \-readOnly : generated files will be in read\-only mode + \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features .fl - \-npa : suppress generation of package level annotations (**/package\-info.java) + \-xmlschema : treat input as W3C XML Schema (default) .fl - \-no\-header : suppress generation of a file header with timestamp + \-relaxng : treat input as RELAX NG (experimental,unsupported) .fl - \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features. + \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) .fl - \-xmlschema : treat input as W3C XML Schema (default) + \-dtd : treat input as XML DTD (experimental,unsupported) .fl - \-relaxng : treat input as RELAX NG (experimental,unsupported) + \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) .fl - \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) + \-verbose : be extra verbose .fl - \-dtd : treat input as XML DTD (experimental,unsupported) + \-quiet : suppress compiler output .fl - \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) + \-help : display this help message .fl - \-verbose : be extra verbose + \-version : display version information .fl - \-quiet : suppress compiler output + .fl - \-help : display this help message + .fl - \-version : display version information +Extensions: +.fl + \-Xlocator : enable source location support for generated code +.fl + \-Xsync\-methods : generate accessor methods with the 'synchronized' keyword +.fl + \-mark\-generated : mark the generated code as @javax.annotation.Generated +.fl + \-episode <FILE> : generate the episode file for separate compilation .fl \fP .fi -.RE .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-nv -デフォルトでは、XJC バインディングコンパイラは、ソーススキーマを処理する前に厳密な検証を実行します。このオプションを使用すると、厳密なスキーマ検証を無効にします。これは、バインディングコンパイラが検証を一切実行しないということではありません。 より厳密でない検証を実行するということです。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡޤ˸̩ʸڤ¹ԤޤΥץѤȡ̩ʥ޸ڤ̵ˤޤϡХǥ󥰥ѥ餬ڤڼ¹ԤʤȤȤǤϤޤ󡣤긷̩Ǥʤڤ¹ԤȤȤǤ .TP 3 \-extension -デフォルトでは、XJC バインディングコンパイラは、JAXB 仕様の「Compatibility」の章で説明されている規則を厳密に強制します。付録 E.2 には、JAXB v1.0 で完全にはサポートされていない一連の W3C XML スキーマ機能が定義されています。 場合によっては、このスイッチで有効になる「\-extension」モードでそれらの機能が使用できるかもしれません。また、デフォルトの厳密なモードでは、仕様に定義されているバインディングカスタマイズのみが使用できます。「\-extension」スイッチを指定すれば、JAXB Vendor Extension を使用できます。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡJAXB ͤΡCompatibilityפξϤƤ뵬§̩˶ޤϿ E.2 ˤϡJAXB v1.0 ǴˤϥݡȤƤʤϢ W3C XML ޵ǽƤޤˤäƤϡΥåͭˤʤ\-extensionץ⡼ɤǤεǽѤǤ뤫⤷ޤ󡣤ޤǥեȤθ̩ʥ⡼ɤǤϡͤƤХǥ󥰥ޥΤߤѤǤޤ\-extensionץåꤹСJAXB Vendor Extension ѤǤޤ .TP 3 \-b <file> -処理する外部バインディングファイルを 1 つまたは複数指定します。(バインディングファイルごとに「\f2\-b\fP」スイッチを指定する必要があります。)外部バインディングファイルの構文は非常に柔軟です。複数のスキーマのカスタマイズが含まれる 1 つのバインディングファイルを使用したり、それらのカスタマイズを複数のバインディングファイルに分割したりできます。 次に例を示します。 -.RS 3 - -.LP -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP +볰Хǥ󥰥ե 1 Ĥޤʣꤷޤ(Хǥ󥰥ե뤴Ȥ \f2\-b\fP åꤹɬפޤ) Хǥ󥰥եιʸ˽ǤʣΥޤΥޥޤޤ 1 ĤΥХǥ󥰥եѤꡢΥޥʣΥХǥ󥰥եʬ䤷Ǥޤ򼨤ޤ \f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP .br -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP -.RE -また、コマンド行にスキーマファイルとバインディングファイルを指定する順番は任意です。 +\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP ޤޥɹԤ˥ޥեȥХǥ󥰥եꤹ֤ǤդǤ .TP 3 \-d <dir> -デフォルトでは、XJC バインディングコンパイラは、Java コンテンツクラスを現在のディレクトリに生成します。このオプションを使用すると、代替出力ディレクトリを指定できます。出力ディレクトリはあらかじめ存在している必要があります。 XJC バインディングコンパイラは、このディレクトリを自動的に作成しません。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡJava ƥĥ饹򸽺ߤΥǥ쥯ȥޤΥץѤȡؽϥǥ쥯ȥǤޤϥǥ쥯ȥϤ餫¸ߤƤɬפޤXJC Хǥ󥰥ѥϡΥǥ쥯ȥưŪ˺ޤ .TP 3 \-p <pkg> -このコマンド行オプション経由でターゲットパッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディングカスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 +Υޥɹԥץͳǥåȥѥåꤷ硢λƤϡѥå̾Ф뤹٤ƤΥХǥ󥰥ޥ䡢ͤǵꤵƤǥեȤΥѥå̾르ꥺͥ褵ޤ .TP 3 \-httpproxy <proxy> -HTTP/HTTPS プロキシを指定します。形式は [user[:password]@]proxyHost[:proxyPort] です。従来の \f2\-host\fP および \f2\-port\fP は、下位互換性のためにリファレンス実装でもサポートされていますが、推奨されなくなりました。このオプションで指定されたパスワードは、\f2top\fP コマンドを使用するユーザーなど、ほかのユーザーが表示できる引数であることに注意してください。セキュリティーを高めるには、次の \f2\-httpproxyfile\fP を使用してください。 +HTTP/HTTPS ץꤷޤ [user[:password]@]proxyHost[:proxyPort] Ǥ \f2\-host\fP \f2\-port\fP ϡ̸ߴΤ˥ե󥹼Ǥ⥵ݡȤƤޤ侩ʤʤޤΥץǻꤵ줿ѥɤϡ \f2top\fP ޥɤѤ桼ʤɡۤΥ桼ɽǤǤ뤳ȤդƤƥˤϡ \f2\-httpproxyfile\fP ѤƤ .TP 3 \-httpproxyfile <file> -HTTP/HTTPS プロキシをファイル経由で指定します。形式は上記と同じですが、このファイル内に指定されたパスワードをほかのユーザーが表示することはできません。 +HTTP/HTTPS ץեͳǻꤷޤϾ嵭ƱǤΥե˻ꤵ줿ѥɤۤΥ桼ɽ뤳ȤϤǤޤ .TP 3 \-classpath <arg> -\f2<jxb:javaType>\fP および \f2<xjc:superClass>\fP カスタマイズが使用するクライアントアプリケーションのクラスファイルの検索場所を指定します。 +<jxb:javaType> <xjc:superClass> \f2ޥѤ\fP 饤ȥץꥱ \f2饹եθ\fP ꤷޤ .TP 3 \-catalog <file> -外部エンティティー参照を解決するカタログファイルを指定します。TR9401、XCatalog、および OASIS XML Catalog 形式がサポートされます。詳細は、『XML Entity and URI Resolvers』ドキュメントを参照するか、\f2カタログリゾルバ\fPのサンプルアプリケーションを調べてください。 +ƥƥȤ褹륫եꤷޤTR9401XCatalog OASIS XML Catalog ݡȤޤܺ٤ϡXML Entity and URI Resolvers٥ɥȤ򻲾Ȥ뤫 \f2꥾Ф\fP ץ륢ץꥱĴ٤Ƥ .TP 3 \-readOnly -デフォルトでは、XJC バインディングコンパイラは、生成する Java ソースファイルを書き込みから保護しません。このオプションを使用すると、XJC バインディングコンパイラは生成される Java ソースを強制的に読み取り専用にします。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡ Java ե񤭹ߤݸޤ󡣤ΥץѤȡXJC Хǥ󥰥ѥ Java Ūɤ߼Ѥˤޤ .TP 3 \-npa -パッケージレベルの注釈を **/package\-info.java に生成することを抑制します。このスイッチを使用して生成するコードでは、これらの注釈がほかの生成済みクラスに内部化されます。 +ѥå٥ **/package\-info.java 뤳ȤޤΥåѤ륳ɤǤϡ᤬ۤѤߥ饹ޤ .TP 3 \-no\-header -多少のメモとタイムスタンプを含むファイルヘッダーコメントの生成を抑制します。このオプションを使用すると、生成されたコードがわかりにくくなります。 +¿ΥȥॹפޤեإåȤޤΥץѤȡ줿ɤ狼ˤʤޤ .TP 3 \-target 2.0 -なんらかの JAXB 2.1 機能に依存するコードを生成しないようにします。これにより、生成されたコードを JAXB 2.0 ランタイム (JavaSE 6 など) で実行できます。 +ʤ餫 JAXB 2.1 ǽ˰¸륳ɤʤ褦ˤޤˤꡢ줿ɤ JAXB 2.0 󥿥 (JavaSE 6 ʤ) Ǽ¹ԤǤޤ .TP 3 \-xmlschema -入力スキーマを W3C XML スキーマ (デフォルト) と見なします。このスイッチを指定しなくても、入力スキーマは W3C XML スキーマと見なされます。 +ϥޤ W3C XML (ǥե) ȸʤޤΥåꤷʤƤ⡢ϥޤ W3C XML ޤȸʤޤ .TP 3 \-relaxng -入力スキーマを RELAX NG として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ RELAX NG Ȥưޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-relaxng\-compact -入力スキーマを RELAX NG 圧縮構文として処理します (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ RELAX NG ̹ʸȤƽޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-dtd -入力スキーマを XML DTD として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ XML DTD Ȥưޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-wsdl -入力を WSDL として扱い、その内部のスキーマをコンパイルします (試験的、未サポート)。 +Ϥ WSDL ȤưΥޤ򥳥ѥ뤷ޤ (Ṳ̄ݡ) .TP 3 \-quiet -進捗情報や警告など、コンパイラの出力を抑制します。 +ĽٹʤɡѥνϤޤ .TP 3 \-verbose -情報メッセージを出力したり特定のエラー発生時にスタックトレースを表示したりするなど、極めて冗長になります。 +åϤΥ顼ȯ˥åȥ졼ɽꤹʤɡˤƾĹˤʤޤ .TP 3 \-help -コンパイラスイッチの概要を表示します。 +ѥ饹åγפɽޤ .TP 3 \-version -コンパイラのバージョン情報を表示します。 +ѥΥСɽޤ .TP 3 <schema file/URL/dir> -コンパイル対象となる 1 つまたは複数のスキーマファイルを指定します。ユーザーがディレクトリを指定した場合、xjc はそのディレクトリを走査し、そこで見つかったすべてのスキーマファイルをコンパイルします。 +ѥоݤȤʤ 1 ĤޤʣΥޥեꤷޤ桼ǥ쥯ȥꤷ硢xjc ϤΥǥ쥯ȥǸĤä٤ƤΥޥե򥳥ѥ뤷ޤ .RE + +.LP .SS -非推奨コマンド行オプションおよび削除されたコマンド行オプションの概要 +ɸΥޥɹԥץ .LP .RS 3 +.TP 3 +\-Xlocator +줿ɤǤϡ󲽤ΤȤ Java Bean 󥹥󥹤˴ޤޤ륽 XML ˴ؤ SAX Locator 󤬸ޤ +.TP 3 +\-Xsync\-methods +줿٤ƤΥ᥽åɥ˥㡼 \f2Ʊ줿\fP ɤޤޤ +.TP 3 +\-mark\-generated +줿ɤ \f2@javax.annotation.Generated\fP դޤ +.TP 3 +\-episode <file> +ѥ뤴Ȥ˻ꤵ줿ԥɥեޤ +.RE +.LP +.SS +侩ޥɹԥץ󤪤Ӻ줿ޥɹԥץ .LP .RS 3 .TP 3 \-host & \-port -これらのオプションは非推奨となり、\f3\-httpproxy\fP オプションで置き換えられました。これらのオプションは、下位互換性を確保する目的で引き続きサポートされますが、ドキュメントには記載されず、将来のリリースで削除される可能性もあります。 +Υץ侩Ȥʤꡢ\f3\-httpproxy\fP ץ֤ޤΥץϡ̸ߴݤŪǰ³ݡȤޤɥȤˤϵܤ줺Υ꡼Ǻǽ⤢ޤ .TP 3 \-use\-runtime -JAXB 2.0 仕様で移植性のあるランタイムが規定されたため、JAXB RI が **/impl/runtime パッケージを生成する必要がなくなりました。このため、このスイッチは不要となり、削除されました。 +JAXB 2.0 ͤǰܿΤ󥿥बꤵ줿ᡢJAXB RI **/impl/runtime ѥåɬפʤʤޤΤᡢΥåפȤʤꡢޤ .TP 3 \-source -\-source 互換性スイッチは、JAXB 2.0 の最初の Early Access 版で導入されました。このスイッチは、JAXB 2.0 の今後のリリースから削除されることになりました。1.0.x コードを生成する必要がある場合には、1.0.x コードベースのインストールを使用してください。 -.TP 3 -\-Xlocator & \-Xsync\-methods -これらのスイッチは現時点では無効化されています。この機能は将来、個別のダウンロードとして提供される予定です。 +\-source ߴåϡJAXB 2.0 κǽ Early Access ǤƳޤΥåϡJAXB 2.0 κΥ꡼뤳Ȥˤʤޤ1.0.x ɤɬפϡ1.0.x ɥ١Υ󥹥ȡѤƤ .RE .LP -.RE .SS -コンパイラの制限 +ѥ .LP .LP -通常は、関連するすべてのスキーマを、同じバインディングコンパイラスイッチを指定して 1 つの単位としてコンパイルするのがもっとも安全です。 +̾ϡϢ뤹٤ƤΥޤƱХǥ󥰥ѥ饹åꤷ 1 Ĥñ̤Ȥƥѥ뤹ΤäȤǤ .LP .LP -xjc を実行するときは、次に示す制限に注意してください。これらの制限のほとんどは、xjc を何度か呼び出して複数のスキーマをコンパイルする場合にのみ適用されます。 +xjc ¹ԤȤϡ˼¤դƤ¤ΤۤȤɤϡxjc ٤ƤӽФʣΥޤ򥳥ѥ뤹ˤΤŬѤޤ .LP .RS 3 .TP 2 o -複数のスキーマを同時にコンパイルする場合は、ターゲットの Java パッケージ名に次の優先順位の規則が適用されることに注意してください。 +ʣΥޤƱ˥ѥ뤹ϡåȤ Java ѥå̾˼̤ͥε§ŬѤ뤳ȤդƤ .RS 3 .TP 3 1. -「\f2\-p\fP」コマンド行オプションがもっとも優先されます。 +\f2\-p\fPץޥɹԥץ󤬤äȤͥ褵ޤ .TP 3 2. -<\f2jaxb:package\fP> のカスタマイズ +<\f2jaxb:package\fP> Υޥ .TP 3 3. -\f2targetNamespace\fP が宣言されている場合は、仕様に定義されている \f2targetNamespace\fP \-> Java パッケージ名のアルゴリズムを適用します。 +\f2targetNamespace\fP Ƥϡ \f2ͤƤ targetNamespace\fP \-> Java ѥå̾Υ르ꥺŬѤޤ .TP 3 4. -\f2targetNamespace\fP が宣言されていない場合は、"generated" という名前のハードコードされたパッケージを使用します。 +\f2targetNamespace\fP ƤʤϡgeneratedפȤ̾Υϡɥɤ줿ѥåѤޤ .RE .TP 2 o -名前空間ごとに複数の <\f2jaxb:schemaBindings\fP> を持つことは不正です。 このため、1 つのターゲット名前空間内の 2 つのスキーマを、異なる Java パッケージにコンパイルすることはできません。 +֤̾Ȥʣ <\f2jaxb:schemaBindings\fP> ĤȤǤΤᡢ1 ĤΥå̾ 2 ĤΥޤۤʤ Java ѥå˥ѥ뤹뤳ȤϤǤޤ .TP 2 o -1 つの Java パッケージにコンパイルされるすべてのスキーマは、XJC バインディングコンパイラに同時に送信する必要があります。 個別にコンパイルすることはできず、予期したとおりに動作しません。 +1 Ĥ Java ѥå˥ѥ뤵뤹٤ƤΥޤϡXJC Хǥ󥰥ѥƱɬפޤ̤˥ѥ뤹뤳ȤϤǤͽȤưޤ .TP 2 o -複数のスキーマファイルにまたがる要素置換グループは、同時にコンパイルする必要があります。 +ʣΥޥեˤޤִ롼פϡƱ˥ѥ뤹ɬפޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -コマンド行でのコンバータの実行 (XJC):[ +ޥɹԤǤΥСμ¹ (XJC): [ .na -\f2コマンド行の命令\fP @ +\f2ޥɹԤ̿\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/xjc.html、 +https://jaxb.dev.java.net/nonav/2.1.3/docs/xjc.html .na -\f2xjc を Ant とともに使用する\fP @ +\f2xjc Ant ȤȤ˻Ѥ\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.html] .TP 2 o .na -\f2XML バインドのための JavaTM アーキテクチャー (JAXB)\fP @ +\f2XML ХɤΤ Java ƥ㡼 (JAXB)\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 b/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 index e7b128d6869..fcbcc19a43b 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 @@ -19,54 +19,44 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "02 Jun 2010" +.TH appletviewer 1 "14 Apr 2011" .LP -.SH "名前" -appletviewer \- Java アプレットビューア -.LP -.RS 3 - +.SH "̾" +appletviewer \- Java ץåȥӥ塼 .LP .LP -\f3appletviewer\fP コマンドは Web ブラウザの外でアプレットを実行させます。 +\f3appletviewer\fP ޥɤ Web ֥饦γǥץåȤ¹Ԥޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .LP \f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ... .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3appletviewer\fP コマンドは \f2urls\fP に指定されたドキュメントあるいはリソースと接続して、そのドキュメントが参照するそれぞれのアプレットを独自のウィンドウで表示します。注: \f2urls\fP によって参照されたドキュメントが、\f2OBJECT\fP、\f2EMBED\fP、または \f2APPLET\fP タグでどのアプレットも参照していない場合、\f3appletviewer\fP は何も行いません。\f3appletviewer\fP でサポートされる HTML タグの詳細については、 +\f3appletviewer\fP ޥɤ \f2urls\fP ˻ꤵ줿ɥȤ뤤ϥ꥽³ơΥɥȤȤ뤽줾ΥץåȤȼΥɥɽޤ: \f2urls\fP ˤäƻȤ줿ɥȤ\f2OBJECT\fP\f2EMBED\fPޤ \f2APPLET\fP ǤɤΥץåȤ⻲ȤƤʤ硢\f3appletviewer\fP ϲԤޤ\f3appletviewer\fP ǥݡȤ HTML ξܺ٤ˤĤƤϡ .na -\f2「アプレットビューアのタグ」\fP @ +\f2֥ץåȥӥ塼Υ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.html򻲾ȤƤ .LP .LP -\f3注:\fP \f3appletviewer\fP は、RFC2396 で規定されたエスケープ機構に従って符号化された URL を必要とします。サポートされるのは、符号化された URL だけです。ただし、ファイル名については、RFC2396 に指定された方法で符号化を解除しておく必要があります。 +\f3:\fP \f3appletviewer\fP ϡRFC2396 ǵꤵ줿׵˽ä沽줿 URL ɬפȤޤݡȤΤϡ沽줿 URL Ǥե̾ˤĤƤϡRFC2396 ˻ꤵ줿ˡ沽Ƥɬפޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-debug -Java デバッガ jdb(1) でアプレットビューアを開始します。 これにより、ドキュメント中のアプレットをデバッグすることができます。 +Java ǥХå jdb(1) ǥץåȥӥ塼򳫻ϤޤˤꡢɥΥץåȤǥХå뤳ȤǤޤ .TP 3 \-encoding \ \ encoding name -入力 HTML ファイルのエンコーディング名を指定します。 + HTML եΥ󥳡ǥ̾ꤷޤ .TP 3 \-Jjavaoption -文字列 \f2javaoption\fP は、appletviewer を実行する Java インタプリタに 1 つの引数として渡されます。引数にスペースを含めてはいけません。複数の引数は、各引数のすべてを接頭辞 \f3\-J\fP で始めることにより区分する必要があります。これは、コンパイラの実行環境、またはメモリーの利用に有効です。 +ʸ \f2javaoption\fP ϡappletviewer ¹Ԥ Java 󥿥ץ꥿ 1 ĤΰȤϤޤ˥ڡޤƤϤޤʣΰϡưΤ٤ƤƬ \f3\-J\fP ǻϤ뤳Ȥˤʬɬפޤϡѥμ¹ԴĶޤϥ꡼ѤͭǤ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 b/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 index 45f9ebb16ff..6255300f0aa 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 @@ -19,102 +19,133 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "02 Jun 2010" +.TH apt 1 "14 Apr 2011" .LP .SH "NAME" .LP .LP -\f2apt\fP \- 注釈処理ツール +\f2apt\fP \- ġ .LP -.SH "形式" +.SH "" .LP .LP -\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...][\f2javac option\fP] sourcefiles [@files] +\f2apt [\-classpath \fP\f2classpath\fP] [\-sourcepath \f2sourcepath\fP] [\-d \f2directory\fP] [\-s \f2directory\fP] [\-factorypath \f2path\fP] [\-factory \f2class\fP] [\-print] [\-nocompile] [\-A\f2key\fP[\f2=val\fP] ...] [\f2javac option\fP] sourcefiles [@files] .LP -.SH "パラメータ" +.SH "ѥ᡼" .LP .LP -オプションは順不同です。特定のオプションに適用されるパラメータについては、下記の「オプション」を参照してください。 +ץλ˷ޤϤޤΥץŬѤѥ᡼ˤĤƤϡΡ֥ץפ򻲾ȤƤ .LP .RS 3 .TP 3 sourcefiles -ゼロ、1 つ、または複数の処理対象のソースファイル +1 ġޤʣνоݤΥե .TP 3 @files -ソースファイルまたは他のオプションを一覧表示する 1 つまたは複数のファイル +եޤ¾Υץɽ 1 ĤޤʣΥե .RE .LP -.SH "説明" +.SH "" .LP .LP -注釈処理ツール \f2apt\fP は、新しいリフレクト API とサポートインフラストラクチャーから構成され、プログラム注釈を処理します。\f2apt\fP リフレクト API は、 構築時のソースベースで、プログラム構造に関する読み取り専用ビューを提供します。これらのリフレクト API は、総称を追加した後に、Java(TM) プログラミング言語の型システムを正しくモデル化するように設計されています。最初に、\f2apt\fP は、新しいソースコードと他のファイルを作成する注釈プロセッサを実行します。次に、\f2apt\fP は、元のソースファイルと生成したソースファイルの両方をコンパイルするため、開発が楽になります。ツールとのインタフェースに使用されるリフレクト API などの API は、\f2com.sun.mirror\fP のサブパッケージです。 +ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ .LP .LP -ツールの機能に関する詳細と、\f2apt\fP を使用した開発方法については、 +ġεǽ˴ؤܺ٤ȡ\f2apt\fP ѤȯˡˤĤƤϡ .na -\f4「\fP\f4apt\fP\f3 入門」\fP @ +\f4apt \fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html򻲾ȤƤ .LP .RS 3 .TP 3 -注: -\f2apt\fP の機能は、\f2javac(1)\fP ツールの一部となった注釈処理インフラストラクチャーに組み込まれ、すべての Java コンパイラで使用できるように標準化されました。この新しいインフラストラクチャーは、言語モデルおよび Java プラットフォームの一部となった注釈処理 API に依存します。注釈プロセッサの開発は、新しい API および \f2javac\fP ツールに基づいて行うようお勧めします。 +: +\f2apt\fP εǽϡ\f2javac(1)\fP ġΰȤʤäե饹ȥ饯㡼Ȥ߹ޤ졢٤Ƥ Java ѥǻѤǤ褦ɸಽޤοե饹ȥ饯㡼ϡǥ뤪 Java ץåȥեΰȤʤä API ˰¸ޤץåγȯϡ API \f2javac\fP ġ˴ŤƹԤ褦ᤷޤ .RE .LP -.SH "オプション" +.SH "ץ" .LP .SS -apt 固有のオプション +apt ͭΥץ .LP .RS 3 .TP 3 \-s dir -プロセッサの生成するソースファイルを置くディレクトリルートを指定します。 ファイルは、パッケージの名前空間に基づいてサブディレクトリに置かれます。 +ץå륽ե֤ǥ쥯ȥ롼Ȥꤷޤ եϡѥå֤̾˴Ťƥ֥ǥ쥯ȥ֤ޤ .TP 3 \-nocompile -ソースファイルをクラスファイルにコンパイルしません。 +ե򥯥饹ե˥ѥ뤷ޤ .TP 3 \-print -指定したタイプのテキスト表現を出力します。 注釈処理またはコンパイルは行いません。 +ꤷפΥƥɽϤޤ ޤϥѥϹԤޤ .TP 3 \-A[key[=val]] -注釈プロセッサへ渡すオプションです。 このオプションは、\f2apt\fP が直接解釈するのではなく、それぞれのプロセッサによって使用できるように変えられます。 +ץåϤץǤ Υץϡ\f2apt\fP ľ᤹ܲΤǤϤʤ줾ΥץåˤäƻѤǤ褦Ѥޤ .TP 3 \-factorypath path -注釈プロセッサファクトリを検索する場所を指定します。 このオプションを使用する場合、クラスパスのファクトリは検索されません。 +ץåեȥ򸡺ꤷޤ ΥץѤ硢饹ѥΥեȥϸޤ .TP 3 \-factory classname -使用する注釈プロセッサファクトリの名前です。 デフォルトの検出プロセスを省略します。 +Ѥץåեȥ̾Ǥ ǥեȤθХץάޤ +.TP 3 +\-version +СϤޤ +.TP 3 +\-X +ɸ४ץ˴ؤɽޤ .RE .LP .SS -javac と共用するオプション +javac ȶѤ륪ץ .LP .RS 3 .TP 3 \-d dir -プロセッサと javac 生成のクラスファイルを置く場所を指定します。 +ץå javac Υ饹ե֤ꤷޤ .TP 3 -\-cp path or \-classpath path -ユーザークラスファイルと注釈プロセッサファクトリを検索する場所を指定します。\f2\-factorypath\fP が指定されている場合、クラスパスのファクトリは検索されません。 +\-cp path ޤ \-classpath path +桼饹եץåեȥ򸡺ꤷޤ\f2\-factorypath\fP ꤵƤ硢饹ѥΥեȥϸޤ .RE .LP .LP -\f2javac\fP オプションの詳細については、javac(1) のマニュアルページを参照してください。 +\f2javac\fP ץξܺ٤ˤĤƤϡjavac(1) Υޥ˥奢ڡ򻲾ȤƤ .LP -.SH "注" +.SS +ɸ४ץ +.LP +.RS 3 +.TP 3 +\-XListAnnotationTypes +η˸Фꥹ. +.TP 3 +\-XListDeclarations +ꤪ󥯥롼ɤꥹ. +.TP 3 +\-XPrintAptRounds +ӺƵŪ \f2apt\fP 饦ɤ˴ؤϤ. +.TP 3 +\-XPrintFactoryInfo +׵᤹եȥ˴ؤϤ. +.TP 3 +\-XclassesAsDecls +饹եȥեξ򡢽оݤȤƽޤ +.RE + .LP .LP -\f2apt\fP の機能は、\f2javac\fP により提供される標準注釈処理インフラストラクチャーに組み込まれました。今後の JDK リリースでは、\f2apt\fP および関連する API のサポートが中止する可能性があります。 +\f3\fP: ɸ४ץʤΤǡͽʤѹǽޤ .LP -.SH "関連項目" +.SH "" +.LP +.LP +\f2apt\fP εǽϡ\f2javac\fP ˤ󶡤ɸե饹ȥ饯㡼Ȥ߹ޤޤ JDK ꡼Ǥϡ\f2apt\fP ӴϢ API ΥݡȤߤǽޤ +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 b/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 index ea241914df3..9cc66788eb7 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "02 Jun 2010" +.TH extcheck 1 "14 Apr 2011" .LP -.SH "名前" -extcheck \- jar の競合検出ユーティリティー -.LP -.RS 3 - +.SH "̾" +extcheck \- jar ζ縡Х桼ƥƥ .LP .LP -\f3extcheck\fP は、ターゲットの jar ファイルと現在インストールされている拡張機能の jar ファイル間のバージョンの競合を検出します。 +\f3extcheck\fP ϡåȤ jar եȸߥ󥹥ȡ뤵Ƥĥǽ jar ե֤ΥСζ򸡽Фޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,39 +39,33 @@ extcheck [ \-verbose ] targetfile.jar .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3extcheck\fP ユーティリティーは、指定された Jar ファイルのタイトルおよびバージョンが Java(TM) 2 SDK にインストールされている拡張機能と競合していないかをチェックします。拡張機能をインストールする前に、このユーティリティーを使って、バージョンが同じか、より新しい拡張機能がすでにインストールされていないかどうかを調べることができます。 +\f3extcheck\fP 桼ƥƥϡꤵ줿 Jar եΥȥ뤪ӥС Java(TM) 2 SDK ˥󥹥ȡ뤵Ƥĥǽȶ礷Ƥʤåޤĥǽ򥤥󥹥ȡ뤹ˡΥ桼ƥƥȤäơСƱ꿷ĥǽǤ˥󥹥ȡ뤵ƤʤɤĴ٤뤳ȤǤޤ .LP .LP -\f3extcheck\fP ユーティリティーは、\f2targetfile.jar\fP ファイルのマニフェスト内のヘッダー \f2Specification\-title\fP および \f2Specification\-version\fP を、拡張機能ディレクトリ内に現在インストールされているすべての Jar ファイル内の対応するヘッダーと比較します。デフォルトでは、拡張機能ディレクトリは、\f2jre/lib/ext\fP です。\f3extcheck\fP ユーティリティーは、\f2java.lang.Package.isCompatibleWith\fP メソッドと同様の方法でバージョン番号を比較します。 +\f3extcheck\fP 桼ƥƥϡtargetfile.jar եΥޥ˥եΥإå \f2Specification\-title\fP \f2Specification\-version\fP 򡢳ĥǽǥ쥯ȥ˸ߥ󥹥ȡ뤵Ƥ \f2٤Ƥ Jar ե\fP бإåӤޤǥեȤǤϡĥǽǥ쥯ȥϡ\f2jre/lib/ext\fP Ǥ\f3extcheck\fP 桼ƥƥϡ\f2java.lang.Package.isCompatibleWith\fP ᥽åɤƱͤˡǥСֹӤޤ .LP .LP -競合が検出されない場合のリターンコードは \f20\fP です。 +礬ФʤΥ꥿󥳡ɤ \f20\fP Ǥ .LP .LP -拡張機能ディレクトリ内のいずれかの jar ファイルのマニフェストに、同一の \f2Specification\-title\fP、および同一またはより新しい \f2Specification\-version\fP 番号がある場合は、ゼロでないエラーコードが返されます。\f2targetfile.jar\fP のマニフェストに \f2Specification\-title\fP または \f2Specification\-version\fP 属性がない場合も、ゼロでないエラーコードが返されます。 +ĥǽǥ쥯ȥΤ줫 jar եΥޥ˥եȤˡƱ \f2Specification\-title\fP ƱޤϤ꿷 \f2Specification\-version\fP ֹ椬ϡǤʤ顼ɤ֤ޤ \f2targetfile.jar\fP Υޥ˥եȤ \f2Specification\-title\fP ޤ \f2Specification\-version\fP °ʤ⡢Ǥʤ顼ɤ֤ޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-verbose -拡張機能ディレクトリ内の Jar ファイルを、チェック時に一覧表示します。また、ターゲット jar ファイルのマニフェストの属性、および競合する jar ファイルについても報告します。 +ĥǽǥ쥯ȥ Jar ե򡢥å˰ɽޤޤå jar եΥޥ˥եȤ°Ӷ礹 jar եˤĤƤ𤷤ޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP jar(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 b/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 index adb0061abec..0a05be7383a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "02 Jun 2010" +.TH idlj 1 "14 Apr 2011" .LP -.SH "名前" -idlj \- IDL\-to\-Java コンパイラ +.SH "̾" +idlj \- IDL\-to\-Java ѥ .LP -.RS 3 - -.LP -\f3idlj\fP は、指定された IDL ファイルから Java バインディングを生成します。 -.RE -.SH "形式" -.LP - +\f3idlj\fP ϡꤵ줿 IDL ե뤫 Java Хǥ󥰤ޤ +.SH "" .LP .nf \f3 @@ -44,68 +38,118 @@ idlj [ \fP\f3options\fP\f3 ] \fP\f4idl\-file\fP\f3 .LP .LP -\f2idl\-file\fP は、インタフェース定義言語 (IDL) による定義が入ったファイルの名前です。\f2options\fP の順番は任意ですが、\f2idl\-file\fP よりも前に指定しなければなりません。 +\f2idl\-file\fP ϡ󥿥ե (IDL) ˤäե̾Ǥ\f2options\fP ν֤ǤդǤ\f2idl\-file\fP ˻ꤷʤФʤޤ .LP -.SH "説明" +.SH "" .LP - .LP -IDL\-to\-Java コンパイラは、指定された IDL ファイルについて Java バインディングを生成します。 バインディングの詳細は、 +IDL\-to\-Java ѥϡꤵ줿 IDL եˤĤ Java Хǥ󥰤ޤХǥ󥰤ξܺ٤ϡ .na \f2OMG IDL to Java Language Mapping Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html を参照してください。IDL\-to\-Java コンパイラの以前のリリースの中には、\f2idltojava\fP という名前だったものがあります。 -.SS -クライアントバインディングおよびサーバーバインディングの発行 +http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html 򻲾ȤƤIDL\-to\-Java ѥΰΥ꡼ˤϡ\f2idltojava\fP Ȥ̾äΤޤ .LP -.RS 3 +.SS +饤ȥХǥ󥰤ӥСХǥ󥰤ȯ +.LP +.LP +My.idl Ȥ̾ IDL եФ Java Хǥ󥰤ˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi .LP -My.idl という名前の IDL ファイルに対して Java バインディングを生成するには、次のコマンドを実行します。 \f2idlj My.idl\fP .LP -これにより、クライアント側のバインディングが生成されます。 このコマンドは、次のコマンドと等価です。 \f2idlj \fP\f4\-fclient\fP\f2 My.idl\fP +ˤꡢ饤¦ΥХǥ󥰤ޤΥޥɤϡΥޥɤǤ .LP -クライアント側のバインディングには、サーバー側のスケルトンは組み込まれていません。インタフェースに対してサーバー側のバインディングを生成するには、次のコマンドを実行します。 \f2idlj \fP\f4\-fserver\fP\f2 My.idl\fP -.LP -サーバー側のバインディングには、クライアント側のバインディングに加えて、スケルトンが組み込まれてています。 これらは、すべて \f2POA\fP (継承モデル) クラスです。クライアント側とサーバー側の両方のバインディングを生成する場合は、次のコマンド (どれも等価) のうちの 1 つを使用します。 \f2idlj \fP\f4\-fclient \-fserver\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient\fP My.idl +.fl +.fi + .LP .LP -サーバー側のモデルとしては、2 つのモデルが可能です。それは、継承モデルと、Tie 委譲モデルです。 +饤¦ΥХǥ󥰤ˤϡС¦ΥȥȤ߹ޤƤޤ󡣥󥿥եФƥС¦ΥХǥ󥰤ˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fserver\fP My.idl +.fl +.fi + .LP .LP -デフォルトのサーバー側のモデルは、「移殖可能サーバント継承モデル」です。\f2My.idl\fP 内で \f2My\fP インタフェースが定義されている場合は、\f2MyPOA.java\fP というファイルが生成されます。\f2My\fP に対してその実装を提供し、この実装は \f2_MyPOA\fP から継承する必要があります。 +С¦ΥХǥ󥰤ˤϡ饤¦ΥХǥ󥰤ΤۤˡȥޤޤƤޤϤ٤ơ \f2POA\fP (ĤޤѾǥ) 饹Ǥ饤¦ȥС¦ξΥХǥ󥰤ϡΥޥ (ɤ) Τ 1 ĤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP My.idl +.fl +idlj \f3\-fall\fP My.idl +.fl +.fi + .LP .LP -\f2MyPOA.java\fP は +С¦Dzǽʥǥ 2 ĤޤѾǥ Tie ѾǥǤ +.LP +.LP +ǥեȤΥС¦ΥǥϡְܿǽХȷѾǥפǤ\f2My.idl\fP \f2My\fP 󥿥եƤϡ\f2MyPOA.java\fP Ȥե뤬ޤμ \f2My\fP 󶡤\f2MyPOA\fP Ѿɬפޤ +.LP +.LP +\f2MyPOA.java\fP .na \f2org.omg.PortableServer.Servant\fP @ .fi -http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html を拡張するストリームベースのスケルトンで、スケルトンが実装する IDL インタフェースに関連付けられている \f2InvokeHandler\fP インタフェースとオペレーションインタフェースを実装します。 +http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html ĥ륹ȥ꡼١Υȥǡȥ󤬼 IDL 󥿥ե˴ϢդƤ \f2InvokeHandler\fP 󥿥եȥڥ졼󥤥󥿥եޤ .LP .LP .na \f2Portable Object Adapter (POA)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html の \f2PortableServer\fP モジュールは、ネイティブの \f2Servant\fP 型を定義します。Java プログラミング言語では、\f2Servant\fP 型は、Java の \f2org.omg.PortableServer.Servant\fP クラスにマッピングされています。これはあらゆる POA サーバント実装の基底クラスとなり多数のメソッドを提供します。 これらのメソッドはアプリケーションプログラマが呼び出すだけではなく、POA 自身からも呼び出され、場合によってはサーバントの動作を制御するためにユーザーがオーバーライドすることもあります。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html \f2PortableServer\fP ⥸塼ϡͥƥ֤ \f2Servant\fP ޤJava ץߥ󥰸Ǥϡ\f2Servant\fP Java \f2org.omg.PortableServer.Servant\fP 饹˥ޥåפޤΥ饹ϡ٤Ƥ POA Хȼδ쥯饹ȤƵǽץꥱץޤƤӽФȤΤǤ뤤ĤΥ᥽åɤΤۤˡPOA ΤΤˤäƸƤӽФ졢ХȤư椹뤿˥桼С饤ɤǤ᥽åɤ󶡤ޤ .LP .LP -継承モデルのもう 1 つのオプションは、\f2\-oldImplBase\fP フラグを使用して、J2SE 1.4 より前のバージョンの Java プログラミング言語と互換性のあるサーバー側バインディングを生成することです。ただし、\f2\-oldImplBase\fP フラグを使用するのは、標準的な手法ではありません。これらの API は推奨されていません。このフラグを使用するのは、J2SE 1.3 で記述された既存のサーバーとの互換性を保つ場合だけです。その場合、既存の MAKEFILE を変更して \f2idlj\fP コンパイラに \f2\-oldImplBase\fP フラグを追加する必要があります。 フラグを追加しない場合、POA ベースのサーバー側マッピングが生成されます。下位互換性のあるサーバー側バインディングを生成するには、次のコマンドを使用します。 +ѾǥΤ⤦ 1 ĤΥץϡ\f2\-oldImplBase\fP ե饰Ѥ뤳ȤǡJ2SE 1.4 ΥС Java ץߥ󥰸ȸߴΤ륵С¦Хǥ󥰤뤳ȤǤ\f2\-oldImplBase\fP ե饰ѤΤϡɸŪʼˡǤϤޤ󡣤 API Ϻ侩ˤʤͽǤΥե饰ѤΤϡJ2SE 1.3 ǵҤ줿¸ΥСȤθߴɬפʾǤξˤϴ¸ MAKEFILE ѹ\f2idlj\fP ѥ \f2\-oldImplBase\fP ե饰ɲäɬפޤʤȡPOA ١ΥС¦ޥåԥ󥰤ޤ̸ߴΤ륵С¦Хǥ󥰤ˤϡΥޥɤѤޤ .LP -\f2idlj \fP\f4\-fclient \-fserver\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl +.fl +idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl +.fl +.fi + .LP -\f2My.idl\fP 内で \f2My\fP インタフェースが定義されている場合は、\f2_MyImplBase.java\fP というファイルが生成されます。\f2My\fP に対してその実装を提供し、この実装は \f2_MyImplBase\fP から継承しなければなりません。 .LP -もう 1 つのサーバー側モデルは、Tie モデルと呼ばれるものです。このサーバー側モデルは、委譲モデルです。Tie とスケルトンを同時に生成することはできないため、それらは別々に生成しなければなりません。次のコマンドによって、Tie モデル用のバインディングが生成されます。 +\f2My.idl\fP \f2My\fP 󥿥եƤϡ\f2_MyImplBase.java\fP Ȥե뤬ޤ\f2My\fP ФƤμ󶡤μ \f2_MyImplBase\fP ѾʤФʤޤ .LP -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fallTIE\fP\f2 My.idl\fP .LP -\f2My\fP というインタフェースの場合、上記の 2 番目のコマンドにより、\f2MyPOATie.java\fP が生成されます。\f2MyPOATie\fP のコンストラクタは、\f2delegate\fP を取ります。この例では、デフォルトの POA モデルを使用しているため、コンストラクタにも \f2poa\fP が必要です。\f2delegate\fP に対して実装を提供しなければなりませんが、この実装は \f2MyOperations\fP インタフェースから継承する必要があるだけで、その他のクラスから継承する必要はありません。しかし、この実装を ORB と一緒に使用するには、\f2MyPOATie\fP 内で実装をラップしなければなりません。たとえば、次のようにします。 +⤦ 1 ĤΥС¦ǥϡTie ǥȸƤФΤǤΥС¦ǥϡѾǥǤTie ȥȥƱ뤳ȤϤǤʤᡢ̡ʤФʤޤ󡣼ΥޥɤˤäơTie ǥѤΥХǥ󥰤ޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fall\fP My.idl +.fl +idlj \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +\f2My\fP Ȥ󥿥եξ硢嵭 2 ܤΥޥɤˤꡢ\f2MyPOATie.java\fP ޤ\f2MyPOATie\fP Υ󥹥ȥ饯ϡ\f2delegate\fP ޤǤϡǥեȤ POA ǥѤƤ뤿ᡢ󥹥ȥ饯ˤ \f2poa\fP ɬפǤ\f2delegate\fP ФƼ󶡤ʤФʤޤ󤬡μ \f2MyOperations\fP 󥿥եѾɬפǡ¾Υ饹ѾɬפϤޤ󡣤μ ORB Ȱ˻Ѥˤϡ\f2MyPOATie\fP ǼåפʤФʤޤ󡣤ȤСΤ褦ˤޤ +.LP .nf \f3 .fl @@ -143,16 +187,24 @@ http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html の \f2PortableS .fi .LP -他の実装から継承しなければならない場合、標準の継承モデルではなく Tie モデルを使用することがあります。Java の場合は、インタフェースの継承の個数に制限はありませんが、クラスの継承に使用できるスロットは 1 つだけです。継承モデルを使用した場合は、そのスロットが占有されます。Tie モデルを使用した場合は、そのスロットが使用されず、ユーザーが独自の目的で使用することができます。ただし、間接参照のレベルが 1 つ導入されるという欠点があります。つまり、メソッドを呼び出すときに余分なメソッド呼び出しが発生します。 .LP -IDL のバージョンから J2SE 1.4 より前のバージョンの Java 言語へのマッピングと互換性のある、サーバー側の Tie モデルのバインディングを生成するには、次のコマンドを使用します。 -.LP -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fallTIE\fP\f2 My.idl\fP +¾μѾʤФʤʤ硢ɸηѾǥǤϤʤ Tie ǥѤ뤳ȤޤJava ξϡ󥿥եηѾθĿ¤Ϥޤ󤬡饹ηѾ˻ѤǤ륹åȤ 1 ĤǤѾǥѤϡΥåȤͭޤTie ǥѤϡΥåȤѤ줺桼ȼŪǻѤ뤳ȤǤޤˡˤϡΥ٥뤬 1 ƳȤޤ᥽åɤƤӽФȤˡ;ʬʥ᥽åɸƤӽФ 1 ȯޤ .LP .LP -\f2My\fP というインタフェースの場合、これにより \f2My_Tie.java\fP が生成されます。\f2My_Tie\fP のコンストラクタは、\f2impl\fP を取ります。\f2impl\fP に対して実装を提供しなければなりませんが、その実装は \f2HelloOperations\fP インタフェースから継承する必要があるだけで、その他のクラスから継承する必要はありません。しかし、この実装を ORB と一緒に使用するには、\f2My_Tie\fP 内で実装をラップしなければなりません。たとえば、次のようにします。 +IDL ΥС󤫤 J2SE 1.4 ΥС Java ؤΥޥåԥ󥰤ȸߴΤ롢С¦ Tie ǥΥХǥ󥰤ˤϡΥޥɤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-oldImplBase\fP \f3\-fall\fP My.idl +.fl +idlj \f3\-oldImplBase\fP \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +\f2My\fP Ȥ󥿥եξ硢ˤ \f2My_Tie.java\fP ޤ\f2My_Tie\fP Υ󥹥ȥ饯ϡ\f2impl\fP ޤ\f2impl\fP ФƼ󶡤ʤФʤޤ󤬡μ \f2HelloOperations\fP 󥿥եѾɬפǡ¾Υ饹ѾɬפϤޤ󡣤μ ORB Ȱ˻Ѥˤϡ\f2My_Tie\fP ǼåפʤФʤޤ󡣤ȤСΤ褦ˤޤ .LP .nf \f3 @@ -183,201 +235,383 @@ IDL のバージョンから J2SE 1.4 より前のバージョンの Java 言語 .fi .LP -.RE .SS -発行されたファイルの代替位置の指定 +ȯԤ줿եذ֤λ .LP -.RS 3 - .LP -発行されたファイルをカレントディレクトリ以外のディレクトリに置くには、次のようなコマンドでコンパイラを呼び出します。 -.RS 3 - +ȯԤ줿ե򥫥ȥǥ쥯ȥʳΥǥ쥯ȥ֤ˤϡΤ褦ʥޥɤǥѥƤӽФޤ .LP -\f2idlj \fP\f4\-td /altdir\fP\f2 My.idl\fP -.RE -\f2My\fP インタフェースの場合、バインディングは、\f2./My.java\fP ではなく、\f2/altdir/My.java\fP などに発行されます。 -.RE -.SS -インクルードファイルの代替位置の指定 -.LP -.RS 3 - -.LP -\f2My.idl\fP にもう 1 つの IDL ファイル \f2MyOther.idl\fP がインクルードされている場合、コンパイラは、ローカルディレクトリに \f2MyOther.idl\fP があるものと想定します。もしそのファイルが、たとえば \f2/includes\fP にある場合は、次のようなコマンドでコンパイラを呼び出します。 \f2idlj \fP\f4\-i /includes\fP\f2 My.idl\fP -.LP -また、もし \f2My.idl\fP に、たとえば \f2/moreIncludes\fP にある \f2Another.idl\fP もインクルードされているのであれば、次のようなコマンドでコンパイラを呼び出します。 \f2idlj \fP\f4\-i /includes \-i /moreIncludes\fP\f2 My.idl\fP -.LP -このような形式でインクルードを指定すると、コマンドが長くて複雑になります。 そこで、インクルードファイルを検索する場所をコンパイラに指示するための別の方法が用意されています。この方法は、環境変数の考え方と似ています。CLASSPATH にリストされているディレクトリ内に \f2idl.config\fP という名前のファイルを作成します。その \f2idl.config\fP の中に、次のような形式の行を入れます。 \f2includes=/includes;/moreIncludes\fP -.LP -コンパイラは、このファイルを検索し、インクルードリストを読み込みます。この例では、ディレクトリの間の区切り文字はセミコロン (;) になっています。この区切り文字は、プラットフォームによって異なります。たとえば、Windows プラットフォームではセミコロンですが、Unix プラットフォームではコロンです。 \f2インクルード\fPの詳細については、 -.na -\f2CLASSPATH の設定\fP @ +.nf +\f3 +.fl +idlj \fP\f3\-td /altdir\fP My.idl +.fl .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general を参照してください。 -.RE + +.LP +.LP +\f2My\fP 󥿥եξ硢Хǥ󥰤ϡ\f2./My.java\fP ǤϤʤ\f2/altdir/My.java\fP ʤɤȯԤޤ +.LP .SS -インクルードファイルに対するバインディングの発行 +󥯥롼ɥեذ֤λ .LP -.RS 3 +.LP +\f2My.idl\fP ˤ⤦ 1 Ĥ IDL ե \f2MyOther.idl\fP 󥯥롼ɤƤ硢ѥϡǥ쥯ȥ \f2MyOther.idl\fP Τꤷޤ⤷Υե뤬Ȥ \f2/includes\fP ˤϡΤ褦ʥޥɤǥѥƤӽФޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes\fP My.idl +.fl +.fi .LP -デフォルトでは、コマンド行に指定した IDL ファイルで定義されているインタフェースや構造体などについてのみ、Java バインディングが生成されます。インクルードされたファイルで定義されている型については、Java バインディングは生成されません。たとえば、次の 2 つの IDL ファイルについて考えてみましょう。 \f4My.idl\fP .LP -\f2#include <MyOther.idl>\fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2};\fP -.br -\f4MyOther.idl\fP +ޤ⤷ \f2My.idl\fP ˡȤ \f2/moreIncludes\fP ˤ \f2Another.idl\fP ⥤󥯥롼ɤƤΤǤСΤ褦ʥޥɤǥѥƤӽФޤ .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\fP\ +.nf +\f3 +.fl +idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl +.fl +.fi + .LP -次のコマンドでは、\f2My\fP に対する Java バインディングだけが生成されます。 \f2idlj My.idl\fP .LP -\f2My.idl\fP で定義されている型と、\f2My.idl\fP にインクルードされたファイル (この例では \f2MyOther.idl\fP) で定義されている型すべてについて Java バインディングを生成するには、次のコマンドを使用します。 \f2idlj \fP\f4\-emitAll\fP\f2 My.idl\fP +Τ褦ʷǥ󥯥롼ɤꤹȡޥɤĹʣˤʤޤǡ󥯥롼ɥե򸡺򥳥ѥ˻ؼ뤿̤ˡѰդƤޤˡϡĶѿιͤȻƤޤCLASSPATH ˥ꥹȤƤǥ쥯ȥ \f2idl.config\fP Ȥ̾Υեޤ \f2idl.config\fP ˡΤ褦ʷιԤޤ .LP -このデフォルトの規則に関して注意しなければならないことがあります。グローバルスコープに指定した \f2#include\fP 文は、前述のとおりに処理されます。これらの \f2#include\fP 文は、インポート文と見なすことができます。それに対して、他の定義に囲まれたスコープ内に指定した \f2#include\fP 文は、本当の意味での \f2#include\fP 文として処理されます。 つまり、インクルードされたファイルにあるコードが、元のファイルにそのまま指定されているかのように処理され、それに対して Java バインディングが発行されます。次に例を示します。 \f4My.idl\fP +.nf +\f3 +.fl +includes=/includes;/moreIncludes +.fl +\fP +.fi + .LP -\f2#include <MyOther.idl>\fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2\ #include <Embedded.idl>\fP -.br -\f2};\ \fP \f4MyOther.idl\fP .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\ \fP \f4Embedded.idl\fP +ѥϡΥե򸡺󥯥롼ɥꥹȤɤ߹ߤޤǤϡǥ쥯ȥδ֤ζڤʸϥߥ (;) ˤʤäƤޤζڤʸϡץåȥեˤäưۤʤޤȤСWindows ץåȥեǤϥߥǤUnix ץåȥեǤϥǤ \f2󥯥롼\fPξܺ٤ˤĤƤϡ +.na +\f2CLASSPATH \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/tools/index.html#general 򻲾ȤƤ .LP -\f2enum E {one, two, three};\fP\ -.LP -このとき、次のコマンドを実行すると、 \f2idlj My.idl\fP -.LP -次のような一連の Java ファイルが生成されます。 \f2./MyHolder.java\fP -.br -\f2./MyHelper.java\fP -.br -\f2./_MyStub.java\fP -.br -\f2./MyPackage\fP -.br -\f2./MyPackage/EHolder.java\fP -.br -\f2./MyPackage/EHelper.java\fP -.br -\f2./MyPackage/E.java\fP -.br -\f2./My.java\fP -.LP -インポート文と見なされる \f2#include\fP に定義されているため、\f2MyOther.java\fP は生成されません。ただし、本当の意味での \f2#include\fP で定義されているため、\f2E.java\fP は生成されます。さらに、\f2Embedded.idl\fP が \f2My\fP インタフェースのスコープ内にインクルードされていたため、\f2My\fP のスコープ内 (つまり、\f2MyPackage\fP 内) に生成されています。 -.LP -上記の例で \f2\-emitAll\fP フラグを使用すれば、インクルードされたすべてのファイルにあるすべての型が発行されます。 -.LP -.RE .SS -パッケージの接頭辞の挿入 +󥯥롼ɥեФХǥ󥰤ȯ +.LP +.LP +ǥեȤǤϡޥɹԤ˻ꤷ IDL եƤ륤󥿥ե乽¤ΤʤɤˤĤƤΤߡJava Хǥ󥰤ޤ󥯥롼ɤ줿եƤ뷿ˤĤƤϡJava Хǥ󥰤ޤ󡣤ȤС 2 Ĥ IDL եˤĤƹͤƤߤޤ礦 .LP -.RS 3 .LP -ABC という名前の会社のために作業していて、次のような IDL ファイルを構築したとしましょう。 -.br -\f4Widgets.idl\fP .LP -\f2module Widgets\fP -.br -\f2{\fP -.br -\f2\ interface W1 {...};\fP -.br -\f2\ interface W2 {...};\fP -.br -\f2};\fP\ +\f4My.idl\fP .LP -このファイルに対して IDL\-to\-Java コンパイラを実行すると、\f2W1\fP および \f2W2\fP に対する Java バインディングが \f2Widgets\fP パッケージ内に生成されます。しかし、業界の慣例によると、会社のパッケージは、\f2com.<会社名>\fP という名前のパッケージ内に置くことになっています。そのため、\f2Widgets\fP パッケージでは不十分です。慣例に従うには、パッケージを \f2com.abc.Widgets\fP にする必要があります。このパッケージ接頭辞を \f2Widgets\fP モジュールに付加するには、次のコマンドを実行します。 \f2idlj \fP\f4\-pkgPrefix Widgets com.abc\fP\f2 Widgets.idl\fP +.nf +\f3 +.fl +#include <MyOther.idl> +.fl +interface My +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -\f2Widgets.idl\fP をインクルードしている IDL ファイルがある場合は、そのコマンドにも \f2\-pkgPrefix\fP フラグが必要です。このフラグを指定しないと、その IDL ファイルは、\f2com.abc.Widgets\fP パッケージではなく、\f2Widgets\fP パッケージを検索することになります。 -.LP -接頭辞が必要なパッケージがいくつもある場合は、前述の \f2idl.config\fP ファイルで接頭辞を指定するのが簡単です。パッケージの接頭辞を指定する行は、それぞれ次の形式で記述します。 -.LP -\f2PkgPrefix.<type>=<prefix>\fP -.LP -したがって、上記の例の場合は、次のように記述します。 \f2PkgPrefix.Widgets=com.abc\fP + .LP .LP -このオプションを使用しても、リポジトリ ID は影響を受けません。 +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΥޥɤǤϡ\f2My\fP Ф Java Хǥ󥰤ޤ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +\f2My.idl\fP Ƥ뷿ȡ\f2My.idl\fP ˥󥯥롼ɤ줿ե (Ǥ \f2MyOther.idl\fP) Ƥ뷿٤ƤˤĤ Java Хǥ󥰤ˤϡΥޥɤѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-emitAll\fP My.idl +.fl +.fi + +.LP +.LP +ΥǥեȤε§˴ؤդʤФʤʤȤޤХ륹פ˻ꤷ \f2#include\fP ʸϡҤΤȤ˽ޤ \f2#include\fP ʸϡݡʸȸʤȤǤޤФơ¾˰Ϥޤ줿˻ꤷ \f2#include\fP ʸϡΰ̣Ǥ \f2#include\fP ʸȤƽޤĤޤꡢ󥯥롼ɤ줿եˤ륳ɤΥեˤΤޤ޻ꤵƤ뤫Τ褦˽졢Ф Java Хǥ󥰤ȯԤޤϤǤ +.LP + +.LP +.LP +\f4My.idl\fP +.LP +.nf +\f3 +.fl +#include <MyOther.idl> +.fl +interface My +.fl +{ +.fl + #include <Embedded.idl> +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4Embedded.idl\fP +.LP +.nf +\f3 +.fl +enum E {one, two, three}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΤȤΥޥɤ¹Ԥȡ +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +Τ褦ʰϢ Java ե뤬ޤ +.LP +.nf +\f3 +.fl +./MyHolder.java +.fl +./MyHelper.java +.fl +./_MyStub.java +.fl +./MyPackage +.fl +./MyPackage/EHolder.java +.fl +./MyPackage/EHelper.java +.fl +./MyPackage/E.java +.fl +./My.java +.fl +\fP +.fi + +.LP +.LP +ݡʸȸʤ \f2#include\fP Ƥ뤿ᡢ\f2MyOther.java\fP ޤ󡣤ΰ̣Ǥ \f2#include\fP Ƥ뤿ᡢ\f2E.java\fP ޤˡ\f2Embedded.idl\fP \f2My\fP 󥿥եΥ˥󥯥롼ɤƤᡢ\f2My\fP Υ (Ĥޤꡢ\f2MyPackage\fP ) Ƥޤ +.LP +.LP +嵭 \f2\-emitAll\fP ե饰ѤС󥯥롼ɤ줿٤ƤΥեˤ뤹٤ƤηȯԤޤ .LP -.RE .SS -コンパイル前のシンボルの定義 +ѥåƬ +.LP +.LP +ABC Ȥ̾βҤΤ˺ȤƤơΤ褦 IDL եۤȤޤ礦 .LP -.RS 3 .LP -コンパイル用のシンボルが IDL ファイル内で定義されていない場合は、そのシンボルを定義する必要があります。 これは、たとえば、バインディング内にデバッグコードを組み入れるときに使用します。次のコマンドは、 \f2idlj \fP\f4\-d\fP\f2 MYDEF My.idl\fP .LP -\f2My.idl\fP 内に \f2#define MYDEF\fP という行を指定した場合と等価です。 -.RE +\f4Widgets.idl\fP +.LP +.nf +\f3 +.fl +module Widgets +.fl +{ +.fl + interface W1 {...}; +.fl + interface W2 {...}; +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +ΥեФ IDL\-to\-Java ѥ¹Ԥȡ\f2W1\fP \f2W2\fP Ф Java Хǥ󥰤 \f2Widgets\fP ѥåޤȳδˤȡҤΥѥåϡ\f2com.<̾>\fP Ȥ̾Υѥå֤ȤˤʤäƤޤΤᡢ\f2Widgets\fP ѥåǤԽʬǤ˽ˤϡѥå \f2com.abc.Widgets\fP ˤɬפޤΥѥåƬ \f2Widgets\fP ⥸塼ղäˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-pkgPrefix Widgets com.abc\fP Widgets.idl +.fl +.fi + +.LP +.LP +\f2Widgets.idl\fP 򥤥󥯥롼ɤƤ IDL ե뤬ϡΥޥɤˤ \f2\-pkgPrefix\fP ե饰ɬפǤΥե饰ꤷʤȡ IDL եϡ\f2com.abc.Widgets\fP ѥåǤϤʤ\f2Widgets\fP ѥå򸡺뤳Ȥˤʤޤ +.LP +.LP +ƬɬפʥѥåĤ⤢ϡҤ \f2idl.config\fP եƬꤹΤñǤѥåƬꤹԤϡ줾켡ηǵҤޤ +.LP +.nf +\f3 +.fl +PkgPrefix.<type>=<prefix> +.fl +\fP +.fi + +.LP +äơ嵭ξϡΤ褦˵Ҥޤ +.nf +\f3 +.fl +PkgPrefix.Widgets=com.abc +.fl +\fP +.fi + +.LP +.LP +ΥץѤƤ⡢ݥȥ ID ϱƶޤ +.LP .SS -既存のバインディングの保持 +ѥΥܥ .LP -.RS 3 +.LP +ѥѤΥܥ뤬 IDL եƤʤϡΥܥɬפޤϡȤСХǥ˥ǥХåɤȤȤ˻ѤޤΥޥɤϡ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-d\fP MYDEF My.idl +.fl +.fi .LP -Java バインディングファイルがすでに存在する場合は、\f2\-keep\fP フラグを指定すると、コンパイラによる上書きを回避できます。デフォルトでは、すでに存在するかどうかにかかわらず、すべてのファイルが生成されます。これらのファイルをカスタマイズした場合 (ただし、それらの内容が正確であるとき以外はカスタマイズは避ける)、\f2\-keep\fP オプションは有用です。次のコマンドは、 \f2idlj \fP\f4\-keep\fP\f2 My.idl\fP .LP -クライアント側のバインディングで、まだ存在しないものをすべて発行します。 -.RE +\f2My.idl\fP \f2#define MYDEF\fP ȤԤꤷǤ +.LP .SS -コンパイルの進捗状況の表示 +¸ΥХǥ󥰤ݻ .LP -.RS 3 +.LP +Java Хǥ󥰥ե뤬Ǥ¸ߤϡ\f2\-keep\fP ե饰ꤹȡѥˤ񤭤ǤޤǥեȤǤϡǤ¸ߤ뤫ɤˤ餺٤ƤΥե뤬ޤΥե򥫥ޥ (ƤΤǤȤʳϥޥ򤱤)\-keep ץͭѤǤΥޥɤϡ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-keep\fP My.idl +.fl +.fi .LP -IDL\-to\-Java コンパイラは、実行の各段階で状態メッセージを生成します。「冗長」モード (メッセージが多いモード) にするには、\f2\-v\fP オプションを使用します。 \f2idlj \fP\f4\-v\fP\f2 My.idl\fP .LP -デフォルトでは、コンパイラは冗長モードでは実行されません。 -.RE +饤¦ΥХǥ󥰤ǡޤ¸ߤʤΤ򤹤٤ȯԤޤ +.LP .SS -バージョン情報の表示 +ѥοĽɽ .LP -.RS 3 +.LP +IDL\-to\-Java ѥϡ¹ԤγʳǾ֥åޤ־Ĺץ⡼ (å¿⡼) ˤˤϡ\f2\-v\fP ץѤޤ +.LP +.nf +\f3 +.fl +idlj \fP\f3\-v\fP My.idl +.fl +.fi .LP .LP -IDL\-to\-Java コンパイラのビルドバージョンを表示するには、コマンド行で \f2\-version\fP オプションを指定します。 +ǥեȤǤϡѥϾĹ⡼ɤǤϼ¹Ԥޤ +.LP +.SS +Сɽ .LP .LP -\f2idlj \-version\fP -.LP -.LP -バージョン情報は、コンパイラによって生成されたバインディング内にも書き込まれています。このオプションをコマンド行に指定すると、それ以外のオプションを指定しても、すべて無視されます。 -.LP -.RE -.SH "オプション" +IDL\-to\-Java ѥΥӥɥСɽˤϡޥɹԤ \f2\-version\fP ץꤷޤ .LP +.nf +\f3 +.fl +idlj \-version +.fl +\fP +.fi +.LP +.LP +Сϡѥˤä줿Хǥˤ񤭹ޤƤޤΥץ򥳥ޥɹԤ˻ꤹȡʳΥץꤷƤ⡢٤̵뤵ޤ +.LP +.SH "ץ" .LP .RS 3 .TP 3 \-d symbol -このオプションは、IDL ファイルに次のような行を追加した場合と等価です。 -.RS 3 - -.LP +ΥץϡIDL ե˼Τ褦ʹԤɲäǤ .nf \f3 .fl @@ -385,33 +619,32 @@ IDL\-to\-Java コンパイラのビルドバージョンを表示するには、 .fl \fP .fi -.RE .TP 3 \-emitAll -\f2#include\fP ファイル内で定義されているものも含めて、すべての型を発行します。 +#include ե ƤΤޤơ \f2٤Ƥη\fP ȯԤޤ .TP 3 \-fside -発行するバインディングを定義します。 \f2side\fP は、\f2client\fP、\f2server\fP、\f2serverTIE\fP、\f2all\fP、\f2allTIE\fP のどちらかです。\f2\-fserverTIE\fP または \f2\-fallTIE\fP オプションを指定すると、委譲モデルスケルトンが発行されます。このフラグを指定しなかった場合は、\f2\-fclient\fP が指定されたものと見なされます。 +ȯԤХǥ󥰤ޤ\f2side\fP \f2client\fP\f2server\fP\f2serverTIE\fP\f2all\fP\f2allTIE\fP Τ줫ˤʤޤ\f2\-fserverTIE\fP ޤ \f2\-fallTIE\fP ץꤹȡѾǥ륹ȥȯԤޤΥե饰ꤷʤäϡ\f2\-fclient\fP ꤵ줿Τȸʤޤ .TP 3 \-i include\-path -デフォルトでは、インクルードファイルはカレントディレクトリから検索されます。このオプションを指定すると、ほかのディレクトリを追加できます。 +ǥեȤǤϡ󥯥롼ɥեϥȥǥ쥯ȥ꤫鸡ޤΥץꤹȡۤΥǥ쥯ȥɲäǤޤ .TP 3 \-keep -生成されるファイルがすでに存在している場合は、そのファイルが上書きされません。デフォルトでは、上書きされます。 +ե뤬Ǥ¸ߤƤϡΥե뤬񤭤ޤ󡣥ǥեȤǤϡ񤭤ޤ .TP 3 \-noWarn -警告メッセージを表示しないようにします。 +ٹåɽʤ褦ˤޤ .TP 3 \-oldImplBase -v1.4 より前の JDK ORB と互換性のあるスケルトンを生成します。デフォルトでは、POA 継承モデルのサーバー側バインディングが生成されます。このオプションを指定すると、\f2ImplBase\fP 継承モデルのクラスであるサーバー側バインディングが生成されるので、古いバージョンの Java プログラミング言語との下位互換性が得られます。 +v1.4 JDK ORB ȸߴΤ륹ȥޤǥեȤǤϡPOA ѾǥΥС¦Хǥ󥰤ޤΥץꤹȡ\f2ImplBase\fP ѾǥΥ饹Ǥ륵С¦Хǥ󥰤ΤǡŤС Java ץߥ󥰸Ȥβ̸ߴޤ .TP 3 \-pkgPrefix type prefix -\f2type\fP がファイルスコープで検出された場合は、その型に対して生成されるすべてのファイルについて、生成される Java パッケージ名に \f2prefix\fP という接頭辞が付加されます。\f2type\fP は、トップレベルモジュールの単純名か、どのモジュールよりも外側で定義された IDL 型の単純名のどちらかです。 +\f2type\fP ե륹פǸФ줿ϡηФ뤹٤ƤΥեˤĤơ Java ѥå̾ \f2prefix\fP ȤƬղäޤ\f2type\fP ϡȥåץ٥⥸塼ñ̾ɤΥ⥸塼⳰¦줿 IDL ñ̾Τɤ餫Ǥ .TP 3 \-pkgTranslate type package -識別子の中にモジュール名 \f2type\fP が検出されると、生成される Java パッケージ内のすべてのファイルについて、識別子の中のその名前が \f2package\fP で置き換えられます。最初に \f2pkgPrefix\fP を変更します。\f2type\fP は、トップレベルのモジュール、またはすべてのモジュールの外部で定義された IDL 型の単純名です。 そして、完全なパッケージ名に正確に一致しなければなりません。 +̻Ҥ˥⥸塼̾ type Фȡ Java ѥåΤ٤ƤΥեˤĤơ̻ҤΤ̾ package ֤ޤǽ \f2pkgPrefix\fP ѹޤ\f2type\fP ϡȥåץ٥Υ⥸塼롢ޤϤ٤ƤΥ⥸塼γ줿 IDL ñ̾Ǥơʥѥå̾Τ˰פʤФʤޤ .LP -1 つの識別子の中で複数の変換がマッチする場合は、もっとも長いマッチが選ばれます。たとえば、次のような引数が指定されている場合は、 +1 Ĥμ̻ҤʣѴޥåϡäȤĹޥåФޤȤСΤ褦ʰꤵƤϡ .nf \f3 .fl @@ -420,89 +653,85 @@ v1.4 より前の JDK ORB と互換性のあるスケルトンを生成します \fP .fi .LP -次のような変換が実施されます。 +Τ褦Ѵ»ܤޤ .nf \f3 .fl -foo => bar +foo => bar .fl -foo.boo => bar.boo +foo.boo => bar.boo .fl -foo.baz => buzz.fizz +foo.baz => buzz.fizz .fl -foo.baz.bar => buzz.fizz.bar +foo.baz.bar => buzz.fizz.bar .fl \fP .fi .LP -次のパッケージ名を変換することはできません。 +Υѥå̾Ѵ뤳ȤϤǤޤ .RS 3 .TP 2 o \f2org\fP .TP 2 o -\f2org.omg\fP、または \f2org.omg\fP のサブパッケージ +\f2org.omg\fPޤ \f2org.omg\fP Υ֥ѥå .RE .LP -これらのパッケージ名を変換しようとすると、互換性のないコードが生成されます。 そして、\f2\-pkgTranslate\fP のあとの最初の引数としてそれらのパッケージを使用すると、エラーとして扱われます。 +Υѥå̾Ѵ褦ȤȡߴΤʤɤޤơ\f2\-pkgTranslate\fP ΤȤκǽΰȤƤΥѥåѤȡ顼Ȥưޤ .TP 3 \-skeletonName xxx%yyy -\f2xxx%yyy\fP が、スケルトンに名前を付けるパターンとして使用されます。デフォルトは、次のとおりです。 +\f2xxx%yyy\fP ȥ̾դѥȤƻѤޤǥեȤϼΤȤǤ .RS 3 .TP 2 o -\f2POA\fP 基底クラスの場合は「%POA」(\f2\-fserver\fP または \f2\-fall\fP) +\f2POA\fP 쥯饹ξϡ%POA(\f2\-fserver\fP ޤ \f2\-fall\fP) .TP 2 o -\f2oldImplBase\fP クラスの場合は「_%ImplBase」(\f2\-oldImplBase\fP かつ (\f2\-fserver\fP または \f2\-fall\fP)) +\f2oldImplBase\fP 饹ξϡ_%ImplBase(\f2\-oldImplBase\fP (\f2\-fserver\fP ޤ \f2\-fall\fP)) .RE .TP 3 \-td dir -出力ディレクトリとして、カレントディレクトリではなく、\f2dir\fP が使用されます。 +ϥǥ쥯ȥȤơȥǥ쥯ȥǤϤʤ\f2dir\fP Ѥޤ .TP 3 \-tieName xxx%yyy -このパターンに従って Tie に名前が付けられます。デフォルトは、次のとおりです。 +Υѥ˽ä Tie ̾դޤǥեȤϼΤȤǤ .RS 3 .TP 2 o -\f2POA\fP Tie 基底クラスの場合は「%POATie」(\f2\-fserverTie\fP または \f2\-fallTie\fP) +\f2POA\fP Tie 쥯饹ξϡ%POATie(\f2\-fserverTie\fP ޤ \f2\-fallTie\fP) .TP 2 o -\f2oldImplBase\fP Tie クラスの場合は「%_Tie」(\f2\-oldImplBase\fP かつ (\f2\-fserverTie\fP または \f2\-fallTie\fP)) +\f2oldImplBase\fP Tie 饹ξϡ%_Tie(\f2\-oldImplBase\fP (\f2\-fserverTie\fP ޤ \f2\-fallTie\fP)) .RE .TP 3 -\-verbose -冗長モードになります。 +\-nowarn, \-verbose +Ĺ⡼ɤˤʤޤ .TP 3 \-version -バージョン情報を表示して終了します。 +Сɽƽλޤ .RE .LP -各オプションの詳細については、「説明」のセクションを参照してください。 -.SH "制約" -.LP - +ƥץξܺ٤ˤĤƤϡפΥ򻲾ȤƤ +.SH "" .LP .RS 3 .TP 2 o -グローバルスコープ内のエスケープされた識別子は、IDL プリミティブ型の \f2Object\fP または \f2ValueBase\fP と同じ綴りであってはなりません。これらの識別子については、シンボルテーブルが事前にロードされており、これらの識別子の再定義を許可すると元の定義が上書きされてしまいます。これは、おそらく恒久的な制約です。 +Х륹Υפ줿̻ҤϡIDL ץߥƥַ \f2Object\fP ޤ \f2ValueBase\fP Ʊ֤ǤäƤϤʤޤ󡣤μ̻ҤˤĤƤϡܥơ֥뤬˥ɤƤꡢμ̻ҤκĤȸ񤭤Ƥޤޤϡ餯ŪǤ .TP 2 o -\f2fixed\fP という IDL 型はサポートされていません。 +\f2fixed\fP Ȥ IDL ϥݡȤƤޤ .RE .LP -.SH "既知の問題点" -.LP - +.SH "Τ" .LP .RS 3 .TP 2 o -グローバル識別子についてインポートが生成されません。予期されないローカル impl を呼び出すと、例外を受け取ります。 しかし、その原因は、\f2ServerDelegate\fP DSI コード内の \f2NullPointerException\fP にあるようです。 +Х뼱̻ҤˤĤƥݡȤޤͽʤ impl ƤӽФȡ㳰ޤ θϡ\f2ServerDelegate\fP DSI \f2NullPointerException\fP ˤ褦Ǥ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 index cea01c9efc8..acdc31b6a07 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 @@ -19,104 +19,93 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "02 Jun 2010" +.TH jar 1 "14 Apr 2011" .LP -.SH "名前" -jar \- Java ARchive ツール +.SH "̾" +jar \- Java ARchive ġ .LP -\f3jar\fP は複数のファイルを 1 つの JAR アーカイブファイルに結合します。 +\f3jar\fP ʣΥե 1 Ĥ JAR ֥ե˷礷ޤ .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -コマンド行引数ファイル +ޥɹ԰ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .RS 3 .TP 3 -JAR ファイルの作成 +JAR եκ \f4jar c\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの更新 +JAR եι \f4jar u\fP\f2[v0Mmfe] [\fP\f2manifest\fP\f2] [\fP\f2jarfile\fP\f2] [\fP\f2entrypoint\fP\f2] [\-C\fP \f2dir\fP\f2]\fP \f2inputfiles\fP \f2[\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの抽出 +JAR ե \f4jar x\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルの内容の表形式による一覧表示 +JAR եƤɽˤɽ \f4jar t\fP\f2[vf] [\fP\f2jarfile\fP\f2] [\fP\f2inputfiles\fP\f2] [\-J\fP\f2option\fP\f2]\fP .TP 3 -JAR ファイルへのインデックスの追加 +JAR եؤΥǥåɲ \f4jar i\fP \f2jarfile\fP \f2[\-J\fP\f2option\fP\f2]\fP .RE .LP .LP -説明 -.LP -.RS 3 - + .LP .RS 3 .TP 3 cuxtiv0Mmfe -\f2jar\fP コマンドを制御するオプション +\f2jar\fP ޥɤ椹륪ץ .TP 3 jarfile -作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、または内容の一覧表示 (\f2t\fP) の対象となる JAR ファイル。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から「JAR ファイル」が取得されるか (x および t の場合)、標準出力へ「JAR ファイル」が送信されます(c および u の場合)。 + (\f2c\fP) (\f2u\fP) (\f2x\fP)ޤܼɽ (\f2t\fP) оݤȤʤ JAR ե롣\f2f\fP ץȥե̾ \f2jarfile\fP Ȥڥˤʤޤ Ĥޤꡢ򵭽ҤС⤦⵭Ҥɬפޤ \f2f\fP \f2jarfile\fP άȡɸϤJAR եפ뤫 (x t ξ)ɸϤءJAR եפޤ(c u ξ) .TP 3 inputfiles -\f2jarfile\fP に結合されるか (c および u の場合)、\f2jarfile\fP から抽出 (x の場合) または一覧表示 (t の場合) される、空白で区切られたファイルまたはディレクトリ。すべてのディレクトリは再帰的に処理されます。このファイルは、オプション \f2O\fP (ゼロ) を使用しないかぎり圧縮されます。 +\f2jarfile\fP ˷礵뤫 (c u ξ)\f2jarfile\fP (x ξ) ޤϰɽ (t ξ) 롢Ƕڤ줿եޤϥǥ쥯ȥꡣ٤ƤΥǥ쥯ȥϺƵŪ˽ޤΥեϡץ \f20\fP () Ѥʤ갵̤ޤ .TP 3 manifest -\f2name\fP\f2:\fP\f2value\fP のペアが、JAR ファイルの MANIFEST.MF に含まれている既存のマニフェストファイル。\f2\-m\fP オプションとファイル名 \f2manifest\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 +JAR ե MANIFEST.MF ˴ޤ٤ \f2name\fP\f2:\fP \f2value\fP ڥޤޤƤ¸Υޥ˥եȥե롣\f2m\fP ץȥե̾ \f2manifest\fP ȤڥˤʤޤĤޤꡢ򵭽ҤС⤦⵭Ҥɬפޤ\f3m\fP\f3f\fP \f3e\fP νиϡ\f2manifest\fP\f2jarfile\fP\f2entrypoint\fP νиȰפɬפޤ .TP 3 entrypoint -実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして設定するクラスの名前。\f2\-e\fP オプションと entrypoint は対になっています。 どちらかを指定する場合は両方とも指定する必要があります。\f3m\fP、\f3f\fP、および \f3e\fP の出現順序は、\f2manifest\fP、\f2jarfile\fP、\f2entrypoint\fP の出現順序と一致する必要があります。 +¹Բǽ JAR ե˥Хɥ뤵줿ɥ󥢥ץꥱΥץꥱ󥨥ȥݥȤȤꤹ륯饹̾\f2\-e\fP ץ entrypoint ФˤʤäƤޤɤ餫ꤹξȤꤹɬפޤ\f3m\fP\f3f\fP \f3e\fP νиϡ\f2manifest\fP\f2jarfile\fP\f2entrypoint\fP νиȰפɬפޤ .TP 3 \-C\ dir -これに続く \f2inputfiles\fP 引数を処理する間、ディレクトリを \f2dir\fP へ一時的に変更します。\f2\-C\ \fP\f2dir\fP \f2inputfiles\fP のセットは複数使用できます。 +³ \f2inputfiles\fP ֡ǥ쥯ȥ \f2dir\fP ذŪѹޤ \f2\-C\ \fP\f2\-\ dir\fP \f2inputfiles\fP ΥåȤʣѤǤޤ .TP 3 \-Joption -Java 実行環境へ渡されるオプション。\f2\-J\fP と \f2option\fP の間には空白を入れないでください。 +Java ¹ԴĶϤ륪ץ\f2\-J\fP \f2option\fP δ֤ˤ϶ʤǤ .RE .LP -.RE -.SH "説明" +.SH "" .LP - -.LP -\f3jar\fP ツールは、複数のファイルを 1 つの JAR アーカイブファイルに結合します。 \f3jar\fP は、ZIP および +\f3jar\fP ġʣΥե 1 Ĥ JAR ֥ե˷礷ޤ\f3jar\fP ϡZIP .na \f2ZLIB\fP @ .fi -http://www.gzip.org/zlib/ 圧縮形式をベースにした、汎用のアーカイブおよび圧縮ツールです。ただし \f3jar\fP ツールの主な目的は、いくつかの Java アプレットやアプリケーションを 1 個のアーカイブに統合することです。アプレットやアプリケーションのコンポーネント (ファイル、イメージ、およびサウンド) が 1 つのアーカイブに結合されていると、Java エージェント (ブラウザなど) は、それらのコンポーネントを 1 回の HTTP トランザクションでダウンロードすることができ、コンポーネントごとに新しい接続を必要とすることがありません。これによって、ダウンロードの回数が大幅に減ります。 また、\f3jar\fP はファイルを圧縮するので、ダウンロード時間も短くなります。また、ファイル内の個々のエントリにアプレット作成者による署名を書き込めるので、配布元の認証が可能になります。jar ツールの構文は、\f2tar\fP コマンドの構文とほぼ同じです。\f3JAR\fP アーカイブは、圧縮されているかどうかにかかわらず、クラスパスのエントリとして使用できます。 +http://www.gzip.org/zlib/ ̷˴ŤѤΥ֤Ӱ̥ġǤ \f3jar\fP ġμŪϡĤ Java ץåȤ䥢ץꥱ 1 ĤΥ֤礹뤳ȤǤץåȤ䥢ץꥱΥݡͥ (ե롢᡼ӥ) 1 ĤΥ֤˷礵ƤȡJava (֥饦ʤ) ϡΥݡͥȤ 1 HTTP ȥ󥶥ǥɤ뤳ȤǤݡͥȤȤ˿³ɬפȤ뤳Ȥޤ󡣤ˤꡢɻ֤ṳ̂ޤޤ\f3jar\fP ϥեΰ̤ԤΤǡɻ֤ṳ̂ޤޤեθġΥȥ˥ץåȺԤˤ̾񤭹Τǡ۸ǧڤǽˤʤޤjar ġιʸϡ\f2tar\fP ޥɤιʸȤۤƱǤ\f3JAR\fP ֤ϡ̤Ƥ뤫ɤˤ餺饹ѥΥȥȤƻѤǤޤ .LP -複数のファイルを JAR ファイルへ結合する一般的な使用法は次のとおりです。 -.LP -.RS 3 - +ʣΥե JAR եط礹ŪʻˡϼΤȤǤ .LP .nf \f3 @@ -125,19 +114,15 @@ http://www.gzip.org/zlib/ 圧縮形式をベースにした、汎用のアーカ .fl \fP .fi -.RE .LP -この例では、現在のディレクトリにあるクラス (.class) ファイルがすべて、\f2myFile.jar\fP という名前のファイルに格納されます。jar ツールは自動的に、\f2META\-INF/MANIFEST.MF\fP という名前のマニフェストファイルエントリを生成します。これは常に、JAR ファイルの最初のエントリになります。マニフェストファイルは、アーカイブに関するメタ情報を宣言し、そのデータを \f2name\ :\ value\fP ペアとして格納します。jar ツールがマニフェストファイル内にメタ情報を格納する方法の詳細については、「 +ǤϡߤΥǥ쥯ȥˤ륯饹 (.class) ե뤬٤ơ\f2myFile.jar\fP Ȥ̾Υե˳Ǽޤjar ġϼưŪˡ \f2META\-INF/MANIFEST.MF\fP Ȥ̾Υޥ˥եȥե륨ȥޤϾˡJAR եκǽΥȥˤʤޤޥ˥եȥեϡ֤˴ؤ᥿Υǡ \f2name\ :\ value\fP ڥȤƳǼޤjar ġ뤬ޥ˥եȥե˥᥿Ǽˡξܺ٤ˤĤƤϡ .na \f2JAR file specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest」を参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifestפ򻲾ȤƤ .LP -既存のマニフェストファイル内に格納された \f2name\ :\ value\fP ペアを JAR ファイルに含める必要がある場合には、そのファイルを次のように \f2\-m\fP オプションを使って指定します。 -.LP -.RS 3 - +¸Υޥ˥եȥե˳Ǽ줿 \f2name\ :\ value\fP ڥ JAR ե˴ޤɬפˤϡΥե򼡤Τ褦 \f2\-m\fP ץȤäƻꤷޤ .LP .nf \f3 @@ -146,20 +131,16 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest .fl \fP .fi -.RE .LP -既存のマニフェストファイルは改行文字で終わっている必要があります。 マニフェストファイルが改行文字で終わっていない場合、\f3jar\fP はその最後の行を解析しません。 +¸Υޥ˥եȥեϲʸǽäƤɬפޤޥ˥եȥե뤬ʸǽäƤʤȡ\f3jar\fP ϤκǽԤϤޤ .br .LP .br .LP -\f3注:\ \fPコマンド行に \f2cmf\fP ではなく \f2cfm\fP が指定された jar コマンド (m と \-f オプションの順番を逆にする) の場合、\f3jar\fP コマンド行にまず JAR アーカイブの名前を指定し、続いてマニフェストファイルの名前を指定する必要があります。 次に例を示します。 -.RS 3 - -.LP +\f3:\ \fPޥɹԤ \f2cmf\fP ǤϤʤ \f2cfm\fP ꤵ줿 jar ޥ (m \-f ץν֤դˤ) ξ硢\f3jar\fP ޥɹԤˤޤ JAR ֤̾ꤷ³ƥޥ˥եȥե̾ꤹɬפޤ 򼨤ޤ .nf \f3 .fl @@ -167,15 +148,11 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest .fl \fP .fi -.RE .LP -マニフェストは、RFC822 ASCII 形式で規定されたテキスト形式であるため、マニフェストファイルの内容を簡単に表示および編集できます。 +ޥ˥եȤϡRFC822 ASCII ǵꤵ줿ƥȷǤ뤿ᡢޥ˥եȥեƤñɽԽǤޤ .LP -JAR ファイルからファイルを抽出する場合は、\f2x\fP を使用します。 -.LP -.RS 3 - +JAR ե뤫եФϡ \f2x\fP Ѥޤ .LP .nf \f3 @@ -184,14 +161,10 @@ JAR ファイルからファイルを抽出する場合は、\f2x\fP を使用 .fl \fP .fi -.RE .LP .LP -jar ファイルから個別のファイルを抽出する場合は、そのファイル名を指定します。 -.LP -.RS 3 - +jar ե뤫̤ΥեФϡΥե̾ꤷޤ .LP .nf \f3 @@ -200,18 +173,14 @@ jar ファイルから個別のファイルを抽出する場合は、そのフ .fl \fP .fi -.RE .LP .LP -JDK のバージョン 1.3 以降から、\f2jar\fP ユーティリティーで +JDK ΥС 1.3 ʹߤ顢\f2jar\fP 桼ƥƥ .na \f2JarIndex\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex がサポートされています。 JarIndex を使用すると、アプリケーションのクラスローダーで JAR ファイルからクラスがロードされるときの効率が向上します。アプリケーションまたはアプレットが複数の JAR ファイルにバンドルされている場合は、クラスがロードされるときに、必要な JAR ファイル以外のダウンロードおよびオープンは行われません。このパフォーマンスの最適化は、新しい \f2\-i\fP オプションを指定して \f2jar\fP を実行すると有効になります。このオプションを使うと、指定した JAR メインファイルとそのメインファイルが依存しているすべての JAR ファイルについて、パッケージ位置情報が生成されます。 メインファイルが依存している JAR ファイルは、JAR メインファイルのマニフェストの \f2Class\-Path\fP 属性に指定しておく必要があります。 -.LP -.RS 3 - +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index ݡȤƤޤ JarIndex ѤȡץꥱΥ饹 JAR ե뤫饯饹ɤȤθΨ夷ޤץꥱޤϥץåȤʣ JAR ե˥Хɥ뤵Ƥϡ饹ɤȤˡɬפ JAR եʳΥɤӥץϹԤޤ󡣤Υѥեޥ󥹤κŬϡ \f2\-i\fP ץꤷ \f2jar\fP ¹ԤͭˤʤޤΥץȤȡꤷ JAR ᥤեȡΥᥤե뤬¸Ƥ뤹٤Ƥ JAR եˤĤơѥå־ޤᥤե뤬¸Ƥ JAR եϡJAR ᥤեΥޥ˥եȤ \f2Class\-Path\fP °˻ꤷƤɬפޤ .LP .nf \f3 @@ -220,52 +189,42 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex がサ .fl \fP .fi -.RE .LP .LP -この例では、\f2INDEX.LIST\fP ファイルが \f2main.jar\fP の \f2META\-INF\fP ディレクトリに挿入されます。 +Ǥϡ \f2INDEX.LIST\fP ե뤬 \f2main.jar\fP \f2META\-INF\fP ǥ쥯ȥޤ .br .br -このファイルに格納されている情報を使用して、アプリケーションのクラスローダーは、効率的にクラスをロードします。 インデックスファイルに位置情報を格納する方法の詳細は、 「\f2JarIndex\fP 仕様」を参照してください。 +Υե˳ǼƤѤơץꥱΥ饹ϡΨŪ˥饹ɤޤǥåե˰־Ǽˡξܺ٤ϡJarIndex ͡פ򻲾ȤƤ .br .br -ディレクトリをコピーするには、まず \f2dir1\fP 内のファイルを圧縮して標準出力に出力し、続いて標準入力から \f2dir2\fP に抽出します (両方の \f2jar\fP コマンドから \f2\-f\fP オプションを省く)。 次に例を示します。 -.LP -.RS 3 - +ǥ쥯ȥ򥳥ԡˤϡޤ \f2dir1\fP Υե򰵽̤ \f2stdout\fP ˽Ϥ³ \f2stdin\fP Ф \f2dir2\fP ˽Ϥޤ (\f2\-f\fP ץϤɤ \f2jar\fP ޥɤǤά) .LP .nf \f3 .fl -% (cd dir1; jar c .) | (cd dir2; jar x) +% (cd dir1; jar c .)| (cd dir2; jar x) .fl \fP .fi -.RE .LP .LP -\f2jar\fP を使って JAR ファイルや JAR ファイルマニフェストを操作するコマンドサンプルを確認するには、「例」を参照してください。また、「 +\f2jar\fP Ѥ JAR ե JAR ޥ˥եȥե륵ץ륳ޥɤǧϡҤΡפ򻲾ȤƤޤ .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar」の JAR コースも参照してください。 +http://download.oracle.com/javase/tutorial/deployment/jarפ JAR ⻲ȤƤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 c -\f2jarfile\fP の名前で新しいアーカイブファイルを作成するか (\f2f\fP が指定されている場合)、標準出力で作成します (\f2f\fP と \f2jarfile\fP が省略されている場合)。\f2inputfiles\fP で指定されたファイルとディレクトリを、このアーカイブに追加します。 +f ꤵ줿 \f2jarfile\fP Ȥ̾ \f2\fP ֥ե \f2\fP f \f2jarfile\fP ά줿ɸϤ˾Ϥޤ\f2inputfiles\fP ǻꤵ줿եȥǥ쥯ȥ򡢤Υ֤ɲäޤ .TP 3 u -\f2inputfiles\fP で指定されたファイルとディレクトリを追加することにより、既存のファイル \f2jarfile\fP を更新します (\f2f\fP が指定されている場合)。 例を示します。 -.RS 3 - -.LP +f ꤵƤˡ¸ե \f2jarfile\fP \f2Ūǡ\fP \f2inputfiles\fP ˻ꤵ줿եǥ쥯ȥɲäޤ򼨤ޤ .nf \f3 .fl @@ -273,11 +232,7 @@ jar uf foo.jar foo.class .fl \fP .fi -.RE -上のコマンドは、ファイル \f2foo.class\fP を既存の JAR ファイル \f2foo.jar\fP に追加します。次の例に示すように、\f2\-u\fP オプションは、マニフェストエントリも更新できます。 -.RS 3 - -.LP +Υޥɤϡե \f2foo.class\fP ¸ JAR ե \f2foo.jar\fP ɲäޤ˼褦ˡ\f2\-u\fP ץϡޥ˥եȥȥ⹹Ǥޤ .nf \f3 .fl @@ -285,20 +240,16 @@ jar umf manifest foo.jar .fl \fP .fi -.RE -\f2foo.jar\fP マニフェストをマニフェスト内の \f2name:value\fP ペアで更新します。 +\f2foo.jar\fP ޥ˥եȤޥ˥ե \f2name:value\fP ڥǹޤ .TP 3 x -\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、ファイルとディレクトリを抽出します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが抽出されます。指定されていなければ、すべてのファイルとディレクトリが抽出されます。抽出されたファイルの日時は、アーカイブ内で設定されたものです。 +f ꤵ줿 \f2jarfile\fP \f2\fP \f2f\fP \f2jarfile\fP ά줿ɸϤ顢եǥ쥯ȥФޤ\f2inputfiles\fP ꤵƤϡλꤷեȥǥ쥯ȥФޤꤵƤʤС٤ƤΥեȥǥ쥯ȥ꤬ФޤФ줿եϡꤵ줿ΤǤ .TP 3 t -\f2jarfile\fP から (\f2f\fP が指定されている場合)、または標準入力から (\f2f\fP と \f2jarfile\fP が省略されている場合)、内容を表形式で一覧表示します。\f2inputfiles\fP が指定されている場合は、その指定したファイルとディレクトリだけが一覧表示されます。指定されていなければ、すべてのファイルとディレクトリが一覧表示されます。 +f ꤵ줿 \f2jarfile\fP \f2\fP \f2f\fP \f2jarfile\fP ά줿ɸϤ顢ܼɽޤ\f2inputfiles\fP ꤵƤϡλꤷեȥǥ쥯ȥɽޤꤵƤʤС٤ƤΥեȥǥ쥯ȥ꤬ɽޤ .TP 3 i -指定された \f2jarfile\fP と、それに依存する JAR ファイルについて、インデックス情報を生成します。例を示します。 -.RS 3 - -.LP +ꤵ줿 \f2jarfile\fP ȡ˰¸ JAR եˤĤơǥåޤȤС .nf \f3 .fl @@ -306,29 +257,25 @@ jar i foo.jar .fl \fP .fi -.RE .LP -上のコマンドは、\f2foo.jar\fP 内に \f2INDEX.LIST\fP ファイルを生成します。 このファイルには、\f2foo.jar\fP と、\f2foo.jar\fP の \f2Class\-Path\fP 属性に指定されたすべての JAR ファイルに入っている各パッケージの位置情報が書き込まれています。 インデックスの例を参照してください。 +Υޥɤϡ\f2foo.jar\fP \f2INDEX.LIST\fP եޤ Υեˤϡ\f2foo.jar\fP ȡ\f2foo.jar\fP \f2Class\-Path\fP °˻ꤵ줿٤Ƥ JAR եäƤƥѥåΰ־󤬽񤭹ޤƤޤǥå򻲾ȤƤ .TP 3 f -作成 (\f2c\fP)、更新 (\f2u\fP)、抽出 (\f2x\fP)、インデックス追加 (\f2i\fP)、または表示 (\f2t\fP) 対象のファイル \f2jarfile\fP を指定します。\f2f\fP オプションとファイル名 \f2jarfile\fP とがペアになります。 つまり、片方を記述すれば、もう一方も記述する必要があります。\f2f\fP と \f2jarfile\fP を省略すると、標準入力から JAR ファイル名が使用されたり (x および t の場合)、標準出力に jar ファイルが 送信されたりします (c および u の場合)。 +γƽоݤȤʤե \f2jarfile\fP ꤷޤ (\f2c\fP) (\f2u\fP) (\f2x\fP)ǥåɲ (\f2i\fP)ޤɽ (\f2t\fP)\f2f\fP ץȥե̾ \f2jarfile\fP Ȥڥˤʤޤ Ĥޤꡢ򵭽ҤС⤦⵭ҤɬפޤOmitting \f2f\fP \f2jarfile\fP άȡx t ξ \f2ɸ\fP JAR ե̾졢c u ξ \f2ɸ\fP JAR ե뤬ޤ .TP 3 v -詳細な出力を標準出力に生成します。あとで例を示します。 +ܺ٤ʽϤɸϤޤȤ򼨤ޤ .TP 3 0 -(ゼロ) ZIP による圧縮を使用せずに、保存します。 +() ZIP ˤ밵̤Ѥˡ¸ޤ .TP 3 M -マニフェストファイルエントリを作成しません (c および u の場合)。 または、マニフェストファイルエントリが存在する場合にそれを削除します (u の場合)。 +ޥ˥եȥե륨ȥޤ (c u ξ)ޤϡޥ˥եȥե륨ȥ꤬¸ߤˤޤ (u ξ) .TP 3 m -\f2META\-INF/MANIFEST.MF\fP のファイルで指定したマニフェストファイル \f2manifest\fP の \f2name :value\fP の属性ペアを組み込みます。すでに同じ名前で存在しない限り、 \f2jar\fP はその \f2name\ :\ value\fP ペアを追加します。同じ名前で存在する場合は、\f2jar\fP はその値を更新します。 -.LP -コマンド行で、\f3m\fP と \f3f\fP の文字は、\f2manifest\fP と \f2jarfile\fP の入力順序と同じ順序で記述する必要があります。たとえば、次のようにして使います。 -.RS 3 - +\f2META\-INF/MANIFEST.MF\fP Υեǻꤷޥ˥եȥե \f2manifest\fP \f2name : value\fP °ڥȤ߹ߤޤ \f2jar\fP ϡǤƱ̾¸ߤʤꡢ \f2name:value\fP ڥɲäޤƱ̾¸ߤ硢 \f2jar\fP Ϥͤ򹹿ޤ .LP +ޥɹԤǡ\f3m\fP \f3f\fP ʸϡ\f2manifest\fP \f2jarfile\fP ϽƱǵҤɬפޤȤСΤ褦ˤƻȤޤ .nf \f3 .fl @@ -336,22 +283,17 @@ jar cmf myManifestFile myFile.jar *.class .fl \fP .fi -.RE -デフォルトのマニフェストには含まれないマニフェストに、特別な目的の \f2name\ :\ value\fP の属性ペアを追加できます。たとえば、ベンダー情報、バージョン情報、パッケージシーリング、または JAR にバンドルされたアプリケーションを実行するための属性を追加できます。\f4\-m\fP オプションの使用例については、「Java Tutorial」 にある「 +ǥեȤΥޥ˥եȤˤϴޤޤʤޥ˥եȤˡ̤Ū \f2name\ :\ value\fP °ڥɲäǤޤȤС٥󡢥С󡢥ѥå󥰡ޤ JAR ˥Хɥ뤵줿ץꥱ¹Ԥ뤿°ɲäǤޤJava TutorialפΡ .na \f2JAR Files\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar/」コースを参照してください。 -.LP +http://download.oracle.com/javase/tutorial/deployment/jar/ץ򻲾Ȥ \f4\-m\fP ץλǧƤ .TP 3 e -実行可能 JAR ファイル内にバンドルされたスタンドアロンアプリケーションのアプリケーションエントリポイントとして、\f2entrypoint\fP を設定します。このオプションを使用すると、マニフェストファイル内の \f2Main\-Class\fP 属性値が作成または上書きされます。 このオプションは、JAR ファイルの作成中または更新中に使用できます。 このオプションを使えば、マニフェストファイルを編集または作成することなしに、アプリケーションのエントリポイントを指定できます。 +¹Բǽ JAR ե˥Хɥ뤵줿ɥ󥢥ץꥱΥץꥱ󥨥ȥݥȤȤơ\f2entrypoint\fP ꤷޤΥץѤȡޥ˥եȥե \f2Main\-Class\fP °ͤޤϾ񤭤ޤΥץϡJAR եκޤϹ˻ѤǤޤΥץȤСޥ˥եȥեԽޤϺ뤳ȤʤˡץꥱΥȥݥȤǤޤ .br .br -たとえば、次のコマンドは \f2Main.jar\fP を作成しますが、その際、マニフェストファイル内の \f2Main\-Class\fP 属性値は \f2Main\fP に設定されます。 -.RS 3 - -.LP +ȤСΥޥɤǤ \f2Main.jar\fP ޤκݡޥ˥ե \f2Main\-Class\fP °ͤ \f2Main\fP ꤵޤ .nf \f3 .fl @@ -359,12 +301,8 @@ jar cfe Main.jar Main Main.class .fl \fP .fi -.RE -.LP -次のコマンドを実行すると java ランタイムから直接このアプリケーションを起動できます。 -.RS 3 - .LP +Υޥɤ¹Ԥ java 󥿥फľܤΥץꥱưǤޤ .nf \f3 .fl @@ -372,11 +310,7 @@ java \-jar Main.jar .fl \fP .fi -.RE -エントリポイントのクラス名が特定のパッケージ内に存在している場合、エントリポイントの区切り文字としてドット (「.」) またはスラッシュ (「/」) を使用できます。たとえば、\f2Main.class\fP が \f2foo\fP という名前のパッケージ内に存在している場合、次のようにしてエントリポイントを指定できます。 -.RS 3 - -.LP +ѥå˥ȥݥȤΥ饹̾ޤޤƤ硢ɥå (.) å (/) Τ줫ʸ򤽤ζڤʸȤƻѤǤޤȤС \f2Main.class\fP \f2foo\fP Ȥ̾Υѥå˴ޤޤƤ硢ȥݥȤϼΤ褦ˤƻǤޤ .nf \f3 .fl @@ -384,11 +318,7 @@ jar \-cfe Main.jar foo/Main foo/Main.class .fl \fP .fi -.RE -または -.RS 3 - -.LP +ޤ .nf \f3 .fl @@ -396,18 +326,14 @@ jar \-cfe Main.jar foo.Main foo/Main.class .fl \fP .fi -.RE -\f3注:\ \fP \f2\-m\fP オプションと \f2\-e\fP オプションの両方を同時に指定する場合、指定されたマニフェストにも \f2Main\-Class\fP 属性が含まれていると、\f2Main.class\fP の指定があいまいになってエラーが発生し、JAR の作成または更新処理が異常終了します。 +\f3:\ \fP \f2\-m\fP ץ \f2\-e\fP ץξƱ˻ꤷ硢ꤷޥ˥եȤˤ \f2Main\-Class\fP °ޤޤƤС \f2Main.class\fP λ꤬ޤˤʤäƥ顼ȯJAR κ乹۾ェλޤ .LP .TP 3 \-C \ dir -\f2jar\fP コマンドの実行中に後続の \f2inputfiles\fP 引数を処理するときに、一時的にディレクトリを変更します (\f2cd\fP\ \f2dir\fP)。この処理は、UNIX の \f2tar\fP ユーティリティーの \f2\-C\fP オプションの機能に類似しています。 +\f2jar\fP ޥɤμ¹˸³ \f2inputfiles\fP ȤˡŪ˥ǥ쥯ȥѹޤ (cd \f2dir\fP)νϡUNIX \f2tar\fP 桼ƥƥ \f2\-C\fP ץεǽƤޤ .br .br -たとえば、次のコマンドは、\f2classes\fP ディレクトリに移動し、そのディレクトリから \f2bar.class\fP を \f2foo.jar\fP に追加します。 -.RS 3 - -.LP +ȤСΥޥɤϡ\f2classes\fP ǥ쥯ȥ˰ưΥǥ쥯ȥ꤫ \f2bar.class\fP \f2foo.jar\fP ɲäޤ .nf \f3 .fl @@ -415,23 +341,15 @@ jar uf foo.jar \-C classes bar.class .fl \fP .fi -.RE -次のコマンドでは、\f2classes\fP ディレクトリに移動し、\f2classes\fP ディレクトリ内のすべてのファイルを \f2foo.jar\fP に追加します (jar ファイルには classes ディレクトリを作成しません)。 次に元のディレクトリに戻ってから、\f2bin\fP ディレクトリに移動し、\f2xyz.class\fP を \f2foo.jar\fP に追加します。 -.RS 3 - -.LP +ΥޥɤǤϡ\f2classes\fP ǥ쥯ȥ˰ư\f2classes\fP ǥ쥯ȥΤ٤ƤΥե \f2foo.jar\fP ɲäޤ (jar եˤ classes ǥ쥯ȥޤ)˸Υǥ쥯ȥäƤ顢\f2bin\fP ǥ쥯ȥ˰ư\f2xyz.class\fP \f2foo.jar\fP ɲäޤ .nf \f3 .fl -jar uf foo.jar \-C classes . \-C bin xyz.class +jar uf foo.jar \-C classes .\-C bin xyz.class .fl \fP .fi -.RE -\f2classes\fP に \f2bar1\fP と \f2bar2\fP が保持されている場合、\f2jar tf foo.jar\fP を使用すると、JAR ファイルには次の要素が含められます。 -.RS 3 - -.LP +\f2classes\fP ˥ե \f2bar1\fP \f2bar2\fP ǼƤˡ \f2jar tf foo.jar\fP ѤȤ JAR եȤ򡢼˼ޤ .nf \f3 .fl @@ -447,30 +365,24 @@ xyz.class .fl \fP .fi -.RE .LP .TP 3 \-Joption -Java 実行環境に \f2option\fP を渡します。 \f2option\fP には、「Java アプリケーション起動ツール」のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f4\-J\-Xmx48M\fP と指定すると、最大メモリーは 48M バイトに設定されます。\f2\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ¹ԴĶ \f2option\fP Ϥޤ \f2option\fP ˤϡJava ץꥱưġפΥե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС \f4\-J\-Xmx48M\fP Ȼꤹȡ꡼ 48M ХȤꤵޤ\f2\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.SH "コマンド行引数ファイル" +.SH "ޥɹ԰ե" .LP - +jar ΥޥɹԤûʷˤꤹ뤿ˡjar ޥɤФ (\-J ץ) ޤ 1 İʾ \f2ե\fP ꤹ뤳Ȥ \f2Ǥޤ\fP ˤꡢǤդĹ jar ޥɤǤڥ졼ƥ󥰥ƥˤ륳ޥɹԤ¤ޤ .LP -jar のコマンド行を短くしたり簡潔にしたりするために、\f2jar\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。これにより、任意の長さの jar コマンドを作成でき、オペレーティングシステムによるコマンド行の制限から解放されます。 -.LP -引数ファイルにはオプションとファイル名を含めることができます。ファイル内の各引数は、スペースまたは改行で区切ります。引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。 引数ファイルの位置から見た相対パスではありません。ワイルドカード (*) は、通常ならばオペレーティングシステムシェルによってあらゆる文字に解釈されますが、この場合はそのようには解釈されません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 +եˤϥץȥե̾ޤ뤳ȤǤޤեγưϡڡޤϲԤǶڤޤեΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣥磻ɥ (*) ϡ̾ʤХڥ졼ƥ󥰥ƥॷˤäƤʸ˲ᤵޤξϤΤ褦ˤϲᤵޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ\f2\-J\fP ץ⥵ݡȤƤޤ󡣤ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP .LP -\f2jar\fP を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。\f2jar\fP は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 +\f2jar\fP ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤ \f2jar\fP ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .br .br -次の例では、\f2find\fP コマンドから出力されたファイル名を \f2classes.list\fP 内に格納しています。 -.LP -.RS 3 - +ǡ \f2classes.list\fP ˤϡ \f2find\fP ޥɤˤäƽϤ줿ե̾Ǽޤ .LP .nf \f3 @@ -478,14 +390,10 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j % find \fP\f3.\fP \-name '*.class' \-print > classes.list .fl .fi -.RE .LP .LP -その後、引数ファイル構文を使って \f2jar\fP にリストを渡すと、\f2Classes.list\fP で \f2jar\fP コマンドを実行できます。 -.LP -.RS 3 - +ˡե빽ʸѤ \f2classes.list\fP jar ϤȤǡ \f2Υꥹ\fP Ф \f2jar\fP ޥɤ¹ԤǤޤ .LP .nf \f3 @@ -494,13 +402,9 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j .fl \fP .fi -.RE - -.LP -引数ファイルはパスを指定できますが、相対パスが記述された引数ファイル内のすべてのファイル名は、渡されたパスに対して相対的ではなく、現在の作業ディレクトリに相対的となります。 次に例を示します。 -.RS 3 .LP +եϥѥǤޤХѥҤ줿եΤ٤ƤΥե̾ϡϤ줿ѥФŪǤϤʤߤκȥǥ쥯ȥŪȤʤޤϤǤ .nf \f3 .fl @@ -508,20 +412,14 @@ jar のコマンド行を短くしたり簡潔にしたりするために、\f2j .fl \fP .fi -.RE .LP .LP .LP -.SH "例" -.LP - -.LP -特定のディレクトリ内のすべてのファイルをアーカイブに追加する (そのアーカイブがすでに存在する場合は、その内容を上書きする) には、次のようにします。\f2\-v\fP オプションを使用して情報を詳細に列挙するように指定すると、サイズや最新の更新日など、アーカイブ内のファイルについての詳細情報が表示されます。 -.RS 3 - +.SH "" .LP +Υǥ쥯ȥΤ٤ƤΥե򥢡֤ɲä (Υ֤Ǥ¸ߤϡƤ񤭤) ˤϡΤ褦ˤޤ\f2\-v\fP ץѤƾܺ٤󤹤褦˻ꤹȡǿιʤɡΥեˤĤƤξܺپɽޤ .nf \f3 .fl @@ -557,13 +455,9 @@ adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%) .fl \fP .fi -.RE - -.LP -すでに画像、オーディオファイル、およびクラス用のサブディレクトリに分けている場合は、これらを単一の JAR ファイルに結合できます。 -.RS 3 .LP +Ǥ˲ǥե롢ӥ饹ѤΥ֥ǥ쥯ȥʬƤϡñ JAR ե˷Ǥޤ .nf \f3 .fl @@ -607,13 +501,9 @@ audio/ bundle.jar classes/ images/ .fl \fP .fi -.RE - -.LP -JAR ファイルのエントリ名を表示するには、「\f2t\fP」オプションを使用します。 -.RS 3 .LP +JAR եΥȥ̾ɽˤϡ\f2t\fPץץѤޤ .nf \f3 .fl @@ -641,28 +531,24 @@ images/at_work.gif .fl \fP .fi -.RE .LP .LP -クラスロードを高速にするためにインデックスファイルを JAR ファイルに追加するには、「\f2i\fP」オプションを使用します。 +饹ɤ®ˤ뤿˥ǥåե JAR եɲäˤϡ\f2i\fPץץѤޤ .br .br -例: +: .br .LP -.RS 3 - -.LP -たとえば、株取引アプリケーション用の相互依存したクラスを、\f2main.jar\fP、\f2buy.jar\fP、および \f2sell.jar\fP という 3 つの JAR ファイルに分割したとします。 +ȤСץꥱ¸Ƥ륯饹\f2main.jar\fP\f2buy.jar\fP \f2sell.jar\fP Ȥ 3 Ĥ JAR եʬ䤷Ȥޤ .br .LP .br .LP -\f2main.jar\fP のマニフェストの \f2Class\-path\fP 属性に次のように指定した場合、 +\f2main.jar\fP Υޥ˥եȤ \f2Class\-path\fP °˼Τ褦˻ꤷ硢 .nf \f3 .fl @@ -672,7 +558,7 @@ Class\-Path: buy.jar sell.jar .fi .LP -\f2\-i\fP オプションを使用すれば、アプリケーションのクラスの 読み込みを高速化できます。 +\f2\-i\fP ץѤСץꥱΥ饹 ɤ߹ߤ®Ǥޤ .nf \f3 .fl @@ -682,38 +568,34 @@ Class\-Path: buy.jar sell.jar .fi .LP -\f2INDEX.LIST\fP ファイルが \f2META\-INF\fP ディレクトリに挿入されます。この結果、アプリケーションのクラスローダーによってクラスまたは リソースの検索が行われるときに、適切な jar ファイルがダウンロードされます。 -.RE -.SH "関連項目" +\f2INDEX.LIST\fP ե뤬 \f2META\-INF\fP ǥ쥯ȥޤη̡ץꥱΥ饹ˤäƥ饹ޤϥ꥽θԤȤˡŬڤ jar ե뤬ɤޤ +.SH "Ϣ" .LP - .LP .na -\f2「JAR ファイルの概要」\fP @ +\f2JAR եγ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html -.br - +.LP .LP .na -\f2「JAR ファイルの仕様」\fP @ +\f2JAR եλ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html -.br - +.LP .LP .na -\f2「Jar インデックス」\fP @ +\f2JarIndex λ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JARIndex -.br - +http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR_Index +.LP .LP .na -\f2「Jar チュートリアル」\fP @ +\f2JAR 塼ȥꥢ\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar (Java Software の Web サイト内) -.br - +http://download.oracle.com/javase/tutorial/deployment/jar/index.html .LP -pack200(1) +.LP +pack200(1) +.LP + diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 index 3f224f76e0b..c349b53e8d6 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,117 +19,1010 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "02 Jun 2010" +.TH jarsigner 1 "14 Apr 2011" .LP -.SH "名前" -jarsigner \- JAR 署名および検証ツール -.LP -.RS 3 - +.SH "̾" +jarsigner \- JAR ̾Ӹڥġ .LP .LP -Java ARchive (JAR) ファイルの署名を生成し、署名付き JAR ファイルの署名を検証します。 +Java ARchive (JAR) եν̾̾դ JAR եν̾򸡾ڤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl \fP\f3jarsigner\fP [ options ] jar\-file alias .fl -\f3jarsigner\fP \-verify [ options ] jar\-file +\f3jarsigner\fP \-verify [ options ] jar\-file [alias...] .fl .fi .LP -.SH "説明" .LP - +jarsigner \-verify ޥɤǤϡJAR ե̾ΤȤ 0 İʾΥȥ̾Ǥޤȥ̾ꤵ줿硢jarsigner ϡJAR եγƽ̾դƥƥθڤ˻Ѥ񤬥ȥ̾Τ줫˰פ뤳Ȥåޤ̾ϡ\-keystore ǻꤵ줿ȥޤϥǥեȤΥȥޤ +.LP +.SH "" .LP .LP -\f3jarsigner\fP ツールは、次の 2 つの目的で使用します。 +\f3jarsigner\fP ġϡ 2 ĤŪǻѤޤ .LP .RS 3 .TP 3 1. -Java ARchive (JAR) ファイルに署名を付ける +Java ARchive (JAR) ե˽̾դ .TP 3 2. -署名付き JAR ファイルの署名と整合性を検証する +̾դ JAR եν̾򸡾ڤ .RE .LP .LP -JAR 機能を使うと、クラスファイル、イメージ、サウンド、およびその他のデジタルデータを単一のファイルにパッケージ化できるので、ファイルを迅速かつ容易に配布できます。開発者は、jar(1) という名前のツールを使って JAR ファイルを作成できます。技術的な観点から言えば、すべての ZIP ファイルも JAR ファイルとみなすことができます。 ただし、\f3jar\fP によって作成された JAR ファイル、または \f3jarsigner\fP によって処理された JAR ファイルには、META\-INF/MANIFEST.MF ファイルが含まれています。 +JAR ǽȤȡ饹ե롢᡼ɡӤ¾ΥǥǡñΥե˥ѥåǤΤǡե®ưפۤǤޤȯԤϡjar(1) Ȥ̾ΥġȤä JAR եǤޤŪʴС٤Ƥ ZIP ե JAR եȤߤʤȤǤޤ \f3jar\fP ˤäƺ줿 JAR ե롢ޤ \f3jarsigner\fP ˤäƽ줿 JAR եˤϡMETA\-INF/MANIFEST.MF ե뤬ޤޤƤޤ .LP .LP -「デジタル署名」は、なんらかのデータ (「署名」の対象となるデータ) と、エンティティー (人、会社など) の非公開鍵とに基づいて計算されるビット列です。手書きの署名同様、デジタル署名には多くの利点があります。 +֥ǥ̾פϡʤ餫Υǡ (ֽ̾פоݤȤʤǡ) ȡƥƥ (͡Ҥʤ) Ȥ˴ŤƷ׻ӥåǤ񤭤ν̾Ʊ͡ǥ̾ˤ¿ޤ .LP .RS 3 .TP 2 o -署名の生成に使われた非公開鍵と対になる公開鍵を使って計算を行うことで、デジタル署名が本物かどうかを検証できる +̾˻Ȥ줿ФˤʤȤäƷ׻ԤȤǡǥ̾ʪɤ򸡾ڤǤ .TP 2 o -非公開鍵が他人に知られない限り、デジタル署名の偽造は不可能である +¾ͤΤʤ¤ꡢǥ̾ε¤ԲǽǤ .TP 2 o -デジタル署名は、その署名が付いたデータだけを対象とするものであり、ほかのデータの署名として機能することはない +ǥ̾ϡν̾դǡоݤȤΤǤꡢۤΥǡν̾ȤƵǽ뤳ȤϤʤ .TP 2 o -署名付きのデータは変更できない。 データが変更された場合は、その署名によってデータが本物ではないことが検証される +̾դΥǡѹǤʤ ǡѹ줿ϡν̾ˤäƥǡʪǤϤʤȤڤ .RE .LP .LP -ファイルに対してエンティティーの署名を生成するには、まず、エンティティーは、そのエンティティーに関連する公開鍵と非公開鍵のペアを持つ必要があります。 また、公開鍵を認証する 1 つまたは複数の証明書も必要です。「証明書」とは、あるエンティティーが発行したデジタル署名付きの文書で、別なエンティティーの公開鍵が特定の値であることを証明しています。 +եФƥƥƥν̾ˤϡޤƥƥϡΥƥƥ˴ϢΥڥɬפޤޤǧڤ 1 ĤޤʣξɬפǤ־פȤϡ륨ƥƥȯԤǥ̾դʸǡ̤ʥƥƥθͤǤ뤳ȤƤޤ .LP .LP -\f3jarsigner\fP は、「キーストア」に含まれる鍵と証明書情報を使って、JAR ファイルのデジタル署名を生成します。キーストアは、非公開鍵と、非公開鍵に関連付けられた X.509 証明書チェーンが収められたデータベースです。キーストアの作成と管理には、keytool(1) ユーティリティーを使います。 +\f3jarsigner\fP ϡ֥ȥפ˴ޤޤ븰ȾȤäơJAR եΥǥ̾ޤȥϡȡ˴Ϣդ줿 X.509 󤬼줿ǡ١Ǥȥκȴˤϡkeytool(1) 桼ƥƥȤޤ .LP .LP -\f3jarsigner\fP は、エンティティーの非公開鍵を使って署名を生成します。署名付き JAR ファイルには、ファイルの署名に使用する非公開鍵に対応する公開鍵を保存するキーストアからとった証明書のコピーも含まれています。 \f3jarsigner\fP は、署名付き JAR ファイルのデジタル署名を、ファイル内 (の署名ブロックファイル) に含まれている証明書を使って検証することができます。 +\f3jarsigner\fP ϡƥƥȤäƽ̾ޤ̾դ JAR եˤäˡեν̾˻Ѥ줿бФ롢ȥξΥԡޤޤƤޤ\f3jarsigner\fP ϡ̾դ JAR ե (֥̾åե) ˤѤƤΥեΥǥ̾򸡾ڤǤޤ .LP .LP -5.0 以降では、\f3jarsigner\fP はタイムスタンプを含む署名を生成するので、システムやデプロイヤ (Java Plug\-in を含む) はJAR ファイルが署名証明書の有効期間中に署名されたかどうかをチェックできます。さらに、5.0 で追加された API を使用して、アプリケーションはタイムスタンプ情報を取得できます。 +\f3jarsigner\fP ϥॹפޤ̾Τǡƥǥץ (Java Plug\-in ޤ) JAR ե뤬̾ͭ˽̾줿ɤåǤޤˡAPI Ѥȡץꥱ󤫤饿ॹ׾Ǥޤ .LP .LP -現時点では、\f3jarsigner\fP で署名できるのは、JDK の jar(1) ツールで作成された JAR ファイル、または ZIP ファイルだけです。JAR ファイルは ZIP ファイルと同じですが、JAR ファイルには META\-INF/MANIFEST.MF ファイルが含まれている点が異なります。META\-INF/MANIFEST.MF ファイルは、\f3jarsigner\fP が ZIP ファイルに署名を付けるときに自動的に作成されます。 +Ǥϡ\f3jarsigner\fP ǽ̾ǤΤϡJDK jar(1) ġǺ줿 JAR ե롢ޤ ZIP եǤJAR ե ZIP եƱǤJAR եˤ META\-INF/MANIFEST.MF ե뤬ޤޤƤۤʤޤMETA\-INF/MANIFEST.MF եϡ\f3jarsigner\fP ZIP ե˽̾դȤ˼ưŪ˺ޤ .LP .LP -デフォルトでは、\f3jarsigner\fP は JAR (または ZIP) ファイルに「署名」を付けます。署名付き JAR ファイルを「検証」する場合は、\f2\-verify\fP オプションを指定します。 +ǥեȤǤϡ\f3jarsigner\fP JAR (ޤ ZIP) եˡֽ̾פդޤ̾դ JAR եָڡפϡ \f2\-verify\fP ץꤷޤ .LP .SS -JDK 1.1 との互換性 +ȥ̾ .LP -.RS 3 +.LP +ȥΤ٤ƤΥȥϡդΡ̾פ𤷤ƥޤ +.LP +.LP +\f3jarsigner\fP Ȥä JAR ե˽̾դȤϡ̾ɬפޤ७ȥȥ̾ꤹɬפޤȤСϡworking ǥ쥯ȥ mystore Ȥ̾Υȥ˴ޤޤ̾ duke ˴Ϣդ줿ȤäơMyJARFile.jar Ȥ̾ JAR ե˽̾դޤϥեϻꤵƤʤΤǡMyJARFile.jar Ͻ̾դ JAR եˤäƾ񤭤ޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-storepass myspass +.fl + \-keypass dukekeypasswd MyJARFile.jar duke +.fl +\fP +.fi .LP .LP -\f3keytool\fP ツールと \f3jarsigner\fP ツールは、JDK 1.1 で提供されていた \f3javakey\fP ツールを完全に置き換えるものです。これらの新しいツールは \f3javakey\fP よりも多くの機能を備えており、キーストアと非公開鍵をパスワードで保護する機能や、署名の生成に加えて署名を検証する機能を持っています。 +ȥϥѥɤݸƤΤǡȥΥѥ (Ǥ mypass) ꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥ (Ǥ dukekeypasswd) ꤹɬפޤ ޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ +.LP +.SS +ȥξ .LP .LP -新しいキーストアアーキテクチャーは、\f3javakey\fP が作成して管理していたアイデンティティーデータベースに代わるものです。キーストア形式と、JDK 1.1 の \f3javakey\fP が使っていたデータベース形式との間には下位互換性はありません。ただし、次のようなことは可能です。 +\f3jarsigner\fP ˤϡ \f2Ѥ륭ȥ URL ꤹ \-keystore\fP ޤȥ \f2\fP ǥեȤǡ \f2user.home\fP ƥץѥƥǷޤ桼Υۡǥ쥯ȥ .keystore Ȥ̾Υե˳ǼޤSolaris ƥξ硢 \f2user.home\fP ΥǥեȤϥ桼 home ǥ쥯ȥˤʤޤ +.LP +.LP +\-keystore ץ \f2˻ꤷ\fP ϥȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤդƤURL Ȥ \f2NONE\fP ꤵƤϡnull Υȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤޤ \f2NONE\fP ϡ \f2KeyStore\fP ե١ǤϤʤ硢ȤФ줬ϡɥȡǥХ¸ߤƤʤɤ˻ꤹ٤Ǥ +.LP +.SS +ȥμ +.LP +.LP +java.security ѥå \f2󶡤Ƥ\fP KeyStore 饹 \f2ϡ\fP ȥξؤΥӾѹԤΡΤ줿󥿥ե󶡤ޤȥθȤƤϡ줾줬Ρ֥ספΥȥоݤȤʣΰۤʤ¸߲ǽǤ +.LP +.LP +ߡȥμѤΤȤơ\f3keytool\fP \f3jarsigner\fP 2 ĤΥޥɹԥġȡ\f3Policy Tool\fP Ȥ̾ 1 Ĥ GUI ١Υġ뤬ޤKeyStore \f2\fP public ȤƻѲǽʤΤǡJava 2 SDK 桼 KeyStore ȤäۤΥƥץꥱǤޤ +.LP +.LP +ȥˤϡSun 󶡤Ȥ߹ߤΥǥեȤμޤϡJKS Ȥ̾ȼΥȥ () ѤΤǡȥեȤƼƤޤμǤϡġϸ̤Υѥɤˤäݸ졢ȥΤ (Ȥ̤) ѥɤˤäݸޤ +.LP +.LP +ȥμϡץХ١ǤŪˤϡ \f2KeyStore\fP ˤä󶡤륢ץꥱ󥤥󥿥ե֥ӥץХ󥿥ե (SPI) ˴ŤƼޤĤޤꡢбݥ饹 \f2KeystoreSpi\fP Ʊ \f2java.security\fP ѥå¸ߤƤꡢΥ饹ˤäơ֥ץХפɬפΤ륵ӥץХ󥿥ե᥽åɤƤޤǡ֥ץХפȤϡJava Security API ˤäƥǽʥӥΥ֥åȤФθ󶡤ѥåޤϥѥåνΤȤǤäơȥμ󶡤ˤϡ +.na +\f2Java Ź沽ƥ㡼ѥץХμˡ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlƤ褦ˡ饤Ȥ֥ץХפKeystoreSpi ֥饹μ󶡤ɬפޤ +.LP +.LP +ץꥱǤϡKeyStore 饹󶡤 getInstance եȥ᥽åɤȤȤǡޤޤʥץХۤʤ֥ספΥȥ \f2\fP ǤޤȥΥפϡȥγǼȥǡȤȤˡȥȥȥΤݸ뤿˻Ȥ륢르ꥺޤۤʤ륿פΥȥμˤϡߴϤޤ +.LP +.LP +\f3keytool\fP ϡǤդΥե١Υȥưޤkeytool ϡޥɹԤϤ줿ȥξե̾Ȥư FileInputStream ѴơFileInputStream 饭ȥξɤޤ\f3jarsigner\fP ġ \f3policytool\fP ġϡURL ǻǽǤդξ꤫饭ȥɤ߹ळȤǤޤ +.LP +.LP +\f3jarsigner\fP \f3keytool\fP ξ硢\f2\-storetype\fP ץȤäƥޥɹԤǥȥΥפǤޤ\f3Policy Tool\fP ξϡ[Edit] ˥塼 [Change Keystore] ޥɤȤäƥȥΥפǤޤ +.LP +.LP +桼ȥΥפŪ˻ꤷʤä硢ġϡñ˥ƥץѥƥեǻꤵ줿 \f2keystore.type\fP ץѥƥͤ˴Ťơȥμ򤷤ޤΥƥץѥƥե \f2java.security\fP ȸƤФ졢SDK ƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ¸ߤƤޤǡ\f2java.home\fP ϼ¹ԻĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment Υȥåץ٥ǥ쥯ȥ) Ǥ +.LP +.LP +ƥġϡ \f2keystore.type\fP ͤͤǻꤵ줿פΥȥƤץХĤޤǡߥ󥹥ȡ뤵Ƥ뤹٤ƤΥץХĴ٤ޤŪΥץХĤȡΥץХΥȥμȤޤ +.LP +.LP +\f2KeyStore\fP 饹Ƥ static ᥽å \f2getDefaultType\fP Ѥȡץꥱ䥢ץåȤ \f2keystore.type\fP ץѥƥͤǤޤΥɤϡǥեȤΥȥ \f2(keystore.type ץѥƥǻꤵ줿)\fP Υ󥹥󥹤ޤ +.LP +.nf +\f3 +.fl + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); +.fl +\fP +.fi + +.LP +.LP +ǥեȤΥȥפ JKS (Sun 󶡤ȼΥפΥȥμ) ǤϡƥץѥƥեμιԤˤäƻꤵƤޤ +.LP +.nf +\f3 +.fl + keystore.type=jks +.fl +\fP +.fi + +.LP +.LP +: ȥΥפλǤϡʸȾʸ϶̤ޤ󡣤ȤСJKS jks ƱΤȤưޤ +.LP +.LP +ƥġǥǥեȰʳΥȥμѤˤϡιԤѹ̤ΥȥΥפꤷޤȤСpkcs12 ȸƤФ륿פΥȥμ󶡤ƤץХѥåѤˤϡιԤ򼡤Τ褦ѹޤ +.LP +.nf +\f3 +.fl + keystore.type=pkcs12 +.fl +\fP +.fi + +.LP +.LP +PKCS#11 ץХѥåѤ硢ξܺ٤ˤĤƤϡJava PKCS#11 Reference Guideפˤ +.na +\f2KeyTool and JarSigner\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner򻲾ȤƤ +.LP +.SS +ݡȤ륢르ꥺ +.LP +.LP +\f3jarsigner\fP ϥǥեȤǡΤ줫Ѥ JAR ե˽̾ޤ .LP .RS 3 .TP 2 o -\f3keytool\fP の \f2\-identitydb\fP コマンドを使うと、アイデンティティーデータベースの情報をキーストアにインポートできます。 +SHA1 ȥ르ꥺȤä DSA (ǥ̾르ꥺ) .TP 2 o -\f3jarsigner\fP は、以前に \f3javakey\fP を使って署名された JAR ファイルに署名を付けることができます。 +SHA256 ȥ르ꥺѤ RSA 르ꥺ .TP 2 o -\f3jarsigner\fP は、\f3javakey\fPを使って署名された JAR ファイルを検証できます。したがって、jarsigner は、Java 2 SDK のキーストアではなく JDK 1.1 のアイデンティティーデータベースからの署名者別名を認識し、これらを対象に処理を行うことができます。 +SHA256 ECDSA (ʱ߶ǥ̾르ꥺ) Ѥ EC (ʱ߶) Ź르ꥺ .RE .LP .LP -次の表は、JDK 1.1.x で署名された JAR ファイルが、Java 2 プラットフォームでどのように扱われるかを示しています。 +Ūˤϡ̾Ԥθ DSA Ǥ硢\f3jarsigner\fP SHA1withDSA 르ꥺȤä JAR ե˽̾դޤ̾Ԥθ RSA Ǥ硢\f3jarsigner\fP SHA256withRSA 르ꥺȤä JAR ե˽̾դޤ̾Ԥθ EC Ǥ硢\f3jarsigner\fP SHA256withECDSA 르ꥺȤä JAR ե˽̾դޤ +.LP +.LP +ΥǥեȤν̾르ꥺϡ\f2\-sigalg\fP ץȤäƥС饤ɤǤޤ +.LP +.SS +̾դ JAR ե +.LP +.LP +\f3jarsigner\fP Ȥä JAR ե˽̾դ硢Ϥ̾դ JAR ե JAR եƱǤ 2 Ĥɲåե뤬 META\-INF ǥ쥯ȥ֤ۤʤޤ +.LP +.RS 3 +.TP 2 +o +.SF ĥҤդ̾ե +.TP 2 +o +.DSA.RSAޤ .EC ĥҤ˻Ľ֥̾åե +.RE + +.LP +.LP + 2 ĤΥեΥ١ե̾ϡ \f2\-sigFile\fP ץͤޤȤСΤ褦˥ץꤷȤޤ +.LP +.nf +\f3 +.fl +\-sigFile MKSIGN +.fl +\fP +.fi + +.LP +.LP +ξ硢ե̾Ϥ줾 MKSIGN.SF MKSIGN.DSA ˤʤޤ +.LP +.LP +ޥɹԤ \f2\-sigfile\fP ץꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤѤǤʸϡե٥åȡ (_)ϥեǤ +.LP +\f3̾ (.SF) ե\fP +.LP +.LP +̾ե (.SF ե) ϡ\f3jarsigner\fP ǽ̾դ JAR ե˾˴ޤޤޥ˥եȥեȻƤޤĤޤꡢޥ˥եȥեƱ͡.SF եˤϡJAR ե˴ޤޤƤ륽ե뤴Ȥˡ 3 ĤιԤޤ +.LP +.RS 3 +.TP 2 +o +ե̾ +.TP 2 +o +ȤƤȥ르ꥺ (SHA) ̾ +.TP 2 +o +SHA Ȥ +.RE + +.LP +.LP +ޥ˥եȥեǤϡSHA ȤͤϡեΥХʥǡΥ (ϥå) Ǥ.SF եǤϡեΥȤͤϡޥ˥եȥեγ륽եб 3 ԤΥϥåǤ +.LP +.LP +̾եˤϡǥեȤǥޥ˥եȥեΤΥϥåޤޤƤޤҤΡJAR եθڡפ褦ˡΥإå¸ߤˤäƸڤκŬǽˤʤäƤޤ +.LP +\f3֥̾åե\fP +.LP +.SF եˤϽ̾դ졢̾Ͻ֥̾åե֤ޤΥեˤϡȥξޤϾ沽줿ǴޤޤƤޤ ޤϾϡ̾˻Ȥ줿бǧڤޤեγĥҤϡѤȥ르ꥺ˱ .DSA.RSA.EC Τ줫ˤʤޤ +.SS +̾ॹ +.LP +.LP +\f2jarsigner\fP ġϡJAR եν̾˽̾ॹפ¸Ǥޤˡ \f2jarsigner\fP ؽ̾򥵥ݡȤޤưϾάǽǡ̾˼γƥץˤä椵ޤ +.LP +.RS 3 +.TP 2 +o +\f2\-tsa url\fP +.TP 2 +o +\f2\-tsacert alias\fP +.TP 2 +o +\f2\-altsigner class\fP +.TP 2 +o +\f2\-altsignerpath classpathlist\fP +.RE + +.LP +.LP +γƥץξܺ٤ˤĤƤϡҤΡ֥ץ򻲾ȤƤ +.LP +.SS +JAR եθ +.LP +.LP +JAR եθڤΤϡ̾ͭǤꡢĽ̾ʸ JAR եΤɤΥեѹƤʤǤJAR եθڤϡμǹԤޤ +.LP +.RS 3 +.TP 3 +1. +.SF ե뤽켫Τν̾򸡾ڤޤ +.LP +μǤϡƽ֥̾å (.DSA) ե˳ǼƤ̾ºݤˡбȤä줿ΤǤ뤳Ȥǧޤ .DSA եˤϡξ (ޤϾ) ޤޤƤޤޤμǤϡŪν̾б̾ (.SF) եͭʽ̾Ǥ뤫ɤĴ١.SF ե뤬ѤƤʤȤǧޤ +.TP 3 +2. +.SF եγƥȥΥȤޥ˥եбƥͤ碌Ƹڤޤ +.LP +.SF եˤϡޥ˥եȥեΤΥϥå夬Ǽ줿إåǥեȤǴޤޤƤޤΥإå¸ߤϡإåΥϥå夬ºݤ˥ޥ˥եȥեΥϥåȰפ뤫ɤ򸡾ڤ뤳ȤǤޤϥå夬פϡμ˿ʤߤޤ +.LP +ϥå夬פʤϡΨŪˤˡȤäƸڤԤޤŪˤϡ.SF եγƥե󥻥Υϥå夬ޥ˥եȥեб륻ΥϥåȰפ뤫ɤǧޤ (ֽ̾ (.SF) եפ򻲾) +.LP +.SF եΥإå˳Ǽ줿ޥ˥եȥեΥϥåȡºݤΥޥ˥եȥեΥϥåȤפʤϡ̾ ( .SF ե) ˡJAR ե 1 İʾΥե뤬ɲ \f2(jar ġ)\fP 줿ǽޤjar \f2ġ\fP Ȥäƥեɲä硢ޥ˥եȥեѹޤ (եѤΥɲä).SF եѹޤ󡣤ξ硢.SF եΥإåʳΥ˳Ǽ줿ϥå夬ޥ˥եȥեб륻ΥϥåȰפȤϡ̾ JAR ե¸ߤƤեΤɤΥեѹƤʤȤˤʤꡢڤΤȤưޤ +.TP 3 +3. +JAR եΥեΤ.SF ե˥ȥijƥեɤ߹ߤޤɤ߹˥եΥȤ׻̤ޥ˥եȥγեΥȤӤޤ2 ĤΥȤƱǤʤФʤ餺ǤʤϸڤԤޤ +.RE + +.LP +.LP +ڥץǤʤ餫νʸڥ顼ȯ硢ڥץߤ졢ƥ㳰ޤ줿ƥ㳰ϡ\f3jarsigner\fP åɽޤ +.LP +.SS +1 Ĥ JAR եоݤȤʣν̾ +.LP +.LP +1 Ĥ JAR եФ \f3jarsigner\fP ġʣ¹Ԥ¹ԤΤӤˡۤʤ桼̾ꤹСJAR եʣΥ桼ν̾դ뤳ȤǤޤ +.LP +.nf +\f3 +.fl + jarsigner myBundle.jar susan +.fl + jarsigner myBundle.jar kevin +.fl +\fP +.fi + +.LP +.LP +JAR ե뤬ʣ̾Ƥ硢 JAR եˤ .SF ե .DSA եФʣޤޤ뤳Ȥˤʤޤ .SF ե .DSA եФϡ1 ν̾Ф 1 ĺޤäơǽϤ JAR եˤϡ̾ĥե뤬ޤޤޤ +.LP +.nf +\f3 +.fl + SUSAN.SF +.fl + SUSAN.DSA +.fl + KEVIN.SF +.fl + KEVIN.DSA +.fl +\fP +.fi + +.LP +.LP +: JAR եǤϡJDK 1.1 \f3javakey\fP ġ줿̾ \f3jarsigner\fP 줿̾ߤǤޤĤޤꡢǤ \f3javakey\fP Ȥäƽ̾դƤ JAR եˡ\f3jarsigner\fP Ȥäƽ̾դ뤳ȤǤޤ +.LP +.SH "ץ" +.LP +.LP +ʲǤϡ\f3jarsigner\fP ΥץˤĤޤ: +.LP +.RS 3 +.TP 2 +o +ɤΥץ̾ˤƬ˥ޥʥ (\-) դ +.TP 2 +o +ץǤդνǻǤ +.TP 2 +o +åΤιܤμºݤ (ץ) ϡ桼ꤹɬפ +.TP 2 +o +\f2\-keystore\fP \f2\-storepass\fP \f2\-keypass\fP \f2\-sigfile\fP \f2\-sigalg\fP \f2\-digestalg\fP \f2\-signedjar\fP ץѤǤΤϡ̾դ JAR ե򸡾ڤǤϤʤJAR ե˽̾ǤƱͤˡ̾򥳥ޥɹԤǻꤹΤϡJAR ե˽̾դǤ +.RE + +.LP +.RS 3 +.TP 3 +\-keystore url +ȥξ򼨤 URL ꤷޤǥեȤϡ桼Υۡǥ쥯ȥΥե \f2.keystore\fP Ǥ 桼Υۡǥ쥯ȥϡuser.home ƥץѥƥˤäƷޤޤ +.LP +̾ȤϥȥɬפǤ ΤᡢǥեȤΥȥ¸ߤʤ硢뤤ϥǥեȰʳΤۤΥȥѤϡȥŪ˻ꤹɬפޤ +.LP +ڤȤϥȥɬפޤ󡣤ȥꤵƤ뤫뤤ϥǥեȤΥȥ¸ߤƤơ \f2\-verbose\fP ץꤵƤ硢JAR եθڤ˻Ѥ񤬤Υȥ 1 ĤǤޤޤƤ뤫ɤ˴ؤɲþ󤬽Ϥޤ +.LP +: \f2\-keystore\fP ΰˤϡURL ˥ե̾ (ȥѥ) Ǥޤ ե̾ (ȥѥ) ꤷϡfile:URL ȤưޤȤСΤ褦˻Ǥޤ +.nf +\f3 +.fl + \-keystore \fP\f4filePathAndName\fP\f3 +.fl +\fP +.fi +.LP +ϡλƱΤȤưޤ +.nf +\f3 +.fl + \-keystore file:\fP\f4filePathAndName\fP\f3 +.fl +\fP +.fi +.LP +JRE \f2$JAVA_HOME/lib/security\fP ǥ쥯ȥ˳Ǽ줿 \f2java.security\fP ƥץѥƥե Sun PKCS#11 ץХꤵƤ硢keytool jarsigner PKCS#11 ȡ˴ŤưǤޤΥץꤷޤ +.RS 3 +.TP 2 +o +\f2\-keystore NONE\fP +.TP 2 +o +\f2\-storetype PKCS11\fP +.RE +.LP +ȤСΥޥɤϡꤵ줿 PKCS#11 ȡƤɽޤ +.nf +\f3 +.fl + jarsigner \-keystore NONE \-storetype PKCS11 \-list +.fl + +.fl +\fP +.fi +.TP 3 +\-storetype storetype +󥹥󥹤륭ȥΥפꤷޤǥեȤΥȥפϡƥץѥƥե keystore.type ץѥƥͤǻꤵ줿פǤͤϡ \f2java.security.KeyStore\fP static getDefaultType ᥽å \f2ǼǤޤ\fP. +.LP +\-storepass ץȤä PCKS#11 ȡ PIN \f2ꤹ뤳Ȥ\fP Ǥޤꤷʤä硢keytool jarsigner ϥ桼˥ȡ PIN Ϥޤȡݸ줿ǧڥѥ (Ѥ PIN ѥåɤɤ߼굡ʤ) 硢\f2\-protected\fP ץꤹɬפޤѥɥץꤹɬפϤޤ +.TP 3 +\-storepass[:env | :file] argument +.LP +ȥ˥ΤɬפʥѥɤꤷޤΥץɬפʤΤϡJAR ե˽̾դȤǤ (JAR ե򸡾ڤȤ)ξ硢 \f2\-storepass\fP ץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ +.LP + \f2env\fP ޤ \f2file\fP ꤵƤʤ硢ѥɤͤ \f2argument\fP ˤʤޤʳξ硢ѥɤϼΤ褦ˤƼޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +: ƥȤŪȤ硢ޤϥƥݸ줿ƥѤƤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ +.TP 3 +\-keypass[:env | :file] argument +.LP +ޥɹԤǻꤵ줿̾б륭ȥȥݸΤ˻Ȥѥɤꤷޤ\f3jarsigner\fP Ȥä JAR ե˽̾դȤϡѥɤɬפǤޥɹԤǥѥɤꤵƤ餺ɬפʥѥɤȥΥѥɤȰۤʤϡѥɤϤޤ +.LP + \f2env\fP ޤ \f2file\fP ꤵƤʤ硢ѥɤͤ \f2argument\fP ˤʤޤʳξ硢ѥɤϼΤ褦ˤƼޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +: ƥȤŪȤ硢ޤϥƥݸ줿ƥѤƤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ +.TP 3 +\-sigfile file +.SF ե .DSA ե˻Ȥ١ե̾ꤷޤȤС\f2file\fP DUKESIGN ꤹȡ .SF ե .DSA ե̾ϡ줾 DUKESIGN.SF DUKESIGN.DSA ˤʤޤ Υեϡ̾դ JAR ե META\-INF ǥ쥯ȥ֤ޤ +.LP +\f2file\fP ˻ѤǤʸϡa\-zA\-Z0\-9_\-פǤĤޤꡢʸӥϥեѤǤޤ: .SF .DSA Υե̾ǤϡʸϤ٤ʸѴޤ +.LP +\-sigfile \f2ץ\fP ꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ +.TP 3 +\-sigalg algorithm +JAR եν̾˻Ѥ̾르ꥺ̾ꤷޤ +.LP +ɸ̾르ꥺ̾ΰˤĤƤϡJava Cryptography Architectureפˤ +.na +\f2Appendix A \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤΥ르ꥺϡJAR եν̾˻Ѥ̩ȸߴΤΤǤʤФʤޤ󡣤Υץꤷʤä硢̩Υפ˱ SHA1withDSASHA256withRSASHA256withECDSA Τ줫Ѥޤꤵ줿르ꥺμ󶡤ץХŪ˥󥹥ȡ뤵Ƥ뤫뤤ϥ桼Τ褦ʥץХ \f2\-providerClass\fP ץȤäƻꤹɬפޤǤʤ硢ޥɤμ¹ԤԤޤ +.TP 3 +\-digestalg algorithm +JAR եΥȥȤݤ˻Ѥåȥ르ꥺ̾ꤷޤ +.LP +ɸåȥ르ꥺ̾ΰˤĤƤϡJava Cryptography Architectureפˤ +.na +\f2Appendix A \fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤΥץꤷʤä硢SHA256 Ѥޤꤵ줿르ꥺμ󶡤ץХŪ˥󥹥ȡ뤵Ƥ뤫뤤ϥ桼Τ褦ʥץХ \f2\-providerClass\fP ץȤäƻꤹɬפޤǤʤ硢ޥɤμ¹ԤԤޤ +.TP 3 +\-signedjar file +̾դ JAR ե̾ꤷޤ +.LP +ޥɹԤ̾ꤷʤäϡ JAR ե (̾оݤȤʤ JAR ե) ̾Ʊ̾Ȥޤ ξ硢 JAR եϽ̾դ JAR եˤäƾ񤭤ޤ +.TP 3 +\-verify +ޥɹԤǤΥץ󤬻ꤵƤϡꤵ줿 JAR ե뤬ڤޤ JAR եؤν̾ϹԤޤ󡣸ڤȡjar verified Ȥåɽޤ̾Ƥʤ JAR ե롢ޤϥݡȤƤʤ르ꥺ (RSA ץХΥ󥹥ȡλƤʤ RSA ʤ) Ȥäƽ̾줿 JAR ե򸡾ڤ褦Ȥȡjar is unsigned. (signatures missing or not parsable)פȤåɽޤ +.LP +̾դ JAR եϡ\f3jarsigner\fP ޤ JDK 1.1 \f3javakey\fP ġ롢뤤ϤξȤäƸڤǤޤ +.LP +ڤˤĤƤξܺ٤ϡJAR եθڡפ򻲾ȤƤ +.TP 3 +\-certs +ޥɹԤǡ \f2\-verify\fP \f2\-verbose\fP ץȤȤˤΥץꤷ硢JAR եγƽ̾Ԥξ󤬽Ϥ˴ޤޤޤˤϼΤΤޤޤޤ +.RS 3 +.TP 2 +o +̾Ԥθ (.DSA ե˳Ǽ줿) μ̾ +.TP 2 +o + X. (Ĥޤꡢ \f2java.security.cert.X509Certificate\fP Υ󥹥) Ǥϡ̾Ԥμ̾ +.RE +.LP +ȥγǧԤޤޥɹԤǥȥͤꤵƤʤ硢ǥեȤΥȥե뤬Сޤ̾Ԥθξ񤬥ȥΥȥȰפϡξɽޤ +.RS 3 +.TP 2 +o +̾Ԥ˳륭ȥȥ̾̾ϳ̤ǰϤޤޤ ȥǤϤʤ JDK 1.1 Υǥƥƥǡ١ͳ褹̾Ԥξϡ̤ǤϤʤ̤ǰϤޤޤ +.RE +.TP 3 +\-certchain file +ޥɹԤǻꤷ̾Ƿޤ륭ȥȥ˴Ϣդ줿󤬴ǤʤˡѤ٤ꤷޤΤ褦ʾ֤ˤʤǽΤϡȥϡɥȡ˳ǼƤ뤬ˤϾΤݻǤΰ褬¸ߤƤʤ褦ʾǤΥեϰϢ X.509 񤬽Ϣ뤵줿ΡPKCS#7 ñǡ֥åΤ줫ȤʤꡢΥ󥳡ǥ󥰷ϥХʥꥨ󥳡ǥ󥰷Internet RFC 1421 ɸǵꤵǽ󥳡ǥ󥰷 (BASE64 󥳡ǥ󥰤ȤƤФ) Τ줫ˤʤޤ +.TP 3 +\-verbose +ޥɹԤǤΥץ󤬻ꤵƤ硢\f3jarsigner\fP ϡ־Ĺץ⡼ɤưJAR ν̾ޤϸڤοʹԾ˴ؤɲþϤޤ +.TP 3 +\-internalsf +ϡJAR եν̾줿 .DSA (֥̾å) եˡ줿 .SF ե (̾ե) δʥԡ沽줿ǴޤޤƤޤưѹޤưѹˤʤꡢߤǤϡ JAR եΤΥ򾮤뤿ˡǥեȤǤ .SF ե뤬 .DSA ե˴ޤޤʤ褦ˤʤäƤޤ \f2\-internalsf\fP ץ򥳥ޥɹԤǻꤹȡƱ褦ưޤ\f3ΥץϡƥȤԤˤǤʳˤϻѤʤǤ ΥץѤȡͭפʺŬԤʤʤޤ\fP +.TP 3 +\-sectionsonly +ޥɹԤǤΥץ󤬻ꤵƤ硢JAR եν̾ .SF ե (̾ե) ˤϡޥ˥եȥեΤΥϥåޤإåɲäޤ󡣤ξ硢.SF ե˴ޤޤΤϡJAR եγƥե˴ؤ󤪤ӥϥåǤܺ٤ϡֽ̾ (.SF) եפ򻲾ȤƤ +.LP +ǥեȤǤϡŬԤˡޥ˥եȥեΤΥϥåޤإåɲäޤإå¸ߤϡJAR եθڻˡޤإåΥϥå夬ޥ˥եȥեΤΥϥåȼºݤ˰פ뤫ɤǧޤϥå夬פ硢ڤϼμ˿ʤߤޤϥå夬פʤϡΨŪˤˡȤäƸڤԤޤ Ūˤϡ.SF եγƥե󥻥Υϥå夬ޥ˥եȥեб륻ΥϥåȰפ뤫ɤǧޤ +.LP +ܺ٤ϡJAR եθڡפ򻲾ȤƤ +.LP +\f3ΥץϡƥȤԤˤǤʳˤϻѤʤǤ ΥץѤȡͭפʺŬԤʤʤޤ\fP +.TP 3 +\-protected +\f2true\fP ޤ \f2false\fP PIN ꡼ʤɤݸ줿ǧڥѥ𤷤ƥѥɤꤹɬפˤϡͤ \f2true\fP ˻ꤷƤ +.TP 3 +\-providerClass provider\-class\-name +ӥץХƥץѥƥե (\f2java.security\fP) ΥꥹȤäƤʤȤˡŹ沽ӥץХΥޥ饹ե̾ꤷޤ +.LP +\f2\-providerArg\fP \f2ConfigFilePath\fP ץȤ߹碌ƻѤޤkeytool jarsigner ϥץХưŪ˥󥹥ȡ뤷ޤ (ǡ\f2ConfigFilePath\fP ϥȡեؤΥѥǤ)ƥץѥƥե Sun PKCS#11 ץХꤵƤʤ PKCS#11 ȥɽ륳ޥɤ򼡤˼ޤ +.nf +\f3 +.fl +jarsigner \-keystore NONE \-storetype PKCS11 \\ +.fl + \-providerClass sun.security.pkcs11.SunPKCS11 \\ +.fl + \-providerArg /foo/bar/token.config \\ +.fl + \-list +.fl +\fP +.fi +.TP 3 +\-providerName providerName +\f2java.security\fP ƥץѥƥե 2 İʾΥץХꤵƤ硢\f2\-providerName\fP ץȤäΥץХ󥹥󥹤ǤޤΥץΰϡץХ̾Ǥ +.LP +Sun PKCS#11 ץХξ硢\f2providerName\fP \f2SunPKCS11\-\fP\f2TokenName\fP Ȥˤʤޤ ǡ\f2TokenName\fPפϡץХ󥹥󥹤줿̾Ǥ ܺ٤ +.na +\f2°ɽ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS򻲾ȤƤȤСʲΥޥɤǤϡ̾ \f2SmartCard\fP PKCS#11 ȥץХ󥹥󥹤ƤꥹȤޤ +.nf +\f3 +.fl +jarsigner \-keystore NONE \-storetype PKCS11 \\ +.fl + \-providerName SunPKCS11\-SmartCard \\ +.fl + \-list +.fl +\fP +.fi +.TP 3 +\-Jjavaoption +ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤ\f3jarsigner\fP ϡºݤˤ Java 󥿥ץ꥿Ф֥åѡפǤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤѲǽʥ󥿥ץ꥿ץΰɽˤϡ \f2java \-h\fP ޤ \f2java \-X\fP ȥޥɹԤϤޤ +.LP +.TP 3 +\-tsa url +\f2\-tsa http://example.tsa.url\fP JAR եν̾˥ޥɹԤɽ硢̾ΥॹפޤURL \f2http://example.tsa.url\fP ϡTSA (Time Stamping Authority) ξꤷޤϡ \f2\-tsacert\fP ץǸФ줿 URL 򥪡С饤ɤޤ \f2\-tsa\fP ץǤϡTSA θ򥭡ȥ֤ɬפϤޤ +.LP +ॹפ뤿ˡ \f2jarsigner\fP ϡ +.na +\f2RFC 3161\fP @ +.fi +http://www.ietf.org/rfc/rfc3161.txt Ƥ ॹץץȥ (TSP) Ѥ TSA ̿ޤȡTSA ֤줿ॹץȡϽ֥̾åեν̾ȤȤ¸ޤ +.LP +.TP 3 +\-tsacert alias +\f2\-tsacert alias\fP JAR եν̾˥ޥɹԤɽ硢̾Υॹפޤ \f2alias\fP ϡȥθͭ TSA θꤷޤȥξǡTSA ξꤹ URL ޤ Subject Information Access ĥǽǧޤ +.LP +TSA θϡ \f2\-tsacert Ȥä硢ȥ֤Ƥɬפޤ\fP. +.LP +.TP 3 +\-altsigner class +ؽ̾Ѥ뤳Ȥꤷޤ饹̾ϡcom.sun.jarsigner.ContentSigner ݥ饹ĥ륯饹ե \f2ꤷޤ\fP. Υ饹եؤΥѥϡ \f2\-altsignerpath\fP ץˤäޤ \f2\-altsigner\fP ץ󤬻Ѥȡ \f2jarsigner\fP ϡꤵ줿饹󶡤̾ѤޤǤʤ硢 \f2jarsigner\fP ϥǥեȤν̾Ѥޤ +.LP +ȤС \f2com.sun.sun.jarsigner.AuthSigner\fP Ȥ̾Υ饹󶡤̾Ѥˤϡ \f2jarsigner\fP ץ \f2\-altsigner com.sun.jarsigner.AuthSignerפѤޤ\fP +.LP +.TP 3 +\-altsignerpath classpathlist +饹ե (Υ饹ե̾Ҥ \f2\-altsigner\fP ץǻꤵ) ӤΥ饹¸뤹٤Ƥ JAR եؤΥѥꤷޤ饹ե뤬 JAR եˤ硢ʲΤ褦 JAR եؤΥѥꤵޤ +.LP +ХѥޤϸߤΥǥ쥯ȥ꤫ХѥǤޤ \f2classpathlist\fP ʣΥѥ JAR ե뤬ޤޤˤϡ Solaris ξϥ (\f2:\fP) ǡWindows ξϥߥ (\f2;\fP) Ǥ줾ڤޤŪΥ饹Ǥ˸ѥˤϡΥץפǤ +.LP +饹եޤࡢJAR եؤΥѥꤹ򼨤ޤ +.nf +\f3 +.fl +\-altsignerpath /home/user/lib/authsigner.jar +.fl +\fP +.fi +.LP +JAR ե̾ޤޤƤ뤳ȤդƤ +.LP +饹եޤ JAR եؤΥѥꤹ򼨤ޤ +.nf +\f3 +.fl +\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/ +.fl +\fP +.fi +.LP +JAR ե̾ϴޤޤƤʤȤαդƤ +.TP 3 +\-strict +̾ޤϸڽˡ餫ηٹåɽ礬ޤޥɹԤǤΥץꤹȡĤäٹåġνλɤȿǤޤܺ٤ϡַٹפι򻲾ȤƤ +.TP 3 +\-verbose:sub\-options +ڽǡ \f2\-verbose\fP ץϡɽ̤ꤹ륵֥ץޤ \f2\-certs\fP ꤷ硢ǥեȥ⡼ (ޤϥ֥ץ all) Ǥϡȥ꤬뤿Ӥˤγƥȥ꤬ɽ졢ΤȤ JAR եγƽ̾Ԥξɽޤ \f2\-certs\fP \f2\-verbose:grouped\fP ֥ץꤷ硢Ʊ̾ԾĥȥȤξ󤬡ä˥롼ײɽޤ \f2\-certs\fP \f2\-verbose:summary\fP ֥ץꤷ硢Ʊ̾ԾĥȥȤξ󤬤ä˥롼ײɽޤƥȥξܺ٤1 ĤΥȥ (Ӥʾ)פȤ󤵤ɽޤܺ٤ι򻲾ȤƤ +.RE + +.LP +.SH "" +.LP +.SS +JAR եν̾ +.LP +.LP +bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤȥϡmystore Ȥ̾ǡC ɥ饤֤ working ǥ쥯ȥˤꡢȥΥѥɤ mypass\f2jane\fP Υѥɤ j638klm Ȥޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-storepass myspass +.fl + \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +ΥޥɤǤ \f2\-sigfile\fP ꤵƤʤᡢ̾դ JAR ե˳Ǽ .SF ե .DSA ե̾ϡ̾ǥե̾ĤޤĤޤꡢ̾ \f2JANE.SF\fP \f2JANE.DSA\fP ˤʤޤ +.LP +.LP +ȥΥѥɤΥѥɤ򤢤ȤϤϡΥޥɤṳ̂ƼΤ褦ϤǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore +.fl + \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +ǥեȤΥȥ (ۡǥ쥯ȥ .keystore Ȥ̾Υȥ) Ѥϡ˼褦ˡȥλάǤޤ +.LP +.nf +\f3 +.fl + jarsigner \-signedjar sbundle.jar bundle.jar jane +.fl +\fP +.fi + +.LP +.LP +Ǹˡ JAR ե (\f2bundle.jar\fP) ̾դ JAR եñ˾񤭤ϡΤ褦 \f2\-signedjar\fP ץꤹɬפϤޤ +.LP +.nf +\f3 +.fl + jarsigner bundle.jar jane +.fl +\fP +.fi + +.LP +.SS +̾դ JAR եθ +.LP +.LP +˼Τϡ̾դ JAR ե򸡾ڤ̾ͭ JAR ե뤬ѤƤʤȤǧ뤿ΥޥǤ +.LP +.nf +\f3 +.fl + jarsigner \-verify sbundle.jar +.fl +\fP +.fi + +.LP +.LP +ڤȡΤ褦ʥåɽޤ +.LP +.nf +\f3 +.fl + jar verified. +.fl +\fP +.fi + +.LP +.LP +ȤץץȤɽޤڤʤäϡ顼åɽޤ +.LP +.LP +\-verbose ץȤȡ \f2¿ξ\fP ɽޤ\-verbose ץդ \f3jarsigner\fP \f2ѤȤν\fP ˼ޤ +.LP +.nf +\f3 +.fl + jarsigner \-verify \-verbose sbundle.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + smk 2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class +.fl + smk 849 Fri Sep 26 16:12:46 PDT 1997 test.class +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.SS +Ȥä +.LP +.LP +ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤ򼨤ޤ +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-verify \-verbose \-certs myTest.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + 208 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.SF +.fl + 1087 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.DSA +.fl + smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class +.fl + +.fl + X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest) +.fl + X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.LP +̾Ԥξ X.509 Ǥʤϡ̾ɽޤ󡣤ξˤϡΥפ̾ɽޤȤС PGP ǡ̾ bob ξϡΤ褦ɽޤ +.LP +.nf +\f3 +.fl + PGP, (bob) +.fl +\fP +.fi + +.LP +.SS +ǥƥƥǡ١ν̾Ԥޤ JAR եθ +.LP +.LP +JAR ե뤬JDK 1.1 \f3javakey\fP ġȤäƽ̾Ƥ硢̾Ԥϥǥƥƥǡ١̾Ǥξ硢ڤνϤˤ i Ȥ椬ޤޤޤJAR ե뤬ǥƥƥǡ١̾ȥȥ̾ξˤäƽ̾Ƥϡk i ξɽޤ +.LP +.LP +\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤȤС +.LP +.nf +\f3 +.fl + jarsigner \-keystore /working/mystore \-verify \-verbose \-certs writeFile.jar +.fl + +.fl + 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF +.fl + 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF +.fl + 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA +.fl + 199 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.SF +.fl + 1013 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.DSA +.fl + smki 2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html +.fl + +.fl + X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) +.fl + X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke] +.fl + +.fl + s = ̾ڤޤ +.fl + m = ޥ˥եȤ˥ȥ꤬ܤƤޤ +.fl + k = ȥ 1 İʾξ񤬸Ĥޤ +.fl + i = ǥƥƥפ 1 İʾξ񤬸Ĥޤ +.fl + +.fl + JAR ڤޤ +.fl +\fP +.fi + +.LP +.LP +̾ duke ϳѳ̤ǰϤޤƤΤǡ̾ϥȥ̾ǤϤʤǥƥƥǡ١̾Ǥ +.LP +.SH "ٹ" +.LP +̾/ڽˤϡjarsigner 餵ޤޤʷٹɽǽޤηٹ𥳡ɤϼΤ褦Ƥޤ +.nf +\f3 +.fl + hasExpiringCert 2 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ 6 ˴ڤˤʤޤ +.fl + +.fl + hasExpiredCert 4 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ񤬴ڤˤʤäƤޤ +.fl + +.fl + notYetValidCert 4 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ񤬤ޤͭˤʤäƤޤ +.fl + +.fl + chainNotValidated 4 +.fl + JAR ˴ޤޤ륨ȥξθڤԤޤ +.fl + +.fl + badKeyUsa ge 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ KeyUsage ĥɤν̾ĤƤޤ +.fl + +.fl + badExtendedKeyUsage 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ ExtendedKeyUsage ĥ +.fl + ɤν̾ĤƤޤ +.fl + +.fl + badNetscapeCertType 8 +.fl + JAR ˴ޤޤ륨ȥν̾Ԥξ NetscapeCertType ĥ +.fl + ɤν̾ĤƤޤ +.fl + +.fl + hasUnsignedEntry 16 +.fl + JAR ˤϡåԤƤʤ̾ʤȥ꤬ޤޤƤޤ +.fl + +.fl + notSignedByAlias 32 +.fl + JAR ˤϡꤵ줿̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ +.fl + +.fl + aliasNotInStore 32 +.fl + JAR ˤϡΥȥ̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ +.fl + +.fl +\fP +.fi + +.LP +.LP +\f2\-strict\fP ץꤷ硢Ф줿ٹ OR äͤġνλɤȤ֤ޤȤСȥν̾˻Ѥ񤬴ڤˤʤäƤơĤξ keyUsage ĥǥեν̾ĤƤʤ硢λ 12 (=4+8) ֤ޤ +.LP +.LP +\f3\fP: UNIX ǻѲǽͤ 0 255 Ǥ뤿ᡢλɤϺѤޤˤƤ⡢̾/ڽԤȡνλɤ֤ޤ +.LP +.nf +\f3 +.fl +failure 1 +.fl +\fP +.fi + +.LP +.SS +JDK 1.1 Ȥθߴ +.LP +.LP +\f3keytool\fP ġ \f3jarsigner\fP ġϡJDK 1.1 󶡤Ƥ \f3javakey\fP ġ֤ΤǤοġϡȥѥɤݸ뵡ǽ䡢̾˲äƽ̾򸡾ڤ뵡ǽʤɡ\f3javakey\fP ¿ΤǽƤޤ +.LP +.LP +ȥƥ㡼ϡ\f3javakey\fP ƴƤǥƥƥǡ١ΤǤȥȡJDK 1.1 \f3javakey\fP ȤäƤǡ١Ȥδ֤ˤϲ̸ߴϤޤ󡣤ΤȤϲǽǤ +.LP +.RS 3 +.TP 2 +o +\f3keytool\fP \f2\-identitydb\fP ޥɤȤȡǥƥƥǡ١ξ򥭡ȥ˥ݡȤǤޤ +.TP 2 +o +\f3jarsigner\fP ϡ \f3javakey\fP Ȥäƽ̾줿 JAR ե˽̾դ뤳ȤǤޤ +.TP 2 +o +\f3jarsigner\fP ϡ\f3javakey\fPȤäƽ̾줿 JAR ե򸡾ڤǤޤäơjarsigner ϡJava 2 SDK ΥȥǤϤʤ JDK 1.1 Υǥƥƥǡ١ν̾̾ǧоݤ˽ԤȤǤޤ +.RE + +.LP +.LP +ɽϡJDK 1.1.x ǽ̾줿 JAR ե뤬Java 2 ץåȥեǤɤΤ褦˰뤫򼨤Ƥޤ .LP .LP .TS @@ -160,7 +1053,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3JAR ファイルのタイプ\fP +\f3JAR եΥ\fP .br .di .nr a| \n(dn @@ -176,7 +1069,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f31.1 データベース内のアイデンティティー\fP +\f31.1 ǡ١Υǥƥƥ\fP .br .di .nr b| \n(dn @@ -192,7 +1085,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f31.1 データベースから Java 2 Platform キーストアにインポートされる信頼できるアイデンティティー (4)\fP +\f31.1 ǡ١ Java 2 Platform ȥ˥ݡȤ뿮Ǥ륢ǥƥƥ (4)\fP .br .di .nr c| \n(dn @@ -208,7 +1101,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(83 .ll \n(83u .in 0 -\f3ポリシーファイルがアイデンティティー/別名に特権を与える\fP +\f3ݥꥷե뤬ǥƥƥ/̾øͿ\fP .br .di .nr d| \n(dn @@ -224,7 +1117,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr e| \n(dn @@ -240,7 +1133,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr f| \n(dn @@ -256,7 +1149,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 +٤ƤΥɤͿǥեȤø .br .di .nr g| \n(dn @@ -272,7 +1165,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -あり/信頼できない +/Ǥʤ .br .di .nr h| \n(dn @@ -288,7 +1181,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 (3) +٤ƤΥɤͿǥեȤø(3) .br .di .nr i| \n(dn @@ -304,7 +1197,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(81 .ll \n(81u .in 0 -あり/信頼できない +/Ǥʤ .br .di .nr j| \n(dn @@ -320,7 +1213,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権 (1,3) +٤ƤΥɤͿǥեȤø(1,3) .br .di .nr k| \n(dn @@ -336,7 +1229,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権とポリシーファイル内で与えられる特権 +٤ƤΥɤͿǥեȤøȥݥꥷեͿø .br .di .nr l| \n(dn @@ -352,7 +1245,7 @@ o .ll \n(34u*1u/6u .if \n(.l<\n(84 .ll \n(84u .in 0 -すべてのコードに与えられるデフォルトの特権とポリシーファイル内で与えられる特権 (2) +٤ƤΥɤͿǥեȤøȥݥꥷեͿø(2) .br .di .nr m| \n(dn @@ -363,46 +1256,46 @@ o .nf .ll \n(34u .nr 80 0 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名のない JAR +.nr 38 \w̾Τʤ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w署名付き JAR +.nr 38 \w̾դ JAR .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 38 \n(a- .if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wあり/信頼できる +.nr 38 \w/Ǥ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -413,63 +1306,63 @@ o .nr 38 \n(j- .if \n(81<\n(38 .nr 81 \n(38 .nr 82 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(82<\n(38 .nr 82 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 .nr 38 \n(c- .if \n(82<\n(38 .nr 82 \n(38 .nr 83 0 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wなし +.nr 38 \wʤ .if \n(83<\n(38 .nr 83 \n(38 -.nr 38 \wあり +.nr 38 \w .if \n(83<\n(38 .nr 83 \n(38 .83 .rm 83 .nr 38 \n(d- .if \n(83<\n(38 .nr 83 \n(38 .nr 84 0 -.nr 38 \w\f3与えられる特権\fP +.nr 38 \w\f3Ϳø\fP .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 +.nr 38 \w٤Ƥø .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 (1) +.nr 38 \w٤Ƥø (1) .if \n(84<\n(38 .nr 84 \n(38 -.nr 38 \wすべての特権 (1) +.nr 38 \w٤Ƥø (1) .if \n(84<\n(38 .nr 84 \n(38 .84 .rm 84 @@ -503,7 +1396,7 @@ o .nr 44 \n(83+(3*\n(38) .nr 84 +\n(44 .nr TW \n(84 -.if t .if \n(TW>\n(.li .tm Table at line 185 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1078 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -528,7 +1421,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3与えられる特権\fP +\&\h'|\n(40u'\h'|\n(41u'\h'|\n(42u'\h'|\n(43u'\h'|\n(44u'\f3Ϳø\fP .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -565,7 +1458,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -581,7 +1474,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名のない JAR\h'|\n(41u'なし\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾Τʤ JAR\h'|\n(41u'ʤ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -597,7 +1490,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'あり\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -615,7 +1508,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -640,7 +1533,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'\h'|\n(42u'なし\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'\h'|\n(42u'ʤ\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -663,7 +1556,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'なし\h'|\n(42u'あり\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'ʤ\h'|\n(42u'\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -679,7 +1572,7 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'あり\h'|\n(43u'あり\h'|\n(44u' +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'\h'|\n(43u'\h'|\n(44u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -693,15 +1586,15 @@ o .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'なし\h'|\n(43u'なし\h'|\n(44u'すべての特権 +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'ʤ\h'|\n(43u'ʤ\h'|\n(44u'٤Ƥø .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'あり\h'|\n(43u'なし\h'|\n(44u'すべての特権 (1) +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'\h'|\n(43u'ʤ\h'|\n(44u'٤Ƥø (1) .ta \n(80u \n(81u \n(82u \n(83u \n(84u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'署名付き JAR\h'|\n(41u'あり/信頼できる\h'|\n(42u'なし\h'|\n(43u'あり\h'|\n(44u'すべての特権 (1) +\&\h'|\n(40u'̾դ JAR\h'|\n(41u'/Ǥ\h'|\n(42u'ʤ\h'|\n(43u'\h'|\n(44u'٤Ƥø (1) .fc .nr T. 1 .T# 1 @@ -724,894 +1617,43 @@ o .LP .LP -注 \- + \- .LP .RS 3 .TP 3 1. -ポリシーファイル内にアイデンティティー/別名についての言及がある場合、それをキーストアにインポートして、ポリシーファイルの設定が与えられた特権に反映されるようにする必要があります。 +ݥꥷե˥ǥƥƥ/̾ˤĤƤθڤ硢򥭡ȥ˥ݡȤơݥꥷե꤬Ϳ줿øȿǤ褦ˤɬפޤ .TP 3 2. -ポリシーファイル/キーストアの組み合わせは、アイデンティティーデータベース内の信頼できるアイデンティティーよりも優先されます。 +ݥꥷե/ȥȤ߹碌ϡǥƥƥǡ١οǤ륢ǥƥƥͥ褵ޤ .TP 3 3. -Java 2 プラットフォームでは、信頼できないアイデンティティーは無視されます。 +Java 2 ץåȥեǤϡǤʤǥƥƥ̵뤵ޤ .TP 3 4. -Java 2 SDK キーストアにインポートできるのは、信頼できるアイデンティティーだけです。 +Java 2 SDK ȥ˥ݡȤǤΤϡǤ륢ǥƥƥǤ .RE .LP -.SS -キーストアの別名 +.SH "Ϣ" .LP .RS 3 - -.LP -.LP -キーストアのすべてのエントリは、一意の「別名」を介してアクセスされます。 -.LP -.LP -\f3jarsigner\fP を使って JAR ファイルに署名を付けるときは、署名の生成に必要な非公開鍵を含むキーストアエントリの別名を指定する必要があります。たとえば、次の例は、working ディレクトリの mystore という名前のキーストアに含まれる別名 duke に関連付けられた非公開鍵を使って、MyJARFile.jar という名前の JAR ファイルに署名を付けます。出力ファイルは指定されていないので、MyJARFile.jar は署名付きの JAR ファイルによって上書きされます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-storepass myspass -.fl - \-keypass dukekeypasswd MyJARFile.jar duke -.fl -\fP -.fi - -.LP -.LP -キーストアはパスワードで保護されているので、ストアのパスワード (上の例では mypass) を指定する必要があります。コマンド行でストアのパスワードを指定しないと、パスワードの入力を求められます。同様に、非公開鍵もキーストア内でパスワードによって保護されているため、非公開鍵のパスワード (上の例では dukekeypasswd) を指定する必要があります。 コマンド行で非公開鍵のパスワードを指定していない、また、指定したパスワートが保存されているパスワードと違っている場合には、非公開鍵のパスワードの入力を求められます。 -.LP -.RE -.SS -キーストアの場所 -.LP -.RS 3 - -.LP -.LP -\f3jarsigner\fP には、使用するキーストアの URL を指定する \f2\-keystore\fP オプションがあります。キーストアは、デフォルトではユーザーのホームディレクトリの \f2.keystore\fP という名前のファイルに格納されます。 ユーザーのホームディレクトリは、\f2user.home\fP システムプロパティーによって決まります。Solaris システムの場合、\f2user.home\fP がデフォルトでユーザーのホームディレクトリになっています。 -.LP -.LP -\f2\-keystore\fP オプションからの入力ストリームは、\f2KeyStore.load\fP メソッドに渡されます。URL として \f2NONE\fP が指定されている場合は、null のストリームが \f2KeyStore.load\fP メソッドに渡されます。\f2NONE\fP は、\f2KeyStore\fP がファイルベースではなく、たとえば、ハードウェアトークンデバイスに置かれている場合に指定します。 -.LP -.RE -.SS -キーストアの実装 -.LP -.RS 3 - -.LP -.LP -\f2java.security\fP パッケージで提供される \f2KeyStore\fP クラスには、キーストア内の情報に対するアクセスと変更を行うための明確に定義されたインタフェースが用意されています。キーストアの固定実装としては、それぞれが特定の「タイプ」のキーストアを対象とする複数の異なる実装が存在可能です。 -.LP -.LP -現在、キーストアの実装を使用するものとして、\f3keytool\fP と \f3jarsigner\fP の 2 つのコマンド行ツールと、\f3Policy Tool\fP という名前の 1 つの GUI ベースのツールがあります。\f2KeyStore\fP は public として使用可能なので、Java 2 SDK ユーザーは KeyStore を使ったほかのセキュリティーアプリケーションも作成できます。 -.LP -.LP -キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアをファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワードによって保護され、キーストア全体の整合性も (非公開鍵とは別の) パスワードによって保護されます。 -.LP -.LP -キーストアの実装は、プロバイダベースです。具体的には、\f2KeyStore\fP が提供するアプリケーションインタフェースは、Service Provider Interface (SPI) という形で実装されています。つまり、対応する \f2KeystoreSpi\fP 抽象クラス (これも \f2java.security\fP パッケージに含まれている) があり、このクラスが Service Provider Interface のメソッドを定義しています。 これらのメソッドは、「プロバイダ」が実装しなければなりません。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービスのサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合のことです。したがって、キーストアの実装を提供するには、 +.TP 2 +o +jar(1) ġΥɥ +.TP 2 +o +keytool(1) ġΥɥ +.TP 2 +o .na -\f2「Java 暗号化アーキテクチャー用プロバイダの実装方法」\fP @ +\f4jarsigner\fP\f2 ġλˤĤƤϡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlで説明しているように、クライアントが「プロバイダ」を実装し、KeystoreSpi サブクラスの実装を提供する必要があります。 -.LP -.LP -アプリケーションでは、\f2KeyStore\fP クラスが提供する getInstance ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式を定義するとともに、キーストア内の非公開鍵とキーストア自体の整合性を保護するために使われるアルゴリズムを定義します。異なるタイプのキーストアの実装には、互換性はありません。 -.LP -.LP -\f3keytool\fP は、任意のファイルベースのキーストア実装で動作します。keytool は、コマンド行から渡されたキーストアの場所をファイル名として扱い、これを FileInputStream に変換して、FileInputStream からキーストアの情報をロードします。一方、\f3jarsigner\fP ツールと \f3policytool\fP ツールは、URL で指定可能な任意の場所からキーストアを読み込むことができます。 -.LP -.LP -\f3jarsigner\fP と \f3keytool\fP の場合、\f2\-storetype\fP オプションを使ってコマンド行でキーストアのタイプを指定できます。\f3Policy Tool\fP の場合は、[Edit] メニューの [Change Keystore] コマンドを使ってキーストアのタイプを指定できます。 -.LP -.LP -キーストアのタイプを明示的に指定しない場合、keytool、jarsigner、および policytool の各ツールは、セキュリティープロパティーファイル内で指定された \f2keystore.type\fP プロパティーの値に基づいてキーストアの実装を選択します。セキュリティープロパティーファイルは、\f2java.security\fP という名前で SDK セキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位のディレクトリ) です。 -.LP -.LP -各ツールは、\f2keystore.type\fP の値を取得し、この値で指定されたタイプのキーストアを実装しているプロバイダが見つかるまで、現在インストールされているすべてのプロバイダを調べます。目的のプロバイダが見つかると、そのプロバイダからのキーストアの実装を使います。 -.LP -.LP -\f2KeyStore\fP クラスでは \f2getDefaultType\fP という名前の static メソッドが定義されており、アプリケーションとアプレットはこのメソッドを使うことで \f2keystore.type\fP プロパティーの値を取得できます。次のコードは、デフォルトのキーストアタイプ (\f2keystore.type\fP プロパティーで指定されたタイプ) のインスタンスを生成します。 -.LP -.nf -\f3 -.fl - KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); -.fl -\fP -.fi - -.LP -.LP -デフォルトのキーストアタイプは JKS (Sun が提供する独自のタイプのキーストアの実装) です。これは、セキュリティープロパティーファイル内の次の行によって指定されています。 -.LP -.nf -\f3 -.fl - keystore.type=jks -.fl -\fP -.fi - -.LP -.LP -注:キーストアのタイプの指定では、大文字と小文字は区別されません。たとえば、JKS と jks は同じものとして扱われます。 -.LP -.LP -各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して別のキーストアのタイプを指定します。たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供しているプロバイダパッケージを使用するには、上の行を次のように変更します。 -.LP -.nf -\f3 -.fl - keystore.type=pkcs12 -.fl -\fP -.fi - -.LP -.LP -PKCS#11 プロバイダパッケージを使用する場合、その詳細については、「Java PKCS#11 Reference Guide」にある +http://download.oracle.com/javase/tutorial/index.html .na -\f2「KeyTool and JarSigner」\fP @ +\f2Java 塼ȥꥢ\fP\f4\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSignerの節を参照してください。 -.LP -.RE -.RE -.SS -サポートされるアルゴリズム -.LP -.RS 3 - -.LP -.LP -デフォルトでは、\f3jarsigner\fP は次のどちらかのアルゴリズムを使って JAR ファイルに署名します。 -.LP -.RS 3 -.TP 2 -o -SHA\-1 ダイジェストアルゴリズムを使った DSA (デジタル署名アルゴリズム) -.TP 2 -o -MD5 ダイジェストアルゴリズムを使った RSA アルゴリズム -.RE - -.LP -.LP -具体的には、署名者の公開鍵と非公開鍵が DSA 鍵である場合、\f3jarsigner\fP は SHA1withDSA アルゴリズムを使って JAR ファイルに署名を付けます。署名者の鍵が RSA 鍵である場合、\f3jarsigner\fP は MD5withRSA アルゴリズムを使って JAR ファイルに署名を付けます。 -.LP -.LP -これらのデフォルトの署名アルゴリズムは、\f2\-sigalg\fP オプションを使ってオーバーライドできます。 -.LP -.RE -.SS -署名付き JAR ファイル -.LP -.RS 3 - -.LP -.LP -\f3jarsigner\fP を使って JAR ファイルに署名を付けた場合、出力される署名付き JAR ファイルは入力 JAR ファイルと同じですが、次の 2 つの追加ファイルが META\-INF ディレクトリに置かれる点が異なります。 -.LP -.RS 3 -.TP 2 -o -.SF 拡張子の付いた署名ファイル -.TP 2 -o -.DSA 拡張子の付いた署名ブロックファイル -.RE - -.LP -.LP -これら 2 つのファイルのベースファイル名は、\f2\-sigFile\fP オプションの値から作成されます。たとえば、次のようにオプションを指定したとします。 -.LP -.nf -\f3 -.fl - \-sigFile MKSIGN -.fl -\fP -.fi - -.LP -.LP -この場合、ファイル名はそれぞれ MKSIGN.SF と MKSIGN.DSA になります。 -.LP -.LP -コマンド行で \f2\-sigfile\fP オプションを指定しなかった場合、.SF ファイルと .DSA ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字をすべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名がそのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。使用できる文字は、アルファベット、数字、下線 (_)、ハイフンです。 -.LP -\f3署名 (.SF) ファイル\fP -.LP -.RS 3 - -.LP -.LP -署名ファイル (.SF ファイル) は、\f3jarsigner\fP で署名を付けた JAR ファイルに常に含まれるマニフェストファイルと似ています。つまり、マニフェストファイル同様、.SF ファイルには、JAR ファイルに含まれているソースファイルごとに、次の 3 つの行があります。 -.LP -.RS 3 -.TP 2 -o -ファイル名 -.TP 2 -o -使われているダイジェストアルゴリズム (SHA) の名前 -.TP 2 -o -SHA ダイジェストの値 -.RE - -.LP -.LP -マニフェストファイルでは、SHA ダイジェストの値は、ソースファイルのバイナリデータのダイジェスト (ハッシュ) です。一方、.SF ファイルでは、ソースファイルのダイジェストの値は、マニフェストファイル中の該当するソースファイルに対応する 3 行のハッシュです。 -.LP -.LP -署名ファイルには、デフォルトでマニフェストファイル全体のハッシュも含まれています。後述の「JAR ファイルの検証」で説明するように、このヘッダーの存在によって検証の最適化が可能になっています。 -.LP -.RE -\f3署名ブロック (.DSA) ファイル\fP -.LP -.RS 3 - -.LP -.LP -.SF ファイルには署名が付けられ、署名は .DSA ファイルに置かれます。.DSA ファイルには、キーストアからの証明書または証明書チェーンも符号化された形で含まれています。 証明書または証明書チェーンは、署名に使われた非公開鍵に対応する公開鍵を認証します。 -.LP -.RE -.RE -.SS -署名タイムスタンプ -.LP -.RS 3 - -.LP -.LP -J2SE 5.0 リリースの \f2jarsigner\fP ツールは、JAR ファイルの署名時に署名タイムスタンプを生成および格納できるようになりました。さらに、\f2jarsigner\fP は代替署名機構をサポートします。この動作は省略可能で、署名時に次の各オプションによって制御されます。 -.LP -.RS 3 -.TP 2 -o -\f2\-tsa url\fP -.TP 2 -o -\f2\-tsacert alias\fP -.TP 2 -o -\f2\-altsigner class\fP -.TP 2 -o -\f2\-altsignerpath classpathlist\fP -.RE - -.LP -.LP -これらの各オプションの詳細については、後述の「オプション」節を参照してください。 -.LP -.RE -.SS -JAR ファイルの検証 -.LP -.RS 3 - -.LP -.LP -JAR ファイルの検証が成功するのは、署名が有効であり、かつ署名の生成以後に JAR ファイル内のどのファイルも変更されていない場合です。JAR ファイルの検証は、次の手順で行われます。 -.LP -.RS 3 -.TP 3 -1. -.SF ファイルそれ自体の署名を検証します。 -.LP -この手順では、各署名ブロック (.DSA) ファイルに格納されている署名が、実際に、公開鍵に対応する非公開鍵を使って生成されたものであることを確認します。 .DSA ファイルには、公開鍵の証明書 (または証明書チェーン) も含まれています。また、この手順では、目的の署名が、対応する署名 (.SF) ファイル内の有効な署名であるかどうかを調べ、.SF ファイルが改変されていないことも確認します。 -.TP 3 -2. -.SF ファイル内の各エントリのダイジェストをマニフェスト内の対応する各セクションと突き合わせて検証します。 -.LP -.SF ファイルには、マニフェストファイル全体のハッシュが格納されたヘッダーがデフォルトで含まれています。このヘッダーが存在する場合は、ヘッダー内のハッシュが実際にマニフェストファイルのハッシュと一致するかどうかを検証することができます。ハッシュが一致する場合は、次の手順に進みます。 -.LP -ハッシュが一致しない場合は、効率的には劣る方法を使って検証を行います。 具体的には、.SF ファイル内の各ソースファイル情報セクションのハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するかどうかを確認します (「署名 (.SF) ファイル」を参照)。 -.LP -.SF ファイルのヘッダーに格納されたマニフェストファイルのハッシュと、実際のマニフェストファイルのハッシュとが一致しない場合は、署名 (および .SF ファイル) の生成後に、JAR ファイルに 1 つ以上のファイルが追加 (\f2jar\fP ツールを使用) された可能性があります。\f2jar\fP ツールを使ってファイルを追加した場合、マニフェストファイルは変更されますが (新しいファイル用のセクションが追加される)、.SF ファイルは変更されません。この場合、.SF ファイルのヘッダー以外のセクションに格納されたハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するときは、署名の生成時に JAR ファイル内に存在していたファイルのうち、どのファイルも変更されていないことになり、検証は成功したものとして扱われます。 -.TP 3 -3. -JAR ファイル内のファイルのうち、.SF ファイル内にエントリを持つ各ファイルを読み込みます。読み込み中にファイルのダイジェストを計算し、結果をマニフェストセクション内の該当するファイルのダイジェストと比較します。2 つのダイジェストは同じでなければならず、そうでない場合は検証が失敗します。 -.RE - -.LP -.LP -検証プロセスの途中でなんらかの重大な検証エラーが発生した場合、検証プロセスは中止され、セキュリティー例外がスローされます。スローされたセキュリティー例外は、\f3jarsigner\fP がキャッチして表示します。 -.LP -.RE -.SS -1 つの JAR ファイルを対象とする複数の署名 -.LP -.RS 3 - -.LP -.LP -1 つの JAR ファイルに対して \f3jarsigner\fP ツールを複数回実行し、実行のたびに、異なるユーザーの別名を指定すれば、JAR ファイルに複数のユーザーの署名を付けることができます。 -.LP -.nf -\f3 -.fl - jarsigner myBundle.jar susan -.fl - jarsigner myBundle.jar kevin -.fl -\fP -.fi - -.LP -.LP -JAR ファイルが複数回署名されている場合、その JAR ファイルには .SF ファイルと .DSA ファイルの対が複数含まれることになります。 .SF ファイルと .DSA ファイルの対は、1 回の署名に対して 1 つ作成されます。したがって、上の例で出力される JAR ファイルには、次の名前を持つファイルが含まれます。 -.LP -.nf -\f3 -.fl - SUSAN.SF -.fl - SUSAN.DSA -.fl - KEVIN.SF -.fl - KEVIN.DSA -.fl -\fP -.fi - -.LP -.LP -注:JAR ファイルでは、JDK 1.1 の \f3javakey\fP ツールで生成された署名と \f3jarsigner\fP で生成された署名が混在できます。つまり、すでに \f3javakey\fP を使って署名が付けられている JAR ファイルに、\f3jarsigner\fP を使って署名を付けることができます。 -.LP -.RE -.SH "オプション" -.LP - -.LP -.LP -以下では、\f3jarsigner\fP のオプションについて説明します。注: -.LP -.RS 3 -.TP 2 -o -どのオプション名にも先頭にマイナス記号 (\-) が付く -.TP 2 -o -オプションは任意の順序で指定できる -.TP 2 -o -イタリック体の項目の実際の値 (オプションの値) は、ユーザーが指定する必要がある -.TP 2 -o -\f2\-keystore\fP、\f2\-storepass\fP、\f2\-keypass\fP、\f2\-sigfile\fP、\f2\-sigalg\fP、\f2\-digestalg\fP および \f2\-signedjar\fP の各オプションを使用できるのは、JAR ファイルに署名を付ける場合だけである。 これらのオプションは、JAR ファイルを検証する場合には使用できない。同様に、別名をコマンド行で指定するのは、JAR ファイルに署名を付ける場合だけである -.RE - -.LP -.RS 3 -.TP 3 -\-keystore url -キーストアの場所を示す URL を指定します。デフォルトは、ユーザーのホームディレクトリ内のファイル \f2.keystore\fP です。 ユーザーのホームディレクトリは、user.home システムプロパティーによって決まります。 -.LP -署名するときはキーストアが必要です。 このため、デフォルトのキーストアが存在しない場合、あるいはデフォルト以外のほかのキーストアを使用する場合は、キーストアを明示的に指定する必要があります。 -.LP -検証するときはキーストアは必要ありません。 ただし、キーストアが指定されているか、あるいはデフォルトのキーストアが存在していて、さらに \f2\-verbose\fP オプションも指定されている場合は、JAR ファイルの検証に使われる証明書がキーストアに存在するかどうかについての追加情報が出力されます。 -.LP -注:\f2\-keystore\fP の引数には、URL の代わりにファイル名 (とパス) を指定できます。 ファイル名 (とパス) を指定した場合は、「file:」URL として扱われます。たとえば、次のように指定できます。 -.nf -\f3 -.fl - \-keystore \fP\f4filePathAndName\fP\f3 -.fl -\fP -.fi -これは、次の指定と同じものとして扱われます。 -.nf -\f3 -.fl - \-keystore file:\fP\f4filePathAndName\fP\f3 -.fl -\fP -.fi -JRE の \f2$JAVA_HOME/lib/security\fP ディレクトリに格納された \f2java.security\fP セキュリティープロパティーファイル内で Sun PKCS#11 プロバイダが設定されている場合、keytool と jarsigner は PKCS#11 トークンに基づいて動作できます。 次のオプションを指定します。 -.RS 3 -.TP 2 -o -\f2\-keystore NONE\fP -.TP 2 -o -\f2\-storetype PKCS11\fP -.RE -たとえば、次のコマンドは、設定された PKCS#11 トークンの内容を一覧表示します。 -.RS 3 - -.LP -.nf -\f3 -.fl - jarsigner \-keystore NONE \-storetype PKCS11 \-list -.fl - -.fl -\fP -.fi -.RE -.TP 3 -\-storetype storetype -インスタンスを生成するキーストアのタイプを指定します。デフォルトのキーストアタイプは、セキュリティープロパティーファイル内の keystore.type プロパティーの値で指定されたタイプです。 この値は、\f2java.security.KeyStore\fP の static \f2getDefaultType\fP メソッドで取得できます。 -.LP -\f2\-storepass\fP オプションを使って PCKS#11 トークンの PIN を指定することもできます。何も指定しなかった場合、keytool と jarsigner はユーザーにトークン PIN の 入力を求めます。トークンに保護された認証パス (専用の PIN パッドや生体読み取り機など) がある場合、\f2\-protected\fP オプションを指定する必要がありますが、パスワードオプションを指定する必要はありません。 -.TP 3 -\-storepass password -キーストアにアクセスするのに必要なパスワードを指定します。このオプションが必要なのは、JAR ファイルに署名を付けるときだけです (JAR ファイルを検証するときは不要)。署名を付けるときに、コマンド行で \f2\-storepass\fP オプションを指定しなかった場合は、パスワードの入力を求められます。 -.LP -注:テストを目的とする場合、またはセキュリティー保護されたシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。また、password プロンプトでパスワードを入力すると、入力したパスワードがエコーされ、そのまま画面に表示されます。 このため、周囲にほかのユーザーがいる場合は、パスワードを見られないように注意してください。 -.TP 3 -\-keypass password -コマンド行で指定された別名に対応するキーストアエントリの非公開鍵を保護するのに使うパスワードを指定します。\f3jarsigner\fP を使って JAR ファイルに署名を付けるときは、パスワードが必要です。コマンド行でパスワードが指定されておらず、必要なパスワードがストアのパスワードと異なる場合は、パスワードの入力を求められます。 -.LP -注:テストを目的とする場合、またはセキュリティー保護されたシステムを使用している場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。また、password プロンプトでパスワードを入力すると、入力したパスワードがエコーされ、そのまま画面に表示されます。 このため、周囲にほかのユーザーがいる場合は、パスワードを見られないように注意してください。 -.TP 3 -\-sigfile file -.SF ファイルと .DSA ファイルの生成に使うベースファイル名を指定します。たとえば、\f2file\fP に DUKESIGN を指定すると、生成される .SF ファイルと .DSA ファイルの名前は、それぞれ DUKESIGN.SF と DUKESIGN.DSA になります。 これらのファイルは、署名付き JAR ファイルの META\-INF ディレクトリに置かれます。 -.LP -\f2file\fP に使用できる文字は「a\-zA\-Z0\-9_\-」です。つまり、文字、数字、下線、およびハイフンだけを使用できます。注:.SF および .DSA のファイル名では、小文字はすべて大文字に変換されます。 -.LP -コマンド行で \f2\-sigfile\fP オプションを指定しなかった場合、.SF ファイルと .DSA ファイルのベースファイル名は、コマンド行で指定された別名の先頭の 8 文字をすべて大文字に変換したものになります。別名が 8 文字未満の場合は、別名がそのまま使われます。別名の中に、署名ファイル名に使用できない文字が含まれている場合は、該当する文字を下線 (_) に置き換えてファイル名が作成されます。 -.TP 3 -\-sigalg algorithm -.RS 3 - -.LP -JAR ファイルの署名に使用する署名アルゴリズムの名前を指定します。 -.LP -標準署名アルゴリズム名の一覧については、「Java Cryptography Architecture」にある -.na -\f2「Appendix A 」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このアルゴリズムは、JAR ファイルの署名に使用する秘密鍵と互換性のあるものでなければなりません。このオプションを指定しなかった場合、秘密鍵のタイプに応じて SHA1withDSA、MD5withRSA のいずれかが使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザーがそのようなプロバイダを \f2\-providerClass\fP オプションを使って指定する必要があります。 そうでない場合、コマンドの実行が失敗します。 -.LP -.RE -.TP 3 -\-digestalg algorithm -.RS 3 -JAR ファイルのエントリをダイジェストする際に使用するメッセージダイジェストアルゴリズムの名前を指定します。 -.LP -標準メッセージダイジェストアルゴリズム名の一覧については、「Java Cryptography Architecture」にある -.na -\f2「Appendix A 」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。このオプションを指定しなかった場合、SHA\-1 が使用されます。指定されたアルゴリズムの実装を提供するプロバイダが静的にインストールされているか、あるいはユーザーがそのようなプロバイダを \f2\-providerClass\fP オプションを使って指定する必要があります。 そうでない場合、コマンドの実行が失敗します。 -.LP -.RE -.TP 3 -\-signedjar file -署名付き JAR ファイルの名前を指定します。 -.LP -コマンド行で名前を指定しなかった場合は、入力 JAR ファイル (署名の対象となる JAR ファイル) の名前と同じ名前が使われます。 この場合、入力 JAR ファイルは署名付き JAR ファイルによって上書きされます。 -.TP 3 -\-verify -コマンド行でこのオプションが指定されている場合は、指定された JAR ファイルが検証されます。JAR ファイルへの署名は行われません。 検証が成功すると、「jar が検証されました。」 というメッセージが表示されます。署名されていない JAR ファイル、またはサポートされていないアルゴリズム (RSA プロバイダのインストールを終了していない場合の RSA など) を使って署名された JAR ファイルを検証しようとすると、「jar は署名されていません。(署名が見つからないか、構文解析できません)」というメッセージが表示されます。 -.LP -署名付き JAR ファイルは、\f3jarsigner\fP または JDK 1.1 の \f3javakey\fP ツール、あるいはその両方を使って検証できます。 -.LP -検証についての詳細は、「JAR ファイルの検証」を参照してください。 -.TP 3 -\-certs -コマンド行で、\f2\-verify\fP および \f2\-verbose\fP オプションとともにこのオプションが指定されている場合は、JAR ファイルの各署名者の証明書情報も出力されます。証明書情報には次のものが含まれます。 -.RS 3 -.TP 2 -o -署名者の公開鍵を証明する (.DSA ファイルに格納された) 証明書の種類の名前 -.TP 2 -o -証明書が X.509 証明書 (つまり、\f2java.security.cert.X509Certificate\fP のインスタンス) である場合は、署名者の識別名 -.RE -.LP -キーストアの確認も行われます。コマンド行でキーストアの値が指定されていない場合、デフォルトのキーストアファイルがあれば、検査されます。署名者の公開鍵の証明書がキーストア内のエントリと一致した場合は、次の情報も表示されます。 -.RS 3 -.TP 2 -o -署名者に該当するキーストアエントリの別名。 この別名は括弧で囲まれます。ただし、キーストアではなく JDK 1.1 のアイデンティティーデータベースに由来する署名者の場合は、括弧ではなく大括弧で囲まれます。 -.RE -.TP 3 -\-verbose -コマンド行でこのオプションが指定されている場合、\f3jarsigner\fP は「冗長」モードで動作し、JAR の署名または検証の進行状況に関する追加情報を出力します。 -.TP 3 -\-internalsf -以前は、JAR ファイルの署名時に生成された .DSA (署名ブロック) ファイルの中に、生成された .SF ファイル (署名ファイル) の完全なコピーが符号化された形で含まれていました。この動作は変更されました。この動作は変更になり、現在では、出力 JAR ファイル全体のサイズを小さくするために、デフォルトでは .SF ファイルが .DSA ファイルに含まれないようになっています。ただし、コマンド行で \f2\-internalsf\fP オプションを指定すると、以前と同じように動作します。\f3このオプションは、テストを行う場合には便利ですが、それ以外には使用しないでください。 このオプションを使用すると、有益な最適化が行われなくなります。\fP -.TP 3 -\-sectionsonly -コマンド行でこのオプションが指定されている場合、JAR ファイルの署名時に生成される .SF ファイル (署名ファイル) には、マニフェストファイル全体のハッシュを含むヘッダーは追加されません。この場合、.SF ファイルに含まれるのは、JAR ファイル内の各ソースファイルに関する情報およびハッシュだけです。 詳細は、「署名 (.SF) ファイル」を参照してください。 -.LP -デフォルトでは、最適化を行うために、マニフェストファイル全体のハッシュを含むヘッダーが追加されます。ヘッダーが存在する場合は、JAR ファイルの検証時に、まずヘッダー内のハッシュが、マニフェストファイル全体のハッシュと実際に一致するかどうかが確認されます。ハッシュが一致する場合、検証は次の手順に進みます。ハッシュが一致しない場合は、効率的には劣る方法を使って検証を行います。 具体的には、.SF ファイル内の各ソースファイル情報セクションのハッシュが、マニフェストファイル内の対応するセクションのハッシュと一致するかどうかを確認します。 -.LP -詳細は、「JAR ファイルの検証」を参照してください。 -.LP -\f3このオプションは、テストを行う場合には便利ですが、それ以外には使用しないでください。 このオプションを使用すると、有益な最適化が行われなくなります。\fP -.TP 3 -\-protected -\f2true\fP または \f2false\fP のいずれか。専用 PIN リーダーなどの保護された認証パスを介してパスワードを指定する必要がある場合には、この値に \f2true\fP を指定してください。 -.RE -.RS 3 -.TP 3 -\-provider provider\-class\-name -サービスプロバイダがセキュリティープロパティーファイル (\f2java.security\fP) のリストに入っていないときに、暗号化サービスプロバイダのマスタークラスファイルの名前を指定します。 -.LP -\f2\-providerArg\fP \f2ConfigFilePath\fP オプションと組み合わせて使用します。 keytool と jarsigner はプロバイダを動的にインストールします (ここで、\f2ConfigFilePath\fP はトークン設定ファイルへのパスです)。セキュリティープロパティーファイル内で Sun PKCS#11 プロバイダが設定されていない場合に PKCS#11 キーストアを一覧表示するコマンドの例を次に示します。 -.RS 3 - -.LP -.nf -\f3 -.fl -jarsigner \-keystore NONE \-storetype PKCS11 \\ -.fl - \-providerClass sun.security.pkcs11.SunPKCS11 \\ -.fl - \-providerArg /foo/bar/token.config \\ -.fl - \-list -.fl -\fP -.fi -.RE -.TP 3 -\-providerName providerName -\f2java.security\fP セキュリティープロパティーファイル内で 2 つ以上のプロバイダが設定されている場合、\f2\-providerName\fP オプションを使って特定のプロバイダインスタンスを選択できます。このオプションの引数は、プロバイダの名前です。 -.LP -Sun PKCS#11 プロバイダの場合、\f2providerName\fP は \f2SunPKCS11\-\fP\f2TokenName\fP という形式になります。 ここで「\f2TokenName\fP」は、プロバイダインスタンスが構成された名前の接尾辞です。 詳細は -.na -\f2構成属性の表\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRSを参照してください。たとえば、以下のコマンドでは、名前接尾辞 \f2SmartCard\fP の PKCS#11 キーストアプロバイダインスタンスの内容をリストします。 -.RS 3 - -.LP -.nf -\f3 -.fl -jarsigner \-keystore NONE \-storetype PKCS11 \\ -.fl - \-providerName SunPKCS11\-SmartCard \\ -.fl - \-list -.fl -\fP -.fi -.RE -.TP 3 -\-Jjavaoption -指定された \f2javaoption\fP 文字列を Java インタプリタに直接渡します。(\f3jarsigner\fP は、実際には Java インタプリタに対する「ラッパー」です。このオプションには、空白を含めることはできません。このオプションは、実行環境またはメモリー使用を調整する場合に便利です。指定できるインタプリタオプションを一覧表示するには、コマンド行で \f2java \-h\fP または \f2java \-X\fP と入力してください。 -.LP -.TP 3 -\-tsa url -JAR ファイルの署名時にコマンド行に「\f2\-tsa http://example.tsa.url\fP」が表示される場合、署名のタイムスタンプが生成されます。URL \f2http://example.tsa.url\fP は、TSA (Time Stamping Authority) の場所を特定します。これは、\f2\-tsacert\fP オプションで検出された URL をオーバーライドします。\f2\-tsa\fP オプションでは、TSA の公開鍵証明書をキーストアに配置する必要はありません。 -.LP -タイムスタンプを生成するため、\f2jarsigner\fP は -.na -\f2RFC 3161\fP @ -.fi -http://www.ietf.org/rfc/rfc3161.txt で定義されている TSP (Time\-Stamp Protocol) を使用して TSA と通信します。成功すると、TSA から返されたタイムスタンプトークンは署名ブロックファイルの署名とともに保存されます。 -.LP -.TP 3 -\-tsacert alias -JAR ファイルの署名時にコマンド行に「\f2\-tsacert alias\fP」が表示される場合、署名のタイムスタンプが生成されます。\f2alias\fP は、キーストア内の現在有効な TSA の公開鍵証明書を特定します。エントリの証明書で、TSA の場所を特定する URL を含む Subject Information Access 拡張機能が確認されます。 -.LP -TSA の公開鍵証明書は、\f2\-tsacert\fP を使った場合、キーストアに配置されている必要があります。 -.LP -.TP 3 -\-altsigner class -代替署名機構を使用することを指定します。完全修飾クラス名は、\f2com.sun.jarsigner.ContentSigner\fP の abstract クラスを拡張するクラスファイルを特定します。このクラスファイルへのパスは、\f2\-altsignerpath\fP オプションによって定義されます。\f2\-altsigner\fP オプションを使用した場合、\f2jarsigner\fP は指定されたクラスが提供する署名機構を使用します。または、\f2jarsigner\fP はデフォルトの署名機構を使用します。 -.LP -たとえば、\f2com.sun.sun.jarsigner.AuthSigner\fP というクラスが提供する署名機構を使用するには、\f2jarsigner\fP オプション「\f2\-altsigner com.sun.jarsigner.AuthSigner\fP」を使用します。 -.LP -.TP 3 -\-altsignerpath classpathlist -クラスファイル (クラスファイル名は上記のように \f2\-altsigner\fP オプションで指定される) およびそれが依存する JAR ファイルへのパスを指定します。クラスファイルが JAR ファイル内にある場合、以下の例のように JAR ファイルへのパスが指定されます。 -.LP -絶対パスまたは現在のディレクトリからの相対パスを指定できます。\f2classpathlist\fP には、複数のパスまたは JAR ファイルを含めることができます。 その場合、各パスまたは JAR ファイルを、Solaris の場合にはコロン (\f2:\fP)、Windows の場合にはセミコロン (\f2;\fP) で区切ります。目的のクラスがすでに検索パス内にある場合は、このオプションは不要です。 -.LP -クラスファイルを含む、JAR ファイルへのパスを指定する例を示します。 -.RS 3 - -.LP -.LP -\f2\-altsignerpath /home/user/lib/authsigner.jar\fP -.LP -.RE -.LP -JAR ファイル名が含まれていることに注意してください。 -.LP -クラスファイルを含む JAR ファイルへのパスを指定する例を示します。 -.RS 3 -.LP -\f2\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/\fP -.LP -.RE -.LP -JAR ファイル名は含まれていないことに留意してください。 -.RE -.SH "例" -.LP - -.LP -.SS -JAR ファイルの署名 -.LP -.RS 3 - -.LP -.LP -bundle.jar という名前の JAR ファイルがあるとします。 このファイルに、キーストアの別名が jane であるユーザーの非公開鍵を使って、署名を付けるとします。キーストアは、mystore という名前で、C ドライブの working ディレクトリにあり、キーストアのパスワードは mypass、\f2jane\fP の非公開鍵のパスワードは j638klm とします。この場合、次のコマンドを実行すると、JAR ファイルに署名を付けて sbundle.jar という署名付き JAR ファイルを作成できます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-storepass myspass -.fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -上のコマンドでは \f2\-sigfile\fP オプションが指定されていないため、署名付き JAR ファイルに格納される .SF ファイルと .DSA ファイルの名前は、別名からデフォルト名がつけられます。つまり、\f2JANE.SF\fP と \f2JANE.DSA\fP になります。 -.LP -.LP -ストアのパスワードと非公開鍵のパスワードをあとで入力する場合は、上のコマンドを短縮して次のように入力できます。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore -.fl - \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -デフォルトのキーストア (ホームディレクトリ内の .keystore という名前のキーストア) を使用する場合は、次に示すように、キーストアの指定を省略できます。 -.LP -.nf -\f3 -.fl - jarsigner \-signedjar sbundle.jar bundle.jar jane -.fl -\fP -.fi - -.LP -.LP -また、署名付き JAR ファイルで入力 JAR ファイル (\f2bundle.jar\fP) を上書きする場合は、\f2\-signedjar\fP オプションの指定も省略できます。 -.LP -.nf -\f3 -.fl - jarsigner bundle.jar jane -.fl -\fP -.fi -.RE - -.LP -.SS -署名付き JAR ファイルの検証 -.LP -.RS 3 - -.LP -.LP -次に示すのは、署名付き JAR ファイルを検証し、署名が有効で JAR ファイルが改変されていないことを確認するためのコマンド例です。 -.LP -.nf -\f3 -.fl - jarsigner \-verify sbundle.jar -.fl -\fP -.fi - -.LP -.LP -検証が成功すると、次のようなメッセージが表示されます。 -.LP -.nf -\f3 -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -というメッセージが表示されます。検証が成功しなかった場合は、エラーメッセージが表示されます。 -.LP -.LP -\f2\-verbose\fP オプションを使うと、より多くの情報が表示されます。次に示すのは、\f2\-verbose\fP オプションを指定した \f3jarsigner\fP の実行例とその出力結果です。 -.LP -.nf -\f3 -.fl - jarsigner \-verify \-verbose sbundle.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - smk 2752 Fri Sep 26 16:12:30 PDT 1997 AclEx.class -.fl - smk 849 Fri Sep 26 16:12:46 PDT 1997 test.class -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.SS -証明書情報を使った検証 -.LP -.LP -検証時に、\f2\-verify\fP と \f2\-verbose\fP オプションに加えて \f2\-certs\fP オプションを指定した場合は、JAR ファイル内の各署名者の証明書情報も出力されます。 これには、証明書のタイプ、署名者の識別名情報 (X.509 証明書の場合)、および JAR ファイルの公開鍵の証明書がキーストアエントリの公開鍵の証明書と一致する場合には、括弧で囲まれた署名者のキーストア別名が含まれます。次に例を示します。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-verify \-verbose \-certs myTest.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - 208 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.SF -.fl - 1087 Fri Sep 26 16:23:30 PDT 1997 META\-INF/JAVATEST.DSA -.fl - smk 2752 Fri Sep 26 16:12:30 PDT 1997 Tst.class -.fl - -.fl - X.509, CN=Test Group, OU=Java Software, O=Sun Microsystems, L=CUP, S=CA, C=US (javatest) -.fl - X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -署名者の証明書が X.509 証明書でない場合は、識別名情報は表示されません。その場合には、証明書のタイプと別名だけが表示されます。たとえば、証明書が PGP 証明書で、別名が bob の場合は、次のように表示されます。 -.LP -.nf -\f3 -.fl - PGP, (bob) -.fl -\fP -.fi - -.LP -.SS -アイデンティティーデータベースの署名者を含む JAR ファイルの検証 -.LP -.LP -JAR ファイルが、JDK 1.1 の \f3javakey\fP ツールを使って署名されている場合、署名者はアイデンティティーデータベース内の別名です。 この場合、検証の出力には i という記号が含まれます。JAR ファイルが、アイデンティティーデータベース内の別名とキーストア内の別名の両方によって署名されている場合は、k と i の両方が表示されます。 -.LP -.LP -\f2\-certs\fP オプションを指定した場合、キーストアの別名は括弧で囲まれるのに対し、アイデンティティーデータベース内の別名は角括弧で囲まれて表示されます。例を示します。 -.LP -.nf -\f3 -.fl - jarsigner \-keystore /working/mystore \-verify \-verbose \-certs writeFile.jar -.fl - -.fl - 198 Fri Sep 26 16:14:06 PDT 1997 META\-INF/MANIFEST.MF -.fl - 199 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.SF -.fl - 1013 Fri Sep 26 16:22:10 PDT 1997 META\-INF/JANE.DSA -.fl - 199 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.SF -.fl - 1013 Fri Sep 27 12:22:30 PDT 1997 META\-INF/DUKE.DSA -.fl - smki 2752 Fri Sep 26 16:12:30 PDT 1997 writeFile.html -.fl - -.fl - X.509, CN=Jane Smith, OU=Java Software, O=Sun, L=cup, S=ca, C=us (jane) -.fl - X.509, CN=Duke, OU=Java Software, O=Sun, L=cup, S=ca, C=us [duke] -.fl - -.fl - s = 署名が検証されました。 -.fl - m = エントリがマニフェスト内にリストされます。 -.fl - k = 1 つ以上の証明書がキーストアで検出されました。 -.fl - i = 1 つ以上の証明書がアイデンティティースコープで検出されました。 -.fl - -.fl - jar が検証されました。 -.fl -\fP -.fi - -.LP -.LP -別名 duke は角括弧で囲まれているので、この別名はキーストアの別名ではなく、アイデンティティーデータベースの別名です。 -.LP -.RE -.SH "関連項目" -.LP - -.LP -.RS 3 -.TP 2 -o -jar(1) ツールのドキュメント -.TP 2 -o -keytool(1) ツールのドキュメント -.TP 2 -o -\f3jarsigner\fP ツールの使用例については、 -.na -\f4「Java Tutorial」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/index.htmlの -.na -\f4「Security」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/security/index.htmlを参照 +http://download.oracle.com/javase/tutorial/index.htmlSecurity\f3򻲾\fP .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/java.1 b/jdk/src/solaris/doc/sun/man/man1/ja/java.1 index b939d72adcf..5385d6ef039 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/java.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/java.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,29 +19,29 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "02 Jun 2010" +.TH java 1 "14 Apr 2011" .LP -.SH "名前" -java \- Java アプリケーション起動ツール +.SH "̾" +java \- Java ץꥱưġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" +.SH "" .LP .nf \f3 @@ -52,90 +52,80 @@ o .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 class -呼び出されるクラスの名前 +ƤӽФ륯饹̾ .TP 3 file.jar -呼び出される JAR ファイルの名前。必ず \f2\-jar\fP とともに使用する +ƤӽФ JAR ե̾ɬ \f2\-jar\fP ȤȤ˻Ѥ .TP 3 argument -\f3main\fP 関数に渡される引数 +\f3main\fP ؿϤ .RE .LP -.RE -.SH " 説明" -.LP - +.SH "" .LP .LP -\f3java\fP ツールは、Java アプリケーションを起動します。java ツールは、Java Runtime Environment を起動したあと、指定されたクラスをロードし、そのクラスの \f3main\fP メソッドを呼び出すことにより、Java アプリケーションを起動します。 +\f3java\fP ġϡJava ץꥱưޤjava ġϡJava Runtime Environment ưȡꤵ줿饹ɤΥ饹 \f3main\fP ᥽åɤƤӽФȤˤꡢJava ץꥱưޤ .LP .LP -このメソッドは、public および static として宣言する必要があります。 また、値を返してはいけません。 さらに、\f2String\fP 配列をパラメータとして指定できなければなりません。メソッドの宣言は、次のようになっていなければなりません。 +Υ᥽åɤϡpublic static Ȥɬפޤ ޤ֤ͤƤϤޤ ˡ \f2String\fP ѥ᡼ȤƻǤʤФʤޤ󡣥᥽åɤϡΤ褦ˤʤäƤʤФʤޤ .LP .nf \f3 .fl - public static void main(String args[]) +public static void main(String args[]) .fl \fP .fi .LP .LP -デフォルトでは、コマンド行オプション以外の最初の引数が、呼び出されるクラスの名前になります。この名前には、完全指定のクラス名を使用する必要があります。\f3\-jar\fP オプションを指定した場合、コマンド行オプション以外の最初の引数が、アプリケーションのクラスファイルとリソースファイルを含む \f3JAR\fP アーカイブの名前になります。 この場合、マニフェストの \f3Main\-Class\fP ヘッダーで指定されたクラスが起動クラスになります。 +ǥեȤǤϡޥɹԥץʳκǽΰƤӽФ륯饹̾ˤʤޤ̾ˤϡΥ饹̾Ѥɬפޤ\f3\-jar\fP ץꤷ硢ޥɹԥץʳκǽΰץꥱΥ饹եȥ꥽եޤ \f3JAR\fP ֤̾ˤʤޤξ硢ޥ˥եȤ \f3Main\-Class\fP إåǻꤵ줿饹ư饹ˤʤޤ .LP .LP -Java Runtime は、ブートストラップクラスパス、インストール型拡張機能、およびユーザークラスパスの 3 箇所から起動クラスと他の使用されているクラスを検索します。 +Java Runtime ϡ֡ȥȥåץ饹ѥ󥹥ȡ뷿ĥǽӥ桼饹ѥ 3 ս꤫鵯ư饹¾λѤƤ륯饹򸡺ޤ .LP .LP -クラス名または JAR ファイル名のあとにある、コマンド行オプション以外の引数は、\f3main\fP 関数に渡されます。 +饹̾ޤ JAR ե̾ΤȤˤ롢ޥɹԥץʳΰϡ\f3main\fP ؿϤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -起動ツールには、現在の実行環境および将来のリリースでサポートされる標準オプションがあります。また、仮想マシンの現在の実装では、非標準オプションのセットもサポートされます。 これは、将来のリリースで変更される可能性があります。 +ưġˤϡߤμ¹ԴĶӾΥ꡼ǥݡȤɸ४ץ󤬤ޤޤۥޥθߤμǤϡɸ४ץΥåȤ⥵ݡȤޤϡΥ꡼ѹǽޤ .LP -.SH "標準オプション" -.LP - +.SH "ɸ४ץ" .LP .RS 3 .TP 3 \-client .LP -Java HotSpot Client VM を選択します。64 ビット対応 JDK は現時点では、このオプションを無視し、代わりに Java Hotspot Server VM を使用します。 +Java HotSpot Client VM 򤷤ޤ64 ӥåб JDK ϸǤϡΥץ̵뤷 Java Hotspot Server VM Ѥޤ .LP -デフォルトの VM の選択については、 +ǥեȤ VM ˤĤƤϡ .na -\f2「サーバー \- クラスマシンの検出」\fP @ +\f2֥С \- 饹ޥθС\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html򻲾ȤƤ .TP 3 \-server .LP -Java HotSpot Server VM を選択します。64 ビット対応 JDK 上では、サポートされるのは Java Hotspot Server VM だけであるため、\-server オプションが暗黙的に選択されます。 +Java HotSpot Server VM 򤷤ޤ64 ӥåб JDK ǤϡݡȤΤ Java Hotspot Server VM Ǥ뤿ᡢ\-server ץ󤬰Ū򤵤ޤ .LP -デフォルトの VM の選択については、 +ǥեȤ VM ˤĤƤϡ .na -\f2「サーバー \- クラスマシンの検出」\fP @ +\f2֥С \- 饹ޥθС\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html򻲾ȤƤ .TP 3 \-agentlib:libname[=options] -ネイティブエージェントライブラリ \f2libname\fP をロードします。 たとえば次のように指定します。 +ͥƥ֥ȥ饤֥ \f2libname\fP ɤޤȤмΤ褦˻ꤷޤ .LP \-agentlib:hprof .LP @@ -143,57 +133,57 @@ http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.htmlを参 .LP \-agentlib:hprof=help .LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2「JVMTI エージェントのコマンド行オプション」\fP @ +\f2JVMTI ȤΥޥɹԥץ\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#startingを参照してください。 +http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting򻲾ȤƤ .TP 3 \-agentpath:pathname[=options] -フルパス名を使用して、ネーティブエージェントライブラリをロードします。詳細については、 +եѥ̾Ѥơ͡ƥ֥ȥ饤֥ɤޤܺ٤ˤĤƤϡ .na -\f2「JVMTI エージェントのコマンド行オプション」\fP @ +\f2JVMTI ȤΥޥɹԥץ\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#startingを参照してください。 +http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting򻲾ȤƤ .TP 3 \-classpath classpath .TP 3 \-cp classpath -クラスファイルを検索するディレクトリ、JAR アーカイブ、および ZIP アーカイブのリストを指定します。クラスパスの各エントリはコロン (\f3:\fP) で区切ります。\f3\-classpath\fP または \f3\-cp\fP を指定すると、このオプションの値によって \f3CLASSPATH\fP 環境変数の設定がオーバーライドされます。 +饹ե򸡺ǥ쥯ȥꡢJAR ֡ ZIP ֤ΥꥹȤꤷޤ饹ѥγƥȥϥ (\f3:\fP) Ƕڤޤ\f3\-classpath\fP ޤ \f3\-cp\fP ꤹȡΥץͤˤä \f3CLASSPATH\fP Ķѿ꤬С饤ɤޤ .LP -\f3\-classpath\fP も \f3\-cp\fP も使用されず、\f3CLASSPATH\fP も設定されていない場合、ユーザークラスパスは現在のディレクトリ (\f4.\fP) になります。 +\f3\-classpath\fP \f3\-cp\fP Ѥ줺\f3CLASSPATH\fP ꤵƤʤ硢桼饹ѥϸߤΥǥ쥯ȥ (\f4.\fP) ˤʤޤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡ \f2.jar\fP ޤ \f2.JAR\fP ĥҤ˻ĥǥ쥯ȥΤ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤̤ȤʤޤΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ* \f2饹ѥȥϡ\fP ȥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .LP -クラスパスの詳細は、 +饹ѥξܺ٤ϡ .na -\f2「クラスパスの設定」\fP @ +\f2֥饹ѥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath򻲾ȤƤ .TP 3 \-Dproperty=value -システムプロパティーの値を設定します。 +ƥץѥƥͤꤷޤ .TP 3 \-d32 .TP 3 \-d64 -それぞれ 32 ビット環境、64 ビット環境でプログラムを実行することを要求します。要求された環境がインストールされていないかサポートされていない場合は、エラーが報告されます。 +줾 32 ӥåȴĶ64 ӥåȴĶǥץ¹Ԥ뤳Ȥ׵ᤷޤ׵ᤵ줿Ķ󥹥ȡ뤵ƤʤݡȤƤʤϡ顼𤵤ޤ .LP -現在のところ、Java HotSpot Server VM だけが 64 ビットの操作をサポートしており、\-d64 を使用すると \-server オプションが暗黙的に有効になります。したがって、\-d64 使用時には「\-client」オプションは無視されます。この仕様は、将来のリリースでは変更になる可能性があります。 +ߤΤȤJava HotSpot Server VM 64 ӥåȤ򥵥ݡȤƤꡢ\-server ץѤϡ\-d64 ˻Ѥɬפޤäơ\-d64 ѻˤϡ\-clientץץ̵뤵ޤλͤϡΥ꡼Ǥѹˤʤǽޤ .LP -\f3\-d32\fP と \f3\-d64\fP がどちらも指定されていない場合は、デフォルトとして、32 ビット環境で実行されます。この仕様は、将来のリリースでは変更になる可能性があります。 +\f3\-d32\fP \f3\-d64\fP ɤꤵƤʤϡǥեȤȤơ32 ӥåȴĶǼ¹ԤޤλͤϡΥ꡼Ǥѹˤʤǽޤ .TP 3 -\-enableassertions[:<package name>"..."| :<class name> ] +\-enableassertions[:<package name>"..." | :<class name> ] .TP 3 -\-ea[:<package name>"..."| :<class name> ] -アサーションを有効にします。アサーションは、デフォルトでは無効になっています。 +\-ea[:<package name>"..." | :<class name> ] +ͭˤޤϡǥեȤǤ̵ˤʤäƤޤ .LP -引数なしの \f3enableassertions\fP または \f3\-ea\fP を指定すると、アサーションが有効になります。「\f2...\fP」で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが有効になります。引数として「\f2...\fP」だけを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが有効になります。「\f2...\fP」で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが有効になります。 +ʤ \f3enableassertions\fP ޤ \f3\-ea\fP ꤹȡͭˤʤޤ\f2...\fPפǽ 1 ĻꤹȡꤷѥåȤΥ֥ѥåǥͭˤʤޤȤơ\f2...\fPפꤹȡߤκȥǥ쥯ȥˤ̾Τʤѥåǥͭˤʤޤ\f2...\fPפǽʤ 1 Ļꤹȡꤷ饹ǥͭˤʤޤ .LP -単一コマンド行にこれらのスイッチのインスタンスを複数指定した場合は、指定したスイッチが順番に処理されてからクラスがロードされます。したがって、たとえば、パッケージ \f2com.wombat.fruitbat\fP (サブパッケージを含む) 内でのみアサーションを有効にしてプログラムを実行するには、次のようなコマンドを使用します。 +ñ쥳ޥɹԤˤΥåΥ󥹥󥹤ʣꤷϡꤷå֤˽Ƥ饯饹ɤޤäơȤСѥå \f2com.wombat.fruitbat\fP (֥ѥåޤ) ǤΤߥͭˤƥץ¹ԤˤϡΤ褦ʥޥɤѤޤ .nf \f3 .fl @@ -202,151 +192,156 @@ java \-ea:com.wombat.fruitbat... <Main Class> \fP .fi .LP -\f3\-enableassertions\fP および \f3\-ea\fP スイッチは、すべてのクラスローダおよびシステムクラスに適用されます。 システムクラスにはクラスローダはありません。ただし、この規則には例外が 1 つあります。それは、引数なしでこのスイッチを指定すると、その指定はシステムクラスには適用されない、ということです。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを有効にするために、別のスイッチが用意されています。 このあとの \f3\-enablesystemassertions\fP を参照してください。 +\f3\-enableassertions\fP \f3\-ea\fP åϡ٤ƤΥ饹ӥƥ९饹ŬѤޤƥ९饹ˤϥ饹Ϥޤ󡣤ε§ˤ 1 㳰ޤϡʤηǤΥåꤹȡλ꤬ƥŬѤʤȤȤǤ㳰ѤСƥ९饹٤ƤΥ饹ǥñͭˤ뤳ȤǤޤ٤ƤΥƥ९饹ǥͭˤ뤿ˡ̤ΥåѰդƤޤΤȤ \f3\-enablesystemassertions\fP 򻲾ȤƤ .TP 3 -\-disableassertions[:<package name>"..."| :<class name> ] +\-disableassertions[:<package name>"..." | :<class name> ] .TP 3 -\-da[:<package name>"..."| :<class name> ] -アサーションを無効にします。これはデフォルトの設定です。 +\-da[:<package name>"..." | :<class name> ] +̵ˤޤ줬ǥեȤǤ .LP -引数なしの \f3disableassertions\fP または \f3\-da\fP を指定すると、アサーションが無効になります。「\f2...\fP」で終わる引数を 1 つ指定すると、指定したパッケージとそのサブパッケージ内でアサーションが無効になります。引数として「\f2...\fP」だけを指定すると、現在の作業ディレクトリにある名前のないパッケージ内でアサーションが無効になります。「\f2...\fP」で終わらない引数を 1 つ指定すると、指定したクラス内でアサーションが無効になります。 +ʤ \f3disableassertions\fP ޤ \f3\-da\fP ꤹȡ̵ˤʤޤ\f2...\fPפǽ 1 ĻꤹȡꤷѥåȤΥ֥ѥåǥ̵ˤʤޤȤơ\f2...\fPפꤹȡߤκȥǥ쥯ȥˤ̾Τʤѥåǥ̵ˤʤޤ\f2...\fPפǽʤ 1 Ļꤹȡꤷ饹ǥ̵ˤʤޤ .LP -パッケージ \f2com.wombat.fruitbat\fP 内ではアサーションを有効にし、クラス \f2com.wombat.fruitbat.Brickbat\fP 内ではアサーションを無効にしたうえで、プログラムを実行するには、次のようなコマンドを使用します。 +ѥå \f2com.wombat.fruitbat\fP Ǥϥͭˤ饹 \f2com.wombat.fruitbat.Brickbat\fP Ǥϥ̵ˤǡץ¹ԤˤϡΤ褦ʥޥɤѤޤ .nf \f3 .fl -java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat <Main Class> +java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat \fP\f4<Main Class>\fP\f3 .fl \fP .fi .LP -\f3\-disableassertions\fP および \f3\-da\fP スイッチは、すべてのクラスローダおよびシステムクラスに適用されます。 システムクラスにはクラスローダはありません。ただし、この規則には例外が 1 つあります。それは、引数なしでこのスイッチを指定すると、その指定はシステムクラスには適用されない、ということです。この例外を利用すれば、システムクラスを除くすべてのクラスでアサーションを簡単に有効にすることができます。すべてのシステムクラスでアサーションを無効にするために、別のスイッチが用意されています。 このあとの \f3\-disablesystemassertions\fP を参照してください。 +\f3\-disableassertions\fP \f3\-da\fP åϡ٤ƤΥ饹ӥƥ९饹ŬѤޤƥ९饹ˤϥ饹Ϥޤ󡣤ε§ˤ 1 㳰ޤϡʤηǤΥåꤹȡλ꤬ƥŬѤʤȤȤǤ㳰ѤСƥ९饹٤ƤΥ饹ǥñͭˤ뤳ȤǤޤ٤ƤΥƥ९饹ǥ̵ˤ뤿ˡ̤ΥåѰդƤޤΤȤ \f3\-disablesystemassertions\fP 򻲾ȤƤ .TP 3 \-enablesystemassertions .TP 3 \-esa -すべてのシステムクラス内でアサーションを有効にします。 つまり、システムクラスについてアサーションのデフォルトステータスを \f2true\fP に設定します。 +٤ƤΥƥ९饹ǥͭˤޤĤޤꡢƥ९饹ˤĤƥΥǥեȥơ \f2true\fP ꤷޤ .TP 3 \-disablesystemassertions .TP 3 \-dsa -すべてのシステムクラス内でアサーションを無効にします。 -.LP +٤ƤΥƥ९饹ǥ̵ˤޤ .TP 3 \-jar -JAR ファイルにカプセル化されたプログラムを実行します。最初の引数は、起動クラスの名前ではなく、JAR ファイルの名前にします。このオプションが機能するには、JAR ファイルのマニフェストに\f3「Main\-Class:\fP\f4classname\fP\f3」\fPという形式の行を指定する必要があります。\f2classname\fP には、アプリケーションの開始位置として機能する \f2public\ static\ void\ main(String[]\ args)\fP メソッドを含むクラスを指定します。JAR ファイルとそのマニフェストについては、jar(1)と、 +JAR ե˥ץ벽줿ץ¹Ԥޤǽΰϡư饹̾ǤϤʤJAR ե̾ˤޤΥץ󤬵ǽˤϡJAR եΥޥ˥եȤ\f3Main\-Class:\fP\f4classname\fP\f3\fPȤιԤꤹɬפޤ\f2classname\fP ˤϡץꥱγϰ֤ȤƵǽ \f2public\ static\ void\ main(String[]\ args)\fP ᥽åɤޤ९饹ꤷޤJAR եȤΥޥ˥եȤˤĤƤϡjar(1)ȡ .na -\f2Java チュートリアル\fP @ +\f2Java 塼ȥꥢ\fP @ .fi -http://java.sun.com/docs/books/tutorial/jarの「Trail: Jar Files」を参照してください。 +http://download.oracle.com/javase/tutorial/deployment/jarΡTrail: Jar Filesפ򻲾ȤƤ .LP -このオプションを使用すると、指定した JAR ファイルがすべてのユーザークラスのソースになり、ユーザークラスパスのほかの設定は無視されます。 +ΥץѤȡꤷ JAR ե뤬٤ƤΥ桼饹Υˤʤꡢ桼饹ѥΤ̵ۤ뤵ޤ .LP -Solaris 8 では、「java \-jar」オプションで実行できる JAR ファイルは、実行権限のセットを保持しています。 このため、「java \-jar」を使用しないで実行することも可能です。 +Solaris 8 Ǥϡjava \-jarץץǼ¹ԤǤ JAR եϡ¹Ը¤ΥåȤݻƤޤΤᡢjava \-jarפѤʤǼ¹Ԥ뤳ȤǽǤJava Archive (JAR) ե .na -\f2Java Archive (JAR) ファイル\fP @ + @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/index.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html .TP 3 \-javaagent:jarpath[=options] -Java プログラミング言語エージェントをロードします。 +Java ץߥ󥰸쥨Ȥɤޤ java.lang.instrument 򻲾ȤƤ .na -\f2java.lang.instrument\fP @ + @ .fi -http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html を参照してください。 +http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html +.TP 3 +\-jre\-restrict\-search +桼ץ饤١Ȥ JRE С󸡺˴ޤޤ +.TP 3 +\-no\-jre\-restrict\-search +桼ץ饤١Ȥ JRE С󸡺ޤ .TP 3 \-verbose .TP 3 \-verbose:class -クラスがロードされるたびにクラスに関する情報を表示します。 +饹ɤ뤿Ӥ˥饹˴ؤɽޤ .TP 3 \-verbose:gc -ガベージコレクションイベントが発生するたびに報告します。 +١쥯󥤥٥Ȥȯ뤿Ӥ𤷤ޤ .TP 3 \-verbose:jni -ネイティブメソッドの使用およびその他の Java Native Interface (JNI) アクティビティーに関する情報を報告します。 +ͥƥ֥᥽åɤλѤӤ¾ Java Native Interface (JNI) ƥӥƥ˴ؤ𤷤ޤ .TP 3 \-version -バージョン情報を表示して終了します。 +Сɽƽλޤ .TP 3 \-version:release -コマンド行に指定されたクラスまたは JAR ファイルが、\f2release\fP で指定されたバージョンを必要としていることを示します。起動された java コマンドのバージョンがこの指定内容を満たさず、かつ適切な実装がシステム上で見つかった場合には、その適切な実装が使用されます。 +ޥɹԤ˻ꤵ줿饹ޤ JAR ե뤬\f2release\fP ǻꤵ줿СɬפȤƤ뤳Ȥ򼨤ޤư줿 java ޥɤΥС󤬤λƤŬڤʼƥǸĤäˤϡŬڤʼѤޤ .LP -\f2release\fP では、特定のバージョンを指定できるだけでなく、バージョン文字列と呼ばれるバージョンのリストを指定することもできます。バージョン文字列は、いくつかのバージョン範囲を空白で区切った形式の順序付きリストです。バージョン範囲は、バージョン ID、バージョン ID の後にアスタリスク (*) を付加したもの、バージョン ID の後にプラス記号 (+) を付加したもの、2 つのバージョン範囲をアンパサンド (&) で結合したもの、のいずれかになります。アスタリスクはプレフィックス一致を、プラス記号は指定されたバージョン以上を、アンパサンドは 2 つのバージョン範囲の論理積を、それぞれ意味します。例を示します。 +\f2release\fP ǤϡΥСǤǤʤСʸȸƤФСΥꥹȤꤹ뤳ȤǤޤСʸϡĤΥСϰϤǶڤäνդꥹȤǤСϰϤϡС IDС ID θ˥ꥹ (*) ղäΡС ID θ˥ץ饹 (+) ղäΡ2 ĤΥСϰϤ򥢥ѥ (&) Ƿ礷ΡΤ줫ˤʤޤꥹϥץեåפ򡢥ץ饹ϻꤵ줿Сʾ򡢥ѥɤ 2 ĤΥСϰϤѤ򡢤줾̣ޤ򼨤ޤ .nf \f3 .fl -\-version:"1.5.0_04 1.5*&1.5.1_02+" +\-version:"1.6.0_13 1.6*&1.6.0_10+" .fl \fP .fi -上記の意味は、バージョン 1.5.0_04、または 1.5.1_02 以上で 1.5 をバージョン ID プレフィックスとして持つバージョン、のいずれかをクラスまたは JAR ファイルが必要とする、ということです。 バージョン文字列の厳密な構文や定義については、「Java Network Launching Protocol & API Specification (JSR\-56)」の「Appendix A」を参照してください。 +嵭ΰ̣ϡС 1.6.0_131.6 С ID ץեå˻ 1.6.0_10 ʾΥС󡢤Τ줫򥯥饹ޤ JAR ե뤬ɬפȤƤ롢ȤȤǤСʸθ̩ʹʸˤĤƤϡJava Network Launching Protocol & API Specification (JSR\-56)פΡAppendix Aפ򻲾ȤƤ .LP -JAR ファイルの場合は通常、バージョン要件をコマンド行に指定するよりも、JAR ファイルのマニフェスト内に指定することが推奨されています。 +JAR եξ̾С׷򥳥ޥɹԤ˻ꤹ⡢JAR եΥޥ˥ե˻ꤹ뤳Ȥ侩Ƥޤ .LP -このオプションの使用に関する重要なポリシー情報については、後述の「注」節を参照してください。 +ΥץλѤ˴ؤפʥݥꥷˤĤƤϡҤΡ򻲾ȤƤ .TP 3 \-showversion -バージョン情報を表示して続行します。 +Сɽ³Ԥޤ .TP 3 \-? .TP 3 \-help -使用法を表示して終了します。 +ˡɽƽλޤ +.TP 3 +\-splash:imagepath +\f2imagepath\fP ˻ꤵ줿ޤॹץå̤ɽޤ .TP 3 \-X -非標準オプションに関する情報を表示して終了します。 +ɸ४ץ˴ؤɽƽλޤ .RE .LP .SS -非標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Xint -インタプリタ専用モードで動作します。ネイティブコードへのコンパイルは無効になり、すべてのバイトコードがインタプリタによって実行されます。Java HotSpot VM に対応するコンパイラが提供するパフォーマンス上の利点は、このモードでは実現されません。 +󥿥ץ꥿ѥ⡼ɤưޤͥƥ֥ɤؤΥѥ̵ˤʤꡢ٤ƤΥХȥɤ󥿥ץ꥿ˤäƼ¹ԤޤJava HotSpot VM б륳ѥ餬󶡤ѥեޥ󥹾ϡΥ⡼ɤǤϼ¸ޤ .TP 3 \-Xbatch -バックグラウンドコンパイルを無効にします。通常、VM では、バックグラウンドコンパイルが終了するまで、メソッドをバックグラウンドタスクとしてコンパイルし、インタプリタモードでメソッドを実行します。\f2\-Xbatch\fP フラグを指定すると、バックグラウンドコンパイルが無効になり、すべてのメソッドのコンパイルが完了するまでフォアグラウンドタスクとして処理されます。 +Хå饦ɥѥ̵ˤޤ̾VM ǤϡХå饦ɥѥ뤬λޤǡ᥽åɤХå饦ɥȤƥѥ뤷󥿥ץ꥿⡼ɤǥ᥽åɤ¹Ԥޤ\f2\-Xbatch\fP ե饰ꤹȡХå饦ɥѥ뤬̵ˤʤꡢ٤ƤΥ᥽åɤΥѥ뤬λޤǥե饦ɥȤƽޤ .TP 3 \-Xbootclasspath:bootclasspath -ブートクラスファイルを探すディレクトリ、JAR アーカイブ、および ZIP アーカイブをコロンで区切ったリストで指定します。指定したパスに存在するブートクラスファイルが、JDK に含まれるブートクラスファイルの代わりに使用されます。\f2注: rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environment バイナリコードライセンス違反になります。\fP +֡ȥ饹եõǥ쥯ȥꡢJAR ֡ ZIP ֤򥳥ǶڤäꥹȤǻꤷޤꤷѥ¸ߤ֡ȥ饹ե뤬Java ץåȥե JDK ˴ޤޤ֡ȥ饹ե˻Ѥޤ\f2: rt.jar Υ饹򥪡С饤ɤŪǤΥץѤ륢ץꥱϡƥ֤ʤǤJava Runtime Environment Хʥꥳɥ饤󥹰ȿˤʤޤ\fP .TP 3 \-Xbootclasspath/a:path -ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをコロンで区切って指定します。 パスはデフォルトのブートストラップクラスパスのあとに追加されます。 +ǥ쥯ȥꡢJAR ֡ ZIP ֤Υѥ򥳥ǶڤäƻꤷޤѥϥǥեȤΥ֡ȥȥåץ饹ѥΤȤɲäޤ .TP 3 \-Xbootclasspath/p:path -ディレクトリ、JAR アーカイブ、および ZIP アーカイブのパスをコロンで区切って指定します。 パスはデフォルトのブートストラップクラスパスの前に追加されます。\f2注 rt.jar 内のクラスをオーバーライドする目的でこのオプションを使用するアプリケーションは、システムに配置しないでください。Java Runtime Environment バイナリコードライセンス違反になります。\fP +ǥ쥯ȥꡢJAR ֡ ZIP ֤Υѥ򥳥ǶڤäƻꤷޤѥϥǥեȤΥ֡ȥȥåץ饹ѥɲäޤ\f2: rt.jar Υ饹򥪡С饤ɤŪǤΥץѤ륢ץꥱϡƥ֤ʤǤJava Runtime Environment Хʥꥳɥ饤󥹰ȿˤʤޤ\fP .TP 3 \-Xcheck:jni -Java Native Interface (JNI) 機能に対して追加チェックを行います。具体的には、Java 仮想マシンは JNI 要求を処理する前に、JNI 関数に渡されるパラメータと、実行環境のデータを検証します。無効なデータが見つかった場合は、ネイティブコードに問題があることを示しているため、Java 仮想マシンは致命的エラーを発生して終了します。このオプションを使用すると、パフォーマンス低下が予想されます。 +Java Native Interface (JNI) ǽФɲååԤޤŪˤϡJava ۥޥ JNI ׵ˡJNI ؿϤѥ᡼ȡ¹ԴĶΥǡ򸡾ڤޤ̵ʥǡĤäϡͥƥ֥ɤ꤬뤳Ȥ򼨤Ƥ뤿ᡢJava ۥޥ̿Ū顼ȯƽλޤΥץѤȡѥեޥ㲼ͽۤޤ .TP 3 \-Xfuture -クラスとファイルの形式を厳密にチェックします。下位互換性を保つため、JDK の仮想マシンが実行するデフォルトの形式チェックは、JDK ソフトウェアのバージョン 1.1.x が実行するチェックと同程度の厳密さになっています。\f3\-Xfuture\fP フラグを指定すると、クラスファイル形式の仕様への準拠を強化するためのより厳密なチェックが有効になります。Java アプリケーション起動ツールの将来のリリースでは、より厳密なチェックがデフォルトになるため、新しいコードを開発するときにはこのフラグを使用することをお勧めします。 +饹ȥեη̩˥åޤ̸ߴݤĤᡢJDK βۥޥ󤬼¹ԤǥեȤηåϡJDK եȥΥС 1.1.x ¹ԤåƱ٤θ̩ˤʤäƤޤ\f3\-Xfuture\fP ե饰ꤹȡ饹եλͤؤν򶯲뤿Τ긷̩ʥåͭˤʤޤJava ץꥱưġξΥ꡼Ǥϡ긷̩ʥåǥեȤˤʤ뤿ᡢɤȯȤˤϤΥե饰Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-Xnoclassgc -クラスのガベージコレクションを無効にします。このオプションを使用すると、ロード済みクラスからメモリーが回復されることがなくなるため、全体的なメモリー使用量が増大します。この場合、アプリケーションによっては OutOfMemoryError がスローされる可能性があります。 +饹Υ١쥯̵ˤޤΥץѤȡɺѤߥ饹꡼뤳Ȥʤʤ뤿ᡢŪʥ꡼̤礷ޤξ硢ץꥱˤäƤ OutOfMemoryError ǽޤ .TP 3 \-Xincgc -インクリメンタルガーベジコレクタを有効にします。インクリメンタルガベージコレクタは、デフォルトでは無効になっています。 有効にすると、プログラムの実行中にガベージコレクションによる一時停止が発生しなくなります。インクリメンタルガベージコレクタは、プログラムと同時に実行することがあり、この場合、プログラムの利用できるプロセッサ能力が低下します。 +󥯥󥿥륬٥쥯ͭˤޤ󥯥󥿥륬١쥯ϡǥեȤǤ̵ˤʤäƤޤ ͭˤȡץμ¹˥١쥯ˤߤȯʤʤޤ󥯥󥿥륬١쥯ϡץƱ˼¹Ԥ뤳Ȥꡢξ硢ץѤǤץåǽϤ㲼ޤ .TP 3 \-Xloggc:file -\-verbose:gc と同様にガベージコレクションイベントが発生するたびに報告しますが、そのデータを \f2file\fP に記録します。\f2\-verbose:gc\fP を指定したときに報告される情報のほかに、報告される各イベントの先頭に、最初のガベージコレクションイベントからの経過時間 (秒単位) が付け加えられます。 -.LP -ネットワークの応答時間によって JVM の実行速度が低下するのを避けるため、このファイルの格納先は、常にローカルファイルシステムにしてください。ファイルシステムが満杯になると、ファイルは切り詰められ、そのファイルにデータが引き続き記録されます。このオプションと \f2\-verbose:gc\fP の両方がコマンド行に指定されている場合は、このオプションが優先されます。 +\-verbose:gc Ʊͤ˥١쥯󥤥٥Ȥȯ뤿Ӥ𤷤ޤΥǡ \f2file\fP ˵Ͽޤ\f2\-verbose:gc\fP ꤷȤ𤵤Τۤˡ𤵤ƥ٥ȤƬˡǽΥ١쥯󥤥٥Ȥηв (ñ) դäޤ .LP +ͥåȥα֤ˤä JVM μ¹®٤㲼Τ򤱤뤿ᡢΥեγǼϡ˥ե륷ƥˤƤե륷ƥबդˤʤȡեڤͤ졢Υե˥ǡ³ϿޤΥץ \f2\-verbose:gc\fP ξޥɹԤ˻ꤵƤϡΥץͥ褵ޤ .TP 3 \-Xmsn -メモリー割り当てプールの初期サイズをバイト数で指定します。指定する値は、1M バイトより大きい 1024 の倍数にしなければなりません。キロバイトを指定するには、文字 \f2k\fP または \f2K\fP を付けます。 メガバイトを指定するには、文字 \f2m\fP または \f2M\fP を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。詳細については、「HotSpot Ergonomics」を参照してください。 -.br -例: -.RS 3 - +꡼ƥסνХȿǻꤷޤꤹͤϡ1M ХȤ礭 1024 ܿˤʤФʤޤ󡣥ХȤꤹˤϡʸ \f2k\fP ޤ \f2K\fP դޤᥬХȤꤹˤϡʸ \f2m\fP ޤ \f2M\fP դޤǥեͤϡ¹Ի˥ƥ˴Ť򤵤ޤܺ٤ˤĤƤϡ +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/vm/gc\-ergonomics.htmlפ򻲾ȤƤ .LP +: .nf \f3 .fl @@ -356,19 +351,19 @@ Java Native Interface (JNI) 機能に対して追加チェックを行います .fl \-Xms6m .fl - + .fl \fP .fi -.RE .TP 3 \-Xmxn -メモリー割り当てプールの最大サイズをバイト数で指定します。指定する値は、2M バイトより大きい 1024 の倍数にしなければなりません。キロバイトを指定するには、文字 \f2k\fP または \f2K\fP を付けます。 メガバイトを指定するには、文字 \f2m\fP または \f2M\fP を付けます。デフォルト値は、実行時にシステムの設定に基づいて選択されます。詳細については、「HotSpot Ergonomics」を参照してください。 +꡼ƥסκ祵Хȿǻꤷޤꤹͤϡ2M ХȤ礭 1024 ܿˤʤФʤޤ󡣥ХȤꤹˤϡʸ \f2k\fP ޤ \f2K\fP դޤᥬХȤꤹˤϡʸ \f2m\fP ޤ \f2M\fP դޤǥեͤϡ¹Ի˥ƥ˴Ť򤵤ޤܺ٤ˤĤƤϡ +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/vm/gc\-ergonomics.htmlפ򻲾ȤƤ .br -例: -.RS 3 - -.LP +: .nf \f3 .fl @@ -378,95 +373,104 @@ Java Native Interface (JNI) 機能に対して追加チェックを行います .fl \-Xmx80m .fl - + .fl \fP .fi -.RE -Solaris 7 および Solaris 8 SPARC プラットフォームの場合、この値の上限はおよそ 4000m からオーバーヘッドの量を引いたものであり、Solaris 2.6 および x86 プラットフォームの場合は 2000m からオーバーヘッドの量を引いたものです。Linux プラットフォームの場合の上限は、およそ 2000m からオーバーヘッドの量を引いたものです。 +Solaris 7 Solaris 8 SPARC ץåȥեξΤͤξ¤ϡ褽 4000m 饪Сإåɤ̤ΤǤSolaris 2.6 x86 ץåȥեξξ¤ϡ褽 2000m 饪Сإåɤ̤ΤǤLinux ץåȥեξξ¤ϡ褽 2000m 饪Сإåɤ̤ΤǤ .TP 3 \-Xprof -実行中のプログラムのプロファイルを生成し、プロファイリングデータを標準出力に出力します。このオプションは、プログラム開発用のユーティリティーとして提供されています。 本番稼動システムでの使用を目的としたものではありません。 -.LP +¹ΥץΥץեץեǡɸϤ˽ϤޤΥץϡץ೫ȯѤΥ桼ƥƥȤ󶡤Ƥޤ ֲưƥǤλѤŪȤΤǤϤޤ .TP 3 \-Xrs -Java 仮想マシン (JVM) によるオペレーティングシステムシグナルの使用を減らします。 +Java ۥޥ (JVM) ˤ륪ڥ졼ƥ󥰥ƥॷʥλѤ򸺤餷ޤ .LP -以前のリリースでは、Java アプリケーションを秩序正しくシャットダウンするためのシャットダウンフック機能が追加されました。この機能により、JVM が突然終了した場合でも、シャットダウン時にユーザークリーンアップコード (データベース接続のクローズなど) を実行できるようになりました。 +Υ꡼ǤϡJava ץꥱåȥ󤹤뤿ΥåȥեåǽɲäޤεǽˤꡢJVM λǤ⡢åȥ˥桼꡼󥢥åץ (ǡ١³Υʤ) ¹ԤǤ褦ˤʤޤ .LP -Sun の JVM は、シグナルをキャッチすることによって、JVM の異常終了のためのシャットダウンフックを実装します。JVM は、SIGHUP、SIGINT、および SIGTERM を使用して、シャットダウンフックの実行を開始します。 +Sun JVM ϡʥ򥭥å뤳ȤˤäơJVM ΰ۾ェλΤΥåȥեåޤJVM ϡSIGHUPSIGINT SIGTERM Ѥơåȥեåμ¹Ԥ򳫻Ϥޤ .LP -JVM は、デバッグの目的でスレッドスタックをダンプするという、1.2 より前からある機能を実現するためにも、同様の機構を使用します。Sun の JVM は、スレッドダンプを実行するために SIGQUIT を使用します。 +JVM ϡǥХåŪǥåɥåפȤ1.2 餢뵡ǽ¸뤿ˤ⡢ƱͤεѤޤSun JVM ϡåɥפ¹Ԥ뤿 SIGQUIT Ѥޤ .LP -JVM を埋め込んでいるアプリケーションが SIGINT や SIGTERM などのシグナルを頻繁にトラップする必要があると、JVM そのもののシグナルハンドラの処理に支障が出る可能性があります。\f3\-Xrs\fP コマンド行オプションを使用すると、この問題に対処できます。Sun の JVM に対して \f3\-Xrs\fP を使用すると、SIGINT、SIGTERM、SIGHUP、および SIGQUIT に対するシグナルマスクは JVM によって変更されず、これらのシグナルに対するシグナルハンドラはインストールされません。 +JVM Ǥ륢ץꥱ SIGINT SIGTERM ʤɤΥʥˤ˥ȥåפɬפȡJVM ΤΤΥʥϥɥν˻پ㤬Фǽޤ\f3\-Xrs\fP ޥɹԥץѤȡнǤޤSun JVM Ф \f3\-Xrs\fP ѤȡSIGINTSIGTERMSIGHUP SIGQUIT Ф륷ʥޥ JVM ˤäѹ줺ΥʥФ륷ʥϥɥϥ󥹥ȡ뤵ޤ .LP -\f3\-Xrs\fP を指定した場合、次の 2 つの影響があります。 +\f3\-Xrs\fP ꤷ硢 2 Ĥαƶޤ .RS 3 .TP 2 o -SIGQUIT によるスレッドダンプを利用できない +SIGQUIT ˤ륹åɥפѤǤʤ .TP 2 o -シャットダウンフック処理の実行は、JVM が終了しようとしている時点で System.exit() を呼び出すなどして、ユーザーコード側で行う必要がある +åȥեåμ¹ԤϡJVM λ褦ȤƤ System.exit() ƤӽФʤɤơ桼¦ǹԤɬפ .RE .TP 3 \-Xssn -スレッドのスタックサイズを設定します。 +åɤΥåꤷޤ .TP 3 \-XX:+UseAltSigs -VM ではデフォルトで \f2SIGUSR1\fP および \f2SIGUSR2\fP を使用しますが、\f2SIGUSR1\fP および \f2SIGUSR2\fP をシグナル連鎖するアプリケーションと 競合する場合があります。\f2\-XX:+UseAltSigs\fP オプションは、VM にデフォルトとして \f2SIGUSR1\fP と \f2SIGUSR2\fP 以外のシグナルを使用させます。 +VM ǤϥǥեȤ \f2SIGUSR1\fP \f2SIGUSR2\fP Ѥޤ\f2SIGUSR1\fP \f2SIGUSR2\fP 򥷥ʥϢ륢ץꥱ 礹礬ޤ\f2\-XX:+UseAltSigs\fP ץϡVM ˥ǥեȤȤ \f2SIGUSR1\fP \f2SIGUSR2\fP ʳΥʥѤޤ .RE .LP -.RE -.SH "注" +.SH "" .LP - .LP -\f3\-version:\fP\f2release\fP コマンド行オプションでは、どんなに複雑にリリースを指定してもかまいません。ただし、現実的なリリース指定の限られたサブセットを使用するだけでも適切なポリシーを表現できるため、それらのサブセットのみが完全にサポートされます。それらのポリシーを次に示します。 +\f3\-version:\fP\f2release\fP ޥɹԥץǤϡɤʤʣ˥꡼ꤷƤ⤫ޤޤ󡣤Ūʥ꡼θ¤줿֥åȤѤǤŬڤʥݥꥷɽǤ뤿ᡢΥ֥åȤΤߤ˥ݡȤޤΥݥꥷ򼡤˼ޤ +.LP .RS 3 .TP 3 1. -任意のバージョン。 これは、このオプションを使用しないことで表現できます。 +ǤդΥС󡣤ϡΥץѤʤȤɽǤޤ .TP 3 2. -ある特定のバージョン ID よりも大きい任意のバージョン。 次に例を示します。 +ΥС ID 礭ǤդΥС󡣼򼨤ޤ .nf \f3 .fl -"1.5.0_03+" +"1.6.0_10+" .fl \fP .fi -.LP -この場合、1.5.0_03 よりも大きい任意のバージョンが使用されます。 これは、指定されたバージョンで特定のインタフェースが導入された (あるいはそのバグが修正された) 場合に便利です。 +ξ硢 \f21.6.0_10\fP 礭ǤդΥС󤬻Ѥޤϡꤵ줿СΥ󥿥եƳ줿 (뤤ϤΥХ줿) Ǥ .TP 3 3. -ある特定のバージョン ID よりも大きいバージョン。 ただし、そのリリースファミリの上限によって制限するもの。例を示します。 +ΥС ID 礭С󡣤Υ꡼եߥξ¤ˤä¤Ρ򼨤ޤ .nf \f3 .fl -"1.5.0_03+&1.5*" +"1.6.0_10+&1.6*" .fl \fP .fi .TP 3 4. -上の項目 2 または 3 の「OR」表現。例を示します。 +ι 2 ȹ 3 ΡOR׼򼨤ޤ .nf \f3 .fl -"1.4.2_05+&1.4* 1.5+" +"1.6.0_10+&1.6* 1.7+" .fl \fP .fi -これは項目 2 に似ていますが、ある変更が特定のリリース (1.5) で導入されたが、その同じ変更が以前のリリースのアップデートでも利用可能になった、という場合に便利です。 +Ϲ 2 ˻ƤޤѹΥ꡼ (1.7) Ƴ줿ƱѹΥ꡼ΥåץǡȤǤѲǽˤʤäȤǤ .RE .LP -.SH "関連項目" +.SH "λơ" .LP +.LP +̤ˡνλͤưġ뤫֤Τ̾ưʰǸƤӽФ줿ʥ顼ȯ뤤 Java ۥޥ󤫤㳰줿Ǥ Java ץꥱϡAPI ƤӽФ \f2System.exit(exitValue)\fP ѤǤդ֤ͤȤ򤹤뤳ȤǤޤ +.LP +.RS 3 +.TP 2 +o +\f20\fP: ェλ +.TP 2 +o +\f2>0\fP: 顼ȯ +.RE +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -484,19 +488,19 @@ jar(1) .TP 2 o .na -\f2「Java 拡張機能フレームワーク」\fP @ +\f2Java ĥǽե졼\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html .TP 2 o .na -\f2「セキュリティー」\fP @ +\f2֥ƥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/index.html .TP 2 o .na -\f2「HotSpot VM Specific Options」\fP @ +\f2HotSpot VM Specific Options\fP @ .fi http://java.sun.com/docs/hotspot/VMOptions.html .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 index 905022aaa85..6987ff94b68 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,325 +19,423 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "02 Jun 2010" +.TH javac 1 "14 Apr 2011" .LP -.SH "名前" -javac \- Java プログラミング言語コンパイラ +.SH "̾" +javac \- Java ץߥ󥰸쥳ѥ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -コマンド行引数ファイル +ޥɹ԰ե .TP 2 o -注釈処理 + .TP 2 o -型の検索 +θ .TP 2 o -プログラマティックインタフェース +ץޥƥå󥿥ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ] .fl - + .fl .fi .LP .LP -引数は順不同です。 -.LP -.RS 3 - +ϽƱǤ .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 sourcefiles -コンパイルされる 1 つ以上のソースファイル (MyClass.java など) +ѥ뤵 1 İʾΥե (MyClass.java ʤ) .TP 3 classes -注釈の処理対象となる 1 つ以上のクラス (MyPackage.MyClass など) +νоݤȤʤ 1 İʾΥ饹 (MyPackage.MyClass ʤ) .TP 3 @argfiles -オプションとソースファイルを列挙した 1 つ以上のファイル。このファイルの中では、\f2\-J\fP オプションは指定できません。 +ץȥե󤷤 1 İʾΥե롣ΥեǤ \f2\-J\fP ץϻǤޤ .RE .LP -.RE -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javac\fP ツールは、Java プログラミング言語で記述されたクラスとインタフェースの定義を読み取り、バイトコードのクラスファイルにコンパイルします。また、Java ソースファイルおよびクラス内の注釈の処理も行います。 +\f3javac\fP ġϡJava ץߥ󥰸ǵҤ줿饹ȥ󥿥եɤ߼ꡢХȥɤΥ饹ե˥ѥ뤷ޤޤJava ե뤪ӥ饹νԤޤ .LP .LP -ソースコードのファイル名を \f3javac\fP に渡すには、次の 2 つの方法があります。 +ɤΥե̾ \f3javac\fP Ϥˤϡ 2 Ĥˡޤ .LP .RS 3 .TP 2 o -ソースファイルの数が少ない場合は、ファイル名をコマンド行で直接指定します。 +եοʤϡե̾򥳥ޥɹԤľܻꤷޤ .TP 2 o -ソースファイルの数が多い場合は、ファイル名を空白または改行で区切って、1 つのファイルに列挙します。次に、このリストファイル名の先頭に \f3@\fP を付けて、\f3javac\fP のコマンド行で指定します。 +եο¿ϡե̾ޤϲԤǶڤäơ1 ĤΥե󤷤ޤˡΥꥹȥե̾Ƭ \f3@\fP դơ\f3javac\fP ΥޥɹԤǻꤷޤ .RE .LP .LP -ソースコードのファイル名は \f2.java\fP 拡張子を、クラスのファイル名は \f2.class\fP 拡張子を持っていなければなりません。 また、ソースファイルとクラスファイルのどちらも、該当するクラスに対応するルート名を持っていなければなりません。たとえば、\f2MyClass\fP という名前のクラスは、\f2MyClass.java\fP という名前のソースファイルに記述します。 このソースファイルは、\f2MyClass.class\fP という名前のバイトコードクラスファイルにコンパイルされます。 +ɤΥե̾ \f2.java\fP ĥҤ򡢥饹Υե̾ \f2.class\fP ĥҤäƤʤФʤޤ󡣤ޤեȥ饹եΤɤ⡢륯饹б롼̾äƤʤФʤޤ󡣤ȤС \f2MyClass\fP Ȥ̾Υ饹ϡ \f2MyClass.java\fP Ȥ̾Υե˵ҤޤΥեϡ \f2MyClass.class\fP Ȥ̾ΥХȥɥ饹ե˥ѥ뤵ޤ .LP .LP -内部クラスが定義されていると、追加のクラスファイルが生成されます。これらのクラスファイルの名前は、\f2MyClass$MyInnerClass.class\fP のように、外部クラス名と内部クラス名を組み合わせたものになります。 +饹ƤȡɲäΥ饹ե뤬ޤΥ饹ե̾ϡ \f2MyClass$MyInnerClass.class\fP Τ褦ˡ饹̾饹̾Ȥ߹碌Τˤʤޤ .LP .LP -ソースファイルは、パッケージツリーを反映したディレクトリツリーに配置する必要があります。たとえば、すべてのソースファイルを \f3/workspace\fP に置いている場合、\f2com.mysoft.mypack.MyClass\fP のソースコードは \f3/workspace/com/mysoft/mypack/MyClass.java\fP にある必要があります。 +եϡѥåĥ꡼ȿǤǥ쥯ȥĥ꡼֤ɬפޤȤС٤ƤΥե \f3/workspace\fP ֤Ƥ硢 \f2com.mysoft.mypack.MyClass\fP Υɤ \f3/workspace/com/mysoft/mypack/MyClass.java\fP ˤɬפޤ .LP .LP -デフォルトでは、コンパイラは、各クラスファイルを対応するソースファイルと同じディレクトリに置きます。別の出力先ディレクトリを指定するには、\f3\-d\fP を使用します (このあとのオプションを参照)。 +ǥեȤǤϡѥϡƥ饹եб륽եƱǥ쥯ȥ֤ޤ̤νǥ쥯ȥꤹˤϡ\f3\-d\fP Ѥޤ (ΤȤΥץ򻲾) .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -コンパイラには、現在の開発環境でサポートされており、将来のリリースでもサポートされる標準オプションのセットがあります。これ以外の非標準オプションは、現在の仮想マシンおよびコンパイラの実装に固有のオプションで、将来に変更される可能性があります。非標準オプションは、\f3\-X\fP で始まります。 +ѥˤϡߤγȯĶǥݡȤƤꡢΥ꡼Ǥ⥵ݡȤɸ४ץΥåȤޤʳɸ४ץϡߤβۥޥ󤪤ӥѥμ˸ͭΥץǡѹǽޤɸ४ץϡ\f3\-X\fP ǻϤޤޤ .LP .SS -標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Akey[=value] -注釈プロセッサに渡されるオプション。これらは、javac によって直接解釈されず、個々のプロセッサによって使用されます。 \f2key\fP には、1 つまたは複数の識別子を「.」で区切ったものを指定してください。 +ץåϤ륪ץ󡣤ϡjavac ˤäľܲᤵ줺ġΥץåˤäƻѤޤ\f2key\fP ˤϡ1 Ĥޤʣμ̻Ҥ.פǶڤäΤꤷƤ .TP 3 -\-cp path または \-classpath path -ユーザーのクラスファイルおよび (場合によっては) 注釈プロセッサやソースファイルの検索場所を指定します。このクラスパスは \f3CLASSPATH\fP 環境変数のユーザークラスパスをオーバーライドします。\f3CLASSPATH\fP、\f3\-cp\fP、\f3\-classpath\fP のいずれも指定されていない場合、ユーザークラスパスは、現在のディレクトリになります。詳細は、 -.na -\f2「クラスパスの設定」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +\-cp path ޤ \-classpath path +桼Υ饹ե뤪 (ˤäƤ) ץå䥽եθꤷޤΥ饹ѥ \f3CLASSPATH\fP ĶѿΥ桼饹ѥ򥪡С饤ɤޤ\f3CLASSPATH\fP\f3\-cp\fP\f3\-classpath\fP ΤꤵƤʤ硢桼饹ѥϡߤΥǥ쥯ȥˤʤޤܺ٤ϡ֥饹ѥפ򻲾ȤƤ .LP -\f3\-sourcepath\fP オプションが指定されていない場合は、ソースファイルもユーザークラスパスから検索されます。 +\f3\-sourcepath\fP ץ󤬻ꤵƤʤϡե桼饹ѥ鸡ޤ .LP -\f3\-processorpath\fP オプションが指定されていない場合は、注釈プロセッサもユーザークラスパスから検索されます。 +\f3\-processorpath\fP ץ󤬻ꤵƤʤϡץå桼饹ѥ鸡ޤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます。 -.br -.br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。\f3注:\fPコマンド行環境の構成によっては、\f2javac \-cp "*.jar" MyClass.java\fP などのように、ワイルドカード文字を引用符で囲まなければならない場合があります。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ +.LP +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ\f3:\fP ޥɹԴĶιˤäƤϡ \f2javac \-cp "*.jar" MyClass.java\fP ʤɤΤ褦ˡ磻ɥʸǰϤळȤɬפʾ⤢ޤ .TP 3 \-Djava.ext.dirs=directories -インストール型拡張機能の位置をオーバーライドします。 +󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ .TP 3 \-Djava.endorsed.dirs=directories -承認された標準パスの位置をオーバーライドします。 +ǧ줿ɸѥΰ֤򥪡С饤ɤޤ .TP 3 \-d directory -クラスファイルの出力先ディレクトリを設定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP はディレクトリを作成しません。クラスがパッケージの一部である場合、\f3javac\fP は、必要に応じてディレクトリを作成し、パッケージ名を反映したサブディレクトリにクラスファイルを置きます。たとえば、\f3\-d /home/myclasses\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP である場合、クラスファイルは \f2/home/myclasses/com/mypackage/MyClass.class\fP になります。 +饹եνǥ쥯ȥꤷޤΥǥ쥯ȥϤǤ¸ߤƤɬפޤ\f3javac\fP Ϻޤ󡣥饹ѥåΰǤ硢\f3javac\fP ϡɬפ˱ƥǥ쥯ȥѥå̾ȿǤ֥ǥ쥯ȥ˥饹ե֤ޤȤС\f3\-d /home/myclasses\fP Ȼꤷ饹̾ \f2com.mypackage.MyClass\fP Ǥ硢饹ե \f2/home/myclasses/com/mypackage/MyClass.class\fP ˤʤޤ .LP -\f3\-d\fP が指定されなかった場合、\f3javac\fP は各クラスファイルを、その生成元となるソースファイルと同じディレクトリ内に格納します。 +\f3\-d\fP ꤵʤä硢\f3javac\fP ϳƥ饹ե򡢤Ȥʤ륽եƱǥ쥯ȥ˳Ǽޤ .LP -\f3注:\fP\f3\-d\fP で指定したディレクトリはユーザークラスパスに自動的には追加されません。 +\f3:\fP \f3\-d\fP ǻꤷǥ쥯ȥϥ桼饹ѥ˼ưŪˤɲäޤ .TP 3 \-deprecation -推奨されないメンバーやクラスが、使用またはオーバーライドされるたびに説明を表示します。\f3\-deprecation\fP が指定されていない場合、\f3javac\fP は、推奨されないメンバーやクラスを使用またはオーバーライドしているソースファイルの要約を表示します。\f3\-deprecation\fP は \f3\-Xlint:deprecation\fP の省略表記です。 +侩ʤС䥯饹ѤޤϥС饤ɤ뤿Ӥɽޤ\f3\-deprecation\fP ꤵƤʤ硢\f3javac\fP ϡ侩ʤС䥯饹ѤޤϥС饤ɤƤ륽եɽޤ\f3\-deprecation\fP \f3\-Xlint:deprecation\fP ξάɽǤ .TP 3 \-encoding encoding -ソースファイルのエンコーディング名 (\f2EUC\-JP\fP や \f2UTF\-8\fP など) を指定します。\f3\-encoding\fP が指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 +եΥ󥳡ǥ̾ ( \f2EUC\-JP UTF\-8\fP ʤ) ꤷޤ\f3\-encoding\fP ꤵƤʤϡץåȥեΥǥեȥСȤޤ +.TP 3 +\-endorseddirs directories +ǧ줿ɸѥΰ֤򥪡С饤ɤޤ +.TP 3 +\-extdirs directories +\f2ext\fP ǥ쥯ȥΰ֤򥪡С饤ɤޤ\f2directories\fP ѿˤϡǶڤäǥ쥯ȥΥꥹȤꤷޤꤷǥ쥯ȥγ JAR ֤顢饹ե뤬ޤĤä٤Ƥ JAR ֤ϼưŪ˥饹ѥΰˤʤޤ +.LP +ѥ (ۤʤ Java ץåȥե˼줿֡ȥȥåץ饹ĥǽ饹ФƥѥԤ) ¹Ԥ硢Υץˤϳĥǽ饹ޤǥ쥯ȥꤷޤܺ٤ϡ֥ѥ륪ץפ򻲾ȤƤ .TP 3 \-g -局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号およびソースファイル情報だけが生成されます。 +ɽѿޤह٤ƤΥǥХåޤǥեȤǤϡֹ椪ӥեޤ .TP 3 \-g:none -デバッグ情報を生成しません。 +ǥХåޤ .TP 3 \-g:{keyword list} -コンマで区切られたキーワードリストにより指定された、特定の種類のデバッグ情報だけを生成します。次のキーワードが有効です。 +ޤǶڤ줿ɥꥹȤˤꤵ줿μΥǥХåޤΥɤͭǤ .RS 3 .TP 3 source -ソースファイルのデバッグ情報 +եΥǥХå .TP 3 lines -行番号のデバッグ情報 +ֹΥǥХå .TP 3 vars -局所変数のデバッグ情報 +ɽѿΥǥХå .RE .TP 3 \-help -標準オプションの形式を表示します。 +ɸ४ץηɽޤ .TP 3 \-implicit:{class,none} -暗黙的にロードされたソースファイルに対するクラスファイルの生成を制御します。クラスファイルを自動生成するには、\f3\-implicit:class\fP を使用します。クラスファイルの生成を抑制するには、\f3\-implicit:none\fP を使用します。 このオプションが指定されなかった場合のデフォルト動作は、クラスファイルの自動生成になります。その場合、そのようなクラスファイルが生成された時に注釈処理も実行されると、コンパイラから警告が発行されます。 このオプションが明示的に設定された場合には、警告は発行されません。 「型の検索」を参照してください。 +Ū˥ɤ줿եФ륯饹ե椷ޤ饹եưˤϡ\f3\-implicit:class\fP Ѥޤ饹եˤϡ\f3\-implicit:none\fP ѤޤΥץ󤬻ꤵʤäΥǥեưϡ饹եμưˤʤޤξ硢Τ褦ʥ饹ե뤬줿¹Ԥȡѥ餫ٹȯԤޤΥץŪꤵ줿ˤϡٹȯԤޤ󡣡ַθפ򻲾ȤƤ +.TP 3 +\-Joption +\f3javac\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ +.LP +\f3:\fP \f3CLASSPATH\fP\f3\-classpath\fP\f3\-bootclasspath\fP \f3\-extdirs\fP ϡ\f3javac\fP ¹Ԥ뤿˻Ȥ饹ꤹΤǤϤޤ󡣤Τ褦ˡǥѥμ뤳Ȥϡ̵̣̾Ǥꡢ˴ȼޤΤ褦ˡȤɬפϡ\f3\-J\fP ץȤäơɬפʥץظ \f3java\fP ưġϤƤ .TP 3 \-nowarn -警告メッセージを無効にします。これは \f3\-Xlint:none\fP と同じ意味です。 +ٹå̵ˤޤ \f3\-Xlint:none\fP Ʊ̣Ǥ .TP 3 \-proc: {none,only} -注釈処理、コンパイル、その両方、のいずれを実行するかを制御します。\f3\-proc:none\fP は、注釈処理なしでコンパイルが実行されることを意味します。\f3\-proc:only\fP は、注釈処理だけが実行され、後続のコンパイルはまったく実行されないことを意味します。 +ѥ롢ξΤ¹Ԥ뤫椷ޤ\f3\-proc:none\fP ϡʤǥѥ뤬¹Ԥ뤳Ȥ̣ޤ\f3\-proc:only\fP ϡ¹Ԥ졢³ΥѥϤޤä¹ԤʤȤ̣ޤ .TP 3 \-processor class1[,class2,class3...] -実行する注釈プロセッサの名前。これを指定した場合、デフォルトの検索処理は省略されます。 +¹Ԥץå̾ꤷ硢ǥեȤθϾάޤ .TP 3 \-processorpath path -注釈プロセッサの検索場所を指定します。 このオプションを使用しなかった場合、クラスパス内でプロセッサの検索が行われます。 +ץåθꤷޤΥץѤʤä硢饹ѥǥץåθԤޤ .TP 3 \-s dir -生成されたソースファイルの格納先となるディレクトリを指定します。そのディレクトリはすでに存在している必要があります。 \f3javac\fP は作成しません。クラスがパッケージの一部になっていた場合、コンパイラはそのソースファイルを、パッケージ名を反映したサブディレクトリ内に格納します。 その際、必要に応じてディレクトリを作成します。たとえば、ユーザーが \f3\-s /home/mysrc\fP と指定し、クラスの名前が \f2com.mypackage.MyClass\fP であった場合、そのソースファイルは \f2/home/mysrc/com/mypackage/MyClass.java\fP 内に格納されます。 +줿եγǼȤʤǥ쥯ȥꤷޤΥǥ쥯ȥϤǤ¸ߤƤɬפޤ\f3javac\fP Ϻޤ󡣥饹ѥåΰˤʤäƤ硢ѥϤΥե򡢥ѥå̾ȿǤ֥ǥ쥯ȥ˳Ǽޤκݡɬפ˱ƥǥ쥯ȥޤȤС桼 \f3\-s /home/mysrc\fP Ȼꤷ饹̾ \f2com.mypackage.MyClass\fP Ǥä硢Υե \f2/home/mysrc/com/mypackage/MyClass.java\fP ˳Ǽޤ .TP 3 \-source release -受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。 +դ륽ɤΥСꤷޤ\f2release\fP ˤϼͤǤޤ .RS 3 .TP 3 1.3 -このコンパイラでは、JDK 1.3 以降に導入されたアサーション、総称、または他の言語機能をサポートしません。 +ΥѥǤϡJDK 1.3 ʹߤƳ줿Ρޤ¾θ쵡ǽ򥵥ݡȤޤ .TP 3 1.4 -JDK 1.4 で導入された、アサーションを含むコードを受け付けます。 +JDK 1.4 Ƴ줿ޤॳɤդޤ .TP 3 1.5 -JDK 5 で導入された総称および他の言語機能を含んだコードを受け付けます。 +JDK 5 Ƴ줿Τ¾θ쵡ǽޤɤդޤ .TP 3 5 -1.5 と同義です。 +1.5 ƱǤ .TP 3 1.6 -これがデフォルト値です。Java SE 6 では言語に対する変更は導入されませんでしたが、ソースファイル内のエンコーディングエラーが、以前のような「警告」ではなく、「エラー」として報告されるようになりました。 +줬ǥեͤǤJava SE 6 ǤϸФѹƳޤǤեΥ󥳡ǥ󥰥顼Τ褦ʡַٹפǤϤʤ֥顼פȤ𤵤褦ˤʤޤ .TP 3 6 -1.6 と同義です。 +1.6 ƱǤ +.TP 3 +1.7 +JDK 7 Ƴ줿ǽޤॳɤդޤ +.TP 3 +7 +1.7 ƱǤ .RE .TP 3 \-sourcepath sourcepath -クラスまたはインタフェースの定義を検索するソースコードパスを指定します。ユーザークラスパスと同様に、ソースパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ソースパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。パッケージを使っている場合は、ディレクトリまたはアーカイブ内のローカルパス名がパッケージ名を反映していなければなりません。 +饹ޤϥ󥿥ե򸡺륽ɥѥꤷޤ桼饹ѥƱͤˡѥʣΥȥϥ (\f3:\fP) ǶڤޤѥΥȥˤϡǥ쥯ȥꡢJAR ֡ޤ ZIP ֤ǤޤѥåȤäƤϡǥ쥯ȥޤϥΥѥ̾ѥå̾ȿǤƤʤФʤޤ .LP -\f3注:\fP\ クラスパスからクラスだけでなくそのソースも見つかった場合、そのクラスは自動再コンパイルの対象になることがあります。「型の検索」を参照してください。 +\f3:\fP\ 饹ѥ饯饹ǤʤΥ⸫Ĥä硢Υ饹ϼưƥѥоݤˤʤ뤳Ȥޤַθפ򻲾ȤƤ .TP 3 \-verbose -詳細な出力を表示します。ロードされるクラスおよびコンパイルされるソースファイルごとの情報が出力されます。 +ܺ٤ʽϤɽޤɤ륯饹ӥѥ뤵륽ե뤴Ȥξ󤬽Ϥޤ +.TP 3 +\-version +СϤޤ +.TP 3 +\-Werror +ٹȯ˥ѥλޤ .TP 3 \-X -非標準オプションに関する情報を表示して終了します。 +ɸ४ץ˴ؤɽƽλޤ .RE .LP -.RE .SS -クロスコンパイルオプション -.LP -.RS 3 - +ѥ륪ץ .LP .LP -デフォルトでは、クラスのコンパイルは、\f3javac\fP が添付されているプラットフォームのブートストラップクラスおよび拡張機能クラスに対して行われます。ただし、\f3javac\fP は、異なる Java プラットフォームに実装されたブートストラップクラスおよび拡張機能クラスに対してコンパイルを行う「クロスコンパイル」もサポートしています。クロスコンパイルを行う場合は、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使うことが重要です。 このあとの「クロスコンパイルの例」を参照してください。 +ǥեȤǤϡ饹Υѥϡ\f3javac\fP źդƤץåȥեΥ֡ȥȥåץ饹ӳĥǽ饹ФƹԤޤ\f3javac\fP ϡۤʤ Java ץåȥե˼줿֡ȥȥåץ饹ӳĥǽ饹ФƥѥԤ֥ѥפ⥵ݡȤƤޤѥԤϡ\f3\-bootclasspath\fP \f3\-extdirs\fP ȤȤפǤΤȤΡ֥ѥפ򻲾ȤƤ .LP .RS 3 .TP 3 \-target version -指定されたバージョンの VM をターゲットにしたクラスファイルを生成します。このクラスファイルは、指定されたターゲット以降のバージョンでは動作しますが、それより前のバージョンの VM では動作しません。有効なターゲットは、\f31.1\fP、\f31.2\fP、\f31.3\fP、\f31.4\fP、\f31.5\fP (\f35\fP も可)、および \f31.6\fP (\f36\fP も可) です。 +ꤵ줿С VM 򥿡åȤˤ饹եޤΥ饹եϡꤵ줿åȰʹߤΥСǤưޤΥС VM ǤưޤͭʥåȤϡ\f31.1\fP\f31.2\fP\f31.3\fP\f31.4\fP\f31.5\fP (\f35\fP )\f31.6\fP (\f36\fP ) \f31.7\fP (\f37\fP ) Ǥ .LP -\f3\-target\fP のデフォルトは、次のように \f3\-source\fP の値によって決まります。 +\f3\-target\fP ΥǥեȤϡΤ褦 \f3\-source\fP ͤˤäƷޤޤ .RS 3 .TP 2 o -\-source が\f3指定されなかった\fP場合、\-target の値は \f31.6\fP になります。 +\-source \f3ꤵʤä\fP硢\-target ͤ \f31.7\fP ˤʤޤ .TP 2 o -\-source が\f31.2\fP の場合、\-target の値は \f31.4\fP になります。 +\-source \f31.2\fP ξ硢\-target ͤ \f31.4\fP ˤʤޤ .TP 2 o -\-source が\f31.3\fP の場合、\-target の値は \f31.4\fP になります。 +\-source \f31.3\fP ξ硢\-target ͤ \f31.4\fP ˤʤޤ .TP 2 o -\-source が\f3それ以外の値の場合はすべて\fP、\\\-target の値は \f3\-source\fP の値になります。 +\-source \f3ʳͤξϤ٤\fP\f3\\\-target\fP ͤ \f3\-source\fP ͤˤʤޤ .RE .TP 3 \-bootclasspath bootclasspath -指定された一連のブートクラスに対してクロスコンパイルを行います。ユーザークラスパスと同様に、ブートクラスパスの複数のエントリはコロン (\f3:\fP) で区切ります。 ブートクラスパスのエントリには、ディレクトリ、JAR アーカイブ、または ZIP アーカイブを指定できます。 -.TP 3 -\-extdirs directories -指定された拡張機能ディレクトリに対してクロスコンパイルを行います。\f2directories\fP には、コロンで区切ったディレクトリのリストを指定します。指定したディレクトリ内の各 JAR アーカイブから、クラスファイルが検索されます。 +ꤵ줿ϢΥ֡ȥ饹ФƥѥԤޤ桼饹ѥƱͤˡ֡ȥ饹ѥʣΥȥϥ (\f3:\fP) Ƕڤޤ֡ȥ饹ѥΥȥˤϡǥ쥯ȥꡢJAR ֡ޤ ZIP ֤Ǥޤ .RE .LP -.RE .SS -非標準オプション -.LP -.RS 3 - +ɸ४ץ .LP .RS 3 .TP 3 \-Xbootclasspath/p:path -ブートストラップクラスパスの前に追加します。 +֡ȥȥåץ饹ѥɲäޤ .TP 3 \-Xbootclasspath/a:path -ブートストラップクラスパスの後ろに追加します。 +֡ȥȥåץ饹ѥθɲäޤ .TP 3 \-Xbootclasspath/:path -ブートストラップクラスファイルの位置をオーバーライドします。 +֡ȥȥåץ饹եΰ֤򥪡С饤ɤޤ .TP 3 \-Xlint -推奨されるすべての警告を有効にします。このリリースでは、利用可能なすべての警告が推奨されています。 +侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ +.TP 3 +\-Xlint:all +侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ .TP 3 \-Xlint:none -Java 言語仕様では指定されていないすべての警告を無効にします。 +Java ͤǤϻꤵƤʤ٤Ƥηٹ̵ˤޤ +.TP 3 +\-Xlint:name +ٹ \f2name\fP ͭˤޤΥץͭˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ .TP 3 \-Xlint:\-name -警告 \f2name\fP を無効にします。 ただし、\f2name\fP は、\f3\-Xlint:\fP\f2name\fP に使用できる警告名のいずれかになります。 この警告名は次のとおりです。 +ٹ \f2name\fP ̵ˤޤΥץ̵ˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ .TP 3 -\-Xlint:unchecked -Java 言語仕様で指定されている未検査変換警告の詳細を示します。 +\-Xmaxerrs number +륨顼κꤷޤ .TP 3 -\-Xlint:path -存在しないパス (classpath、sourcepath など) ディレクトリについて警告します。 +\-Xmaxwarns number +ٹκꤷޤ .TP 3 -\-Xlint:serial -\f2serialVersionUID\fP 定義が直列化可能クラスにないことを警告します。 +\-Xstdout filename +ѥΥå򡢻ꤵ줿եޤǥեȤǤϡѥΥå \f2System.err\fP ޤ .TP 3 -\-Xlint:finally -正常に完了できない \f2finally\fP 節について警告します。 +\-Xprefer:{newer,source} +뷿Фƥեȥ饹եξĤä硢ΤɤΥեɤ߼٤ꤷޤ (ַθפ򻲾)\f2\-Xprefer:newer\fP Ѥ硢뷿Ф륽եȥ饹եοɤ߼ޤ (ǥե)\f2\-Xprefer:source\fP ץѤ硢ե뤬ɤ߼ޤSOURCE ¸ݥꥷȤä줿ǤդץåǤ褦ˤϡ\f2\-Xprefer:source\fP \f2ѤƤ\fP .TP 3 -\-Xlint:fallthrough -fall\-through ケースの \f2switch\fP ブロックをチェックし、検出されたものに対して警告メッセージを表示します。Fall\-through ケースは、\f2switch\fP ブロック内の最後のケースを除くケースです。 このコードには \f2break\fP 文は含まれません。 コードの実行をそのケースから次のケースへ移動します。たとえば、この \f2switch\fP ブロック内の \f2case 1\fP ラベルに続くコードは、\f2break\fP 文で終わっていません。 -.RS 3 +\-Xpkginfo:{always,legacy,nonempty} +ѥåեνꤷޤ +.TP 3 +\-Xprint +ꤵ줿ΥƥɽǥХåŪǽϤޤѥΤɤ¹Ԥޤ󡣽Ϸѹǽޤ +.TP 3 +\-XprintProcessorInfo +ΥץåꤵƤ˴ؤϤޤ +.TP 3 +\-XprintRounds +󤪤Ӹ³饦ɤ˴ؤϤޤ +.RE .LP +.SS +\-Xlint ץȤäͭޤ̵ˤǤٹ +.LP +.LP +\f3\-Xlint:\fP\f2name\fP ץȤäƷٹ \f2name\fP ͭˤޤ\f2name\fP ϼηٹ̾Τ줫ˤʤޤƱͤˡ\f3\-Xlint:\-\fP\f2name\fP ץȤäƷٹ \f2name\fP ̵ˤǤޤ +.LP +.RS 3 +.TP 3 +cast +פǾĹʥ㥹ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +String s = (String)"Hello!" +.fl +\fP +.fi +.TP 3 +classfile +饹եƤ˴ϢˤĤƷٹ𤷤ޤ +.TP 3 +deprecation +侩ܤλѤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + java.util.Date myDate = new java.util.Date(); +.fl + int currentDay = myDate.getDay(); +.fl +\fP +.fi +.LP +᥽å \f2java.util.Date.getDay\fP JDK 1.1 ʹߤϿ侩Ƥޤ +.TP 3 +dep\-ann +\f2@deprecated\fP Javadoc ȤǥɥȲƤ뤬 \f2@Deprecated\fP ᤬դƤʤܤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + /** +.fl + * @deprecated As of Java SE 7, replaced by {@link #newMethod()} +.fl + */ +.fl + +.fl + public static void deprecatedMethood() { } +.fl + +.fl + public static void newMethod() { } +.fl +\fP +.fi +.TP 3 +divzero + 0 ǽ뤳ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + int divideByZero = 42 / 0; +.fl +\fP +.fi +.TP 3 +empty +\f2if\fP ʸʹߤʸǤ뤳ȤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +class E { +.fl + void m() { +.fl + if (true) ; +.fl + } +.fl +} +.fl +\fP +.fi +.TP 3 +fallthrough +fall\-through \f2switch\fP ֥ååФ줿ΤФƷٹåɽޤFall\-through ϡ\f2switch\fP ֥åκǸΥǤΥɤˤ \f2break\fP ʸϴޤޤޤ󡣥ɤμ¹Ԥ򤽤Υ鼡ΥذưޤȤС \f2switch\fP ֥å \f2case 1\fP ٥³ɤϡ\f2break\fP ʸǽäƤޤ .nf \f3 .fl @@ -347,7 +445,7 @@ case 1: .fl System.out.println("1"); .fl - // No break; statement here. + // No break statement here. .fl case 2: .fl @@ -355,96 +453,375 @@ case 2: .fl } .fl - +\fP +.fi +.LP +ΥɤΥѥ \f2\-Xlint:fallthrough\fP ե饰ѤƤ硢ѥ ιֹȤȤˡfall\-through βǽ뤳Ȥ򼨤ٹȯԤޤ +.TP 3 +finally +˴λǤʤ \f2finally\fP ˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl + public static int m() { +.fl + try { +.fl + throw new NullPointerException(); +.fl + } catch (NullPointerException e) { +.fl + System.err.println("Caught NullPointerException."); +.fl + return 1; +.fl + } finally { +.fl + return 0; +.fl + } +.fl + } .fl \fP .fi -.RE -このコードのコンパイル時に \f2\-Xlint:fallthrough\fP フラグが使用されていた場合、コンパイラは 当該ケースの行番号とともに、fall\-through ケースの可能性があることを示す警告を発行します。 +.LP +Ǥϡѥ \f2finally\fP ֥å˴ؤٹޤΥ᥽åɤƤӽФȡ 1 ǤϤʤ \f20\fP \f2֤ޤ\fP \f2finally\fP ֥åϡ \f2try\fP ֥åλɬ¹ԤޤǤϡ椬 \f2catch\fP ˰ܤ줿硢᥽åɤϽλޤ \f2finally\fP ֥åϼ¹Ԥɬפ뤿ᡢ椬ǤˤΥ᥽åɤγ˰ܤƤƤ⡢Υ֥åϼ¹Ԥޤ .TP 3 -\-Xmaxerrs number -印刷するエラーの最大数を設定します。 +options +ޥɹԥץλѤ˴ؤˤĤƷٹ𤷤ޤμηٹˤĤƤϡ֥ѥפ򻲾ȤƤ .TP 3 -\-Xmaxwarns number -印刷する警告の最大数を設定します。 +overrides +᥽åɤΥС饤ɤ˴ؤˤĤƷٹ𤷤ޤȤС 2 ĤΥ饹Ȥޤ +.nf +\f3 +.fl +public class ClassWithVarargsMethod { +.fl + void varargsMethod(String... s) { } +.fl +} +.fl +\fP +.fi +.nf +\f3 +.fl +public class ClassWithOverridingMethod extends ClassWithVarargsMethod { +.fl + @Override +.fl + void varargsMethod(String[] s) { } +.fl +} +.fl +\fP +.fi +.LP +ѥϼΤ褦ʷٹޤ +.nf +\f3 +.fl +warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...' +.fl +\fP +.fi +.LP +ѥϡvarargs ᥽åɤ򸡽Фȡvarargs βѥ᡼Ѵޤ᥽å \f2ClassWithVarargsMethod.varargsMethod\fP Ǥϡѥ varargs βѥ᡼ \f2String... s\fP 򲾥ѥ᡼ \f2String[] s\fP ѴޤString[] s ϡ᥽å \f2ClassWithOverridingMethod.varargsMethod\fP βѥ᡼бǤη̡Ǥϥѥ뤬Ԥޤ .TP 3 -\-Xstdout filename -コンパイラのメッセージを、指定されたファイルに送ります。デフォルトでは、コンパイラのメッセージは \f2System.err\fP に送られます。 +path +ޥɹԤǤ̵ʥѥǤ¸ߤʤѥǥ쥯ȥˤĤƷٹ𤷤ޤ (饹ѥѥʤɤΥѥϢ)Τ褦ʷٹ \f2@SuppressWarnings\fP 뤳ȤϤǤޤ󡣼򼨤ޤ +.nf +\f3 +.fl +javac \-Xlint:path \-classpath /nonexistentpath Example.java +.fl +\fP +.fi .TP 3 -\-Xprefer:{newer,source} -ある型に対してソースファイルとクラスファイルの両方が見つかった場合、そのどちらのファイルを読み取るべきかを指定します (「型の検索」を参照)。\f2\-Xprefer:newer\fP を使用した場合、ある型に対するソースファイルとクラスファイルの新しい方が読み取られます (デフォルト)。\f2\-Xprefer:source\fPオプションを使用した場合、ソースファイルが読み取られます。\f2SOURCE\fP の保存ポリシーを使って宣言された注釈に任意の注釈プロセッサがアクセスできるようにしたい場合は、\f2\-Xprefer:source\fPを使用してください。 +processing +˴ؤˤĤƷٹ𤷤ޤѥ餬ηٹΤϡޤ९饹ȤˡѤƤץåǤη㳰ǤʤǤñץå򼡤˼ޤ +.LP +\f3ե \fP\f4AnnoProc.java\fP: +.nf +\f3 +.fl +import java.util.*; +.fl +import javax.annotation.processing.*; +.fl +import javax.lang.model.*; +.fl +import javax.lang.model.element.*; +.fl + +.fl +@SupportedAnnotationTypes("NotAnno") +.fl +public class AnnoProc extends AbstractProcessor { +.fl + public boolean process(Set<? extends TypeElement> elems, RoundEnvironment renv) { +.fl + return true; +.fl + } +.fl + +.fl + public SourceVersion getSupportedSourceVersion() { +.fl + return SourceVersion.latest(); +.fl + } +.fl +} +.fl +\fP +.fi +.LP +\f3ե \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP +.nf +\f3 +.fl +@interface Anno { } +.fl + +.fl +@Anno +.fl +class AnnosWithoutProcessors { } +.fl +\fP +.fi +.LP +Υޥɤϡץå \f2AnnoProc\fP 򥳥ѥ뤷ץå򥽡ե \f2AnnosWithoutProcessors.java\fP ФƼ¹Ԥޤ +.nf +\f3 +.fl +% javac AnnoProc.java +.fl +% javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java +.fl +\fP +.fi +.LP +ѥ餬ե \f2AnnosWithoutProcessors.java\fP Фץå¹Ԥȡηٹޤ +.nf +\f3 +.fl +warning: [processing] No processor claimed any of these annotations: Anno +.fl +\fP +.fi +.LP +褹ˤϡ饹 \f2AnnosWithoutProcessors\fP ӻѤ̾ \f2Anno\fP \f2NotAnno\fP ѹޤ .TP 3 -\-Xprint -指定された型のテキスト表現をデバッグ目的で出力します。 注釈処理、コンパイルのどちらも実行しません。出力形式は変更される可能性があります。 +rawtypes +raw Ф̤ˤĤƷٹ𤷤ޤäˤΥץϡʤѥ᡼줿Ѥ桼ФƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +.LP +ʸǤϡ \f2rawtypes\fP ٹޤ +.nf +\f3 +.fl +void countElements(List<?> l) { ... } +.fl +\fP +.fi +.LP +\f2List\fP raw Ǥ \f2List<?>\fP ϥХɷΥ磻ɥɤΥѥ᡼줿Ǥ \f2List\fP ϥѥ᡼줿󥿥եʤΤǡɬηꤹɬפޤǤϡ \f2List\fP βϥХɷΥ磻ɥ (\f2?\fP) ȤäƤβѥ᡼ȤƻꤵޤĤޤꡢ \f2countElements\fP ᥽åɤ \f2List\fP 󥿥եΤɤΥ󥹥󥹲դ뤳ȤǤޤ .TP 3 -\-XprintProcessorInfo -ある特定のプロセッサが処理を依頼されている注釈に関する情報を出力します。 +serial +ľ󲽲ǽ饹 \f2serialVersionUID\fP ʤȤٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +public class PersistentTime implements Serializable +.fl +{ +.fl + private Date time; +.fl + +.fl + public PersistentTime() { +.fl + time = Calendar.getInstance().getTime(); +.fl + } +.fl + +.fl + public Date getTime() { +.fl + return time; +.fl + } +.fl +} +.fl +\fP +.fi +.LP +ѥϼηٹޤ +.nf +\f3 +.fl +warning: [serial] serializable class PersistentTime has no definition of serialVersionUID +.fl +\fP +.fi +.LP +ľ󲽲ǽ饹 \f2serialVersionUID\fP Ȥ̾ΥեɤŪʤ硢ľ󲽥󥿥ϡJava ֥ľ󲽻͡פƤ褦ˡ饹Τޤޤ¦̤˴Ťơ饹 \f2serialVersionUID\fP Υǥեͤ׻ޤ٤Ƥľ󲽲ǽ饹 \f2serialVersionUID\fP ͤŪ뤳Ȥ򶯤ᤷޤϡ \f2serialVersionUID\fP ͤ׻ǥեȤΥץѥμˤäưۤʤǽΤ륯饹ξܺ٤ˤƱƶ䤹ľͽʤ \f2InvalidClassExceptions\fP ȯǽ뤿ǤäơJava ѥμۤʤäƤ \f2serialVersionUID\fP ͤΰݤˤˤϡľ󲽲ǽ饹 \f2serialVersionUID\fP ͤŪɬפޤ .TP 3 -\-XprintRounds -初回および後続の注釈処理ラウンドに関する情報を出力します。 +static +static λѤ˴ؤˤĤƷٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +class XLintStatic { +.fl + static void m1() { } +.fl + void m2() { this.m1(); } +.fl +} +.fl +\fP +.fi +.LP +ѥϼηٹޤ +.nf +\f3 +.fl +warning: [static] static method should be qualified by type name, XLintStatic, instead of by an expression +.fl +\fP +.fi +.LP +褹뤿ˡΤ褦 static ᥽å \f2m1\fP ƤӽФȤǤޤ +.nf +\f3 +.fl +XLintStatic.m1(); +.fl +\fP +.fi +.LP +뤤ϡ \f2static\fP ɤ᥽å \f2m1\fP 뤳ȤǤޤ +.TP 3 +try +try\-with\-resources ʸޤࡢ \f2try\fP ֥åλѤ˴ؤˤĤƷٹ𤷤ޤȤСtry ʸ줿꥽ \f2ac\fP Ѥʤˡ \f2ʸФƷٹ\fP ޤ +.nf +\f3 +.fl +try ( AutoCloseable ac = getResource() ) { +.fl + // do nothing +.fl +} +.fl +\fP +.fi +.TP 3 +unchecked +Java ͤǻꤵƤ̤Ѵٹξܺ٤򼨤ޤ򼨤ޤ +.nf +\f3 +.fl + List l = new ArrayList<Number>(); +.fl + List<String> ls = l; // unchecked warning +.fl +\fP +.fi +.LP +ξõˡ \f2ArrayList<Number>\fP \f2List<String>\fP Ϥ줾 \f2ArrayList\fP \f2List\fP ˤʤޤ +.LP +ѿ \f2ls\fP ˤϥѥ᡼줿 \f2List<String>\fP ꤵƤޤl ˤäƻȤ \f2List\fP \f2\fP \f2ls\fP ȡѥ̤ٹޤѥ \f2l\fP \f2List<String>\fP 򻲾Ȥ뤫ɤ򥳥ѥȽǤǤޤ󡣤ޤJVM ¹ԻˤȽǤǤʤȤǧƤޤl List<String> 򻲾Ȥޤ󡣤η̡ҡױȯޤ +.LP +ܤȡҡױ֤ȯΤϡ \f2List\fP ֥ \f2l\fP ( static \f2List<Number>\fP) ̤ \f2List\fP ֥ \f2ls\fP (ۤʤ static \f2List<String>\fP ) ǤѥǤϤ̤˵ĤƤޤΤ򥵥ݡȤʤ Java SE ΥСȤβ̸ߴݤ뤿ˡĤɬפޤõΤˡ \f2List<Number>\fP \f2List<String>\fP \f2List\fP ˤʤޤη̡ѥϥ֥ \f2l\fP ( \f2List\fP Ȥ raw ) 򥪥֥ \f2ls\fP뤳ȤĤޤ +.TP 3 +varargs +Ѱ (varargs) ᥽åɡäݲǽޤΤλѤǤʤȤٹ𤷤ޤ򼨤ޤ +.nf +\f3 +.fl +public class ArrayBuilder { +.fl + public static <T> void addToList (List<T> listArg, T... elements) { +.fl + for (T x : elements) { +.fl + listArg.add(x); +.fl + } +.fl + } +.fl +} +.fl +\fP +.fi +.LP +ѥϡ᥽å \f2ArrayBuilder.addToList\fP ˴ؤ뼡ηٹޤ +.nf +\f3 +.fl +warning: [varargs] Possible heap pollution from parameterized vararg type T +.fl +\fP +.fi +.LP +ѥϡvarargs ᥽åɤ򸡽Фȡvarargs βѥ᡼ѴޤJava ץߥ󥰸Ǥϡѥ᡼줿κĤƤޤ󡣥᥽å \f2ArrayBuilder.addToList\fP Ǥϡѥ varargs βѥ᡼ \f2T... elements\fP 򲾥ѥ᡼ \f2T[] elements\fP() ѴޤõΤˡѥ varargs βѥ᡼ \f2Object[] elements\fP Ѵޤη̡ҡױȯǽޤ .RE .LP -.RE -.SS -\-J オプション -.LP -.RS 3 - -.LP -.RS 3 -.TP 3 -\-Joption -\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。このオプションは \f3\-X\fP で始まっていませんが、\f3javac\fP の「標準オプション」ではありません。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 -.LP -\f3注:\fP \ \f3CLASSPATH\fP、\f3\-classpath\fP、\f3\-bootclasspath\fP、および \f3\-extdirs\fP は、\f3javac\fP を実行するために使うクラスを指定するものではありません。このような方法でコンパイラの実装を操作することは、通常は無意味であり、常に危険を伴います。このような方法を使う必要がある場合は、\f3\-J\fP オプションを使って、必要なオプションを背後の \f3java\fP 起動ツールに渡してください。 -.RE - -.LP -.RE -.SH "コマンド行引数ファイル" -.LP - +.SH "ޥɹ԰ե" .LP .LP -\f2javac\fP のコマンド行を短くしたり簡潔にしたりするために、\f2javac\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) を含む 1 つ以上のファイルを指定することができます。この方法を使うと、どのオペレーティングシステム上でも、任意の長さの javac コマンドを作成できます。 +javac ΥޥɹԤûʷˤꤹ뤿ˡ \f2javac\fP ޥɤФ ( \f2\-J\fP ץ) ޤ 1 İʾΥեꤹ뤳ȤǤޤˡȤȡɤΥڥ졼ƥ󥰥ƥǤ⡢ǤդĹ javac ޥɤǤޤ .LP .LP -引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。 +եˤϡjavac Υץȥե̾ͳȤ߹碌ƵҤǤޤեγưϡڡޤϲԤǶڤޤե̾˶򤬴ޤޤƤϡΥե̾ΤŰǰϤߤޤ .LP .LP -引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 +եΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣰եΥե̾ꥹȤǤϡ磻ɥ (*) ϻѤǤޤ󡣤ȤС \f2*.java\fP ȤϻǤޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ \f2\-J\fP ץ⥵ݡȤƤޤ󡣤ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP .LP -javac を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javac は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 +javac ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤjavac ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .LP .SS -引数ファイルを 1 つ指定する例 +ե 1 Ļꤹ .LP .LP -\f2argfile\fP という名前の引数ファイルにすべての javac 引数を格納する場合は、次のように指定します。 +\f2argfileפȤ̾ΰե\fP٤Ƥ javac ǼϡΤ褦˻ꤷޤ .LP .nf \f3 .fl - % \fP\f3javac @argfile\fP -.fl - +% \fP\f3javac @argfile\fP .fl .fi .LP .LP -この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。 +ΰեˤϡǼƤ 2 ĤΥեƤξȤ뤳ȤǤޤ .LP .SS -引数ファイルを 2 つ指定する例 +ե 2 Ļꤹ .LP .LP -たとえば、javac オプション用に 1 ファイル、ソースファイル名用に 1 ファイルというように、2 つの引数ファイルを作成することもできます。なお、このあとのリストでは、行の継続文字を使用していません。 +ȤСjavac ץѤ 1 ե롢ե̾Ѥ 1 եȤ褦ˡ2 Ĥΰե뤳ȤǤޤʤΤȤΥꥹȤǤϡԤη³ʸѤƤޤ .LP .LP -以下の内容を含む \f2options\fP という名前のファイルを作成します。 +ʲƤޤ \f2options\fP Ȥեޤ .LP .nf \f3 @@ -455,14 +832,14 @@ javac を実行するときに、各引数ファイルのパスとファイル .fl \-sourcepath /java/pubs/ws/1.3/src/share/classes .fl - + .fl \fP .fi .LP .LP -以下の内容を含む \f2classes\fP という名前のファイルを作成します。 +ʲƤޤ \f2classes\fP Ȥեޤ .LP .nf \f3 @@ -473,120 +850,104 @@ javac を実行するときに、各引数ファイルのパスとファイル .fl MyClass3.java .fl - + .fl \fP .fi .LP .LP -次のコマンドを使用して \f3javac\fP を実行します。 +ΥޥɤѤ \f3javac\fP ¹Ԥޤ .LP .nf \f3 .fl % \fP\f3javac @options @classes\fP .fl - + .fl .fi .LP .SS -パス付きの引数ファイルの例 +ѥդΰե .LP .LP -引数ファイルには、パスを指定できます。 ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。 つまり、下の例の場合は、\f2path1\fP や \f2path2\fP から見た相対パスではありません。 +եˤϡѥǤޤΥե˻ꤵ줿ե̾ϡߤκȥǥ쥯ȥ꤫鸫ХѥˤʤޤĤޤꡢξϡ \f2path1\fP \f2path2\fP 鸫ХѥǤϤޤ .LP .nf \f3 .fl - % \fP\f3javac @path1/options @path2/classes\fP -.fl - +% \fP\f3javac @path1/options @path2/classes\fP .fl .fi .LP -.SH "注釈処理" -.LP - +.SH "" .LP .LP -\f3javac\fP が注釈処理を直接サポートしているため、独立した注釈処理ツールである \f3apt\fP を使用する必要がなくなりました。 +\f3javac\fP ľܥݡȤƤ뤿ᡢΩġǤ \f3apt\fP Ѥɬפʤʤޤ .LP .LP -注釈処理の API は、\f2javax.annotation.processing\fP および \f2javax.lang.model\fP パッケージとそのサブパッケージ内に定義されています。 + API ϡ \f2javax.annotation.processing\fP \f2javax.lang.model\fP ѥåȤΥ֥ѥåƤޤ .LP .SS -注釈処理の概要 +γ .LP .LP -\f3\-proc:none\fP オプションによって注釈処理が無効化されないかぎり、コンパイラは使用可能なすべての注釈プロセッサを検索します。検索パスは \f3\-processorpath\fP オプションを使って指定できます。 検索パスを指定しなかった場合は、ユーザークラスパスが使用されます。プロセッサの検索は、検索パス上の -.br -\f2\ META\-INF/services/javax.annotation.processing.Processor\fP -.br -という名前のサービスプロバイダ構成ファイルに基づいて行われます。このようなファイルには、使用するすべての注釈プロセッサの名前を、1 行に 1 つずつ含めてください。また、別の方法として、\f3\-processor\fP オプションを使ってプロセッサを明示的に指定することもできます。 +\f3\-proc:none\fP ץˤä̵ʤꡢѥϻѲǽʤ٤Ƥץå򸡺ޤѥ \f3\-processorpath\fP ץȤäƻǤޤѥꤷʤäϡ桼饹ѥѤޤץåθϡѥ \f2META\-INF/services/javax.annotation.processing.Processor\fP Ȥ̾ΥӥץХե˴ŤƹԤޤΤ褦ʥեˤϡѤ뤹٤Ƥץå̾1 Ԥ 1 ĤĴޤƤޤ̤ˡȤơ\f3\-processor\fP ץȤäƥץåŪ˻ꤹ뤳ȤǤޤ .LP .LP -コンパイラは、コマンド行のソースファイルやクラスを走査することで、どのような注釈が存在しているかを確認し終わると、プロセッサに対して問い合わせを行い、それらのプロセッサがの注釈を処理できるのかを確認します。一致するものが見つかった場合、そのプロセッサが呼び出されます。各プロセッサは、自身が処理する注釈を「要求」できます。 その場合、それらの注釈に対する別のプロセッサを見つける試みは行われません。すべての注釈が要求されてしまうと、コンパイラはそれ以上プロセッサの検索を行いません。 +ѥϡޥɹԤΥե䥯饹뤳ȤǡɤΤ褦᤬¸ߤƤ뤫ǧȡץåФ䤤碌ԤΥץåɤǤΤǧޤפΤĤä硢ΥץåƤӽФޤƥץåϡȤ׵פǤޤξ硢Ф̤Υץå򸫤ĤߤϹԤޤ󡣤٤Ƥ᤬׵ᤵƤޤȡѥϤʾץåθԤޤ .LP .LP -いずれかのプロセッサによって新しいソースファイルが生成されると、注釈処理の 2 回目のラウンドが開始されます。新しく生成されたすべてのソースファイルが走査され、前回と同様に注釈が処理されます。以前のラウンドで呼び出されたプロセッサはすべて、後続のどのラウンドでも呼び出されます。これが、新しいソースファイルが生成されなくなるまで続きます。 +줫Υץåˤäƿե뤬ȡ 2 ܤΥ饦ɤϤޤ줿٤ƤΥե뤬졢Ʊͤ᤬ޤΥ饦ɤǸƤӽФ줿ץåϤ٤ơ³ΤɤΥ饦ɤǤƤӽФޤ줬ե뤬ʤʤޤ³ޤ .LP .LP -あるラウンドで新しいソースファイルが生成されなかった場合、注釈プロセッサがあと 1 回だけ呼び出され、必要な処理を実行する機会が与えられます。 最後に、\f3\-proc:only\fP オプションが使用されないかぎり、コンパイラは、元のソースファイルと生成されたすべてのソースファイルをコンパイルします。 +饦ɤǿե뤬ʤä硢ץå 1 ƤӽФ졢ɬפʽ¹Ԥ뵡ͿޤǸˡ\f3\-proc:only\fP ץ󤬻ѤʤꡢѥϡΥե줿٤ƤΥե򥳥ѥ뤷ޤ .LP .SS -暗黙的にロードされたソースファイル +Ū˥ɤ줿ե .LP .LP -コンパイラは、一連のソースファイルをコンパイルする際に、別のソースファイルを暗黙的にロードしなければならない場合があります (「型の検索」を参照)。そのようなファイルは、現時点では注釈処理の対象になりません。デフォルトでは、注釈処理が実行され、かつ暗黙的にロードされたソースファイルが 1 つでもコンパイルされた場合にコンパイラは警告を発行します。この警告を抑制する方法については、\-implicit オプションを参照してください。 +ѥϡϢΥե򥳥ѥ뤹ݤˡ̤ΥեŪ˥ɤ뤳Ȥɬפʾ礬ޤ (ַθפ򻲾)Τ褦ʥեϡǤоݤˤʤޤ󡣥ǥեȤǤϡ¹Ԥ졢İŪ˥ɤ줿ե뤬 1 ĤǤ⥳ѥ뤵줿˥ѥϷٹȯԤޤηٹˡˤĤƤϡ\-implicit ץ򻲾ȤƤ .LP -.SH "型の検索" -.LP - +.SH "θ" .LP .LP -ソースファイルをコンパイルする場合、コマンド行で指定したソースファイルに型の定義が見つからないとき、コンパイラは通常、その型に関する情報を必要とします。コンパイラは、ソースファイルで使われているクラスまたはインタフェース、拡張されているクラスまたはインタフェース、あるいは実装されているクラスまたはインタフェースすべてについて、型の情報を必要とします。これには、ソースファイルで明示的には言及されていなくても、継承を通じて情報を提供するクラスとインタフェースも含まれます。 +ե򥳥ѥ뤹硢ޥɹԤǻꤷե˷ĤʤȤѥ̾η˴ؤɬפȤޤѥϡեǻȤƤ륯饹ޤϥ󥿥եĥƤ륯饹ޤϥ󥿥ե뤤ϼƤ륯饹ޤϥ󥿥ե٤ƤˤĤơξɬפȤޤˤϡեŪˤϸڤƤʤƤ⡢Ѿ̤ƾ󶡤륯饹ȥ󥿥եޤޤޤ .LP .LP -たとえば、\f3java.applet.Applet\fP をサブクラスにした場合、\f3アプレットの\fP祖先のクラス(\f3java.awt.Panel\fP、\f3java.awt.Container\fP、\f3java.awt.Component\fP、\f3java.lang.Object\fP)を使用していることになります。 +ȤС\f3java.applet.Applet\fP 򥵥֥饹ˤ硢\f3ץåȤ\fPΥ饹\f3java.awt.Panel\fP\f3java.awt.Container\fP\f3java.awt.Component\fP\f3java.lang.Object\fPˤѤƤ뤳Ȥˤʤޤ .LP .LP -コンパイラは、型の情報が必要になると、その型を定義しているソースファイルまたはクラスファイルを探します。まず、ブートストラップクラスと拡張機能クラスを検索し、続いてユーザークラスパス (デフォルトではカレントディレクトリ) を検索します。ユーザークラスパスは、\f3CLASSPATH\fP 環境変数を設定して定義するか、または \f3\-classpath\fP コマンド行オプションを使って設定します。詳細は、 -.na -\f2「クラスパスの設定」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照してください。 +ѥϡξɬפˤʤȡηƤ륽եޤϥ饹եõޤޤ֡ȥȥåץ饹ȳĥǽ饹򸡺³ƥ桼饹ѥ (ǥեȤǤϥȥǥ쥯ȥ) 򸡺ޤ桼饹ѥϡ\f3CLASSPATH\fP Ķѿꤷ뤫ޤ \f3\-classpath\fP ޥɹԥץȤäꤷޤܺ٤ϡ֥饹ѥפ򻲾ȤƤ .LP .LP -\-sourcepath オプションが指定されている場合、コンパイラは、指定されたパスからソースファイルを検索します。 それ以外の場合は、ユーザークラスパスからクラスファイルとソースファイルの両方を検索します。 +\-sourcepath ץ󤬻ꤵƤ硢ѥϡꤵ줿ѥ饽ե򸡺ޤʳξϡ桼饹ѥ饯饹եȥեξ򸡺ޤ .LP .LP -\f3\-bootclasspath\fP オプションと \f3\-extdirs\fP オプションを使うと、別のブートストラップクラスや拡張機能クラスを指定できます。 このあとの「クロスコンパイルオプション」を参照してください。 +\f3\-bootclasspath\fP ץ \f3\-extdirs\fP ץȤȡ̤Υ֡ȥȥåץ饹ĥǽ饹ǤޤΤȤΡ֥ѥ륪ץפ򻲾ȤƤ .LP .LP -型の検索に成功したときに得られる結果は、クラスファイル、ソースファイル、またはその両方である場合があります。両方が見つかった場合、そのどちらを使用すべきかを \-Xprefer オプションでコンパイラに指示できます。\f3newer\fP が指定された場合、コンパイラは 2 つのファイルの新しい方を使用します。\f3source\fP が指定された場合、コンパイラはソースファイルを使用します。デフォルトは \f3newer\fP です。 +θȤ̤ϡ饹ե롢ե롢ޤϤξǤ礬ޤξĤä硢ΤɤѤ٤ \-Xprefer ץǥѥ˻ؼǤޤ\f3newer\fP ꤵ줿硢ѥ 2 ĤΥեοѤޤ\f3source\fP ꤵ줿硢ѥϥեѤޤǥեȤ \f3newer\fP Ǥ .LP .LP -型の検索自体によって、または \f3\-Xprefer\fP が設定された結果として必要な型のソースファイルが見つかった場合、コンパイラはそのソースファイルを読み取り、必要な情報を取得します。さらに、コンパイラはデフォルトで、そのソースファイルのコンパイルも行います。\-implicit オプションを使えばその動作を指定できます。\f3none\fP を指定した場合、そのソースファイルのクラスファイルは生成されません。\f3class\fP を指定した場合、そのソースファイルのクラスファイルが生成されます。 +θΤˤäơޤ \f3\-Xprefer\fP ꤵ줿̤ȤɬפʷΥե뤬Ĥä硢ѥϤΥեɤ߼ꡢɬפʾޤˡѥϥǥեȤǡΥեΥѥԤޤ\-implicit ץȤФưǤޤ\f3none\fP ꤷ硢ΥեΥ饹եޤ\f3class\fP ꤷ硢ΥեΥ饹ե뤬ޤ .LP .LP -コンパイラは、注釈処理の完了後に、ある型情報の必要性を認識しない場合があります。その型情報があるソースファイル内に見つかり、かつ \f3\-implicit\fP オプションが指定されていない場合は、そのファイルが注釈処理の対象とならずにコンパイルされることを、コンパイラがユーザーに警告します。この警告を無効にするには、(そのファイルが注釈処理の対象となるように) そのファイルをコマンド行に指定するか、あるいはそのようなソースファイルに対してクラスファイルを生成すべきかどうかを \f3\-implicit\fP オプションを使って指定します。 +ѥϡδλˡ뷿ɬǧʤ礬ޤη󤬤륽ե˸Ĥꡢ \f3\-implicit\fP ץ󤬻ꤵƤʤϡΥե뤬оݤȤʤ餺˥ѥ뤵뤳Ȥ򡢥ѥ餬桼˷ٹ𤷤ޤηٹ̵ˤˤϡ(Υե뤬оݤȤʤ褦) Υե򥳥ޥɹԤ˻ꤹ뤫뤤ϤΤ褦ʥեФƥ饹ե٤ɤ \f3\-implicit\fP ץȤäƻꤷޤ .LP -.SH "プログラマティックインタフェース" -.LP - +.SH "ץޥƥå󥿥ե" .LP .LP -\f3javac\fP は、\f2javax.tools\fP パッケージ内のクラスとインタフェースによって定義される新しい Java Compiler API をサポートします。 +\f3javac\fP ϡ \f2javax.tools\fP ѥåΥ饹ȥ󥿥եˤä뿷 Java Compiler API 򥵥ݡȤޤ .LP .SS -例 + .LP .LP -コマンド行から指定された引数を使ってコンパイルを実行するには、次のようなコードを使用します。 +ޥɹԤꤵ줿Ȥäƥѥ¹ԤˤϡΤ褦ʥɤѤޤ .LP .nf \f3 @@ -594,30 +955,25 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathを参照 JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); .fl int rc = javac.run(null, null, null, args); -.fl - .fl \fP .fi .LP .LP -この場合、標準出力ストリームにすべての診断メッセージが書き出され、コマンド行から呼び出された \f3javac\fP が返すのと同じ終了コードが返されます。 +ξ硢ɸϥȥ꡼ˤ٤Ƥοǥå񤭽Ф졢ޥɹԤƤӽФ줿 \f3javac\fP ֤ΤƱλɤ֤ޤ .LP .LP -\f2javax.tools.JavaCompiler\fP インタフェース上のほかのメソッドを使えば、診断メッセージの処理やファイルの読み取り元/書き込み先の制御などを行えます。 +\f2javax.tools.JavaCompiler\fP 󥿥եΤۤΥ᥽åɤȤСǥåνեɤ߼긵/񤭹ʤɤԤޤ .LP .SS -旧式のインタフェース -.LP -.RS 3 - +켰Υ󥿥ե .LP .LP -\f3注:\fP \ この API は、下位互換性を確保するためだけに残されています。 新しいコードでは、必ず前述の Java Compiler API を使用してください。 +\f3:\fP API ϡ̸ߴݤ뤿˻ĤƤޤɤǤϡɬҤ Java Compiler API ѤƤ .LP .LP -\f2com.sun.tools.javac.Main\fP クラスには、プログラム内からコンパイラを呼び出すための static メソッドが 2 つ用意されています。 それらを次に示します。 +\f2com.sun.tools.javac.Main\fP 饹ˤϡץ⤫饳ѥƤӽФ static ᥽åɤ 2 ѰդƤޤ򼡤˼ޤ .LP .nf \f3 @@ -625,39 +981,30 @@ int rc = javac.run(null, null, null, args); public static int compile(String[] args); .fl public static int compile(String[] args, PrintWriter out); -.fl - .fl \fP .fi .LP .LP -\f2args\fP パラメータは、javac プログラムに通常渡される任意のコマンド行引数を表しています。 その概要については、前出の「形式」節を参照してください。 +\f2args\fP ѥ᡼ϡjavac ץ̾ϤǤդΥޥɹ԰ɽƤޤγפˤĤƤϡФΡַ򻲾ȤƤ .LP .LP -\f2out\fP パラメータは、コンパイラの診断メッセージの出力先を示します。 +\f2out\fP ѥ᡼ϡѥοǥåν򼨤ޤ .LP .LP -戻り値は、\f3javac\fP の終了値と同じです。 +ͤϡ\f3javac\fP νλͤƱǤ .LP .LP -名前が \f2com.sun.tools.javac\fP で始まるパッケージ (非公式には \f2com.sun.tools.javac\fP のサブパッケージとして知られる) に含まれる\f3その他の\fPクラスやメソッドは、どれも完全に内部用であり、いつでも変更される可能性があります。 +̾ \f2com.sun.tools.javac\fP ǻϤޤѥå (ˤ \f2com.sun.tools.javac\fP Υ֥ѥåȤΤ) ˴ޤޤ뤽¾Υ饹᥽åɤϡɤⴰѤǤꡢĤǤѹǽޤ .LP -.RE -.SH "例" +.SH "" .LP .SS -簡単なプログラムのコンパイル -.LP -.RS 3 - +ñʥץΥѥ .LP .LP -\f2Hello.java\fP というソースファイルで、\f3greetings.Hello\fP という名前のクラスを定義しているとします。\f2greetings\fP ディレクトリは、ソースファイルとクラスファイルの両方があるパッケージディレクトリで、現在のディレクトリのすぐ下にあります。このため、この例では、デフォルトのユーザークラスパスを使用できます。また、\f3\-d\fP を使って別の出力先ディレクトリを指定する必要もありません。 -.LP -.RS 3 - +\f2Hello.java\fP Ȥեǡ\f3greetings.Hello\fP Ȥ̾Υ饹ƤȤޤ \f2greetings\fP ǥ쥯ȥϡեȥ饹եξѥåǥ쥯ȥǡߤΥǥ쥯ȥΤˤޤΤᡢǤϡǥեȤΥ桼饹ѥѤǤޤޤ\f3\-d\fP Ȥä̤νǥ쥯ȥꤹɬפ⤢ޤ .LP .nf \f3 @@ -703,25 +1050,15 @@ Hello World Hello Universe .fl Hello Everyone -.fl - .fl .fi -.RE .LP -.RE .SS -複数のソースファイルのコンパイル -.LP -.RS 3 - +ʣΥեΥѥ .LP .LP -次の例では、パッケージ \f2greetings\fP 内のすべてのソースファイルをコンパイルします。 -.LP -.RS 3 - +Ǥϡѥå \f2greetings\fP Τ٤ƤΥե򥳥ѥ뤷ޤ .LP .nf \f3 @@ -741,27 +1078,15 @@ Aloha.java GutenTag.java Hello.java Hi.java Aloha.class GutenTag.class Hello.class Hi.class .fl Aloha.java GutenTag.java Hello.java Hi.java -.fl - -.fl - .fl .fi -.RE .LP -.RE .SS -ユーザークラスパスの指定 -.LP -.RS 3 - +桼饹ѥλ .LP .LP -上の例のソースファイルのうち 1 つを変更し、変更後のファイルを再コンパイルするとします。 -.LP -.RS 3 - +ΥեΤ 1 ĤѹѹΥեƥѥ뤹Ȥޤ .LP .nf \f3 @@ -771,35 +1096,23 @@ Aloha.java GutenTag.java Hello.java Hi.java /examples .fl % \f3javac greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP -\f2greetings.Hi\fP は、\f2greetings\fP パッケージ内のほかのクラスを参照しているため、コンパイラはこれらのクラスを探す必要があります。上の例では、デフォルトのユーザークラスパスが、パッケージディレクトリを含むディレクトリと同じであるため、コンパイルは正常に実行されます。ただし、現在どのディレクトリにいるかに関係なく、このファイルを再コンパイルする場合は、ユーザークラスパスに \f2/examples\fP を追加する必要があります。ユーザークラスパスにエントリを追加するには、\f3CLASSPATH\fP を設定する方法もありますが、ここでは \f3\-classpath\fP オプションを使うことにします。 -.LP -.RS 3 - +\f2greetings.Hi\fP ϡ \f2greetings\fP ѥåΤۤΥ饹򻲾ȤƤ뤿ᡢѥϤΥ饹õɬפޤǤϡǥեȤΥ桼饹ѥѥåǥ쥯ȥޤǥ쥯ȥƱǤ뤿ᡢѥ˼¹ԤޤߤɤΥǥ쥯ȥˤ뤫˴طʤΥեƥѥ뤹ϡ桼饹ѥ \f2/examples\fP ɲäɬפޤ桼饹ѥ˥ȥɲäˤϡ\f3CLASSPATH\fP ꤹˡ⤢ޤǤ \f3\-classpath\fP ץȤȤˤޤ .LP .nf \f3 .fl % \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP -再度 \f2greetings.Hi\fP を変更してバナーユーティリティーを使うようにした場合は、このバナーユーティリティーもユーザークラスパスを通じてアクセスできるようになっている必要があります。 -.LP -.RS 3 - + \f2greetings.Hi\fP ѹƥХʡ桼ƥƥȤ褦ˤϡΥХʡ桼ƥƥ桼饹ѥ̤ƥǤ褦ˤʤäƤɬפޤ .LP .nf \f3 @@ -808,41 +1121,25 @@ Aloha.java GutenTag.java Hello.java Hi.java .fl /examples/greetings/Hi.java\fP .fl - -.fl .fi -.RE .LP .LP -\f2greetings\fP 内のクラスを実行するには、\f2greetings\fP と、\f2greetings\fP が使うクラスの両方にアクセスできる必要があります。 -.LP -.RS 3 - +\f2greetings\fP Υ饹¹Ԥˤϡ \f2greetings\fP ȡ줬Ȥ饹ξ˥Ǥɬפޤ .LP .nf \f3 .fl % \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP -.fl - .fl .fi -.RE .LP -.RE .SS -ソースファイルとクラスファイルの分離 -.LP -.RS 3 - +եȥ饹եʬΥ .LP .LP -特に大規模プロジェクトの場合は、ソースファイルとクラスファイルを別々のディレクトリに置くと便利なことがあります。クラスファイルの出力先を別に指定するには、\f3\-d\fP を使います。ソースファイルはユーザークラスパスにはないので、\f3\-sourcepath\fP を使って、コンパイラがソースファイルを見つけることができるようにします。 -.LP -.RS 3 - +ä絬ϥץȤξϡեȥ饹ե̡Υǥ쥯ȥ֤ʤȤޤ饹եν̤˻ꤹˤϡ\f3\-d\fP Ȥޤեϥ桼饹ѥˤϤʤΤǡ\f3\-sourcepath\fP Ȥäơѥ餬ե򸫤Ĥ뤳ȤǤ褦ˤޤ .LP .nf \f3 @@ -876,84 +1173,79 @@ farewells/ % \f3ls classes/farewells\fP .fl Base.class GoodBye.class -.fl - -.fl - .fl .fi -.RE .LP .LP -\f3注:\fP \ コマンド行では \f2src/farewells/Base.java\fP を指定していませんが、このファイルもコンパイラによってコンパイルされています。自動コンパイルを監視するには、\f3\-verbose\fP オプションを使います。 +\f3:\fP ޥɹԤǤ \f2src/farewells/Base.java\fP ꤷƤޤ󤬡Υե⥳ѥˤäƥѥ뤵Ƥޤưѥƻ뤹ˤϡ\f3\-verbose\fP ץȤޤ .LP -.RE .SS -クロスコンパイルの例 -.LP -.RS 3 - +ѥ .LP .LP -ここでは、\f3javac\fP を使って、1.5 VM 上で実行するコードをコンパイルします。 -.LP -.RS 3 - +Ǥϡ\f3javac\fP Ȥäơ1.6 VM Ǽ¹Ԥ륳ɤ򥳥ѥ뤷ޤ .LP .nf \f3 .fl -% \fP\f3javac \-target 1.5 \-bootclasspath jdk1.5.0/lib/rt.jar \\ +% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\ .fl \-extdirs "" OldCode.java\fP .fl - +.fi + +.LP +.LP +\f2\-source 1.6\fP ץˤꡢ \f2OldCode.java\fP ΥѥˤϥС 1.6 (ޤ 6) Java ץߥ󥰸줬Ѥޤ\f3\-target 1.6\fP ץˤꡢ1.6 VM ȸߴΤ륯饹ե뤬ޤۤȤɤξ硢\f3\-target\fP ץͤ \f3\-source\fP ץͤˤʤޤǤϡ\f3\-target\fP ץάǤޤ +.LP +.LP +\f3\-bootclasspath\fP ץѤơŬڤʥСΥ֡ȥȥåץ饹 ( \f2rt.jar\fP 饤֥) ꤹɬפޤꤷʤϡѥˤäƼηٹޤ +.LP +.nf +\f3 +.fl +% \fP\f3javac \-source 1.6 OldCode.java\fP +.fl +warning: [options] bootstrap class path not set in conjunction with \-source 1.6 .fl .fi -.RE .LP .LP -\f3\-target 1.5\fP オプションにより、1.5 VM と互換性のあるクラスファイルが生成されます。デフォルトでは、\f3javac\fP は JDK 6 用にコンパイルします。 +ŬڤʥСΥ֡ȥȥåץ饹ꤷʤ硢ѥϸŤ (ǤϡС 1.6 Java ץߥ󥰸) 򿷤֡ȥȥåץ饹Ȥ߹碌ƻѤޤη̡¸ߤʤ᥽åɤؤλȤޤޤƤ뤳Ȥ뤿ᡢ饹ե뤬Ťץåȥե (ξ Java SE 6) ưʤǽޤ .LP -.LP -Java プラットフォーム JDK の \f3javac\fP は、デフォルトでは、Java 2 SDK のブートストラップクラスに対してコンパイルを行うので、Java 2 SDK ではなく JDK 1.5 のブートストラップクラスに対してコンパイルを行うように指定する必要があります。これは、\f3\-bootclasspath\fP および \f3\-extdirs\fP を使って指定します。この指定を行わないと、1.5 VM には存在しない Java 2 プラットフォーム API に対応したコンパイルが行われるため、プログラムの実行時に障害が発生することがあります。 -.LP -.RE -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2「The javac Guide」\fP @ +\f2The javac Guide\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jdb(1) \- Java デバッガ」 +jdb(1) \- Java ǥХå .TP 2 o -「javah(1) \- C ヘッダーとスタブファイルジェネレータ」 +javah(1) \- C إåȥ֥ե른ͥ졼 .TP 2 o -「javap(1) \- クラスファイル逆アセンブラ」 +javap(1) \- 饹եե֥ .TP 2 o -「javadoc(1) \- Java API ドキュメントジェネレータ」 +javadoc(1) \- Java API ɥȥͥ졼 .TP 2 o -「jar(1) \- JAR アーカイブツール」 +jar(1) \- JAR ֥ġ .TP 2 o .na -\f2「Java 拡張機能フレームワーク」\fP @ +\f2Java ĥǽե졼\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 index 283c6a81c1b..57c6cd75a35 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,328 +19,244 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "02 Jun 2010" -.SH "名前" -javadoc \- Java API ドキュメントジェネレータ -.RS 3 - -.LP -.LP -Java ソースファイルから、API ドキュメントの HTML ページを生成します。このドキュメントで紹介されている Javadoc の例は、Sun Solaris を使用した場合のものです。 -.LP -.RE -.SH "形式" +.TH javadoc 1 "14 Apr 2011" +.SH "̾" +javadoc \- Java API ɥȥͥ졼 .LP +Java ե뤫顢API ɥȤ HTML ڡޤΥɥȤǾҲ𤵤Ƥ Javadoc ϡ Solaris ѤΤΤǤ +.SH "" .LP \f4javadoc\fP\f2\ [\ \fP\f2options\fP\f2\ ]\ [\ packagenames\ ]\ [\ sourcefilenames\ ]\ [\ \-subpackages\fP\ \f2pkg1:pkg2:...\fP\f2\ ]\ [\ \fP\f2@argfiles\fP\f2\ ]\fP .LP -.LP -引数を指定する順序は任意です。Javadoc ツールでの、処理対象の \f2.java\fP ファイルを決定する方法の詳細については、「ソースファイルの処理」を参照してください。 -.LP -.RS 3 - -.LP +ꤹǤդǤJavadoc ġǤΡоݤ .java եꤹˡξܺ٤ˤĤƤϡ֥եν\f2򻲾\fPƤ .RS 3 .TP 3 options -このドキュメントで説明されているコマンド行オプションです。Javadoc オプションの標準的な使用法については、「使用例」を参照してください。 +ΥɥȤƤ륳ޥɹԥץǤJavadoc ץɸŪʻˡˤĤƤϡֻפ򻲾ȤƤ .TP 3 packagenames -スペースで区切られた一連のパッケージ名です。 たとえば、\f2java.lang\ java.lang.reflect\ java.awt\fP のように指定します。ドキュメント化するパッケージを個別に指定する必要があります。ワイルドカードは使用不可です。 再帰的処理のためには、\-subpackages を使用します。Javadoc ツールは、\f2\-sourcepath\fP を使ってこれらのパッケージ名を検索します。「1 つ以上のパッケージのドキュメント化」の例を参照してください。 +ڡǶڤ줿ϢΥѥå̾ǤȤС \f2java.lang\ java.lang.reflect\ java.awt Τ褦˻ꤷޤ\fPɥȲѥå̤˻ꤹɬפޤ磻ɥɤϻԲĤǤƵŪΤˤϡ\-subpackages ѤޤJavadoc ġϡ\f2\-sourcepath\fP ѤƤΥѥå̾򸡺ޤ1 İʾΥѥåΥɥȲפ򻲾ȤƤ .TP 3 sourcefilenames -スペースで区切られた一連のソースファイル名です。各ファイルは、パスで始まります。アスタリスク (*) などのワイルドカードを含めることができます。 Javadoc ツールが処理するのは、ファイル名が「.java」という拡張子で終わり、その拡張子を除いた名前が実際に有効なクラス名であるすべてのファイルです ( +ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ ( .na -\f2「Identifiers」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625を参照)。したがって、ハイフンを含む名前 (\f2X\-Buffer\fP など) や、その他の無効な文字を含む名前を付けることによって、それらのファイルをドキュメント化の対象から除外できます。これは、テスト用のファイルや、テンプレートから生成されたファイルの場合に便利です。 ソースファイル名の前に指定したパスによって、javadoc がそのファイルを検索する場所が決まります。Javadoc ツールは、これらのソースファイル名を検索するときに \f2\-sourcepath\fP は使いません。相対パスは、現在のディレクトリからの相対パスです。 \f2Button.java\fP を渡すことは、\f2./Button.java\fP を渡すことと同じです。ソースファイル名をフルパスで指定すると、\f2/home/src/java/awt/Graphics*.java\fP のようになります。「1 つ以上のクラスのドキュメント化」の例を参照してください。また、「パッケージとクラスのドキュメント化」の例のように、パッケージ名とソースファイル名を混在させることもできます。 +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ .TP 3 \-subpackages pkg1:pkg2:... -ソースファイルから指定されたパッケージおよびそのサブパッケージ内に再帰的にドキュメントを生成します。パッケージ名またはソースファイル名を指定する必要はありません。 +ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤѥå̾ޤϥե̾ꤹɬפϤޤ .TP 3 @argfiles -Javadoc オプション、パッケージ名、およびソースファイル名を任意の順序で並べたリストが含まれる 1 つ以上のファイルです。このファイルの中では、ワイルドカード (*) および \f2\-J\fP オプションは指定できません。 +Javadoc ץ󡢥ѥå̾ӥե̾Ǥդν¤٤ꥹȤޤޤ 1 İʾΥեǤ磻ɥ (*) \f2\-J\fP ץϡΥեǤϻǤޤ .RE - +.SH " " .LP -.RE -.SH " 説明" -.LP -.LP -\f3Javadoc\fP ツールは、一連の Java ソースファイルにある宣言およびドキュメンテーションコメントを解析し、デフォルトでは public クラス、protected クラス、入れ子にされたクラス (匿名の内部クラスは除く)、インタフェース、コンストラクタ、メソッド、およびフィールドについて説明した一連の HTML ページを生成します。また、API (アプリケーションプログラミングインタフェース) ドキュメントの生成や、一連のソースファイルの実装ドキュメントの生成に使用できます。 -.LP -.LP -Javadoc ツールは、パッケージ全体、個々のソースファイル、またはその両方に対して実行できます。javadoc ツールをパッケージ全体に対して実行する場合は、最上位ディレクトリから再帰的にたどるために \f2\-subpackages\fP を使用するか、パッケージ名の明示的なリストを渡します。個々ソースファイルに対して javadoc を実行する場合は、一連のソース (\f2.java\fP) ファイル名を渡します。具体的な例は、このドキュメントの最後に紹介します。次に、Javadoc によるソースファイルの処理について説明します。 +\f3Javadoc\fP ġϡϢ Java եˤӥɥơ󥳥ȤϤǥեȤǤ public 饹protected 饹Ҥˤ줿饹 (ƿ̾饹Ͻ)󥿥ե󥹥ȥ饯᥽åɡӥեɤˤĤϢ HTML ڡޤޤAPI (ץꥱץߥ󥰥󥿥ե) ɥȤ䡢ϢΥեμɥȤ˻ѤǤޤ .LP +Javadoc ġϡѥåΡġΥե롢ޤϤξФƼ¹ԤǤޤѥåΤΥɥȲԤˤϡ\f2\-subpackages\fP ѤƺǾ̥ǥ쥯ȥ꤫鲼˺ƵŪˤɤ뤫ѥå̾ŪʥꥹȤϤޤġեФ javadoc ¹ԤϡϢΥ (.\f2.java\fP) ե̾ϤޤŪϡΥɥȤκǸ˾Ҳ𤷤ޤˡJavadoc ˤ륽եνˤĤޤ .SS -ソースファイルの処理 -.LP -.LP -Javadoc ツールは、末尾に \f2.java\fP の付いたファイル以外に、ソースファイルで説明する他のファイルも処理します。個々のソースファイル名を明示的に渡すことによって Javadoc ツールを実行する場合、どの \f2.java\fP ファイルを処理するかを正確に指定できます。ただし、多くの開発者はこの方法では作業しません。 パッケージ名を渡すほうが簡単だからです。ソースファイル名を明示的に指定しなくても、Javadoc ツールは 3 つの方法で実行できます。この方法は、(1) パッケージ名を渡す、(2) \f2\-subpackages\fP を使用する、(3) ソースファイル名にワイルドカードを使用する (\f2*.java\fP) という方法です。これらの方法を使用する場合、Javadoc ツールは、\f2.java\fP ファイルが次のすべての要件を満たしている場合にかぎり、このファイルを処理します。 +եν .LP +Javadoc ġϡ\f2.java\fPפΥեǤʤ֥եפ뤽¾ΥեޤġΥե̾ŪϤȤˤä Javadoc ġ¹Ԥ硢ɤ \f2.java\fP ե뤫Τ˻Ǥޤ¿γȯԤϤˡǤϺȤޤ󡣥ѥå̾ϤۤñǤե̾Ū˻ꤷʤƤ⡢Javadoc ġ 3 ĤˡǼ¹ԤǤޤˡȤϡ(1) ѥå̾Ϥ(2) \f2\-subpackages\fP Ѥ롢(3) ե̾ǥ磻ɥɤѤ (\f2*.java\fP) 3 ĤǤξ硢Javadoc ġ뤬\f2.java\fPץեνԤΤϡΥե뤬Τ٤Ƥ׷Ǥ .RS 3 .TP 2 o -名前から \f2.java\fP の接尾辞を取り除くと、実際に有効なクラス名になっている (有効な文字については、 +̾\f2.java\fPפȼºݤͭʥ饹̾ˤʤäƤ (ͭʸˤĤƤ .na -\f2「Identifiers」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625を参照) +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾) .TP 2 o -ソースツリーのルートから相対的なディレクトリパスが、区切り文字をドットに変換すると、実際に有効なパッケージ名になっている +ĥ꡼Υ롼ȤŪʥǥ쥯ȥѥڤʸɥåȤѴȡºݤͭʥѥå̾ˤʤäƤ .TP 2 o -パッケージ文には有効なパッケージ名が含まれる (前項目で指定) +ѥåʸˤͭʥѥå̾ޤޤ (ܤǻ) .RE - -.LP -.LP -\f3リンクの処理\fP \- Javadoc ツールは、処理の実行中に、その実行でドキュメント化されるパッケージ、クラス、およびメンバーの名前に対して、自動的に相互参照リンクを追加します。このようなリンクは、次のような場所に追加されます。 .LP +\f3󥯤ν\fP \- Javadoc ġϡμ¹ˡμ¹ԤǥɥȲѥå饹ӥС̾ФơưŪ߻ȥ󥯤ɲäޤΤ褦ʥ󥯤ϡΤ褦ʾɲäޤ .RS 3 .TP 2 o -宣言 (戻り値の型、引数の型、フィールドの型) + (ͤηηեɤη) .TP 2 o -\f2@see\fP タグから生成された [関連項目] セクション +\f2@see\fP 줿 [Ϣ] .TP 2 o -\f2{@link}\fP タグから生成されたインラインテキスト +\f2{@link}\fP 줿饤ƥ .TP 2 o -\f2@throws\fP タグから生成された例外の名前 +\f2@throws\fP 줿㳰̾ .TP 2 o -"インタフェースのメンバーに対する [定義] リンクと、クラスのメンバーに対する [オーバーライド] リンク +󥿥եΥСФץ󥯤ȡ饹ΥСФ֥С饤ɡץ .TP 2 o -パッケージ、クラス、およびメンバーを列挙している概要テーブル +ѥå饹ӥС󤷤Ƥ복ץơ֥ .TP 2 o -パッケージおよびクラスの継承ツリー +ѥåӥ饹ηѾĥ꡼ .TP 2 o -索引 + .RE - .LP +ޥɹԤǻꤷʤä饹ˤĤƤδ¸Υƥ (̤ƥ) Фƥϥѡ󥯤ɲäˤϡ\f2\-link\fP \f2\-linkoffline\fP ץѤǤޤ .LP -コマンド行で指定しなかったクラスについての既存のテキスト (別に生成したテキスト) に対してハイパーリンクを追加するには、\f2\-link\fP および \f2\-linkoffline\fP オプションを利用できます。 +\f3¾νˤĤƤξܺ\fP \- Javadoc ġϡ¹Ԥ뤿Ӥ 1 ĤδʥɥȤޤɥȤɲ뤳ȤϤǤޤ󡣤ĤޤꡢJavadoc ġΰμ¹Է̤ꡢƤľȤ줿ꤹ뤳ȤϤǤޤ󡣤ҤΤ褦ˡμ¹Է̤Фƥ󥯤ɲä뤳ȤϤǤޤ .LP +ͳ顢Javadoc ġϡ¹Ԥ뤿 java ѥɬפȤjava ѥ˰¸ƤޤJavadoc ġϡ \f2javac\fP ΰƤӽФ򥳥ѥ뤷ޤСμ̵뤷ޤJavadoc ġϡ饹ؤޤ९饹˭٤ɽȥ饹Ρֻѡ״طۤξ󤫤 HTML ޤˡJavadoc ġϡɤΥɥơ󥳥Ȥ顢桼󶡤ɥȤޤ .LP -\f3その他の処理についての詳細\fP \- Javadoc ツールは、実行するたびに 1 つの完全なドキュメントを作成します。 ドキュメントを追加生成することはできません。 つまり、Javadoc ツールの以前の実行結果を修正したり、その内容を直接組み入れたりすることはできません。ただし、前述のように、以前の実行結果に対してリンクを追加することはできます。 +ºݤˤϡJavadoc ġϡ᥽åΤʤʥ֥եǤ褦 \f2.java\fP եǤưޤäơAPI κˤϡ򵭽Ҥ߷פᤤʳǡɥơ󥳥Ȥ򵭽Ҥ javadoc ġ¹ԤǤޤ .LP -.LP -実装上の理由から、Javadoc ツールは、処理を実行するために java コンパイラを必要とし、java コンパイラに依存しています。Javadoc ツールは \f2javac\fP の一部を呼び出すことにより、宣言をコンパイルし、メンバーの実装は無視します。Javadoc ツールは、クラス階層を含むクラスの豊富な内部表現とクラスの「使用」関係を構築し、その情報から HTML を生成します。さらに、Javadoc ツールは、ソースコードのドキュメンテーションコメントから、ユーザーの提供したドキュメントも取得します。 -.LP -.LP -Javadoc ツールは、メソッド本体のない純粋なスタブファイルである \f2.java\fP ソースファイルに対しても、実行することができます。したがって、API の作成時には、実装を記述する前の設計の早い段階で、ドキュメンテーションコメントを記述して javadoc ツールを実行できます。 -.LP -.LP -コンパイラに依存することによって、HTML 出力は、実際の実装に正確に対応します。 実際の実装は、明示的なソースコードにではなく、暗黙のソースコードに依存する場合があります。たとえば、Javadoc ツールは、\f2.class\fP ファイル内に存在するが、ソースコード内には存在しない +ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤ .na -\f2デフォルトコンストラクタ\fP @ +\f2ǥեȥ󥹥ȥ饯\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java 言語仕様のセクション 8.6.7) をドキュメント化します。 +http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java ͤΥ 8.6.7) \f2ɥȲ\fP ޤ .LP +̾Javadoc ġǤϡեΥɤԴޤϥ顼ޤǤǤɥȤǤޤΤᡢǥХåȥ֥륷塼ƥ󥰤λ˥ɥȤǤޤȤСJava ͤˤȡݥ᥽åɤޤ९饹ϡ켫ݤȤʤФʤޤ󡣤Υ顼򸡽Фȡjavac ѥߤޤJavadoc ġϷٹФ˽³ԤޤJavadoc ġϥɥơ󥳥ȤδŪʥåԤޤɥơ󥳥ȤܤåɬפϡDocCheck ɥååȤѤƤ .LP -通常、Javadoc ツールでは、ソースファイルのコードが不完全またはエラーを含んでいる場合でもドキュメントを生成できます。このため、デバッグやトラブルシューティングを完了する前にドキュメントを生成できます。たとえば、Java 言語仕様によると、抽象メソッドを含むクラスは、それ自体抽象として宣言されなければなりません。このエラーを検出すると、javac コンパイラは停止しますが、Javadoc ツールは警告を出さずに処理を続行します。Javadoc ツールはドキュメンテーションコメントの基本的なチェックを行います。ドキュメンテーションコメントをより詳しくチェックする必要がある場合は、DocCheck ドックレットを使用してください。 -.LP -.LP -Javadoc ツールは、ドキュメントの内部構造を構築する際、参照クラスをすべてロードします。このため、Javadoc ツールは、ブートストラップクラス、拡張機能、またはユーザークラスにかかわらず、すべての参照クラスを検索できなければなりません。詳細は、 +Javadoc ġϡɥȤ¤ۤݡȥ饹򤹤٤ƥɤޤΤᡢJavadoc ġϡ֡ȥȥåץ饹ĥǽޤϥ桼饹ˤ餺٤Ƥλȥ饹򸡺ǤʤФʤޤ󡣾ܺ٤ϡ .na -\f2「クラスの検索方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.htmlを参照してください。通常、作成するクラスは、拡張機能としてロードするか、Javadoc ツールのクラスパス内に置く必要があります。 -.LP +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html򻲾ȤƤ̾륯饹ϡĥǽȤƥɤ뤫Javadoc ġΥ饹ѥ֤ɬפޤ .SS -Javadoc のドックレット -.LP -.LP -Javadoc ツールの出力の内容と形式は、ドックレットを使ってカスタマイズできます。Javadoc ツールには、標準ドックレットと呼ばれるデフォルトの「組み込み」ドックレットがあります。 標準ドックレットは、HTML 形式の API ドキュメントを生成します。標準ドックレットを修正またはサブクラス化することや、HTML、XML、MIF、RTF などの好みの出力形式を生成する独自のドックレットを記述することも可能です。ドックレットとその使用法については、次の項目を参照してください。 +Javadoc Υɥåå .LP +Javadoc ġνϤƤȷϡɥååȤȤäƥޥǤޤJavadoc ġˤϡɸɥååȤȸƤФǥեȤΡȤ߹ߡץɥååȤޤɸɥååȤϡHTML API ɥȤޤɸɥååȤޤϥ֥饹뤳Ȥ䡢HTMLXMLMIFRTF ʤɤιߤνϷȼΥɥååȤ򵭽Ҥ뤳ȤǽǤɥååȤȤλˡˤĤƤϡιܤ򻲾ȤƤ .RS 3 .TP 2 o .na -\f2Javadoc のドックレット\fP @ +\f2Javadoc Υɥåå\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html .TP 2 o -\f2\-doclet\fP コマンド行オプション +\f2\-doclet\fP ޥɹԥץ .RE - -.LP -.LP -\f2\-doclet\fP コマンド行オプションでカスタムドックレットが指定されていない場合、Javadoc ツールは、デフォルトの標準ドックレットを使用します。javadoc ツールには、使用されているドックレットに関係なく使用できるコマンド行オプションがあります。標準ドックレットでは、これらのほかに、いくつかのコマンド行オプションが追加されます。どちらのオプションについても、このあとの「オプション」で説明します。 .LP +\f2\-doclet\fP ޥɹԥץǥɥååȤꤵƤʤ硢Javadoc ġϡǥեȤɸɥååȤѤޤjavadoc ġˤϡѤƤɥååȤ˴طʤѤǤ륳ޥɹԥץ󤬤ޤɸɥååȤǤϡΤۤˡĤΥޥɹԥץɲäޤɤΥץˤĤƤ⡢ΤȤΡ֥ץפޤ .SS -関連ドキュメントおよびドックレット -.LP +ϢɥȤӥɥåå .RS 3 .TP 2 o .na -\f2Javadoc に施された機能強化\fP @ +\f2Javadoc ˻ܤ줿ĥǽ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html \- Javadoc で追加された改良点の詳細 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html \- Javadoc 1.4 ɲä줿ξܺ .TP 2 o .na \f2Javadoc FAQ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html \- 頻繁に寄せられる質問に対する回答、Javadoc 関連のツールについての情報、およびバグの回避方法 +http://java.sun.com/j2se/javadoc/faq/index.html \- ˤ˴󤻤ФJavadoc ϢΥġˤĤƤξ󡢤ӥХβˡ .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ドキュメンテーションコメントの記述方法に関する Sun の規約 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε .TP 2 o .na \f2Requirements for Writing API Specifications\fP @ .fi -http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Java 2 プラットフォーム仕様を記述する際に使用された標準要件。この情報は、ソースファイルのドキュメンテーションコメント形式で API 仕様を記述する場合にも、その他の形式で記述する場合にも役立ちます。検証可能なアサーションを満たすパッケージ、クラス、インタフェース、フィールド、およびメソッドについての要件を定めています。 +http://java.sun.com/j2se/javadoc/writingapispecs/index.html \- Java SE ץåȥեͤ򵭽Ҥݤ˻Ѥ줿ɸ׷盧ξϡեΥɥơ󥳥ȷ API ͤ򵭽Ҥˤ⡢¾ηǵҤˤΩޤڲǽʥѥå饹󥿥եեɡӥ᥽åɤˤĤƤ׷Ƥޤ .TP 2 o .na -\f2ドキュメンテーションコメントの仕様\fP @ +\f2ɥơ󥳥Ȥλ\fP @ .fi -http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- ドキュメンテーションコメントのオリジナル仕様については、『Java Language Specification』 (James Gosling、Bill Joy、Guy Steele 共著) の初版の第 18 章「Documentation Comments」を参照してください。この章は、第 2 版では削除されました。 +http://java.sun.com/docs/books/jls/first_edition/html/18.doc.html \- ɥơ󥳥ȤΥꥸʥͤˤĤƤϡJava Language Specification (James GoslingBill JoyGuy Steele ) νǤ 18 ϡDocumentation Commentsפ򻲾ȤƤξϤϡ 2 ǤǤϺޤ .TP 2 o .na -\f2DocCheck ドックレット\fP @ +\f2DocCheck ɥåå\fP @ .fi -http://java.sun.com/javadoc/doccheck \- ソースファイル内のドキュメンテーションコメントをチェックし、検出されたエラーや不正のレポートを生成します。Sun Doc Check ユーティリティーの一部です。Sun Doc Check ユーティリティーの一部です。 +http://java.sun.com/javadoc/doccheck \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ .TP 2 o .na -\f2MIF ドックレット\fP @ +\f2MIF ɥåå\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- MIF、FrameMaker、PDF の書式で API ドキュメントを自動生成します。MIF は Adobe FrameMaker の交換書式です。 +http://java.sun.com/javadoc/mifdoclet \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ .RE - -.LP .SS -用語 -.LP -.LP -\f2「ドキュメンテーションコメント」\fP、\f2「doc コメント」\fP、\f2「主説明」\fP、\f2「タグ」\fP、\f2「ブロックタグ」\fP、および\f2「インラインタグ」\fPの用語については、「ドキュメンテーションコメント」で説明します。次のその他の用語は、Javadoc ツールのコンテキストで特定の意味を持ちます。 +Ѹ .LP +\f2֥ɥơ󥳥ȡ\fP\f2doc ȡ\fP\f2ּ\fP\f2֥\fP\f2֥֥å\fP\f2֥饤󥿥\fPѸˤĤƤϡ֥ɥơ󥳥ȡפޤʲΤ¾ѸϡJavadoc ġΥƥȤΰ̣ޤ .RS 3 .TP 3 -生成ドキュメント (generated document) -javadoc ツールが Java ソースコード内のドキュメンテーションコメントから生成したドキュメントのことです。デフォルトの生成ドキュメントは HTML 形式で、標準ドックレットによって作成されます。 +ɥ (generated document) +javadoc ġ뤬 Java Υɥơ󥳥ȤɥȤΤȤǤǥեȤɥȤ HTML ǡɸɥååȤˤäƺޤ .LP .TP 3 -名前 (name) -Java 言語で書かれたプログラム要素の名前、つまりパッケージ、クラス、インタフェース、フィールド、コンストラクタ、またはメソッドの名前のことです。名前は、\f2java.lang.String.equals(java.lang.Object)\fP のように完全修飾することも、\f2equals(Object)\fP のように部分修飾することもできます。 +̾ (name) +Java ǽ񤫤줿ץǤ̾Ĥޤѥå饹󥿥եեɡ󥹥ȥ饯ޤϥ᥽åɤ̾ΤȤǤ̾ϡ \f2java.lang.String.equals(java.lang.Object)\fP Τ褦ʴ̾ˤ뤳Ȥ⡢ \f2equals(Object)\fP Τ褦ʬ̾ˤ뤳ȤǤޤ .LP .TP 3 -ドキュメント化されるクラス (documented classes) -javadoc ツールの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。ドキュメント化するには、ソースファイルが使用可能でなければならず、ソースファイル名またはパッケージ名を javadoc コマンドに渡され、アクセス修飾子 (public、protected、package\-private または private) によってフィルタ処理されないようにしなければなりません。ドキュメント化されるクラスは、javadoc ツールの出力に組み込まれるクラス、つまり「包含クラス」とも呼ばれます。 +ɥȲ륯饹 (documented classes) +javadoc ġμ¹Ԥˤäƾܺ٤ʥɥȤ륯饹ӥ󥿥եΤȤǤɥȲˤϡե뤬ѲǽǤʤФʤ餺ե̾ޤϥѥå̾ javadoc ޥɤϤ졢 (publicprotectedpackage\-private ޤ private) ˤäƥե륿ʤ褦ˤʤФʤޤ󡣥ɥȲ륯饹ϡjavadoc ġνϤȤ߹ޤ륯饹Ĥޤޥ饹פȤƤФޤ .LP .TP 3 -包含クラス (included classes) -ツールの実行によって詳細なドキュメントが生成されるクラスおよびインタフェースのことです。「ドキュメント化されるクラス」 と同じ。 +ޥ饹 (included classes) +ġμ¹Ԥˤäƾܺ٤ʥɥȤ륯饹ӥ󥿥եΤȤǤ֥ɥȲ륯饹פƱ .LP .TP 3 -除外クラス (excluded classes) -ツールの実行によって詳細なドキュメントが生成されないクラスおよびインタフェースのことです。 +饹 (excluded classes) +ġμ¹Ԥˤäƾܺ٤ʥɥȤʤ饹ӥ󥿥եΤȤǤ .LP .TP 3 -参照クラス (referenced classes) -ドキュメント化されるクラスおよびインタフェースの定義 (実装) またはドキュメンテーションコメントの中で明示的に参照されているクラスおよびインタフェースのことです。参照の例としては、戻り値の型、パラメータの型、キャストの型、拡張されたクラス、実装されたインタフェース、インポートされたクラス、メソッド本体で使用されるクラス、@see、{@link}、{@linkplain}、{@inheritDoc} タグなどがあります。この定義は +ȥ饹 (referenced classes) +ɥȲ륯饹ӥ󥿥ե () ޤϥɥơ󥳥ȤŪ˻ȤƤ륯饹ӥ󥿥եΤȤǤȤȤƤϡͤηѥ᡼η㥹Ȥηĥ줿饹줿󥿥եݡȤ줿饹᥽åΤǻѤ륯饹@see{@link}{@linkplain}{@inheritDoc} ʤɤޤ .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses から変更されています。javadoc ツールを実行するときは、Javadoc のブートクラスパスおよびクラスパス内にあるすべての参照クラスをメモリーにロードする必要があります。参照クラスが見つからない場合は、「クラスが見つかりません」という警告が表示されます。Javadoc ツールは、クラスの存在とそのメンバーの完全指定の名前を判別するのに必要なすべての情報を、.class ファイルから引き出すことができます。 +http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ .LP .TP 3 -外部参照クラス (external referenced classes) -参照クラスのうち、javadoc ツールの実行中にドキュメントが生成されないクラスのことです。つまり、これらのクラスは、コマンド行で Javadoc ツールに渡されていません。生成ドキュメント内でこれらのクラスにリンクしている箇所は、「外部参照」または「外部リンク」と呼ばれます。たとえば、\f2java.awt\fP パッケージに対してだけ Javadoc ツールを実行した場合、\f2Object\fP などの \f2java.lang\fP 内のすべてのクラスが外部参照クラスになります。外部参照クラスにリンクするには、\f2\-link\fP および \f2\-linkoffline\fP オプションを使用します。外部参照クラスには、通常そのソースコメントを javadoc ツールの実行で利用できないという重要な特徴があります。この場合、それらのコメントを継承することはできません。 +ȥ饹 (external referenced classes) +ȥ饹Τjavadoc ġμ¹˥ɥȤʤ饹ΤȤǤĤޤꡢΥ饹ϡޥɹԤ Javadoc ġϤƤޤɥǤΥ饹˥󥯤Ƥսϡֳȡפޤϡֳ󥯡פȸƤФޤȤСJavadoc ġμ¹оݤ \f2java.awt\fP ѥåΤߤǤ硢 \f2java.lang\fP Τ٤ƤΥ饹 ( \f2Object\fPʤ) ȥ饹ˤʤޤȥ饹˥󥯤ˤϡ \f2\-link\fP \f2\-linkoffline\fP ץѤޤȥ饹ˤϡ̾綠ΥȤ javadoc ġμ¹ԤѤǤʤȤפħޤξ硢ΥȤѾ뤳ȤϤǤޤ .RE - -.LP -.SH "ソースファイル" -.LP -.LP -Javadoc ツールは、4 種類の異なるソースファイルから出力結果を生成します。そのファイルは、クラスの Java 言語ソースファイル (\f2.java\fP)、パッケージコメントファイル、概要コメントファイル、およびその他の処理されないファイルです。また、ドキュメント化しないがソースツリーに存在する場合があるテストファイルやテンプレートファイルについても説明します。 +.SH "ե" .LP +Javadoc ġ 4 ΰۤʤ֥ץե뤫Ϥޤ 4 Ȥϡ饹 Java 쥽ե (\f2.java\fP)ѥåȥե롢ץȥե롢Ӥ¾νʤեǤޤɥȲʤĥ꡼¸ߤ礬ƥȥեƥץ졼ȥեˤĤƤޤ .SS -クラスソースコードファイル -.LP -.LP -それぞれのクラスまたはインタフェース、およびそのメンバーは、独自のドキュメンテーションコメントを持つことができ、それを \f2.java\fP ファイル内に保持します。ドキュメンテーションコメントの詳細は、「ドキュメンテーションコメント」を参照してください。 +饹ɥե .LP +줾Υ饹ޤϥ󥿥եӤΥСϡȼΥɥơ󥳥ȤĤȤǤ \f2.java\fP եݻޤɥơ󥳥Ȥξܺ٤ϡ֥ɥơ󥳥ȡפ򻲾ȤƤ .SS -パッケージコメントファイル +ѥåȥե .LP +줾ΥѥåϡȼΥɥơ󥳥ȤĤȤǤѤΡ֥ץեݻޤƤϡJavadoc ġˤä복ץڡȤ߹ޤޤΥȤˤϡ̾ΥѥåΤƤϤޤɥȤ򵭽Ҥޤ .LP -それぞれのパッケージは、独自のドキュメンテーションコメントを持つことができ、それを専用の「ソース」ファイルに保持します。 その内容は、Javadoc ツールによって生成される概要ページに組み込まれます。このコメントには、通常、そのパッケージ全体に当てはまるドキュメントを記述します。 -.LP -.LP -パッケージコメントファイルを作成する場合、コメントの格納先として、次の 2 つのファイルのいずれかを選択できます。 -.LP +ѥåȥե硢ȤγǼȤơ 2 ĤΥեΤ줫Ǥޤ .RS 3 .TP 2 o -\f2package\-info.java\fP \- パッケージ宣言、パッケージ注釈、パッケージコメント、および Javadoc タグを格納できます。このファイルは JDK 5.0 で導入されたものであり、package.html よりも推奨されています。 +\f2package\-info.java\fP \- ѥåѥåᡢѥåȡ Javadoc ǼǤޤΥեϰ̤ˡpackage.html 侩ޤ .TP 2 o -\f2package.html\fP \- 格納できるのはパッケージコメントと Javadoc タグだけです。 パッケージ注釈は格納できません。 +\f2package.html\fP \- ǼǤΤϥѥåȤ Javadoc ǤѥåϳǼǤޤ .RE - .LP +ƥѥåǤϡñ \f2package.html\fP ե롢ñ \f2package\-info.java\fP եΤ줫Ǥޤξ򤹤뤳ȤϤǤޤ󡣤Τɤ餫Υե \f2.java\fP եȤȤˡĥ꡼ΤΥѥåΥǥ쥯ȥ֤Ƥ .LP -各パッケージは、単一の \f2package.html\fP ファイル、単一の \f2package\-info.java\fP ファイルのいずれかを持つことができますが、両方を持つことはできません。このどちらかのファイルを \f2.java\fP ファイルとともに、ソースツリー内のそのパッケージのディレクトリ内に配置してください。 +\f4package\-info.java\fP \- Υեˤϡι¤ΥѥåȤǼǤޤ Ȥϥѥå֤ޤ .LP -.LP -\f4package\-info.java\fP \- このファイルには、次の構造のパッケージコメントを格納できます。 コメントはパッケージ宣言の前に配置します。 -.LP -.LP -File:\f2java/applet/package\-info.java\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 +File: \f2java/applet/package\-info.java\fP .nf \f3 .fl /** .fl - * Provides the classes necessary to create an + * Provides the classes necessary to create an .fl * applet and the classes an applet uses .fl @@ -372,285 +288,91 @@ package java.lang.applet; .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 352 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - .LP +ȶڤʸ \f2/**\fP \f2/*\fP ¸ߤƤɬפޤֹԤιƬΥꥹϾάƤ⤫ޤޤ .LP -コメント区切り文字の \f2/**\fP と \f2/*\fP は記述する必要がありますが、中間行の行頭のアスタリスクは省略してもかまいません。 +\f4package.html\fP \- Υեˤϡι¤ΥѥåȤǼǤޤȤ \f2<body>\fP ֤ޤ .LP -.LP -\f4package.html\fP \- このファイルには、次の構造のパッケージコメントを格納できます。 コメントは \f2<body>\fP 要素内に配置します。 -.LP -.LP -File:\f2java/applet/package.html\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 +File: \f2java/applet/package.html\fP .nf \f3 .fl -<HTML> -.fl -<BODY> -.fl -Provides the classes necessary to create an applet and the -.fl -classes an applet uses to communicate with its applet context. -.fl -<p> +<HTML> <BODY> Provides the classes necessary to create an applet and the classes an applet uses to communicate with its applet context.<p> .fl The applet framework involves two entities: the applet .fl -and the applet context. An applet is an embeddable -.fl -window (see the {@link java.awt.Panel} class) with a -.fl -few extra methods that the applet context can use to -.fl -initialize, start, and stop the applet. -.fl - -.fl -@since 1.0 -.fl -@see java.awt -.fl -</BODY> -.fl -</HTML> +and the applet context. An applet is an embeddable window (see the {@link java.awt.Panel} class) with a few extra methods that the applet context can use to initialize, start, and stop the applet.@since 1.0 @see java.awt </BODY> </HTML> .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 405 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-40 - .LP -.LP -これは単なる通常の HTML ファイルであり、パッケージ宣言を含んでいない点に注意してください。パッケージコメントファイルの内容は、ほかのすべてのコメントと同様に HTML で記述されています。それは、このドキュメンテーションコメントには、コメント区切り文字である \f2/**\fP と \f2*/\fP、および行頭のアスタリスクを含めてはならない、ということです。コメントを書く場合は、最初の文をパッケージの概要とし、\f2<body>\fP と最初の文の間にタイトルやその他のテキストを含めないようにします。パッケージタグを含めることはできますが、ほかのドキュメンテーションコメントと同様、すべてのブロックタグは、主説明のあとに置かなければなりません。パッケージコメントファイルに \f2@see\fP タグを追加する場合は、完全指定の名前を使用する必要があります。詳細は、 +ñʤ̾ HTML եǤꡢѥåޤǤʤդƤѥåȥեƤϡۤΤ٤ƤΥȤƱͤ HTML ǵҤޤ1 Ĥ㳰ޤϡΥɥơ󥳥Ȥˤϡȶڤʸ Ǥ \f2/**\fP \f2*/\fP ӹƬΥꥹޤƤϤʤʤȤǤȤ񤯾ϡǽʸѥåγפȤ \f2<body>\fP Ⱥǽʸδ֤˥ȥ䤽¾ΥƥȤޤʤ褦ˤޤѥåޤ뤳ȤϤǤޤۤΥɥơ󥳥ȤƱ͡٤ƤΥ֥åϡΤȤ֤ʤФʤޤ \f2@see\fP ѥåȥեɲäˤϡ̾Ѥɬפޤܺ٤ϡ .na -\f2package.html\fP の例 @ +\f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecommentsを参照してください。 -.LP -.LP -\f3パッケージコメントファイルの処理\fP \- Javadoc ツールは、実行時にパッケージコメントファイルを自動的に検索し、このファイルを見つけると次の処理を行います。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments򻲾ȤƤ .LP +\f3ѥåȥեν\fP \- Javadoc ġϡ¹Ի˥ѥåȥեưŪ˸Υե򸫤ĤȼνԤޤ .RS 3 .TP 2 o -処理できるようにコメントをコピーする (\f2package.html\fP の場合であれば、\f2<body>\fP と \f2</body>\fP HTML タグの間にある内容をすべてコピーする。\f2<head>\fP を含め、そこに \f2<title>\fP やソースファイルの著作権記述などの情報を配置することもできるが、生成後のドキュメンテーションにはそれらは一切表示されない) +Ǥ褦˥Ȥ򥳥ԡ( \f2package.html\fP ξǤС \f2<body>\fP \f2</body>\fP HTML δ֤ˤƤ򤹤٤ƥԡ롣 \f2<head>\fP ޤᡢ \f2<title>\fP 䥽եҤʤɤξ֤뤳ȤǤ뤬ΥɥơˤϤϰɽʤ) .TP 2 o -パッケージタグがあれば、すべて処理する +ѥåС٤ƽ .TP 2 o -生成したパッケージの概要ページの最後に、処理したテキストを挿入する (例: +ѥåγץڡκǸˡƥȤ (: .na -\f2パッケージの概要\fP @ +\f2ѥåγ\fP @ .fi http://java.sun.com/javase/6/docs/api/java/applet/package\-summary.html) .TP 2 o -パッケージの概要ページの先頭に、パッケージコメントの最初の文をコピーする。さらに、概要ページのパッケージリストに、パッケージ名とパッケージコメントの最初の文を追加する (例: +ѥåγץڡƬˡѥåȤκǽʸ򥳥ԡ롣ˡץڡΥѥåꥹȤˡѥå̾ȥѥåȤκǽʸɲä (: .na -\f2概要の要約\fP @ +\f2פ\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html)。文の末尾は、クラスやメンバーの主説明の最初の文の末尾と同じ規則によって判断される +http://java.sun.com/javase/6/docs/api/overview\-summary.html)ʸϡ饹СμκǽʸƱ§ˤäȽǤ .RE - -.LP .SS -概要コメントファイル +ץȥե .LP +ɥȲƥץꥱޤϥѥååȤϡȼγץɥơ󥳥ȤĤȤǤѤΡ֥ץեݻޤƤϡJavadoc ġˤä복ץڡȤ߹ޤޤΥȤˤϡ̾ץꥱޤϥѥååΤƤϤޤɥȤ򵭽Ҥޤ .LP -ドキュメント化する各アプリケーションまたはパッケージセットは、独自の概要ドキュメンテーションコメントを持つことができ、それは専用の「ソース」ファイルに保持されます。 その内容は、Javadoc ツールによって生成される概要ページに組み込まれます。このコメントには、通常、アプリケーションまたはパッケージセット全体に当てはまるドキュメントを記述します。 +ץȥեˤϡեǤդ̾ (̾ \f4overview.html\fP) դǤդξ (̾ϥĥ꡼κǾ) ֤ǤޤȤС \f2java.applet\fP ѥåΥե뤬 \f2/home/user/src/java/applet\fP ǥ쥯ȥ˳ǼƤСץȥե \f2/home/user/src/overview.html ˺Ǥޤ\fP .LP +ۤʤѥåΥåȤФ javadoc ʣ¹ԤϡƱ 1 ĤΥեΥåȤФʣγץȥեǤޤȤСɥơѤ \-private ꤷ javadoc 1 ¹ԤȡɥơѤˤΥץꤷʤǺټ¹Ԥ뤳ȤǤޤξ硢Ƴץȥե 1 ʸܤǡΥɥơѤޤѤȤƵҤǤޤ .LP -概要コメントファイルを作成する場合は、ファイルに任意の名前を付け、任意の場所に置くことができます。ただし、通常は、ファイル名を \f4overview.html\fP にして、ソースツリーの最上位レベルに置きます。たとえば、\f2java.applet\fP パッケージのソースファイルが \f2/home/user/src/java/applet\fP ディレクトリに含まれている場合は、\f2/home/user/src/overview.html\fP に概要コメントファイルを作成できます。 -.LP -.LP -異なるパッケージのセットに対して javadoc を複数回実行する場合は、同じ 1 つのソースファイルのセットに対して複数の概要コメントファイルを作成できます。たとえば、内部ドキュメンテーション用に \-private を指定して javadoc を 1 回実行したあと、公開ドキュメンテーション用にそのオプションを指定しないで再度実行することができます。この場合、各概要コメントファイルの 1 文目で、そのドキュメンテーションを公開用または内部用として記述できます。 -.LP -.LP -概要コメントファイルの内容は、前述のパッケージコメントファイルと同様、HTML で記述された 1 つの大きなドキュメンテーションコメントです。詳細は、前述の説明を参照してください。要点を繰り返すと、このコメントを記述する場合は、最初の文をアプリケーションまたはパッケージセットの要約とし、\f2<body>\fP と最初の文の間にタイトルその他のテキストを含めないようにします。概要タグを含めることができます。 どのドキュメンテーションコメントについても、インラインタグ (\f2{@link}\fP など) 以外のすべてのタグは、主説明のあとに置く必要があります。\f2@see\fP タグを追加する場合は、完全指定の名前を使用しなければなりません。 -.LP -.LP -Javadoc ツールの実行時に、\-overview オプションを使って概要コメントファイル名を指定します。このファイルは、パッケージコメントファイルと同じように処理されます。 +ץȥեƤϡҤΥѥåȥեƱ͡HTML ǵҤ줿 1 Ĥ礭ʥɥơ󥳥ȤǤܺ٤ϡҤ򻲾ȤƤ򷫤֤ȡΥȤ򵭽Ҥϡǽʸ򥢥ץꥱޤϥѥååȤȤ \f2<body>\fP Ⱥǽʸδ֤˥ȥ뤽¾ΥƥȤޤʤ褦ˤޤץޤ뤳ȤǤޤۤΥɥơ󥳥ȤƱ \f2{@link}\fP ʤɤΥ饤󥿥٤ƤΥϡΤȤ֤ɬפޤ \f2@see\fP ɲäˤϡ̾Ѥɬפޤ .LP +Javadoc ġμ¹Իˡ\-overview ץȤäƳץȥե̾ꤷޤΥեϡѥåȥեƱ褦˽ޤ .RS 3 .TP 2 o -\f2<body>\fP タグと \f2</body>\fP タグの間にあるすべての内容を処理のためにコピーする +\f2<body>\fP \f2</body>\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ .TP 2 o -概要タグがあればすべて処理する +ץС٤ƽ .TP 2 o -生成した概要ページの最後に、処理したテキストを挿入する (例: +ץڡκǸˡƥȤ (: .na -\f2概要の要約\fP @ +\f2פ\fP @ .fi http://java.sun.com/javase/6/docs/api/overview\-summary.html) .TP 2 o -概要ページの先頭に、概要コメントの最初の文をコピーする +ץڡƬˡץȤκǽʸ򥳥ԡ .RE - -.LP .SS -その他の未処理のファイル +¾̤Υե .LP +ˤϡJavadoc ġˤäΥǥ쥯ȥ˥ԡ롢¾ǤդΥեޤ뤳ȤǤޤ̤ˡΤ褦ʥեˤϡեåե롢ץ Java (.java) ӥ饹 (.class) ե롢Ƥ̾ Java եΥɥơ󥳥ȤαƶʤΩ HTML եʤɤޤ .LP -ソースには、Javadoc ツールによって生成先のディレクトリにコピーされる、その他の任意のファイルを含めることができます。一般に、このようなファイルには、グラフィックファイル、サンプルの Java ソース (.java) およびクラス (.class) ファイル、内容が通常の Java ソースファイルのドキュメンテーションコメントの影響を受けない独立した HTML ファイルなどがあります。 -.LP -.LP -未処理のファイルをソースに含めるには、それらのファイルを \f4doc\-files\fP というディレクトリに置きます。 このディレクトリは、ソースファイルがある任意のパッケージディレクトリの下に作成できます。このようなサブディレクトリは、パッケージごとに 1 つ用意できます。イメージ、サンプルコード、ソースファイル、.class ファイル、アプレット、および HTML ファイルをこのディレクトリに格納できます。たとえば、ボタンのイメージ \f2button.gif\fP を \f2java.awt.Button\fP クラスのドキュメントに含める場合は、そのファイルを \f2/home/user/src/java/awt/doc\-files/\fP ディレクトリに置きます。\f2doc\-files\fP ディレクトリを \f2/home/user/src/java/doc\-files\fP に置くことはできません。 これは、\f2java\fP はパッケージではなく、そのディレクトリそのものにソースファイルが入っていないからです。 -.LP -.LP -これらの未処理のファイルへのリンクは、すべて明示的に記述する必要があります。 これは、Javadoc ツールがそれらのファイルを見ずに、単にディレクトリとその内容を生成先にコピーするだけだからです。たとえば、\f2Button.java\fP のドキュメンテーションコメント内のリンクは、次のようになります。 +ʤեޤˤϡ\f4doc\-files\fP Ȥ̾Υǥ쥯ȥˤΥե֤ޤΥǥ쥯ȥϡե뤬Ǽ줿ǤդΥѥåǥ쥯ȥΥ֥ǥ쥯ȥˤޤΤ褦ʥ֥ǥ쥯ȥϡѥåȤ 1 ѰդǤޤ᡼ץ륳ɡե롢.class ե롢ץåȡ HTML ե򤳤Υǥ쥯ȥ˳ǼǤޤȤСܥβ \f2button.gif\fP \f2java.awt.Button\fP 饹Υɥơ˴ޤˤϡΥե \f2/home/user/src/java/awt/doc\-files/\fP ǥ쥯ȥ֤ޤʤ \f2doc\-files\fP ǥ쥯ȥ \f2/home/user/src/java/doc\-files\fP ֤뤳ȤϤǤޤ󡣤ʤʤ顢 \f2java\fP ϥѥåǤϤʤǤĤޤꡢjava ľܴޤޤƤ륽ե 1 Ĥ¸ߤƤޤ .LP +̤ΥեؤΥ󥯤ϡ٤Ū˵ҤɬפޤϡJavadoc ġ뤬Υե򸫤ˡñ˥ǥ쥯ȥȤƤ˥ԡǤȤС \f2Button.java\fP Υɥơ󥳥Υ󥯤ϡΤ褦ˤʤޤ .nf \f3 .fl @@ -664,23 +386,16 @@ o .fl \fP .fi - -.LP .SS -テストファイルおよびテンプレートファイル +ƥȥե뤪ӥƥץ졼ȥե .LP +γȯԤ顢ƥȥե뤪ӥƥץ졼ȥեб륽եζ᤯Υĥ꡼¸Ȥ˾ޤĤޤꡢΥեƱǥ쥯ȥޤϥ֥ǥ쥯ȥ¸ȤȤǤ .LP -一部の開発者から、テストファイルおよびテンプレートファイルを対応するソースファイルの近くのソースツリーに保存したいという要望がありました。つまり、これらのソースファイルと同じディレクトリまたはサブディレクトリに保存したいということです。 +̤Υե̾ŪϤ Javadoc ġ¹Ԥϡƥȥե뤪ӥƥץ졼ȥետŪ˽ơʤ褦ˤ뤳ȤǤޤѥå̾ޤϥ磻ɥɤϤϡʲΥ롼˽äơΥƥȥե뤪ӥƥץ졼ȥե뤬ʤ褦ˤɬפޤ .LP +ƥȥեȥƥץ졼ȥեΰ㤤ϡƥȥեϡǥѥǽʥեǤΤФơƥץ졼ȥեϡǤϤʤȤǤƥץ졼ȥե.javaפǽ뤳ȤǤޤ .LP -個別のソースファイル名で明示的に渡して Javadoc ツールを実行する場合は、テストファイルおよびテンプレートファイルを意図的に除外して、処理されないようにすることができます。ただし、パッケージ名またはワイルドカードで渡す場合は、以下のルールに従って、これらのテストファイルおよびテンプレートファイルが処理されないようにする必要があります。 -.LP -.LP -テストファイルとテンプレートファイルの違いは、テストファイルは、正当でコンパイル可能なソースファイルであるのに対して、テンプレートファイルは、そうではないという点です。 ただし、テンプレートファイルも「.java」で終わることができます。 -.LP -.LP -\f3テストファイル\fP \- 開発者の多くは、あるパッケージのコンパイル可能で実行可能なテストファイルをそのパッケージのソースファイルと同じディレクトリに配置したいと考えています。しかしテストファイルは、名前なしパッケージなど、ソースファイルパッケージとは別のパッケージに属させたいとも考えています (そのため、テストファイルには package ステートメントがないか、またはソースとは別の package ステートメントがある)。このような状況では、コマンド行で指定されているソースのパッケージ名を指定してそのソースがドキュメント化されているときに、テストファイルは警告またはエラーを引き起こします。そのようなテストファイルはサブディレクトリに配置する必要があります。\f2com.package1\fP に追加する場合は、それらのテストファイルを、ハイフンが含まれるためパッケージ名としては無効になるサブディレクトリに配置します。 -.LP +\f3ƥȥե\fP \- ȯԤ¿ϡѥåΥѥǽǼ¹Բǽʥƥȥե򤽤ΥѥåΥեƱǥ쥯ȥ֤ȹͤƤޤƥȥեϡ̾ʤѥåʤɡեѥåȤ̤Υѥå°ȤͤƤޤ (Τᡢƥȥեˤ package ơȥȤʤޤϥȤ̤ package ơȥȤ)Τ褦ʾǤϡޥɹԤǻꤵƤ륽Υѥå̾ꤷƤΥɥȲƤȤˡƥȥեϷٹޤϥ顼ޤΤ褦ʥƥȥեϥ֥ǥ쥯ȥ֤ɬפޤȤС \f2com.package1\fP ΥեФƥȥեɲäϼΤ褦ˡϥեޤǤ뤿˥ѥå̾ȤƤ̵Ǥ褦ʥ֥ǥ쥯ȥˡΥե֤ޤ .nf \f3 .fl @@ -688,248 +403,189 @@ o .fl \fP .fi - .LP +ȡJavadoc ġǤϷٹʤ test ǥ쥯ȥ򥹥åפޤ .LP -こうすると、Javadoc ツールでは警告なしで test ディレクトリをスキップします。 +ƥȥե doc Ȥޤޤ硢Τ褦˥磻ɥɤޤƥȥե̾ϤƥƥȥեΥɥȤ褦ˡJavadoc ġ̸Ĥ˼¹ԤǤ褦ǤޤȤС \f2com/package1/test\-files/*.java ʤɤǤ\fP .LP -.LP -テストファイルに doc コメントが含まれる場合、次のようにワイルドカードを含んだテストソースファイル名で渡してテストファイルのドキュメントを生成するように、Javadoc ツールを別個に実行できるように設定できます。 たとえば、\f2com/package1/test\-files/*.java\fP などです。 -.LP -.LP -\f3ソースファイルのテンプレート\fP \- テンプレートファイルの名前は「.java」で終わることもありますが、テンプレートファイルはコンパイルできません。ソースディレクトリに保持したいソースファイルのテンプレートがある場合は、このファイル名にハイフン (\f2Buffer\-Template.java\fP など) やその他の不正な Java 文字を使用します。 こうすることで、処理されないようになります。これは、Javadoc ツールが処理するのは、「.java」接尾辞を除いた名前が 正規のクラス名であるソースファイルだけであるためです ( +\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ ( .na -\f2「識別子」\fP @ +\f2Identifiers\fP @ .fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625参照)。 +http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625) +.SH "ե" .LP -.SH "生成されるファイル" -.LP -.LP -デフォルトでは、javadoc ツールは、HTML 形式のドキュメントを生成する標準ドックレットを使います。このドックレットは、以下の種類のファイルを生成します。 それぞれの HTML ページは、個々のファイルに相当します。javadoc が生成するファイルの名前には、クラスやインタフェースの名前にちなんだものと、そうでないもの (\f2package\-summary.html\fP など) の 2 種類があります。後者のグループのファイル名には、前者のグループとファイル名が競合しないように、ハイフンが含まれています。 -.LP -.LP -\f3基本内容ページ\fP +ǥեȤǤϡjavadoc ġϡHTML ΥɥȤɸɥååȤȤޤΥɥååȤϡʲμΥեޤ줾 HTML ڡϡġΥեޤjavadoc ե̾ˤϡ饹䥤󥿥ե̾ˤʤΤȡǤʤ ( \f2package\-summary.html ʤ\fP) 2 बޤԤΥ롼פΥե̾ˤϡԤΥ롼פȥե̾礷ʤ褦ˡϥե󤬴ޤޤƤޤ .LP +\f3ƥڡ\fP .RS 3 .TP 2 o -ドキュメント化するクラスまたはインタフェースごとに 1 つの\f3クラスページまたはインタフェースページ\fP (\f2クラス名\fP\f2.html\fP) +ɥȲ륯饹ޤϥ󥿥եȤ 1 Ĥ\f3饹ڡޤϥ󥿥եڡ\fP (\f2饹̾\fP\f2.html\fP) .TP 2 o -ドキュメント化するパッケージごとに 1 つの\f3パッケージページ\fP (\f2package\-summary.html\fP)。Javadoc ツールは、ソースツリーのパッケージディレクトリ内に \f2package.html\fP または \f2package\-info.java\fP というファイルがあれば、その中の HTML テキストをこのページに組み入れます。 +ɥȲѥåȤ 1 Ĥ\f3ѥåڡ\fP (\f2package\-summary.html\fP)Javadoc ġϡ \f2package.html\fP ޤ \f2package\-info.java\fP Ȥ̾Υե HTML ƥȤ򤹤٤Ȥޤ .TP 2 o -パッケージセット全体に対して 1 つの\f3概要ページ\fP (\f2overview\-summary.html\fP)。これは、生成ドキュメントの先頭ページになります。Javadoc ツールは、\f2\-overview\fP オプションで指定されたファイル内の HTML テキストをこのページに組み入れます。このページのファイルは、javadoc に複数のパッケージ名を渡した場合にだけ作成されます。詳細は、「HTML フレーム」を参照してください。 +ѥåΥåΤФ 1 Ĥ\f3ץڡ\fP (\f2overview\-summary.html\fP)ϡɥȤƬڡˤʤޤJavadoc ġϡ\f2\-overview\fP ץǻꤵ줿ե HTML ƥȤ򤹤٤ȤޤΥڡΥեϡjavadoc ʣΥѥå̾Ϥˤޤܺ٤ϡHTML ե졼פ򻲾ȤƤ .RE - -.LP -.LP -\f3相互参照ページ\fP .LP +\f3߻ȥڡ\fP .RS 3 .TP 2 o -\f3パッケージのセット全体に対して 1 つのクラス階層ページ\fP (\f2overview\-tree.html\fP)。このページを表示するには、ナビゲーションバーの [概要] をクリックしてから、[階層ツリー] をクリックします。 +\f3ѥåΥåΤФ 1 ĤΥ饹إڡ\fP (\f2overview\-tree.html\fP)ΥڡɽˤϡʥӥС [] 򥯥åƤ顢[إĥ꡼] 򥯥åޤ .TP 2 o -\f3パッケージごとに 1 つのクラス階層ページ\fP (\f2package\-tree.html\fP)。 特定のパッケージ、クラス、またはインタフェースのページを表示してから、[階層ツリー] をクリックすると、そのパッケージのクラス階層が表示されます。 +\f3ѥåȤ 1 ĤΥ饹إڡ\fP (\f2package\-tree.html\fP)ɽˤϡΥѥå饹ޤϥ󥿥եΥڡ˰ư[إĥ꡼] 򥯥åƤΥѥåγؤɽޤ .TP 2 o -\f3パッケージごとに 1 つの [使用] ページ\fP (\f2package\-use.html\fP)と、\f3クラスおよびインタフェースごとに 1 つずつの [使用] ページ\fP (\f2class\-use/\fP\f2クラス名\fP\f2.html\fP)。このページには、特定のクラス、インタフェース、またはパッケージの一部を使っているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドについて記述されます。クラスまたはインタフェース A を例にして考えると、その [使用] ページには、A のサブクラス、A として宣言されたフィールド、A を返すメソッド、A 型のパラメータを持つメソッドおよびコンストラクタが表示されます。 このページを表示するには、まず、パッケージ、クラス、またはインタフェースのページに移動してから、ナビゲーションバーの [使用] リンクをクリックします。 +\f3ѥåȤ 1 Ĥ [] ڡ\fP (\f2package\-use.html\fP) ȡ饹ӥ󥿥եȤ 1 ĤĤ [] ڡ (\f2class\-use/\fP\f2饹̾\fP\f2.html\fP)ΥڡˤϡΥ饹󥿥եޤϥѥåΰȤäƤѥå饹᥽åɡ󥹥ȥ饯ӥեɤˤĤƵҤޤ饹ޤϥ󥿥ե A ˤƹͤȡ [] ڡˤϡA Υ֥饹A Ȥ줿եɡA ֤᥽åɡA Υѥ᡼ĥ᥽åɤӥ󥹥ȥ饯ɽޤ Υڡɽˤϡޤѥå饹ޤϥ󥿥եΥڡ˰ưƤ顢ʥӥС [] 󥯤򥯥åޤ .TP 2 o -\f3非推奨 API ページ\fP (\f2deprecated\-list.html\fP)。 推奨されないすべての名前が一覧表示されます。非推奨名は、一般に改良された API が存在するために使用が推奨されていない API の名前であり、通常、それに置き換わる名前が提示されています。非推奨 API は、将来の実装では削除される可能性があります。 +\f3侩 API ڡ\fP (\f2deprecated\-list.html\fP)侩ʤ̾٤ưɽޤ侩̾ϡ̤˲ɤ줿 API ¸ߤ뤿˻Ѥ侩Ƥʤ API ̾Ǥꡢ̾֤̾󼨤Ƥޤ侩 API ϡμǤϺǽޤ .TP 2 o -\f3定数フィールド値ページ\fP (\f2constant\-values.html\fP)。 static フィールドの値用です。 +\f3եͥڡ\fP (\f2constant\-values.html\fP)static եɤѤǤ .TP 2 o -\f3直列化されたフォームページ\fP (\f2serialized\-form.html\fP)。 直列化および外部化可能なクラスです。これらの各クラスには、直列化フィールドおよびメソッドに関する説明があります。これらの情報は、API を使う開発者ではなく、再実装を行う開発者に必要な情報です。ナビゲーションバーにこのページへのリンクはありませんが、直列化されたクラスに移動して、そのクラスの説明にある [関連項目] セクションで [直列化された形式] をクリックすると、この情報を取得できます。標準ドックレットは、直列化された形式のページを自動的に生成します。ここには、Serializable を実装する public または非 public のクラスが組み込まれており、さらに、\f2readObject\fP メソッド、\f2writeObject\fP メソッド、直列化されたフィールド、および \f2@serial\fP タグ、\f2@serialField\fP タグ、\f2@serialData\fP タグからのドキュメンテーションコメントが組み込まれています。直列化が可能な public クラスを除外するには、そのクラスまたはそのクラスが属するパッケージを \f2@serial exclude\fP タグで指定します。 直列化が可能な package private クラスを含めるには、そのクラスまたはそのクラスが属するパッケージを \f2@serial include\fP タグで指定します。バージョン 1.4 では、\f2\-private\fP オプションの指定なしで javadoc ツールを実行することにより、public クラスおよび private クラスの完全に直列化されたクラスを生成できます。 +\f3ľ󲽤줿ڡ\fP (\f2serialized\-form.html\fP)ľ󲽲ǽijǽʥ饹˴ؤѤǤγƥ饹ˤϡľ󲽥եɤӥ᥽åɤ˴ؤޤξϡAPI ȤȯԤǤϤʤƼԤȯԤɬפʾǤʥӥСˤΥڡؤΥ󥯤Ϥޤ󤬡ľ󲽤줿饹˰ươΥ饹ˤִϢܡץǡľ󲽤줿פ򥯥åȡξǤޤɸɥååȤľ󲽤줿ڡưޤSerializable 뤹٤ƤΥ饹 (public ޤ public) ޤޤۤ \f2readObject\fP ᥽åɤ \f2writeObject\fP ᥽åɡľ󲽤եɡ \f2@serial\fP\f2@serialField\fP\f2@serialData\fP Υɥơ󥳥Ȥޤޤޤpublic ľ󲽲ǽ饹ˤϡΥ饹 (ޤϤΥѥå) \f2@serial exclude\fP ǥޡޤpackage\-private ľ󲽲ǽ饹ޤˤϡΥ饹 (ޤϤΥѥå) \f2@serial include\fP ǥޡޤС 1.4 Ǥ \f2\-private\fP ץλʤ javadoc ġ¹Ԥ뤳Ȥˤꡢpublic 饹 private 饹δľ󲽤줿饹Ǥޤ .TP 2 o -\f3索引\fP (\f2index\-*.html\fP)。 すべてのクラス名、インタフェース名、コンストラクタ名、フィールド名、およびメソッド名が、アルファベット順に並んでいます。索引は、Unicode を扱えるように国際化されています。 1 つのファイルとして生成することも、先頭文字 (英語の場合 A 〜 Z) ごとに別々のファイルとして生成することもできます。 +\f3\fP (\f2index\-*.html\fP)٤ƤΥ饹󥿥ե󥹥ȥ饯եɡӥ᥽åɤ̾ե٥åȽ¤ǤޤϡUnicode 򰷤褦˹ݲƤޤ1 ĤΥեȤ뤳Ȥ⡢Ƭʸ (Ѹξ A Z) Ȥ̡ΥեȤ뤳ȤǤޤ .RE - -.LP -.LP -\f3サポートファイル\fP .LP +\f3ݡȥե\fP .RS 3 .TP 2 o -\f3ヘルプページ\fP (\f2help\-doc.html\fP)。 ナビゲーションバーや前述の各ページに関する説明が記載されています。\f2\-helpfile\fP を使うと、デフォルトのヘルプファイルに代わる独自のカスタムヘルプファイルを提供することもできます。 +\f3إץڡ\fP (\f2help\-doc.html\fP)ʥӥСҤγƥڡ˴ؤܤƤޤǥեȤΥإץեȼΥإץե󶡤ˤϡ\f2\-helpfile\fP Ѥޤ .TP 2 o -表示用の HTML フレームを作成する 1 つの \f3index.html ファイル\fP。このファイルは、フレーム付きの先頭ページを表示する場合にロードします。このファイル自体には、テキスト内容は含まれていません。 +ɽѤ HTML ե졼 1 Ĥ \f3index.html ե\fPΥեϡե졼դƬڡɽ˥ɤޤΥե뼫ΤˤϡƥƤϴޤޤƤޤ .TP 2 o -複数の\f3フレームファイル\fP (\f2*\-frame.html\fP)。 パッケージ、クラス、およびインタフェースのリストが含まれています。 HTML フレームを表示するときに使用されます。 +ʣ\f3ե졼ե\fP (\f2*\-frame.html\fP)ѥå饹ӥ󥿥եΥꥹȤޤޤƤޤHTML ե졼ɽȤ˻Ѥޤ .TP 2 o -\f3パッケージリスト\fPファイル (\f2package\-list\fP)。 \f2\-link\fP オプションおよび \f2\-linkoffline\fP オプションで使用されます。これは、HTML ファイルではなくテキストファイルであり、どのリンクからもアクセスできません。 +\f3ѥåꥹ\fPե (\f2package\-list\fP) \f2\-link\fP \f2\-linkoffline\fP ץǻѤޤϡHTML եǤϤʤƥȥեǤꡢɤΥ󥯤⥢Ǥޤ .TP 2 o -\f3スタイルシート\fPファイル (\f2stylesheet.css\fP)。 生成されるページ上のいくつかの要素について、色、フォントファミリ、フォントサイズ、フォントのスタイル、および配置を制御します。 +\f3륷\fPե (\f2stylesheet.css\fP)ڡΤĤǤˤĤơեȥեߥꡢեȥեȤΥ롢֤椷ޤ .TP 2 o -\f3doc\-files\fP ディレクトリ。 生成先ディレクトリにコピーするイメージ、サンプルコード、ソースコードなどのファイルがすべて格納されます。これらのファイルは、Javadoc ツールによって処理されないため、ファイル内に javadoc タグがあっても無視されます。このディレクトリは、ソースツリーの中にある場合にのみ生成されます。 +\f3doc\-files\fP ǥ쥯ȥꡣǥ쥯ȥ˥ԡ륤᡼ץ륳ɡɤʤɤΥե뤬٤ƳǼޤΥեϡJavadoc ġˤäƽʤᡢե avadoc äƤ̵뤵ޤΥǥ쥯ȥϡĥ꡼ˤˤΤޤ .RE - .LP +\f3HTML ե졼\fP .LP -\f3HTML フレーム\fP +Javadoc ġϡοޤ˼褦ˡ2 3 Ĥ HTML ե졼ޤ1 ĤΥѥåʤ (ޤϥѥåʤ) ϡѥåΰά뤳ȤˤäƺɬפʿΥե졼ޤñΥѥå°륽ե (*.java) ޤñΥѥå̾Ȥ javadoc ޥɤϤϡ¦˥饹ΰɽե졼 (C) 1 ĤޤJavadoc ʣΥѥå̾Ϥϡץڡ (Detail) ˲äơ٤ƤΥѥåɽ 3 Υե졼 (P) ޤγץڡΥե̾ϡ \f2overview\-summary.html Ǥ\fPäơΥեϡ2 İʾΥѥå̾Ϥˤޤ֥ե졼ʤץ󥯤򥯥å뤫overview\-summary.html ǽɽȡե졼άǤޤ .LP +HTML ե졼˴ƤʤϡΥե졼ӥ뤹ˤϡΥե졼ˡ֥եפʤФʤʤȤդƤե졼˥եͿˤϡΥե졼򥯥åޤΤ褦ˤȡ¿Υ֥饦ǤϡڡȤäƤΥե졼򥹥뤷ꡢְץ˥塼ޥɤȤäƤΥե졼Ǥޤ .LP -Javadoc ツールは、下の図に示すように、2 〜 3 つの HTML フレームを生成します。1 つのパッケージしかない場合 (またはパッケージがない場合) は、パッケージの一覧を省略することによって最低限必要な数のフレームを作成します。単一のパッケージに属するソースファイル (*.java) または単一のパッケージ名を引数として javadoc コマンドに渡す場合は、左側の列にクラスの一覧を表示するフレーム (C) 1 つだけが作成されます。Javadoc に複数のパッケージ名を渡した場合は、概要ページ (Detail) に加えて、すべてのパッケージを一覧表示する第 3 のフレーム (P) が作成されます。この概要ページのファイル名は、\f2overview\-summary.html\fP です。したがって、このファイルは、2 つ以上のパッケージ名を渡した場合にだけ作成されます。[フレームなし] リンクをクリックするか、overview\-summary.html を最初に表示すると、フレームを省略できます。 -.LP -.LP -HTML フレームに慣れていない場合は、特定のフレームを印刷およびスクロールするには、そのフレームに「フォーカス」がなければならないことに注意してください。フレームにフォーカスを与えるには、そのフレームをクリックします。このようにすると、多くのブラウザでは、矢印キーやページキーを使ってそのフレームをスクロールしたり、[印刷] メニューコマンドを使ってそのフレームを印刷したりできます。 -.LP -.nf -\f3 -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - |C| Detail | |P| Detail | -.fl - | | | | | | -.fl - | | | |\-| | -.fl - | | | |C| | -.fl - | | | | | | -.fl - | | | | | | -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - javadoc *.java javadoc java.lang java.awt -.fl -\fP -.fi - -.LP -.LP -HTML フレームが必要かどうかによって、次のどちらかのファイルを開始ページとしてロードします。 -.LP +HTML ե졼बɬפɤˤäơΤɤ餫Υե򳫻ϥڡȤƥɤޤ .RS 3 .TP 2 o -\f2index.html\fP (フレームあり) +\f2index.html\fP (ե졼ढ) .TP 2 o -\f2overview\-summary.html\fP (フレームなし) +\f2overview\-summary.html\fP (ե졼ʤ) .RE - .LP +\f3եι¤\fP .LP -\f3生成されるファイルの構造\fP +륯饹ե뤪ӥ󥿥եեϡJava ե뤪ӥ饹եƱǥ쥯ȥ곬ؤޤ1 ĤΥ֥ѥåˤĤ 1 ĤΥǥ쥯ȥꡢȤ¤ˤʤޤ .LP +ȤС \f2java.applet.Applet\fP 饹Ѥ줿ɥȤϡ \f2java/applet/Applet.html\fP ˳ǼޤΥǥ쥯ȥ̾ \f2apidocs\fP Ȥȡjava.applet ѥåΥե빽¤ϡβ˹ۤޤҤΤ褦ˡframeפȤ̾˴ޤեϡ٤ƺޤϺΥե졼ɽޤʳ HTML եϡ٤Ʊ¦Υե졼ɽޤ .LP -生成されるクラスファイルおよびインタフェースファイルは、Java ソースファイルおよびクラスファイルと同じディレクトリ階層に編成されます。1 つのサブパッケージにつき 1 つのディレクトリ、という構造になります。 -.LP -.LP -たとえば、\f2java.applet.Applet\fP クラスに対して生成されるドキュメントは、\f2java/applet/Applet.html\fP に格納されます。生成先のディレクトリの名前が \f2apidocs\fP だとすると、java.applet パッケージのファイル構造は、その下に構築されます。前述のように、「frame」という語を名前に含むファイルは、すべて左上または左下のフレームに表示されます。それ以外の HTML ファイルは、すべて右側のフレームに表示されます。 -.LP -.RS 3 - -.LP -.LP -注 \- 下の階層図で、ディレクトリは\f3太字\fP (\f3bold\fP) で示してあります。アスタリスク (\f2*\fP) は、javadoc への引数がパッケージ名ではなくソースファイル名 (*.java) である場合に省略されるファイルおよびディレクトリを示しています。また、引数がソースファイル名の場合は、\f2package\-list\fP は作成されますが、内容は空です。doc\-files ディレクトリは、ソースツリー内に存在する場合にのみ、生成先に作成されます。 -.LP -.RE + \- γؿޤǡǥ쥯ȥ\f3\fP (bold) ǼƤޤꥹ (\f2*\fP) ϡjavadoc ؤΰѥå̾ǤϤʤե̾ (*.java) Ǥ˾άե뤪ӥǥ쥯ȥ򼨤Ƥޤޤե̾ξ硢 \f2package\-list\fP ϺޤȤ϶Ǥdoc\-files ǥ쥯ȥϡĥ꡼¸ߤˤΤߡ˺ޤ .nf \f3 .fl .fl -\fP\f3apidocs\fP 最上位ディレクトリ +\fP\f3apidocs\fP Ǿ̥ǥ쥯ȥ .fl - index.html HTML フレームを設定する初期ページ + index.html HTML ե졼ꤹڡ .fl - * overview\-summary.html 全パッケージのリスト。 先頭に要約文がある + * overview\-summary.html ѥåΥꥹȡƬʸˤդ .fl - overview\-tree.html 全パッケージのクラス階層のリスト + overview\-tree.html ѥåΥ饹ؤΥꥹ .fl - deprecated\-list.html 全パッケージの推奨されない API のリスト + deprecated\-list.html ѥå侩 API Υꥹ .fl - constant\-values.html 全パッケージの static フィールドの値のリスト + constant\-values.html ѥå static եɤͤΥꥹ .fl - serialized\-form.html 全パッケージの直列化された形式のリスト + serialized\-form.html ѥåľ󲽤줿Υꥹ .fl - * overview\-frame.html 全パッケージのリスト。 左上のフレームに表示される + * overview\-frame.html ѥåΥꥹȡΥե졼ǻѤ .fl - allclasses\-frame.html 全パッケージの全クラスのリスト。 左下のフレームに表示される + allclasses\-frame.html ѥå饹ΥꥹȡΥե졼ǻѤ .fl - help\-doc.html これらのページの構成を示すユーザーヘルプを表示する + help\-doc.html Υڡι򼨤桼إפΥꥹ .fl - index\-all.html \-splitindex オプションなしで作成されたデフォルト索引 + index\-all.html \-splitindex ץꤷʤä˺ǥեȤκ .fl - \f3index\-files\fP \-splitindex オプションを指定して作成されたディレクトリ + \f3index\-files\fP \-splitindex ץꤷ˺ǥ쥯ȥ .fl - index\-<number>.html \-splitindex オプションを指定して作成された索引ファイル + index\-<number>.html \-splitindex ץꤷ˺ե .fl - package\-list パッケージ名のリスト。 外部参照を解決するためだけに使用される + package\-list ѥå̾ΥꥹȡȤ褹뤿˻Ѥ .fl - stylesheet.css フォント、色、配置を定義する HTML スタイルシート + stylesheet.css եȡ֤ HTML 륷 .fl - \f3java\fP パッケージディレクトリ + \f3java\fP ѥåǥ쥯ȥ .fl - \f3applet\fP サブパッケージディレクトリ + \f3applet\fP ֥ѥåǥ쥯ȥ .fl - Applet.html Applet クラスのページ + Applet.html Applet 饹Υڡ .fl - AppletContext.html AppletContext インタフェースのページ + AppletContext.html AppletContext 󥿥եΥڡ .fl - AppletStub.html AppletStub インタフェースのページ + AppletStub.html AppletStub 󥿥եΥڡ .fl - AudioClip.html AudioClip インタフェースのページ + AudioClip.html AudioClip 󥿥եΥڡ .fl - * package\-summary.html このパッケージのクラスのリスト。 先頭に要約文がある + * package\-summary.html ΥѥåΥ饹ΥꥹȡƬʸˤդ .fl - * package\-frame.html このパッケージのクラスのリスト。 左下のフレームに表示される + * package\-frame.html ΥѥåΥ饹ΥꥹȡΥե졼ǻѤ .fl - * package\-tree.html このパッケージのクラス階層のリスト + * package\-tree.html ΥѥåΥ饹ؤΥꥹ .fl - package\-use このパッケージが使用されている場所のリスト + package\-use ΥѥåѤƤΥꥹ .fl - \f3doc\-files\fP イメージやサンプルのファイルが格納されるディレクトリ + \f3doc\-files\fP 䥵ץեݻǥ쥯ȥ .fl - \f3class\-use\fP API が使用されている場所のページを格納するディレクトリ + \f3class\-use\fP API ѤƤΥڡݻǥ쥯ȥ .fl - Applet.html Applet クラスを使用するページ + Applet.html Applet 饹λѤ˴ؤڡ .fl - AppletContext.html AppletContext インタフェースを使用するページ + AppletContext.html AppletContext 󥿥եλѤ˴ؤڡ .fl - AppletStub.html AppletStub インタフェースを使用するページ + AppletStub.html AppletStub 󥿥եλѤ˴ؤڡ .fl - AudioClip.html AudioClip インタフェースを使用するページ + AudioClip.html AudioClip 󥿥եλѤ˴ؤڡ .fl - \f3src\-html\fP ソースコードディレクトリ + \f3src\-html\fP ɥǥ쥯ȥ .fl - \f3java\fP パッケージディレクトリ + \f3java\fP ѥåǥ쥯ȥ .fl - \f3applet\fP サブパッケージディレクトリ + \f3applet\fP ֥ѥåǥ쥯ȥ .fl - Applet.html Applet ソースコードのページ + Applet.html Applet ɤΥڡ .fl - AppletContext.html AppletContext ソースコードのページ + AppletContext.html AppletContext ɤΥڡ .fl - AppletStub.html AppletStub ソースコードのページ + AppletStub.html AppletStub ɤΥڡ .fl - AudioClip.html AudioClip ソースコードのページ + AudioClip.html AudioClip ɤΥڡ .fl .fi - -.LP .SS -生成される API 宣言 -.LP -.LP -Javadoc ツールは、それぞれのクラス、インタフェース、フィールド、コンストラクタ、およびメソッドの説明の最初に、その API 用の宣言を生成します。 この宣言は、その API 項目の宣言です。たとえば、\f2Boolean\fP クラスの宣言は、次のようになります。 + API .LP +Javadoc ġϡ줾Υ饹󥿥եեɡ󥹥ȥ饯ӥ᥽åɤκǽˡ API ѤޤȤС \f2Boolean\fP 饹ϡΤ褦ˤʤޤ .LP \f2public final class Boolean\fP .br @@ -937,29 +593,20 @@ Javadoc ツールは、それぞれのクラス、インタフェース、フィ .br \f2implements Serializable\fP .LP -.LP -また、\f2Boolean.valueOf\fP メソッドの宣言は、次のようになります。 -.LP +ޤ \f2Boolean.valueOf\fP ᥽åɤϡΤ褦ˤʤޤ .LP \f2public static Boolean valueOf(String s)\fP .LP +Javadoc ġǤϡ \f2public\fP \f2protected\fP \f2private\fP \f2abstract\fP \f2final\fP \f2static\fP \f2transient\fP \f2volatile\fP Ȥ߹ޤ \f2synchronized\fP \f2native\fP Ȥ߹ޤ󡣤Ԥ 2 ĤνҤϡξܺ٤ȸʤƤ뤿ᡢAPI ͤˤϴޤޤޤ .LP -Javadoc ツールは、修飾子 \f2public\fP、\f2protected\fP、\f2private\fP、\f2abstract\fP、\f2final\fP、\f2static\fP、\f2transient\fP、および \f2volatile\fP を組み込むことができますが、\f2synchronized\fP と \f2native\fP を組み込むことができません。これら後者の 2 つの修飾子は、実装の詳細と見なされているため、API 仕様には含まれません。 -.LP -.LP -API では、並行性のセマンティクスについて、キーワード \f2synchronized\fP に依存するのではなく、コメントによる主説明としてドキュメント化する必要があります。 たとえば、「1 つの \f2Enumeration\fP を複数のスレッドから並行して使用することはできない」などのコメントを記述します。ドキュメントには、これらのセマンティクスを実現する方法を記述するべきではありません。たとえば、\f2Hashtable\fP はスレッドに対して安全である必要がありますが、「エクスポートされるすべてのメソッドを同期化すればそれを実現できる」のようには指定する根拠はありません。バケットレベルで内部的に同期化する権利を残しておく必要があります。 そうすれば、より高度な並行性が提供されます。 -.LP -.SH "ドキュメンテーションコメント" -.LP -.LP -オリジナルの「ドキュメンテーションコメントの仕様」は、「関連項目」を参照してください。 +API Ǥϡ¹ޥƥˤĤơ \f2synchronized\fP ˰¸ΤǤϤʤȤμȤƥɥȲ٤Ǥ \f2ȤС1 Ĥ Enumeration \fP ʣΥåɤ¹ԤƻѤ뤳ȤϤǤʤפʤɤȵҤޤɥȤˤϡΥޥƥ¸ˡ򵭽Ҥ٤ǤϤޤ󡣤ȤС \f2Hashtable\fP ϥåɤФưǤɬפޤ֥ݡȤ뤹٤ƤΥ᥽åɤƱФ¸ǤפΤ褦ˤϻꤹ뺬Ϥޤ󡣥Хåȥ٥ŪƱ븢ĤƤɬפޤС٤¹󶡤ޤ +.SH "ɥơ󥳥" .LP +ꥸʥΡ֥ɥơ󥳥Ȥλ͡פϡִϢܡפ򻲾ȤƤ .SS -ソースコードへのコメントの挿入 -.LP -.LP -ソースコードの任意のクラス、インタフェース、メソッド、コンストラクタ、またはフィールドの宣言の前に、ドキュメンテーションコメント ("doc comments") を記述することができます。各パッケージにドキュメンテーションコメントを作成できます。 構文は若干異なりますが、概要にもドキュメンテーションコメントを作成できます。ドキュメンテーションコメントは、非公式に「Javadoc コメント」と呼ばれています (この用語は商標関連の使用法に違反)。ドキュメンテーションコメントは、コメントの始まりを示す文字列 \f2/**\fP と、コメントの終わりを示す文字列 \f2*/\fP の間にある文字で構成されます。行の先頭のアスタリスクは、各行に記述できます。 詳細は、以下で説明します。コメントのテキストは、複数行にわたって記述できます。 +ɤؤΥȤ .LP +ɤǤդΥ饹󥿥ե᥽åɡ󥹥ȥ饯ޤϥեɤˡɥơ󥳥 ("doc comments") 򵭽Ҥ뤳ȤǤޤƥѥå˥ɥơ󥳥ȤǤޤʸϼ㴳ۤʤޤפˤɥơ󥳥ȤǤޤɥơ󥳥ȤϡˡJavadoc ȡפȸƤФƤޤ (ѸϾɸϢλˡ˰ȿ)ɥơ󥳥ȤϡȤϤޤ򼨤ʸ \f2/**\fP ȡȤ򽪤򼨤ʸ \f2*/\fP δ֤ˤʸ鹽ޤԤƬΥꥹϡƹԤ˵ҤǤޤܺ٤ϡʲޤȤΥƥȤϡʣԤˤ錄äƵҤǤޤ .nf \f3 .fl @@ -973,26 +620,19 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -次のようにして 1 行に記述すると、スペースを節約できます。 .LP +Τ褦ˤ 1 Ԥ˵ҤȡڡǤޤ .nf \f3 .fl -/** This comment takes up only one line. */ +/** This comment takes up only one line.*/ .fl \fP .fi - .LP +\f3Ȥ\fP \- ɥơ󥳥Ȥϡ饹󥿥ե󥹥ȥ饯᥽åɡޤϥեɤľ֤ƤȤˤǧޤ饹㡢᥽åɤ㡢ӥեɤ򻲾ȤƤ᥽åɤΤ֤Ƥɥơ󥳥Ȥ̵뤵ޤjavadoc ġǤϡ1 ĤʸˤĤ 1 ĤΥɥơ󥳥Ȥǧޤ .LP -\f3コメントの配置\fP \- ドキュメンテーションコメントは、クラス、インタフェース、コンストラクタ、メソッド、またはフィールドの宣言の直前に置かれているときにだけ認識されます。 クラスの例、メソッドの例、およびフィールドの例を参照してください。メソッドの本体に置かれているドキュメンテーションコメントは無視されます。javadoc ツールでは、1 つの宣言文につき 1 つのドキュメンテーションコメントだけが認識されます。 -.LP -.LP -よくある間違いは、クラスのコメントとクラスの宣言の間に \f2import\fP 文を置いてしまうことです。このような記述はしないでください。 このようなクラスコメントは無視されます。 -.LP +褯ְ㤤ϡ饹Ȥȥ饹δ֤ \f2import\fP ʸ֤ƤޤȤǤΤ褦ʵҤϤʤǤΤ褦ʥ饹Ȥ̵뤵ޤ .nf \f3 .fl @@ -1014,11 +654,8 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -\f3ドキュメンテーションコメントは主説明のあとにタグセクションが続く\fP \- コメントの開始区切り文字である \f2/**\fP のあとからタグセクションまでが主説明になります。タグセクションは、先頭文字が \f2@\fP である行で定義される最初のブロックタグから始まります (行の先頭のアスタリスク、空白、および行の先頭の区切り文字 \f2/**\fP は除く)。主説明を記述せず、タグセクションだけのコメントを記述することもできます。主説明は、タグセクション以降に続けることはできません。タグの引数は、複数行にわたって記述できます。タグの数に制限はありません。 何回も記述できるタグと、1 回しか記述できないタグがあります。例えば、次の \f2@see\fP からタグセクションが始まります。 .LP +\f3ɥơ󥳥ȤϼΤȤ˥³ \- Ȥγ϶ڤʸǤ\fP \f2/**\fP ΤȤ饿ޤǤˤʤޤϡԤƬˤǽ \f2@\fP ǽΥ֥åϤޤޤ (ƬΥꥹƬζڤʸ \f2/**\fP Ͻ)򵭽ҤΥȤ򵭽Ҥ뤳ȤǤޤϡʹߤ³뤳ȤϤǤޤ󡣥ΰϡʣԤˤ錄äƵҤǤޤο¤Ϥޤ󡣲⵭ҤǤ륿ȡ1 󤷤ҤǤʤޤȤС \f2@see\fP ϡ򳫻ϤƤޤ .nf \f3 .fl @@ -1032,11 +669,8 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - -.LP -.LP -\f3ブロックタグとインラインタグ\fP \- 「タグ」は、Javadoc が処理できる、ドキュメンテーションコメント内の特別なキーワードです。\f2@tag\fP のように記述するブロックタグ (「スタンドアロンタグ」とも呼ばれる) と、インラインタグ (\f2{@tag}\fP のように中括弧で囲んで記述) の 2 種類のタグがあります。ブロックタグが正しく解釈されるためには、行の先頭のアスタリスク、空白、区切り文字 (\f2/**\fP) を除いて、行の先頭に置かなければなりません。これは、テキスト内のそれ以外の位置で \f2@\fP 文字を使用しても、タグの開始としては解釈されないことを意味しています。行の最初に \f2@\fP 文字を使用してもタグとして解釈されないようにするには、HTML エンティティーの「\f2@\fP」を使用してください。それぞれのブロックタグには、対応付けられたテキストがあります。 このテキストは、タグのあとから、次のタグの前、またはドキュメンテーションコメントの最後までの間に記述されたテキスト (タグやコメント区切り文字を除く) です。この関連テキストは複数行にわたって記述できます。インラインタグは、テキストを記述できる場所であればどこにでも置くことができ、正しく解釈されます。次のコード例には、ブロックタグ \f2@deprecated\fP と、インラインタグ \f2{@link}\fP が含まれています。 .LP +\f3֥åȥ饤󥿥\fP \- \f2֥\fPϡJavadoc Ǥ롢ɥơ󥳥̤ʥɤǤˤ 2 ढޤ1 Ĥ @tag Τ褦ɽ֥å \f2(ɸॿפȤƤФ)\fP ⤦ 1 Ĥ {@tag} Τ褦̤ǰϤޤ륤饤󥿥 \f2Ǥ\fP֥åᤵ뤿ˤϡԤƬΥꥹ򡢶ڤʸ (\f2/**\fP) ơԤƬ֤ʤФʤޤ󡣤ϡ \f2@\fP ʸƥ̤ξǻѤˤϥγϤȤƲᤵʤȤ̣ƤޤԤƬ \f2@\fP ʸѤƤ⤽줬ᤵʤ褦ˤˤϡHTML ƥƥ \f2@\fP Ѥޤ줾Υ֥åˤϡбդ줿ƥȤޤΥƥȤϡΤȤ顢Υޤϥɥơ󥳥ȤκǸޤǤδ֤˵Ҥ줿ƥ (䥳ȶڤʸ) ǤδϢƥȤʣԤˤ錄äƵҤǤޤ饤󥿥ϡƥȤ򵭽ҤǤǤФɤˤǤ֤ȤǤᤵޤˤϥ֥å \f2@deprecated\fP ȥ饤󥿥 \f2{@link}\fP ޤޤƤޤ .nf \f3 .fl @@ -1048,17 +682,12 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - .LP +\f3Ȥ HTML ǵҤ\fP \- ƥȤ HTML ǵҤʤФʤޤ󡣤ϡHTML ΥƥƥȤɬפ뤳ȡ HTML ѤǤ뤳Ȥ̣ޤҤ HTML ΥСȤƤϡѤ֥饦ݡȤǤդΥСѤǤޤɸɥååȤϡǥ󥰥륷 (CSS) ȥե졼ޤᡢ٤Ƥʬ (ɥơ󥳥Ȱʳʬ) HTML 3.2 ˽򤷤ɤ褦˺Ƥޤե졼ॻåбΤᡢƥեˤϡHTML 4.0פȵҤޤ .LP -\f3コメントは HTML で記述する\fP \- テキストは HTML 形式で記述しなければなりません。 これは、HTML のエンティティーを使う必要があること、および HTML タグを使用できることを意味します。記述する HTML のバージョンとしては、使用するブラウザがサポートする任意のバージョンを使用できます。 標準ドックレットは、カスケーディングスタイルシート (CSS) とフレームを含め、すべての部分 (ドキュメンテーションコメント以外の部分) で HTML 3.2 に準拠したコードを生成するように作成されています。ただし、フレームセット対応のため、生成される各ファイルには「HTML 4.0」と記述されます。 -.LP -.LP -たとえば、より小さい (\f2<\fP) およびより大きい (\f2>\fP) という記号は\f2<\fP および \f2>\fP として記述する必要があります。同様に、アンパサンド (\f2&\fP) は、\f2&\fP と記述する必要があります。次の例では、ボールドの HTML タグ \f2<b>\fP を使っています。 -.LP -.LP -次に、ドキュメンテーションコメントを示します。 +ȤС꾮 (\f2<\fP) 椪Ӥ礭 (\f2>\fP) Υƥƥϡ \f2<\fP \f2>\fP ȵҤ٤ǤƱͤˡѥ (\f2&\fP) \f2&\fP ȵҤ٤ǤǤϥܡɤ HTML \f2<b>\fP Ƥޤ .LP +ˡɥơ󥳥Ȥ򼨤ޤ .nf \f3 .fl @@ -1072,20 +701,12 @@ API では、並行性のセマンティクスについて、キーワード \f2 .fl \fP .fi - .LP +\f3ƬΥꥹ\fP \- javadoc ˤɥơ󥳥ȤβϻˡƹԤƬˤ륢ꥹ (\f2*\fP) ʸ˴ޤǽΥꥹ (\f2*\fP) ʸˤ䥿֤˴ޤС 1.4 ϡԤƬΥꥹάƤ⡢ƬζʸϺʤʤޤΤᡢľܥɥơ󥳥Ȥ \f2<PRE>\fP ˥ڡȤƤ⡢ǥȤݻޤ̾֥饦ϡʸ򥿥֤Χ˲ᤷޤǥȤεϺޡˤʤޤ (ڤʸ \f2/**\fP ޤ \f2<PRE>\fP ǤϤʤ) .LP -\f3行頭のアスタリスク\fP \- Javadoc は、ドキュメンテーションコメントを解析するときに、各行の先頭にあるアスタリスク (\f2*\fP) をすべて破棄します。 また、最初のアスタリスク (\f2*\fP) より前の空白とタブも破棄します。バージョン 1.4 からは、行の先頭のアスタリスクを省略しても、先頭の空白文字は削除されなくなりました。このため、コード例を直接ドキュメンテーションコメントの \f2<PRE>\fP タグ内にペーストしても、インデントが保持されます。通常、ブラウザは、空白文字をタブよりも一律に解釈します。インデントは区切り文字 \f2/**\fP または \f2<PRE>\fP タグよりも左寄りになります。 -.LP -.LP -\f3最初の文\fP \- 各ドキュメンテーションコメントの最初の文は、宣言されているエンティティーに関する簡潔かつ完全な要約文である必要があります。この「最初の文」は、直後にスペース、タブ、または改行が続く最初のピリオド (ロケールが英語に設定されている場合)、または最初のタグがある位置で終わります。最初の文は、Javadoc ツールによって HTML ページの最初にあるメンバーの概要の部分にコピーされます。 -.LP -.LP -\f3複数フィールドの宣言\fP \- Java では、1 つの文で複数のフィールドを宣言できます。 ただし、この文には、1 つのドキュメンテーションコメントしか記述できません。 そのコメントが、すべてのフィールドに対してコピーされます。したがって、フィールドごとにドキュメンテーションコメントを記述する必要がある場合は、各フィールドを別々の文で宣言しなければなりません。たとえば、次のドキュメンテーションコメントは、1 つの宣言として記述すると不適切です。 この場合は、宣言を 2 つに分けることをお勧めします。 -.LP -.RS 3 - +\f3ǽʸ\fP \- ƥɥơ󥳥ȤκǽʸϡƤ륨ƥƥ˴ؤʷ餫ĴʸǤɬפޤΡֺǽʸפϡľ˥ڡ֡ޤϲԤ³ǽΥԥꥪ (뤬ѸꤵƤ)ޤϺǽΥ֤ǽޤǽʸϡJavadoc ġˤä HTML ڡκǽˤСγפʬ˥ԡޤ .LP +\f3ʣեɤ\fP \- Java Ǥϡ1 ĤʸʣΥեɤǤޤʸˤϡ1 ĤΥɥơ󥳥ȤҤǤޤ󡣤ΥȤ٤ƤΥեɤФƥԡޤäơեɤȤ˥ɥơ󥳥Ȥ򵭽Ҥɬפϡƥեɤ̡ʸʤФʤޤ󡣤ȤСΥɥơ󥳥Ȥϡ1 ĤȤƵҤŬڤǤξϡ 2 Ĥʬ뤳Ȥ򤪴ᤷޤ .nf \f3 .fl @@ -1099,145 +720,105 @@ public int x, y; // Avoid this .fl \fP .fi -.RE - -.LP -.LP -上記のコードからは、次のようなドキュメントが生成されます。 -.LP -.RS 3 - .LP +嵭ΥɤϡΤ褦ʥɥȤޤ .nf \f3 .fl public int \fP\f3x\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP .nf \f3 .fl public int \fP\f3y\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP -.RE -.LP -\f3見出しタグはなるべく使用しない\fP \- メンバーに対してドキュメンテーションコメントを記述するときには、<H1> や <H2> などの HTML 見出しタグは、なるべく使わないでください。 Javadoc ツールは、完全に構造化されたドキュメントを作成するので、このような構造化タグが使われていると、生成ドキュメントの形式が悪影響を受けることがあります。ただし、クラスやパッケージのコメントでは、これらの見出しタグを使って独自の構造を組み立ててかまいません。 .LP +\f3ФϤʤ٤Ѥʤ\fP \- СФƥɥơ󥳥Ȥ򵭽ҤȤˤϡ<H1> <H2> ʤɤ HTML Фϡʤ٤ȤʤǤ Javadoc ġϡ˹¤줿ɥȤΤǡΤ褦ʹ¤ȤƤȡɥȤηƶ뤳Ȥޤ饹ѥåΥȤǤϡθФȤäȼι¤ȤΩƤƤޤޤ .SS -メソッドコメントの自動コピー -.LP -.LP -Javadoc ツールには、次の 2 つの場合に、クラスおよびインタフェースのメソッドコメントをコピーまたは「継承」する機能があります。コンストラクタ、フィールド、および入れ子のクラスは、ドキュメンテーションコメントを継承しません。 +᥽åɥȤμưԡ .LP +Javadoc ġˤϡ 2 Ĥξˡ饹ӥ󥿥եΥ᥽åɥȤ򥳥ԡޤϡַѾפ뵡ǽޤ󥹥ȥ饯եɡҤΥ饹ϡɥơ󥳥ȤѾޤ .RS 3 .TP 2 o -\f3自動的にコメントを継承して、見つからないテキストを埋める\fP \- 主説明、または \f2@return\fP タグ、\f2@param\fP タグ、\f2@throws\fP タグが、メソッドコメントで見つからない場合、Javadoc ツールは、オーバーライドしたメソッドまたは実装している場合はそのメソッドから、対応する主説明またはタグコメントを、次のアルゴリズムに従ってコピーします。 +\f3ưŪ˥ȤѾƸĤʤƥȤ\fP \- \f2@return\fP \f2@param\fP ޤ \f2@throws\fP ᥽åɥȤ˸Ĥʤ硢Javadoc ġϡС饤ɤޤϼƤϤоݤȤʤ᥽åɤ顢бޤϥȤ򡢼Υ르ꥺ˽äƥԡޤ .LP -厳密には、特定のパラメータの \f2@param\fP タグが見つからない場合、そのパラメータのコメントが、上位の継承階層のメソッドからコピーされます。特定の例外の \f2@throws\fP タグが見つからない場合、その例外が宣言されている場合にかぎり、その \f2@throws\fP タグがコピーされます。 +̩ˤϡΥѥ᡼ \f2@param\fP Ĥʤ硢Υѥ᡼ΥȤ̤ηѾؤΥ᥽åɤ饳ԡޤ㳰 \f2@throws\fP Ĥʤ硢㳰Ƥˤꡢ \f2@throws\fP ԡޤ .LP -この動作はバージョン 1.3 以前の動作とは対照的です。 これまでのバージョンでは、主説明またはタグが存在すれば、コメントは一切継承されませんでした。 +ưϥС 1.3 ưȤоŪǤޤǤΥСǤϡޤϥ¸ߤСȤϰڷѾޤǤ .TP 2 o -\f3{@inheritDoc} タグを持つコメントを明示的に継承する\fP \- インラインタグ \f2{@inheritDoc}\fP を、メソッドの主説明、または \f2@return\fP、\f2@param\fP、\f2@throws\fP タグコメントに挿入します。 継承した対応する主説明またはタグコメントは、その箇所にコピーされます。 +\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ .RE - .LP +ɥơ󥳥Ȥºݤ˥ԡѤˤϡѾ᥽åɤΥե뤬 \-sourcepath ǻꤷѥ֤Ƥ뤳ȤɬפˤʤޤޥɹԤǡ饹ѥåϤɬפϤޤ󡣤ϡ饹ɥȲ륯饹ǤʤФʤʤä 1.3.x Υ꡼Ȱۤʤޤ .LP -ドキュメンテーションコメントを実際にコピーに利用するには、継承したメソッドのソースファイルが \-sourcepath で指定したパスだけに置かれていることが必要になります。コマンド行で、クラスもパッケージも渡す必要はありません。この点は、クラスがドキュメント化されるクラスでなければならなかった 1.3.x 以前のリリースと異なります。 -.LP -.LP -\f3クラスおよびインタフェースからの継承\fP \- クラスおよびインタフェースから継承する次の 3 つの場合に、コメントの継承が行われます。 -.LP +\f3饹ӥ󥿥եηѾ\fP \- 饹ӥ󥿥եѾ뼡 3 ĤξˡȤηѾԤޤ .RS 3 .TP 2 o -クラスのメソッドがスーパークラスのメソッドをオーバーライドしている +饹Υ᥽åɤѡ饹Υ᥽åɤ򥪡С饤ɤƤ .TP 2 o -インタフェースのメソッドがスーパーインタフェースのメソッドをオーバーライドしている +󥿥եΥ᥽åɤѡ󥿥եΥ᥽åɤ򥪡С饤ɤƤ .TP 2 o -クラスのメソッドがインタフェースのメソッドを実装している +饹Υ᥽åɤ󥿥եΥ᥽åɤƤ .RE - .LP +ǽ 2 ĤΥ (᥽åɤС饤ɤƤ) ǤϡJavadoc ġϡΥȤѾƤ뤫ɤˤ餺С饤ɤƤ᥽åɤΥɥˡ֥С饤ɡפȤФС饤ɤƤ᥽åɤؤΥ󥯤񤭹ߤޤ .LP -最初の 2 つのケース (メソッドがオーバーライドしている場合) では、Javadoc ツールは、そのコメントが継承されているかどうかにかかわらず、オーバーライドしているメソッドのドキュメント内に「オーバーライド」という小見出しを生成し、オーバーライドされているメソッドへのリンクを書き込みます。 -.LP -.LP -3 つ目のケース (特定のクラスのメソッドがインタフェースのメソッドを実装している場合) では、javadoc ツールは、オーバーライドしているメソッドのドキュメント内に「定義」という小見出しを生成し、実装されているメソッドへのリンクを書き込みます。これは、コメントが継承されているかどうかにかかわりません。 -.LP -.LP -\f3メソッドの説明が継承されるアルゴリズム\fP \- あるメソッドにドキュメンテーションコメントが記述されていない場合、または {@inheritDoc} タグがある場合、Javadoc ツールは、次のようなアルゴリズムを使用して適切なコメントを検索します。 このアルゴリズムは、もっとも適切なドキュメンテーションコメントを検索できるように設計されており、スーパークラスよりもインタフェースが優先されるようになっています。 +3 ܤΥ (Υ饹Υ᥽åɤ󥿥եΥ᥽åɤƤ) Ǥϡjavadoc ġϡС饤ɤƤ᥽åɤΥɥˡפȤФƤ᥽åɤؤΥ󥯤񤭹ߤޤϡȤѾƤ뤫ɤˤޤ .LP +\f3᥽åɤѾ륢르ꥺ\fP \- ᥽åɤ˥ɥơ󥳥ȤҤƤʤ硢ޤ {@inheritDoc} 硢Javadoc ġϡΤ褦ʥ르ꥺѤŬڤʥȤ򸡺ޤ Υ르ꥺϡäȤŬڤʥɥơ󥳥Ȥ򸡺Ǥ褦߷פƤꡢѡ饹⥤󥿥եͥ褵褦ˤʤäƤޤ .RS 3 .TP 3 1. -直接に実装されている (または、拡張されている) インタフェースを、メソッドの宣言で implements (または extends) キーワードのあとに登場する順序で、1 つずつ調べる。このメソッドについて最初に見つかったドキュメンテーションコメントを採用する +ľܤ˼Ƥ (ޤϡĥƤ) 󥿥ե򡢥᥽åɤ implements (ޤ extends) ɤΤȤо줹ǡ1 ĤĴ٤롣Υ᥽åɤˤĤƺǽ˸Ĥäɥơ󥳥ȤѤ .TP 3 2. -手順 1 でドキュメンテーションコメントが見つからなかった場合は、直接実装されている (または、拡張されている) インタフェースのそれぞれに対して、このアルゴリズム全体を再帰的に適用する (その際の順序は、手順 1 でインタフェースを調べたときの順序と同じ) + 1 ǥɥơ󥳥ȤĤʤäϡľܼƤ (ޤϡĥƤ) 󥿥եΤ줾ФơΥ르ꥺΤƵŪŬѤ (κݤνϡ 1 ǥ󥿥եĴ٤ȤνƱ) .TP 3 3. -手順 2 でドキュメンテーションコメントが見つからなかった場合で、このクラスが Object 以外のクラスである (インタフェースではない) 場合は、次のように処理する + 2 ǥɥơ󥳥ȤĤʤäǡΥ饹 Object ʳΥ饹Ǥ (󥿥եǤϤʤ) ϡΤ褦˽ .RS 3 .TP 3 a. -スーパークラスにこのメソッドについてのドキュメンテーションコメントが記述されていれば、そのコメントを採用する +ѡ饹ˤΥ᥽åɤˤĤƤΥɥơ󥳥ȤҤƤСΥȤѤ .TP 3 b. -手順 3a でドキュメンテーションコメントが見つからなかった場合は、スーパークラスに対して、このアルゴリズム全体を適用する + 3a ǥɥơ󥳥ȤĤʤäϡѡ饹ФơΥ르ꥺΤŬѤ .RE .RE - +.SH "javadoc " .LP -.SH "javadoc タグ" -.LP -.LP -Javadoc ツールは、Java のドキュメンテーションコメント内に埋め込まれた特別なタグを解析します。これらのドキュメンテーションタグを使うと、書式の整った完全な API ドキュメントをソースコードから自動的に生成できます。タグは、単価記号 (\f2@\fP) で始まり、大文字と小文字が区別されます。 これらのタグは、定められたとおりの大文字と小文字を使用して記述する必要があります。タグは、行の先頭 (先行する空白と省略可能なアスタリスクは除く) に置かなければなりません。慣例として、同じ名前のタグは 1 か所にまとめて記述するようにします。たとえば、\f2@see\fP タグが複数ある場合は、すべてを 1 か所にまとめて記述します。 -.LP -.LP -タグには 2 つのタイプがあります。 +Javadoc ġϡJava Υɥơ󥳥ޤ줿̤ʥϤޤΥɥơ󥿥Ȥȡ񼰤ä API ɥȤ򥽡ɤ鼫ưŪǤޤϡ֥åȥޡ׵ (\f2@\fP) ǻϤޤꡢʸȾʸζ̤ޤϡʸȾʸѤơɽƤȤϤɬפޤϡԤƬ (ԤȾάǽʥꥹϽ) ֤ʤФʤޤ󡣴ȤơƱ̾Υ 1 ˤޤȤƵҤ褦ˤޤȤС \f2@see\fP Ϥ٤Ʊ֤ޤ .LP +ˤ 2 ĤΥפޤ .RS 3 .TP 2 o -\f3ブロックタグ\fP \- 主説明に続くタグセクション内にのみ記述可能。ブロックタグは、\f2@tag\fP の形式をとります。 +\f3֥å\fP \- ³ˤΤߵҲǽ֥åϡ \f2@tag\fP ηȤޤ .TP 2 o -\f3インラインタグ\fP \- コメントの主説明内またはブロックタグのコメント内に記述可能。インラインタグは、\f2{@tag}\fP のように中括弧で囲みます。 +\f3饤󥿥\fP \- ⡢ޤϥ֥åΥ˵Ҳǽ饤󥿥ϡ \f2{@tag}\fP.Τ褦̤ǰϤߤޤ .RE - .LP -.LP -今後のリリースで導入されるタグについては、 +Υ꡼Ƴ륿ˤĤƤϡ .na -\f2「Proposed Javadoc Tags」\fP @ +\f2Proposed Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください。 -.LP -.LP -現時点で有効なタグは、次のとおりです。 -.LP -.RS 3 - +http://java.sun.com/j2se/javadoc/proposed\-tags.html򻲾ȤƤ .LP +ͭʥϡΤȤǤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -1267,7 +848,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f3導入された JDK/SDK のバージョン\fP +\f3Ƴ줿 JDK/SDK ΥС\fP .br .di .nr a| \n(dn @@ -1278,7 +859,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3タグ\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f2@author\fP .if \n(80<\n(38 .nr 80 \n(38 @@ -1373,7 +954,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 1124 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 867 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1392,7 +973,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3タグ\fP\h'|\n(41u' +\&\h'|\n(40u'\f3\fP\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -1486,74 +1067,38 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.htmlを参照してください .rm a+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-44 - -.LP -.RE -.LP -カスタムタグについては、\-tag オプションを参照してください。 .LP +ॿˤĤƤϡ\-tag ץ򻲾ȤƤ .RS 3 .TP 3 @author\ name\-text -\-author オプションが使われている場合、生成ドキュメントに「著者」の項目を追加し、指定された \f2name\-text\fP を書き込みます。1 つのドキュメンテーションコメントに複数の \f2@author\fP タグを含めることができます。1 つの \f2@author\fP タグに 1 つの名前を指定することも、1 つのタグに複数の名前を指定することもできます。前者の場合は、Javadoc ツールによって、名前と名前の間にコンマ (\f2,\fP) とスペースが挿入されます。後者の場合は、テキスト全体が、解析されることなく、生成ドキュメントにそのままコピーされます。したがって、コンマではなく、各言語に対応した名前区切り文字を使う必要があるときは、1 つのタグに複数の名前を指定してください。 +\-author ץ󤬻ѤƤ硢ꤵ줿 \f2name\-text\fP ޤ [] ȥɥȤɲäޤ1 ĤΥɥơ󥳥Ȥʣ \f2@author\fP ޤ뤳ȤǤޤ1 Ĥ \f2@author\fP 1 Ĥ̾ꤹ뤳Ȥ⡢ʣ̾ꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .RE - .LP -.RS 3 - -.LP -.LP -詳細については、「タグを使用できる場所」および +ܺ٤ˤĤƤϡ֥ѤǤפ .na -\f2@author タグのドキュメント\fP @ +\f2@author Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@authorを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author򻲾ȤƤ .LP -.LP - -.LP -.RE .RS 3 .TP 3 -@deprecated\ deprecated\-text -.RS 3 - -.LP -.LP -注: JDK 5.0 から、 -.na -\f2@Deprecated 注釈\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/deprecation.htmlを使って特定のプログラム要素を非推奨にできるようになりました。 -.LP +@deprecated\ deprecated\-text : @Deprecated ȤäΥץǤ侩ˤǤޤ .RE -.RE -.RS 3 - .LP + API ư³ޤ API Ѥ٤ǤϤʤȤ򼨤ȤɲäޤJavadoc ġϡ \f2deprecated\-text\fP ˰ưƥåˤ˥ܡɤηٹֿ侩ޤ󡣡פɲäޤΥϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .LP -この API は動作し続けますが、この API を使用するべきではないことを示すコメントを追加します。Javadoc ツールは、\f2deprecated\-text\fP を主説明の前に移動してイタリックにし、その前にボールドの警告「推奨されません。」を追加します。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 +\f2deprecated\-text\fP κǽʸǤϡʤȤ⡢ API 侩ʤʤäȡػѤ٤ API ɼԤ󼨤ɬפޤJavadoc ġϡκǽʸ򡢳ץȺ˥ԡޤΤȤʸǤϡ API 侩ʤͳ뤳ȤǤޤAPI ؤ \f2{@link}\fP ( Javadoc 1.2 ʹߤξ) ޤ٤Ǥ .LP -.LP -\f2deprecated\-text\fP の最初の文では、少なくとも、その API が推奨されなくなった時期と、代替使用するべき API を読者に提示する必要があります。Javadoc ツールは、この最初の文だけを、概要セクションと索引にコピーします。そのあとの文では、その API が推奨されない理由を説明することもできます。また、代わりの API を指し示す \f2{@link}\fP タグ (Javadoc 1.2 以降の場合) を含める必要があります。 次のように記述します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@deprecated タグのドキュメント\fP @ +\f2@deprecated Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecatedを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated򻲾ȤƤ .RS 3 .TP 2 o -Javadoc 1.2 以降では、\f2{@link}\fP タグを使用します。これにより、必要な場所にインラインでリンクを作成できます。例を示します。 -.RE - -.LP -.RS 3 - -.LP +Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤ǤޤȤС .nf \f3 .fl @@ -1567,106 +1112,71 @@ Javadoc 1.2 以降では、\f2{@link}\fP タグを使用します。これによ .fl \fP .fi -.RE - -.LP -.RS 3 .TP 2 o -Javadoc 1.1 では、各 \f2@deprecated\fP タグに対して \f2@see\fP タグ (インラインにはできない) を記述するのが標準の形式です。 +Javadoc 1.1 ξɸϡ \f2@see\fP (饤Բ) \f2@deprecated\fP Ȥ˺뤳ȤǤ .RE - .LP -.LP -推奨されないタグについての詳細は、 +侩ʤˤĤƤξܺ٤ϡ .na -\f2@deprecated タグ\fP @ +\f2@deprecated \fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htmlのドキュメントを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htmlΥɥȤ򻲾ȤƤ .LP -.LP - -.LP -.RE .RS 3 .TP 3 {@code\ text} -\f2<code>{@literal}</code>\fP と同等です。 -.RE - -.LP -.RS 3 - -.LP -.LP -テキストを HTML マークアップまたは入れ子になった javadoc タグとして解釈せずに、\f2text\fP を \f2code\fP フォントで表示します。これにより doc コメントでは、パラメータの種類 (\f2<Object>\fP)、不等号 (\f23 < 4\fP)、または矢印 (\f2<\-\fP) などで、HTML エンティティー (\f2<\fP および \f2>\fP) ではなく、通常の山括弧 (\f2<\fP および \f2>\fP) を使用できます。たとえば doc コメントのテキスト +\f2<code>{@literal}</code>\fP ƱǤ .LP +ƥȤ \f2HTML ޡå\fP ޤ \f2Ҥˤʤä javadoc \fP ȤƲ᤻ˡtext 򥳡ɥեȤɽޤΤᡢɥơ󥳥̾λ (\f2<\fP \f2>\fP) HTML ƥƥ (\f2<\fP \f2>\fP) ˻ѤǤޤȤСѥ᡼η (\f2<Object>\fP) (\f23 < 4\fP) (\f2<\-\fP) ʤɤǤȤСΥɥơ󥳥 .nf \f3 .fl \fP\f4{@code A<B>C}\fP\f3 .fl - + .fl \fP .fi - -.LP -.LP -は、生成された HTML ページで、次のようにそのまま表示されます。 .LP +ϡ줿 HTML ڡǡΤ褦ˤΤޤɽޤ .nf \f3 .fl \fP\f4A<B>C\fP\f3 .fl - + .fl \fP .fi - .LP +ܤ٤ϡ \f2<B>\fP ȤƲᤵ줺ΥեȤϥɥեȤˤʤ롢ȤǤ .LP -注目すべき点として、\f2<B>\fP は太字であると解釈されませんが、コードフォントになります。 +ɥեȤʤƱǽ¸ˤϡ\f2{@literal}\fP Ѥޤ .LP -.LP -コードフォントなしで同じ機能を実現するには、\f2{@literal}\fP を使用します。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@docRoot} -生成されるページから見た、生成ドキュメントの (生成先の) ルートディレクトリへの相対パスを表します。このタグは、著作権のページや会社のロゴなど、生成されるすべてのページから参照するファイルを組み込むときに便利です。通常は、各ページの下部から著作権のページにリンクします。 -.RE - -.LP -.RS 3 - -.LP -.LP -この \f2{@docRoot}\fP タグは、コマンド行からも、ドキュメンテーションコメントの中でも使用できます。このタグは、@return、@param、@deprecated などの任意のタグのテキスト部分を含む、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 +ڡ鸫ɥȤ () 롼ȥǥ쥯ȥؤХѥɽޤΥϡΥڡҤΥʤɡ뤹٤ƤΥڡ黲ȤեȤ߹ȤǤ̾ϡƥڡβΥڡ˥󥯤ޤ .LP + \f2{@docRoot}\fP ϡޥɹԤǤɥơ󥳥ǤѤǤޤΥϡ@return@param@deprecated ʤɤǤդΥΥƥʬޤࡢ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .RS 3 .TP 3 1. -コマンド行では、ヘッダー、フッター、またはボトムノートは次のように定義します。 +ޥɹԤǤϡإåեåޤϥܥȥΡȤϼΤ褦ޤ .nf \f3 .fl javadoc \-bottom '<a href="{@docRoot}/copyright.html">Copyright</a>' .fl - + .fl \fP .fi .LP -\- \f2{@docRoot}\fP をこのように利用する場合、一部の Makefile プログラムでは、中括弧 { } 文字をエスケープする必要があります。たとえば、Inprise MAKE バージョン 5.2 を Windows 上で実行する場合は、「\f2{{@docRoot}}\fP」のように、中括弧を二重にする必要があります。さらに、\f2\-bottom\fP などのオプションに対する引数を、単一引用符ではなく、二重引用符で囲む必要があります。 \f2href\fP 引数の値を囲む引用符は省略します。 + \- \f2{@docRoot}\fP Makefile ǤΤ褦Ѥ硢 Makefile ץǤϡ { } ʸ򥨥פɬפޤȤСInprise MAKE С 5.2 Windows Ǽ¹Ԥϡ \f2{{@docRoot}} Τ褦ˡ̤Ťˤɬפޤ\fPˡ \f2\-bottom\fP ʤɤΥץФñǤϤʤŰǰϤɬפ⤢ޤ ( \f2href\fP ΰϤϾά) .TP 3 2. -ドキュメンテーションコメントの中では、次のように使用します。 +ɥơ󥳥ȤǤϡΤ褦˻Ѥޤ .nf \f3 .fl @@ -1676,16 +1186,13 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htm .fl */ .fl - + .fl \fP .fi .RE - -.LP -.LP -このタグが必要な理由は、生成ドキュメントが、サブパッケージと同じ深さを持つ階層構造のディレクトリに格納されるからです。次に例を示します。 .LP +ΥɬפͳϡɥȤ֥ѥåƱijع¤Υǥ쥯ȥ˳Ǽ뤫Ǥ򼨤ޤ .nf \f3 .fl @@ -1695,201 +1202,118 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.htm .fl \fP .fi - -.LP -.LP -次のように解決されます。 .LP +Τ褦˲褵ޤ .nf \f3 .fl - <a href="../../copyright.html"> java/lang/Object.java の場合 + <a href="../../copyright.html"> java/lang/Object.java ξ .fl .fl \fP .fi - -.LP -.LP -および .LP + .nf \f3 .fl - <a href="../../../copyright.html"> java/lang/ref/Reference.java の場合 + <a href="../../../copyright.html"> java/lang/ref/Reference.java ξ .fl .fl \fP .fi - .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @exception\ class\-name\ description -\f2@exception\fP タグは、\f2@throws\fP タグと同義です。 -.RE - +\f2@exception\fP \f2@throws\fP ƱǤ .LP -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@inheritDoc}\ -もっとも近い継承可能なクラスまたは実装可能なインタフェースから、このタグの現在のドキュメンテーションコメントに、ドキュメントを継承 (コピー) します。この機能により、より汎用的なコメントを継承ツリーの上位に記述し、コピーしたテキストを使って記述することができます。 -.RE - -.LP -.RS 3 - -.LP -.LP -このタグは、ドキュメンテーションコメントの次の位置でのみ有効です。 +äȤᤤѾǽʥ饹ޤϼǽʥ󥿥ե顢ΥθߤΥɥơ󥳥ȤˡɥȤѾ (ԡ) ޤεǽˤꡢŪʥȤѾĥ꡼ξ̤˵ҤԡƥȤȤäƵҤ뤳ȤǤޤ .LP +Υϡɥơ󥳥Ȥμΰ֤ǤΤͭǤ .RS 3 .TP 2 o -メソッドの主説明ブロック内。この場合、主説明は、上位階層のクラスまたはインタフェースからコピーされる +᥽åɤμ֥å⡣ξ硢ϡ̳ؤΥ饹ޤϥ󥿥ե饳ԡ .TP 2 o -メソッドの @return、@param、@throws タグのテキスト引数内。この場合、タグテキストは、上位階層の対応するタグからコピーされる +᥽åɤ @return@param@throws ΥƥȰ⡣ξ硢ƥȤϡ̳ؤб륿饳ԡ .RE - .LP +ѾؤǥȤ򸫤Ĥˡ˴ؤΤˤĤơ֥᥽åɥȤμưԡפ򻲾ȤƤΥĤʤ硢Ȥϡ롼˱ơưŪ˷Ѿ뤫ɤޤޤ .LP -継承階層でコメントを見つける方法に関する正確な説明について、「メソッドコメントの自動コピー」を参照してください。このタグが見つからない場合、コメントは、この節で説明するルールに応じて、自動的に継承されるかどうかが決まります。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 -{@link\ \ package.class#member\ \ label}\ -表示テキスト \f2label\fP とのインラインリンクを挿入します。 \f2label\fP は、参照クラスの指定されたパッケージ、クラス、またはメンバーの名前のドキュメンテーションを指し示します。このタグは、@return、@param、@deprecated などの任意のタグのテキスト部分を含む、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。 -.RE - +{@link\ package.class#member\ label} +ɽƥ \f2label\fP ȤΥ饤󥯤ޤlabel ϡȥ饹λꤵ줿ѥå饹ޤϥС̾ΥɥơؤޤΥϡ@return@param@deprecated ʤɤǤդΥΥƥʬޤࡢ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤ .LP -.RS 3 - +Υ \f2@see\fP ˤ褯Ƥޤɤ⡢\f2package.class\fP\f2#\fP\f2member\fP \f2label\fP λȤλƱǡͭʹʸޤäƱǤ礭ʰ㤤ϡ \f2{@link}\fP Ǥϡ[Ϣ] ˥󥯤֤ˡ饤Υ󥯤ȤǤޤ饤ƥȤΤۤʬȶ̤뤿ˡ \f2{@link}\fP κǽȺǸ̤򵭽Ҥޤ٥ǡ}פȤɬפϡHTML ƥƥΡ}פȤޤ .LP +1 ʸǻѲǽ \f2{@link}\fP ο¤Ϥޤ󡣤Υϡɥơ󥳥Ȥμʬޤ @deprecated@return@param ʤɤǤդΥΥƥʬǻȤȤǤޤ .LP -このタグは、\f2@see\fP タグとよく似ています。 どちらのタグも、\f2package.class\fP\f2#\fP\f2member\fP および \f2label\fP の参照の仕方が同じで、有効な構文もまったく同じです。大きな違いは、\f2{@link}\fP は、リンクを [関連項目] セクションに置くのではなく、インラインリンクを生成するということです。また、インラインテキストのほかの部分と区別するために、\f2{@link}\fP タグの最初と最後に中括弧を記述します。ラベルの中で「}」を使う必要がある場合は、HTML エンティティーの「}」を使います。 -.LP -.LP -1 つの文の中で使用できる \f2{@link}\fP タグの数に制限はありません。このタグは、ドキュメンテーションコメントの主説明部分、または @deprecated、@return、@param などの任意のタグのテキスト部分で使うことができます。 -.LP -.LP -たとえば、次のコメントでは \f2getComponentAt(int, int)\fP メソッドを参照しています。 -.LP +ȤСΥȤǤ \f2getComponentAt(int, int)\fP ᥽åɤ򻲾ȤƤޤ .nf \f3 .fl -{@link #getComponentAt(int, int) getComponentAt} メソッドを使用します。 +{@link #getComponentAt(int, int) getComponentAt} ᥽åɤѤޤ .fl .fl \fP .fi - -.LP -.LP -標準ドックレットでは、上記のコメントから次の HTML が生成されます (このコメントが同じパッケージの別のクラスを参照している場合)。 .LP +ɸɥååȤǤϡ嵭ΥȤ鼡 HTML ޤ (ΥȤƱѥå̤Υ饹򻲾ȤƤ) .nf \f3 .fl -<a href="Component.html#getComponentAt(int, int)">getComponentAt</a> メソッドを使用します。 +<a href="Component.html#getComponentAt(int, int)">getComponentAt</a> ᥽åɤѤޤ .fl .fl \fP .fi - -.LP -.LP -この HTML は、Web ページ上では次のように表示されます。 .LP + HTML ϡWeb ڡǤϼΤ褦ɽޤ .nf \f3 .fl -getComponentAt メソッドを使用します。 +getComponentAt ᥽åɤѤޤ .fl .fl \fP .fi - .LP +\f2{@link}\fP ĥƥɥȲʤ饹ؤΥ󥯤ǽˤˤϡ\f2\-link\fP ץѤޤ .LP -\f2{@link}\fP を、ドキュメント化の対象にしていないクラスにまで拡張するには、\f2\-link\fP オプションを使用します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2{@link} タグのドキュメント\fP @ +\f2{@link} Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}を参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@linkplain\ package.class#member\ label} -リンクのラベルがコードフォントではなくプレーンテキストで表示される点以外は \f2{@link}\fP と同じです。ラベルがプレーンテキストで記述されていると便利です。例: -.RE - -.LP -.RS 3 - -.LP +󥯤Υ٥뤬ɥեȤǤϤʤץ졼ƥȤɽʳ \f2{@link}\fP ƱǤ٥뤬ץ졼ƥȤǵҤƤǤ򻲾ȤƤ: .nf \f3 .fl - {@linkplain add() the overridden method} を参照してください。 + {@linkplain add() the overridden method} 򻲾ȤƤ .fl .fl \fP .fi - .LP +ϰʲΤ褦ɽޤ .LP -これは以下のように表示されます。 +the overridden method 򻲾ȤƤ .LP -.RS 3 - -.LP -.LP -the overridden method を参照してください。 -.LP -.RE -.LP - -.LP -.RE -.RS 3 .TP 3 {@literal\ text} -テキストを HTML マークアップまたは入れ子になった javadoc タグとして解釈せずに、\f2text\fP を表示します。これにより doc コメントでは、パラメータの種類 (\f2<Object>\fP)、不等号 (\f23 < 4\fP)、または矢印 (\f2<\-\fP) などで、HTML エンティティー (\f2<\fP および \f2>\fP) ではなく、通常の山括弧 (\f2<\fP および \f2>\fP) を使用できます。たとえば doc コメントのテキスト -.RE - -.LP -.RS 3 - -.LP +ƥȤ HTML ޡåפޤҤˤʤä javadoc ȤƲ᤻ˡ \f2text\fP ɽޤΤᡢɥơ󥳥̾λ (\f2<\fP \f2>\fP) HTML ƥƥ (\f2<\fP \f2>\fP) ˻ѤǤޤȤСѥ᡼η (\f2<Object>\fP) (\f23 < 4\fP) (\f2<\-\fP) ʤɤǤȤСΥɥơ󥳥 .nf \f3 .fl @@ -1899,40 +1323,22 @@ the overridden method を参照してください。 .fl \fP .fi - .LP +ϡ줿 HTML ڡϥ֥饦ǼΤ褦ˤΤޤɽޤ .LP -は、生成された HTML ページはブラウザで次のようにそのまま表示されます。 +\f2\ \ \ \ \ \fPA<B>C .LP +ܤ٤ϡ \f2<B>\fP ȤƲᤵ줺ΥեȤϥɥեȤˤʤ롢ȤǤ .LP -\f2\ \ \ \ \ \fPA<B>C +ɥեȤƱǽ¸ˤϡ\f2{@code}\fP Ѥޤ .LP -.LP -注目すべき点として、\f2<B>\fP は太字であると解釈されません (コードフォントにならない)。 -.LP -.LP -コードフォントで同じ機能を実現するには、\f2{@code}\fP を使用します。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @param\ parameter\-name description -指定した \f2parameter\-name\fP と指定した \f2description\fP を使用してパラメータを「Parameters」セクションに追加します。doc コメントを記述するときは、\f2description\fP を複数行に続けることができます。このタグは、メソッド、コンストラクタ、またはクラスの doc コメント内でのみ有効です。 -.RE - +ꤵ줿 \f2parameter\-name\fP ΤȤ˻ꤵ줿 \f2description\fP ³ѥ᡼[ѥ᡼] ɲäޤɥơ󥳥Ȥ򵭽ҤȤˤϡ \f2description\fP ʣԤˤ錄äƵҤ뤳ȤǤޤΥϡ᥽åɡ󥹥ȥ饯ޤϥ饹 doc ǤΤͭǤ .LP -.RS 3 - -.LP -.LP -\f2parameter\-name\fP は、メソッドまたはコンストラクタでのパラメータの名前か、クラス、メソッドまたはコンストラクタのタイプパラメータの名前になります。山括弧でパラメータ名を囲むと、型パラメータを使用することを指定します。 -.LP -.LP -クラスの型パラメータの例: +\f2parameter\-name\fP ϡ᥽åɤޤϥ󥹥ȥ饯ǤΥѥ᡼̾饹᥽åɤޤϥ󥹥ȥ饯Υץѥ᡼̾ˤʤޤ̤ǥѥ᡼̾Ϥȡѥ᡼Ѥ뤳Ȥ ꤷޤ .LP +饹ηѥ᡼: .nf \f3 .fl @@ -1950,11 +1356,8 @@ the overridden method を参照してください。 .fl \fP .fi - -.LP -.LP -メソッドの型パラメータの例: .LP +᥽åɤηѥ᡼: .nf \f3 .fl @@ -1978,125 +1381,87 @@ the overridden method を参照してください。 .fl \fP .fi - .LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@param タグのドキュメント\fP @ +\f2@param Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@paramを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @return\ description -[戻り値] セクションを追加して、\f2description\fP のテキストを書き込みます。このテキストでは、戻り値の型と、取り得る値の範囲について記述する必要があります。このタグは、メソッドのドキュメンテーションコメントでのみ有効です。 -.RE - +[] ɲäơ \f2description\fP ΥƥȤ񤭹ߤޤΥƥȤǤϡͤηȡͤϰϤˤĤƵҤɬפޤΥϡ᥽åɤΥɥơ󥳥ȤǤΤͭǤ .LP -.RS 3 - -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@return タグのドキュメント\fP @ +\f2@return Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@returnを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 -@see\ \ reference -[関連項目] 見出しを追加し、\f2reference\fP を指すリンクか、またはテキストエントリを書き込みます。1 つのドキュメンテーションコメントには、任意の数の \f2@see\fP タグを指定できます。 すべての \f2@see\fP タグの内容は、同じの見出しの下にグループ化されます。\f2@see\fP タグには、次の 3 種類の形式があります。 もっともよく使われるのは、3 番目の形式です。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。パッケージ、クラス、またはメンバーに対するインラインリンクを文中に挿入する方法は、\f2{@link}\fP を参照してください。 +@see\ reference +ִϢܡ׸Фɲä \f2reference ؤ󥯤ޤϥƥȥȥ񤭹ߤޤ\fPɥơ󥳥ȤˤǤդο \f2@see\fP ޤ뤳ȤǤޤϤ٤ƱФβ˥롼ײޤ \f2@see\fP ˤϡ 3 ηޤäȤ褯ȤΤϡ3 ܤηǤΥϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤѥå饹ޤϥСФ륤饤󥯤ʸˡϡ\f2{@link}\fP 򻲾ȤƤ .RS 3 .TP 3 @see "string" -\f2string\fP のテキストエントリを追加します。リンクは生成されません。\f2string\fP は、書籍または URL ではアクセスできない情報の参照先です。Javadoc ツールは、最初の文字が二重引用符 (\f2"\fP) かどうかを調べて、この形式をほかの 2 つの形式と区別します。例を示します。 +\f2string Υƥȥȥɲäޤ\fP󥯤ޤ \f2string\fP ϡҤޤ URL ǤϥǤʤλǤJavadoc ġϡǽʸŰ (\f2"\fP) ɤĴ٤ơηۤ 2 Ĥηȶ̤ޤȤС .nf \f3 .fl @see "The Java Programming Language" .fl - -.fl -\fP -.fi -.LP -これは次のようなテキストを生成します。 -.RE -.RS 3 -.RS 3 - -.LP -.RS 3 -.TP 3 -関連項目: -The Java Programming Language -.RE - -.LP -.RE -.RE -.TP 3 -@see <a href="URL#value">label</a> -\f2URL\fP#\f2value\fP で定義されたとおりにリンクを追加します。\f2URL\fP#\f2value\fP は、相対 URL または絶対 URL です。Javadoc ツールは、最初の文字が「より小さい」記号 (\f2<\fP) かどうかを調べて、この形式をほかの 2 つの形式と区別します。例を示します。 -.nf -\f3 -.fl - @see <a href="spec.html#section">Java Spec</a> -.fl .fl \fP .fi .LP -これは次のようなリンクを生成します。 +ϼΤ褦ʥƥȤޤ +.RE +.RE +.RS 3 +.RS 3 .RS 3 .RS 3 .TP 3 -関連項目: +Ϣ: +The Java Programming Language +.RE +.RE +.TP 3 +@see <a href="URL#value">label</a> +\f2URL\fP#\f2value\fP 줿Ȥ˥󥯤ɲäޤ \f2URL\fP#\f2value\fP URL ޤ URL ǤJavadoc ġϡǽʸ֤꾮׵ (\f2<\fP) ɤĴ٤ơηۤ 2 Ĥηȶ̤ޤȤС +.nf +\f3 +.fl + @see <a href="spec.html#section">Java Spec</a> +.fl +\fP +.fi +ϼΤ褦ʥ󥯤ޤ +.RS 3 +.TP 3 +Ϣ: Java Spec .RE -.RE -.RE -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @see\ package.class#member\ label -指定された名前を持つ、参照されている Java 言語のメンバーについてのドキュメントを指すリンクを、表示テキスト \f2label\fP とともに追加します。\f2label\fP は省略可能です。 \f2label\fP を省略すると、リンク先のメンバーの名前が適切に短縮されて表示されます。 「名前が表示される方法」を参照してください。\-noqualifier を使用すると、表示テキストからパッケージ名が全体的に削除されます。ラベルは、自動生成される表示テキストとは異なる表示テキストを指定する場合に使います。 +ĻΥƥ \f2label\fP ĥ󥯤ɲäޤΥ󥯤ϡȤʤ롢ꤵ줿 Java ̾Υɥơؤޤ \f2label\fP ϾάǽǤlabel άȡΥС̾Ŭڤṳ̂ɽޤ ̾ɽˡפ򻲾ȤƤ\-noqualifier ѤȡɽƥȤѥå̾Ū˺ޤ٥ϡưɽƥȤȤϰۤʤɽƥȤꤹ˻Ȥޤ .LP -バージョン 1.2 だけは、ラベルではなく、名前が <code> HTML タグ内に自動的に表示されます。 1.2.2 からは、ラベルを使用するか、しないかにかかわらず、<code> は常に表示テキストを囲むかたちで、含まれます。 +С 1.2 ϡ٥ǤϤʤ̾ <code> HTML ˼ưŪɽޤ 1.2.2 ϡ٥Ѥ뤫ʤˤ餺<code> ϾɽƥȤϤफǡޤޤޤ .LP .RS 3 .TP 2 o -\f4package.class\fP\f4#\fP\f4member\fP には、参照されている任意の有効なプログラム要素の名前を指定します。 つまり、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、またはフィールドの名前です。 ただし、メンバー名ーの前のドットは、シャープ記号 (\f2#\fP) で置き換えます。\f2class\fP は、任意のトップレベルまたは入れ子にされたクラスまたはインタフェースを表します。\f2member\fP は、任意のコンストラクタ、メソッドまたはフィールド (入れ子にされたクラスまたはインタフェースではない) を表します。指定した名前が、ドキュメント化されているクラスに含まれている場合、Javadoc ツールは、その名前へのリンクを自動的に作成します。外部参照クラスへのリンクを作成するには、\f2\-link\fP オプションを使います。参照クラスに属していない名前のドキュメントを参照するには、ほかの 2 つの形式の \f2@see\fP タグを使います。この引数については、このあとの「名前の指定」で詳しく説明します。 +\f4package.class\fP\f4#\fP\f4member\fP ˤϡȤƤǤդͭʥץǤ̾ꤷޤĤޤꡢѥå饹󥿥ե󥹥ȥ饯᥽åɡޤϥեɤ̾ǤС̾ΥɥåȤϡ㡼׵ (\f2#\fP) ֤ޤ \f2class\fP ϡǤդΥȥåץ٥ޤҤˤ줿饹ޤϥ󥿥եɽޤ \f2member\fP ϡǤդΥ󥹥ȥ饯᥽åɤޤϥե (Ҥˤ줿饹ޤϥ󥿥եǤϤʤ) ɽޤꤷ̾ɥȲƤ륯饹˴ޤޤƤ硢Javadoc ġϡ̾ؤΥ󥯤ưŪ˺ޤȥ饹ؤΥ󥯤ˤϡ\f2\-link\fP ץȤޤΥ饹°Ƥʤ̾Υɥơ򻲾ȤˤϡĤ 2 Ĥ \f2@see\fP ΤΤɤ餫ѤޤΰˤĤƤϡΤȤΡ̾λפǾܤޤ .TP 2 o -\f4label\fP は、省略可能なテキストで、リンクのラベルとして表示されます。\f2label\fP には空白を含めることができます。\f2label\fP を省略すると、\f2package.class.member\fP が、現在のクラスおよびパッケージに応じて適切に短縮されて表示されます。 「名前が表示される方法」を参照してください。 +\f4label\fP ϡάǽʥƥȤǡ󥯤Υ٥Ȥɽޤ \f2label\fP ˤ϶ޤ뤳ȤǤޤ \f2label\fP άȡ\f2package.class.member\fP ߤΥ饹ӥѥå˱Ŭڤṳ̂ɽޤ̾ɽˡפ򻲾ȤƤ .TP 2 o -空白文字は、\f2package.class\fP\f2#\fP\f2member\fP と \f2label\fP の間の区切り文字です。括弧の内側の空白文字はラベルの先頭とは解釈されないため、メソッドのパラメータ間に空白文字を入れてもかまいません。 +򤬡 \f2package.class\fP\f2#\fP\f2member\fP \f2label\fP δ֤ζڤʸˤʤޤ̤¦ζʸϥ٥ƬȤϲᤵʤᡢ᥽åɤΥѥ᡼֤˶ʸƤ⤫ޤޤ .RE .LP -\f3例\fP \- この例では、\f2Character\fP クラスにある \f2@see\fP タグが、\f2String\fP クラスの \f2equals\fP メソッドを参照しています。タグには、名前 \f2String#equals(Object)\fP とラベル \f2equals\fP の両方の引数が含まれています。 -.RS 3 - -.LP +\f3\fP \- Ǥϡ \f2@see\fP ( \f2Character\fP 饹) String 饹 \f2equals\fP ᥽å \f2򻲾\fP ƤޤΥˤ̾\f2String#equals(Object)\fPפȥ٥\f2equals\fPפξΰޤޤƤޤ .nf \f3 .fl @@ -2106,62 +1471,33 @@ o .fl */ .fl - -.fl \fP .fi -.RE -.LP -標準ドックレットは、次のような HTML を生成します。 -.RS 3 - -.LP +ɸɥååȤϡΤ褦 HTML ޤ .nf \f3 .fl <dl> .fl -<dt><b>See also:</b> +<dt><b>See Also:</b> .fl <dd><a href="../../java/lang/String#equals(java.lang.Object)"><code>equals<code></a> .fl </dl> -.fl - .fl \fP .fi -.RE -.LP -これは、ブラウザでは次のように表示され、ラベルがリンクテキストになります。 -.RS 3 +ϡ֥饦ǤϼΤ褦ɽ졢٥뤬󥯥ƥȤˤʤޤ .RS 3 .TP 3 -関連項目: +Ϣ: equals .RE -.RE -.RE - .LP -.RS 3 - +\f3̾λ\fP \- \f2package.class\fP\f2#\fP\f2member\fP Ȥ̾ϡ \f2java.lang.String#toUpperCase()\fP Τ褦ʴ̾ˤ뤳Ȥ⡢ \f2String#toUpperCase()\fP \f2#toUpperCase()\fP Τ褦̾ˤ뤳ȤǤޤ̾ꤵƤʤ硢Javadoc ġϡJava ѥ̾θǤ̾򸡺ޤܺ٤ϡΤȤΡ@see θפ򻲾ȤƤ̾ˤϡ᥽åɤʣΰδ֤ʤɡ̤¦Ǥжޤ뤳ȤǤޤ .LP +ʬŪ˻פû̾ꤹ뤳ȤϡϤʸ뤳Ȥ䡢ɤɤߤ䤹ʤ뤳ȤǤɽˡޤޤʷ̾򼨤ޤǡ \f2Class\fP ˤϥ饹ޤϥ󥿥ե \f2Type\fP ˤϥ饹󥿥ե󡢤ޤϴܥǡ \f2method\fP ˤϥ᥽åɤޤϥ󥹥ȥ饯򡢤줾Ǥޤ .LP - -.LP -.LP -\f3名前の指定\fP \- このタグに指定する \f2package.class\fP\f2#\fP\f2member\fP という名前は、\f2java.lang.String#toUpperCase()\fP のように完全指定することも、\f2String#toUpperCase()\fP や \f2#toUpperCase()\fP のように部分的に指定することもできます。名前が完全指定されていない場合、Javadoc ツールは、Java コンパイラの通常の検索順序でその名前を検索します。詳細は、このあとの「@see の検索順序」を参照してください。名前には、メソッドの複数の引数の間など、括弧の内側であれば空白を含めることができます。 -.LP -.LP -「部分的に指定」した短い名前を指定することの利点は、入力する文字数が減ることや、ソースコードが読みやすくなることです。次の表に、さまざまな形式の名前を示します。 この表の中で、\f2Class\fP にはクラスまたはインタフェースを、\f2Type\fP にはクラス、インタフェース、配列、または基本データ型を、そして \f2method\fP にはメソッドまたはコンストラクタを指定できます。 -.LP -.LP - -.LP -.RE -.RS 3 -.RS 3 .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -2191,7 +1527,7 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f4@see\fP\f3\ \fP\f4package.class#member\fP\f3 の一般的な形式\fP +\f4@see\fP\f3\ \fP\f4package.class#member\fP\f3 ΰŪʷ\fP .br .di .nr a| \n(dn @@ -2207,9 +1543,9 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3現在のクラスのメンバーを参照する\fP +\f3ߤΥ饹ΥС򻲾Ȥ\fP .br -\f2@see\fP\ \f2#\fP\f2field\fP +\f2@see\fP\ \f2#\fP\f2ե\fP .br \f2@see\fP\ \f2#\fP\f2method(Type,\ Type,...)\fP .br @@ -2233,21 +1569,21 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3現在の、またはインポートされたパッケージの別のクラスを参照する\fP +\f3ߤΡޤϥݡȤ줿ѥå̤Υ饹򻲾Ȥ\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2field\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2ե\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2method(Type,\ Type,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2method(Type,\ Type,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2method(Type\ argname,\ Type\ argname,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2method(Type\ argname,\ Type\ argname,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2constructor(Type,\ Type,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2constructor(Type,\ Type,...)\fP .br -\f2@see\fP\ \f2Class\fP\f2#\fP\f2constructor(Type\ argname,\ Type\ argname,...)\fP +\f2@see\fP\ \f2饹\fP\f2#\fP\f2constructor(Type\ argname,\ Type\ argname,...)\fP .br \f2@see\fP\ \f2Class.NestedClass\fP .br -\f2@see\fP\ \f2Class\fP +\f2@see\fP\ \f2饹\fP .br .di .nr c| \n(dn @@ -2263,9 +1599,9 @@ equals .ll \n(34u*1u/2u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f3別のパッケージの要素を参照する\fP\ (完全修飾) +\f3̤ΥѥåǤ򻲾Ȥ\fP\ () .br -\f2@see\fP\ \f2package.Class\fP\f2#\fP\f2field\fP +\f2@see\fP\ \f2package.Class\fP\f2#\fP\f2ե\fP .br \f2@see\fP\ \f2package.Class\fP\f2#\fP\f2method(Type,\ Type,...)\fP .br @@ -2279,7 +1615,7 @@ equals .br \f2@see\fP\ \f2package.Class\fP .br -\f2@see\fP\ \f2package\fP +\f2@see\fP\ \f2ѥå\fP .br .di .nr d| \n(dn @@ -2308,7 +1644,7 @@ equals .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1860 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1358 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2396,74 +1732,52 @@ equals .rm d+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-58 -.RE -.RE - -.LP -.RS 3 - -.LP -.LP -上の表に対する補足事項を次に示します。 .LP +ɽФ­򼡤˼ޤ .RS 3 .TP 2 o -最初の種類の形式 (パッケージとクラスを省略) の場合、Javadoc ツールは、現在のクラスの階層だけを検索します。つまり、現在のクラスかインタフェース、そのスーパークラスかスーパーインタフェース、または現在のクラスかインタフェースを囲んでいるクラスかインタフェースからメンバーを検索します (このあとの検索手順 1 〜 3)。現在のパッケージのほかの部分や、ほかのパッケージは検索しません (検索手順 4 〜 5)。 +ǽμη (ѥåȥ饹ά) ξ硢Javadoc ġϡߤΥ饹γؤ򸡺ޤĤޤꡢߤΥ饹󥿥եΥѡ饹ѡ󥿥եޤϸߤΥ饹󥿥եϤǤ륯饹󥿥եС򸡺ޤ (ΤȤθ 1 3)ߤΥѥåΤۤʬ䡢ۤΥѥåϸޤ ( 4 5) .TP 2 o -メソッドまたはコンストラクタを指定するときに括弧を付けずに名前だけ (\f2getValue\fP など) を使用した場合、同じ名前のフィールドが存在しなければ、Javadoc ツールはそのメソッドに対して正しくリンクを作成します。 ただし、括弧と引数を追加するように促す警告メッセージを出力します。このメソッドがオーバーロードされている場合、Javadoc ツールは、検索で最初に見つかったメソッドにリンクします。 結果は前もって特定できません。 +᥽åɤޤϥ󥹥ȥ饯λˡ \f2getValue\fP Τ褦˳̤ʤ̾Ѥ硢Ʊ̾Υեɤ¸ߤƤʤСJavadoc ġˤäƤ̾ؤΥ󥯤ޤ̤ɲä桼¥ηٹåɽޤΥ᥽åɤСɤƤ硢Javadoc ġϡǺǽ˸Ĥä᥽åɤ˥󥯤ޤ̤äǤޤ .TP 2 o -入れ子にされたクラスは、上記のどの形式の場合も、単に「\f2inner\fP」ではなく、「\f2outer\fP\f2.\fP\f2inner\fP」として指定しなければなりません。 +Ҥˤʤä饹ϡ٤ƤηˤĤơ \f2outer\fP\f2.\fP\f2inner\fP Ȥƻꤹɬפޤñ \f2inner\fP ȤϤʤǤ .TP 2 o -すでに述べたとおり、クラスとメンバーを区切るために、ドット (\f2.\fP) ではなくシャープ記号 (\f2#\fP) を使用することに注意してください。このように指定すると、Javadoc ツールは、あいまいさを解決できます。 ドットは、クラス、入れ子にされたクラス、パッケージ、およびサブパッケージを区切るためにも使用されます。ただし、Javadoc ツールでは一般に許容範囲が広く、あいまいさがなければ、ドットでも正しく解析されます。 その場合でも警告は表示されます。 +Ǥ˽Ҥ٤褦ˡ\f2饹ȥСȤδ֤ζڤʸȤƤϡ\fPɥå (\f2.\fP) ǤϤʤ㡼ʸ (#) ѤޤΤ褦˻ꤹȡJavadoc ġϡޤǤޤɥåȤϡ饹Ҥˤ줿饹ѥåӥ֥ѥåڤ뤿ˤѤޤJavadoc ġǤϰ̤˵ϰϤޤʤСɥåȤǤϤޤξǤٹɽޤ .RE - .LP +\f3@see θ\fP \- Javadoc ġϡե (.java)ѥåե (package.html ޤ package\-info.java) ޤϳץե (overview.html) ˴ޤޤ \f2@see\fP ޤԤ 2 ĤΥեǤϡ̾ \f2@see\fP ˻ꤷʤФʤޤ󡣥եǤϡ̾ޤʬ̾Ǥޤ .LP -\f3@see の検索順序\fP \- Javadoc ツールは、ソースファイル (.java)、パッケージファイル (package.html または package\-info.java)、または概要ファイル (overview.html) の中に登場する \f2@see\fP タグを処理します。後者の 2 つのファイルでは、完全指定の名前を \f2@see\fP タグに指定しなければなりません。ソースファイルでは、完全指定の名前、または部分指定の名前を指定できます。 -.LP -.LP -Javadoc ツールは、\f2.java\fP ファイル内で完全指定でない名前が記述された \f2@see\fP タグを見つけると、Java コンパイラと同じ順序で指定された名前を検索します。 ただし、Javadoc ツールは、特定の名前空間のあいまいさを検出しません。 これは、ソースコードにこれらのエラーが存在していないことを前提としているためです。この検索順序は、Java 言語仕様第 2 版の第 6 章「Names」で正式に定義されています。Javadoc ツールは、関連するクラスとパッケージ、およびインポートされたクラスとパッケージのすべてから名前を検索します。具体的には、次の順序で検索します。 -.LP +Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿ǤθϡJava 2 Ǥ 6 ϡNamesפƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ .RS 3 .TP 3 1. -現在のクラスまたはインタフェース +ߤΥ饹ޤϥ󥿥ե .TP 3 2. -外側を囲んでいるクラスとインタフェース (もっとも近いものから検索) +¦ϤǤ륯饹ȥ󥿥ե (äȤᤤΤ鸡) .TP 3 3. -スーパークラスとスーパーインタフェース (もっとも近いものから検索) +ѡ饹ȥѡ󥿥ե (äȤᤤΤ鸡) .TP 3 4. -現在のパッケージ +ߤΥѥå .TP 3 5. -インポートされているパッケージ、クラス、およびインタフェース (import 文の順序に従って検索) +ݡȤƤѥå饹ӥ󥿥ե (import ʸν˽äƸ) .RE - .LP +Javadoc ġϡƥ饹ˤĤƼ 1 3 ƵŪŬѤʤ顢פ̾ĤޤǸ³ޤĤޤꡢޤߤΥ饹򸡺ˤΥ饹ϤǤ륯饹 E 򸡺μ E Υѡ饹򸡺ˤμ E ϤǤ륯饹򸡺ޤ 4 5 Ǥϡ1 ĤΥѥåΥ饹ޤϥ󥿥ե򸡺ϷޤäƤޤ󡣤νϡġΥѥˤäưۤʤޤ 5 ǤϡJavadoc ġϡjava.lang 򸡺ޤΥѥåϡ٤ƤΥץ˼ưŪ˥ݡȤ뤫Ǥ .LP -Javadoc ツールは、各クラスについて手順 1 〜 3 を再帰的に適用しながら、一致する名前が見つかるまで検索を続けます。つまり、まず現在のクラスを検索し、次にそのクラスを囲んでいるクラス E を検索し、その次に E のスーパークラスを検索し、さらにその次に E を囲んでいるクラスを検索します。 手順 4 と 5 では、1 つのパッケージ内のクラスまたはインタフェースを検索する順序は決まっていません。 その順序は、個々のコンパイラによって異なります。手順 5 では、Javadoc ツールは、java.lang を検索します。 このパッケージは、すべてのプログラムに自動的にインポートされるからです。 +Javadoc ġϡɬ⥵֥饹򸡺Ȥϸ¤ޤ󡣤ޤjavadoc μ¹ˤۤΥѥåΥɥȤǤ⡢ۤΥѥå򸡺ޤ󡣤ȤС \f2@see\fP \f2java.awt.event.KeyEvent\fP 饹˴ޤޤƤơ \f2java.awt\fP ѥåΤ̾򻲾ȤƤƤ⡢Υ饹ǤΥѥåݡȤʤꡢjavadoc ϤΥѥåǤθԤޤ .LP +\f3̾ɽˡ\fP \- \f2label\fP άϡ\f2package.class.member\fP ɽޤ̤ˡpackage.class.member ϡߤΥ饹ӥѥå˱Ŭڤṳ̂ޤṳ̂פȤϡɬ׺Ǿ¤̾ɽȤȤǤȤС \f2String.toUpperCase()\fP ᥽åɤˡƱ饹ΥСؤλȤȤۤΥ饹ΥСؤλȤޤޤƤ硢饹̾ɽΤϸԤΥǤ (ɽ򻲾) .LP -Javadoc ツールは、必ずしもサブクラスを検索するとは限りません。 また、javadoc の実行中にほかのパッケージのドキュメントが生成される場合でも、ほかのパッケージを検索しません。たとえば、\f2@see\fP タグが \f2java.awt.event.KeyEvent\fP クラス内にあって、\f2java.awt\fP パッケージにある名前を参照している場合、Javadoc は、そのクラスがインポートしないかぎりそのパッケージを検索しません。 -.LP -.LP -\f3名前が表示される方法\fP \- \f2label\fP を省略すると、\f2package.class.member\fP が表示されます。一般に、package.class.member は、現在のクラスおよびパッケージに応じて適切に短縮されます。「短縮される」とは、必要最小限の名前だけが表示されるということです。たとえば、\f2String.toUpperCase()\fP メソッドに、同じクラスのメンバーへの参照とほかのクラスのメンバーへの参照が含まれている場合、クラス名が表示されるのは後者のケースだけです (次の表を参照)。 -.LP -.LP -パッケージ名を広域的に削除するには、\-noqualifier を使用します。 +ѥå̾򹭰Ū˺ˤϡ\-noqualifier Ѥޤ .br - -.LP -.RE -.RS 3 -.RS 3 .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -2493,7 +1807,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f4String.toUpperCase()\fP\f3 での例\fP +\f4String.toUpperCase() Ǥ\fP .br .di .nr a| \n(dn @@ -2509,7 +1823,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが同じクラスのメンバーを参照している +\f2@see\fP Ʊ饹ƱѥåΥС򻲾ȤƤ .br .di .nr b| \n(dn @@ -2525,7 +1839,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2toLowerCase()\fP (クラス名は省略) +\f2toLowerCase()\fP (饹̾Ͼά) .br .di .nr c| \n(dn @@ -2541,7 +1855,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが別のクラスのメンバーを参照している +\f2@see\fP ۤʤ륯饹ƱѥåΥС򻲾ȤƤ .br .di .nr d| \n(dn @@ -2573,7 +1887,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2Character.toLowerCase(char)\fP (パッケージ名は省略し、クラス名を含む) +\f2Character.toLowerCase(char)\fP (ѥå̾Ͼά饹̾ޤ) .br .di .nr f| \n(dn @@ -2589,7 +1903,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(80 .ll \n(80u .in 0 -\f2@see\fP タグが別のクラスのメンバーを参照している +\f2@see\fP ۤʤ륯饹ۤʤѥåΥС򻲾ȤƤ .br .di .nr g| \n(dn @@ -2621,7 +1935,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ll \n(34u*1u/4u .if \n(.l<\n(82 .ll \n(82u .in 0 -\f2java.io.File.exists()\fP (パッケージ名とクラス名を含む) +\f2java.io.File.exists()\fP (ѥå̾ȥ饹̾ޤ) .br .di .nr i| \n(dn @@ -2632,7 +1946,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3参照の種類\fP +.nr 38 \w\f3Ȥμ\fP .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 @@ -2654,7 +1968,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nr 38 \n(h- .if \n(81<\n(38 .nr 81 \n(38 .nr 82 0 -.nr 38 \w\f3表示される名前\fP +.nr 38 \w\f3ɽ̾\fP .if \n(82<\n(38 .nr 82 \n(38 .82 .rm 82 @@ -2676,7 +1990,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1958 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1434 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2695,7 +2009,7 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .ta \n(80u \n(81u \n(82u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3参照の種類\fP\h'|\n(41u'\h'|\n(42u'\f3表示される名前\fP +\&\h'|\n(40u'\f3Ȥμ\fP\h'|\n(41u'\h'|\n(42u'\f3ɽ̾\fP .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -2814,22 +2128,14 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま .rm i+ .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-28 -.RE -.RE - .LP -.RS 3 - -.LP -.LP -\f3@see の例\fP +\f3@see \fP .br -右側のコメントは、\f2@see\fP タグが別のパッケージ (\f2java.applet.Applet\fP など) のクラス内にある場合に、名前がどのように表示されるかを示しています。 -.LP +¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP Τ褦̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ .nf \f3 .fl - 関連項目: + Ϣ: .fl @see java.lang.String // String \fP\f3 .fl @@ -2848,122 +2154,69 @@ Javadoc ツールは、必ずしもサブクラスを検索するとは限りま @see <a href="spec.html">Java Spec</a> // Java Spec \fP\f3 .fl @see "The Java Programming Language" // "The Java Programming Language" \fP\f3 -.fl - .fl \fP .fi - +\f2@see\fP ĥƥɥȲʤ饹ؤΥ󥯤ǽˤˤϡ\f2\-link\fP ץѤޤ .LP -.LP -\f2@see\fP を、ドキュメント化の対象にしていないクラスにまで拡張するには、\f2\-link\fP オプションを使用します。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@see タグのドキュメント\fP @ +\f2@see Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@seeを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see򻲾ȤƤ +.RE .RE -.LP - .LP .RS 3 .TP 3 @serial\ field\-description | include | exclude -デフォルトの直列化可能フィールドのドキュメンテーションコメントで使用します。 -.RE - +ǥեȤľ󲽲ǽեɤΥɥơ󥳥ȤǻѤޤ .LP -.RS 3 - +\f2field\-description\fP (άǽ) Ǥϡեɤΰ̣ͤΥꥹȤ򼨤ɬפޤɬפ˱ơʣιԤϤä򵭽ҤǤޤɸɥååȤϡξľ󲽤줿Υڡɲäޤ .LP +饹ľ󲽤ȤФ餯Ƥľ󲽲ǽեɤ򥯥饹ɲä硢ˡɲäС̤ʸɲäɬפޤ .LP -\f2field\-description\fP (省略可能) では、フィールドの意味を説明し、取り得る値のリストを示す必要があります。必要に応じて、複数の行に渡って説明を記述できます。標準ドックレットは、この情報を、直列化された形式のページに追加します。 -.LP -.LP -クラスを直列化したあとしばらくしてから直列化可能フィールドをクラスに追加した場合、主説明に、追加したバージョンを識別する文を追加する必要があります。 -.LP -.LP -\f2include\fP および \f2exclude\fP 引数は、直列化された形式のページにクラスまたはパッケージを含めるか除外するかを示します。これらの引数には、次のような効果があります。 -.LP +\f2include\fP \f2exclude\fP ϡľ󲽤줿Υڡ˥饹ޤϥѥåޤ뤫뤫򼨤ޤΰˤϡΤ褦ʸ̤ޤ .RS 3 .TP 2 o -\f2Serializable\fP を実装している public または protected クラスは、通常はそのページに含められます。 ただし、そのクラスまたはそのクラスが属するパッケージが \f2@serial exclude\fP で指定されていると、そのページから除外されます。 +\f2Serializable\fP Ƥ public ޤ protected 饹ϡΥ饹 (ޤϤΥѥå) \f2@serial exclude\fP ȤƥޡƤʤꡢޤޤ .TP 2 o -\f2Serializable\fP を実装している private または package private クラスは、通常はそのページから除外されます。 ただし、そのクラスまたはそのクラスが属するパッケージが \f2@serial include\fP で指定されていると、そのページに含められます。 +\f2Serializable\fP Ƥ private ޤ package\-private 饹ϡΥ饹 (ޤϤΥѥå) \f2@serial include\fP Ȥ ޡƤʤꡢޤ .RE - .LP +: \f2javax.swing\fP ѥå \f2@serial exclude\fP ( \f2package.html\fP ޤ \f2package\-info.java\fP) ȤƥޡƤޤpublic 饹 \f2java.security.BasicPermission\fP \f2@serial exclude\fP ȤƥޡƤޤpackage\-private 饹 \f2java.util.PropertyPermissionCollection\fP \f2@serial include\fP ȤƥޡƤޤ .LP -例: \f2javax.swing\fP パッケージは、\f2@serial exclude\fP で指定されています (\f2package.html\fP または \f2package\-info.java\fP 内)。public クラス \f2java.security.BasicPermission\fP は、\f2@serial exclude\fP で指定されています。package private クラス \f2java.util.PropertyPermissionCollection\fP は、\f2@serial include\fP で指定されています。 +饹٥ǻꤵ줿 @serial ϡѥå٥ǻꤵ줿 @serial 򥪡С饤ɤޤ .LP -.LP -クラスレベルで指定された @serial タグは、パッケージレベルで指定された @serial タグをオーバーライドします。 -.LP -.LP -これらのタグの使用法についての詳細と使用例は、「Java オブジェクト直列化仕様」の第 1.6 節 +ΥλˡˤĤƤξܺ٤ȻϡJava ֥ľ󲽻͡פ 1.6 .na -\f2「クラスの直列化可能なフィールドおよびデータの文書化」\fP @ +\f2֥饹ľ󲽲ǽʥեɤӥǡʸ񲽡\fP @ .fi -http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.htmlを参照してください。また、 +http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html򻲾ȤƤޤ .na -\f2「直列化の FAQ」\fP @ +\f2ľ󲽤 FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missingも参照してください。 この FAQ には、「\-private スイッチを指定しないで javadoc を実行しているのに private フィールドの @serial タグが見つからないという javadoc の警告が表示される」などの一般的な質問への回答が記載されています。直列化形式仕様にクラスを含める場合には、 +http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ .na -\f2「Sun の仕様」\fP @ +\f2Sun λ͡\fP @ .fi -http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.htmlも参照してください。 +http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.html⻲ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @serialField\ field\-name\ field\-type\ field\-description -\f2Serializable\fP クラスの \f2serialPersistentFields\fP メンバーの \f2ObjectStreamField\fP コンポーネントをドキュメント化します。各 \f2ObjectStreamField\fP コンポーネントに対して \f2@serialField\fP タグを 1 つ使う必要があります。 -.RE - +Serializable \f2饹\fP serialPersistentFields \f2С\fP ObjectStreamField ݡͥ \f2ɥȲ\fP ޤ1 Ĥ \f2@serialField\fP \f2ObjectStreamField\fP ݡͥȤǻѤ٤Ǥ .LP -.RS 3 - -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @serialData\ data\-description -\f2data\-description\fP は、直列化された形式でのデータの型と順序を説明するテキストです。このデータには、特に、\f2writeObject\fP メソッドによって書き込まれる省略可能なデータ、および \f2Externalizable.writeExternal\fP メソッドによって書き込まれるすべてのデータ (基底クラスを含む) が含まれます。 -.RE - +\f2data\-description\fP ϡľ󲽤줿ǤΥǡηȽƥȤǤŪ˸ȡΥǡˤϡ \f2writeObject\fP ᥽åɤˤäƽ񤭹ޤάǽʥǡ \f2Externalizable.writeExternal\fP ᥽åɤˤäƽ񤭹ޤ뤹٤ƤΥǡ (쥯饹ޤ) ޤޤޤ .LP -.RS 3 - +\f2@serialData\fP ϡ \f2writeObject\fP \f2readObject\fP \f2writeExternal\fP \f2readExternal\fP \f2writeReplace\fP \f2readResolve\fP ᥽åɤΥɥơ󥳥ǻѤǤޤ .LP -.LP -\f2@serialData\fP タグは、\f2writeObject\fP、\f2readObject\fP、\f2writeExternal\fP、\f2readExternal\fP、\f2writeReplace\fP、および \f2readResolve\fP メソッドのドキュメンテーションコメントで使用できます。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 @since\ since\-text -生成ドキュメントに [導入されたバージョン] 見出しを追加し、指定された \f2since\-text\fP を書き込みます。このテキストには、特別な内部構造はありません。このタグは、すべてのドキュメンテーションコメント、つまり概要、パッケージ、クラス、インタフェース、コンストラクタ、メソッド、およびフィールドで有効です。このタグは、特定の変更または機能が、\f2since\-text\fP に示されたソフトウェアリリース以降、存在していることを意味します。例を示します。 -.RE - -.LP -.RS 3 - -.LP +ɥȤ [Ƴ줿С] Фɲäꤵ줿 \f2since\-text\fP 񤭹ߤޤΥƥȤˤϡ̤¤Ϥޤ󡣤Υϡ٤ƤΥɥơ󥳥ȡĤޤ공סѥå饹󥿥ե󥹥ȥ饯᥽åɡӥեɤͭǤΥϡѹޤϵǽ \f2since\-text ˼줿եȥ꡼ʹߡ¸ߤƤ뤳Ȥ̣ޤ\fPȤС .nf \f3 .fl @@ -2973,52 +2226,26 @@ http://java.sun.com/j2se/javadoc/writingapispecs/serialized\-criteria.htmlも参 .fl \fP .fi - .LP +Java ץåȥեΥɤξ硢ΥϡJava ץåȥե API ͤΥС򼨤ޤѹ䵡ǽե󥹼ɲä줿򼨤Ȥϸ¤ޤʣ @since ѤǤʣ @author Τ褦˰ޤץǤʣ API ǻѤ硢ʣΥѤǤޤ .LP -Java プラットフォームのソースコードの場合、このタグは、Java プラットフォーム API 仕様のバージョンを示します。 その変更や機能がリファレンス実装に追加された時期を示すとは限りません。複数の @since タグを使用でき、複数の @author タグのように扱われます。プログラム要素が複数の API で使用される場合、複数のタグを使用できます。 -.LP -.LP - -.LP -.RE -.RS 3 .TP 3 -@throws\ class\-name\ description\ -\f2@throws\fP タグと \f2@exception\fP タグは同義です。生成ドキュメントに [例外] 小見出しを追加して、\f2class\-name\fP と \f2description\fP テキストを書き込みます。\f2class\-name\fP は、そのメソッドからスローされる可能性のある例外の名前です。このタグは、メソッド、コンストラクタの doc コメント内でのみ有効です。このクラスが完全指定の名前で記述されていない場合、Javadoc ツールは、検索順序に従ってクラスを探します。同じまたは異なる例外の doc コメントで、複数の \f2@throws\fP タグを使用できます。 -.RE - +@throws\ class\-name\ description +\f2@throws\fP \f2@exception\fP ƱǤɥȤˡ㳰׾Фɲäơ \f2class\-name\fP \f2description\fP ΥƥȤ񤭹ߤޤ \f2class\-name\fP ϡΥ᥽åɤ饹ǽΤ㳰̾ǤΥϡ᥽åɡ󥹥ȥ饯 doc ǤΤͭǤΥ饹̾ǵҤƤʤ硢Javadoc ġϡ˽äƥ饹õޤƱޤϰۤʤ㳰 doc Ȥǡʣ \f2@throws\fP ѤǤޤ .LP -.RS 3 - +٤ƤΥåѤ㳰ɥȲ褦ˤ뤿ˡ \f2@throws\fP throws 㳰Ѥ¸ߤʤϡ@throws ΤɥȤǤ뤫Τ褦ˡJavadoc ġˤä㳰 HTML ϤʤǼưŪɲäޤ .LP +С饤ɤ᥽å㳰ŪƤΤߡ \f2@throws\fP ɥơ󤬤Υ᥽åɤ饵֥饹˥ԡޤ󥿥ե᥽åɤ᥽åɤ˥ԡƱͤǤ@throws ˥ɥơѾˤϡ{@inheritDoc} ѤǤޤ .LP -すべてのチェック済み例外がドキュメント化されるようにするために、\f2@throws\fP タグが throws 節内の例外用に存在しない場合は、@throws タグのあるドキュメントであるかのように、Javadoc ツールによって例外が HTML 出力に説明なしで自動的に追加されます。 -.LP -.LP -オーバーライドされるメソッド内で例外が明示的に宣言されている場合のみ、\f2@throws\fP ドキュメンテーションをそのメソッドからサブクラスにコピーされます。インタフェースメソッドから実装メソッドにコピーされる場合も同様です。@throws にドキュメンテーションを継承させるには、{@inheritDoc} を使用できます。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@throws タグのドキュメント\fP @ +\f2@throws Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception򻲾ȤƤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 {@value\ package.class#field} -\f2{@value}\fP が静的フィールドの doc コメントで 引数なしで使用されている場合、その定数の値が表示されます。 -.RE - -.LP -.RS 3 - -.LP +\f2{@value}\fP Ūեɤ doc Ȥ ʤǻѤƤ硢ͤɽޤ .nf \f3 .fl @@ -3034,11 +2261,8 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参 .fl \fP .fi - -.LP -.LP -任意の doc コメント内で引数 \f2package.class#field\fP ありで使用されている場合は、指定した定数の値が表示されます。 .LP +ǤդΥɥơ󥳥ǰ \f2package.class#field\fP ǻѤ줿ϡλꤵ줿ͤɽޤ .nf \f3 .fl @@ -3056,448 +2280,130 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exceptionを参 .fl \fP .fi - .LP + \f2package.class#field\fP ϡ@see ƱηˤʤޤСŪեɤˤʤФʤʤۤʤޤ .LP -引数 \f2package.class#field\fP は、@see 引数と同一の形式になります。ただし、メンバーが静的フィールドになければならない点が異なります。 -.LP -.LP -これらの定数での値は、 +Ǥͤϡ .na -\f2定数フィールド値\fP @ +\f2ե\fP @ .fi -http://java.sun.com/javase/6/docs/api/constant\-values.htmlページにも表示されます。 +http://java.sun.com/javase/6/docs/api/constant\-values.htmlڡˤɽޤ .LP -.LP - -.LP -.RE -.RS 3 .TP 3 @version\ version\-text -\-version オプションが使われている場合、生成ドキュメントに [バージョン] 小見出しを追加して、指定された \f2version\-text\fP を書き込みます。このタグは、このコードが含まれるソフトウェアの現在のバージョン番号を保持するように意図されています。 これに対し、@since は、このコードが導入されたバージョン番号を保持します。\f2version\-text\fP には、特別な内部構造はありません。バージョンタグを使用できる場所を調べるには、「タグを使用できる場所」を参照してください。 -.RE - +\-version ץ󤬻ѤȡɥȤ [С] Фɲäꤵ줿 \f2version\-text\fP 񤭹ߤޤΥϡΥɤޤޤ륽եȥθߤΥСֹݻ褦˰տޤƤޤФ@since ϡΥɤƳ줿Сֹݻޤ \f2version\-text\fP ˤϡ̤¤Ϥޤ󡣥С󥿥ѤǤĴ٤ˤϡ֥ѤǤפ򻲾ȤƤ .LP -.RS 3 - +1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶ̾δ֤ޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .LP -.LP -1 つのドキュメンテーションコメントに複数の \f2@version\fP タグを含めることができます。必要に応じて、\f2@version\fP タグごとに 1 つのバージョン番号を指定することも、タグごとに複数のバージョン番号を指定することもできます。前者の場合は、Javadoc ツールによって、名前と名前の間にコンマ (\f2,\fP) とスペースが挿入されます。後者の場合は、テキスト全体が、解析されることなく、生成ドキュメントにそのままコピーされます。したがって、コンマではなく、各言語に対応した名前区切り文字を使う必要があるときは、1 つのタグに複数の名前を指定してください。 -.LP -.LP -詳細については、 +ܺ٤ˤĤƤϡ .na -\f2@version タグのドキュメント\fP @ +\f2@version Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@versionを参照してください。 -.LP -.RE -.LP -.SS -タグを使用できる場所 -.LP -ここでは、タグを使用できる場所について説明します。\f2@see\fP、\f2@since\fP、\f2@deprecated\fP、\f2{@link}\fP、\f2{@linkplain}\fP および \f2{@docroot}\fP のタグは、すべての doc コメントで使用できます。 -.RS 3 - -.LP -.SS -概要のドキュメンテーションタグ -.LP -.LP -概要タグは、概要ページのドキュメンテーションコメントで使用できるタグです。 このドキュメンテーションコメントは、通常 \f2overview.html\fP という名前ソースファイル内にあります。ほかのドキュメンテーションコメントの場合と同様に、これらのタグは、主説明のあとで使う必要があります。 -.LP -.LP -\f3注\fP \- バージョン 1.2 では、概要ドキュメント内の \f2{@link}\fP タグにバグがあります。テキストは正しく表示されますが、リンクが設定されません。現在のところ、\f2{@docRoot}\fP タグは、概要ドキュメント内では動作しません。 -.LP -.RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3概要タグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2279 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3概要タグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-20 - -.LP +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version򻲾ȤƤ .RE .SS -パッケージドキュメンテーションタグ +ѤǤ .LP +ǤϡѤǤˤĤޤ٤ƤΥɥơ󥳥ȤǻѲǽʥϼΤȤǤ \f2@see\fP \f2@since\fP \f2@deprecated\fP \f2{@link}\fP \f2{@linkplain}\fP \f2{@docroot}\fP +.SS +פΥɥơ󥿥 .LP -パッケージタグは、パッケージのドキュメンテーションコメントで使用できるタグです。 このドキュメンテーションコメントは、\f2package.html\fP または \f2package\-info.java\fP という名前のソースファイル内にあります。ここで使用できる \f2@serial\fP タグは、\f2include\fP または \f2exclude\fP 引数を指定したものだけです。 +ץϡץڡΥɥơ󥳥ȤǻѤǤ륿ǤΥɥơ󥳥Ȥϡ̾ \f2overview.html\fP Ȥ̾Υեˤޤ ۤΥɥơ󥳥ȤξƱͤˡΥϡΤȤǻȤɬפޤ .LP +\f3\fP \- С 1.2 Ǥϡץɥ \f2{@link}\fP ˥ХޤƥȤɽޤ󥯤ꤵޤ󡣸ߤΤȤ \f2{@docRoot}\fP ϡץɥǤưޤ +.LP +\f3ץ\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3パッケージタグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2315 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3パッケージタグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-22 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE .SS -クラスおよびインタフェースドキュメンテーションタグ +ѥåɥơ󥿥 .LP +ѥåϡѥåΥɥơ󥳥ȤǻѤǤ륿ǤΥɥơ󥳥Ȥ \f2package.html\fP ޤ \f2package\-info.java\fP Ȥ̾ΥեˤޤǻѤǤ \f2@serial\fP ϡ \f2include\fP ޤ \f2exclude\fP ꤵ줿ΤǤ .LP -次に、クラスまたはインタフェースのドキュメンテーションコメントで使用できるタグを示します。ここで使用できる \f2@serial\fP タグは、\f2include\fP または \f2exclude\fP 引数を指定したものだけです。 -.LP +\f3ѥå\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f3クラスおよびインタフェースタグ\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 80 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \n(b- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2355 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE -\f3次にクラスコメントの例を示します。\fP +.SS +饹ӥ󥿥եɥơ󥿥 .LP +ˡ饹ޤϥ󥿥եΥɥơ󥳥ȤǻѤǤ륿򼨤ޤǻѤǤ \f2@serial\fP ϡ \f2include\fP ޤ \f2exclude\fP ꤵ줿ΤǤ +.LP +\f3饹ӥ󥿥ե\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE +\f3˥饹Ȥ򼨤ޤ\fP .nf \f3 .fl @@ -3532,138 +2438,45 @@ class Window extends BaseWindow { ... .fl } -.fl - .fl \fP .fi - -.LP .SS -フィールドドキュメンテーションタグ +եɥɥơ󥿥 .LP +ˡեɤΥɥơ󥳥ȤǻѤǤ륿򼨤ޤ .LP -次に、フィールドのドキュメンテーションコメントで使用できるタグを示します。 -.LP +\f3եɥ\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@serialField\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -\f2{@value}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3フィールドタグ\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2436 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3フィールドタグ\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@serialField\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.TP 2 +o +\f2{@value}\fP .RE -\f3次にフィールドコメントの例を示します。\fP -.LP +\f3˥եɥȤ򼨤ޤ\fP .nf \f3 .fl @@ -3679,170 +2492,50 @@ class Window extends BaseWindow { .fl int x = 1263732; .fl - -.fl \fP .fi - -.LP .SS -コンストラクタおよびメソッドドキュメンテーションタグ +󥹥ȥ饯ӥ᥽åɥɥơ󥿥 .LP +ˡ󥹥ȥ饯ޤϥ᥽åɤΥɥơ󥳥ȤǻѤǤ륿򼨤ޤ \f2@return\fP ϥ󥹥ȥ饯ǤϻѤǤ \f2{@inheritDoc}\fP ˤ¤ޤ \f2@serialData\fP ľ󲽥᥽åɤ doc ȤǤΤ߻ѤǤޤ .LP -次に、コンストラクタまたはメソッドのドキュメンテーションコメント内で表示できるタグを示します。 ただし、\f2@return\fP はコンストラクタでは表示できず、\f2{@inheritDoc}\fP は表示に制限があります。\f2@serialData\fP タグは特定の直列化メソッドの doc コメントでのみ使用できます。 -.LP +\f3᥽åɤӥ󥹥ȥ饯\fP .RS 3 - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f3メソッドおよびコンストラクタタグ\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 80 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@param\fP -.br -\f2@return\fP -.br -\f2@throws\fP と \f2@exception\fP -.br -\f2@serialData\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@inheritDoc}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \n(b- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2503 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-30 - -.LP +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@param\fP +.TP 2 +o +\f2@return\fP +.TP 2 +o +\f2@throws\fP \f2@exception\fP +.TP 2 +o +\f2@serialData\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@inheritDoc}\fP +.TP 2 +o +\f2{@docRoot}\fP .RE -\f3次にメソッドのドキュメンテーションコメントの例を示します。\fP -.LP +\f3˥᥽åɤΥɥơ󥳥Ȥ򼨤ޤ\fP .nf \f3 .fl @@ -3874,22 +2567,13 @@ class Window extends BaseWindow { .fl } .fl - -.fl \fP .fi -.RE -.SH "オプション" +.SH "ץ" .LP +javadoc ġϡɥååȤȤäƽϤꤷޤJavadoc ġϡ\-doclet ץǥɥååȤꤵƤʳϡǥեȤɸɥååȤȤޤJavadoc ġˤϡǤդΥɥååȤȤȤ˻ѤǤ륳ޥɹԥץ󤬤ޤΥץˤĤƤϡΤȤΡJavadoc ץפޤɸɥååȤǤϡΤۤˡĤɲäΥޥɹԥץ󶡤ޤΥץˤĤƤϡΤȤΡɸɥååȤ󶡤륪ץפޤɤΥץ̾⡢ʸȾʸ̤ޤ󡣤ץΰǤϡʸȾʸ̤ޤ .LP -javadoc ツールは、ドックレットを使って出力を決定します。Javadoc ツールは、\-doclet オプションでカスタムドックレットが指定されている場合以外は、デフォルトの標準ドックレットを使います。Javadoc ツールには、任意のドックレットとともに使用できるコマンド行オプションがあります。 これらのオプションについては、このあとの「Javadoc オプション」で説明します。標準ドックレットでは、このほかに、いくつかの追加のコマンド行オプションが提供されます。 これらのオプションについては、そのあとの「標準ドックレットが提供するオプション」で説明します。どのオプション名も、大文字と小文字が区別されません。 ただし、オプションの引数では、大文字と小文字が区別されます。 -.LP -.LP -オプションを次に示します。 -.LP -.RS 3 - -.LP +ץϼΤȤǤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -4043,6 +2727,8 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .br \-\f2sourcepath\fP .br +\-sourcetab +.br \-splitindex .br \-stylesheetfile @@ -4055,6 +2741,8 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .br \-tagletpath .br +\-top +.br \-title .br \-use @@ -4101,7 +2789,7 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2680 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 2009 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4157,54 +2845,49 @@ javadoc ツールは、ドックレットを使って出力を決定します。 .rm b+ .rm c+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-123 - -.LP -.RE -.LP -\f2イタリック\fPで示されたオプションは、Javadoc の基本オプションであり、Javadoc ツールのフロントエンドによって提供され、すべてのドックレットで使用できます。標準ドックレット自体は、イタリックでないオプションを提供します。 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-127 .LP +\f2å\fP Ǽ줿ץϡJavadoc δܥץǤꡢJavadoc ġΥեȥɤˤä󶡤졢٤ƤΥɥååȤǻѤǤޤɸɥååȼΤϡåǤʤץ󶡤ޤ .SS -Javadoc オプション -.LP +Javadoc ץ .RS 3 .TP 3 \-overview \ path/filename -Javadoc に対して、\f2path/filename\fP で指定された「ソース」ファイルから概要ドキュメント用のテキストを取得し、そのテキストを概要ページ (\f2overview\-summary.html\fP) に配置するように指定します。\f2path/filename\fP は、\f2\-sourcepath\fP への相対パスです。 +Javadoc Фơ\f2path/filename\fP ǻꤵ줿֥ץե뤫鳵ץɥѤΥƥȤΥƥȤץڡ (\f2overview\-summary.html\fP) ֤褦˻ꤷޤ \f2path/filename\fP ϡȥǥ쥯ȥ꤫ХѥǤ .LP -\f2filename\fP と \f2path\fP には、それぞれ任意の名前と場所を指定できますが、通常は、\f2overview.html\fP という名前を付けて、ソースツリー内の最上位のパッケージディレクトリがあるディレクトリに配置します。この場所に配置すると、\f2\-sourcepath\fP によってこのファイルが指し示されるので、パッケージをドキュメント化する際に \f2path\fP が不要になります。たとえば、\f2java.lang\fP パッケージのソースツリーが \f2/src/classes/java/lang/\fP の場合、概要ファイルを \f2/src/classes/overview.html\fP に配置できます。「使用例」を参照してください。 +\f2filename\fPǤդ̾Ѥ\f2path\fP Ǥդ򤹤뤳ȤǽǤ̾ \f2overview.html\fP Ȥ̾դĥ꡼κǾ̥ѥåǥ쥯ȥޤǥ쥯ȥ֤ޤξ֤ȡѥåɥȲȤ \f2path\fP ꤹɬפʤʤޤʤʤ顢 \f2\-sourcepath\fP ˤäƤΥե뤬ؤ뤫ǤȤС \f2java.lang\fP ѥåΥĥ꡼ \f2/src/classes/java/lang/\fP ξ硢ץե \f2/src/classes/overview.html\fP ֤Ǥޤֻפ򻲾ȤƤ .LP -\f2path/filename\fP で指定するファイルについては、「概要コメントファイル」を参照してください。 +\f2path/filename\fP ǻꤹեˤĤƤϡֳץȥեפ򻲾ȤƤ .LP -概要ページが作成されるのは、Javadoc に複数のパッケージ名を渡した場合だけです。詳細は、「HTML フレーム」を参照してください。 +ץڡΤϡJavadoc ʣΥѥå̾ϤǤܺ٤ϡHTML ե졼פ򻲾ȤƤ .LP -概要ページのタイトルは、\f2\-doctitle\fP によって設定されます。 +ץڡΥȥϡ\f2\-doctitle\fP ˤäꤵޤ .LP .TP 3 \-public -public クラスおよびメンバーだけを表示します。 +public 饹ӥСɽޤ .LP .TP 3 \-protected -protected および public のクラスとメンバーだけを表示します。これはデフォルトの設定です。 +protected public Υ饹ȥСɽޤ줬ǥեȤǤ .LP .TP 3 \-package -package、protected、および public のクラスとメンバーだけを表示します。 +packageprotected public Υ饹ȥСɽޤ .LP .TP 3 \-private -すべてのクラスとメンバーを表示します。 +٤ƤΥ饹ȥСɽޤ .LP .TP 3 \-help -オンラインヘルプを表示します。 Javadoc とドックレットのコマンド行オプションが一覧表示されます。 +饤إפɽޤJavadoc ȥɥååȤΥޥɹԥץ󤬰ɽޤ .LP .TP 3 \-doclet\ class -ドキュメントの生成に使うドックレットを起動するためのクラスファイルを指定します。完全指定の名前を指定してください。このドックレットにより、出力の内容と形式が定義されます。\f4\-doclet\fP オプションが使われていない場合、Javadoc は、標準ドックレットを使ってデフォルトの HTML 形式を生成します。このクラスには、\f2start(Root)\fP メソッドが含まれていなければなりません。この起動クラスへのパスは、\f2\-docletpath\fP オプションによって定義されます。 +ɥȤ˻ȤɥååȤư뤿Υ饹եꤷޤ̾ꤷƤΥɥååȤˤꡢϤƤȷޤ\f4\-doclet\fP ץ󤬻ȤƤʤ硢Javadoc ϡɸɥååȤȤäƥǥեȤ HTML ޤΥ饹ˤ \f2start(Root)\fP ޤޤƤɬפޤεư饹ؤΥѥ \f2\-docletpath\fP ץˤäޤ .LP -たとえば、MIF ドックレットを呼び出すには、次のように指定します。 +ȤСMIF ɥååȤƤӽФˤϡΤ褦˻ꤷޤ .nf \f3 .fl @@ -4213,17 +2896,17 @@ package、protected、および public のクラスとメンバーだけを表 \fP .fi .LP -特定のドックレットを実行した完全な例については、 +ΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ .LP .TP 3 \-docletpath\ classpathlist -\f2\-doclet\fP オプションで指定されているドックレット開始クラスファイル、およびそれが依存するすべての jar ファイルへのパスを指定します。開始クラスファイルが jar ファイル内にある場合、以下の例のように jar ファイルのパスが指定されます。絶対パスまたは現在のディレクトリからの相対パスを指定できます。\f2classpathlist\fP には、複数のパスまたは JAR ファイルを含めることができます。 その場合、各パスまたは JAR ファイルを、Solaris の場合にはコロン (:)、Windows の場合にはセミコロン (;) で区切ります。目的のドックレット開始クラスがすでに検索パス内にある場合は、このオプションは不要です。 +\f2\-doclet\fP ץǻꤵ줿ɥååȳϥ饹ե롢 ӤΥ饹¸뤹٤Ƥ JAR եؤΥѥꤷޤϥ饹ե뤬 jar եˤ硢ʲΤ褦 jar եΥѥꤵޤХѥޤϸߤΥǥ쥯ȥ꤫ХѥǤޤ \f2classpathlist\fP ˤϡʣΥѥޤ JAR եޤ뤳ȤǤޤ ξ硢ƥѥޤ JAR եSolaris ξˤϥ (:)Windows ξˤϥߥ (;) ǶڤޤŪΥɥååȳϥ饹Ǥ˸ѥˤϡΥץפǤ .LP -jar ファイルへのパスの例には、ドックレット開始クラスファイルが含まれています。jar ファイル名が含まれている点に注目してください。 +jar եؤΥѥˤϡɥååȳϥ饹ե뤬ޤޤƤޤjar ե̾ޤޤƤܤƤ .nf \f3 .fl @@ -4231,7 +2914,7 @@ jar ファイルへのパスの例には、ドックレット開始クラスフ .fl \fP .fi -ドックレット開始クラスファイルのパスの例。クラスファイル名が省略されている点に注目してください。 +ɥååȳϥ饹եΥѥ㡣饹ե̾άƤܤƤ .nf \f3 .fl @@ -4239,212 +2922,40 @@ jar ファイルへのパスの例には、ドックレット開始クラスフ .fl \fP .fi -特定のドックレットを実行した完全な例については、 +ΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ .LP .TP 3 \-1.1 -\f2この機能は、Javadoc 1.4 では削除されました。代替機能はありません。このオプションは、Javadoc 1.1 によって生成されるのと同じ外見と機能を持つドキュメントを作成するためのものでした。 入れ子のクラスはサポートされていません。このオプションが必要な場合は、Javadoc 1.2 または 1.3 を使用してください。\fP +\f2εǽ Javadoc 1.4 ޤصǽϤޤ󡣤ΥץϡJavadoc 1.1 ˤäΤƱȵǽĥɥȤ뤿ΤΤǤҤΥ饹ϥݡȤƤޤ󡣤ΥץɬפʾϡJavadoc 1.2 ޤ 1.3 ѤƤ\fP .LP .TP 3 \-source release -受け付けるソースコードのバージョンを指定します。\f2release\fP には次の値を指定できます。 +դ륽ɤΥСꤷޤ\f2release\fP ˤϼͤǤޤ +.RS 3 +.TP 2 +o +\f31.5\fP \- javadoc ϡJDK 1.5 Ƴ줿Τʤɤθ쵡ǽޤॳɤդޤ\f3\-source\fP ե饰ѤʤäΥѥΥǥեưϡ1.5 ΤΤˤʤޤ +.TP 2 +o +\f31.4\fP Javadoc ϡJDK 1.4 Ƴ줿ޤॳɤդޤ +.TP 2 +o +\f31.3\fP Javadoc ϡJDK 1.3 ʹߤƳ줿Ρޤ¾θ쵡ǽ򥵥ݡȤޤ +.RE .LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 81 -.nr 34 \n(.lu -.eo -.am 81 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.5 で導入された総称および他の言語機能を含んだコードを受け付けます。\f3\-source\fP フラグを指定しないと、コンパイラはデフォルトとして 1.5 の動作をします。 -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.4 で導入された、アサーションを含むコードを受け付けます。 -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di c+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -Javadoc は、JDK 1.3 以降に導入されたアサーション、総称、または他の言語機能をサポートしません。 -.br -.di -.nr c| \n(dn -.nr c- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 31 0 -.nr 32 0 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.5\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.4\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.3\fP -.if \n(32<\n(38 .nr 32 \n(38 -.80 -.rm 80 -.nr 60 \n(31 -.nr 38 \n(60+\n(32 -.if \n(38>\n(80 .nr 80 \n(38 -.if \n(38<\n(80 .nr 60 +(\n(80-\n(38)/2 -.nr 81 0 -.81 -.rm 81 -.nr 38 \n(a- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(b- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(c- -.if \n(81<\n(38 .nr 81 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr 60 +\n(40 -.nr 41 \n(80+(3*\n(38) -.nr 81 +\n(41 -.nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 2790 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.5\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.4\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(c|u+\n(.Vu -.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.3\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.c+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.rm c+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-14 -.LP -javac でコードをコンパイルするときに使用した値に対応する \f2release\fP の値を使用します。 +javac ǥɤ򥳥ѥ뤹Ȥ˻Ѥͤб \f2release\fP ͤѤޤ .LP .TP 3 \-sourcepath\ sourcepathlist -\f2javadoc\fP コマンドにパッケージ名または \f2\-subpackages\fP を渡すときに、ソースファイル (\f2.java\fP) を検索するためのパスを指定します。\f2sourcepathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパス以下のすべてのサブディレクトリを検索します。このオプションを使って、ドキュメント化されるソースファイルの位置だけでなく、それ自体はドキュメント化されないがドキュメント化されるソースファイルから継承されたコメントを持つソースファイルの位置も確認できます。 +ѥå̾ޤ \-subpackages javadoc ޥɤϤȤϡե (.\f2.java\fP) 򸫤Ĥ뤿 \f2ѥ\fP \f2ޤ\fP \f2sourcepathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤΥץȤäơɥȲ륽եΰ֤Ǥʤ켫ΤϥɥȲʤɥȲ륽ե뤫Ѿ줿Ȥĥեΰ֤ǧǤޤ .LP -\f2\-sourcepath\fP オプションは、javadoc コマンドにパッケージ名を渡すときにだけ使用できます。 \f2javadoc\fP コマンドに渡される \f2.java\fP ファイルは、このパスからは検索されません。\f2.java\fP ファイルを検索するには、そのファイルのあるディレクトリに cd によって移動するか、または各ファイルの先頭にパスを含めます (「1 つ以上のクラスのドキュメント化」を参照)。\f2\-sourcepath\fP が省略された場合、Javadoc は、クラスパスを使ってソースファイルを検索します (\-classpath を参照)。したがって、デフォルトの \-sourcepath は、クラスパスの値です。\-classpath も省略してパッケージ名を Javadoc に渡すと、Javadoc は現在のディレクトリおよびそのサブディレクトリからソースファイルを検索します。 +\f2\-sourcepath\fP ץѤǤΤϡjavadoc ޥɤ˥ѥå̾ϤǤΥѥϡjavadoc ޥɤϤ줿 \f2.java\fP ե \f2\fP ޤ \f2.java\fP ե򸡺ˤϡΥեΤǥ쥯ȥ cd ˤäưư뤫ޤϳƥեƬ˥ѥޤޤ (1 İʾΥ饹ΥɥȲפ򻲾) \f2\-sourcepath\fP ά줿硢Javadoc ϡ饹ѥȤäƥե򸡺ޤ (\-classpath 򻲾)äơǥեȤ \-sourcepath ϡ饹ѥͤǤ\-classpath άƥѥå̾ Javadoc ϤȡJavadoc ϸߤΥǥ쥯ȥꤪӤΥ֥ǥ쥯ȥ꤫饽ե򸡺ޤ .LP -\f2sourcepathlist\fP には、ドキュメント化するパッケージ名のソースツリーのルートディレクトリを設定します。たとえば、\f2com.mypackage\fP というパッケージをドキュメント化する場合に、そのソースファイルが次の場所にあるとします。 +\f2sourcepathlist\fP ˤϡɥȲѥå̾Υĥ꡼Υ롼ȥǥ쥯ȥꤷޤȤС \f2com.mypackage\fP Ȥ̾ΥѥåɥȲˡΥե뤬ξˤȤޤ .nf \f3 .fl @@ -4452,16 +2963,16 @@ javac でコードをコンパイルするときに使用した値に対応す .fl \fP .fi -この場合、次のようにして \f2sourcepath\fP を \f2/home/user/src\fP、つまり \f2com/mypackage\fP を含むディレクトリに指定し、それからパッケージ名 \f2com.mypackage\fP を指定します。 +ΤȤΤ褦ˡ \f2sourcepath\fP com/mypackage ޤǥ쥯ȥǤ \f2/home/user/src\fP ˻ꤷȡ ѥå̾ \f2com.mypackage\fP ꤷޤ .nf \f3 .fl % \fP\f3javadoc \-sourcepath /home/user/src/ com.mypackage\fP .fl .fi -この方法は、ソースパスの値とパッケージ名を連結して、ドットを (円記号) 「\\」に変えると、パッケージのフルパス (C:\\user\\src\\com\\mypackage) になることを理解すると簡単です。\f2/home/user/src/com/mypackage\fP. +ˡϡѥͤȥѥå̾Ϣ뤷ơɥåȤ (ߵ) \\פѤȡѥåΥեѥ \f2/home/user/src/com/mypackage ˤʤ뤳Ȥ򤹤ȴñǤ\fP .LP -2 つのソースパスを設定するには、次のようにします。 +2 ĤΥѥꤹˤϡΤ褦ˤޤ .nf \f3 .fl @@ -4471,132 +2982,124 @@ javac でコードをコンパイルするときに使用した値に対応す .LP .TP 3 \-classpath\ classpathlist -Javadoc が参照クラス (\f2.class\fP ファイル) を検索するパスを指定します。 参照クラスとは、ドキュメント化されるクラスとそれらのクラスによって参照されるすべてのクラスのことです。\f2classpathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパスの以下すべてのサブディレクトリを検索します。\f2classpathlist\fP を指定するときは、 +javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ Javadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ .na -\f2クラスパス\fP @ +\f2饹ѥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#generalのドキュメントにある指示に従ってください。 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#generalΥɥȤˤؼ \f2˽äƤ\fP .LP -\f2\-sourcepath\fP が省略されている場合、Javadoc ツールは、\f2\-classpath\fP を使って、クラスファイルだけでなくソースファイルも検索します (下位互換性のため)。したがって、ソースファイルとクラスファイルを別々のパスから検索する必要がある場合は、\f2\-sourcepath\fP と \f2\-classpath\fP の両方を使います。 +\f2\-sourcepath\fP άȡJavadoc ġϥ饹ե򸡺ȤǤʤե򸡺Ȥˤ \f2\-classpath\fP Ѥޤ (̸ߴΤ)äơեȥ饹ե̡Υѥ鸡ɬפϡ \f2\-sourcepath\fP \f2\-classpath ξȤޤ\fP. .LP -たとえば、\f2com.mypackage\fP をドキュメント化する場合に、ソースファイルがディレクトリ \f2/home/user/src/com/mypackage\fP にあり、このパッケージが \f2/home/user/lib\fP 内のライブラリを使うのであれば、次のように指定します。 +ȤС \f2com.mypackage\fP ɥȲˡΥե뤬ǥ쥯ȥ \f2/home/user/src/com/mypackage\fP ˳ǼƤꡢΥѥå \f2/home/user/lib\fP Υ饤֥˰¸ƤȤޤΤȤΤ褦˻ꤷޤ .nf \f3 .fl % \fP\f3javadoc \-classpath /home/user/lib \-sourcepath /home/user/src com.mypackage\fP .fl .fi -ほかのツールと同様に、\f2\-classpath\fP が指定されていない場合は、CLASSPATH 環境変数が設定されていれば、Javadoc ツールはこの環境変数を使います。どちらも設定されていない場合、Javadoc ツールは現在のディレクトリからクラスを検索します。 +\f2\-classpath\fP ꤵʤä硢Javadoc ġϤۤΥġƱCLASSPATH ĶѿꤵƤФͤѤޤɤꤵƤʤ硢Javadoc ġϸߤΥǥ쥯ȥ꤫饯饹򸡺ޤ .LP -Javadoc ツールは拡張機能クラスおよびブートストラップクラスに関連しているため、Javadoc ツールが \f2\-classpath\fP を使用してユーザークラスを検索する方法についての詳細は、 +Javadoc ġ뤬 \f2\-classpath\fP Ѥƥ桼饹򸡺ˡˤĤơĥ饹֡ȥȥåץ饹ȴϢդƤꤹˤϡ .na -\f2「クラスの検索方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.htmlをご覧ください。 +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html򻲾ȤƤ .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡ \f2.jar\fP ޤ \f2.JAR\fP ĥҤ˻ĥǥ쥯ȥΤ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤̤ȤʤޤΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ* \f2饹ѥȥϡ\fP ȥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .LP .TP 3 \-subpackages\ \ package1:package2:... -ソースファイルから指定されたパッケージおよびそのサブパッケージ内に再帰的にドキュメントを生成します。このオプションは、ソースコードに新しいサブパッケージを追加する際に便利です。新しいサブパッケージは自動的に組み込まれます。各 \f2package\fP 引数は、任意の最上位サブパッケージ (\f2java\fP など) または完全指定のパッケージ (\f2javax.swing\fP など) になります。ソースファイルを含める必要はありません。引数は、コロンで区切られます (すべてのオペレーティングシステム)。ワイルドカードは不要です (使用不可)。パッケージの検索場所を指定するには、\f2\-sourcepath\fP を使用します。このオプションは、「ソースファイルの処理」で説明したとおり、ソースツリーにあるがパッケージには属していないソースファイルを処理しないので役立ちます。 +ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤΥץϡɤ˿֥ѥåɲäݤǤ֥ѥåϼưŪȤ߹ޤޤ \f2package\fP ϡǤդκǾ̥֥ѥå ( \f2java\fP ʤ) ޤϴѥå ( \f2javax.swing\fP ʤ) ˤʤޤեޤɬפϤޤ󡣰ϡǶڤޤ (٤ƤΥڥ졼ƥ󥰥ƥ)磻ɥɤפǤ (Բ)ѥåθꤹˤϡ\f2\-sourcepath\fP ѤޤΥץϡ֥եνפȤꡢĥ꡼ˤ뤬ѥåˤ°ƤʤեʤΤΩޤ .LP -例を示します。 +ȤС .nf \f3 .fl % \fP\f3javadoc \-d docs \-sourcepath /home/user/src \-subpackages java:javax.swing\fP .fl .fi -このコマンドは、「java」および「javax.swing」という名前のパッケージとこれらのサブパッケージ全部のドキュメントを生成します。 +Υޥɤϡjavaפӡjavax.swingפȤ̾ΥѥåȤΥ֥ѥåΥɥȤޤ .LP -\f2\-exclude\fP とともに \f2\-subpackages\fP を使用すると、特定のパッケージを除外できます。 +\f2\-subpackages\fP \f2\-exclude\fP Ȥ߹碌ƻѤȡΥѥåǤޤ .LP .TP 3 \-exclude\ \ packagename1:packagename2:... -指定されたパッケージとそのサブパッケージを \f2\-subpackages\fP によって作成されたリストから無条件に除外します。過去の \f2\-subpackages\fP オプションの指定によって組み込まれたパッケージ、または将来組み込まれるパッケージも除外の対象となります。例を示します。 +ꤵ줿ѥåȤΥ֥ѥå \f2\-subpackages\fP ˤäƺ줿ꥹȤ̵˽ޤ \f2\-subpackages\fP ץλˤäȤ߹ޤ줿ѥåޤϾȤ߹ޤѥåоݤȤʤޤ 򼨤ޤ .nf \f3 .fl % \fP\f3javadoc \-sourcepath /home/user/src \-subpackages java \-exclude java.net:java.lang\fP .fl .fi -このうち、\f2java.io\fP、\f2java.util\fP、\f2java.math\fP は組み込まれますが、\f2java.net\fP と \f2java.lang\fP 以下のパッケージは除外されます。ただし、\f2java.lang\fP のサブパッケージである \f2java.lang.ref\fP は除外されます。 +ξ硢 \f2java.io\fP \f2java.util\fP \f2java.math\fP ʤɤޤ졢 \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåޤξ硢 \f2java.lang\fP Υ֥ѥåǤ \f2java.lang.ref\fP դƤ .LP .TP 3 \-bootclasspath\ classpathlist -ブートクラスが存在するパスを指定します。ブートクラスとは、通常、Java プラットフォームのコアクラスのことです。ブートクラスパスは、Javadoc ツールがソースファイルとクラスファイルを探すときに使う検索パスの一部です。詳細は、 +֡ȥ饹¸ߤѥꤷޤ֡ȥ饹Ȥϡ̾Java ץåȥեΥ饹ΤȤǤ֡ȥ饹ѥϡJavadoc ġ뤬եȥ饹եõȤ˻ȤѥΰǤܺ٤ϡ .na -\f2「javac と javadoc がクラスを検索する方法」\fP @ +\f2֥饹θˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfilesを参照してください。\f2classpathlist\fP 内の複数のディレクトリは、コロン (:) で区切ります。 +http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles򻲾ȤƤ (:) \f2classpathlist\fP Υǥ쥯ȥ֤ζڤʸȤƻѤޤ .LP .TP 3 \-extdirs\ dirlist -拡張機能クラスが存在するディレクトリを指定します。拡張機能クラスとは、Java 拡張機能機構を使うすべてのクラスです。extdirs は、Javadoc ツールがソースファイルとクラスファイルを探すときに使う検索パスの一部です。詳細は、前述の \f2\-classpath\fP を参照してください。\f2dirlist\fP 内の複数のディレクトリは、コロン (:) で区切ります。 +ĥǽ饹¸ߤǥ쥯ȥꤷޤĥǽ饹ȤϡJava ĥǽȤ٤ƤΥ饹Ǥextdirs ϡJavadoc ġ뤬եȥ饹եõȤ˻ȤѥΰǤܺ٤ϡҤ \f2\-classpath\fP 򻲾ȤƤ (:) \f2dirlist\fP Υǥ쥯ȥ֤ζڤʸȤƻѤޤ .LP .TP 3 \-verbose -javadoc の実行中に詳細なメッセージを表示します。verbose オプションを指定しないと、ソースファイルのロード時、ドキュメントの生成時 (ソースファイルごとに 1 つのメッセージ)、およびソート時にメッセージが表示されます。verbose オプションを指定すると、各 Java ソースファイルの解析に要した時間 (ミリ秒単位) など、追加のメッセージが表示されます。 +javadoc μ¹˾ܺ٤ʥåɽޤverbose ץꤷʤȡեΥɻɥȤ (ե뤴Ȥ 1 ĤΥå)ӥȻ˥åɽޤverbose ץꤹȡ Java եβϤפ (ߥñ) ʤɡɲäΥåɽޤ .LP .TP 3 \-quiet -エラーメッセージまたは警告メッセージ以外のメッセージを抑制し、警告とエラーだけが表示されるようにして、これらを特定しやすくします。バージョン文字列も抑制します。 +顼åޤϷٹåʳΥåٹȥ顼ɽ褦ˤơꤷ䤹ޤСʸޤ .LP .TP 3 \-breakiterator\ -英語言語というロケール固有のアルゴリズムではなく、 +ѸκǽʸꤹݤˡѸѤΥͭΥ르ꥺǤϤʤ .na \f2java.text.BreakIterator\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html の国際化された文境界を使用して、英文の最初の文の終わりを判断します (他のすべてのロケールはすでに \f2BreakIterator\fP を使用)。\f2「最初の文」\fPとは、パッケージ、クラス、またはメンバーの主説明での最初の文のことです。この文は、パッケージ、クラス、またはメンバーの要約にコピーされ、アルファベット順のインデックスにコピーされます。 +http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html ιݲ줿ʸѤޤ (ۤΤ٤ƤΥǤϤǤ \f2BreakIterator\fP ѤƤ)\f2ֺǽʸ\fPȤϡѥå饹ޤϥСμǤκǽʸΤȤǤʸϡѥå饹ޤϥС˥ԡ졢ե٥åȽΥǥå˥ԡޤ .LP -JDK 1.2 以降、BreakIterator クラスは、英語を除くすべての言語の文の終わりを判断するために、すでに使用されています。したがって、1.2 以降では、\f2\-breakiterator\fP オプションは英文以外には効果がありません。英文には、次のような独自のデフォルトのアルゴリズムがあります。 +JDK 1.2 ʹߡBreakIterator 饹ϡѸ٤ƤθʸνȽǤ뤿ˡǤ˻ѤƤޤäơ \f2\-breakiterator\fP ץϡ1.2 ʹߤǤϱʸʳˤϸ̤ޤ󡣱ʸˤϡΤ褦ȼΥǥեȤΥ르ꥺबޤ .RS 3 .TP 2 o -英文のデフォルトの文区切りアルゴリズム \- 空白または HTML ブロックタグ (\f2<P>\fP など) が続くピリオドで停止する +ʸΥǥեȤʸڤꥢ르ꥺ \- ޤ HTML ֥å ( \f2<P>\fP ʤ) ³ԥꥪɤߤ .TP 2 o -breakiterator 文区切りアルゴリズム \- 一般に、次の語が大文字で始まる場合、空白文字が続くピリオド、疑問符、または感嘆符で停止する。このアルゴリズムでは、ほとんどの省略表記が処理される (「The serial no. is valid」は処理されるが「Mr. Smith」は処理されない)。HTML タグや、数字または記号で始まる文では停止しない。HTML タグに埋め込まれている場合でも、「../filename」の最後のピリオドで停止する +breakiterator ʸڤꥢ르ꥺ \- ̤ˡθ줬ʸǻϤޤ硢ʸ³ԥꥪɡ䡢ޤϴòߤ롣Υ르ꥺǤϡThe serial no. is validפʤɡۤȤɤξάɽޤMr. SmithפʤɤϽޤHTML 䡢ޤϵǻϤޤʸǤߤʤHTML ޤƤǤ⡢../filenameפκǸΥԥꥪɤߤ .RE -.RS 3 - .LP -.LP -注: 1.5.0 からは、1.4.x に設けられていた breakiterator 警告メッセージを削除し、デフォルトの文区切りアルゴリズムを変更していません。つまり、\\\-breakiterator オプションは、1.5.0 ではデフォルトではなくなり、またデフォルトにするつもりもありません。これは、「次のメジャーリリース」(1.5.0) でデフォルトを変更するという、以前の目的とは逆になっています。つまり、ソースコードを変更せず、1.4.x での breakiterator 警告を除去していない場合でも、1.5.0 からは何もする必要がなく、警告は消滅しています。 この逆戻りの理由は、breakiterator をデフォルトにするメリットよりも、デフォルトにするために必要となる、互換性のないソースの変更の方が負担が大きかったためです。この件で皆様に余分の手間をおかけし、混乱を招いたことをお詫びいたします。 -.LP -.RE +: 1.5.0 ϡ1.4.x ߤƤ breakiterator ٹåǥեȤʸڤꥢ르ꥺѹƤޤ󡣤Ĥޤꡢ\\\-breakiterator ץϡ1.5.0 ǤϥǥեȤǤϤʤʤꡢޤǥեȤˤĤ⤢ޤ󡣤ϡּΥ᥸㡼꡼(1.5.0) ǥǥեȤѹȤŪȤϵդˤʤäƤޤĤޤꡢɤѹ1.4.x Ǥ breakiterator ٹƤʤǤ⡢1.5.0 ϲ⤹ɬפʤٹϾǤƤޤεͳϡbreakiterator ǥեȤˤåȤ⡢ǥեȤˤ뤿ɬפȤʤ롢ߴΤʤѹô礭äǤηdzͤ;ʬμ֤򤪤򾷤ȤͤӤޤ .TP 3 \-locale\ language_country_variant -.RS 3 .LP -\f3重要\fP \- \f2\-locale\fP オプションは、標準ドックレットが提供するすべてのオプション、またはその他の任意のドックレットの提供するすべてのオプションより前 (左側) に指定する必要があります。そうしないと、ナビゲーションバーが英語で表示されます。このコマンド行オプションだけは、指定する順序に依存します。 +\f3\fP \- \f2\-locale\fP ץϡ\f2ɸɥååȤ󶡤뤹٤ƤΥץ\fPޤϤ¾ǤդΥɥååȤ󶡤뤹٤ƤΥץ (¦) ˻ꤹɬפޤʤȡʥӥСѸɽޤΥޥɹԥץϡꤹ˰¸ޤ .LP -.RE +Javadoc ɥȤȤ˻ȤꤷޤΰϼΤ褦ʡjava.util.Locale ΥɥơƤ̾Ǥ \f2en_US\fP (Ѹ졢ƹ) ޤ \f2en_US_WIN\fP (Windows ǻѤѸ) .LP -Javadoc がドキュメントを生成するときに使うロケールを指定します。引数には、java.util.Locale のドキュメントで説明されているロケールの名前を指定します。たとえば、\f2en_US\fP (英語、米国)、\f2en_US_WIN\fP (Windows で使われる英語) などを指定します。 -.LP -ロケールを指定すると、指定したロケールのリソースファイルが Javadoc によって選択されて、メッセージ (ナビゲーションバー、リストと表の見出し、ヘルプファイルの目次、stylesheet.css のコメントなどの文字列) のために使われます。また、アルファベット順にソートされるリストのソート順、および最初の文の末尾を判別するための文の区切り文字も、指定したロケールによって決まります。ただし、このオプションは、ドキュメント化されるクラスのソースファイル内で指定されているドキュメンテーションコメントのテキストのロケールを決定するものではありません。 +ꤹȡꤷΥ꥽ե뤬 Javadoc ˤä򤵤ơå (ʥӥСꥹȤɽθФإץեܼstylesheet.css ΥȤʤɤʸ) Τ˻Ȥޤޤե٥åȽ˥ȤꥹȤΥȽ硢ӺǽʸȽ̤뤿ʸζڤʸ⡢ꤷˤäƷޤޤΥץϡɥȲ륯饹ΥեǻꤵƤɥơ󥳥ȤΥƥȤΥꤹΤǤϤޤ .LP .TP 3 \-encoding\ name -ソースファイルのエンコーディングの名前 (\f2EUCJIS/SJIS\fP など) を指定します。このオプションが指定されていない場合は、プラットフォームのデフォルトコンバータが使われます。 +եΥ󥳡ǥ󥰤̾ ( \f2EUCJIS/SJIS\fP ʤ) ꤷޤ Υץ󤬻ꤵƤʤϡץåȥեΥǥեȥСȤޤ .LP -\-docencoding および \-charset も参照してください。 +\-docencoding \-charset ⻲ȤƤ .LP .TP 3 \-Jflag -javadoc を実行する実行時システム java に、\f2flag\fP を直接渡します。\f2J\fP と \f2flag\fP の間に空白を入れてはなりません。たとえば、生成ドキュメントを処理するためにシステムで 32M バイトのメモリーを確保しておく必要がある場合は、Java の \f2\-Xmx\fP オプションを次のように呼び出します。 \f2\-Xms\fP は、省略可能です。 これは、初期メモリーのサイズを設定するだけのオプションで、必要なメモリーの最小サイズがわかっている場合に便利です。 +javadoc ¹Ԥ¹Իƥ java ˡ\f2flag\fP ľϤޤ \f2J\fP \f2flag\fP δ֤˶ʤ褦դƤȤСɥȤνѤȤ32M ХȤΥ꡼򥷥ƥdzݤƤɬפˤϡjava \f2\-Xmx\fP ץ򼡤Τ褦˸ƤӽФޤ\f2\-Xms\fP ϾάǽǤϡ꡼νꤹΥץǡ꡼κɬ̤狼äƤǤ .nf \f3 .fl % \fP\f3javadoc \-J\-Xmx32m \-J\-Xms32m\fP \f3com.mypackage\fP .fl .fi -使用している javadoc のバージョンを確認するには、次のように java の「\f2\-version\fP」オプションを呼び出します。 +ѤƤ javadoc ΥСǧˤϡΤ褦 Java \f2\-version\fPץƤӽФޤ .nf \f3 .fl @@ -4607,17 +3110,16 @@ javadoc を実行する実行時システム java に、\f2flag\fP を直接渡 Classic VM (build JDK\-1.2\-V, green threads, sunwjit) .fl .fi -出力ストリームには標準ドックレットのバージョン番号が含まれます。 +ϥȥ꡼ˤɸɥååȤΥСֹ椬ޤޤޤ .RE .SS -標準ドックレットが提供するオプション -.LP +ɸɥååȤ󶡤륪ץ .RS 3 .TP 3 \-d\ directory -生成された HTML ファイルを保存する生成先ディレクトリを指定します(「d」は「生成先 (destination)」の意味)。このオプションを省略すると、生成されたファイルは現在のディレクトリに保存されます。値 \f2directory\fP には、絶対ディレクトリ、または現在の作業ディレクトリからの相対ディレクトリを指定できます。バージョン 1.4 では、javadoc を実行すると生成先ディレクトリが自動的に作成されます。 +줿 HTML ե¸ǥ쥯ȥꤷޤ(dפϡ (destination)פΰ̣)Υץάȡ줿եϸߤΥǥ쥯ȥ¸ޤ \f2directory\fP ˤϡХǥ쥯ȥꡢޤϸߤκȥǥ쥯ȥ꤫Хǥ쥯ȥǤޤС 1.4 Ǥϡjavadoc ¹Ԥǥ쥯ȥ꤬ưŪ˺ޤ .LP -たとえば、次の例では、\f2com.mypackage\fP パッケージのドキュメントを生成し、結果を \f2/home/user/doc/\fP ディレクトリに保存します。 +Ȥмξ硢ѥå \f2com.mypackage\fP ΥɥȤ졢η̤ \f2/home/user/doc/\fP ǥ쥯ȥ¸ޤ .nf \f3 .fl @@ -4627,50 +3129,50 @@ javadoc を実行する実行時システム java に、\f2flag\fP を直接渡 .LP .TP 3 \-use -ドキュメント化されるクラスおよびパッケージごとに 1 つの [使用] ページを組み込みます。このページには、その特定のクラスまたはパッケージの API を使っているパッケージ、クラス、メソッド、コンストラクタ、およびフィールドが記述されます。たとえば、クラス C を例にとると、クラス C を使っているものとしては、C のサブクラス、C として宣言されているフィールド、C を返すメソッド、および、型 C のパラメータを持つメソッドとコンストラクタがあります。 +ɥȲ륯饹ӥѥåȤ 1 ĤΡֻѡץڡȤ߹ߤޤΥڡˤϡΥ饹ޤϥѥå API ȤäƤѥå饹᥽åɡ󥹥ȥ饯ӥեɤҤޤȤС饹 C ˤȤȡ饹 C ȤäƤΤȤƤϡC Υ֥饹C ȤƤեɡC ֤᥽åɡӡ C Υѥ᡼ĥ᥽åɤȥ󥹥ȥ饯ޤ .LP -たとえば、String の [使用] ページに何が表示されるかを見てみましょう。\f2java.awt.Font\fP クラスの \f2getName()\fP メソッドは、\f2String\fP 型を返します。したがって、\f2getName()\fP は \f2String\fP を使っているので、\f2String\fP の [使用] ページにはこのメソッドがあります。 +ȤСString [] ڡ˲ɽ뤫򸫤Ƥߤޤ礦java.awt.Font 饹 \f2getName()\fP ᥽åɤϡ \f2String\fP ͤ \f2֤ޤ\fPäơ \f2getName()\fP \f2String\fP ѤƤΤǡString [] ڡ \f2Υ᥽åɤɽޤ\fP .LP -ただし、ドキュメント化されるのは API の使用だけであって、実装はドキュメント化されません。あるメソッドが、その実装の中で \f2String\fP を使っていても、引数として文字列をとったり、文字列を返したりしない場合は、\f2String\fP の「使用」とはみなされません。 +ɥȲΤ API λѤǤäơϥɥȲޤ󡣤᥽åɤμ \f2String\fP ȤäƤƤ⡢ȤʸȤäꡢʸ֤ꤷʤϡ \f2String\fP ΡֻѡפȤϤߤʤޤ .LP -生成された [使用] ページにアクセスするには、目的のクラスまたはパッケージに移動し、ナビゲーションバーの [使用] リンクをクリックします。 +줿 [] ڡ˥ˤϡŪΥ饹ޤϥѥå˰ưʥӥС [] 󥯤򥯥åޤ .TP 3 \-version -生成ドキュメントに、@version のテキストを組み込みます。このテキストは、デフォルトでは省略されます。使用している Javadoc ツールのバージョンを確認するには、\f2\-J\-version\fP オプションを使用します。 +ɥȤˡ@version ΥƥȤȤ߹ߤޤΥƥȤϡǥեȤǤϾάޤѤƤ Javadoc ġΥСǧˤ \f2\-J\-version\fP ץѤޤ .LP .TP 3 \-author -生成ドキュメントに、@author のテキストを組み込みます。 +ɥȤˡ@author ΥƥȤȤ߹ߤޤ .LP .TP 3 \-splitindex -索引ファイルをアルファベットごとに複数のファイルに分割し、文字ごとに 1 つのファイルと、アルファベット以外の文字で始まる索引エントリ用に 1 つのファイルを作成します。 +ե򥢥ե٥åȤȤʣΥեʬ䤷ʸȤ 1 ĤΥեȡե٥åȰʳʸǻϤޤȥѤ 1 ĤΥեޤ .LP .TP 3 \-windowtitle\ title -HTML の <title> タグに配置するタイトルを指定します。指定したタイトルは、ウィンドウのタイトルや、このページに対して作成されたブラウザのブックマーク (お気に入り) に表示されます。このタイトルには HTML タグを含めないでください。 タイトルに HTML タグが含まれていると、ブラウザがタグを正しく解釈できません。\f2title\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。\-windowtitle が省略されている場合、Javadoc ツールは、このオプションの代わりに \-doctitle の値を使います。 +HTML <title> ֤륿ȥꤷޤꤷȥϡɥΥȥ䡢ΥڡФƺ줿֥饦Υ֥åޡ () ɽޤΥȥˤ HTML ޤʤǤȥ HTML ޤޤƤȡ֥饦Ǥޤ\f2title\fP ǰȤϡ򥨥פɬפޤ\-windowtitle άƤ硢Javadoc ġϡΥץ \-doctitle ͤȤޤ .nf \f3 .fl - % \fP\f3javadoc \-windowtitle "Java 2 Platform" com.mypackage\fP + % \fP\f3javadoc \-windowtitle "Java SE Platform" com.mypackage\fP .fl .fi .TP 3 \-doctitle\ title -概要ファイルの最上部の近くに配置するタイトルを指定します。タイトルは中央揃えになり、レベル 1 の見出しとして、上部ナビゲーションバーのすぐ下に置かれます。\f2title\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2title\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ץեκǾζ᤯֤륿ȥꤷޤȥ·ˤʤꡢ٥ 1 θФȤơʥӥСΤ֤ޤ\f2title\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2title\fP ǰȤϡ򥨥פɬפޤ .nf \f3 .fl - % \fP\f3javadoc \-doctitle "Java (TM)" com.mypackage\fP + % \fP\f3javadoc \-doctitle "Java(TM)" com.mypackage\fP .fl .fi .TP 3 \-title\ title -\f3このオプションは、現在は存在しません。\fPJavadoc 1.2 のベータ版にだけ存在しました。このオプションは、\f2\-doctitle\fP という名前に変更されました。名前を変更した理由は、このオプションが、ウィンドウのタイトルではなくドキュメントのタイトルを定義することを明確にするためです。 +\f3ΥץϤ⤦¸ߤƤޤ\fPΥץ Javadoc 1.2 Υ١Ǥˤ¸ߤƤޤǤΥץ̾ \f2\-doctitle\fP ѹޤ̾ѹͳϡΥץ󤬡ɥΥȥǤϤʤɥȤΥȥ뤳ȤΤˤ뤿Ǥ .LP .TP 3 \-header\ header -各出力ファイルの上端に配置するヘッダーテキストを指定します。ヘッダーは、上部ナビゲーションバーの右側に配置されます。\f2header\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2header\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեξü֤إåƥȤꤷޤإåϡʥӥСα¦֤ޤ\f2header\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2header\fP ǰȤϡ򥨥פɬפޤ .nf \f3 .fl @@ -4680,73 +3182,77 @@ HTML の <title> タグに配置するタイトルを指定します。指定し .LP .TP 3 \-footer\ footer -各出力ファイルの下端に配置するフッターテキストを指定します。フッターは、下部ナビゲーションバーの右側に配置されます。 \f2footer\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2footer\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեβü֤եåƥȤꤷޤեåϡʥӥСα¦֤ޤ\f2footer\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ\f2footer\fP ǰȤϡ򥨥פɬפޤ +.LP +.TP 3 +\-top +ƽϥեξü֤ƥȤꤷޤ .LP .TP 3 \-bottom\ text -各出力ファイルの最下部に配置するテキストを指定します。このテキストは、下部ナビゲーションバーより下の、ページの最下部に配置されます。\f2text\fP には、HTML タグと空白を含めることができますが、これらを含める場合は、全体を引用符で囲まなければなりません。\f2text\fP の中で引用符を使う場合は、引用符をエスケープする必要があります。 +ƽϥեκDz֤ƥȤꤷޤΥƥȤϡʥӥС겼ΡڡκDz֤ޤ \f2text\fP ˤϡHTML ȶޤ뤳ȤǤޤޤϡΤǰϤޤʤФʤޤ󡣰 \f2text\fP ǻѤ硢򥨥פʤФʤʤǽޤ .LP .TP 3 \-link\ extdocURL -javadoc により生成された既存の外部参照クラスのドキュメンテーションへのリンクを作成します。引数を 1 つとります。 +javadoc ˤ줿¸γȥ饹ΥɥơؤΥ󥯤ޤ 1 ĤȤޤ .LP .RS 3 .TP 2 o -\f4extdocURL\fP は、リンク先として指定する、javadoc によって生成された外部ドキュメントを含むディレクトリの絶対 URL または相対 URL です。あとで例を示します。このディレクトリ内にパッケージリストファイルが存在していなければなりません。 存在しない場合は、\f2\-linkoffline\fP を使用します。Javadoc ツールは、\f2パッケージリスト\fPファイルからパッケージ名を読み取り、これらのパッケージをその URL にリンクします。Javadoc ツールを実行すると、作成される \f2<A HREF>\fP リンク内に \f2extdocURL\fP の値がそのままコピーされます。したがって、\f2extdocURL\fP はファイルへの URL ではなく「ディレクトリへの URL」でなければなりません。 +\f4extdocURL\fP ϡȤƻꤹ롢javadoc ˤä줿ɥȤޤǥ쥯ȥ URL ޤ URL ǤȤ򼨤ޤΥǥ쥯ȥ˥ѥåꥹȥե뤬¸ߤƤʤФʤޤ ¸ߤʤϡ\f2\-linkoffline\fP ѤޤJavadoc ġϡ \f2package\-list\fP ե뤫ѥå̾ɤ߼äȡ URL ǤΥѥå˥󥯤ޤJavadoc ġμ¹Իˡ\f2extdocURL\fP ͤΤޤޡ줿 \f2<A HREF>\fP ˥ԡޤäơ\f2extdocURL\fP ϥեؤ URL ǤϤʤ֥ǥ쥯ȥؤ URLפǤʤФʤޤ .LP -\f2extdocURL\fP への絶対リンクを使用すると、ユーザーのドキュメントを任意の Web サイト上のドキュメントにリンクできます。 相対位置へリンクするだけでよい場合は相対リンクを使用できます。相対リンクを使用する場合、\f2\-d\fP を使って、生成先ディレクトリからリンクされるパッケージのあるディレクトリの相対パスを指定する必要があります。 +\f2extdocURL\fP ؤХ󥯤Ѥȡ桼ΥɥȤǤդ Web ȾΥɥȤ˥󥯤Ǥޤа֤إ󥯤Ǥ褤Х󥯤ѤǤޤХ󥯤ξ硢桼Ϥͤϡ( \f2\-d\fP ǻꤵ줿) ǥ쥯ȥ꤫顢Ȥʤѥåޤǥ쥯ȥؤХѥˤ٤Ǥ .LP -通常、絶対リンクを指定する場合は、\f2http:\fPリンクを使用します。Web サーバーを持たないファイルシステムにリンクする場合は、\f2file:\fP リンクを使用できます。ただし、この方法は、すべてのユーザーが生成された同じファイルシステムを共有するドキュメントにアクセスする必要がある場合以外は使用しないでください。 +̾Х󥯤ꤹϡ \f2http:\fP 󥯤ѤޤWeb Сʤե륷ƥ˥󥯤ϡ \f2file: 󥯤ѤǤޤ\fP ˡϡ٤ƤΥ桼줿Ʊե륷ƥͭɥȤ˥ɬפʳϻѤʤǤ .LP -いかなる場合にも、いかなるオペレーティングシステムでも、絶対 URL か相対 URL か、「http:」ベースか「file:」ベースかにかかわらず、スラッシュを区切り文字として使用します ( +٤Ƥξ硢٤ƤΥڥ졼ƥ󥰥ƥǡ URL URLhttp:ץ١ȡfile:ץ١ˤ餺åڤʸȤƻѤޤ ( .na \f2URL Memo\fP @ .fi -http://www.ietf.org/rfc/rfc1738.txt で指定)。 +http://www.ietf.org/rfc/rfc1738.txt ǻ) .RS 3 .TP 3 -http:ベースの絶対リンク: +http: ١Х: \f2\-link http://<host>/<directory>/<directory>/.../<name>\fP .TP 3 -file:ベースの絶対リンク: +file: ١Х: \f2\-link file://<host>/<directory>/<directory>/.../<name>\fP .TP 3 -相対リンク: +Х: \f2\-link <directory>/<directory>/.../<name>\fP .RE .RE .LP -javadoc の実行時に複数の \f2\-link\fP オプションを指定して、複数のドキュメントへのリンクを作成することもできます。 \f3\-linkoffline または \-link の選択\fP +javadoc 1 μ¹Ԥʣ \f2\-link\fP ץꤹСʣΥɥȤؤΥ󥯤Ǥޤ \f3\-linkoffline ޤ \-link \fP .br -\f2\-link\fP を使用する場合: +\f2\-link\fPѤ: .RS 3 .TP 2 o -外部 API ドキュメントへの相対パスを使用する場合 + API ɥȤؤХѥѤ .TP 2 o -外部 API ドキュメントへの絶対 URL を使用する場合 (プログラムがその URL に接続し、読み取りを行うことがシェルによって許可されている場合) + API ɥȤؤ URL Ѥ (ץब URL ³ɤ߼ԤȤˤäƵĤƤ) .RE -次のような場合は、\f2\-linkoffline\fP オプションを使用します。 +\f2\-linkoffline\fP Ѥ: .RS 3 .TP 2 o -プログラムがその URL に接続し、読み取りを行うことがシェルによって許可されていない場合に外部 API ドキュメントへの絶対 URL を使用する場合。このような状況は、リンク先のドキュメントがファイアウォールの向こう側にある場合に発生します。 + API ɥȤؤ URL Ѥ (ץब URL ³ɤ߼ԤȤˤäƵĤƤʤ)Τ褦ʾϡΥɥȤեθ¦ˤȯޤ .RE .LP -\f3外部ドキュメントへの絶対リンクの使用例\fP \- +\f3ɥȤؤХ󥯤λ\fP \- \f2java.lang\fP \f2java.io\fP ¾ Java ץåȥեѥå ( .na -\f2http://java.sun.com/j2se/1.5.0/docs/api\fP @ +\f2http://java.sun.com/javase/6/docs/api/\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api 内の \f2java.lang\fP、\f2java.io\fP、その他の Java 2 プラットフォームパッケージにリンクしたい場合があります。 次のコマンドは、\f2com.mypackage\fP パッケージのドキュメントと Java 2 プラットフォームパッケージへのリンクを生成します。生成されたドキュメントには、たとえばクラスツリー内の \f2Object\fP クラスへのリンクが含まれています。\f2\-sourcepath\fP や \f2\-d\fP などの他のオプションは表示されません。 +http://java.sun.com/javase/6/docs/api ) ˥󥯤ͤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/j2se/1.5.0/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP .fl .fi -\f3外部ドキュメントへの相対リンクの使用例\fP \- 2 つのパッケージがあり、そのドキュメントが Javadoc ツールを複数回実行した結果生成されたものであるとします。 さらに、これらのドキュメントが相対パスで分割されているとします。この例の場合、2 つのパッケージは、API である \f2com.apipackage\fP とSPI (サービスプロバイダインタフェース) である \f2com.spipackage\fP です。ドキュメントの格納先は \f2docs/api/com/apipackage\fP パッケージと \f2docs/spi/com/spipackage\fP パッケージです。API パッケージのドキュメントがすでに生成されていて、現在のディレクトリが \f2docs\fP である場合、次のコマンドを実行することによって、この API ドキュメントへのリンクを持つ SPI パッケージをドキュメント化します。 +\f3ɥȤؤХ󥯤λ\fP \- 2 ĤΥѥåꡢΥɥȤ Javadoc ġʣ¹Ԥ줿ΤǤȤޤˡΥɥȤХѥʬ䤵ƤȤޤξ硢ѥåϡAPI Ǥ \f2com.apipackage\fP ȡSPI (ӥץХ󥿥ե) Ǥ \f2com.spipackage\fP ǤɥȤγǼϡ \f2docs/api/com/apipackage\fP \f2docs/spi/com/spipackage\fP ǤAPI ѥåΥɥȤϤǤѤߤǡ \f2docs\fP ȥǥ쥯ȥˤʤäƤȲꤹȡAPI ɥȤؤΥ󥯤ޤ SPI ѥåɥȲˤϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -4754,43 +3260,43 @@ http://java.sun.com/j2se/1.5.0/docs/api 内の \f2java.lang\fP、\f2java.io\fP .fl .fi .LP -\f2\-link\fP 引数は、生成先ディレクトリ (\f2docs/spi\fP) の相対パスです。 +\f2\-link\fP ΰϡǥ쥯ȥ (\f2docs/spi\fP) ХѥǤ .LP -\f3詳細\fP \- \f2\-link\fP オプションを使うと、「コードからは参照されていても、Javadoc の今回の実行ではドキュメント化されない」というクラスにリンクできるようになります。リンクから有効なページに移動できるようにするには、それらの HTML ページがある場所を調べ、その場所を \f2extdocURL\fP に指定する必要があります。このオプションを使うと、たとえば、サードパーティーのドキュメントから、\f2http://java.sun.com\fP にある \f2java.*\fP のドキュメントにリンクすることができます。 +\f3ܺ\fP \- \f2\-link\fP ץȤȡ֥ɤϻȤƤƤ⡢Javadoc κμ¹ԤǤϥɥȲʤפȤ饹˥󥯤Ǥ褦ˤʤޤ󥯤ͭʥڡ˰ưǤ褦ˤˤϡ HTML ڡĴ١ξ \f2extdocURL\fP ˻ꤹɬפޤˤꡢȤСɥѡƥΥɥȤ \f2http://java.sun.com java.*\fP ΥɥȤؤΥ󥯤 \f2ǽȤʤޤ\fP .LP -今回の実行で Javadoc によって生成されるドキュメント内の API だけを対象にリンクを作成する場合は、\f2\-link\fP オプションを省略します。\f2\-link\fP オプションが指定されていない場合、Javadoc ツールは、外部参照されたドキュメントへのリンクを作成しません。これは、そのドキュメントが存在するかどうか、および存在する場合はその場所を判別できないからです。 +μ¹Ԥ Javadoc ˤäɥ API оݤ \f2󥯤ϡ\fP \-link ץάޤ \f2\-link\fP ץ󤬻ꤵƤʤ硢Javadoc ġϡȤ줿ɥȤؤΥ󥯤ޤ󡣤ϡΥɥȤ¸ߤ뤫ɤ¸ߤϤξȽ̤ǤʤǤ .LP -このオプションでは、生成ドキュメント内の複数の場所にリンクを作成できます。 +ΥץǤϡɥʣξ˥󥯤Ǥޤ .LP -また、このオプションを使うと、複数のパッケージ群の間にクロスリンクを作成することもできます。つまり、ある一式のパッケージに対して javadoc を実行したあと、別の一式のパッケージに対して javadoc を実行し、これら 2 つのパッケージ群の間にクロスリンクを作成できます。 +⤦ 1 ĤӤϡѥååȴ֤ǤΥ󥯤ǤΥѥååȤФ javadoc ¹Ԥȡ¾ΥѥååȤФ javadoc ټ¹Ԥ뤳Ȥˤꡢξåȴ֤Υ󥯤Ǥޤ .LP -\f3クラスの参照方法\fP \- 外部参照クラスへのリンクを、テキストラベルだけではなく実際に表示するには、次の方法でクラスを参照する必要があります。メソッドの本体でクラスを参照するだけでは十分ではありません。\f2import\fP 文または宣言で参照する必要があります。次に、クラス \f2java.io.File\fP を参照する方法の例を示します。 +\f3饹λˡ\fP \- ȥ饹ؤΥ󥯤򡢥ƥȥ٥ǤϤʤºݤɽˤϡˡǥ饹򻲾Ȥɬפޤ᥽åɤΤǥ饹򻲾ȤǤϽʬǤϤޤ󡣤Υ饹ϡ \f2import\fP ʸΤξǻȤƤɬפޤHere are examples of how the class \f2java.io.File\fP can be referenced: .RS 3 .TP 2 o -すべての種類の \f2import\fP 文の場合: ワイルドカードによるインポート、名前による明示的なインポート、または \f2java.lang.*\fP に対する自動的なインポート。たとえば、次のようにすれば十分です。 +٤Ƥμ \f2import\fP ʸξ: 磻ɥɤˤ륤ݡȡ̾ˤŪʥݡȡޤ \f2java.lang.* Ф뼫ưŪʥݡ\fPȤСΤ褦ˤнʬǤ .br \f2import java.io.*;\fP .br -1.3.x および 1.2.x では、名前による明示的なインポートだけです。ワイルドカードによるインポート文も、自動インポート \f2java.lang.*\fP も使用できません。 +1.3.x 1.2.x Ǥϡ̾ˤŪʥݡȤǤ磻ɥɤˤ륤ݡʸ⡢ \f2java.lang.* μưݡȤѤǤޤ\fP .TP 2 o -宣言の場合: +ξ: .br \f2void foo(File f) {}\fP .br -この参照を使用し、メソッド、コンストラクタ、フィールド、クラス、またはインタフェースの戻り値の型またはパラメータの型に置くか、\f2implements\fP、\f2extends\fP、または \f2throws\fP 文に置きます。 +λȤѤ᥽åɡ󥹥ȥ饯եɡ饹ޤϥ󥿥եͤηޤϥѥ᡼η֤ \f2implements\fP \f2extends\fP ޤ \f2throws\fP ʸ֤ޤ .RE .LP -この結果、\f2\-link\fP オプションを使用しても、この制限のために誤って表示されない多くのリンクが多数発生する可能性があります。テキストはハイパーテキストリンクが付けられずに表示されます。これらのリンクが表示する警告から、このリンクを認識できます。クラスを正しく参照し、それによってリンクを追加するためのもっとも安全な方法は上で説明したとおり、当該のクラスをインポートすることです。 +פʷ̤Ȥơ \f2\-link\fP ץλѻˡ¤Τ˸äɽʤ󥯤¿ȯǽޤƥȤϥϥѡƥȥ󥯤դ줺ɽޤΥ󥯤ɽٹ𤫤顢Υ󥯤ǧǤޤ饹Ȥˤäƥ󥯤ɲä뤿ΤäȤˡϾȤꡢΥ饹򥤥ݡȤ뤳ȤǤ .LP -\f3パッケージリスト\fP \- \f2\-link\fP オプションは、\f2package\-list\fP という名前のファイルを要求します。 このファイルは、Javadoc ツールによって生成され、\f2\-link\fP によって指定した URL に存在します。\f2package\-list\fP ファイルは、その場所にあるドキュメント化されたパッケージの名前のリストが入った単純なテキストファイルです。前の例では、Javadoc ツールは指定された URL にある \f2package\-list\fP という名前のファイルを探し、パッケージ名を読み込んで、その URL にあるそれらのパッケージへのリンクを作成しました。 +\f3ѥåꥹ\fP \- \f2\-link\fP ץǽˤϡJavadoc ġˤä \f2package\-list\fP Ȥ̾Υե뤬桼 \f2\-link\fP ˻ꤷ URL ¸ߤƤɬפޤ \f2package\-list\fP եϡξˤɥȲ줿ѥå̾ΥꥹȤäñʥƥȥեǤǤϡJavadoc ġϡꤵ줿 URL \f2package\-list\fP Ȥ̾Υե򸡺ѥå̾ɤ߹ȡ URL ˤ뤽ΥѥåؤΥ󥯤ޤ .LP -たとえば、Java プラットフォーム v5.0 API のパッケージリストは +ȤСJava SE 6 API ΥѥåꥹȤ .na -\f2http://java.sun.com/j2se/1.5.0/docs/api/package\-list\fP @ +\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api/package\-list にあり、次のような内容で始まっています。 +http://java.sun.com/javase/6/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ .nf \f3 .fl @@ -4808,64 +3314,64 @@ http://java.sun.com/j2se/1.5.0/docs/api/package\-list にあり、次のよう .fl java.awt.font .fl - その他 ... + ¾ .fl \fP .fi .LP -\f2\-link\fP オプションを指定せずに javadoc を実行した場合、外部参照クラスに属する名前を見つけると、javadoc はその名前をリンクを持たない形で出力します。一方、\f2\-link\fP オプションを指定した場合は、指定した \f2extdocURL\fP にある \f2package\-list\fP ファイルから該当するパッケージ名が検索されます。パッケージ名が見つかると、\f2extdocURL\fP が名前の前に付加されます。 +\f2\-link\fP ץꤻ javadoc ¹Ԥ硢ȥ饹°̾򸫤Ĥȡjavadoc Ϥ̾󥯤ʤǽϤޤ \f2\-link\fP ץ󤬻ꤵ줿硢Javadoc ġϡ \f2ꤵ줿\fP \f2extdocURL\fP ξˤ package\-list եǡΥѥå̾򸡺ޤѥå̾Ĥȡ\f2extdocURL\fP ̾ղäޤ .LP -すべてのリンクが正しく機能するためには、外部参照のすべてのドキュメントが、指定した URL に存在していなければなりません。Javadoc ツールは、指定された package\-list が存在するかどうかを調べるだけで、指定された URL に目的のページが存在するかどうかはチェックしません。 +٤ƤΥ󥯤ǽ뤿ˤϡȤΤ٤ƤΥɥȤꤷ URL ¸ߤƤʤФʤޤJavadoc ġϡꤵ줿 package\-list ¸ߤ뤫ɤĴ٤ǡꤵ줿 URL ŪΥڡ¸ߤ뤫ɤϥåޤ .LP -\f3複数のリンク\fP \- 複数の \f2\-link\fP オプションを指定すると、生成された任意の数の外部ドキュメントに対してリンクを設定できます。Javadoc 1.2 には、複数の \f2\-link\fP オプションを指定できないというバグがあります。これは 1.2.2 で修正されました。 +\f3ʣΥ\fP \- ʣ \f2\-link\fP ץꤹȡǤդογɥȤؤΥ󥯤ǤޤJavadoc 1.2 ˤϡʣ \f2\-link\fP ޥɤǤʤȤХޤ 1.2.2 ǽޤ .LP -リンクする外部ドキュメントごとに、次のように別々のリンクオプションを指定します。 +󥯤볰ɥȤȤˡΤ褦̡Υ󥯥ץꤷޤ .LP -\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2...\fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP +\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP .LP -\f2extdocURL1\fP、\f2extdocURL2\fP、... \f2extdocURLn\fP は、それぞれ外部ドキュメントのルートを指し、各ルートには \f2package\-list\fP という名前のファイルが入っています。 +\f2extdocURL1\fP\f2extdocURL2\fP... \f2extdocURLn\fP ϡ줾쳰ɥȤΥ롼Ȥؤƥ롼Ȥˤϡ \f2package\-list\fP Ȥ̾Υե뤬äƤޤ .LP -\f3クロスリンク\fP \- まだ生成されていない 2 つ以上のドキュメントをクロスリンクする場合は、「ブートストラップ」が必要になります。つまり、どのドキュメントについても \f2package\-list\fP が存在していない場合は、最初のドキュメントに対して javadoc ツールを実行する時点で、2 番目のドキュメントの \f2package\-list\fP がまだ存在していません。したがって、外部リンクを作成するには、2 番目のドキュメントを生成したあとで、最初のドキュメントを生成し直す必要があります。 +\f3\fP \- ޤƤʤ 2 İʾΥɥȤ򥯥󥯤ϡ֥֡ȥȥåספɬפˤʤޤĤޤꡢɤΥɥȤˤĤƤ \f2package\-list\fP ¸ߤƤʤϡǽΥɥȤФ Javadoc ġ¹Ԥǡ2 ܤΥɥȤ \f2package\-list\fP Ϥޤ¸ߤƤޤ󡣤äơ󥯤ˤϡ2 ܤΥɥȤȤǡǽΥɥȤľɬפޤ .LP -この場合、最初のドキュメント生成の目的は、そのドキュメントの \f2package\-list\fP を作成することです。 パッケージ名をすべて把握している場合は、package\-list を手動で作成することもできます。次に、2 番目のドキュメントとその外部リンクを生成します。必要な外部の \f2package\-list\fP ファイルが存在しない場合、Javadoc ツールは警告を表示します。 +ξ硢ǽΥɥŪϡ \f2package\-list\fP 뤳ȤǤѥå̾򤹤٤İƤϡpackage\-list ưǺƤ⤫ޤޤ󡣼ˡ2 ܤΥɥȤȤγ󥯤ޤɬפʳ \f2package\-list\fP ե뤬¸ߤʤϡJavadoc ġ뤫ٹ𤬽Ϥޤ .LP .TP 3 \-linkoffline\ extdocURL\ packagelistLoc -このオプションは、\f2\-link\fP オプションを変えたものです。 どちらも、javadoc によって生成された外部参照クラスのドキュメントへのリンクを作成します。Javadoc ツール自体がオフラインになっているとき (Web 接続を使ってドキュメントにアクセスできないとき)、Web 上のドキュメントにリンクするには、\f2\-linkoffline\fP オプションを使用します。 +Υץ \f2\-link\fP ΥХꥨ 1 ĤǤɤ⡢ȥ饹 javadoc ɥȤؤΥ󥯤ޤJavadoc \f2ġ뼫Τ\fP ե饤ˤʤäƤȤ (Web ³ȤäƥɥȤ˥ǤʤȤ)Web ΥɥȤ˥󥯤ˤϡ\-linkoffline ץѤޤ .LP -厳密には、外部ドキュメントの \f2package\-list\fP ファイルにアクセスできないとき、またはこのファイルが \f2extdocURL\fP で指定された場所とは異なる場所 (通常、\f2packageListLoc\fP で指定可能なローカルな場所) に存在するとき、\f2\-linkoffline\fP を使用します。したがって、\f2extdocURL\fP に WWW 上でしかアクセスできない場合は、\f2\-linkoffline\fP を指定することにより、ドキュメントの生成時に javadoc ツールが Web に接続できなければならないという制約がなくなります。 +̩ˤϡ \f2\fP ɥȤ \f2package\-list\fP ե˥ǤʤȤޤϤΥե뤬 \f2extdocURL\fP ǻꤵ줿Ȥϰۤʤ (̾\f2packageListLoc\fP ǻǽʥʾ) ¸ߤȤ\-linkoffline ѤޤäơWWW ͳǤ \f2extdocURL\fP ˥Ǥʤ硢 \f2\-linkoffline\fP ꤹ뤳ȤˤꡢɥȤ Javadoc ġ뤬 Web ³ǤʤФʤʤȤ󤬤ʤʤޤ .LP -さらに、ドキュメントを更新するための「ハッキング」としての使用も可能です。パッケージのセット全体に対して javadoc を実行したあと、変更した一部のパッケージだけに対して javadoc を実行します。 こうして、更新されたファイルを、オリジナルのファイルセットに挿入できるようにします。例をあとで示します。 +ˡɥȤ򹹿뤿Ρ֥ϥå󥰡פȤƤλѤǽǤѥåΥåΤФ javadoc ¹ԤȡѹΥѥåФ javadoc ¹Ԥޤơ줿ե򡢥ꥸʥΥե륻åȤǤ褦ˤޤ򤢤ȤǼޤ .LP -\f2\-linkoffline\fP オプションは引数を 2 つ取ります。 最初の引数は \f2<a href>\fP リンクに組み込まれる文字列を指定する引数、2 番目の引数は \f2package\-list\fP の検索場所を指定する引数です。 +\f2\-linkoffline\fP ץϰ 2 ļޤ1 Ĥϡ \f2<a href>\fP 󥯤Ȥ߹ޤʸɽ⤦ 1 Ĥ \f2package\-list\fP θ򼨤Ǥ .RS 3 .TP 2 o -\f4extdocURL\fP は、リンク先として指定する、javadoc によって生成された外部ドキュメントを含むディレクトリの絶対 URL または相対 URL です。相対リンクを使用する場合、\f2\-d\fP を使って、生成先ディレクトリからリンクされるパッケージのルートの相対パスを指定する必要があります。詳細は、\f2\-link\fP オプションの \f2extdocURL\fP を参照してください。 +\f4extdocURL\fP ϡȤƻꤹ롢javadoc ˤä줿ɥȤޤǥ쥯ȥ URL ޤ URL ǤХ󥯤ξ硢ͤϡ( \f2\-d\fP ǻꤵ줿) ǥ쥯ȥ꤫ѥåΥ롼ȤؤХѥˤ٤Ǥܺ٤ϡ\-link ץ \f2extdocURL\fP \f2򻲾\fP Ƥ .TP 2 o -\f4packagelistLoc\fP には、外部ドキュメントの \f2package\-list\fP ファイルが入っているディレクトリのパスまたは URL を指定します。これは、URL (http: または file:)or file:)とファイルパスのどちらでもかまいません。また、絶対パスと相対パスのどちらでも指定できます。相対パスの場合は、javadoc が実行されるカレントディレクトリからの相対パスとして指定します。\f2package\-list\fP というファイル名は含めないでください。 +\f4packagelistLoc\fP ϡɥȤ \f2package\-list\fP եޤǥ쥯ȥؤΥѥޤ URL ǤϡURL (http: ޤ file:) ǤեѥǤ⤫ޤޤ󤷡ХѥǤХѥǤ⤫ޤޤХѥξϡjavadoc ¹Ԥ륫ȥǥ쥯ȥ꤫ХѥȤƻꤷޤե̾ \f2package\-list\fP ϴޤʤǤ .RE .LP -javadoc の 1 回の実行で、複数の \f2\-linkoffline\fP オプションを指定できます。1.2.2 より前は、複数のオプションを指定することはできませんでした。 +1 javadoc ¹Ԥʣ \f2\-linkoffline\fP ץǤޤ1.2.2 ϡʣΥץꤹ뤳ȤϤǤޤǤ .LP -\f3外部ドキュメントへの絶対リンクを使った例\fP \- \f2http://java.sun.com/j2se/1.5.0/docs/api\fP 内の \f2java.lang\fP、\f2java.io\fP、、およびその他の Java 2 プラットフォームパッケージにリンクしたくても、Web にアクセスできない 場合について考えてみます。この場合は、ブラウザで +\f3ɥȤؤХ󥯤λ\fP \- http://java.sun.com/javase/6/docs/api \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ\fP Web ˥Ǥʤͤޤ֥饦 \f2\fP .na -\f2http://java.sun.com/j2se/1.5.0/docs/api/package\-list\fP @ +\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/api/package\-list にある \f2package\-list\fP ファイルを開き、ローカルディレクトリに保存します。 さらに、2 番目の引数 \f2packagelistLoc\fP にこのローカルコピーの場所を指定します。この例では、パッケージリストファイルはカレントディレクトリ "\f2.\fP" に保存されています。次のコマンドは、Java 2 プラットフォーム API へのリンクを含む、\f2com.mypackage\fP パッケージのドキュメントを生成します。生成されたドキュメントには、たとえばクラスツリー内の \f2Object\fP クラスへのリンクが含まれています。\f2\-sourcepath\fP などの他の必要なオプションは表示されません。 +http://java.sun.com/javase/6/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ɬץץϼƤޤ .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/j2se/1.5.0/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP .fl .fi .LP -\f3外部ドキュメントへの相対リンクの使用例\fP \- 通常、\f2\-linkoffline\fP に相対パスを指定することはありません。 \f2\-link\fP で同じことができるからです。\f2\-linkoffline\fP を使用する際、\f2package\-list\fP には通常ローカルのファイルを指定します。 相対リンクを使用する際も、リンク先のファイルには通常ローカルのファイルを指定します。したがって、\f2\-linkoffline\fP の 2 つの引数に別々のパスを指定する必要はありません。2 つの引数が同一である場合は、\f2\-link\fP を使用できます。\f2\-link\fP の相対リンクの例を参照してください。 +\f3ɥȤؤХ󥯤λ\fP \- \f2\-linkoffline\fP ХѥѤ뤳Ȥϡޤꤢޤͳñǡ̾ \f2\-link\fP ǽʬǤ \f2\-linkoffline\fP Ѥݡ \f2package\-list\fP ˤ̾Υեꤷޤ Х󥯤Ѥݤ⡢Υեˤ̾Υեꤷޤäơ \f2\-linkoffline 2 Ĥΰ̡ΥѥꤹɬפϤޤ\fP2 ĤΰƱǤϡ \f2\-link\fP ѤǤޤ \f2\-link\fP Х󥯤򻲾ȤƤ .LP -\f4package\-list\fP\f3 ファイルを手動で作成\fP \- \f2package\-list\fP ファイルがまだ存在しなくても、ドキュメントのリンク先のパッケージ名がわかっている場合は、このファイルを自分で作成し、\f2packagelistLoc\fP でそのパスを指定することができます。\f2com.apipackage\fP が最初に生成され、\f2com.spipackage\fP のパッケージリストが存在しないという前出の例を参照してください。この方法は、パッケージ名はわかっているものの、まだ公開されていない、新しい外部ドキュメントにリンクするドキュメントを生成する必要がある場合に便利です。また、\f2package\-list\fP ファイルが生成されない Javadoc 1.0 や 1.1 などで生成されたパッケージ向けに \f2package\-list\fP ファイルを作成するときにも、この方法を利用します。同様に、2 つの会社が未公開の \f2package\-list\fP ファイルを共有することもできるため、クロスリンクを設定したドキュメントを同時にリリースすることも可能です。 +\f4package\-list\fP\f3 եưǺ\fP \- \f2package\-list\fP ե뤬ޤ¸ߤʤƤ⡢ɥȤΥΥѥå̾狼äƤϡΥեʬǺpackagelistLoc \f2ǤΥѥꤹ뤳ȤǤޤ\fPcom.apipackage ǽ \f2com.spipackage\fP ΥѥåꥹȤ¸ߤƤʤäȤ \f2ФΥ\fP ȤƵ󤲤ޤˡϡѥå̾Ϥ狼äƤΤΡޤƤʤɥȤ˥󥯤ɥȤɬפǤޤJavadoc 1.0 ޤ 1.1 줿ѥå \f2package\-list\fP եɬפˤ⡢ˡȤޤΥСǤϡ \f2package\-list\fP եƤޤǤƱͤˡ2 ĤδȤ̤ \f2package\-list\fP եͭС󥯤ޤɥȤƱ˥꡼뤳ȤǽȤʤޤ .LP -\f3複数のドキュメントへのリンク\fP \- \f2\-linkoffline\fP は、参照先の生成ドキュメントごとに 1 つずつ指定します。 次の例では、わかりやすくするためにオプションごとに行を分けています。 +\f3ʣΥɥȤؤΥ\fP \- ȤʤɥȤȤ \f2\-linkoffline\fP 1 󤺤Ĵޤ뤳ȤǤޤ狼䤹뤿ˡץ󤴤Ȥ˲ԤƼƤޤ .LP \f2% \fP\f4javadoc \-linkoffline\fP \f2extdocURL1\fP \f2packagelistLoc1\fP \f2\\\fP .br @@ -4873,24 +3379,24 @@ http://java.sun.com/j2se/1.5.0/docs/api/package\-list にある \f2package\-list .br \f2\ \ \ \ \ \ \ \ \ \ ...\fP .LP -\f3ドキュメントの更新\fP \- 前述の \f2\-linkoffline\fP オプションのもうひとつの用途は、プロジェクトに大量のパッケージが含まれていて、すでにツリー全体に対して javadoc の実行が完了している場合に、次の実行では、少量の変更を手早く加えたあと、ソースツリーのごく一部に対してだけ javadoc を再実行する場合に便利です。これは、ドキュメンテーションコメントに対してだけ変更を加え、宣言は変更しない場合にのみ正しく処理されるので、ハッキングのようなものです。ソースコードの宣言を追加、削除、または変更した場合は、索引、パッケージツリー、継承されるメンバーのリスト、[使用] ページなどの場所で、リンクが壊れることがあります。 +\f3ɥȤι\fP \- Ҥ \f2\-linkoffline\fP ץΤ⤦ҤȤĤӤϡץȤ̤ΥѥåޤޤƤơǤ˥ĥ꡼ΤФ javadoc μ¹ԤλƤˡμ¹ԤǤϡ̤ѹ᤯äȡĥ꡼ΤФƤ javadoc Ƽ¹ԤǤϡɥơ󥳥ȤФƤѹäѹʤˤΤΤǡϥå󥰤Τ褦ʤΤǤɤɲáޤѹϡѥåĥ꡼ѾСΥꥹȡֻѡץڡʤɤξǡ󥯤뤳Ȥޤ .LP -まず、今回の実行で使用する新しい生成先ディレクトリ (\f2update\fP) を作成します。元の生成先ディレクトリの名前が \f2html\fP だとします。もっとも単純な例では、\f2html\fP ディレクトリの親ディレクトリに移動 (cd) します。\f2\-linkoffline\fP の最初の引数にカレントディレクトリ "." を指定し、2 番目の引数に \f2html\fP への相対パスを指定します。 ここで、\f2package\-list\fP が検索されます。 更新対照のパッケージのパッケージ名だけを指定してください。 +ޤοʼ¹ѤȤơǥ쥯ȥ ( \f2update\fP ̿̾) ޤǥ쥯ȥ̾ \f2html\fP äȤޤäȤñǤϡ \f2html ǥ쥯ȥοƥǥ쥯ȥ˰ư (cd) ޤ\fP \f2\-linkoffline\fP 1 򥫥ȥǥ쥯ȥ.פꤷ 2 package\-list ޤޤƤ \f2html\fP ؤХѥꤷ \f2ѥåΥѥå̾Τߤ\fPϤޤ .nf \f3 .fl % \fP\f3javadoc \-d update \-linkoffline . html com.mypackage\fP .fl .fi -Javadoc ツールの終了後、\f2update/com/package\fP 内の生成されたクラスのページをコピーし (概要や索引を除く)、\f2html/com/package\fP 内の元のファイルに上書きします。 +Javadoc ĥ꡼νλ塢 \f2update/com/package\fP 줿饹Υڡ򥳥ԡ (פϽ) \f2html/com/package θΥե˾񤭤ޤ\fP .LP .TP 3 \-linksource\ -各ソースファイル (行番号付き) の HTML バージョンを作成し、標準 HTML ドキュメントからソースファイルへのリンクを追加します。リンクは、ソースファイル内に宣言されているクラス、インタフェース、コンストラクタ、メソッド、フィールドに対して作成されます。デフォルトコンストラクタ、生成されたクラスに対しては作成されません。 +ƥե (ֹդ) HTML Сɸ HTML ɥȤ饽եؤΥ󥯤ɲäޤ󥯤ϡեƤ륯饹󥿥ե󥹥ȥ饯᥽åɡեɤФƺޤǥեȥ󥹥ȥ饯줿饹ФƤϺޤ .LP -\f3このオプションは、\fP\f4\-public\fP\f3、\fP\f4\-package\fP\f3、\fP\f4\-protected\fP\f3、\fP\f4\-private\fP\f3 の各オプションとは関係なく、非公開のクラス、フィールド、非公開のメソッドの本体をはじめとする組み込まれたソースファイル内のすべての非公開実装の詳細を公開します。\fP\f2\-private\fP オプションを指定しないかぎり、非公開のクラスやインタフェースの一部には、リンクを介してアクセスできないことがあります。 +\f3Υץϡ\fP\f4\-public\fP\f3 \fP\f4\-package\fP\f3 \fP\f4\-protected\fP\f3 \fP\f4\-private\fP\f3 γƥץȤϴطʤΥ饹եɡΥ᥽åɤΤϤȤȤ߹ޤ줿եΤ٤Ƥξܺ٤ޤ\fP\f2\-private\fP ץʻƻꤷʤꡢΤ٤ƤΥ饹䥤󥿥ե˥󥯷ͳǥǤȤϤޤ .LP -各リンクは、その宣言内の識別子名の上に作成されます。たとえば、\f2Button\fP クラスのソースコードヘのリンクは、「Button」という語の上に作成されます。 +ƥ󥯤ϡμ̻̾ξ˺ޤȤС \f2Button\fP 饹ΥɤؤΥ󥯤ϡButtonפȤξ˺ޤ .nf \f3 .fl @@ -4902,7 +3408,7 @@ Javadoc ツールの終了後、\f2update/com/package\fP 内の生成された .fl \fP .fi -Button クラスの \f2getLabel()\fP メソッドのソースコードへのリンクは、「getLabel」という語の上に作成されます。 +ޤButton 饹 \f2getLabel()\fP ᥽åɤΥɤؤΥ󥯤ϡgetLabelפȤξ˺ޤ .nf \f3 .fl @@ -4913,26 +3419,21 @@ Button クラスの \f2getLabel()\fP メソッドのソースコードへのリ .LP .TP 3 \-group\ groupheading\ packagepattern:packagepattern:... -概要ページの複数のパッケージを、指定したグループに分けて、グループごとに表を作成します。各グループは、それぞれ別の \f2\-group\fP オプションで指定します。これらのグループは、コマンド行で指定した順序でページに表示されます。 各グループ内では、パッケージがアルファベット順に並べられます。指定した \f2\-group\fP オプションごとに、\f2packagepattern\fP 式のリストと一致するパッケージが、見出し \f2groupheading\fP を持つ 1 つの表にまとめて表示されます。 +ץڡʣΥѥå򡢻ꤷ롼פʬơ롼פȤɽޤƥ롼פϡ줾̤ \f2\-group\fP ץǻꤷޤΥ롼פϡޥɹԤǻꤷǥڡɽޤƥ롼Ǥϡѥåե٥åȽ¤٤ޤ \f2\-group\fP ץǤϡ \f2packagepattern\fP ΥꥹȤ˰פѥå \f2groupheading\fP ȤФɽɽޤ .RS 3 .TP 2 o -\f4groupheading\fP には、任意のテキストを指定でき、空白を含めることができます。指定したテキストは、グループの表見出しになります。 +\f4groupheading\fP ˤϡǤդΥƥȤǤޤ뤳ȤǤޤꤷƥȤϡ롼פɽФˤʤޤ .TP 2 o -\f4packagepattern\fP には、任意のパッケージ名、または任意のパッケージ名の先頭部分とそれに続く 1 つのアスタリスク (\f2*\fP) を指定できます。アスタリスクは、「任意の文字に一致する」という意味のワイルドカードです。ワイルドカードとして指定できるのは、アスタリスクだけです。1 つのグループには、コロン (\f2:\fP) で区切って複数のパターンを含めることができます。 -.RE -.RS 3 - -.LP -.LP -\f3注: パターンやパターンリスト内でアスタリスクを使う場合は、\fP\f4"java.lang*:java.util"\fP\f3 のように、パターンリストを引用符で囲む必要があります。\fP -.LP +\f4packagepattern\fP ˤϡǤդΥѥå̾ޤǤդΥѥå̾ƬʬȤ³ 1 ĤΥꥹ (\f2*\fP) Ǥޤ ꥹϡǤդʸ˰פפȤ̣Υ磻ɥɤǤ磻ɥɤȤƻǤΤϡꥹǤ1 ĤΥ롼פˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ .RE .LP -\f2\-group\fP オプションが指定されていない場合は、すべてのパッケージが、「パッケージ」という見出しの 1 つのグループに入れられます。ドキュメント化されるパッケージの中に、指定したグループのどのグループにも入らないパッケージがある場合、このようなパッケージは「その他のパッケージ」という見出しを持つ独立したグループに入れられます。 +\f3: ѥѥꥹǥꥹȤϡ \fP\f4"java.lang*:java.util" Τ褦ˡѥꥹȤǰϤɬפޤ\fP .LP -たとえば、次のようにオプションを指定すると、ドキュメント化される 5 つのパッケージは、コアパッケージ、拡張機能パッケージ、およびその他のパッケージに分けられます。「java.lang*」では、最後のドットを指定していないことに注目してください。 「java.lang.*」のようにドットを入れると、java.lang パッケージは除外されることになります。 +桼 \f2\-group\fP ץ 1 Ĥꤷʤä硢֥ѥåפȤФ 1 ĤΥ롼ˡ٤ƤΥѥå֤ޤɥȲѥåˡꤷ롼פΤɤΥ롼פˤʤѥå硢Τ褦ʥѥåϡ֤¾ΥѥåפȤФΩ롼פޤ +.LP +ȤСΤ褦˥ץꤹȡɥȲ 5 ĤΥѥåϡѥåĥǽѥåӤ¾Υѥåʬޤjava.lang*פǤϡǸΥɥåȤꤷƤʤȤܤƤjava.lang.*פΤ褦˥ɥåȤȡjava.lang ѥåϽ뤳Ȥˤʤޤ .nf \f3 .fl @@ -4943,56 +3444,52 @@ o java.lang java.lang.reflect java.util javax.servlet java.new\fP .fl .fi -この結果、次のようなグループ化が行われます。 -.RS 3 +η̡Τ褦ʥ롼ײԤޤ .RS 3 .TP 3 -コアパッケージ +ѥå \f2java.lang\fP \f2java.lang.reflect\fP \f2java.util\fP .TP 3 -拡張機能パッケージ +ĥǽѥå \f2javax.servlet\fP .TP 3 -その他のパッケージ +¾Υѥå \f2java.new\fP .RE - -.LP -.RE .LP .TP 3 \-nodeprecated -推奨されない API をドキュメントに生成しないようにします。このオプションを指定すると、\-nodeprecatedlist オプションを指定した場合と同じ効果があることに加えて、ドキュメントのほかの部分全体でも、推奨されない API が生成されません。このオプションは、コードを記述しているとき、推奨されないコードによって気を散らされたくない場合に便利です。 +侩ʤ API ɥȤʤ褦ˤޤΥץꤹȡ\-nodeprecatedlist ץꤷƱ̤뤳Ȥ˲äơɥȤΤۤʬΤǤ⡢侩ʤ API ޤ󡣤Υץϡɤ򵭽ҤƤȤ侩ʤɤˤäƵ򻶤餵줿ʤǤ .LP .TP 3 \-nodeprecatedlist -推奨されない API のリストを含むファイル (deprecated\-list.html)、およびナビゲーションバーのそのページへのリンクが生成されないようにします。ただし、ドキュメントのほかの部分では、推奨されない API が生成されます。このオプションは、推奨されない API がソースコードに含まれておらず、ナビゲーションバーをすっきりと見せたい場合に便利です。 +侩ʤ API ΥꥹȤޤե (deprecated\-list.html)ӥʥӥСΤΥڡؤΥ󥯤ʤ褦ˤޤɥȤΤۤʬǤϡ侩ʤ API ޤΥץϡ侩ʤ API ɤ˴ޤޤƤ餺ʥӥС򤹤äȸǤ .LP .TP 3 \-nosince -生成ドキュメントから、@since タグに対応する「導入されたバージョン」 セクションを省略します。 +ɥȤ顢@since бƳ줿С άޤ .LP .TP 3 \-notree -生成されるドキュメントからクラスおよびインタフェースの階層ページを省略します。これらのページには、ナビゲーションバーの「ツリー」ボタンからアクセスできます。デフォルトでは、階層が生成されます。 +ɥȤ饯饹ӥ󥿥եγإڡάޤΥڡˤϡʥӥСΡ֥ĥ꡼ץܥ󤫤饢ǤޤǥեȤǤϡؤޤ .LP .TP 3 \-noindex -生成ドキュメントから、索引を省略します。デフォルトでは、索引が生成されます。 +ɥȤ顢άޤǥեȤǤϡޤ .LP .TP 3 \-nohelp -出力の各ページの最上部と最下部にあるナビゲーションバーから [ヘルプ] リンクを省略します。 +ϤγƥڡκǾȺDzˤʥӥС֥إסץ󥯤άޤ .LP .TP 3 \-nonavbar -生成されるページの最上部と最下部に表示されるナビゲーションバー、ヘッダー、およびフッターを生成しないようにします。このオプションは、bottom オプションには影響を与えません。\f2\-nonavbar\fP オプションは、印刷するためだけにファイルを PostScript または PDF に変換する場合など、内容だけが重要で、ナビゲーションの必要がない場合に便利です。 +ڡκǾȺDzɽʥӥСإåӥեåʤ褦ˤޤΥץϡbottom ץˤϱƶͿޤ \f2\-nonavbar\fP ץϡ뤿˥ե PostScript ޤ PDF ѴʤɡƤפǡʥӥɬפʤǤ .LP .TP 3 \-helpfile\ path/filename -上部と下部のナビゲーションバーの [ヘルプ] リンクのリンク先となる代替ヘルプファイル \f2path/filename\fP のパスを指定します。このオプションが指定されていない場合、Javadoc ツールは、ハードコードされているヘルプファイル \f2help\-doc.html\fP を自動的に作成します。このオプションを使うと、そのデフォルトの動作をオーバーライドできます。\f2filename\fP にはどんなファイル名でも指定でき、\f2help\-doc.html\fP には限定されません。例を示します。 +ȲΥʥӥСΡ֥إסץ󥯤ΥȤʤإإץե \f2path/filename\fP ΥѥꤷޤΥץ󤬻ꤵʤȡJavadoc ġϡġǥϡɥɤƤإץե \f2help\-doc.html\fP ưޤΥץȤȡΥǥեȤư򥪡С饤ɤǤޤ\f2filename\fP ˤϤɤʥե̾ǤǤ \f2help\-doc.html ˤϸꤵޤ\fP Javadoc ġϡʥӥСΥ󥯤ɬפ˱Ĵޤ򼨤ޤ .nf \f3 .fl @@ -5001,7 +3498,7 @@ o .fi .TP 3 \-stylesheetfile\ path/filename -代替 HTML スタイルシートファイルのパスを指定します。このオプションが指定されていない場合、Javadoc ツールは、ハードコードされているスタイルシートファイル \f2stylesheet.css\fP を自動的に作成します。このオプションを使うと、そのデフォルトの動作をオーバーライドできます。\f2filename\fP にはどんなファイル名でも指定でき、\f2stylesheet.css\fP には限定されません。例を示します。 + HTML 륷ȥեΥѥꤷޤΥץ󤬻ꤵʤȡJavadoc ġϡġǥϡɥɤƤ륹륷ȥե \f2stylesheet.css\fP ưޤΥץȤȡΥǥեȤư򥪡С饤ɤǤޤ\f2filename\fP ˤϤɤʥե̾ǤǤ \f2stylesheet.css ˤϸꤵޤ\fPȤС .nf \f3 .fl @@ -5010,22 +3507,22 @@ o .fi .TP 3 \-serialwarn -@serial タグがない場合は、コンパイル時に警告を生成します。デフォルトでは、Javadoc 1.2.2 以降のバージョンでは、直列化の警告は生成されません。1.2.2 より前の初期バージョンでは、警告が生成されます。このオプションを使用すると、直列化の警告が表示されるので、デフォルトの直列化可能フィールドと \f2writeExternal\fP メソッドを適切にドキュメント化するのに役立ちます。 +@serial ʤϡѥ˷ٹޤǥեȤǤϡJavadoc 1.2.2 ʹߤΥСǤϡľ󲽤ηٹޤ1.2.2 νСǤϡٹޤΥץѤȡľ󲽤ηٹɽΤǡǥեȤľ󲽲ǽեɤ \f2writeExternal\fP ᥽åɤŬڤ˥ɥȲΤΩޤ .LP .TP 3 \-charset\ name -このドキュメント用の HTML 文字セットを指定します。この名前は、 +ΥɥѤ HTML ʸåȤꤷޤ̾ϡ .na \f2IANA Registry\fP @ .fi -http://www.iana.org/assignments/character\-sets で与えられた、推奨される MIME 名でなければなりません。例を示します。 +http://www.iana.org/assignments/character\-sets Ϳ줿侩 MIME ̾ǤʤФʤޤ󡣤ȤС .nf \f3 .fl % \fP\f3javadoc \-charset "iso\-8859\-1" mypackage\fP .fl .fi -生成されるすべてのページの先頭に、次の行が挿入されます。 +뤹٤ƤΥڡƬˡιԤޤ .nf \f3 .fl @@ -5033,34 +3530,34 @@ http://www.iana.org/assignments/character\-sets で与えられた、推奨さ .fl \fP .fi -この META タグについては、 + META ˤĤƤϡ .na -\f2HTML の標準\fP @ +\f2HTML ɸ\fP @ .fi -http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2 (4197265 および 4137321) を参照してください。 +http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2 (4197265 4137321) 򻲾ȤƤ .LP -\-encoding および \-docencoding も参照してください。 +\-encoding \-docencoding ⻲ȤƤ .LP .TP 3 \-docencoding\ name -生成される HTML ファイルのエンコーディングを指定します。この名前は、 + HTML եΥ󥳡ǥ󥰤ꤷޤ̾ϡ .na \f2IANA Registry\fP @ .fi -http://www.iana.org/assignments/character\-sets で与えられた、推奨される MIME 名でなければなりません。このオプションを省略しながら \-encoding を使用した場合、生成される HTML ファイルのエンコードは、\-encoding によって決められます。例: +http://www.iana.org/assignments/character\-sets Ϳ줿侩 MIME ̾ǤʤФʤޤ󡣤Υץάʤ \-encoding Ѥ硢 HTML եΥ󥳡ɤϡ\-encoding ˤäƷޤ: .nf \f3 .fl % \fP\f3javadoc \-docencoding "ISO\-8859\-1" mypackage\fP .fl .fi -\-encoding および \-charset も参照してください。 +\-encoding \-charset ⻲ȤƤ .LP .TP 3 \-keywords -HTML メタキーワードタグを、クラスごとに生成されるファイルに追加します。これらのタグは、メタタグを検索するサーチエンジンがページを見つける場合に役立ちます。インターネット全体を検索する多くのサーチエンジンは、ページがメタタグを誤用しているため、メタタグを調べません。 一方、検索を自身の Web サイトに限定している企業では、サーチエンジンがメタタグを調べることによってメリットを得られます。 +HTML ᥿ɥ򡢥饹ȤեɲäޤΥϡ᥿򸡺륵󥸥󤬥ڡ򸫤ĤΩޤ󥿡ͥåΤ򸡺¿Υ󥸥ϡڡ᥿ѤƤ뤿ᡢ᥿Ĵ٤ޤ󡣰򼫿Ȥ Web Ȥ˸ꤷƤȤǤϡ󥸥󤬥᥿Ĵ٤뤳ȤˤäƥåȤޤ .LP -メタタグには、クラスの完全修飾名と、フィールドおよびメソッドの修飾されていない名前が含まれます。コンストラクタは、クラス名と同じであるため含まれません。たとえば、クラス String は次のキーワードで開始します。 +᥿ˤϡ饹δ̾ȡեɤӥ᥽åɤνƤʤ̾ޤޤޤ󥹥ȥ饯ϡ饹̾ƱǤ뤿ޤޤޤ󡣤ȤС饹 String ϼΥɤdzϤޤ .nf \f3 .fl @@ -5077,29 +3574,29 @@ HTML メタキーワードタグを、クラスごとに生成されるファイ .LP .TP 3 \-tag\ \ tagname:Xaoptcmf:"taghead" -Javadoc ツールがドキュメンテーションコメント内の引数を 1 つ取る単純なカスタムブロックタグ \f2@\fP\f2tagname\fP を解釈できるようにします。これにより、Javadoc ツールはタグ名の「スペルチェック」を行うことができるので、ソースコード内のすべてのカスタムタグに \f2\-tag\fP オプションを組み込むことをお勧めします。今回の実行で出力されないタグは、\f2X\fP を付けて無効にします。 +Javadoc ġ뤬ɥơ󥳥ΰ 1 ļñʥ֥å \f2@\fP\f2tagname\fP Ǥ褦ˤޤJavadoc ġϥ̾Ρ֥ڥåפԤȤǤΤǡ¸ߤ뤹٤ƤΥॿˤĤơ \f2\-tag\fP ץޤ뤳ȤפǤμ¹ԤǤϽϤʤϡX դ̵ \f2ˤޤ\fP .LP -コロン (\f4:\fP) は常に区切り文字になります。\f2tagname\fP でコロンを使用するには、「タグ名でのコロンの使用」を参照してください。 + (\f4:\fP) ˶ڤʸˤʤޤtagname \f2ǥѤˡˤĤƤϡ\fP ֥̾ǤΥλѡפ򻲾ȤƤ .LP -\f2\-tag\fP オプションは、タグの見出し「taghead」を太字で出力します。 その次の行には、このオプションの引数で指定したテキストが続きます。 以下の例を参照してください。ブロックタグと同様、この引数のテキストにはインラインタグを含めることができます。 このインラインタグも解釈されます。出力は、引数を 1 つ取る標準のタグ (\f2@return\fP、\f2@author\fP など) の出力とよく似ています。\f2taghead\fP を省略すると、\f2tagname\fP が見出しとして表示されます。 +\f2\-tag\fP ץϡθФtagheadפǽϤޤ μιԤˤϡΥץΰǻꤷƥȤ³ޤ ʲ򻲾ȤƤ֥åƱ͡ΰΥƥȤˤϥ饤󥿥ޤ뤳ȤǤޤΥ饤󥿥ᤵޤϤϡ 1 ļɸΥ ( \f2@return\fP \f2@author\fP ʤ) νϤȤ褯Ƥޤ\f2taghead\fP άȡ\f2tagname\fP ФȤɽޤ .LP -\f3タグの配置\fP \- 引数の \f4Xaoptcmf\fP 部分は、ソースコード内のタグを配置できる位置と、\f2X\fP を使ってこのタグを無効にできるかどうかを特定します。タグの配置位置を制限しない場合は \f4a\fP を指定します。 それ以外の文字の組み合わせも可能です。 \f4X\fP (タグの無効化) +\f3\fP \- \f4Xaoptcmf\fP ʬϡΥ֤Ǥ֤ȡ ȤäƤΥ̵ˤǤ뤫ɤꤷޤ \f2X\fP). ְ֤¤ʤ \f4a\fP ꤷޤʳʸȤ߹碌ǽǤ \f4X\fP (̵) .br -\f4a\fP (すべての位置) +\f4a\fP (٤) .br -\f4o\fP (概要) +\f4o\fP () .br -\f4p\fP (パッケージ) +\f4p\fP (ѥå) .br -\f4t\fP (型すなわちクラスおよびインタフェース) +\f4t\fP (Ĥޤꥯ饹ȥ󥿥ե) .br -\f4c\fP (コンストラクタ) +\f4c\fP (󥹥ȥ饯) .br -\f4m\fP (メソッド) +\f4m\fP (᥽å) .br -\f4f\fP (フィールド) +\f4f\fP (ե) .LP -\f3シングルタグの例\fP \- ソースコード内の任意の位置で使用で気るタグのタグオプションの例を示します。 +\f3󥰥륿\fP \- Ǥդΰ֤ǻѤǤ륿Υץ򼨤ޤ .nf \f3 .fl @@ -5107,7 +3604,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -@todo をコンストラクタ、メソッド、フィールドのみで使用する場合は、以下のオプションを使用します。 +@todo 򥳥󥹥ȥ饯᥽åɡեɤΤߤǻѤϡʲΥץѤޤ .nf \f3 .fl @@ -5115,7 +3612,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -上の例の最後のコロン (\f2:\fP) は、パラメータ区切り子ですが、見出しテキストの一部になっています (以下の例を参照)。次の例のように、\f2@todo\fP タグを含むソースコードでは、いずれかのタグオプションを使用します。 +κǸΥ (\f2:\fP) ϡѥ᡼ڤҤǤФƥȤΰˤʤäƤޤ (ʲ򻲾)Τ褦ˡ \f2@todo\fP ޤॽɤǤϡ줫ΥץѤޤ .nf \f3 .fl @@ -5123,7 +3620,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -\f3タグ名にコロンを使用する\fP \- コロン (:) をバックスラッシュでエスケープすると、コロンをタグ名に使用することができます。このドキュメンテーションコメントの中では、次のように使用します。 +\f3̾˥Ѥ\fP \- (:) Хååǥפȡ򥿥̾˻Ѥ뤳ȤǤޤΥɥơ󥳥ȤǤϡΤ褦˻Ѥޤ .nf \f3 .fl @@ -5135,7 +3632,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -でこのタグオプションを使用すると、 +ǤΥץѤȡ .nf \f3 .fl @@ -5143,9 +3640,9 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -\f3タグ名のスペルチェック (タグの無効化)\fP \- ソースコード内に配置した一部のカスタムタグの出力を抑制したい場合があります。この場合も、ソースコード内にすべてのタグを配置し、出力を抑制しないタグを有効にし、出力を抑制するタグを無効にします。タグを無効にするには、\f2X\fP を指定します。指定しないと、そのタグは有効になります。 これにより、Javadoc ツールは、検出したタグが入力ミスなどによる未知のタグであるかどうかを特定できます。未知のタグを検出した場合、Javadoc ツールは警告を出力します。 +\f3̾Υڥå (̵)\fP \- ֤ΥॿνϤ礬ޤξ⡢ˤ٤ƤΥ֤ϤʤͭˤϤ륿̵ˤޤ \f2X\fP ¸ߤϥ̵ˤʤꡢ¸ߤʤϥͭˤʤޤˤꡢJavadoc ġϡФϥߥʤɤˤ̤ΤΥǤ뤫ɤǤޤ̤ΤΥ򸡽Ф硢Javadoc ġϷٹϤޤ .LP -すでに配置されている値に \f2X\fP を追加できます。 こうしておけば、\f2X\fP を削除するだけでタグを有効にすることができます。たとえば、@todo タグの出力を抑制したい場合、次のように指定します。 +Ǥ֤Ƥͤ \f2X\fP ɲäǤޤƤС \f2X ǥͭˤ뤳ȤǤޤ\fPȤС@todo νϤ硢Τ褦˻ꤷޤ .nf \f3 .fl @@ -5153,7 +3650,7 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 .fl \fP .fi -さらに単純な指定方法もあります。 +ñʻˡ⤢ޤ .nf \f3 .fl @@ -5162,13 +3659,13 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 \fP .fi .LP -構文 \f2\-tag todo:X\fP は、\f2@todo\fP が taglet で定義されている場合も有効です。 +ʸ \f2\-tag todo:X\fP ϡ \f2@todo\fP åȤƤƤͭǤ .LP -\f3タグの順序\fP \- \f2\-tag\fP (および \f2\-taglet\fP) オプションの順序によって、その出力順序が決定します。カスタムタグと標準タグを組み合わせて使用することもできます。標準タグのタグオプションは、順序を決定するためだけのプレースホルダです。これらは標準タグ名のみを使用します。(標準タグの小見出しは変更できません。)これについては、以下の例で説明します。 +\f3ν\fP \- \f2\-tag\fP ( \f2\-taglet\fP) ץνˤäơνϽ礬ޤޤॿɸॿȤ߹碌ƻѤ뤳ȤǤޤɸॿΥץϡꤹ뤿Υץ졼ۥǤɸॿ̾ΤߤѤޤ(ɸॿξФѹǤޤ)ˤĤƤϡʲޤ .LP -\f2\-tag\fP がない場合、\f2\-taglet\fP の位置によってその順序が決定します。タグが両方とも存在する場合、コマンド行の最後にあるほうがその順序を決定します。これは、タグやタグレットがコマンド行に指定された順番に処理されるためです。たとえば、\f2\-taglet\fP と \f2\-tag\fP の両方が todo という名前を持っている場合、コマンド行の最後にあるほうが順序を決定します。 +\f2\-tag\fP ¸ߤʤϡ \f2\-taglet\fP ΰ֤ˤäƤνޤޤξȤ¸ߤ硢ޥɹԤκǸˤۤνꤷޤϡ䥿åȤޥɹԤ˻ꤵ줿֤˽뤿ǤȤС \f2\-taglet\fP \f2\-tag\fP ξ todo Ȥ̾äƤ硢ޥɹԤκǸˤۤꤷޤ .LP -\f3タグの完全セットの例\fP \- この例では、出力の「Parameters」と「Throws」の間に「To Do」を挿入します。X を使用して、@example が、ソースコード内の今回の実行では出力されないタグであることを指定します。@argfile を使用する場合は、次のように、引数ファイル内の別々の行にタグを配置できます。 行の継続を示す文字は不要です。 +\f3δåȤ\fP \- ǤϡϤΡParametersפȡThrowsפδ֤ˡTo DoפޤX Ѥơ@example κμ¹ԤǤϽϤʤǤ뤳Ȥꤷޤ@argfile ѤϡΤ褦ˡե̡ιԤ˥֤ǤޤԤη³򼨤ʸפǤ .nf \f3 .fl @@ -5187,37 +3684,37 @@ Javadoc ツールがドキュメンテーションコメント内の引数を 1 \fP .fi .LP -javadoc がドキュメンテーションコメントを解析する際に検出されたタグのうち、標準タグでも \f2\-tag\fP や \f2\-taglet\fP で渡されるタグでもないものは、未知のタグの見なされます。 この場合、警告がスローされます。 +javadoc ɥơ󥳥ȤϤݤ˸줿ΤɸॿǤ⡢ \f2\-tag\fP \f2\-taglet\fP Ϥ줿ǤʤΤϤ٤̤ΤΥȤߤʤ졢ٹ𤬥ޤ .LP -標準タグは、最初、デフォルトの順序でリスト内に内部的に格納されます。\f2\-tag\fP オプションを使用すると、このリストに追加されるタグ、すなわち標準タグの位置がデフォルトの位置から移動します。つまり、標準タグに \f2\-tag\fP オプションを付けなければ、これらはデフォルトの位置に配置されたままになります。 +ɸॿϡǽ顢ǥեȤνǥꥹŪ˳Ǽޤ \f2\-tag\fP ץѤȡΥꥹȤɲä륿ʤɸॿΰ֤ǥեȤΰ֤ưޤĤޤꡢɸॿ \f2\-tag\fP ץդʤСϥǥեȤΰ֤֤줿ޤޤˤʤޤ .LP -\f3競合の回避\fP \- 固有の名前空間を分割するには、パッケージに使用されている \f2com.mycompany.todo\fP のように、ドット (.) 区切りの命名規則を使用します。Sun は、今後も名前にドットを含まない標準タグを作成します。ユーザーが作成したタグは、Sun が提供する同じ名前のタグの動作をオーバーライドします。つまり、ユーザーが \f2@todo\fP という名前のタグまたはタグレットを作成している場合、Sun があとから同じ名前の標準タグを作成しても、そのタグまたはタグレットは元の動作を保持します。 +\f3β\fP \- ֤ͭ̾٤ʬˤϡѥå˻ѤƤ \f2com.mycompany.todo Ȥ̾Τ褦ˡɥå (.) ڤ국Ȥ̾Ȥޤ\fPOracle ϡ̾˥ɥåȤޤޤʤɸॿޤ桼ϡOracle 󶡤Ʊ̾Υư򥪡С饤ɤޤĤޤꡢ \f2@todo\fP Ȥ̾ΥޤϥåȤ桼硢Oracle θƱ̾ɸॿȤƤ⡢ưϾ˥桼ưƱˤʤޤ .LP -\f3注釈 vs. Javadoc タグ\fP \- 一般に、追加する必要のあるマークアップが、ドキュメンテーションに影響を与えたりドキュメンテーションを生成したりするためのものである場合、そのマークアップは javadoc タグにすべきです。 それ以外の場合は注釈にすべきです。 +\f3 vs. Javadoc \fP \- ̤ˡɲäɬפΤޡåפɥơ˱ƶͿɥơꤹ뤿ΤΤǤ硢Υޡåפ javadoc ˤ٤Ǥʳξˤ٤Ǥ .na -\f2「Comparing Annotations and Javadoc Tags」\fP @ +\f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotationsを参照してください。 +http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations򻲾ȤƤ .LP -\-taglet オプションを使用して、より複雑なブロックタグやカスタムインラインタグを 作成することができます。 +\-taglet ץѤơʣʥ֥å䥫।饤󥿥 뤳ȤǤޤ .LP .TP 3 \-taglet\ \ class -そのタグのドキュメントの生成に使うドックレットを起動するためのクラスファイルを指定します。クラスの完全指定名を指定してください。このタグレットは、カスタムタグのテキスト引数の数も定義します。タグレットは、これらの引数を受け付け、処理し、出力を生成します。外部ドキュメントとサンプルタグレットについては、以下を参照してください。 +ΥΥɥȤ˻ȤɥååȤư뤿Υ饹եꤷޤ饹δ̾ꤷƤΥåȤϡॿΥƥȰοޤåȤϡΰդϤޤɥȤȥץ륿åȤˤĤƤϡʲ򻲾ȤƤ .RS 3 .TP 2 o .na -\f2「タグレットの概要」\fP @ +\f2֥åȤγס\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html .RE .LP -タグレットは、標準タグまたはインラインタグで便利です。タグレットは任意の数の引数をとることができます。 また、テキストを太字にする、箇条書きを作成する、テキストをファイルに書き出す、その他のプロセスを開始するなどのカスタム動作を実装できます。 +åȤϡ֥åޤϥ饤󥿥ǤåȤǤդοΰȤ뤳ȤǤޤޤƥȤˤ롢վ񤭤롢ƥȤե˽񤭽Ф¾Υץ򳫻ϤʤɤΥưǤޤ .LP -タグレットで指定できるのは、タグの配置場所と配置形式のみです。その他のすべての決定は、ドックレットによって行われます。タグレットを使用しても、包含クラスのリストからクラス名を削除するなどの処理は実行できません。ただし、タグのテキストをファイルに出力したり、別のプロセスをトリガーするなどの副作用は得られます。 +åȤǻǤΤϡ־ַΤߤǤ¾Τ٤ƤηϡɥååȤˤäƹԤޤåȤѤƤ⡢ޥ饹ΥꥹȤ饯饹̾ʤɤνϼ¹ԤǤޤ󡣤ΥƥȤե˽Ϥꡢ̤ΥץȥꥬʤɤѤޤ .LP -タグレットのパスを指定するには、\f2\-tagletpath\fP オプションを使用します。以下は、生成されるページの「Parameter」と「Throws」の間に「To Do」タグレットを挿入する例です。 +åȤΥѥꤹˤϡ\f2\-tagletpath\fP ץѤޤʲϡڡΡParameterפȡThrowsפδ֤ˡTo DoץåȤǤ .nf \f3 .fl @@ -5238,25 +3735,25 @@ http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html \fP .fi .LP -\f2\-tag\fP オプションの代わりに \f2\-taglet\fP オプションを使用することもできますが、読みやすさを考慮するなら、\f2\-tag\fP オプションを使用したほうがよいでしょう。 +ޤ \f2\-taglet\fP ץ \f2\-tag\fP ץ˻Ѥ뤳ȤǤޤȲ㲼ǽޤ .LP .TP 3 \-tagletpath\ \ tagletpathlist -taglet クラスファイル (.class) の検索パスを指定します。\f2tagletpathlist\fP には、コロン (\f2:\fP) で区切って複数のパスを含めることができます。Javadoc ツールは、指定されたパスの以下すべてのサブディレクトリを検索します。 +taglet 饹ե (.class) θѥꤷޤ\f2tagletpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤ .LP .TP 3 \-docfilessubdirs\ -\f2doc\-files\fP ディレクトリの深いコピーを有効にします。つまり、コピー先には、サブディレクトリとすべてのコンテンツがコピーされます。たとえば、\f2doc\-files/example/images\fP ディレクトリとその中のファイルがコピーされます。ここでも、サブディレクトリを除外する指定が可能です。 +\f2doc\-files\fPץǥ쥯ȥοԡͭˤޤĤޤꡢԡˤϡ֥ǥ쥯ȥȤ٤ƤΥƥĤԡޤȤСǥ쥯ȥ \f2doc\-files/example/images\fP ȤΤ٤ƤƤԡޤǤ⡢֥ǥ쥯ȥ꤬ǽǤ .LP .TP 3 \-excludedocfilessubdir\ \ name1:name2... -所定の名前の \f2doc\-files\fP サブディレクトリを除外します。これにより、SCCS とその他のソースコード制御サブディレクトリのコピーを防ぎます。 +\f2doc\-files\fPפΡꤵ줿̾Υ֥ǥ쥯ȥ򤹤٤ƽޤˤꡢSCCS Ȥ¾Υ極֥ǥ쥯ȥΥԡɤޤ .LP .TP 3 \-noqualifier\ \ all\ | \ packagename1:packagename2:... -出力されるクラス名の先頭のパッケージ名 (パッケージ修飾子) を省略します。\f2\-noqualifier\fP の引数として \f2all\fP を指定した場合、すべてのパッケージ修飾子がすべて省略されます。 削除する複数のパッケージ名をコロンで区切って、ワイルドカードとともに指定することもできます。クラスまたはインタフェース名が表示される位置からパッケージ名が削除されます。 +Ϥ륯饹̾ƬΥѥå̾ (ѥå) άޤ \f2\-noqualifier\fP ΰϡ\f2all\fP(٤ƤΥѥåҤά)ҤȤƺ٤ѥåΥڤꥹ (磻ɥɤ)Τ줫Ȥʤޤ饹ޤϥ󥿥ե̾ɽ֤ѥå̾ޤ .LP -次の例では、すべてのパッケージ修飾子を省略します。 +Ǥϡ٤ƤΥѥåҤάޤ .nf \f3 .fl @@ -5264,7 +3761,7 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -次の例では、パッケージ修飾子 java.lang および java.io を省略します。 +Ǥϡѥå java.lang java.io άޤ .nf \f3 .fl @@ -5272,7 +3769,7 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -次の例では、java で始まるパッケージ修飾子と com.sun というサブパッケージ (javax ではない) を省略します。 +Ǥϡjava ǻϤޤѥåҤ com.sun Ȥ֥ѥå (javax ǤϤʤ) άޤ .nf \f3 .fl @@ -5280,63 +3777,54 @@ taglet クラスファイル (.class) の検索パスを指定します。\f2tag .fl \fP .fi -パッケージ修飾子が上記の動作に従って表示される場合、名前は適切に短くされます。 詳細は「名前の表示方法」を参照してください。この規則は、\f2\-noqualifier\fP を使用したかどうかにかかわらず有効です。 +ѥåҤ嵭ư˽äɽ硢̾Ŭڤûޤܺ٤ϡ̾ɽˡפ򻲾ȤƤε§ϡ \f2\-noqualifier\fP Ѥ뤫ɤˤ餺ͭǤ .LP .TP 3 \-notimestamp\ -タイムスタンプが抑制されます。 各ページ先頭近くにある、生成された HTML 内の HTML コメントでタイムスタンプが隠されます。Javadoc を 2 つのソースベースで実行し、それらに対して diff を実行するときにこのオプションを使用すると、タイムスタンプによって diff が発生しなくなるので便利です (このオプションを使用しないと、各ページで diff になります)。タイムスタンプには Javadoc のバージョン番号が含まれており、次のようになります。 +ॹפޤƥڡƬ᤯ˤ롢줿 HTML HTML ȤǥॹפޤJavadoc 2 ĤΥ١Ǽ¹ԤФ diff ¹ԤȤˤΥץѤȡॹפˤä diff ȯʤʤΤǤ (ΥץѤʤȡƥڡ diff ˤʤޤ)ॹפˤ Javadoc ΥСֹ椬ޤޤƤꡢΤ褦ˤʤޤ .nf \f3 .fl - <!\-\- Generated by javadoc (build 1.5.0\-internal) on Tue Jun 22 09:57:24 PDT 2004 \-\-> + <!\-\- Generated by javadoc (build 1.5.0_01) on Thu Apr 02 14:04:52 IST 2009 \-\-> .fl \fP .fi .LP .TP 3 \-nocomment\ -主説明およびすべてのタグを含むコメント本文全体を抑制し、宣言だけを生成します。このオプションにより、元は異なる目的のためだったソースファイルを再利用し、新しいプロジェクトの早い段階でスケルトン HTML ドキュメントを作成できるようになりました。 +Ӥ٤ƤΥޤॳʸΤޤΥץˤꡢϰۤʤŪΤäեѤץȤᤤʳǥȥ HTML ɥȤǤ褦ˤʤޤ +.LP +.TP 3 +\-sourcetab tabLength +dzƥ֤οꤷޤ .RE -.SH "コマンド行引数ファイル" +.SH "ޥɹ԰ե" .LP +javadoc ΥޥɹԤûʷˤꤹ뤿ˡ \f2javadoc\fP ޥɤФ ( \f2\-J\fP ץ) ä 1 İʾΥեꤹ뤳ȤǤޤΤȤѤСɤΥڥ졼ƥ󥰥ƥǤ⡢ǤդĹ javadoc ޥɤǤޤ .LP -\f2javadoc\fP のコマンド行を短くしたり簡潔にしたりするために、\f2javadoc\fP コマンドに対する引数 (\f2\-J\fP オプションを除く) が入った 1 つ以上のファイルを指定することができます。このことを利用すれば、どのオペレーティングシステム上でも、任意の長さの javadoc コマンドを作成できます。 +եˤϡjavac Υץȥե̾ͳȤ߹碌ƵҤǤޤեγưϡڡޤϲԤǶڤޤե̾˶򤬴ޤޤƤϡΥե̾ΤŰǰϤߤޤ .LP +եΥե̾ϡߤΥǥ쥯ȥ꤫鸫Хѥˤʤޤեΰ֤鸫ХѥǤϤޤ󡣰եΥե̾ꥹȤǤϡ磻ɥ (*) ϻѤǤޤ󡣤ȤС \f2*.java\fP ȤϻǤޤ󡣰եΰ \f2@\fP ʸѤơʣΥեƵŪ˲᤹뤳ȤϥݡȤƤޤ󡣤ޤ \f2\-J\fP ץ⥵ݡȤƤޤ ΥץϵưġϤޤưġǤϰե򥵥ݡȤƤʤǤ .LP -引数ファイルには、javac のオプションとソースファイル名を自由に組み合わせて記述できます。ファイル内の各引数は、スペースまたは改行で区切ります。ファイル名に空白が含まれている場合は、そのファイル名全体を二重引用符で囲みます。 -.LP -.LP -引数ファイル内のファイル名は、現在のディレクトリから見た相対パスになります。引数ファイルの位置から見た相対パスではありません。引数ファイル内のファイル名リストでは、ワイルドカード (*) は使用できません。たとえば、\f2*.java\fP とは指定できません。引数ファイル内の引数で \f2@\fP 文字を使用して、複数のファイルを再帰的に解釈することはサポートされていません。また、\f2\-J\fP オプションもサポートされていません。 このオプションは起動ツールに渡されますが、起動ツールでは引数ファイルをサポートしていないからです。 -.LP -.LP -javadoc を実行するときに、各引数ファイルのパスとファイル名の先頭に \f2@\fP 文字を付けて渡します。javadoc は、\f2@\fP 文字で始まる引数を見つけると、そのファイルの内容を展開して引数リストに挿入します。 -.LP +javadoc ¹ԤȤˡưեΥѥȥե̾Ƭ \f2@\fP ʸդϤޤjavadoc ϡ\f2@\fP ʸǻϤޤ򸫤ĤȡΥեƤŸưꥹȤޤ .SS -引数ファイルを 1 つ指定する例 -.LP -.LP -\f2argfile\fP という名前の引数ファイルにすべての Javadoc 引数を格納し、次のように使用することができます。 +ե 1 Ļꤹ .LP +Τ褦ˡ\f2argfile\fPפȤ̾ñΰեˡJavadoc Τ٤ƤΰǼޤ .nf \f3 .fl % \fP\f3javadoc @argfile\fP .fl .fi - -.LP -.LP -この引数ファイルには、次の例で示されている 2 つのファイルの内容を両方とも入れることができます。 .LP +ΰեˤϡǼƤ 2 ĤΥեƤξȤ뤳ȤǤޤ .SS -引数ファイルを 2 つ指定する例 +ե 2 Ļꤹ .LP +2 ĤΰեǤޤ1 Ĥ Javadoc ץѡ⤦ 1 Ĥϥѥå̾ޤϥե̾ѤǤʤΥꥹȤǤϹԷ³ʸѤƤޤ .LP -Javadoc オプション用に 1 つ、ソースファイル名用に 1 つというように、2 つの引数ファイルを作成し、次のようにして使用することができます。なお、このあとのリストでは、行の継続文字を使用していません。 -.LP -.LP -以下の内容を含む \f2options\fP という名前のファイルを作成します。 -.LP +Ƥޤࡢ\f2options\fPפȤ̾Υեޤ .nf \f3 .fl @@ -5346,27 +3834,24 @@ Javadoc オプション用に 1 つ、ソースファイル名用に 1 つとい .fl \-splitindex .fl - \-windowtitle 'Java 2 Platform v1.3 API Specification' + \-windowtitle 'Java SE 7 API Specification' .fl - \-doctitle 'Java(TM) 2 Platform 5.0 API Specification' + \-doctitle 'Java SE 7 API Specification' .fl - \-header '<b>Java 2 Platform </b><br><font size="\-1">5.0</font>' + \-header '<b>Java(TM) SE 7</b>' .fl - \-bottom 'Copyright 1993\-2000 Sun Microsystems, Inc. All Rights Reserved.' + \-bottom 'Copyright © 1993\-2011 Oracle and/or its affiliates. All rights reserved.' .fl \-group "Core Packages" "java.*" .fl - \-overview /java/pubs/ws/1.5/src/share/classes/overview\-core.html + \-overview /java/pubs/ws/1.7.0/src/share/classes/overview\-core.html .fl - \-sourcepath /java/pubs/ws/1.5/src/share/classes + \-sourcepath /java/pubs/ws/1.7.0/src/share/classes .fl \fP .fi - -.LP -.LP -以下の内容を含む \f2packages\fP という名前のファイルを作成します。 .LP +Ƥޤࡢ\f2packages\fPפȤ̾Υեޤ .nf \f3 .fl @@ -5378,115 +3863,89 @@ Javadoc オプション用に 1 つ、ソースファイル名用に 1 つとい .fl \fP .fi - -.LP -.LP -そのあと、次のコマンドを使用して javadoc を実行します。 .LP +ΤȡΥޥɤѤ javadoc ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc @options @packages\fP .fl .fi - -.LP .SS -パス付きの引数ファイルの例 -.LP -.LP -引数ファイルには、パスを指定できます。 ただし、そのファイル内に指定されたファイル名は、現在の作業ディレクトリから見た相対パスになります。 つまり、下の例の場合は、\f2path1\fP や \f2path2\fP から見た相対パスではありません。 +ѥդΰե .LP +եˤϡѥǤޤΥե˻ꤵ줿ե̾ϡߤκȥǥ쥯ȥ꤫鸫ХѥˤʤޤĤޤꡢξϡ \f2path1\fP \f2path2\fP 鸫ХѥǤϤޤ .nf \f3 .fl % \fP\f3javadoc @path1/options @path2/packages\fP .fl .fi - -.LP .SS -オプションの引数の例 -.LP -.LP -次に、Javadoc オプションに対する引数だけを引数ファイルに格納する例を示します。ここでは、\f2\-bottom\fP を例に取り上げます。 そのオプションには、かなり長い引数を指定することがあるからです。まず、このオプションのテキスト引数になる次のような内容を含む、\f2bottom\fP という名前のファイルを作成します。 +ץΰ .LP +ˡJavadoc ץФե˳Ǽ򼨤ޤǤ \f2\-bottom\fP ץѤޤȤΤ⡢Ĺʤǽ뤫ǤΤ褦ʥƥȰޤࡢ\f2bottom\fPפȤ̾ΥեǤޤ .nf \f3 .fl -'<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a +<font size="\-1"> .fl -bug or feature</a><br><br>Java is a trademark or registered trademark of + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl -Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-2000 Sun + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl -All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font> .fl \fP .fi - -.LP -.LP -そのあと、次のようにして Javadoc ツールを実行します。 .LP +ΤȡΤ褦ˤ Javadoc ġ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc \-bottom @bottom @packages\fP .fl .fi - -.LP -.LP -また、引数ファイルの先頭に \f2\-bottom\fP オプションを組み込んでおけば、次のようにして実行できます。 .LP +뤤ϡեƬ \f2\-bottom\fP ץȤ߹ȡΤ褦˼¹ԤƤ⤫ޤޤ .nf \f3 .fl % \fP\f3javadoc @bottom @packages\fP .fl .fi -.SH "名前" -実行 -.SH "Javadoc の実行" +.SH "̾" +¹ +.SH "Javadoc μ¹" .LP +\f3Сֹ\fP \- javadoc ΥСֹȽ̤ˤϡ\f3javadoc \-J\-version\fP Ѥޤϥȥ꡼ˤɸɥååȤΥСֹ椬ޤޤޤνϤ̵ˤˤϡ \f2\-quiet\fP Ѥޤ .LP -\f3バージョン番号\fP \- javadoc のバージョン番号を判別するには、\f3javadoc \-J\-version\fP を使用します。出力ストリームには標準ドックレットのバージョン番号が含まれます。\f2\-quiet\fP で無効にできます。 -.LP -.LP -\f3公開プログラムインタフェース\fP \- Java 言語で記述されたプログラムから Javadoc ツールを起動するとき使用します。このインタフェースは \f2com.sun.tools.javadoc.Main\fP にあります (javadoc は再入可能)。詳細は、 +\f3ץ।󥿥ե\fP \- Java ǵҤ줿ץफ Javadoc ġưȤѤޤΥ󥿥ե \f2com.sun.tools.javadoc.Main ˤޤ\fP (javadoc Ϻǽ)ܺ٤ϡ .na -\f2「標準ドックレット」\fP @ +\f2ɸɥååȡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammaticallyを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically򻲾ȤƤ .LP -.LP -\f3ドックレットの実行\fP \- 下記の説明は、標準 HTML ドックレットを呼び出すためのものです。カスタムドックレットを呼び出すには、\-doclet および \-docletpath オプションを使用します。特定のドックレットを実行した完全な例については、 +\f3ɥååȤμ¹\fP \- ϡɸ HTML ɥååȤƤӽФΤΤǤɥååȤƤӽФˤϡ\-doclet \-docletpath ץѤޤΥɥååȤ¹ԤˤĤƤϡ .na -\f2MIF Doclet のドキュメント\fP @ +\f2MIF Doclet Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.htmlを参照してください。 -.LP -.SH "簡単な例" -.LP -.LP -javadoc は、パッケージ全体に対して実行することも、個々のソースファイルに対して実行することもできます。各パッケージ名は、それぞれのパッケージ名に対応するディレクトリ名を持ちます。次の例では、ソースファイルは \f2/home/src/java/awt/*.java\fP にあります。生成先ディレクトリは \f2/home/html\fP です。 +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html򻲾ȤƤ +.SH "ñ" .LP +javadoc ϡѥåΤФƼ¹Ԥ뤳Ȥ⡢ġΥեФƼ¹Ԥ뤳ȤǤޤƥѥå̾ϡ줾Υѥå̾бǥ쥯ȥ̾ޤǤϡե \f2/home/src/java/awt/*.java ˤޤ\fPǥ쥯ȥ \f2/home/html Ǥ\fP .SS -1 つ以上のパッケージのドキュメント化 +1 İʾΥѥåΥɥȲ .LP +ѥåɥȲˤϡΥѥåΥե (\f2*.java\fP) 򡢤ΥѥåƱ̾Υǥ쥯ȥ˳Ǽɬפޤѥå̾ ( \f2java.awt.color\fP Τ褦˥ɥåȤǶڤ줿) Ĥμ̻Ҥ鹽Ƥ硢¦μ̻Ҥ˿ʤिӤˡμ̻Ҥ꿼֥ǥ쥯ȥбƤɬפޤ ( \f2java/awt/color\fP ʤ) ñѥåΥե 2 롼פʬۤʤˤ뤽Τ褦 2 ĤΥǥ쥯ȥĥ꡼ˤ줾ǼƤ⤫ޤޤ󡣤ξΥǥ쥯ȥؤΥѥ \f2\-sourcepath\fP ꤹɬפޤ: \f2src1/java/awt/color\fP \f2src2/java/awt/color\fP .LP -パッケージをドキュメント化するには、そのパッケージのソースファイル (\f2*.java\fP) が、パッケージと同じ名前を持つディレクトリ内に存在していなければなりません。パッケージ名が複数の識別子で構成されている (\f2java.awt.color\fP のように、各識別子はドットで区切られている) 場合は、後続の各識別子が下位のサブディレクトリに対応していなければなりません (\f2java/awt/color\fP など)。1 つのパッケージのための複数のソースファイルを、異なる場所にある 2 つのディレクトリツリーに分けて格納することも可能です (\f2src1/java/awt/color\fP と \f2src2/java/awt/color\fP など)。 ただし、その場合は、\f2\-sourcepath\fP によって、その両方の場所を指定しなければなりません。 -.LP -.LP -javadoc を実行するには、\f2cd\fP コマンドを使ってディレクトリを変更するか、または \f2\-sourcepath\fP オプションを使用します。以下の例では、両方の方法について説明します。 -.LP +javadoc ¹Ԥˤϡ \f2cd\fP Ѥƥǥ쥯ȥѹ뤫 \f2\-sourcepath\fP ץѤޤʲǤϡξˡˤĤޤ .RS 3 .TP 2 o -\f3ケース 1 \- 1 つ以上のパッケージからの起動を再帰的に実行\fP \- この例では javadoc が任意のディレクトリから実行できるように、\-sourcepath を使用し、再帰的処理のために \-subpackages (1.4 の新オプション) を使用します。これは、\f2java\fP のサブパッケージ (\f2java.net\fP および \f2java.lang\fP をルートとするパッケージを除く) を処理します。ただし、\f2java.lang\fP のサブパッケージである \f2java.lang.ref\fP は除外されます。 +\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåϽޤΤȤ \f2java.lang Υ֥ѥå\fPǤ java.lang.ref \f2ޤ\fP .nf \f3 .fl @@ -5494,10 +3953,10 @@ o .fl .fi .LP -その他のパッケージツリーを巡回するには、\f2java:javax:org.xml.sax\fP のように、\f2\-subpackages\fP 引数にその名前を追加します。 +ۤΥѥåĥ꡼Ⲽˤɤˤϡ \f2java:javax:org.xml.sax Τ褦ˡ\fP Υѥå̾ \-subpackages \f2ΰɲäޤ\fP .TP 2 o -\f3ケース 2 \- ルートソースディレクトリに移ってから明示的なパッケージに対して実行\fP \- 完全指定のパッケージ名の親ディレクトリに移ります。次に、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。 +\f3 2 \- 롼ȥǥ쥯ȥ˰ܤäƤŪʥѥåФƼ¹\fP \- Υѥå̾οƥǥ쥯ȥ˰ܤޤˡɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5508,7 +3967,7 @@ o .fi .TP 2 o -\f3ケース 3 \- 任意のディレクトリから実行。 ソースファイルは 1 つのディレクトリツリー内にある\fP \- このケースでは、現在のディレクトリがどこであってもかまいません。最上位パッケージの親ディレクトリを \f2\-sourcepath\fP に指定し、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。 +\f3 3 \- ǤդΥǥ쥯ȥ꤫¹ԡե 1 ĤΥǥ쥯ȥĥ꡼ˤ\fP \- ΥǤϡߤΥǥ쥯ȥ꤬ɤǤäƤ⤫ޤޤ󡣺Ǿ̥ѥåοƥǥ쥯ȥ \f2\-sourcepath\fP ˻ꤷɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5517,7 +3976,7 @@ o .fi .TP 2 o -\f3ケース 4 \- 任意のディレクトリから実行。 ソースファイルは複数のディレクトリツリー内にある\fP \- これはケース 3 と似ていますが、パッケージが複数のディレクトリツリーに存在します。それぞれのツリーのルートへのパスを \f2\-sourcepath\fP に指定し (コロンで区切る)、ドキュメント化する 1 つ以上のパッケージ名を指定して javadoc を実行します。1 つのパッケージのすべてのソースファイルが、1 つのルートディレクトリの下に存在しなければならない、ということはありません。 ソースパスとして指定された場所のどこかで見つかれば十分です。 +\f3 4 \- ǤդΥǥ쥯ȥ꤫¹ԡեʣΥǥ쥯ȥĥ꡼ˤ\fP \- ϥ 3 ȻƤޤѥåʣΥǥ쥯ȥĥ꡼¸ߤޤ줾Υĥ꡼Υ롼ȤؤΥѥ \f2\-sourcepath\fP ˻ꤷ (Ƕڤ)ɥȲ 1 İʾΥѥå̾ꤷ javadoc ¹Ԥޤ1 ĤΥѥåΤ٤ƤΥե뤬1 ĤΥ롼ȥǥ쥯ȥβ¸ߤʤФʤʤȤȤϤޤ󡣥ѥȤƻꤵ줿ΤɤǸĤнʬǤ .nf \f3 .fl @@ -5525,21 +3984,16 @@ o .fl .fi .RE - -.LP -.LP -結果: 上記のどのケースでも、\f2java.awt\fP と \f2java.awt.event\fP パッケージ内の public および protected クラスとインタフェースについて、HTML 形式のドキュメントが生成され、指定された生成先ディレクトリ (\f2/home/html\fP) に HTML ファイルが保存されます。2 つ以上のパッケージが生成されているので、ドキュメントは、パッケージのリスト、クラスのリスト、およびメインのクラスページという 3 つのフレームを持つことになります。 .LP +: ٤ƤΥǥѥå \f2java.awt\fP \f2java.awt.event\fP public protected 饹ȥ󥿥եˤĤơHTML ΥɥȤ졢ꤵ줿ǥ쥯ȥ (\f2/home/html\fP) HTML ե뤬¸ޤ2 İʾΥѥåƤΤǡɥȤϡѥåΥꥹȡ饹ΥꥹȡӥᥤΥ饹ڡȤ 3 ĤΥե졼ĤȤˤʤޤ .SS -1 つ以上のクラスのドキュメント化 -.LP -.LP -また、1 つ以上のソースファイル (\f2.java\fP) を渡して、Javadoc ツールを実行することもできます。javadoc は、次の 2 つのどちらかの方法で実行できます。 1 つは、\f2cd\fP コマンドでディレクトリを変更する方法、もう 1 つは \f2.java\fP ファイルへのパスを完全指定する方法です。相対パスは、現在のディレクトリを起点とします。ソースファイル名を渡すときは、\f2\-sourcepath\fP オプションは無視されます。アスタリスク (*) のようなコマンド行ワイルドカードを使用すると、クラスのグループを指定できます。 +1 İʾΥ饹ΥɥȲ .LP +ޤ1 İʾΥե (\f2.java\fP) ϤơJavadoc ġ¹Ԥ뤳ȤǤޤjavadoc ϡ 2 ĤˡΤ줫Ǽ¹ԤǤޤ1 Ĥ \f2cd\fP Ѥƥǥ쥯ȥѹˡ⤦ 1 Ĥ \f2.java\fP եؤΥѥ˻ꤹˡǤХѥϡߤΥǥ쥯ȥȤޤե̾ϤȤϡ \f2\-sourcepath\fP ץ̵뤵ޤꥹ (*) Τ褦ʥޥɹԥ磻ɥɤѤȡ饹Υ롼פǤޤ .RS 3 .TP 2 o -\f3ケース 1 \- ソースディレクトリに移る\fP \- \f2.java\fP ファイルのあるディレクトリに移ります。次に、ドキュメント化する 1 つ以上のソースファイルの名前を指定して javadoc を実行します。 +\f3 1 \- ǥ쥯ȥ˰ܤ\fP \- \f2.java\fP եΤǥ쥯ȥ˰ܤޤˡɥȲ 1 İʾΥե̾ꤷ javadoc ¹Ԥޤ .nf \f3 .fl @@ -5548,10 +4002,10 @@ o % \f3javadoc \-d /home/html Button.java Canvas.java Graphics*.java\fP .fl .fi -この例では、クラス \f2Button\fP と \f2Canvas\fP、および名前が \f2Graphics\fP で始まるクラスについて、HTML 形式のドキュメントが生成されます。パッケージ名ではなくソースファイルが javadoc に引数として渡されているので、ドキュメントは、クラスのリストとメインページという 2 つのフレームを持つことになります。 +Ǥϡ饹 \f2Button\fP \f2Canvas\fP ̾ \f2Graphics ǻϤޤ륯饹ˤĤơHTML ΥɥȤޤ\fPѥå̾ǤϤʤե뤬 javadoc ˰ȤϤƤΤǡɥȤϡ饹ΥꥹȤȥᥤڡȤ 2 ĤΥե졼ĤȤˤʤޤ .TP 2 o -\f3ケース 2 \- パッケージのルートディレクトリに移る\fP \- これは、同じルート内にある複数のサブパッケージの個々のソースファイルをドキュメント化する場合に便利です。パッケージのルートディレクトリに移り、各ソースファイルを、ルートからのパスとともに指定します。 +\f3 2 \- ѥåΥ롼ȥǥ쥯ȥ˰ܤ\fP \- ϡƱ롼ˤʣΥ֥ѥåθġΥեɥȲǤѥåΥ롼ȥǥ쥯ȥ˰ܤꡢƥե򡢥롼ȤΥѥȤȤ˻ꤷޤ .nf \f3 .fl @@ -5560,103 +4014,88 @@ o % \f3javadoc \-d /home/html java/awt/Button.java java/applet/Applet.java\fP .fl .fi -この例では、\f2Button\fP クラスおよび \f2Applet\fP クラスについて、HTML 形式のドキュメントが生成されます。 +Ǥϡ饹 \f2Button\fP \f2Applet ˤĤơHTML ΥɥȤޤ\fP .TP 2 o -\f3ケース 3 \- 任意のディレクトリから\fP \- このケースでは、現在のディレクトリがどこであってもかまいません。ドキュメント化する \f2.java\fP ファイルへの絶対パス (または、現在のディレクトリからの相対パス) を指定して javadoc を実行します。 +\f3 3 \- ǤդΥǥ쥯ȥ꤫\fP \- ΥǤϡߤΥǥ쥯ȥ꤬ɤǤäƤ⤫ޤޤ󡣥ɥȲ .java եؤХѥ (ޤϥȥǥ쥯ȥ꤫Хѥ) ꤷ \f2javadoc\fP ¹Ԥޤ .nf \f3 .fl % \fP\f3javadoc \-d /home/html /home/src/java/awt/Button.java /home/src/java/awt/Graphics*.java\fP .fl .fi -この例では、クラス \f2Button\fP と、名前が \f2Graphics\fP で始まるクラスについて、HTML 形式のドキュメントが生成されます。 +Ǥϡ饹 \f2Button\fP ȡ̾ \f2Graphics ǻϤޤ륯饹ˤĤơHTML ΥɥȤޤ\fP .RE - -.LP .SS -パッケージとクラスのドキュメント化 -.LP -.LP -パッケージ全体と個々のクラスを同時に指定してドキュメント化することもできます。次に前述の 2 つの例を組み合わせた例を示します。\f2\-sourcepath\fP は、パッケージへのパスに対しては使用できますが、個々のクラスのパスに対しては使用できません。 +ѥåȥ饹ΥɥȲ .LP +ѥåΤȸġΥ饹Ʊ˻ꤷƥɥȲ뤳ȤǤޤҤ 2 ĤȤ߹碌򼨤ޤ \f2\-sourcepath\fP ϡѥåؤΥѥФƤϻѤǤޤġΥ饹ΥѥФƤϻѤǤޤ .nf \f3 .fl % \fP\f3javadoc \-d /home/html \-sourcepath /home/src java.awt /home/src/java/applet/Applet.java\fP .fl .fi - .LP +Ǥϡѥå \f2java.awt\fP ȥ饹 \f2Applet ˤĤơHTML ΥɥȤޤ\fPJavadoc ġϡ \f2Applet.java ե˥ѥåС\fP ˴Ť \f2Applet Υѥå̾\fP Ƚꤷޤ +.SH "" .LP -この例では、パッケージ \f2java.awt\fP と、クラス \f2Applet\fP について、HTML 形式のドキュメントが生成されます。Javadoc ツールは、\f2Applet\fP のパッケージ名を、\f2Applet.java\fP ソースファイル内のパッケージ宣言 (その宣言がある場合) から判別します。 -.LP -.SH "使用例" -.LP -.LP -Javadoc ツールには多くの便利なオプションがあり、その中にはほかのオプションよりも頻繁に使われるものがあります。ここで紹介するのは、Java プラットフォーム API に対して Javadoc ツールを実行するときに使用する実際のコマンドです。Java 2 Platform, Standard Edition, v1.2 に存在する、約 1500 個の public および protected クラスについてドキュメントを生成するために、180M バイトのメモリーを使用しました。 -.LP -.LP -同じ例を 2 回掲載します。 最初の例はコマンド行から実行するもので、2 番目の例は Makefile から実行するものです。オプションの引数に絶対パスを使用しているため、任意のディレクトリからこの \f2javadoc\fP コマンドを実行できます。 +Javadoc ġˤ¿ʥץ󤬤ꡢˤϤۤΥץˤ˻ȤΤޤǾҲ𤹤ΤϡJava ץåȥե API Ф Javadoc ġ¹ԤȤ˻ѤºݤΥޥɤǤǤϡJava SE Platform, Standard Edition, v1.2 () 1500 Ĥ public protected 饹ΥɥȤ뤿ˡ180M ХȤΥ꡼Ѥޤ .LP +Ʊ 2 ǺܤޤǽϥޥɹԤ¹ԤΤǡ2 ܤ Makefile ¹ԤΤǤץΰХѥѤƤ뤿ᡢƱ \f2javadoc\fP ޥɤɤΥǥ쥯ȥ꤫Ǥ¹ԤǤޤ .SS -コマンド行の例 -.LP -.LP -次のコマンド行の例は 900 文字を超えているため、DOS などのシェルには大きすぎます。この制限を回避するには、コマンド行引数ファイルを使用します。 または、シェルスクリプトを記述します。 +ޥɹԤ .LP +ϡDOS ʤɤΰΥǤĹǽޤ¤򤹤ˤϡޥɹ԰եѤޤޤϡ륹ץȤ򵭽Ҥޤ .nf \f3 .fl -% javadoc \-sourcepath /java/jdk/src/share/classes \\ +% javadoc \-sourcepath /java/jdk/src/share/classes \\ .fl - \-overview /java/jdk/src/share/classes/overview.html \\ + \-overview /java/jdk/src/share/classes/overview.html \\ .fl - \-d /java/jdk/build/api \\ + \-d /java/jdk/build/api \\ .fl - \-use \\ + \-use \\ .fl - \-splitIndex \\ + \-splitIndex \\ .fl - \-windowtitle 'Java 2 Platform 5.0 API Specification' \\ + \-windowtitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-doctitle 'Java(TM) 2 Platform 5.0 API Specification' \\ + \-doctitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-header '<b>Java 2 Platform </b><br><font size="\-1">5.0</font>' \\ + \-header '<b>Java(TM) SE 7</b>' \\ .fl - \-bottom '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit + \-bottom '<font size="\-1"> .fl -a bug or feature</a><br><br>Java is a trademark or registered trademark of Sun Microsystems, + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl -Inc. in the US and other countries.<br>Copyright 1993\-1999 Sun Microsystems, Inc. + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. All Rights Reserved.</font>' \\ + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. +.fl + Other names may be trademarks of their respective owners.</font>' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl - \-group "Extension Packages" "javax.*" \\ + \-group "Extension Packages" "javax.*" \\ .fl - \-J\-Xmx180m \\ + \-J\-Xmx180m \\ .fl @packages .fl \fP .fi - -.LP -.LP -上記のコマンドで、\f2packages\fP は、処理対象のパッケージ名 (\f2java.applet java.lang\fP など) が入っているファイルの名前です。各オプションの、単一引用符で囲まれた引数の内側には、改行文字を挿入できません。たとえば、この例をコピー&ペーストする場合は、\f2\-bottom\fP オプションから改行文字を削除してください。さらに、このあとの「注」も参照してください。 .LP +嵭Υޥɤǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ .SS -Makefile の例 +Makefile .LP -.LP -ここでは、GNU Makefile の例を示します。Windows の Makefile の例については、 +ǤϡGNU Makefile 򼨤ޤWindows Makefile ˤĤƤϡ .na -\f2Windows の Makefile の作成方法\fP @ +\f2Windows Makefile κˡ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html#makefilesを参照してください。 -.LP +http://java.sun.com/j2se/javadoc/faq/index.html#makefiles򻲾ȤƤ .nf \f3 .fl @@ -5692,101 +4131,83 @@ javadoc \-\fP\f3sourcepath\fP\f3 $(SRCDIR) \\ /* Sets path for so .fl .fl -WINDOWTITLE = 'Java 2 Platform v1.2 API Specification' +WINDOWTITLE = 'Java(TM) SE 7 API Specification' .fl -DOCTITLE = 'Java(TM) 2 Platform v1.2 API Specification' +DOCTITLE = 'Java(TM) Platform Standard Edition 7 API Specification' .fl -HEADER = '<b>Java 2 Platform </b><br><font size="\-1">v1.2</font>' +HEADER = '<b>Java(TM) SE 7</font>' .fl -BOTTOM = '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit +BOTTOM = '<font size="\-1"> .fl - a bug or feature</a><br><br>Java is a trademark or registered trademark + <a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a bug or feature</a><br/> .fl - of Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-1999 + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl - Sun Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font>' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl GROUPEXT = '"Extension Packages" "javax.*"' .fl -SRCDIR = '/java/jdk/1.2/src/share/classes' +SRCDIR = '/java/jdk/1.7.0/src/share/classes' .fl \fP .fi - .LP +Makefile ΰϡñǰϤߤޤ .LP -Makefile の引数は、単一引用符で囲みます。 -.LP -.LP -\f3注\fP -.LP +\f3\fP .RS 3 .TP 2 o -\f2\-windowtitle\fP オプションを省略すると、Javadoc ツールによって、ドキュメントタイトルがウィンドウタイトルにコピーされます。\f2\-windowtitle\fP のテキストは、基本的に \f2\-doctitle\fP と同じです。 ただし、HTML タグは使用しません。 HTML タグは、ウィンドウタイトルにそのままのテキストとして表示されてしまいます。 +\-windowtitle \f2ץάȡ\fP Javadoc ġˤäƥɥȥȥ뤬ɥȥ˥ԡޤ \f2\-windowtitle\fP ΥƥȤϴŪ \f2\-doctitle\fP ΤΤƱǤHTML ޤޤʤۤʤޤϡHTML raw ƥȤȤƥɥȥɽΤɤǤ .TP 2 o -この例のように \f2\-footer\fP オプションを省略すると、Javadoc ツールによって、ヘッダーテキストがフッターにコピーされます。 +ǹԤäƤ褦 \f2\-footer\fP ץάȡJavadoc ġˤäƥإåΥƥȤեå˥ԡޤ .TP 2 o -この例では必要ありませんが、\-\f2classpath\fP および \-\f2link\fP も重要なオプションです。 +Ǥɬפޤ󤬡\-\f2classpath\fP \-\f2link\fP פʥץǤ .RE - -.LP -.SH "トラブルシューティング" -.LP +.SH "ȥ֥륷塼ƥ" .SS -一般的なトラブルシューティング -.LP +Ūʥȥ֥륷塼ƥ .RS 3 .TP 2 o -\f3Javadoc FAQ\fP \- 一般的なバグおよびトラブルシューティングのヒントは、 +\f3Javadoc FAQ\fP \- ŪʥХӥȥ֥륷塼ƥ󥰤ΥҥȤϡ .na -\f2「Javadoc FAQ」\fP @ +\f2Javadoc FAQ\fP @ .fi -http://java.sun.com/j2se/javadoc/faq/index.html#B で参照できます。 +http://java.sun.com/j2se/javadoc/faq/index.html#B ǻȤǤޤ .TP 2 o -\f3バグおよび制限事項\fP \- バグの一部は、「Important Bug Fixes and Changes」 でも参照できます。 +\f3Х»\fP \- ХΰϡImportant Bug Fixes and Changes Ǥ⻲ȤǤޤ .TP 2 o -\f3バージョン番号\fP \- 「バージョン番号」を参照してください。 +\f3Сֹ\fP \- ֥Сֹפ򻲾ȤƤ .TP 2 o -\f3有効なクラスだけをドキュメント化\fP \- パッケージをドキュメント化するとき、Javadoc は、有効なクラス名で構成されているファイルのみを読み込みます。たとえば、ファイル名にハイフン「\-」を含めることで、javadoc によるファイルの解析を防ぐことができます。 +\f3ͭʥ饹ɥȲ\fP \- ѥåɥȲȤJavadoc ϡͭʥ饹̾ǹƤեΤߤɤ߹ߤޤȤСե̾˥ϥե\-פޤ뤳Ȥǡjavadoc ˤեβϤɤȤǤޤ .RE - -.LP .SS -エラーと警告 -.LP -.LP -エラーおよび警告メッセージには、ファイル名と宣言行 (ドキュメンテーションコメント内の特定の行ではない) の行番号が含まれます。 +顼ȷٹ .LP +顼ӷٹåˤϡե̾ (ɥơ󥳥ιԤǤϤʤ) ιֹ椬ޤޤޤ .RS 3 .TP 2 o -\f2"error:cannot read:Class1.java"\fP Javadoc ツールはカレントディレクトリに Class1.java クラスをロードしようとしています。絶対パスまたは相対パスとともに表示されるクラス名は、この例の場合 \f2./Class1.java\fP と同じです。 +\f2"error: cannot read: Class1.java"\fP Javadoc ġϥȥǥ쥯ȥ Class1.java 饹ɤ褦ȤƤޤХѥޤХѥȤȤɽ륯饹̾ϡξ \f2./Class1.java ƱǤ\fP .RE - -.LP -.SH "環境" -.LP +.SH "Ķ" .RS 3 .TP 3 CLASSPATH -Javadoc がユーザークラスのファイルを探すときに使うパスを指定する環境変数です。この環境変数は、\f2\-classpath\fP オプションによってオーバーライドされます。ディレクトリは、次のようにコロンで区切ります。 +Javadoc 桼饹ΥեõȤ˻ȤѥꤹĶѿǤδĶѿϡ \f2\-classpath\fP ץˤäƥС饤ɤޤǥ쥯ȥϡΤ褦˥Ƕڤޤ .:/home/classes:/usr/local/java/classes .RE - -.LP -.SH "関連項目" -.LP +.SH "Ϣ" .RS 3 .TP 2 o @@ -5806,7 +4227,7 @@ javap(1) .TP 2 o .na -\f2Javadoc のホームページ\fP @ +\f2Javadoc Υۡڡ\fP @ .fi http://java.sun.com/j2se/javadoc/index.jsp .TP 2 @@ -5818,16 +4239,14 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html .TP 2 o .na -\f2クラスパスの設定\fP @ +\f2饹ѥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/tools/index.html#general .TP 2 o .na -\f2javac と javadoc がクラスを検索する方法\fP @ +\f2javac javadoc 饹򸡺ˡ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) .RE - -.LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 index 386c5d01752..114b2138719 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 @@ -19,82 +19,67 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "02 Jun 2010" +.TH javah 1 "14 Apr 2011" .LP -.SH "名前" -javah \- C ヘッダーとスタブファイルジェネレータ -.LP -.RS 3 - +.SH "̾" +javah \- C إåȥ֥ե른ͥ졼 .LP .LP -\f3javah\fP は、Java クラスから C ヘッダーファイルと C ソースファイルを作成します。これらのファイルは、Java プログラミング言語で書かれたコードと、C などのその他の言語で書かれたコードを接続し、コードが相互に作用するようにします。 +\f3javah\fP ϡJava 饹 C إåե C եޤΥեϡJava ץߥ󥰸ǽ񤫤줿ɤȡC ʤɤΤ¾θǽ񤫤줿ɤ³ɤߤ˺Ѥ褦ˤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 .fl javah [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . .fl -javah_g [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . -.fl \fP .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javah\fP は、ネイティブメソッドを実装するために必要な C ヘッダーとソースファイルを生成します。作成されたヘッダーとソースファイルは、ネイティブソースコードからオブジェクトのインスタンス変数を参照するために C プログラムによって使用されます。.h ファイルは、対応するクラスと一致する配置を持つ構造体定義を含みます。構造体のフィールドは、クラスのインスタンス変数に対応します。 +\f3javah\fP ϡͥƥ֥᥽åɤ뤿ɬפ C إåȥեޤ줿إåȥեϡͥƥ֥ɤ饪֥ȤΥ󥹥ѿ򻲾Ȥ뤿 C ץˤäƻѤޤ.h եϡб륯饹Ȱפ֤Ťޤߤޤ¤ΤΥեɤϡ饹Υ󥹥ѿбޤ .LP .LP -ヘッダーファイルとその中で宣言される構造体の名前はクラスの名前から派生します。\f3javah\fP に渡されるクラスがパッケージの中にある場合、パッケージ名はヘッダーファイル名と構造体名の両方に付加されます。下線 (_) が名前の区切り文字として使用されます。 +إåեȤ빽¤Τ̾ϥ饹̾ޤ\f3javah\fP Ϥ륯饹ѥåˤ硢ѥå̾ϥإåե̾ȹ¤̾ξղäޤ (_) ̾ζڤʸȤƻѤޤ .LP .LP -デフォルトでは \f3javah\fP は、コマンド行にリストされる各クラスのヘッダーファイルを作成し、現在のディレクトリにファイルを置きます。ソースファイルを作成するには、\f2\-stubs\fP オプションを使用してください。1 つのファイルの中に、リストされたすべてのクラスの結果を連結するには、\f2\-o\fP オプションを使用してください。 +ǥեȤǤ \f3javah\fP ϡޥɹԤ˥ꥹȤƥ饹ΥإåեߤΥǥ쥯ȥ˥ե֤ޤեˤϡ\f2\-stubs\fP ץѤƤ1 ĤΥեˡꥹȤ줿٤ƤΥ饹η̤Ϣ뤹ˤϡ\f2\-o\fP ץѤƤ .LP .LP -新しいネイティブメソッドインタフェースである Java Native Interface (JNI) は、ヘッダー情報またはスタブファイルを必要としません。 現在では、\f3javah\fP は、JNI 形式のネイティブメソッドに必要なネイティブメソッド機能プロトタイプを生成します。 デフォルトでは、\f3javah\fP は JNI 形式で出力され、その結果は .h ファイルに格納されます。 +ͥƥ֥᥽åɥ󥿥եǤ Java Native Interface (JNI) ϡإåޤϥ֥եɬפȤޤ󡣸ߤǤϡ\f3javah\fP ϡJNI Υͥƥ֥᥽åɤɬפʥͥƥ֥᥽åɵǽץȥפޤǥեȤǤϡ\f3javah\fP JNI ǽϤ졢η̤ .h ե˳Ǽޤ .LP -.LP -\f3javah_g\fP は、jdb(1) のようなデバッガに適した、\f3javah\fP の最適化されていないバージョンです。 -.LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-o outputfile -コマンド行にリストされたすべてのクラスに対して、結果のヘッダーまたはソースファイルを連結して \f2outputfile\fP に格納します。\f3\-o\fP または \f3\-d\fP のどちらか一方だけが使われます。 +ޥɹԤ˥ꥹȤ줿٤ƤΥ饹Фơ̤ΥإåޤϥեϢ뤷 \f2outputfile\fP ˳Ǽޤ\f3\-o\fP ޤ \f3\-d\fP Τɤ餫Ȥޤ .TP 3 \-d directory -\f3javah\fP がヘッダーファイルまたはスタブファイルを保存する、ディレクトリを設定します。\f3\-d\fP または \f3\-o\fP のどちらか一方だけが使われます。 +\f3javah\fP إåեޤϥ֥ե¸롢ǥ쥯ȥꤷޤ\f3\-d\fP ޤ \f3\-o\fP Τɤ餫Ȥޤ .TP 3 \-stubs -\f3javah\fP が、Java オブジェクトファイルから C 宣言を生成します。 +\f3javah\fP Java ֥ȥե뤫 C ޤ .TP 3 \-verbose -詳細出力を指定し、作成ファイルの状態に関するメッセージを、\f3javah\fP が標準出力に出力します。 +ܺٽϤꤷեξ֤˴ؤå\f3javah\fP ɸϤ˽Ϥޤ .TP 3 \-help -\f3javah\fP の使用法についてのヘルプメッセージを出力します。 +\f3javah\fP λˡˤĤƤΥإץåϤޤ .TP 3 \-version -\f3javah\fP のバージョン情報を出力します。 +\f3javah\fP ΥСϤޤ .TP 3 \-jni -JNI 形式のネイティブファイル機能プロトタイプを含む出力ファイルを、\f3javah\fP が作成します。これは標準出力であるため、\f3\-jni\fP の使用はオプションです。 +JNI Υͥƥ֥ե뵡ǽץȥפޤϥե\f3javah\fP ޤɸϤǤ뤿ᡢ\f3\-jni\fP λѤϥץǤ .TP 3 \-classpath path -クラスを探すために \f3javah\fP が使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 +饹õ \f3javah\fP ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -102,7 +87,7 @@ JNI 形式のネイティブファイル機能プロトタイプを含む出力 .fl \fP .fi -例を示します。 +򼨤ޤ .nf \f3 .fl @@ -111,33 +96,31 @@ JNI 形式のネイティブファイル機能プロトタイプを含む出力 \fP .fi .LP -便宜上、\f2*\fP のベース名を含むクラスパス要素は、ディレクトリ内の拡張子 \f2.jar\fP または \f2.JAR\fP を持つすべてのファイルのリストを指定するのと同じとみなされます (Java プログラムはこの 2 つの呼び出しを区別できない)。 +ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ (Java ץϤ 2 ĤθƤӽФ̤Ǥʤ) .br .br -たとえば、ディレクトリ \f2foo\fP に \f2a.jar\fP と \f2b.JAR\fP が含まれている場合、クラスパス要素 \f2foo/*\fP は \f2A.jar:b.JAR\fP に展開されます。 ただし、JAR ファイルの順番は指定されません。このリストには、隠しファイルも含め、指定されたディレクトリ内のすべての JAR ファイルが含まれます。\f2*\fP だけから成るクラスパスエントリは、カレントディレクトリ内のすべての JAR ファイルのリストに展開されます。\f2CLASSPATH\fP 環境変数も、定義時には同様に展開されます。クラスパスのワイルドカード展開は必ず、Java 仮想マシンの起動前に実行されます。したがって、\f2System.getenv("CLASSPATH")\fP 呼び出しのように環境に問い合わせを行わない限り、Java プログラムが展開されていないワイルドカードを認識することはありません。 +ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ饹ѥΥ磻ɥŸɬJava ۥޥεư˼¹Ԥޤäơ\f2System.getenv("CLASSPATH")\fP ƤӽФΤ褦˴Ķ䤤碌Ԥʤ¤ꡢJava ץबŸƤʤ磻ɥɤǧ뤳ȤϤޤ .TP 3 \-bootclasspath path -ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。 +֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ .TP 3 \-old -古い JDK1.0 形式のヘッダーファイルを生成するように指定します。 +Ť JDK1.0 Υإåե褦˻ꤷޤ .TP 3 \-force -出力ファイルが常に書き込まれるように指定します。 +ϥե뤬˽񤭹ޤ褦˻ꤷޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割されています。 +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤵Ƥޤ .nf \f3 .fl @@ -148,11 +131,9 @@ CLASSPATH .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、java(1)、jdb(1)、javap(1)、javadoc(1) +javac(1)java(1)jdb(1)javap(1)javadoc(1) .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 index f8589435ec7..99e6edfcb28 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "02 Jun 2010" +.TH javap 1 "14 Apr 2011" .LP -.SH "名前" -javap \- Java クラスファイル逆アセンブラ -.LP -.RS 3 - +.SH "̾" +javap \- Java 饹եե֥ .LP .LP -クラスファイルを逆アセンブルします。 +饹եե֥뤷ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,15 +39,10 @@ javap [ \fP\f3options\fP\f3 ] class. . . .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3javap\fP コマンドは、クラスファイルを逆アセンブルします。その出力は指定するオプションにより異なります。オプションを指定しない場合、\f3javap\fP は、そのパッケージ、渡されたクラスの protected および public のフィールドとメソッドを出力します。 \f3javap\fP はその出力を標準出力に表示します。たとえば、次のクラス宣言をコンパイルするとします。 -.LP -.RS 3 - +\f3javap\fP ޥɤϡ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤȤСΥ饹򥳥ѥ뤹Ȥޤ .LP .nf \f3 @@ -96,14 +85,10 @@ public class DocFooter extends Applet { .fl \fP .fi -.RE .LP .LP -\f3javap DocFooter\fP がもたらす出力は次のようになります。 -.LP -.RS 3 - +\f3javap DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 @@ -126,14 +111,10 @@ public class DocFooter extends java.applet.Applet { .fl \fP .fi -.RE .LP .LP -\f3javap \-c DocFooter\fP がもたらす出力は次のようになります。 -.LP -.RS 3 - +\f3javap \-c DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 @@ -244,41 +225,35 @@ Method void paint(java.awt.Graphics) .fl \fP .fi -.RE .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -\-help -\f3javap\fP のヘルプメッセージを出力します。 +\-help \-\-help \-? +\f3javap\fP ΥإץåϤޤ +.TP 3 +\-version +Сɽޤ .TP 3 \-l -行番号と局所変数テーブルを表示します。 -.TP 3 -\-b -JDK 1.1 の \f3javap\fP との下位互換性を保証します。 +ֹȶɽѿơ֥ɽޤ .TP 3 \-public -public クラスおよびメンバーだけを表示します。 +public 饹ӥСɽޤ .TP 3 \-protected -protected および public のクラスとメンバーだけを表示します。 +protected public Υ饹ȥСɽޤ .TP 3 \-package -package、protected、および public のクラスとメンバーだけを表示します。これはデフォルトの設定です。 +packageprotected public Υ饹ȥСɽޤϥǥեȤǤ .TP 3 -\-private -すべてのクラスとメンバーを表示します。 +\-private \-p +٤ƤΥ饹ȥСɽޤ .TP 3 \-Jflag -ランタイムシステムに直接 \f2flag\fP を渡します。使用例を次に示します。 -.RS 3 - -.LP +󥿥ॷƥľ \f2flag\fP Ϥޤ򼡤˼ޤ .nf \f3 .fl @@ -288,23 +263,28 @@ javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassNam .fl \fP .fi -.RE .TP 3 \-s -内部の型シグニチャーを出力します。 +η˥㡼Ϥޤ +.TP 3 +\-sysinfo +Υ饹Υƥ (ѥաMD5 ϥå) ɽޤ +.TP 3 +\-constants +static final ɽޤ .TP 3 \-c -クラスの各メソッドのために逆アセンブルされるコード、すなわち Java バイトコードから成る命令を表示します。これらは +饹γƥ᥽åɤΤ˵ե֥뤵륳ɡʤ Java Хȥɤ̿ɽޤ .na -\f2「Java Virtual Machine Specification」\fP @ +\f2Java Virtual Machine Specification\fP @ .fi -http://java.sun.com/docs/books/vmspec/にドキュメント化されています。 +http://java.sun.com/docs/books/vmspec/˥ɥȲƤޤ .TP 3 \-verbose -メソッドのスタックサイズ、および \f2locals\fP と \f2args\fP の数を出力します。 +᥽åɤΥå \f2locals\fP \f2args\fP οϤޤ .TP 3 \-classpath path -\f3javap\fP がクラスを探すために使用するパスを指定します。デフォルトまたは CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 +\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -312,7 +292,7 @@ http://java.sun.com/docs/books/vmspec/にドキュメント化されています .fl \fP .fi -例を示します。 +򼨤ޤ .nf \f3 .fl @@ -322,24 +302,19 @@ http://java.sun.com/docs/books/vmspec/にドキュメント化されています .fi .TP 3 \-bootclasspath path -ブートストラップクラスをロードするパスを指定します。ブートストラップクラスは、デフォルトでは \f2jre/lib/rt.jar\fP および他のいくつかの JAR ファイル にある、コア Java 2 プラットフォームを実装するクラスです。 +֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ .TP 3 \-extdirs dirs -インストールされた拡張機能を検索する場所をオーバーライドします。The default location for extensions is the value of \f2java.ext.dirs\fP. +󥹥ȡ뤵줿ĥǽ򸡺򥪡С饤ɤޤĥǽϡǥեȤǤ \f2java.ext.dirs\fP ˤޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。 次に例を示します。 -.RS 3 - -.LP +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -348,14 +323,11 @@ CLASSPATH \fP .fi .RE -.RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、 java(1)、jdb(1)、javah(1)、javadoc(1) +javac(1)java(1)jdb(1)javah(1)javadoc(1) .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 index 72e426f4461..03d3349c7a0 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 @@ -19,30 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "02 Jun 2010" +.TH javaws 1 "14 Apr 2011" .LP -.SH "名前" -\f2javaws\fP コマンド行 +.SH "̾" +\f2javaws\fP ޥɹ +.LP +.SH "̾" .LP .LP -\ +\f2javaws\fP \- Java Web Start ưޥ .LP -.SS -NAME -.LP -.RS 3 - -.LP -.LP -\f2javaws\fP \- Java Web Start 起動コマンド -.LP -.RE -.SS -形式 -.LP -.RS 3 - +.SH "" .LP .LP \f2javaws [run\-options] <jnlp>\fP @@ -50,309 +38,185 @@ NAME .LP \f2javaws [control\-options]\fP .LP -.RE -.SS -パラメータ -.LP -.RS 3 - +.SH "ѥ᡼" .LP .LP \f2[run\-options]\fP .LP -.RS 3 - .LP +ޥɹԼ¹ԥץ󡣼¹ԥץǤդνǻǤޤƼ索ץˤĤƤϡ ּ¹ԥץפ򻲾ȤƤ .LP -コマンド行実行オプション。 実行オプションは任意の順序で指定できます。各種オプションについては、下の 「実行オプション」を参照してください。 -.LP -.RE .LP \f2<jnlp>\fP .LP -.RS 3 - .LP +JNLP (Java Network Launching Protocol) եΥѥޤ URL (Uniform Resource Locator) Τɤ餫Ǥ .LP -JNLP (Java Network Launching Protocol) ファイルのパスまたは URL (Uniform Resource Locator) のどちらかです。 -.LP -.RE .LP \f2[control\-options]\fP .LP -.RS 3 - +.LP +ޥɹ楪ץ楪ץǤդνǻǤޤƼ索ץˤĤƤϡ 楪ץפ򻲾ȤƤ +.LP +.SH "" .LP .LP -コマンド行制御オプション。 制御オプションは任意の順序で指定できます。各種オプションについては、下の 「制御オプション」を参照してください。 -.LP -.RE -.RE -.SS -説明 -.LP -.RS 3 - +\f2javaws\fP ޥɤϡJNLP (Java Network Launching Protocol) Υե󥹼Ǥ Java Web Start ưޤJava Web Start ϡͥåȥư Java ץꥱޤϥץåȤưޤ .LP .LP -\f2javaws\fP コマンドは、JNLP (Java Network Launching Protocol) のリファレンス実装である Java Web Start を起動します。Java Web Start は、ネットワーク上で動作する Java アプリケーションまたはアプレットを起動します。 +JNLP ե뤬ꤵ줿硢 \f2javaws\fP ϡ JNLP եǻꤵ줿 Java ץꥱ/ץåȤưޤ .LP .LP -JNLP ファイルを指定すると、\f2javaws\fP は JNLP ファイルに指定された Java アプリケーションまたはアプレットを起動します。 +\f2javaws\fP ưġˤϡߤΥ꡼ǥݡȤƤ 1 ȤΥץ󤬤ޤΥץϾΥ꡼ǤϺǽޤ .LP -.LP -\f2javaws\fP 起動ツールには、現在のリリースでサポートされている 1 組のオプションがあります。ただし、これらのオプションは将来のリリースでは削除される可能性があります。 -.LP -.RE -.SS -実行オプション -.LP -.RS 3 - +.SH "¹ԥץ" .LP .LP \f2\-offline\fP .LP -.RS 3 - .LP +Java Web Start 򥪥ե饤⡼ɤǼ¹Ԥޤ .LP -Java Web Start をオフラインモードで実行します。 -.LP -.RE .LP \f2\-Xnosplash\fP .LP -.RS 3 - .LP +ǽΥץå̤ɽ̵ˤޤ .LP -最初のスプラッシュ画面の表示を無効にします。 -.LP -.RE .LP \f2\-open <arguments>\fP .LP -.RS 3 - .LP +ΥץꤹȡJNLP եΰ \f2\-open <arguments>\fP ֤ޤ .LP -このオプションを指定すると、JNLP ファイル内の引数が \f2\-open <arguments>\fP に置き換わります。 -.LP -.RE .LP \f2\-print <arguments>\fP .LP -.RS 3 - .LP +ΥץꤹȡJNLP եΰ \f2\-print <arguments>\fP ֤ޤ .LP -このオプションを指定すると、JNLP ファイル内の引数が \f2\-print <arguments>\fP に置き換わります。 -.LP -.RE .LP \f2\-online\fP .LP -.RS 3 - .LP +饤⡼ɤǼ¹Ԥޤ (ǥեȤư) .LP -オンラインモードで実行します (デフォルトの動作)。 -.LP -.RE .LP \f2\-wait\fP .LP -.RS 3 - .LP +Υץꤷ硢 \f2javaws\fP ץϡץꥱ󤬽λޤǽλޤWindows ץåȥեǤϡΥץȤ˵ǽޤ .LP -このオプションを指定すると、アプリケーションが終了するまで \f2javaws\fP プロセスは終了しません。 -.LP -.RE .LP \f2\-verbose\fP .LP -.RS 3 - .LP +ɲäνϤɽޤ .LP -追加の出力を表示します。 -.LP -.RE .LP \f2\-J<option>\fP .LP -.RS 3 - .LP +vm ˥ץ䤤ޤ .LP -vm にオプションを補います。 -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +ץꥱ򥷥ƥ७å夫Τ߼¹Ԥޤ .LP -アプリケーションをシステムキャッシュからのみ実行します。 -.LP -.RE -.RE -.SS -制御オプション -.LP -.RS 3 - +.SH "楪ץ" .LP .LP \f2\-viewer\fP .LP -.RS 3 - +.LP +Java ȥѥͥǥåӥ塼ɽޤ .LP .LP -Java コントロールパネルでキャッシュビューアを表示します。 +\f2\-clearcache\fP +.LP +.LP +󥹥ȡ뤵Ƥʤ٤ƤΥץꥱ򥭥å夫ޤ .LP -.RE .LP \f2\-userConfig <property name>\fP .LP -.RS 3 - .LP +ꤵ줿ץѥƥ򥯥ꥢޤ .LP -指定された配備プロパティーをクリアします。 -.LP -.RE .LP \f2\-userConfig <property name> <property value>\fP .LP -.RS 3 - .LP +ꤵ줿ץѥƥꤵ줿ͤꤷޤ .LP -指定された配備プロパティーを指定された値に設定します。 -.LP -.RE .LP \f2\-uninstall\fP .LP -.RS 3 - .LP +å夫餹٤ƤΥץꥱޤ .LP -キャッシュからすべてのアプリケーションを削除します。 -.LP -.RE .LP \f2\-uninstall <jnlp>\fP .LP -.RS 3 - .LP +å夫饢ץꥱޤ .LP -キャッシュからアプリケーションを削除します。 -.LP -.RE .LP \f2\-import [import\-options] <jnlp>\fP .LP -.RS 3 - .LP +å˥ץꥱ򥤥ݡȤޤ .LP -キャッシュにアプリケーションをインポートします。 -.LP -.RE -\f3インポートオプション\fP +.SH "ݡȥץ" .LP .LP \f2\-silent\fP .LP -.RS 3 - .LP +ȥ⡼ɤǥݡȤޤ (UI ɽޤ) .LP -サイレントモードでインポートします (UI は表示されません)。 -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +ƥ७å˥ץꥱ򥤥ݡȤޤ .LP -システムキャッシュにアプリケーションをインポートします。 -.LP -.RE .LP \f2\-codebase <url>\fP .LP -.RS 3 - .LP +Ǥդ codebase ꥽ޤ .LP -任意の codebase からリソースを取得します。 -.LP -.RE .LP \f2\-shortcut\fP .LP -.RS 3 - .LP +桼ƥץץȤΤ褦˥硼ȥåȤ򥤥󥹥ȡ뤷ޤΥץϡ \f2\-silent\fP ץѤʤȸ̤ޤ .LP -ユーザー許容プロンプトのようにショートカットをインストールします。このオプションは、\f2\-silent\fP オプションと一緒に使用しないと効果がありません。 -.LP -.RE .LP \f2\-association\fP .LP -.RS 3 - +.LP +桼ƥץץȤΤ褦˴Ϣդ򥤥󥹥ȡ뤷ޤΥץϡ \f2\-silent\fP ץѤʤȸ̤ޤ +.LP +.SH "ե" .LP .LP -ユーザー許容プロンプトのように関連付けをインストールします。このオプションは、\f2\-silent\fP オプションと一緒に使用しないと効果がありません。 -.LP -.RE -.RE -.SS -ファイル -.LP -.RS 3 - -.LP -.LP -ユーザーキャッシュ、システムキャッシュ、および deployment.properties ファイルについては、 +桼å塢ƥ७å塢 deployment.properties եˤĤƤϡ .na -\f2システムレベルおよびユーザーレベルのプロパティー\fP @ +\f2ƥ٥뤪ӥ桼٥Υץѥƥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.html򻲾ȤƤ .LP -.RE -.SS -詳細情報 -.LP -.RS 3 - +.SH "ܺپ" .LP .LP -Java Web Start の詳細は、 +Java Web Start ξܺ٤ϡ .na -\f2「Java Web Start」\fP @ +\f2Java Web Start\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.html򻲾ȤƤ .LP -.RS 3 - -.LP -.LP -\ -.LP -.RE -.RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 index 2ce3990317c..309fc14f41d 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "02 Jun 2010" +.TH jconsole 1 "14 Apr 2011" .LP -.SH "名前" -jconsole \- Java 監視および管理コンソール +.SH "̾" +jconsole \- Java ƻ뤪Ӵ󥽡 .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -58,63 +56,60 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 -.br +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 connection = pid | host:port | jmxUrl .RS 3 -\f2pid\fP\ \ \ ローカルの Java VM のプロセス ID。Java VM は、jconsole を実行しているユーザー ID と同じユーザー ID を使用して実行する必要があります。詳細については、 +.TP 2 +o +\f2pid\fP Java VM Υץ IDJava VM ϡjconsole ¹ԤƤ桼 ID Ʊ桼 ID ѤƼ¹Ԥɬפޤܺ٤ˤĤƤϡ .na -\f2「JMX 監視および管理」\fP @ +\f2JMX ƻ뤪Ӵ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.htmlを参照してください。 -.br -\f2host\fP:\f2port\fP\ \ Java VM が実行しているホストシステムの名前と、JVM を起動したときにシステムプロパティー \f2com.sun.management.jmxremote.port\fP で指定したポート番号。詳細については、 +http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html򻲾ȤƤ +.TP 2 +o +\f2host\fP:\f2port\fP Java VM ¹ԤƤۥȥƥ̾ȡJVM ưȤ˥ƥץѥƥ \f2com.sun.management.jmxremote.port\fP ǻꤷݡֹ档ܺ٤ˤĤƤϡ .na -\f2「JMX 監視および管理」\fP @ +\f2JMX ƻ뤪Ӵ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.htmlを参照してください。 -.br -\f2jmxUrl\fP 接続先の JMX エージェントのアドレス。 これについては、 +http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html򻲾ȤƤ +.TP 2 +o +\f2jmxUrl\fP ³ JMX ȤΥɥ쥹ˤĤƤϡ .na \f2JMXServiceURL\fP @ .fi -http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html を参照してください。 +http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html 򻲾ȤƤ .RE .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jconsole\fP コマンドは、ローカルマシンまたはリモートマシン上の Java アプリケーションと仮想マシンの監視と管理を行うグラフィカルコンソールツールを起動します。 +\f3jconsole\fP ޥɤϡޥޤϥ⡼ȥޥ Java ץꥱȲۥޥδƻȴԤե륳󥽡ġưޤ .LP .LP -Windows 上では、\f3jconsole\fP はコンソールウィンドウと関連付けられていません。ただし、なんらかの理由で \f3jconsole\fP コマンドが失敗すると、エラー情報を示すダイアログボックスが表示されます。 +Windows Ǥϡ\f3jconsole\fP ϥ󥽡륦ɥȴϢդƤޤ󡣤ʤ餫ͳ \f3jconsole\fP ޥɤԤȡ顼򼨤ܥåɽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-interval=n -更新間隔を \f2n\fP 秒に設定します (デフォルトは 4 秒)。 +ֳ֤ \f2n\fP äꤷޤ (ǥեȤ 4 ) .TP 3 -\-notile\ -最初にウィンドウをタイリングしません (複数の接続のため)。 +\-notile +ǽ˥ɥ򥿥󥰤ޤ (ʣ³Τ) .TP 3 -\-pluginpath\ plugins -JConsole プラグインの検索先となるディレクトリまたは JAR ファイルのリストを指定します。\f2plugins\fP パスには、次の名前のプロバイダ構成ファイルを含めてください。 +\-pluginpath plugins +JConsole ץ饰θȤʤǥ쥯ȥޤ JAR եΥꥹȤꤷޤ\f2plugins\fP ѥˤϡ̾ΥץХեޤƤ .br .nf \f3 @@ -124,36 +119,36 @@ JConsole プラグインの検索先となるディレクトリまたは JAR フ \fP .fi .LP -これには、 +ˤϡ .na \f2com.sun.tools.jconsole.JConsolePlugin\fP @ .fi -http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html クラスを実装するクラスの完全修飾クラス名を指定する行が、プラグインごとに 1 行ずつ含まれています。 +http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html 饹륯饹δ饹̾ꤹԤץ饰󤴤Ȥ 1 ԤĴޤޤƤޤ .TP 3 -\-version\ -バージョン情報を出力して終了します。 +\-version +СϤƽλޤ .TP 3 -\-help\ -ヘルプメッセージを出力して終了します。 +\-help +إץåϤƽλޤ .TP 3 -\-J<flag>\ -jconsole が実行されている Java 仮想マシンに <flag> を渡します。 +\-J<flag> +jconsole ¹ԤƤ Java ۥޥ <flag> Ϥޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2jconsole の使用\fP @ +\f2JConsole λ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html .TP 2 o .na -\f2「Java プラットフォームの監視および管理」\fP @ +\f2Java ץåȥեδƻ뤪Ӵ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/management/index.html .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 index af81524bb8a..7c189369748 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "02 Jun 2010" +.TH jdb 1 "14 Apr 2011" .LP -.SH "名前" -jdb \- Java デバッガ -.LP -.RS 3 - +.SH "̾" +jdb \- Java ǥХå .LP .LP -\f3jdb\fP は、Java 言語プログラムのバグを見つけて修正するために使用するツールです。 +\f3jdb\fP ϡJava ץΥХ򸫤Ĥƽ뤿˻ѤġǤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -43,43 +37,34 @@ jdb \- Java デバッガ .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -次に示すコマンド行オプション +˼ޥɹԥץ .TP 3 class -デバッグを開始するクラスの名前 +ǥХå򳫻Ϥ륯饹̾ .TP 3 arguments -\f2class\fP の \f2main()\fP メソッドに渡す引数 +class \f2main()\fP ᥽åɤϤ \f2\fP .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -Java デバッガ \f3jdb\fP は、Java クラス用の簡単なコマンド行デバッガです。 +Java ǥХå \f3jdb\fP ϡJava 饹ѤδñʥޥɹԥǥХåǤ .na \f2Java Platform Debugger Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html を視覚的に実行し、ローカルまたはリモートの Java Virtual Machine の検査とデバッグを行うことができます。 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html Ū˼¹Ԥޤϥ⡼Ȥ Java Virtual Machine θȥǥХåԤȤǤޤ .LP .SS -jdb セッションの開始 -.LP -.RS 3 - +jdb åγ .LP .LP -jdb セッションを開始するにはさまざまな方法があります。もっとも頻繁に使われるのは、デバッグするアプリケーションのメインクラスを使用して、\f3jdb\fP から新しい Java 仮想マシン (VM) を起動する方法です。コマンド行で、 \f3java\fP の代わりに \f3jdb\fP コマンドを入力します。たとえば、アプリケーションのメインクラスが MyClass の場合は、JDB 環境でデバッグするときに次のコマンドを使用します。 +jdb å򳫻ϤˤϤޤޤˡޤäȤˤ˻ȤΤϡǥХå륢ץꥱΥᥤ󥯥饹Ѥơ\f3jdb\fP 鿷 Java ۥޥ (VM) ưˡǤޥɹԤǡ\f3java\fP \f3jdb\fP ޥɤϤޤȤСץꥱΥᥤ󥯥饹 MyClass ξϡJDB ĶǥǥХåȤ˼ΥޥɤѤޤ .LP .nf \f3 @@ -91,10 +76,10 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -この方法で起動すると、\f3jdb\fP は、指定されたパラメータを使って 2 つ目の Java VM を呼び出します。 次に、指定されたクラスをロードして、クラスの最初の命令を実行する前に VM を停止させます。 +ˡǵưȡ\f3jdb\fP ϡꤵ줿ѥ᡼Ȥä 2 ܤ Java VM ƤӽФޤˡꤵ줿饹ɤơ饹κǽ̿¹Ԥ VM ߤޤ .LP .LP -\f3jdb\fP のもう 1 つの使用方法は、すでに起動している Java VM に jdb を接続することです。jdb が接続する VM を、その実行中に起動するための構文を次に示します。これは、インプロセスデバッグ用ライブラリをロードし、接続の種類を指定します。 +\f3jdb\fP Τ⤦ 1 ĤλˡϡǤ˵ưƤ Java VM jdb ³뤳ȤǤjdb ³ VM 򡢤μ¹˵ư뤿ιʸ򼡤˼ޤϡץǥХåѥ饤֥ɤ³μꤷޤ .LP .nf \f3 @@ -106,7 +91,7 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -たとえば、次のコマンドは、MyClass アプリケーションを実行して、\f3jdb\fP があとでそのアプリケーションに接続できるようにします。 +ȤСΥޥɤϡMyClass ץꥱ¹Ԥơ\f3jdb\fP ȤǤΥץꥱ³Ǥ褦ˤޤ .LP .nf \f3 @@ -118,7 +103,7 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -次のコマンドを使用して、\f3jdb\fP を VM に接続できます。 +ΥޥɤѤơ\f3jdb\fP VM ³Ǥޤ .LP .nf \f3 @@ -130,45 +115,42 @@ jdb セッションを開始するにはさまざまな方法があります。 .LP .LP -この場合、\f3jdb\fP は新しい VM を起動する代わりに既存の VM に接続されるため、\f3jdb\fP コマンド行には「MyClass」は指定しません。 +ξ硢\f3jdb\fP Ͽ VM ư˴¸ VM ³뤿ᡢ\f3jdb\fP ޥɹԤˤϡMyClassפϻꤷޤ .LP .LP -デバッガを VM に接続するにはほかにもさまざまな方法があり、すべて \f3jdb\fP でサポートされています。接続オプションについては、Java Platform Debugger Architecture の +ǥХå VM ³ˤϤۤˤ⤵ޤޤˡꡢ٤ \f3jdb\fP ǥݡȤƤޤ³ץˤĤƤϡJava Platform Debugger Architecture .na -\f2ドキュメント\fP @ +\f2ɥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.htmlを参照してください。\f3jdb\fP で使用するために J2SE 1.4.2 以前の VM を起動する方法については、 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html򻲾ȤƤ\f3jdb\fP ǻѤ뤿 J2SE 1.4.2 VM ưˡˤĤƤϡ .na -\f21.4.2 のドキュメント\fP @ +\f21.4.2 Υɥ\fP @ .fi -http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.htmlを参照してください。 +http://java.sun.com/j2se/1.4.2/docs/guide/jpda/conninv.html򻲾ȤƤ .LP .SS -基本 jdb コマンド + jdb ޥ .LP .LP -基本的な \f3jdb\fP コマンドの一覧を示します。Java デバッガがサポートするコマンドはこれ以外にもあり、それらは \f3jdb\fP の \f2help\fP コマンドを使用して表示できます。 -.LP -.RS 3 - +Ū \f3jdb\fP ޥɤΰ򼨤ޤJava ǥХåݡȤ륳ޥɤϤʳˤ⤢ꡢ \f3jdb\fP \f2help\fP ޥɤѤɽǤޤ .LP .RS 3 .TP 3 -help または ? -もっとも重要な \f3jdb\fP コマンド \f2help\fP は、認識されたコマンドのリストに簡潔な説明を付けて表示します。 +help ޤ ? +äȤפ \f3jdb\fP ޥ \f2help\fP ϡǧ줿ޥɤΥꥹȤ˴ʷդɽޤ .TP 3 run -\f3jdb\fP を起動して必要なブレークポイントを設定したあとに、このコマンドを使用して、デバッグするアプリケーションの実行を開始できます。このコマンドは、既存の VM に接続している場合とは異なり、デバッグするアプリケーションが \f3jdb\fP から起動したときにだけ使用できます。 +\f3jdb\fP ưɬפʥ֥졼ݥȤꤷȤˡΥޥɤѤơǥХå륢ץꥱμ¹Ԥ򳫻ϤǤޤΥޥɤϡ¸ VM ³ƤȤϰۤʤꡢǥХå륢ץꥱ \f3jdb\fP 鵯ưȤˤѤǤޤ .TP 3 cont -ブレークポイント、例外、またはステップ実行のあとで、デバッグするアプリケーションの実行を継続します。 +֥졼ݥȡ㳰ޤϥƥå׼¹ԤΤȤǡǥХå륢ץꥱμ¹Ԥ³ޤ .TP 3 print -Java オブジェクトおよびプリミティブ値を表示します。プリミティブ型の変数またはフィールドの場合には、実際の値が出力されます。オブジェクトの場合には、短い説明が出力されます。オブジェクトについては、以降の \f2dump\fP コマンドの説明を参照してください。 +Java ֥ȤӥץߥƥͤɽޤץߥƥַѿޤϥեɤξˤϡºݤͤϤޤ֥ȤξˤϡûϤޤ֥ȤˤĤƤϡʹߤ \f2dump\fP ޥɤ򻲾ȤƤ .LP -\f2注:局所変数を表示するには、その変数を含むクラスが \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP オプションでコンパイルされていなければなりません。 +\f2: ɽѿɽˤϡѿޤ९饹 \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP ץǥѥ뤵Ƥɬפޤ .LP -\f2print\fP では、メソッドの呼び出しを含む多数の簡単な Java 式がサポートされています。 次に例を示します。 +\f2print\fP Ǥϡ᥽åɤθƤӽФޤ¿δñ Java ݡȤƤޤ򼨤ޤ .RS 3 .TP 2 o @@ -178,25 +160,22 @@ o \f2print myObj.myInstanceField\fP .TP 2 o -\f2print i + j + k\fP (i、j、および k はプリミティブであり、フィールドまたは局所変数のいずれか) +\f2print i + j + k\fP (ij k ϥץߥƥ֤Ǥꡢեɤޤ϶ɽѿΤ줫) .TP 2 o -\f2print myObj.myMethod()\fP (myMethod が null 以外を返す場合) +\f2print myObj.myMethod()\fP (myMethod null ʳ֤) .TP 2 o \f2print new java.lang.String("Hello").length()\fP .RE .TP 3 dump -プリミティブ値の場合には、このコマンドは \f2print\fP と同じです。オブジェクトの場合には、オブジェクト内に定義されている各フィールドの現在の値が出力されます。static フィールドと instance フィールドが出力されます。 +ץߥƥͤξˤϡΥޥɤ \f2print\fP ƱǤ֥Ȥξˤϡ֥ƤƥեɤθߤͤϤޤstatic եɤ instance եɤϤޤ .LP -\f2dump\fP コマンドでは、\f2print\fP コマンドと同じ式がサポートされます。 +\f2dump\fP ޥɤǤϡ\f2print\fP ޥɤƱݡȤޤ .TP 3 threads -現在実行中のスレッドを一覧表示します。スレッドごとに、名前と現在の状態、およびほかのコマンドに使用できるインデックスが出力されます。 次に例を示します。 -.RS 3 - -.LP +߼¹ΥåɤɽޤåɤȤˡ̾ȸߤξ֡ӤۤΥޥɤ˻ѤǤ륤ǥåϤޤ򼨤ޤ .nf \f3 .fl @@ -204,163 +183,144 @@ threads .fl \fP .fi -.RE -この例では、スレッドインデックスは 4 であり、スレッドは java.lang.Thread のインスタンスです。 スレッドの名前は「main」であり、現在実行中です。 +Ǥϡåɥǥå 4 Ǥꡢåɤ java.lang.Thread Υ󥹥󥹤Ǥåɤ̾ϡmainפǤꡢ߼¹Ǥ .TP 3 thread -現在のスレッドにするスレッドを選択します。多くの \f3jdb\fP コマンドは、現在のスレッドの設定に基づいて実行されます。スレッドは、\f2threads\fP コマンドで説明したスレッドインデックスとともに指定します。 +ߤΥåɤˤ륹åɤ򤷤ޤ¿ \f3jdb\fP ޥɤϡߤΥåɤ˴ŤƼ¹Ԥޤåɤϡ\f2threads\fP ޥɤåɥǥåȤȤ˻ꤷޤ .TP 3 where -引数を指定しないで \f2where\fP を実行すると、現在のスレッドのスタックがダンプされます。 \f2where all\fP コマンドは、現在のスレッドグループにあるスレッドのスタックを、すべてダンプします。 \f2where\fP \f2threadindex\fP は、指定されたスレッドのスタックをダンプします。 +\f2ꤷʤ\fP where ¹ԤȡߤΥåɤΥåפޤ \f2where all\fP ޥɤϡߤΥåɥ롼פˤ륹åɤΥå򤹤٤ƥפޤ \f2where\fP \f2threadindex\fP ϡꤵ줿åɤΥåפޤ .LP -現在のスレッドが (ブレークポイントか \f2suspend\fP コマンドによって) 中断している場合は、局所変数とフィールドは \f2print\fP コマンドと \f2dump\fP コマンドで表示できます。\f2up\fP コマンドと \f2down\fP コマンドで、どのスタックフレームをカレントにするかを選ぶことができます。 +ߤΥåɤ (֥졼ݥȤ \f2suspend\fP ޥɤˤä) ǤƤϡɽѿȥեɤ \f2print\fP ޥɤ \f2dump\fP ޥɤɽǤޤ\f2up\fP ޥɤ \f2down\fP ޥɤǡɤΥåե졼򥫥Ȥˤ뤫֤ȤǤޤ .RE .LP -.RE .SS -ブレークポイント -.LP -.RS 3 - +֥졼ݥ .LP .LP -ブレークポイントは、行番号またはメソッドの最初の命令で \f3jdb\fP に設定できます。 次に例を示します。 +֥졼ݥȤϡֹޤϥ᥽åɤκǽ̿ \f3jdb\fP Ǥޤ򼨤ޤ .LP .RS 3 .TP 2 o -\f2stop at MyClass:22\fP (MyClass が含まれるソースファイルの 22 行目の最初の命令にブレークポイントを設定) +\f2stop at MyClass:22\fP (MyClass ޤޤ륽ե 22 ܤκǽ̿˥֥졼ݥȤ) .TP 2 o -\f2stop in java.lang.String.length\fP (\f2java.lang.String.length\fP メソッドの最初にブレークポイントを設定) +\f2stop in java.lang.String.length\fP (\f2java.lang.String.length\fP ᥽åɤκǽ˥֥졼ݥȤ) .TP 2 o -\f2stop in MyClass.<init>\fP (<init> は MyClass コンストラクタを識別) +\f2stop in MyClass.<init>\fP (<init> MyClass 󥹥ȥ饯) .TP 2 o -\f2stop in MyClass.<clinit>\fP (<clinit> は MyClass の静的初期化コードを識別) +\f2stop in MyClass.<clinit>\fP (<clinit> MyClass Ūɤ) .RE .LP .LP -メソッドがオーバーロードされている場合には、メソッドの引数の型も指定して、ブレークポイントに対して適切なメソッドが選択されるようにしなければなりません。たとえば、「\f2MyClass.myMethod(int,java.lang.String)\fP」または「\f2MyClass.myMethod()\fP」と指定します。 +᥽åɤСɤƤˤϡ᥽åɤΰηꤷơ֥졼ݥȤФŬڤʥ᥽åɤ򤵤褦ˤʤФʤޤ󡣤ȤС\f2MyClass.myMethod(int,java.lang.String)\fPפޤϡ\f2MyClass.myMethod()\fPפȻꤷޤ .LP .LP -\f2clear\fP コマンドは、「\f2clear\ MyClass:45\fP」のような構文を使用してブレークポイントを削除します。\f2clear\fP を使用するか、引数を指定しないでコマンドを使用すると、現在設定されているすべてのブレークポイントが表示されます。\f2cont\fP コマンドは実行を継続します。 +\f2clear\fP ޥɤϡ\f2clear\ MyClass:45\fPפΤ褦ʹʸѤƥ֥졼ݥȤޤ\f2clear\fP Ѥ뤫ꤷʤǥޥɤѤȡꤵƤ뤹٤ƤΥ֥졼ݥȤɽޤ\f2cont\fP ޥɤϼ¹Ԥ³ޤ .LP -.RE .SS -ステップ実行 -.LP -.RS 3 - +ƥå׼¹ .LP .LP -\f2step\fP コマンドは、現在のスタックフレームまたは呼び出されたメソッド内で、次の行を実行します。\f2next\fP コマンドは、現在のスタックフレームの次の行を実行します。 +\f2step\fP ޥɤϡߤΥåե졼ޤϸƤӽФ줿᥽åǡιԤ¹Ԥޤ\f2next\fP ޥɤϡߤΥåե졼μιԤ¹Ԥޤ .LP -.RE .SS -例外 -.LP -.RS 3 - +㳰 .LP .LP -スローしているスレッドの呼び出しスタック上のどこにも catch 文がない場合に例外が発生すると、VM は通常、例外トレースを出力して終了します。ただし、\f3jdb\fP 環境で実行している場合は、例外が発生すると \f3jdb\fP に制御が戻ります。次に、\f3jdb\fP を使用して例外の原因を診断します。 +Ƥ륹åɤθƤӽФåΤɤˤ catch ʸʤ㳰ȯȡVM ̾㳰ȥ졼Ϥƽλޤ\f3jdb\fP ĶǼ¹ԤƤϡ㳰ȯ \f3jdb\fP 椬ޤˡ\f3jdb\fP Ѥ㳰θǤޤ .LP .LP -たとえば、「\f2catch java.io.FileNotFoundException\fP」または「\f2catch mypackage.BigTroubleException\fP」のように \f2catch\fP コマンドを使用すると、デバッグされたアプリケーションは、ほかの例外がスローされたときに停止します。例外が特定のクラス (またはサブクラス) のインスタンスの場合は、アプリケーションは例外がスローされた場所で停止します。 +ȤС\f2catch java.io.FileNotFoundException\fPפޤϡ\f2catch mypackage.BigTroubleException\fPפΤ褦 \f2catch\fP ޥɤѤȡǥХå줿ץꥱϡۤ㳰줿Ȥߤޤ㳰Υ饹 (ޤϥ֥饹) Υ󥹥󥹤ξϡץꥱ㳰줿ߤޤ .LP .LP -\f2ignore\fP コマンドを使うと、以前の \f2catch\fP コマンドの効果が無効になります。 +\f2ignore\fP ޥɤȤȡ \f2catch\fP ޥɤθ̵̤ˤʤޤ .LP .LP -\f2注:\fP\f2ignore\fP コマンドでは、デバッグされる VM は例外を無視せず、デバッガだけが例外を無視します。 +\f2: \fP\f2ignore\fP ޥɤǤϡǥХå VM 㳰̵뤻ǥХå㳰̵뤷ޤ .LP -.RE -.RE -.SH "コマンド行オプション" -.LP - +.SH "ޥɹԥץ" .LP .LP -コマンド行で Java アプリケーション起動ツールの代わりに \f3jdb\fP を使用する場合、\f3jdb\fP は、\f2\-D\fP、\f2\-classpath\fP、\f2\-X<option>\fP など、java コマンドと同じ数のオプションを受け入れます。 +ޥɹԤ Java ץꥱưġ \f3jdb\fP Ѥ硢\f3jdb\fP ϡ\f2\-D\fP\f2\-classpath\fP\f2\-X<option>\fP ʤɡjava ޥɤƱΥץޤ .LP .LP -\f3jdb\fP は、そのほかに次のオプションを受け入れます。 +\f3jdb\fP ϡΤۤ˼Υץޤ .LP .RS 3 .TP 3 \-help -ヘルプメッセージを表示します。 +إץåɽޤ .TP 3 \-sourcepath <dir1:dir2:...> -指定されたパスを使用して、ソースファイルを検索します。このオプションが指定されていない場合は、デフォルトパスの「.」が使われます。 +ꤵ줿ѥѤơե򸡺ޤΥץ󤬻ꤵƤʤϡǥեȥѥΡ.פȤޤ .TP 3 \-attach <address> -デフォルトの接続機構を使用して、すでに実行中の VM にデバッガを接続します。 +ǥեȤ³ѤơǤ˼¹ VM ˥ǥХå³ޤ .TP 3 \-listen <address> -実行中の VM が標準のコネクタを使って指定されたアドレスに接続するのを待機します。 +¹ VM ɸΥͥȤäƻꤵ줿ɥ쥹³ΤԵޤ .TP 3 \-listenany -実行中の VM が標準のコネクタを使って利用可能な任意のアドレスに接続するのを待機します。 +¹ VM ɸΥͥȤäѲǽǤդΥɥ쥹³ΤԵޤ .TP 3 \-launch -デバッグするアプリケーションを jdb の起動後ただちに起動します。このオプションによって、\f2run\fP コマンドを使用する必要がなくなります。デバッグするアプリケーションは、起動後、初期アプリケーションクラスがロードされる直前に停止します。その時点で、必要なブレークポイントを設定し、\f2cont\fP を使用して実行を継続できます。 +ǥХå륢ץꥱ jdb εư夿˵ưޤΥץˤäơ\f2run\fP ޥɤѤɬפʤʤޤǥХå륢ץꥱϡư塢ץꥱ󥯥饹ɤľߤޤλǡɬפʥ֥졼ݥȤꤷ\f2cont\fP ѤƼ¹Ԥ³Ǥޤ .TP 3 \-listconnectors -この VM で利用できるコネクタを一覧表示します。 + VM ѤǤ륳ͥɽޤ .TP 3 \-connect <connector\-name>:<name1>=<value1>,... -一覧表示された引数の値と指定のコネクタを使ってターゲット VM に接続します。 +ɽ줿ͤȻΥͥȤäƥå VM ³ޤ .TP 3 \-dbgtrace [flags] -jdb のデバッグ情報を出力します。 +jdb ΥǥХåϤޤ .TP 3 \-tclient -Java HotSpot(tm) VM (クライアント) 内でアプリケーションを実行します。 +Java HotSpot(tm) VM (饤) ǥץꥱ¹Ԥޤ .TP 3 \-tserver -Java HotSpot(tm) VM (サーバー) 内でアプリケーションを実行します。 +Java HotSpot(tm) VM (С) ǥץꥱ¹Ԥޤ .TP 3 \-Joption -jdb の実行に使用される Java 仮想マシンに \f2option\fP を渡します。(アプリケーション Java 仮想マシンに対するオプションは、\f3run\fP コマンドに渡される)。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +jdb μ¹Ԥ˻Ѥ Java ۥޥ \f2option\fP Ϥޤ(ץꥱ Java ۥޥФ륪ץϡ\f3run\fP ޥɤϤ)ȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP .LP -デバッガとデバッグを行う VM を接続するための代替機構に対して、その他のオプションがサポートされています。その他の接続オプションについては、Java Platform Debugger Architecture の +ǥХåȥǥХåԤ VM ³뤿صФơ¾Υץ󤬥ݡȤƤޤ¾³ץˤĤƤϡJava Platform Debugger Architecture .na -\f2ドキュメント\fP @ +\f2ɥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html򻲾ȤƤ .LP .SS -デバッグ対象のプロセスに転送されるオプション +ǥХåоݤΥץž륪ץ .LP .RS 3 .TP 3 \-v \-verbose[:class|gc|jni] -冗長モードにします。 +Ĺ⡼ɤˤޤ .TP 3 \-D<name>=<value> -システムプロパティーを設定します。 +ƥץѥƥꤷޤ .TP 3 \-classpath <directories separated by ":"> -クラスを検索するディレクトリを一覧表示します。 +饹򸡺ǥ쥯ȥɽޤ .TP 3 \-X<option> -非標準ターゲット VM オプションです。 +ɸॿå VM ץǤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -javac(1)、java(1)、javah(1)、javap(1)、javadoc(1) +javac(1)java(1)javah(1)javap(1)javadoc(1) .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 index 1871ec86869..57ff839ce47 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "02 Jun 2010" +.TH jhat 1 "14 Apr 2011" .LP -.SH "名前" -jhat \- Java ヒープ解析ツール +.SH "̾" +jhat \- Java ҡײϥġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -58,88 +56,90 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 -.br +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 heap\-dump\-file -ブラウズ対象となる Java バイナリヒープダンプファイル。複数のヒープダンプを含むダンプファイルの場合、「foo.hprof#3」のようにファイル名の後に「#<number>」を付加することで、ファイル内の特定のダンプを指定できます。 -.SH "説明" +֥饦оݤȤʤ Java Хʥҡץץե롣ʣΥҡץפޤץեξ硢foo.hprof#3פΤ褦˥ե̾θˡ#<number>פղä뤳ȤǡեΥפǤޤ +.RE + +.LP +.SH "" .LP .LP -\f3jhat\fP コマンドは、java ヒープダンプファイルを解析し、Web サーバーを起動します。 jhat を使えば、お好みの Web ブラウザを使ってヒープダンプをブラウズできます。 jhat は、「ある既知のクラス「Foo」のすべてのインスタンスを表示する」といった、事前に設計されたクエリのほか、\f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) もサポートします。OQL のヘルプには、jhat によって表示される OQL ヘルプページからアクセスできます。デフォルトポートを使用する場合、OQL のヘルプは http://localhost:7000/oqlhelp/ で利用可能です。 +\f3jhat\fP ޥɤϡjava ҡץץեϤWeb Сưޤjhat ȤСߤ Web ֥饦Ȥäƥҡץפ֥饦Ǥޤjhat ϡ֤ΤΥ饹FooפΤ٤ƤΥ󥹥󥹤ɽפȤä߷פ줿Τۤ\f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) ⥵ݡȤޤOQL Υإפˤϡjhat ˤäɽ OQL إץڡ饢ǤޤǥեȥݡȤѤ硢OQL Υإפ http://localhost:7000/oqlhelp/ ѲǽǤ .LP .LP -Java のヒープダンプを生成するには、いくつかの方法があります。 +Java ΥҡץפˤϡĤˡޤ .LP .RS 3 .TP 2 o -jmap(1) の \-dump オプションを使って実行時にヒープダンプを取得する。 +jmap(1) \-dump ץȤäƼ¹Ի˥ҡץפ롣 .TP 2 o -jconsole(1) のオプションを使って +jconsole(1) ΥץȤä .na \f2HotSpotDiagnosticMXBean\fP @ .fi -http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html 経由で実行時にヒープダンプを取得する。 +http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html ͳǼ¹Ի˥ҡץפ롣 .TP 2 o -\-XX:+HeapDumpOnOutOfMemoryError VM オプションを指定すると、OutOfMemoryError のスロー時にヒープダンプが生成される。 +\-XX:+HeapDumpOnOutOfMemoryError VM ץꤹȡOutOfMemoryError Υ˥ҡץפ롣 .TP 2 o .na \f2hprof\fP @ .fi -http://java.sun.com/developer/technicalArticles/Programming/HPROF.html を使用する。 +http://java.sun.com/developer/technicalArticles/Programming/HPROF.html Ѥ롣 .RE .LP .LP -\f3注:\fP このツールは\f3試験的なもの\fPであり、将来の JDK のバージョンでは\f3利用できなくなる\fP可能性があります。 +\f3:\fP Υġ\f3Ūʤ\fPǤꡢ JDK ΥСǤ\f3ѤǤʤʤ\fPǽޤ +.LP +.SH "ץ" .LP -.SH "オプション" .RS 3 .TP 3 \-stack false/true -オブジェクト割り当て呼び出しスタックの追跡を無効にします。ヒープダンプ内で割り当てサイト情報が使用できない場合、このフラグを false に設定する必要があります。デフォルトは true です。 +֥ȳƸƤӽФåפ̵ˤޤҡץdzƥȾ󤬻ѤǤʤ硢Υե饰 false ꤹɬפޤǥեȤ true Ǥ .TP 3 \-refs false/true -オブジェクトへの参照の追跡を無効にします。デフォルトは true です。デフォルトでは、ヒープ内のすべてのオブジェクトについて、バックポインタ (指定されたオブジェクトをポイントしているオブジェクト。 参照者または受信参照とも呼ばれる) が計算されます。 +֥ȤؤλȤפ̵ˤޤǥեȤ true ǤǥեȤǤϡҡΤ٤ƤΥ֥ȤˤĤơХåݥ (ꤵ줿֥ȤݥȤƤ륪֥ȡȼԤޤϼȤȤƤФ) ׻ޤ .TP 3 \-port port\-number -jhat の HTTP サーバーのポートを設定します。デフォルトは 7000 です。 +jhat HTTP СΥݡȤꤷޤǥեȤ 7000 Ǥ .TP 3 \-exclude exclude\-file -「到達可能なオブジェクト」のクエリから除外すべきデータメンバーの一覧を含むファイルを指定します。たとえば、このファイルに \f2java.lang.String.value\fP が含まれていた場合、特定のオブジェクト「o」から到達可能なオブジェクトのリストを計算する際に、\f2java.lang.String.value\fP フィールドに関連する参照パスが考慮されなくなります。 +ãǽʥ֥ȡפΥ꤫٤ǡСΰޤեꤷޤȤСΥե \f2java.lang.String.value\fP ޤޤƤ硢Υ֥ȡoפãǽʥ֥ȤΥꥹȤ׻ݤˡ\f2java.lang.String.value\fP եɤ˴Ϣ뻲ȥѥθʤʤޤ .TP 3 \-baseline baseline\-dump\-file -ベースラインとなるヒープダンプを指定します。両方のヒープダンプ内で同じオブジェクト ID を持つオブジェクトは「新規ではない」としてマークされます。その他のオブジェクトは「新規」としてマークされます。これは、異なる 2 つのヒープダンプを比較する際に役立ちます。 +١饤ȤʤҡץפꤷޤξΥҡץƱ֥ ID ĥ֥ȤϡֿǤϤʤפȤƥޡޤ¾Υ֥ȤϡֿפȤƥޡޤϡۤʤ 2 ĤΥҡץפӤݤΩޤ .TP 3 \-debug int -このツールのデバッグレベルを設定します。0 は「デバッグ出力なし」を意味します。より大きな値を設定すると、より冗長なモードになります。 +ΥġΥǥХå٥ꤷޤ0 ϡ֥ǥХåϤʤפ̣ޤ礭ͤꤹȡĹʥ⡼ɤˤʤޤ .TP 3 -\-version\ -バージョン番号を報告したあと、終了します。 +\-version +Сֹ𤷤ȡλޤ .TP 3 -\-h\ -ヘルプメッセージを出力して終了します。 +\-h +إץåϤƽλޤ .TP 3 -\-help\ -ヘルプメッセージを出力して終了します。 +\-help +إץåϤƽλޤ .TP 3 -\-J<flag>\ -jhat が実行されている Java 仮想マシンに <flag> を渡します。たとえば、512M バイトの最大ヒープサイズを使用するには、\-J\-Xmx512m とします。 +\-J<flag> +jhat ¹ԤƤ Java ۥޥ <flag> ϤޤȤС512M ХȤκҡץѤˤϡ\-J\-Xmx512m Ȥޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" +.LP .RS 3 .TP 2 o @@ -150,9 +150,10 @@ jconsole(1) .TP 2 o .na -\f2hprof \- ヒープおよび CPU プロファイリングツール\fP @ +\f2hprof \- ҡפ CPU ץե󥰥ġ\fP @ .fi http://java.sun.com/developer/technicalArticles/Programming/HPROF.html .RE -.RE + +.LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 index 4a8856260f9..14b6814173e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "02 Jun 2010" +.TH jinfo 1 "14 Apr 2011" .LP -.SH "名前" -jinfo \- 構成情報 +.SH "̾" +jinfo \- .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -60,98 +58,100 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 option -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤ +.RE + +.LP .RS 3 .TP 3 pid -出力する構成情報のプロセス ID。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +Ϥ빽Υץ IDץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .RE + +.LP .RS 3 .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .RE + +.LP .RS 3 .TP 3 core -出力する構成情報のコアファイル。 +Ϥ빽Υե롣 .RE + +.LP .RS 3 .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .RE + +.LP .RS 3 .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 -.RE +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jinfo\fP は、指定された Java プロセスやコアファイルまたはリモートデバッグサーバーの Java 構成情報を出力します。構成情報は、Java システムプロパティーと Java 仮想マシンのコマンド行フラグから構成されます。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 +\f3jinfo\fP ϡꤵ줿 Java ץ䥳եޤϥ⡼ȥǥХåС Java ϤޤϡJava ƥץѥƥ Java ۥޥΥޥɹԥե饰鹽ޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .br - -.LP -.RS 3 - -.LP jinfo \-J\-d64 \-sysprops pid -.RE .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。Windows 上の jinfo でサポートされているのは、実行中のプロセスの \-flag オプションだけです。\fP .LP -.SH "オプション" +\f3 \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \fP\f4PATH\fP\f3 ĶѿˤϡåȥץˤäƻѤ \fP\f4jvm.dll\fP\f3 ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ\fP .LP - +.LP +\f3򼨤ޤ \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP +.SH "ץ" .LP .RS 3 .TP 3 -<オプションなし> -コマンド行フラグを、システムプロパティー名と値のペアとともに出力します。 +<ץʤ> +ޥɹԥե饰򡢥ƥץѥƥ̾ͤΥڥȤȤ˽Ϥޤ .br .TP 3 \-flag name -指定されたコマンド行フラグの名前と値を出力します。 +ꤵ줿ޥɹԥե饰̾ͤϤޤ .br .TP 3 \-flag [+|\-]name -指定されたブール型のコマンド行フラグを有効または無効にします。 +ꤵ줿֡뷿Υޥɹԥե饰ͭޤ̵ˤޤ .br .TP 3 \-flag name=value -指定されたコマンド行フラグを指定された値に設定します。 +ꤵ줿ޥɹԥե饰ꤵ줿ͤꤷޤ .br .TP 3 \-flags -JVM に渡されるコマンド行フラグをペアで出力します。 +JVM Ϥ륳ޥɹԥե饰ڥǽϤޤ .br .TP 3 \-sysprops -Java システムプロパティーを名前と値のペアとして出力します。 +Java ƥץѥƥ̾ͤΥڥȤƽϤޤ .br .TP 3 \-h -ヘルプメッセージを出力します。 +إץåϤޤ .TP 3 \-help -ヘルプメッセージを出力します。 +إץåϤޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 index 87dc7cdf37e..b3679c520fe 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 @@ -19,34 +19,32 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "02 Jun 2010" +.TH jmap 1 "14 Apr 2011" .LP -.SH "名前" -jmap \- メモリーマップ +.SH "̾" +jmap \- ꡼ޥå .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -60,46 +58,39 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 option -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤ .TP 3 pid -印刷するメモリーマップのプロセス ID。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +꡼ޥåפΥץ IDץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .br .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .br .TP 3 core -印刷するメモリーマップのコアファイル。 +꡼ޥåפΥե롣 .br .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .br .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .br .RE .LP -.SH " 説明" -.LP - +.SH "" .LP .LP -\f3jmap\fP は、指定されたプロセスやコアファイルまたはリモートデバッグサーバーの、共用オブジェクトメモリーマップまたはヒープメモリーの詳細を印刷します。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 -.LP -.RS 3 - +\f3jmap\fP ϡꤵ줿ץ䥳եޤϥ⡼ȥǥХåСΡѥ֥ȥ꡼ޥåפޤϥҡץ꡼ξܺ٤ޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .LP .nf \f3 @@ -108,76 +99,66 @@ jmap \-J\-d64 \-heap pid .fl \fP .fi -.RE .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。\fP +.LP +\f3: Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \fP\f4PATH\fP\f3 ĶѿˤϡåȥץˤäƻѤ \fP\f4jvm.dll\fP\f3 ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ\fP +.LP +.LP +\f3򼨤ޤ \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP .br .LP -Windows プラットフォーム上で使用可能な唯一の jmap 形式は、次のとおりです。 -.RS 3 - -.LP -jmap \-dump:<\f2dump\-options\fP> pid -.RE -および -.RS 3 - -.LP -jmap \-histo[:live] pid -.RE -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -<オプションなし> -オプションを使用しない場合、\f3jmap\fP は共用オブジェクトマッピングを印刷します。ターゲット VM にロードされた共用オブジェクトごとに、開始アドレス、マッピングのサイズ、および共用オブジェクトファイルのフルパスが印刷されます。これは、Solaris \f3pmap\fP ユーティリティーと類似しています。 +<ץʤ> +ץѤʤ硢jmap ϶ѥ֥ȥޥåԥ󥰤ޤå VM ˥ɤ줿ѥ֥ȤȤˡϥɥ쥹ޥåԥ󥰤ΥӶѥ֥ȥեΥեѥޤϡSolaris \f3pmap\fP 桼ƥƥƤޤ .br .TP 3 \-dump:[live,]format=b,file=<filename> -Java ヒープを hprof バイナリ形式で filename にダンプします。\f2live\fP サブオプションは省略可能です。これが指定された場合、ヒープ内で生存中のオブジェクトのみがダンプされます。ヒープダンプを参照するには、生成されたファイルを jhat(1) (Java Heap Analysis Tool) を使って読み取ります。 +Java ҡפ hprof Хʥ filename ˥פޤ\f2live\fP ֥ץϾάǽǤ줬ꤵ줿硢ҡ¸Υ֥ȤΤߤפޤҡץפ򻲾Ȥˤϡ줿ե jhat(1) (Java Heap Analysis Tool) Ȥäɤ߼ޤ .br .TP 3 \-finalizerinfo -ファイナライズを待っているオブジェクトに関する情報を出力します。 +եʥ饤ԤäƤ륪֥Ȥ˴ؤϤޤ .br .TP 3 \-heap -ヒープサマリーを印刷します。使用される GC アルゴリズム、ヒープ構成、および世代ごとのヒープ使用率が印刷されます。 +ҡץޥ꡼ޤѤ GC 르ꥺࡢҡ׹头ȤΥҡ׻Ψޤ .br .TP 3 \-histo[:live] -ヒープのヒストグラムを印刷します。Java クラスごとに、オブジェクトの数、バイト単位でのメモリーサイズ、および完全修飾クラス名が印刷されます。VM 内部クラス名は、「*」の接頭辞を付けて印刷されます。\f2live\fP サブオプションが指定された場合、生存中のオブジェクトのみがカウントされます。 +ҡפΥҥȥޤJava 饹Ȥˡ֥ȤοХñ̤ǤΥ꡼Ӵ饹̾ޤVM 饹̾ϡ*פƬդưޤ\f2live\fP ֥ץ󤬻ꤵ줿硢¸Υ֥ȤΤߤȤޤ .br .TP 3 \-permstat -Permanent 世代の Java ヒープの、クラスローダー関連の統計データを印刷します。クラスローダーごとに、その名前、状態、アドレス、親クラスローダー、およびクラスローダーがロードしたクラスの数とサイズが印刷されます。さらに、intern された文字列の数とサイズも出力されます。 +Permanent Java ҡפΡ饹Ϣץǡޤ饹Ȥˡ̾֡ɥ쥹ƥ饹ӥ饹ɤ饹οȥޤˡintern 줿ʸοȥϤޤ .br .TP 3 \-F -強制 (Force)。pid が応答しない場合に、jmap \-dump または jmap \-histo オプションとともに使用します。このモードでは、\f2live\fP サブオプションはサポートされません。 + (Force)pid ʤˡjmap \-dump ޤ jmap \-histo ץȤȤ˻ѤޤΥ⡼ɤǤϡ\f2live\fP ֥ץϥݡȤޤ .br .TP 3 \-h -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-help -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-J<flag> -jmap が実行されている Java 仮想マシンに <flag> を渡します。 +jmap ¹ԤƤ Java ۥޥ <flag> Ϥޤ .br .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 index f4f80ce430e..718cbdc8ef0 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 @@ -19,43 +19,41 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "02 Jun 2010" +.TH jps 1 "14 Apr 2011" .LP -.SH "名前" -jps \- Java 仮想マシンプロセスステータスツール +.SH "̾" +jps \- Java ۥޥץơġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -ホスト識別子 +ۥȼ̻ .TP 2 o -出力形式 +Ϸ .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -67,79 +65,70 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 hostid -プロセスレポートを生成するホストのホスト識別子。\f2hostid\fP には、通信プロトコル、ポート番号、実装に固有な他のデータを指定したオプションコンポーネントを含めることができます。 +ץݡȤۥȤΥۥȼ̻ҡ\f2hostid\fP ˤϡ̿ץȥ롢ݡֹ桢˸ͭ¾Υǡꤷץ󥳥ݡͥȤޤ뤳ȤǤޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jps\fP ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。 +\f3jps\fP ġϡåȥƥǷ¬줿 HotSpot Java ۥޥ (JVM) ɽޤΥġɽǤݡȾϡä JVM ˴ؤΤ˸ꤵޤ .LP .LP -\f2hostid\fP を指定せずに \f3jps\fP を実行した場合、ローカルホストで計測された JVM が検索されます。\f2hostid\fP を指定して起動した場合、指定されたプロトコルとポートを使用して、指定されたホスト上の JVM を検索します。\f3jstatd\fP プロセスがターゲットホスト上で実行されていると想定されます。 +\f2hostid\fP ꤻ \f3jps\fP ¹Ԥ硢ۥȤǷ¬줿 JVM ޤ\f2hostid\fP ꤷƵư硢ꤵ줿ץȥȥݡȤѤơꤵ줿ۥȾ JVM 򸡺ޤ\f3jstatd\fP ץåȥۥȾǼ¹ԤƤꤵޤ .LP .LP -\f3jps\fP コマンドは、ターゲットシステムで計測された各 JVM について、ローカル VM 識別子、つまり \f2lvmid\fP をレポートします。\f3lvmid\fP は、必須ではありませんが、一般的には JVM プロセスに対するオペレーティングシステムのプロセス識別子です。オプションを指定しない場合、\f3jps\fP によって、各 Java アプリケーションの \f2lvmid\fP が一覧表示され、それぞれにアプリケーションのクラス名または JAR ファイル名が簡単な形式で示されます。この簡単な形式のクラス名と JAR ファイル名では、クラスのパッケージ情報または JAR ファイルパス情報が省略されています。 +\f3jps\fP ޥɤϡåȥƥǷ¬줿 JVM ˤĤơ VM ̻ҡĤޤ \f2lvmid\fP ݡȤޤ\f3lvmid\fP ϡɬܤǤϤޤ󤬡Ūˤ JVM ץФ륪ڥ졼ƥ󥰥ƥΥץ̻ҤǤץꤷʤ硢\f3jps\fP ˤäơ Java ץꥱ \f2lvmid\fP ɽ졢줾˥ץꥱΥ饹̾ޤ JAR ե̾ñʷǼޤδñʷΥ饹̾ JAR ե̾Ǥϡ饹Υѥåޤ JAR եѥ󤬾άƤޤ .LP .LP -\f3jps\fP コマンドは、\f3Java\fP 起動ツールを使用して、\f2main\fP メソッドに渡されるクラス名と引数を検索します。独自の起動ツールを使用してターゲット JVM を起動した場合は、\f2main\fP メソッドに渡されるクラス名 (または JAR ファイル名) と引数は利用できません。この場合、\f3jps\fP コマンドは、main メソッドへ渡されるクラス名 (または JAR ファイル名) と引数に対して、文字列 \f2Unknown\fP を出力します。 +\f3jps\fP ޥɤϡ\f3Java\fP ưġѤ \f2main\fP ᥽åɤϤ륯饹̾Ȱ򸡺ޤȼεưġѤƥå JVM ưϡ \f2main\fP ᥽åɤϤ륯饹̾ (ޤ JAR ե̾) ȰѤǤޤ󡣤ξ硢\f3jps\fP ޥɤϡmain ᥽åɤϤ륯饹̾ (ޤ JAR ե̾) ȰФơʸ \f2Unknown\fP Ϥޤ .LP .LP -\f3jps\fP コマンドで生成される JVM のリストは、このコマンドを実行する主体に与えられたアクセス権に基づき、制限される場合があります。このコマンドは、オペレーティングシステム独自のアクセス制御機構による決定に基づいて、主体にアクセス権が与えられている JVM だけを一覧表示します。 +\f3jps\fP ޥɤ JVM ΥꥹȤϡΥޥɤ¹ԤΤͿ줿˴Ť¤礬ޤΥޥɤϡڥ졼ƥ󥰥ƥȼΥ浡ˤ˴ŤơΤ˥ͿƤ JVM ɽޤ .LP .LP -\f3注:\fP このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3:\fP Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jps\fP コマンドでは、コマンドの出力を変更するオプションが多数サポートされています。将来、これらのオプションは、変更または廃止される可能性があります。 +\f3jps\fP ޥɤǤϡޥɤνϤѹ륪ץ¿ݡȤƤޤ衢Υץϡѹޤѻߤǽޤ .LP .RS 3 .TP 3 \-q -ローカル VM 識別子のリストだけを生成するように、\f2main\fP メソッドに渡されるクラス名、JAR ファイル名、および引数の出力を制御します。 +饹̾JAR ե̾ \f2main\fP ᥽åɤϤ줿νϤ VM ̻ҤΰΤߤޤ .TP 3 \-m -main メソッドに渡される引数を出力します。この出力は、組み込まれている JVM に対して null になることもあります。 +main ᥽åɤϤϤޤνϤϡȤ߹ޤƤ JVM Ф null ˤʤ뤳Ȥ⤢ޤ .TP 3 \-l -アプリケーションの主要なクラスのフルパッケージ名、またはアプリケーションの JAR ファイルへのフルパス名を出力します。 +ץꥱμפʥ饹Υեѥå̾ޤϥץꥱ JAR եؤΥեѥ̾Ϥޤ .TP 3 \-v -JVM に渡される引数を出力します。 +JVM ϤϤޤ .TP 3 \-V -フラグファイル (.hotspotrc ファイルまたは \-XX:Flags=<\f2filename\fP> の引数で指定されたファイル) を通じて JVM に渡される引数を出力します。 +ե饰ե (.hotspotrc եޤ \-XX:Flags=<\f2filename\fP> ΰǻꤵ줿ե) ̤ JVM ϤϤޤ .TP 3 \-Joption -\f3jps\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 +\f3jps\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ .RE .LP .SS -ホスト識別子 -.LP -.RS 3 - +ۥȼ̻ .LP .LP -ホスト識別子、つまり \f2hostid\fP は、ターゲットシステムを示す文字列です。\f2hostid\fP 文字列の構文の大部分は、URI の構文に対応しています。 +ۥȼ̻ҡĤޤ \f2hostid\fP ϡåȥƥ򼨤ʸǤ\f2hostid\fP ʸιʸʬϡURI ιʸбƤޤ .LP .nf \f3 @@ -155,26 +144,23 @@ JVM に渡される引数を出力します。 .RS 3 .TP 3 protocol -通信プロトコルです。\f2protocol\fP が省略され、\f2hostname\fP が指定されていない場合、デフォルトのプロトコルが、プラットフォーム固有の最適化されたローカルプロトコルになります。\f2protocol\fP が省略され、\f2hostname\fP が指定されている場合は、デフォルトプロトコルは \f3rmi\fP になります。 +̿ץȥǤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤʤ硢ǥեȤΥץȥ뤬ץåȥեͭκŬ줿ץȥˤʤޤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤϡǥեȥץȥ \f3rmi\fP ˤʤޤ .TP 3 hostname -ターゲットホストを示すホスト名または IP アドレスです。\f2hostname\fP が省略されている場合は、ターゲットホストはローカルホストになります。 +åȥۥȤ򼨤ۥ̾ޤ IP ɥ쥹Ǥ\f2hostname\fP άƤϡåȥۥȤϥۥȤˤʤޤ .TP 3 port -リモートサーバーと通信するためのデフォルトポートです。\f2hostname\fP が省略されているか、\f2protocol\fP で最適化されたローカルプロトコルが指定されている場合、\f2port\fP は無視されます。そうでなければ、\f2port\fP パラメータの扱いは、実装によって異なります。デフォルトの \f3rmi\fP プロトコルの場合、\f2port\fP は、リモートホスト上の rmiregistry のポート番号を示します。\f2port\fP が省略され、\f2protocol\fP で \f3rmi\fP が指定されている場合、デフォルトの rmiregistry ポート (1099) が使用されます。 +⡼ȥС̿뤿ΥǥեȥݡȤǤ\f2hostname\fP άƤ뤫\f2protocol\fP ǺŬ줿ץȥ뤬ꤵƤ硢\f2port\fP ̵뤵ޤǤʤС\f2port\fP ѥ᡼ΰϡˤäưۤʤޤǥեȤ \f3rmi\fP ץȥξ硢\f2port\fP ϡ⡼ȥۥȾ rmiregistry Υݡֹ򼨤ޤ\f2port\fP ά졢\f2protocol\fP \f3rmi\fP ꤵƤ硢ǥեȤ rmiregistry ݡ (1099) Ѥޤ .TP 3 servername -このパラメータの扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。\f3rmi\fP プロトコルの場合、このパラメータは、リモートホスト上の RMI リモートオブジェクトの名前を示す文字列になります。jstatd(1) コマンドについては、\f3\-n\fP オプションを参照してください。 +Υѥ᡼ΰϡˤäưۤʤޤŬ줿ץȥξ硢Υեɤ̵뤵ޤ\f3rmi\fP ץȥξ硢Υѥ᡼ϡ⡼ȥۥȾ RMI ⡼ȥ֥Ȥ̾򼨤ʸˤʤޤjstatd(1) ޥɤˤĤƤϡ\f3\-n\fP ץ򻲾ȤƤ .RE .LP -.RE -.SH "出力形式" -.LP - +.SH "Ϸ" .LP .LP -\f3jps\fP コマンドの出力は、次のパターンに従います。 +\f3jps\fP ޥɤνϤϡΥѥ˽ޤ .LP .nf \f3 @@ -188,22 +174,20 @@ servername .LP .LP -すべての出力トークンは空白で区切ります。\f2arg\fP の中で空白を使用すると、実際の定位置パラメータに引数をマッピングしようとするときに、あいまいになります。 +٤Ƥνϥȡ϶Ƕڤޤ\f2arg\fP ǶѤȡºݤ֥ѥ᡼˰ޥåԥ󥰤褦ȤȤˡޤˤʤޤ .br .br -\f3注\fP: 将来のリリースでこの形式は変更される可能性があるため、\f3jps\fP 出力を解析するスクリプトは作成しないことをお勧めします。\f3jps\fP 出力を解析するスクリプトを作成すると、このツールの将来のリリースで、作成したスクリプトを変更する必要が予測されます。 +\f3\fP: Υ꡼Ǥηѹǽ뤿ᡢ\f3jps\fP νϤϤ륹ץȤϺʤȤ򤪴ᤷޤ\f3jps\fP ϤϤ륹ץȤȡΥġξΥ꡼ǡץȤѹɬפͽ¬ޤ .br .LP -.SH "例" -.LP - +.SH "" .LP .LP -この節では、\f3jps\fP コマンドの例を示します。 +Ǥϡ\f3jps\fP ޥɤ򼨤ޤ .LP .LP -ローカルホスト上で計測された JVM を一覧表示する場合: +ۥȾǷ¬줿 JVM ɽ: .LP .nf \f3 @@ -228,10 +212,10 @@ servername .LP .LP -リモートホスト上で計測された JVM を一覧表示する場合: +⡼ȥۥȾǷ¬줿 JVM ɽ: .LP .LP -この例では、\f3jstat\fP サーバーと、その内部 RMI レジストリまたは別の外部 \f3rmiregistry\fP プロセスのいずれかとが、リモートホストのデフォルトポート (ポート 1099) で実行されていると想定しています。また、ローカルホストが、リモートホストへの有効なアクセス権を持っていることも想定しています。この例には、\f2\-l\fP オプションも含まれ、クラス名または JAR ファイル名を詳細な形式で出力します。 +Ǥϡ\f3jstat\fP Сȡ RMI 쥸ȥޤ̤γ \f3rmiregistry\fP ץΤ줫Ȥ⡼ȥۥȤΥǥեȥݡ (ݡ 1099) Ǽ¹ԤƤꤷƤޤޤۥȤ⡼ȥۥȤؤͭʥäƤ뤳ȤꤷƤޤˤϡ\f2\-l\fP ץޤޤ졢饹̾ޤ JAR ե̾ܺ٤ʷǽϤޤ .LP .nf \f3 @@ -240,7 +224,7 @@ servername .br .fl -3002 /opt/jdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR +3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR .br .fl @@ -252,10 +236,10 @@ servername .LP .LP -RMI レジストリにデフォルトではないポートを使用して、リモートホスト上で計測された JVM を一覧表示する場合: +RMI 쥸ȥ˥ǥեȤǤϤʤݡȤѤơ⡼ȥۥȾǷ¬줿 JVM ɽ: .LP .LP -この例では、内部 RMI レジストリがポート 2002 にバインドされた \f3jstatd\fP サーバーが、リモートホスト上で実行していると想定しています。また、\f2\-m\fP オプションを使用して、一覧表示されたそれぞれの Java アプリケーションの \f2main\fP メソッドに渡される引数を組み込んでいます。 +Ǥϡ RMI 쥸ȥ꤬ݡ 2002 ˥Хɤ줿 \f3jstatd\fP С⡼ȥۥȾǼ¹ԤƤꤷƤޤޤ\f2\-m\fP ץѤơɽ줿줾 Java ץꥱ \f2main\fP ᥽åɤϤȤ߹Ǥޤ .LP .nf \f3 @@ -264,7 +248,7 @@ RMI レジストリにデフォルトではないポートを使用して、リ .br .fl -3002 /opt/jdk1.5.0/demo/jfc/Java2D/Java2Demo.JAR +3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR .br .fl @@ -273,21 +257,21 @@ RMI レジストリにデフォルトではないポートを使用して、リ .fi .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jstat(1) \- Java 仮想マシン統計データ監視ツール」 +jstat(1) \- Java ۥޥץǡƻġ .TP 2 o -「jstatd(1) \- 仮想マシン jstat デーモン」 +jstatd(1) \- ۥޥ jstat ǡ .TP 2 o -「rmiregistry(1) \- Java リモートオブジェクトレジストリ」 +rmiregistry(1) \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 index 0f4b3599cde..70b527f7e45 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,40 +19,38 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "02 Jun 2010" +.TH jrunscript 1 "14 Apr 2011" .LP -.SH "名前" -jrunscript \- コマンド行スクリプトシェル +.SH "̾" +jrunscript \- ޥɹԥץȥ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -引数 + .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -62,85 +60,77 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -オプションを使用する場合、コマンド名の直後に記述してください。 +ץѤ硢ޥ̾ľ˵ҤƤ .TP 3 arguments -引数を使用する場合、オプションまたはコマンド名の直後に記述してください。 +Ѥ硢ץޤϥޥ̾ľ˵ҤƤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jrunscript\fP はコマンド行スクリプトシェルです。 jrunscript は、対話型 (読み取り \- 評価 \- 出力) モードとバッチ (\-f オプション) モードの両方のスクリプト実行をサポートします。これはスクリプト言語に依存しないシェルです。デフォルトの使用言語は JavaScript ですが、\-l オプションを使えばほかの言語も指定できます。jrunscript は、Java とスクリプト言語との通信によって「探求的なプログラミング」スタイルをサポートします。 +\f3jrunscript\fP ϥޥɹԥץȥǤjrunscript ϡ÷ (ɤ߼ \- ɾ \- ) ⡼ɤȥХå (\-f ץ) ⡼ɤξΥץȼ¹Ԥ򥵥ݡȤޤϥץȸ˰¸ʤǤǥեȤλѸ JavaScript Ǥ\-l ץȤФۤθǤޤjrunscript ϡJava ȥץȸȤ̿ˤäơõŪʥץߥ󥰡ץ򥵥ݡȤޤ .LP .LP -\f3注:\fP このツールは\f3試験的なもの\fPであり、将来の JDK のバージョンでは\f3利用できなくなる\fP可能性があります。 +\f3:\fP Υġ\f3Ūʤ\fPǤꡢ JDK ΥСǤ\f3ѤǤʤʤ\fPǽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-classpath path -スクリプトからのアクセス対象となるユーザーの .class ファイルの検索場所を指定します。 +ץȤΥоݤȤʤ桼 .class եθꤷޤ .TP 3 \-cp path -\-classpath \f2path\fP と同義です。 +\-classpath \f2path\fP ƱǤ .TP 3 \-Dname=value -Java のシステムプロパティーを設定します。 +Java Υƥץѥƥꤷޤ .TP 3 \-J<flag> -jrunscript が実行されている Java 仮想マシンに <flag> を渡します。 +jrunscript ¹ԤƤ Java ۥޥ <flag> Ϥޤ .TP 3 \-l language -指定されたスクリプト言語を使用します。デフォルトでは JavaScript が使用されます。ほかのスクリプト言語を使用するには、対応するスクリプトエンジンの JAR ファイルも指定する必要があります。 それには、\-cp、\-classpath のいずれかのオプションを使用します。 +ꤵ줿ץȸѤޤǥեȤǤ JavaScript ѤޤۤΥץȸѤˤϡб륹ץȥ󥸥 JAR եꤹɬפޤˤϡ\-cp\-classpath Τ줫ΥץѤޤ .TP 3 \-e script -指定されたスクリプトを評価します。このオプションを使えば、コマンド行にすべてが指定された「1 行」スクリプトを実行できます。 +ꤵ줿ץȤɾޤΥץȤСޥɹԤˤ٤Ƥꤵ줿1 ԡץץȤ¹ԤǤޤ .TP 3 \-encoding encoding -スクリプトファイルの読み取り時に使用する文字エンコーディングを指定します。 +ץȥեɤ߼˻Ѥʸ󥳡ǥ󥰤ꤷޤ .TP 3 \-f script\-file -指定されたスクリプトファイルを評価します (バッチモード)。 +ꤵ줿ץȥեɾޤ (Хå⡼) .TP 3 \-f \- -標準入力からスクリプトを読み取り、それを評価します (対話型モード)。 +ɸϤ饹ץȤɤ߼ꡢɾޤ (÷⡼) .TP 3 \-help\ -ヘルプメッセージを出力して終了します。 +إץåϤƽλޤ .TP 3 \-?\ -ヘルプメッセージを出力して終了します。 +إץåϤƽλޤ .TP 3 \-q\ -利用可能なすべてのスクリプトエンジンを一覧表示したあと、終了します。 +Ѳǽʤ٤ƤΥץȥ󥸥ɽȡλޤ .RE .LP -.SH "引数" +.SH "" .LP .LP -[arguments...] が存在していて、かつ \f3\-e\fP、\f3\-f\fP のいずれのオプションも使用されなかった場合、最初の引数がスクリプトファイルとなり、他の引数が存在する場合はスクリプト引数として渡されます。[arguments..] が使用され、かつ \f3\-e\fP、\f3\-f\fP のいずれかのオプションが使用された場合、すべての [arguments..] がスクリプト引数として渡されます。[arguments..]、\f3\-e\fP、\f3\-f\fP がどれも存在しなかった場合は、対話型モードが使用されます。スクリプトからスクリプト引数を使用するには、「arguments」という名前の String 配列型のエンジン変数を使用します。 +[arguments...] ¸ߤƤơ \f3\-e\fP\f3\-f\fP ΤΥץѤʤä硢ǽΰץȥեȤʤꡢ¾ΰ¸ߤϥץȰȤϤޤ[arguments..] ȡ\f3\-e\fP ޤ \f3\-f\fP ѤƤ硢٤Ƥ [arguments..] ץȰȤϤޤ[arguments..]\f3\-e\fP\f3\-f\fP ɤ¸ߤʤäϡ÷⡼ɤѤޤץȤ饹ץȰѤˤϡargumentsפȤ̾ String 󷿤Υ󥸥ѿѤޤ .LP -.SH "例" +.SH "" .LP -\f3インラインスクリプトの実行\fP -.LP -.RS 3 - +.SS +饤󥹥ץȤμ¹ .LP .nf \f3 @@ -151,13 +141,10 @@ jrunscript \-e "cat('http://java.sun.com')" .fl \fP .fi -.RE .LP -\f3指定された言語を使用し、指定されたスクリプトファイルを評価する\fP -.LP -.RS 3 - +.SS +ꤵ줿Ѥꤵ줿ץȥեɾ .LP .nf \f3 @@ -166,42 +153,42 @@ jrunscript \-l js \-f test.js .fl \fP .fi -.RE .LP -\f3対話型モード\fP -.LP -.RS 3 - +.SS +÷⡼ .LP .nf \f3 .fl jrunscript .fl -js>print('hello world'); +js> print('Hello World\\n'); .fl -hello world +Hello World .fl -js>34 + 55 +js> 34 + 55 .fl -89 +89.0 .fl -js> thread(function() { print('hello world'); } +js> t = new java.lang.Thread(function() { print('Hello World\\n'); }) .fl -hello world +Thread[Thread\-0,5,main] +.fl +js> t.start() +.fl +js> Hello World +.fl + .fl js> .fl \fP .fi -.RE .LP -\f3スクリプト引数を指定してスクリプトファイルを実行する\fP -.LP -.RS 3 - +.SS +ץȰꤷƥץȥե¹Ԥ .LP .nf \f3 @@ -210,13 +197,12 @@ jrunscript test.js arg1 arg2 arg3 .fl \fP .fi -.RE .LP -test.js が実行対象となるスクリプトファイルであり、arg1、arg2、および arg3 はスクリプト引数としてスクリプトに渡されます。スクリプトは「arguments」配列を使ってこれらにアクセスできます。 -.SH "関連項目" +test.js ¹оݤȤʤ륹ץȥեǤꡢarg1arg2 arg3 ϥץȰȤƥץȤϤޤץȤϡargumentsȤäƤ˥Ǥޤ +.SH "Ϣ" .LP .LP -JavaScript が使用される場合、jrunscript は、最初のユーザー定義スクリプトを評価する前に、いくつかの組み込み関数や組み込みオブジェクトを初期化します。これらの JavaScript 組み込み機能については、jsdocs を参照してください。 +JavaScript Ѥ硢jrunscript ϡǽΥ桼ץȤɾˡĤȤ߹ߴؿȤ߹ߥ֥Ȥޤ JavaScript Ȥ߹ߵǽˤĤƤϡjsdocs 򻲾ȤƤ .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 index d61e4ec9b48..928334062e7 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 @@ -19,31 +19,29 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "02 Jun 2010" +.TH jsadebugd 1 "14 Apr 2011" .LP -.SH "名前" -jsadebugd \- サービスアビリティーエージェントデバッグデーモン +.SH "̾" +jsadebugd \- ӥӥƥȥǥХåǡ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -55,14 +53,12 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 pid -デバッグサーバーが接続するプロセスのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。単一のプロセスに接続できるデバッグサーバーのインスタンスは、1 つに制限されます。 +ǥХåС³ץΥץ ID Ǥץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) ѤޤñΥץ³ǤǥХåСΥ󥹥󥹤ϡ1 Ĥ¤ޤ .RE .LP @@ -74,37 +70,32 @@ executable .LP .RS 3 .TP 3 -コアダンプの作成元になる Java 実行可能ファイルです。 +פκˤʤ Java ¹ԲǽեǤ .RE .LP .RS 3 .TP 3 core -デバッグサーバーを接続するコアファイルです。 +ǥХåС³륳եǤ .RE .LP .RS 3 .TP 3 server\-id -複数のデバッグサーバーが同一のマシン上で実行している場合に必要になる、オプション固有の ID です。この ID は、リモートクライアントが、接続先のデバッグサーバーを特定するために使用する必要があります。この ID は、単一のマシン内で一意でなければなりません。 +ʣΥǥХåСƱΥޥǼ¹ԤƤɬפˤʤ롢ץͭ ID Ǥ ID ϡ⡼ȥ饤Ȥ³ΥǥХåСꤹ뤿˻Ѥɬפޤ ID ϡñΥޥǰդǤʤФʤޤ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jsadebugd\fP は、Java プロセスまたはコアファイルに接続し、デバッグサーバーとして機能します。jstack(1)、jmap(1)、および jinfo(1) などのリモートクライアントは、Java Remote Method Invocation (RMI) を使用しているサーバーに接続できます。\f2jsadebugd\fP を起動する前に、次のように指定して +\f3jsadebugd\fP ϡJava ץޤϥե³ǥХåСȤƵǽޤjstack(1)jmap(1) jinfo(1) ʤɤΥ⡼ȥ饤ȤϡJava Remote Method Invocation (RMI) ѤƤ륵С³Ǥޤ \f2jsadebugd\fP ưˡΤ褦ˤ .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi を起動する必要があります。 -.LP -.RS 3 - +http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi ưɬפޤ .LP .nf \f3 @@ -113,16 +104,18 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi を起動する .fl \fP .fi -.RE .LP .LP -ここで、\f2$JAVA_HOME\fP は、JDK のインストールディレクトリです。rmiregistry が起動していない場合、jsadebugd は標準 (1099) ポートの rmiregistry を内部で起動します。デバッグサーバーは、SIGINT を送信する (Ctrl+C を押す) ことにより停止できます。 +ǡ \f2$JAVA_HOME\fP JDK 󥹥ȡǥ쥯ȥǤrmiregistry ưƤʤ硢jsadebugd ɸ (1099) ݡȤ rmiregistry ǵưޤǥХåСϡSIGINT (Ctrl+C 򲡤) ȤˤߤǤޤ .LP .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。 jsadebugd は、現時点では、Windows プラットフォームでは使用できません。\fP +\f3\fP \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \f2PATH\fP ĶѿˤϡåȥץˤäƻѤ \f2jvm.dll\fP ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ .LP -.SH "関連項目" +.LP +򼨤ޤ \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 index f8e29461513..a8b3c8f59ab 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 @@ -19,41 +19,39 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "02 Jun 2010" +.TH jstack 1 "14 Apr 2011" .LP -.SH "名前" -jstack \- スタックトレース +.SH "̾" +jstack \- åȥ졼 .br .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .br .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .TP 2 o -既知のバグ +ΤΥХ .br .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -67,50 +65,43 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .LP -各オプションは互いに排他的です。オプションを使用する場合、コマンド名の直後に記述します。オプションを参照してください。 +ƥץϸߤ¾ŪǤץѤ硢ޥ̾ľ˵Ҥޤץ򻲾ȤƤ .LP .RS 3 .TP 3 pid -印刷するスタックトレースのプロセス ID です。プロセスは Java プロセスである必要があります。マシン上で実行している Java プロセスの一覧を取得するには、jps(1) を使用します。 +륹åȥ졼Υץ ID Ǥץ Java ץǤɬפޤޥǼ¹ԤƤ Java ץΰˤϡjps(1) Ѥޤ .RE .LP .RS 3 .TP 3 executable -コアダンプの作成元の Java 実行可能ファイルです。 +פκ Java ¹ԲǽեǤ .br .TP 3 core -印刷するスタックトレースのコアファイルです。 +륹åȥ졼ΥեǤ .br .TP 3 remote\-hostname\-or\-IP -リモートデバッグサーバー (jsadebugd(1) を参照) のホスト名または IP アドレスです。 +⡼ȥǥХåС (jsadebugd(1) 򻲾) Υۥ̾ޤ IP ɥ쥹Ǥ .br .TP 3 server\-id -複数のデバッグサーバーが同一のリモートホストで実行している場合の、オプション固有の ID です。 +ʣΥǥХåСƱΥ⡼ȥۥȤǼ¹ԤƤΡץͭ ID Ǥ .RE .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3jstack\fP は、指定された Java プロセスやコアファイルまたはリモートデバッグサーバーに対する Java スレッドの Java スタックトレースを印刷します。Java フレームごとに、フルクラス名、メソッド名、「bci」(バイトコードインデックス)、および行番号 (利用可能な場合) が印刷されます。\-m オプションを使用すると、jstack は、すべてのスレッドの Java フレームとネイティブフレームの両方を、「pc」(プログラムカウンタ) とともに印刷します。ネイティブフレームごとに、「pc」にもっとも近いネイティブシンボル (利用可能な場合) が印刷されます。C++ 分解名は分解解除されません。C++ 名を分解解除するには、このコマンドの出力を \f3c++filt\fP にパイプします。指定されたプロセスが 64 ビット VM 上で実行されている場合、\f2\-J\-d64\fP オプションを指定しなければならない場合があります。 次に例を示します。 +\f3jstack\fP ϡꤵ줿 Java ץ䥳եޤϥ⡼ȥǥХåСФ Java åɤ Java åȥ졼ޤJava ե졼ऴȤˡե륯饹̾᥽å̾bci(Хȥɥǥå)ӹֹ (Ѳǽʾ) ޤ\-m ץѤȡjstack ϡ٤ƤΥåɤ Java ե졼ȥͥƥ֥ե졼ξ򡢡pc(ץ५) ȤȤ˰ޤͥƥ֥ե졼ऴȤˡpcפˤäȤᤤͥƥ֥ܥ (Ѳǽʾ) ޤC++ ʬ̾ʬޤC++ ̾ʬˤϡΥޥɤνϤ \f3c++filt\fP ˥ѥפޤꤵ줿ץ 64 ӥå VM Ǽ¹ԤƤ硢\f2\-J\-d64\fP ץꤷʤФʤʤ礬ޤ򼨤ޤ .br -.LP -.RS 3 - .LP .nf \f3 @@ -119,51 +110,43 @@ jstack \-J\-d64 \-m pid .fl \fP .fi -.RE .LP .LP -\f3注 \- このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。Windows プラットフォーム上で使用可能な唯一の jstack 形式は、次のとおりです。\fP +\f3\fP \- Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤdbgeng.dll ¸ߤƤʤ Windows ƥǤϡDebugging Tools For Windowsפ򥤥󥹥ȡ뤷ʤȤΥġ뤬ưޤ󡣤ޤ \f2PATH\fP ĶѿˤϡåȥץˤäƻѤ \f2jvm.dll\fP ξꡢޤϥåץե뤬줿꤬ޤޤ褦ˤƤ .LP -.nf -\f3 -.fl -\fP\f3 jstack [\-l] pid \fP -.fl -.fi - .LP -.SH "オプション" +򼨤ޤ \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP - +.SH "ץ" .LP .RS 3 .TP 3 \-F -「jstack [\-l] pid」が応答しない場合にスタックダンプを強制します。 +jstack [\-l] pidפʤ˥åפޤ .TP 3 \-l -長形式のリスト。所有 java.util.concurrent の +ĹΥꥹȡͭ java.util.concurrent .na -\f2所有できるシンクロナイザ\fP @ +\f2ͭǤ륷󥯥ʥ\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.htmlの一覧など、ロックについての追加情報を印刷します。 +http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.htmlΰʤɡåˤĤƤɲþޤ .TP 3 \-m -混合モード (Java およびネイティブ C/C++ フレームの両方) のスタックトレースを印刷します。 +⡼ (Java ӥͥƥ C/C++ ե졼ξ) Υåȥ졼ޤ .TP 3 \-h -ヘルプメッセージを印刷します。 +إץåޤ .br .br .TP 3 \-help -ヘルプメッセージを印刷します。 +إץåϤޤ .br .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -181,11 +164,9 @@ jsadebugd(1) .RE .LP -.SH "既知のバグ" -.LP - +.SH "ΤΥХ" .LP .LP -混合モードのスタックトレース (\-m オプション使用) は、リモートデバッグサーバーでは機能しません。 +⡼ɤΥåȥ졼 (\-m ץ) ϡ⡼ȥǥХåСǤϵǽޤ .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 index 3ee68ea035d..8b3e670a49d 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 @@ -19,44 +19,46 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "02 Jun 2010" +.TH jstat 1 "14 Apr 2011" .LP -.SH "名前" -jstat \- Java 仮想マシン統計データ監視ツール +.SH "̾" +jstat \- Java ۥޥץǡƻġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -仮想マシン識別子 +ۥޥ̻ .TP 2 o -オプション -.br -\ \ \- 一般的なオプション -.br -\ \ \- 出力オプション +ץ +.RS 3 +.TP 2 +* +Ūʥץ +.TP 2 +* +ϥץ +.RE .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -66,56 +68,49 @@ o .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 generalOption -単独で使用する一般的なコマンド行オプションです (\-help、\-options、または \-version)。 +ñȤǻѤŪʥޥɹԥץǤ (\-help\-optionsޤ \-version) .TP 3 outputOptions -単一の \f2statOption\fP と、\-t、\-h、および \-J オプションのいずれかを組み合わせた、1 つまたは複数の出力オプションです。 +ñ \f2statOption\fP ȡ\-t\-h \-J ץΤ줫Ȥ߹碌1 ĤޤʣνϥץǤ .TP 3 vmid -ターゲットの Java 仮想マシン (JVM) を示す文字列である仮想マシン識別子です。一般的な構文は次のようになります。 +åȤ Java ۥޥ (JVM) 򼨤ʸǤ벾ۥޥ̻ҤǤŪʹʸϼΤ褦ˤʤޤ .nf \f3 .fl [\fP\f4protocol\fP\f3:][//]\fP\f4lvmid\fP[@\f2hostname\fP[:\f2port\fP]/\f2servername\fP] .fl .fi -vmid 文字列の構文の大部分は、URI の構文に対応しています。\f2vmid\fP は、ローカル JVM を表す単純な整数から、通信プロトコル、ポート番号、および他の実装固有の値を示す複雑な構造まで、さまざまに異なります。詳細は、「仮想マシン識別子」を参照してください。 +vmid ʸιʸʬϡURI ιʸбƤޤ\f2vmid\fP ϡ JVM ɽñ顢̿ץȥ롢ݡֹ桢¾μͭͤ򼨤ʣʹ¤ޤǡޤޤ˰ۤʤޤܺ٤ϡֲۥޥ̻ҡפ򻲾ȤƤ .TP 3 interval[s|ms] -秒 (s) またはミリ秒 (ms) のうち指定した単位でのサンプリング間隔です。デフォルトの単位はミリ秒です。\ 正の整数でなければなりません。\ これが指定された場合、\f3jstat\fP は interval ごとに出力を生成します。 + (s) ޤϥߥ (ms) Τꤷñ̤ǤΥץ󥰴ֳ֤ǤǥեȤñ̤ϥߥäǤǤʤФʤޤ󡣤줬ꤵ줿硢\f3jstat\fP interval Ȥ˽Ϥޤ .TP 3 count -表示するサンプル数です。デフォルト値は無限です。 つまり、\f3jstat\fP は、ターゲット JVM が終了するまで、または \f3jstat\fP コマンドが終了するまで、統計データを表示します。 正の整数値を使用する必要があります。 +ɽ륵ץǤǥե̵ͤ¤ǤĤޤꡢ\f3jstat\fP ϡå JVM λޤǡޤ \f3jstat\fP ޥɤλޤǡץǡɽޤǤʤФʤޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jstat\fP ツールは、設置されている HotSpot Java 仮想マシン (JVM) のパフォーマンス統計データを表示します。ターゲット JVM は、仮想マシン識別子、つまり下記の \f2vmid\fP オプションによって識別されます。 +\f3jstat\fP ġϡ֤Ƥ HotSpot Java ۥޥ (JVM) Υѥեޥץǡɽޤå JVM ϡۥޥ̻ҡĤޤ겼 \f2vmid\fP ץˤäƼ̤ޤ .LP .LP -\f3注\fP: このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3\fP: Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .br .LP .SS -仮想マシン識別子 -.LP -.RS 3 - +ۥޥ̻ .LP .LP -\f2vmid\fP 文字列の構文の大部分は、URI の構文に対応しています。 +\f2vmid\fP ʸιʸʬϡURI ιʸбƤޤ .LP .nf \f3 @@ -128,79 +123,73 @@ count .RS 3 .TP 3 protocol -通信プロトコルです。\f2protocol\fP が省略され、\f2hostname\fP が指定されていない場合、デフォルトのプロトコルが、プラットフォーム固有の最適化されたローカルプロトコルになります。\f2protocol\fP が省略され、\f2hostname\fP が指定されている場合は、デフォルトプロトコルは \f3rmi\fP になります。 +̿ץȥǤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤʤ硢ǥեȤΥץȥ뤬ץåȥեͭκŬ줿ץȥˤʤޤ\f2protocol\fP ά졢\f2hostname\fP ꤵƤϡǥեȥץȥ \f3rmi\fP ˤʤޤ .TP 3 lvmid -ターゲット JVM のローカル仮想マシン識別子です。\f2lvmid\fP は、システム上の JVM を一意に識別するプラットフォーム固有の値です。\f2lvmid\fP は、仮想マシン識別子の唯一の必須要素です。\f2lvmid\fP は、絶対というわけではありませんが、一般的にはターゲット JVM プロセスに対するオペレーティングシステムのプロセス識別子です。jps(1) コマンドを使用して、\f2lvmid\fP を指定できます。また、Unix プラットフォームでは\f3ps\fP コマンドを使用して、Windows では Windows タスクマネージャーを使用して、\f2lvmid\fP を指定できます。 +å JVM Υ벾ۥޥ̻ҤǤ\f2lvmid\fP ϡƥ JVM դ˼̤ץåȥեͭͤǤ\f2lvmid\fP ϡۥޥ̻ҤͣɬǤǤ\f2lvmid\fP ϡФȤ櫓ǤϤޤ󤬡Ūˤϥå JVM ץФ륪ڥ졼ƥ󥰥ƥΥץ̻ҤǤjps(1) ޥɤѤơ\f2lvmid\fP ǤޤޤUnix ץåȥեǤ\f3ps\fP ޥɤѤơWindows Ǥ Windows ޥ͡㡼Ѥơ\f2lvmid\fP Ǥޤ .TP 3 hostname -ターゲットホストを示すホスト名または IP アドレスです。\f2hostname\fP が省略されている場合は、ターゲットホストはローカルホストになります。 +åȥۥȤ򼨤ۥ̾ޤ IP ɥ쥹Ǥ\f2hostname\fP άƤϡåȥۥȤϥۥȤˤʤޤ .TP 3 port -リモートサーバーと通信するためのデフォルトポートです。\f2hostname\fP が省略されているか、\f2protocol\fP で最適化されたローカルプロトコルが指定されている場合、\f2port\fP は無視されます。そうでなければ、\f2port\fP パラメータの扱いは、実装によって異なります。デフォルトの \f3rmi\fP プロトコルの場合、\f2port\fP は、リモートホスト上の rmiregistry のポート番号を示します。\f2port\fP が省略され、\f2protocol\fP で \f3rmi\fP が指定されている場合、デフォルトの rmiregistry ポート (1099) が使用されます。 +⡼ȥС̿뤿ΥǥեȥݡȤǤ\f2hostname\fP άƤ뤫\f2protocol\fP ǺŬ줿ץȥ뤬ꤵƤ硢\f2port\fP ̵뤵ޤǤʤС\f2port\fP ѥ᡼ΰϡˤäưۤʤޤǥեȤ \f3rmi\fP ץȥξ硢\f2port\fP ϡ⡼ȥۥȾ rmiregistry Υݡֹ򼨤ޤ\f2port\fP ά졢\f2protocol\fP \f3rmi\fP ꤵƤ硢ǥեȤ rmiregistry ݡ (1099) Ѥޤ .TP 3 servername -このパラメータの扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。\f3rmi\fP プロトコルの場合は、このパラメータは、リモートホスト上の RMI リソースオブジェクトの名前を示します。 +Υѥ᡼ΰϡˤäưۤʤޤŬ줿ץȥξ硢Υեɤ̵뤵ޤ\f3rmi\fP ץȥξϡΥѥ᡼ϡ⡼ȥۥȾ RMI ꥽֥Ȥ̾򼨤ޤ .RE .LP -.RE -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jstat\fP コマンドは、一般的なオプションと出力オプションの 2 つのタイプのオプションをサポートしています。一般的なオプションを使用した場合、\f3jstat\fP は簡単な使用率およびバージョン情報を表示します。出力オプションでは、統計データ出力の内容と形式を指定します。 +\f3jstat\fP ޥɤϡŪʥץȽϥץ 2 ĤΥפΥץ򥵥ݡȤƤޤŪʥץѤ硢\f3jstat\fP ϴñʻΨӥСɽޤϥץǤϡץǡϤƤȷꤷޤ .br .LP .LP -\f3注\fP: すべてのオプションとその機能は、将来のリリースで変更または廃止される可能性があります。 +\f3\fP: ٤ƤΥץȤεǽϡΥ꡼ѹޤѻߤǽޤ .LP .SS -一般的なオプション +Ūʥץ .LP .LP -いずれかの一般的なオプションを指定した場合、他のオプションまたはパラメータは一切指定できません。 +줫ΰŪʥץꤷ硢¾Υץޤϥѥ᡼ϰڻǤޤ .LP .RS 3 .TP 3 \-help -ヘルプメッセージを表示します。 +إץåɽޤ .TP 3 \-version -バージョン情報を表示します。 +Сɽޤ .TP 3 \-options -統計データオプションを一覧表示します。下記の「出力オプション」の節を参照してください。 +ץǡץɽޤΡֽϥץפ򻲾ȤƤ .RE .LP .SS -出力オプション -.LP -.RS 3 - +ϥץ .LP .LP -一般的なオプションを指定しない場合に、出力オプションを指定できます。出力オプションは、\f3jstat\fP の出力の内容および形式を指定し、単一の \f2statOption\fP と、他のいずれかの出力オプション (\-h、\-t、および \-J) とで構成されます。\ \f2statOption\fP は最初に記述する必要があります。 +ŪʥץꤷʤˡϥץǤޤϥץϡ\f3jstat\fP νϤƤӷꤷñ \f2statOption\fP ȡ¾Τ줫νϥץ (\-h\-t \-J) Ȥǹޤ\f2statOption\fP Ϻǽ˵Ҥɬפޤ .LP .LP -出力は、各列が空白で区切られたテーブルの形式で構成されます。タイトルを記したヘッダー行に、各列の説明が記されます。 \f3\-h\fP オプションを使用して、ヘッダーを表示する頻度を設定します。\ 通常、列のヘッダー名はオプションが異なっている場合でも一貫しています。一般に、2 つのオプションで同じ名前の列が使用されていれば、2 つの列のデータソースは同じになります。 +Ϥϡ󤬶Ƕڤ줿ơ֥ηǹޤȥޤإåԤˤäơΰ̣狼ޤإåɽ٤ꤹˤϡ\f3\-h\fP ץѤޤΥإå̾ϰ̤ˡץ֤ǰݤƤޤ̤ˡ2 ĤΥץƱ̾󤬻ѤƤС2 ĤΥǡƱˤʤޤ .LP .LP -\f3\-t\fP オプションを使用すると、\f2Timestamp\fP というラベルの付いたタイムスタンプの列が、出力の最初の列として表示されます。\f2Timestamp\fP 列には、ターゲット JVM の起動からの経過時間が、秒単位で表示されます。タイムスタンプの精度は、さまざまな要因によって異なり、大量の負荷のかかったシステムでのスレッドスケジュールの遅延により変動します。 +\f3\-t\fP ץѤȡ \f2Timestamp Ȥ٥դॹפ󤬡\fP ϤκǽȤɽޤ \f2Timestamp\fP ˤϡå JVM εưηв֤ñ̤ɽޤॹפ٤ϡޤޤװˤäưۤʤꡢ̤٤ΤäƥǤΥåɥ塼ٱˤưޤ .LP .LP -\f2interval\fP および \f2count\fP パラメータを使用して、\f3jstat\fP がその出力を表示する頻度と回数をそれぞれ指定します。 +\f2interval\fP \f2count\fP ѥ᡼Ѥơ\f3jstat\fP νϤɽ٤Ȳ򤽤줾ꤷޤ .LP .LP -\f3注\fP: 将来のリリースでこの形式は変更される可能性があるため、\f3jstat\fP の出力を解析するスクリプトは作成しないことをお勧めします。\f3jstat\fP 出力を解析するスクリプトを作成する場合は、このツールの将来のリリースで、そのスクリプトを変更しなければならないことに留意してください。 +\f3\fP: Υ꡼Ǥηѹǽ뤿ᡢ\f3jstat\fP νϤϤ륹ץȤϺʤȤ򤪴ᤷޤ\f3jstat\fP ϤϤ륹ץȤϡΥġξΥ꡼ǡΥץȤѹʤФʤʤȤαդƤ .LP .RS 3 .TP 3 \-statOption -\f3jstat\fP が表示する統計データ情報を指定します。次の表には、利用可能なオプションが一覧表示されています。 特定のプラットフォームのインストールについて、オプションを一覧表示するには、一般的なオプションの \f3\-options\fP を使用します。 +\f3jstat\fP ɽץǡꤷޤɽˡѲǽʥץΰ򼨤ޤΥץåȥե।󥹥ȡΥץɽˤϡŪʥץ \f3\-options\fP Ѥޤ .br .br .LP @@ -232,7 +221,7 @@ servername .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -クラスローダーの動作に関する統計データ +饹ư˴ؤץǡ .br .di .nr a| \n(dn @@ -248,7 +237,7 @@ servername .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HotSpot Just\-in\-Time コンパイラの動作に関する統計データ +HotSpot Just\-in\-Time ѥư˴ؤץǡ .br .di .nr b| \n(dn @@ -264,7 +253,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクトされたヒープの動作に関する統計データ +١쥯Ȥ줿ҡפư˴ؤץǡ .br .di .nr c| \n(dn @@ -280,7 +269,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -世代ごとの容量と対応する領域に関する統計データ +头Ȥ̤бΰ˴ؤץǡ .br .di .nr d| \n(dn @@ -296,7 +285,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション統計データの概要 (\f3\-gcutil\fP と同じ) と、直前および現在 (適用可能な場合) のガベージコレクションイベントの原因 +١쥯ץǡγ (\f3\-gcutil\fP Ʊ) ȡľӸ (ŬѲǽʾ) Υ١쥯󥤥٥Ȥθ .br .di .nr e| \n(dn @@ -312,7 +301,7 @@ HotSpot Just\-in\-Time コンパイラの動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の動作に関する統計データ +New ư˴ؤץǡ .br .di .nr f| \n(dn @@ -328,7 +317,7 @@ New 世代の動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代のサイズと対応する領域に関する統計データ +New Υбΰ˴ؤץǡ .br .di .nr g| \n(dn @@ -344,7 +333,7 @@ New 世代のサイズと対応する領域に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代および Permanent 世代の動作に関する統計データ +Old 太 Permanent ư˴ؤץǡ .br .di .nr h| \n(dn @@ -360,7 +349,7 @@ Old 世代および Permanent 世代の動作に関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代のサイズに関する統計データ +Old Υ˴ؤץǡ .br .di .nr i| \n(dn @@ -376,7 +365,7 @@ Old 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代のサイズに関する統計データ +Permanent Υ˴ؤץǡ .br .di .nr j| \n(dn @@ -392,7 +381,7 @@ Permanent 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション統計データの概要 +١쥯ץǡγ .br .di .nr k| \n(dn @@ -408,7 +397,7 @@ Permanent 世代のサイズに関する統計データ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HotSpot コンパイル方法の統計データ +HotSpot ѥˡץǡ .br .di .nr l| \n(dn @@ -419,7 +408,7 @@ HotSpot コンパイル方法の統計データ .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wclass .if \n(80<\n(38 .nr 80 \n(38 @@ -448,7 +437,7 @@ HotSpot コンパイル方法の統計データ .80 .rm 80 .nr 81 0 -.nr 38 \w\f3表示内容\fP +.nr 38 \w\f3ɽ\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -486,7 +475,7 @@ HotSpot コンパイル方法の統計データ .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 259 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 248 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -503,7 +492,7 @@ HotSpot コンパイル方法の統計データ .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3表示内容\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3ɽ\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -716,30 +705,26 @@ HotSpot コンパイル方法の統計データ .if \n-(b.=0 .nr c. \n(.c-\n(d.-52 .TP 3 \-h n -\f2n\fP サンプル (出力行) ごとに列ヘッダーを表示。 ただし、\f2n\fP は正の整数値。デフォルト値は 0。 このとき、データの最初の行の上に列ヘッダーが表示される +\f2n\fP ץ (Ϲ) Ȥإåɽ \f2n\fP ͡ǥեͤ 0 ΤȤǡκǽιԤξإåɽ .TP 3 \-t n -タイムスタンプ列を出力の最初の列として表示。タイムスタンプは、ターゲット JVM の起動時からの経過時間 +ॹϤκǽȤɽॹפϡå JVM εưηв .TP 3 -\-J javaOption -\f2javaOption\fP を \f3java\fP アプリケーション起動ツールへ渡す。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。オプションの完全なリストについては、「java(1)」のドキュメントを参照してください。 +\-JjavaOption +\f2javaOption\fP \f3java\fP ץꥱưġϤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤץδʥꥹȤˤĤƤϡjava(1)פΥɥȤ򻲾ȤƤ .RE .LP -.RE .SS -statOption と出力 -.LP -.RS 3 - +statOption Ƚ .LP .LP -以降の表では、\f3jstat\fP が \f2statOption\fP ごとに出力する列について概要を示します。 +ʹߤɽǤϡ\f3jstat\fP \f2statOption\fP Ȥ˽ϤˤĤƳפ򼨤ޤ .br .LP .SS -\-class オプション +\-class ץ .LP .LP .TS @@ -770,7 +755,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ロードされたクラスの数 +ɤ줿饹ο .br .di .nr a| \n(dn @@ -786,7 +771,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ロードされた K バイト数 +ɤ줿 K Хȿ .br .di .nr b| \n(dn @@ -802,7 +787,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -アンロードされたクラスの数 +ɤ줿饹ο .br .di .nr c| \n(dn @@ -818,7 +803,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -アンロードされた K バイト数 +ɤ줿 K Хȿ .br .di .nr d| \n(dn @@ -834,7 +819,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -クラスのロードやアンロード処理に要した時間 +饹Υɤ䥢ɽפ .br .di .nr e| \n(dn @@ -845,9 +830,9 @@ statOption と出力 .nf .ll \n(34u .nr 80 0 -.nr 38 \wクラスローダーの統計データ +.nr 38 \w饹ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wLoaded .if \n(80<\n(38 .nr 80 \n(38 @@ -862,7 +847,7 @@ statOption と出力 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -886,7 +871,7 @@ statOption と出力 .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 313 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 298 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -903,11 +888,11 @@ statOption と出力 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'クラスローダーの統計データ\h'|\n(41u' +\&\h'|\n(40u'饹ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1002,7 +987,7 @@ statOption と出力 .LP .SS -\-compiler オプション +\-compiler ץ .LP .LP .TS @@ -1033,7 +1018,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -実行されたコンパイルタスクの数 +¹Ԥ줿ѥ륿ο .br .di .nr a| \n(dn @@ -1049,7 +1034,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -失敗したコンパイルタスクの数 +Ԥѥ륿ο .br .di .nr b| \n(dn @@ -1065,7 +1050,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -無効にされたコンパイルタスクの数 +̵ˤ줿ѥ륿ο .br .di .nr c| \n(dn @@ -1081,7 +1066,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイルタスクの実行に要した時間 +ѥ륿μ¹Ԥפ .br .di .nr d| \n(dn @@ -1097,7 +1082,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後に失敗したコンパイルのコンパイルタイプ +Ǹ˼ԤѥΥѥ륿 .br .di .nr e| \n(dn @@ -1113,7 +1098,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後に失敗したコンパイルのクラス名とメソッド +Ǹ˼ԤѥΥ饹̾ȥ᥽å .br .di .nr f| \n(dn @@ -1124,9 +1109,9 @@ statOption と出力 .nf .ll \n(34u .nr 80 0 -.nr 38 \wHotSpot Just\-In\-Time コンパイラの統計データ +.nr 38 \wHotSpot Just\-In\-Time ѥץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wCompiled .if \n(80<\n(38 .nr 80 \n(38 @@ -1143,7 +1128,7 @@ statOption と出力 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -1169,7 +1154,7 @@ statOption と出力 .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 349 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 334 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1186,11 +1171,11 @@ statOption と出力 .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'HotSpot Just\-In\-Time コンパイラの統計データ\h'|\n(41u' +\&\h'|\n(40u'HotSpot Just\-In\-Time ѥץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1302,7 +1287,7 @@ statOption と出力 .LP .SS -\-gc オプション +\-gc ץ .LP .LP .TS @@ -1333,7 +1318,7 @@ statOption と出力 .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr a| \n(dn @@ -1349,7 +1334,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr b| \n(dn @@ -1365,7 +1350,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (KB) +Survivor ΰ 0 λΨ (KB) .br .di .nr c| \n(dn @@ -1381,7 +1366,7 @@ Survivor 領域 0 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (KB) +Survivor ΰ 1 λΨ (KB) .br .di .nr d| \n(dn @@ -1397,7 +1382,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr e| \n(dn @@ -1413,7 +1398,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (KB) +Eden ΰλΨ (KB) .br .di .nr f| \n(dn @@ -1429,7 +1414,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr g| \n(dn @@ -1445,7 +1430,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (KB) +Old ΰλΨ (KB) .br .di .nr h| \n(dn @@ -1461,7 +1446,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr i| \n(dn @@ -1477,7 +1462,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (KB) +Permanent ΰλΨ (KB) .br .di .nr j| \n(dn @@ -1493,7 +1478,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr k| \n(dn @@ -1509,7 +1494,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr l| \n(dn @@ -1525,7 +1510,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr m| \n(dn @@ -1541,7 +1526,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr n| \n(dn @@ -1552,9 +1537,9 @@ Permanent 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wガベージコレクトされたヒープの統計データ +.nr 38 \w١쥯Ȥ줿ҡפץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0C .if \n(80<\n(38 .nr 80 \n(38 @@ -1589,9 +1574,9 @@ Permanent 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -1633,7 +1618,7 @@ Permanent 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 419 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 404 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1650,11 +1635,11 @@ Permanent 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'ガベージコレクトされたヒープの統計データ\h'|\n(41u' +\&\h'|\n(40u'١쥯Ȥ줿ҡפץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1850,7 +1835,7 @@ Permanent 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(m|u+\n(.Vu .if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -1906,7 +1891,7 @@ Permanent 領域の使用率 (KB) .LP .SS -\-gccapacity オプション +\-gccapacity ץ .LP .LP .TS @@ -1937,7 +1922,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最小容量 (KB) +New κǾ (KB) .br .di .nr a| \n(dn @@ -1953,7 +1938,7 @@ New 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最大容量 (KB) +New κ (KB) .br .di .nr b| \n(dn @@ -1969,7 +1954,7 @@ New 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の現在の容量 (KB) +New θߤ (KB) .br .di .nr c| \n(dn @@ -1985,7 +1970,7 @@ New 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr d| \n(dn @@ -2001,7 +1986,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr e| \n(dn @@ -2017,7 +2002,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr f| \n(dn @@ -2033,7 +2018,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最小容量 (KB) +Old κǾ (KB) .br .di .nr g| \n(dn @@ -2049,7 +2034,7 @@ Old 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最大容量 (KB) +Old κ (KB) .br .di .nr h| \n(dn @@ -2065,7 +2050,7 @@ Old 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の現在の容量 (KB) +Old θߤ (KB) .br .di .nr i| \n(dn @@ -2081,7 +2066,7 @@ Old 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr j| \n(dn @@ -2097,7 +2082,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最小容量 (KB) +Permanent κǾ (KB) .br .di .nr k| \n(dn @@ -2113,7 +2098,7 @@ Permanent 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最大容量 (KB) +Permanent κ (KB) .br .di .nr l| \n(dn @@ -2129,7 +2114,7 @@ Permanent 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の現在の容量 (KB) +Permanent θߤ (KB) .br .di .nr m| \n(dn @@ -2145,7 +2130,7 @@ Permanent 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr n| \n(dn @@ -2161,7 +2146,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr o| \n(dn @@ -2172,9 +2157,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wメモリープール世代および領域容量 +.nr 38 \w꡼ס太ΰ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -2211,9 +2196,9 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2257,7 +2242,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 493 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 478 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2274,11 +2259,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'メモリープール世代および領域容量\h'|\n(41u' +\&\h'|\n(40u'꡼ס太ΰ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -2522,7 +2507,7 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .fc .nr T. 1 .T# 1 @@ -2547,10 +2532,10 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gccause オプション +\-gccause ץ .LP .LP -このオプションは、\f3\-gcutil\fP オプションと同じガベージコレクション統計データの概要を表示しますが、最後のガベージコレクションイベントと (適用可能な場合は) 現在のガベージコレクションイベントの原因が含まれます。\f3\-gcutil\fP で一覧表示される列の他に、このオプションでは次の列が追加されます。 +Υץϡ\f3\-gcutil\fP ץƱ١쥯ץǡγפɽޤǸΥ١쥯󥤥٥Ȥ (ŬѲǽʾ) ߤΥ١쥯󥤥٥Ȥθޤޤޤ\f3\-gcutil\fP ǰɽ¾ˡΥץǤϼɲäޤ .LP .LP .TS @@ -2581,7 +2566,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最後のガベージコレクションの原因 +ǸΥ١쥯θ .br .di .nr a| \n(dn @@ -2597,7 +2582,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -現在のガベージコレクションの原因 +ߤΥ١쥯θ .br .di .nr b| \n(dn @@ -2608,9 +2593,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wGC イベントを含むガベージコレクション統計データ +.nr 38 \wGC ٥Ȥޤ६١쥯ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wLGCC .if \n(80<\n(38 .nr 80 \n(38 @@ -2619,7 +2604,7 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2637,7 +2622,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 516 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 501 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2654,11 +2639,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'GC イベントを含むガベージコレクション統計データ\h'|\n(41u' +\&\h'|\n(40u'GC ٥Ȥޤ६١쥯ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -2702,7 +2687,7 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gcnew オプション +\-gcnew ץ .LP .LP .TS @@ -2733,7 +2718,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr a| \n(dn @@ -2749,7 +2734,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr b| \n(dn @@ -2765,7 +2750,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (KB) +Survivor ΰ 0 λΨ (KB) .br .di .nr c| \n(dn @@ -2781,7 +2766,7 @@ Survivor 領域 0 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (KB) +Survivor ΰ 1 λΨ (KB) .br .di .nr d| \n(dn @@ -2797,7 +2782,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -最大殿堂入りしきい値 +Ʋꤷ .br .di .nr e| \n(dn @@ -2813,7 +2798,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -適切な Survivor サイズ (KB) +Ŭڤ Survivor (KB) .br .di .nr f| \n(dn @@ -2829,7 +2814,7 @@ Survivor 領域 1 の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr g| \n(dn @@ -2845,7 +2830,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (KB) +Eden ΰλΨ (KB) .br .di .nr h| \n(dn @@ -2861,7 +2846,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr i| \n(dn @@ -2877,7 +2862,7 @@ Eden 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr j| \n(dn @@ -2888,9 +2873,9 @@ Eden 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wNew 世代の統計データ +.nr 38 \wNew ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0C .if \n(80<\n(38 .nr 80 \n(38 @@ -2917,9 +2902,9 @@ Eden 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \w殿堂入りしきい値 +.nr 38 \wƲꤷ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -2953,7 +2938,7 @@ Eden 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 570 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 555 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2970,11 +2955,11 @@ Eden 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'New 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'New ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3042,7 +3027,7 @@ Eden 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'TT\h'|\n(41u'殿堂入りしきい値 +\&\h'|\n(40u'TT\h'|\n(41u'Ʋꤷ .ne \n(e|u+\n(.Vu .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3158,7 +3143,7 @@ Eden 領域の使用率 (KB) .LP .SS -\-gcnewcapacity オプション +\-gcnewcapacity ץ .LP .LP .TS @@ -3181,16 +3166,15 @@ Eden 領域の使用率 (KB) .rm 80 81 .nr 34 \n(.lu .eo -.am 80 +.am 81 .br .di a+ .35 .ft \n(.f .ll \n(34u*1u/3u -.if \n(.l<\n(80 .ll \n(80u +.if \n(.l<\n(81 .ll \n(81u .in 0 -NGCMN\ \ \ \ \ \ \ \ \ T}~T{ -New 世代の最小容量 (KB) +New κǾ (KB) .br .di .nr a| \n(dn @@ -3206,7 +3190,7 @@ New 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の最大容量 (KB) +New κ (KB) .br .di .nr b| \n(dn @@ -3222,7 +3206,7 @@ New 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -New 世代の現在の容量 (KB) +New θߤ (KB) .br .di .nr c| \n(dn @@ -3238,7 +3222,7 @@ New 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の最大容量 (KB) +Survivor ΰ 0 κ (KB) .br .di .nr d| \n(dn @@ -3254,7 +3238,7 @@ Survivor 領域 0 の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の現在の容量 (KB) +Survivor ΰ 0 θߤ (KB) .br .di .nr e| \n(dn @@ -3270,7 +3254,7 @@ Survivor 領域 0 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の最大容量 (KB) +Survivor ΰ 1 κ (KB) .br .di .nr f| \n(dn @@ -3286,7 +3270,7 @@ Survivor 領域 1 の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の現在の容量 (KB) +Survivor ΰ 1 θߤ (KB) .br .di .nr g| \n(dn @@ -3302,7 +3286,7 @@ Survivor 領域 1 の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の最大容量 (KB) +Eden ΰκ (KB) .br .di .nr h| \n(dn @@ -3318,7 +3302,7 @@ Eden 領域の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の現在の容量 (KB) +Eden ΰθߤ (KB) .br .di .nr i| \n(dn @@ -3334,7 +3318,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr j| \n(dn @@ -3345,13 +3329,15 @@ Eden 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wNew 世代領域サイズの統計データ +.nr 38 \wNew ΰ襵ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGCMX \ \ \ +.nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGC \ \ \ +.nr 38 \wNGCMX +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wNGC .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0CMX .if \n(80<\n(38 .nr 80 \n(38 @@ -3371,15 +3357,15 @@ Eden 領域の現在の容量 (KB) .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(b- .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(c- @@ -3408,7 +3394,7 @@ Eden 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 626 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 609 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3425,21 +3411,21 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'New 世代領域サイズの統計データ\h'|\n(41u' +\&\h'|\n(40u'New ΰ襵ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u' +\&\h'|\n(40u'NGCMN\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v -.nr 37 \n(40u +.nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u @@ -3451,7 +3437,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGCMX \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGCMX\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3467,7 +3453,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGC \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGC\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3593,7 +3579,7 @@ Eden 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .fc .nr T. 1 .T# 1 @@ -3609,11 +3595,11 @@ Eden 領域の現在の容量 (KB) .rm i+ .rm j+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-49 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-47 .LP .SS -\-gcold オプション +\-gcold ץ .LP .LP .TS @@ -3644,7 +3630,7 @@ Eden 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr a| \n(dn @@ -3660,7 +3646,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (KB) +Permanent ΰλΨ (KB) .br .di .nr b| \n(dn @@ -3676,7 +3662,7 @@ Permanent 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr c| \n(dn @@ -3692,7 +3678,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (KB) +Old ΰλΨ (KB) .br .di .nr d| \n(dn @@ -3708,7 +3694,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -3724,7 +3710,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -3740,7 +3726,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -3751,9 +3737,9 @@ Old 領域の使用率 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wOld および Permanent 世代の統計データ +.nr 38 \wOld Permanent ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wPC .if \n(80<\n(38 .nr 80 \n(38 @@ -3774,9 +3760,9 @@ Old 領域の使用率 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -3804,7 +3790,7 @@ Old 領域の使用率 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 668 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 651 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3821,11 +3807,11 @@ Old 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Old および Permanent 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Old Permanent ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3909,7 +3895,7 @@ Old 領域の使用率 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -3958,7 +3944,7 @@ Old 領域の使用率 (KB) .LP .SS -\-gcoldcapacity オプション +\-gcoldcapacity ץ .LP .LP .TS @@ -3989,7 +3975,7 @@ Old 領域の使用率 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最小容量 (KB) +Old κǾ (KB) .br .di .nr a| \n(dn @@ -4005,7 +3991,7 @@ Old 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の最大容量 (KB) +Old κ (KB) .br .di .nr b| \n(dn @@ -4021,7 +4007,7 @@ Old 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 世代の現在の容量 (KB) +Old θߤ (KB) .br .di .nr c| \n(dn @@ -4037,7 +4023,7 @@ Old 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の現在の容量 (KB) +Old ΰθߤ (KB) .br .di .nr d| \n(dn @@ -4053,7 +4039,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -4069,7 +4055,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -4085,7 +4071,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -4096,9 +4082,9 @@ Old 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wOld 世代の統計データ +.nr 38 \wOld ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wOGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -4119,9 +4105,9 @@ Old 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4149,7 +4135,7 @@ Old 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 710 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 693 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4166,11 +4152,11 @@ Old 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Old 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Old ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4254,7 +4240,7 @@ Old 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4303,7 +4289,7 @@ Old 領域の現在の容量 (KB) .LP .SS -\-gcpermcapacity オプション +\-gcpermcapacity ץ .LP .LP .TS @@ -4334,7 +4320,7 @@ Old 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最小容量 (KB) +Permanent κǾ (KB) .br .di .nr a| \n(dn @@ -4350,7 +4336,7 @@ Permanent 世代の最小容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の最大容量 (KB) +Permanent κ (KB) .br .di .nr b| \n(dn @@ -4366,7 +4352,7 @@ Permanent 世代の最大容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 世代の現在の容量 (KB) +Permanent θߤ (KB) .br .di .nr c| \n(dn @@ -4382,7 +4368,7 @@ Permanent 世代の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の現在の容量 (KB) +Permanent ΰθߤ (KB) .br .di .nr d| \n(dn @@ -4398,7 +4384,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr e| \n(dn @@ -4414,7 +4400,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr f| \n(dn @@ -4430,7 +4416,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr g| \n(dn @@ -4441,9 +4427,9 @@ Permanent 領域の現在の容量 (KB) .nf .ll \n(34u .nr 80 0 -.nr 38 \wPermanent 世代の統計データ +.nr 38 \wPermanent ץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wPGCMN .if \n(80<\n(38 .nr 80 \n(38 @@ -4464,9 +4450,9 @@ Permanent 領域の現在の容量 (KB) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4494,7 +4480,7 @@ Permanent 領域の現在の容量 (KB) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 752 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 735 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4511,11 +4497,11 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'Permanent 世代の統計データ\h'|\n(41u' +\&\h'|\n(40u'Permanent ץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4599,7 +4585,7 @@ Permanent 領域の現在の容量 (KB) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(f|u+\n(.Vu .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -4648,7 +4634,7 @@ Permanent 領域の現在の容量 (KB) .LP .SS -\-gcutil オプション +\-gcutil ץ .LP .LP .TS @@ -4679,7 +4665,7 @@ Permanent 領域の現在の容量 (KB) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ) +Survivor ΰ 0 λΨ (ߤ̤Фѡơ) .br .di .nr a| \n(dn @@ -4695,7 +4681,7 @@ Survivor 領域 0 の使用率 (現在の容量に対するパーセンテージ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ) +Survivor ΰ 1 λΨ (ߤ̤Фѡơ) .br .di .nr b| \n(dn @@ -4711,7 +4697,7 @@ Survivor 領域 1 の使用率 (現在の容量に対するパーセンテージ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Eden 領域の使用率 (現在の容量に対するパーセンテージ) +Eden ΰλΨ (ߤ̤Фѡơ) .br .di .nr c| \n(dn @@ -4727,7 +4713,7 @@ Eden 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Old 領域の使用率 (現在の容量に対するパーセンテージ) +Old ΰλΨ (ߤ̤Фѡơ) .br .di .nr d| \n(dn @@ -4743,7 +4729,7 @@ Old 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -Permanent 領域の使用率 (現在の容量に対するパーセンテージ) +Permanent ΰλΨ (ߤ̤Фѡơ) .br .di .nr e| \n(dn @@ -4759,7 +4745,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代の GC イベント数 +㤤 GC ٥ȿ .br .di .nr f| \n(dn @@ -4775,7 +4761,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -若い世代のガベージコレクション時間 +㤤Υ١쥯 .br .di .nr g| \n(dn @@ -4791,7 +4777,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -フルガベージコレクション時間 +ե륬١쥯 .br .di .nr h| \n(dn @@ -4807,7 +4793,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ガベージコレクション総時間 +١쥯 .br .di .nr i| \n(dn @@ -4818,9 +4804,9 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nf .ll \n(34u .nr 80 0 -.nr 38 \wガベージコレクション統計データの概要 +.nr 38 \w١쥯ץǡγ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0 .if \n(80<\n(38 .nr 80 \n(38 @@ -4845,9 +4831,9 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wフル GC イベント数 +.nr 38 \wե GC ٥ȿ .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -4879,7 +4865,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 802 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 785 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4896,11 +4882,11 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'ガベージコレクション統計データの概要\h'|\n(41u' +\&\h'|\n(40u'١쥯ץǡγ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5016,7 +5002,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'FGC\h'|\n(41u'フル GC イベント数 +\&\h'|\n(40u'FGC\h'|\n(41u'ե GC ٥ȿ .ne \n(h|u+\n(.Vu .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5067,7 +5053,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .LP .SS -\-printcompilation オプション +\-printcompilation ץ .LP .LP .TS @@ -5098,7 +5084,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -実行されたコンパイルタスクの数 +¹Ԥ줿ѥ륿ο .br .di .nr a| \n(dn @@ -5114,7 +5100,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -メソッドのバイトコードのバイト数 +᥽åɤΥХȥɤΥХȿ .br .di .nr b| \n(dn @@ -5130,7 +5116,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイル方法を特定するクラス名とメソッド名。クラス名では、名前空間の区切り文字として、「.」ではなく「/」が使用される。メソッド名は、指定されたクラス内のメソッドである。これらの 2 つのフィールドの形式は、HotSpot \- \f3XX:+PrintComplation\fP オプションと対応している +ѥˡꤹ륯饹̾ȥ᥽å̾饹̾Ǥϡ֤̾ζڤʸȤơ.פˡ/פѤ롣᥽å̾ϡꤵ줿饹Υ᥽åɤǤ롣 2 ĤΥեɤηϡHotSpot \- \f3XX:+PrintComplation\fP ץбƤ .br .di .nr c| \n(dn @@ -5141,24 +5127,24 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nf .ll \n(34u .nr 80 0 -.nr 38 \wHotSpot コンパイル方法の統計データ +.nr 38 \wHotSpot ѥˡץǡ .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w\f3列\fP +.nr 38 \w\f3\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wCompiled .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wサイズ +.nr 38 \w .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \w型 +.nr 38 \w .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wメソッド +.nr 38 \w᥽å .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \wコンパイルタイプ +.nr 38 \wѥ륿 .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -5178,7 +5164,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 828 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 811 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -5195,11 +5181,11 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'HotSpot コンパイル方法の統計データ\h'|\n(41u' +\&\h'|\n(40u'HotSpot ѥˡץǡ\h'|\n(41u' .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3列\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -5221,7 +5207,7 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'サイズ\h'|\n(41u' +\&\h'|\n(40u'\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -5235,13 +5221,13 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'型\h'|\n(41u'コンパイルタイプ +\&\h'|\n(40u'\h'|\n(41u'ѥ륿 .ne \n(c|u+\n(.Vu .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'メソッド\h'|\n(41u' +\&\h'|\n(40u'᥽å\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -5263,19 +5249,16 @@ Permanent 領域の使用率 (現在の容量に対するパーセンテージ) .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .LP -.SS - -.LP -.SH "" +.SH "" .LP .LP -この項では、21891 の \f2lvmid\fP を持つローカル JVM を監視する例を示します。 +ιǤϡ21891 \f2lvmid\fP ĥ JVM ƻ뤹򼨤ޤ .LP .SS -gcutil オプションの使用 +gcutil ץλ .LP .LP -この例は、\f2lvmid\fP 21891 に接続して、250 ミリ秒間隔で 7 つのサンプルを取得し、\f3\-gcutil\fP オプションでの指定に従って出力を表示します。 +ϡ\f2lvmid\fP 21891 ³ơ250 ߥôֳ֤ 7 ĤΥץ\f3\-gcutil\fP ץǤλ˽äƽϤɽޤ .LP .nf \f3 @@ -5320,13 +5303,13 @@ gcutil オプションの使用 .LP .LP -この例の出力は、若い世代のコレクションが 3 番目と 4 番目のサンプル間で行われたことを示しています。コレクションには 0.001 秒かかっており、オブジェクトが Eden 領域 (E) から Old 領域 (O) に昇格したため、Old 領域の使用率は 9.49% から 9.51% に増加しています。Survivor 領域は、コレクション前は 12.44% が使用されていましたが、コレクション後は 7.74% しか使用されていません。 +νϤϡ㤤Υ쥯 3 ܤ 4 ܤΥץ֤ǹԤ줿Ȥ򼨤Ƥޤ쥯ˤ 0.001 ääƤꡢ֥Ȥ Eden ΰ (E) Old ΰ (O) ˾ʤᡢOld ΰλΨ 9.49% 9.51% äƤޤSurvivor ΰϡ쥯 12.44% ѤƤޤ쥯 7.74% ѤƤޤ .LP .SS -列ヘッダー文字列の繰り返し +إåʸη֤ .LP .LP -この例は、\f2lvmid\fP 21891 に接続して、250 ミリ秒間隔でサンプルを取得し、\f3\-gcutil\fP オプションでの指定に従って出力を表示します。さらに、\f3\-h3\fP オプションを使用して、データが 3 行表示されるごとに列ヘッダーを出力します。 +ϡ\f2lvmid\fP 21891 ³ơ250 ߥôֳ֤ǥץ\f3\-gcutil\fP ץǤλ˽äƽϤɽޤˡ\f3\-h3\fP ץѤơǡ 3 ɽ뤴ȤإåϤޤ .LP .nf \f3 @@ -5379,16 +5362,16 @@ gcutil オプションの使用 .LP .LP -この例では、ヘッダー文字列の繰り返しが見られるほかにも、2 番目と 3 番目のサンプル間で Young GC が行われたことがわかります。この継続時間は 0.001 秒でした。このコレクションでは、Survivor 領域 0 の使用率 (S0U) が適切な Survivor サイズ (DSS) を超過することになるライブデータが検出されました。この結果、オブジェクトは、Old 世代 (この出力には非表示) へ昇格され、殿堂入りしきい値 (TT) が、31 から 2 へ降格されました。 +Ǥϡإåʸη֤ۤˤ⡢2 ܤ 3 ܤΥץ֤ Young GC Ԥ줿Ȥ狼ޤη³֤ 0.001 äǤΥ쥯ǤϡSurvivor ΰ 0 λΨ (S0U) Ŭڤ Survivor (DSS) Ķ᤹뤳Ȥˤʤ饤֥ǡФޤη̡֥ȤϡOld (νϤˤɽ) ؾʤ졢Ʋꤷ (TT) 31 2 ع߳ʤޤ .LP .LP -別のコレクションが、5 番目と 6 番目のサンプル間で行われています。このコレクションでは、Survivor がほとんど見られず、殿堂入りしきい値を 31 に戻しました。 +̤Υ쥯󤬡5 ܤ 6 ܤΥץ֤ǹԤƤޤΥ쥯ǤϡSurvivor ۤȤɸ줺Ʋꤷͤ 31 ᤷޤ .LP .SS -サンプルごとのタイムスタンプの挿入 +ץ뤴ȤΥॹפ .LP .LP -この例は、\f2lvmid\fP 21891 へ接続し、250 ミリ秒間隔で 3 つのサンプルを取得しています。\f3\-t\fP オプションを使用して、最初の列にサンプルごとのタイムスタンプを表示しています。 +ϡ\f2lvmid\fP 21891 ³250 ߥôֳ֤ 3 ĤΥץƤޤ\f3\-t\fP ץѤơǽ˥ץ뤴ȤΥॹפɽƤޤ .LP .nf \f3 @@ -5417,13 +5400,13 @@ Timestamp OGCMN OGCMX OGC OC YGC FGC .LP .LP -\f2Timestamp\fP 列には、ターゲット JVM の起動時からの経過時間が、秒単位でレポートされています。さらに、\f3\-gcoldcapacity\fP 出力では、割り当て要求または昇格要求あるいはその両方を満たすためにヒープが拡張するごとに、Old 世代の容量 (OGC) と Old 領域の容量 (OC) とが増加していることがわかります。Old 世代の容量 (OGC) は、81 番目のフル GC (FGC) 後に、11696 KB から 13820 KB へ増加しています。Old 世代 (および領域) の最大容量は、60544 KB (OGCMX) なので、まだ拡張できる余裕が残されています。 +\f2Timestamp\fP ˤϡå JVM εưηв֤ñ̤ǥݡȤƤޤˡ\f3\-gcoldcapacity\fP ϤǤϡ׵ޤϾ׵ᤢ뤤Ϥξ˥ҡפĥ뤴ȤˡOld (OGC) Old ΰ (OC) ȤäƤ뤳Ȥ狼ޤOld (OGC) ϡ81 ܤΥե GC (FGC) ˡ11696 KB 13820 KB äƤޤOld (ΰ) κ̤ϡ60544 KB (OGCMX) ʤΤǡޤĥǤ;͵ĤƤޤ .LP .SS -リモート JVM のインストゥルメンテーションの監視 +⡼ JVM Υ󥹥ȥơδƻ .LP .LP -この例は、\f3\-gcutil\fP オプションを使用して、\f2remote.domain\fP というシステム上の \f2lvmid\fP 40496 に接続し、サンプルを秒単位で無期限に取得しています。 +ϡ\f3\-gcutil\fP ץѤơ\f2remote.domain\fP Ȥƥ \f2lvmid\fP 40496 ³ץñ̵̤¤˼Ƥޤ .LP .nf \f3 @@ -5440,24 +5423,23 @@ Timestamp OGCMN OGCMX OGC OC YGC FGC .LP .LP -\f2lvmid\fP は、リモートホストの名前と結合されて、\f240496@remote.domain\fP の \f2vmid\fP を構成しています。結果として、この \f2vmid\fP は、\f3rmi\fP プロトコルを使用して、リモートホスト上のデフォルトの \f3jstatd\fP サーバーと通信します。\f3jstatd\fP サーバーは、\f3rmiregistry\fP を使用して、デフォルトの \f3rmiregistry\fP ポート (ポート 1099) にバインドされた \f2remote.domain\fP に配置されれます。 +\f2lvmid\fP ϡ⡼ȥۥȤ̾ȷ礵ơ\f240496@remote.domain\fP \f2vmid\fP Ƥޤ̤Ȥơ \f2vmid\fP ϡ\f3rmi\fP ץȥѤơ⡼ȥۥȾΥǥեȤ \f3jstatd\fP С̿ޤ\f3jstatd\fP Сϡ\f3rmiregistry\fP ѤơǥեȤ \f3rmiregistry\fP ݡ (ݡ 1099) ˥Хɤ줿 \f2remote.domain\fP ֤ޤ .LP -.RE -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jps(1) \- Java 仮想マシンプロセスステータスツール」 +jps(1) \- Java ۥޥץơġ .TP 2 o -「jstatd(1) \- 仮想マシン jstat デーモン」 +jstatd(1) \- ۥޥ jstat ǡ .TP 2 o -「rmiregistry(1) \- Java リモートオブジェクトレジストリ」 +rmiregistry(1) \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 index 4aca5a7fe63..af3fc39b9db 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 @@ -19,43 +19,41 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "02 Jun 2010" +.TH jstatd 1 "14 Apr 2011" .LP -.SH "名前" -jstatd \- 仮想マシン jstat デーモン +.SH "̾" +jstatd \- ۥޥ jstat ǡ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -パラメータ +ѥ᡼ .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -セキュリティー +ƥ .TP 2 o -リモートインタフェース +⡼ȥ󥿥ե .TP 2 o -例 + .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -68,72 +66,64 @@ jstatd [ \fP\f4options\fP\f3 ]\fP .fi .LP -.SH "パラメータ" -.LP - +.SH "ѥ᡼" .LP .RS 3 .TP 3 options -コマンド行オプション。オプションは任意の順序で指定できます。重複または矛盾するオプションがある場合、最後に指定したオプションが優先されます。 +ޥɹԥץ󡣥ץǤդνǻǤޤʣޤ̷⤹륪ץ󤬤硢Ǹ˻ꤷץͥ褵ޤ .RE .LP -.SH " 説明" -.LP - +.SH " " .LP .LP -\f3jstatd\fP ツールは、計測された HotSpot Java 仮想マシン (JVM) の作成と終了を監視し、ローカルシステム上で実行している Java 仮想マシンに、リモート監視ツールが接続できるようにするためのインタフェースを提供する RMI サーバーアプリケーションです。 +\f3jstatd\fP ġϡ¬줿 HotSpot Java ۥޥ (JVM) κȽλƻ뤷륷ƥǼ¹ԤƤ Java ۥޥˡ⡼ȴƻġ뤬³Ǥ褦ˤ뤿Υ󥿥ե󶡤 RMI СץꥱǤ .LP .LP -\f3jstatd\fP サーバーでは、ローカルホストに RMI レジストリが存在することが必要になります。\f3jstatd\fP サーバーは、デフォルトポートまたは \f2\-p port\fP オプションで指定されたポート上の RMI レジストリに接続しようとします。RMI レジストリが見つからない場合、\f2\-p port\fP オプションで指定されたポート、または \f2\-p port\fP が省略されている場合は、デフォルト RMI レジストリにバインドされた \f3jstatd\fP アプリケーション内に、1 つの RMI レジストリが作成されます。内部 RMI レジストリの作成は、\f2\-nr\fP オプションを指定することによって禁止することができます。 +\f3jstatd\fP СǤϡۥȤ RMI 쥸ȥ꤬¸ߤ뤳Ȥɬפˤʤޤ\f3jstatd\fP СϡǥեȥݡȤޤ \f2\-p port\fP ץǻꤵ줿ݡȾ RMI 쥸ȥ³褦ȤޤRMI 쥸ȥ꤬Ĥʤ硢\f2\-p port\fP ץǻꤵ줿ݡȡޤ \f2\-p port\fP άƤϡǥե RMI 쥸ȥ˥Хɤ줿 \f3jstatd\fP ץꥱˡ1 Ĥ RMI 쥸ȥ꤬ޤ RMI 쥸ȥκϡ\f2\-nr\fP ץꤹ뤳Ȥˤäƶػߤ뤳ȤǤޤ .LP .LP -\f3注:\fP このユーティリティーはサポート対象外であり、将来の JDK のバージョンでは利用できなくなる可能性があります。現在、Windows 98 および Windows Me プラットフォームでは使用できません。 +\f3:\fP Υ桼ƥƥϥݡоݳǤꡢ JDK ΥСǤѤǤʤʤǽޤߡWindows 98 Windows Me ץåȥեǤϻѤǤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP -\f3jstatd\fP コマンドは次のオプションをサポートしています。 +\f3jstatd\fP ޥɤϼΥץ򥵥ݡȤƤޤ .LP .RS 3 .TP 3 \-nr -既存の RMI レジストリが見つからない場合、\f2jstatd\fP プロセス内に内部 RMI レジストリを作成しないようにします。 +¸ RMI 쥸ȥ꤬Ĥʤ硢\f2jstatd\fP ץ RMI 쥸ȥʤ褦ˤޤ .TP 3 \-p\ port -RMI レジストリがあると予想されるポート番号です。 見つからない場合は、\f2\-nr\fP が指定されていなければ作成されます。 +RMI 쥸ȥ꤬ͽۤݡֹǤ Ĥʤϡ\f2\-nr\fP ꤵƤʤкޤ .TP 3 \-n\ rminame -RMI レジストリにおいて、リモート RMI オブジェクトがバインドされる名前です。デフォルト名は \f2JStatRemoteHost\fP です。複数の \f3jstatd\fP サーバーが同じホスト上で起動している場合、各サーバーのエクスポートした RMI オブジェクトの名前は、このオプションを指定することによって、一意の名前にすることができます。ただし、このオプションを使用する場合、監視クライアントの \f2hostid\fP および \f2vmid\fP 文字列に、その一意のサーバー名を含める必要があります。 +RMI 쥸ȥˤơ⡼ RMI ֥ȤХɤ̾Ǥǥե̾ \f2JStatRemoteHost\fP Ǥʣ \f3jstatd\fP СƱۥȾǵưƤ硢ƥСΥݡȤ RMI ֥Ȥ̾ϡΥץꤹ뤳Ȥˤäơդ̾ˤ뤳ȤǤޤΥץѤ硢ƻ륯饤Ȥ \f2hostid\fP \f2vmid\fP ʸˡΰդΥС̾ޤɬפޤ .TP 3 \-Joption -\f3javac\fP が呼び出す \f3java\fP 起動ツールに、\f2option\fP を渡します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 +\f3javac\fP ƤӽФ \f3java\fP ưġˡ\f2option\fP ϤޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ .RE .LP -.SH "セキュリティー" -.LP - +.SH "ƥ" .LP .LP -\f3jstatd\fP サーバーは、有効なネイティブアクセス権を持つ JVM だけを監視できます。したがって、\f3jstatd\fP プロセスは、ターゲット JVM と同じユーザー資格で実行している必要があります。一部のユーザー資格は、Unix(TM) ベースのシステムにおける \f2root\fP ユーザーのように、システム上の任意の JVM によってエクスポートされたインストゥルメンテーションへのアクセス権を持っています。このような資格で実行している \f3jstatd\fP プロセスは、システム上のすべての JVM を監視できますが、セキュリティー上の別の問題が起こります。 +\f3jstatd\fP Сϡͭʥͥƥ֥ JVM ƻǤޤäơ\f3jstatd\fP ץϡå JVM Ʊ桼ʤǼ¹ԤƤɬפޤΥ桼ʤϡUNIX(TM) ١Υƥˤ \f2root\fP 桼Τ褦ˡƥǤդ JVM ˤäƥݡȤ줿󥹥ȥơؤΥäƤޤΤ褦ʻʤǼ¹ԤƤ \f3jstatd\fP ץϡƥΤ٤Ƥ JVM ƻǤޤƥ̤꤬ޤ .LP .LP -\f3jstatd\fP サーバーは、リモートクライアントの認証を一切与えません。そのため、\f3jstatd\fP サーバープロセスを実行すると、\f3jstatd\fP プロセスがアクセス権を持つすべての JVM によるインストゥルメンテーションのエクスポートを、ネットワーク上のすべてのユーザーに公開することになります。この無防備な状態は、環境的に望ましくない場合があります。 特に実稼働環境または安全でないネットワークでは、\f3jstatd\fP プロセスを起動する前に、ローカルセキュリティーポリシーを検討する必要があります。 +\f3jstatd\fP Сϡ⡼ȥ饤ȤǧڤͿޤ󡣤Τᡢ\f3jstatd\fP Сץ¹Ԥȡ\f3jstatd\fP ץĤ٤Ƥ JVM ˤ륤󥹥ȥơΥݡȤ򡢥ͥåȥΤ٤ƤΥ桼˸뤳Ȥˤʤޤ̵ʾ֤ϡĶŪ˾ޤʤ礬ޤ ä˼²ƯĶޤϰǤʤͥåȥǤϡ\f3jstatd\fP ץưˡ륻ƥݥꥷƤɬפޤ .LP .LP -\f3jstatd\fP サーバーは、他のセキュリティーマネージャーがインストールされていない場合には、RMISecurityPolicy のインスタンスをインストールします。 そのため、セキュリティーポリシーファイルを指定する必要があります。ポリシーファイルは、デフォルトポリシー実装の +\f3jstatd\fP Сϡ¾Υƥޥ͡㡼󥹥ȡ뤵ƤʤˤϡRMISecurityPolicy Υ󥹥󥹤򥤥󥹥ȡ뤷ޤ Τᡢƥݥꥷեꤹɬפޤݥꥷեϡǥեȥݥꥷ .na -\f2ポリシーファイルの構文\fP @ +\f2ݥꥷեιʸ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.htmlに準拠する必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html˽򤹤ɬפޤ .LP .LP -次のポリシーファイルの場合、\f3jstatd\fP サーバーは一切のセキュリティー例外を使用せずに実行できます。このポリシーは、すべてのコードベースへのあらゆるアクセス権を認めるポリシーよりも自由度は低いですが、\f3jstatd\fP サーバーを実行するために最低限必要なアクセス権しか認めないポリシーよりも自由度は高くなっています。 +Υݥꥷեξ硢\f3jstatd\fP СϰڤΥƥ㳰Ѥ˼¹ԤǤޤΥݥꥷϡ٤ƤΥɥ١ؤΤ륢ǧݥꥷ⼫ͳ٤㤤Ǥ\f3jstatd\fP С¹Ԥ뤿˺ɬפʥǧʤݥꥷ⼫ͳ٤Ϲ⤯ʤäƤޤ .LP .nf \f3 @@ -155,7 +145,7 @@ grant codebase "file:${java.home}/../lib/tools.jar" {\fP .LP .LP -このポリシーを使用するには、このテキストを \f2jstatd.all.policy\fP というファイルにコピーし、次のように \f3jstatd\fP サーバーを実行します。 +ΥݥꥷѤˤϡΥƥȤ \f2jstatd.all.policy\fP Ȥե˥ԡΤ褦 \f3jstatd\fP С¹Ԥޤ .LP .nf \f3 @@ -169,27 +159,23 @@ jstatd \-J\-Djava.security.policy=jstatd.all.policy\fP .LP .LP -より厳しいセキュリティーを実施するサイトの場合、カスタムポリシーファイルを使用して、特定の信頼できるホストまたはネットワークにアクセスを制限することができます。 ただし、このような方法は、IP アドレスの盗聴攻撃を受けやすくなります。セキュリティーの問題について、カスタマイズしたポリシーファイルでも対処できない場合は、\f3jstatd\fP サーバーを実行せずに、\f3jstat\fP と \f3jps\fP ツールをローカルで使用することがもっとも安全な方法になります。 +긷ƥ»ܤ륵Ȥξ硢ݥꥷեѤơοǤۥȤޤϥͥåȥ˥¤뤳ȤǤޤ Τ褦ˡϡIP ɥ쥹İ䤹ʤޤƥˤĤơޥݥꥷեǤнǤʤϡ\f3jstatd\fP С¹Ԥˡ\f3jstat\fP \f3jps\fP ġǻѤ뤳ȤäȤˡˤʤޤ .LP -.SH "リモートインタフェース" -.LP - +.SH "⡼ȥ󥿥ե" .LP .LP -\f3jstatd\fP プロセスがエクスポートするインタフェースは、独自に開発したものであり変更される予定です。ユーザーおよび開発者は、このインタフェースへの書き込みを行わないでください。 +\f3jstatd\fP ץݡȤ륤󥿥եϡȼ˳ȯΤǤѹͽǤ桼ӳȯԤϡΥ󥿥եؤν񤭹ߤԤʤǤ .LP -.SH "例" -.LP - +.SH "" .LP .LP -次に \f3jstatd\fP を起動する例を紹介します。\f3jstatd\fP スクリプトによって、サーバーはバックグラウンドで自動的に起動します。 + \f3jstatd\fP ưҲ𤷤ޤ\f3jstatd\fP ץȤˤäơСϥХå饦ɤǼưŪ˵ưޤ .LP .SS -内部 RMI レジストリの使用 + RMI 쥸ȥλ .LP .LP -この例は、内部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。この例では、デフォルトの RMI レジストリポート (ポート 1099) には、他のサーバーはバインドされていないと想定しています。 +ϡ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤǤϡǥեȤ RMI 쥸ȥݡ (ݡ 1099) ˤϡ¾ΥСϥХɤƤʤꤷƤޤ .LP .nf \f3 @@ -201,10 +187,10 @@ jstatd \-J\-Djava.security.policy=all.policy .LP .SS -外部 RMI レジストリの使用 + RMI 쥸ȥλ .LP .LP -この例は、外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -218,7 +204,7 @@ jstatd \-J\-Djava.security.policy=all.policy .LP .LP -この例は、ポート 2020 の外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡݡ 2020 γ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -232,7 +218,7 @@ jstatd \-J\-Djava.security.policy=all.policy \-p 2020 .LP .LP -この例は、AlternateJstatdServerName の名前にバインドされた、ポート 2020 の外部 RMI レジストリを使用した \f3jstatd\fP の起動を表しています。 +ϡAlternateJstatdServerName ̾˥Хɤ줿ݡ 2020 γ RMI 쥸ȥѤ \f3jstatd\fP εưɽƤޤ .LP .nf \f3 @@ -246,10 +232,10 @@ jstatd \-J\-Djava.security.policy=all.policy \-p 2020 \-n AlternateJstatdServerN .LP .SS -インプロセス RMI レジストリの作成の禁止 +ץ RMI 쥸ȥκζػ .LP .LP -この例は、RMI レジストリが見つからない場合に RMI レジストリを作成しない \f3jstatd\fP の起動を表しています。この例では、RMI レジストリがすでに実行していると想定しています。実行していない場合は、該当するエラーメッセージが表示されます。 +ϡRMI 쥸ȥ꤬Ĥʤ RMI 쥸ȥʤ \f3jstatd\fP εưɽƤޤǤϡRMI 쥸ȥ꤬Ǥ˼¹ԤƤꤷƤޤ¹ԤƤʤϡ륨顼åɽޤ .LP .nf \f3 @@ -261,10 +247,10 @@ jstatd \-J\-Djava.security.policy=all.policy \-nr .LP .SS -RMI ログ機能の有効化 +RMI ǽͭ .LP .LP -この例は、RMI ログ機能を有効にした \f3jstatd\fP の起動を表しています。この方法は、トラブルシューティングまたはサーバー活動の監視に役立ちます。 +ϡRMI ǽͭˤ \f3jstatd\fP εưɽƤޤˡϡȥ֥륷塼ƥ󥰤ޤϥСưδƻΩޤ .LP .nf \f3 @@ -275,25 +261,25 @@ jstatd \-J\-Djava.security.policy=all.policy \-J\-Djava.rmi.server.logCalls=true .fi .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -「java(1) \- Java アプリケーション起動ツール」 +java(1) \- Java ץꥱưġ .TP 2 o -「jps(1) \- Java 仮想マシンプロセスステータスツール」 +jps(1) \- Java ۥޥץơġ .TP 2 o -「jstat(1) \- Java 仮想マシン統計データ監視ツール」 +jstat(1) \- Java ۥޥץǡƻġ .TP 2 o -「 + .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- Java リモートオブジェクトレジストリ」 +http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- Java ⡼ȥ֥ȥ쥸ȥ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 new file mode 100644 index 00000000000..f31c622f479 --- /dev/null +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 @@ -0,0 +1,126 @@ +." Copyright (c) 2008, 2010, 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. +." +.TH jvisualvm 1 "14 Apr 2011" + +.LP +.SH "̾" +\f2jvisualvm\fP \- Java ۥޥδƻ롢ȥ֥륷塼ƥ󥰡ӥץե󥰥ġ +.LP +.RS 3 +.TP 2 +o + +.TP 2 +o +ѥ᡼ +.TP 2 +o + +.TP 2 +o +ץ +.TP 2 +o +ˡ +.TP 2 +o +Ϣ +.RE + +.LP +.SH "" +.LP +.nf +\f3 +.fl + \fP\f3jvisualvm\fP [ \f2options\fP ] +.fl +.fi + +.LP +.SH "ѥ᡼" +.LP +.LP +ץѤ硢ޥ̾ľ˵ҤƤץλ˷ޤϤޤΥץŬѤѥ᡼ˤĤƤϡΤȤΡ֥ץפ򻲾ȤƤ +.LP +.SH " " +.LP +.LP +Java VisualVM ϡꤵ줿 Java ۥޥ (JVM(*)) Java ƥΥ١Υץꥱ (Java ץꥱ) ¹ԤƤȤˡ Java ץꥱ˴ؤܺ٤ʾ󶡤ľŪʥե桼󥿥եǤJava VisualVM Ȥ̾ϡJava VisualVM JVM եȥ˴ؤֻŪˡ󶡤Ȥ¤ͳ褷Ƥޤ +.LP +.LP +Java VisualVM ϡĤδƻ롢ȥ֥륷塼ƥ󥰡ӥץե󥰥桼ƥƥ 1 ĤΥġ礷ޤȤСɥġ \f2jmap\fP \f2jinfo\fP \f2jstat\fP \f2jstack\fP 󶡤Ƥ뵡ǽΤۤȤɤJava VisualVM Ȥ߹ޤƤޤJConsole ġˤä󶡤εǽʤɡۤεǽϥץΥץ饰ȤɲäǤޤ +.LP +.SH "ץ" +.LP +.LP +ΥץϡJava VisualVM ưȤ˼¹Բǽˤʤޤ +.LP +.RS 3 +.TP 3 +\-J<jvm_option>\ + \f2<jvm_option>\fP JVM եȥϤޤ +.RE + +.LP +.SH "ˡ" +.LP +.LP +Java VisualVM ϡJava ץꥱγȯԤץꥱΥȥ֥륷塼ƥ󥰤ԤʤäꡢץꥱΥѥեޥ󥹤ƻ뤪ӲꤹΤΩޤJava VisualVM ѤȡȯԤϥҡץפӲϡ꡼꡼ꡢ١쥯μ¹ԤӴƻ롢ӥ꡼ CPU δʰץץե󥰤μ¹ԤǽˤʤޤJava VisualVM εǽĥץ饰⤤ĤޤȤСJConsole ġΤۤȤɤεǽϡMBeans ֤ JConsole Plug\-in Wrapper ץ饰𤷤ƻѤǤޤɸ Java VisualVM ץ饰Υ򤹤ˤϡJava VisualVM ˥塼Ρ֥ġ>֥ץ饰פ򤷤ޤ +.LP +.LP +Java VisualVM ưˤϡΥޥɤ¹Ԥޤ +.LP +.nf +\f3 +.fl +% jvisualvm \fP\f4<options>\fP\f3 +.fl +\fP +.fi + +.LP +.SH "Ϣ" +.LP +.LP +Java VisualVM ξܺ٤ϡΥڡ򻲾ȤƤ +.LP +.RS 3 +.TP 2 +o +.na +\f2Java VisualVM ȯԤΥ\fP @ +.fi +https://visualvm.dev.java.net +.TP 2 +o +.na +\f2Java SE ץåȥեǤ Java VisualVM Υɥ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/visualvm/index.html +.RE + +.LP +.LP +\f2(* Java ۥޥפȡJVMפȤѸϡJava ץåȥեβۥޥ̣Ƥޤ)\fP +.LP + diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 index 6ee2f26e028..e9701dd73ad 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2010 keytool tool, 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 @@ -19,20 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "02 Jun 2010" +.TH keytool 1 "14 Apr 2011" .LP -.SH "名前" -keytool \- 鍵と証明書の管理ツール +.SH "̾" +keytool \- Ⱦδġ .LP -.RS 3 - .LP -暗号化鍵、X.509 証明書チェーン、および信頼できる証明書を含むキーストア (データベース) を管理します。 -.RE -.SH "形式" +Ź沽X.509 󡢤ӿǤޤ७ȥ (ǡ١) ޤ .LP - +.SH "" .LP .nf \f3 @@ -43,48 +39,44 @@ keytool \- 鍵と証明書の管理ツール .LP .LP -Java SE 6 で keytool のコマンドインタフェースが変更されました。 詳細については「変更点」の節を参照してください。以前に定義されたコマンドも引き続きサポートされています。 +Java SE 6 keytool Υޥɥ󥿥եѹޤܺ٤ˤĤƤϡѹפ򻲾ȤƤ줿ޥɤ³ݡȤƤޤ .LP -.SH "説明" +.SH "" .LP - +\f3keytool\fP ϡȾ뤿Υ桼ƥƥǤkeytool ȤȡʬθΥڥӴϢǥ̾Ȥäǧ (ۤΥ桼ޤϥӥФƼʬȤǧڤ뤳) 䡢ǡȾ˴ؤ륵ӥѤ뤳ȤǤޤkeytool Ǥϡ̿θ (η) å夹뤳ȤǤޤ .LP -\f3keytool\fP は、鍵と証明書を管理するためのユーティリティーです。keytool を使うと、自分の公開鍵と非公開鍵のペア、および関連する証明書を管理し、デジタル署名を使った自己認証 (ほかのユーザーまたはサービスに対して自分自身を認証すること) や、データの整合性と証明書に関するサービスを利用することができます。keytool では、通信相手の公開鍵を (証明書の形で) キャッシュすることもできます。 -.LP -「証明書」とは、あるエンティティー (人物、会社など) からのデジタル署名付きの文書のことです。 証明書には、ほかのあるエンティティーの公開鍵 (およびその他の情報) が特別な値を持っていることが書かれています(「証明書」を参照)。データにデジタル署名が付いている場合は、デジタル署名を検証することで、データの整合性およびデータが本物であることをチェックできます。データの「整合性」とは、データが変更されたり、改変されたりしていないことを意味します。 また、データが「本物である」とは、そのデータが、データを作成して署名したと称する人物から実際に渡されたデータであることを意味します。 +־פȤϡ륨ƥƥ (ʪҤʤ) Υǥ̾դʸΤȤǤˤϡۤΤ륨ƥƥθ (Ӥ¾ξ) ̤ͤäƤ뤳Ȥ񤫤Ƥޤ(־פ򻲾)ǡ˥ǥ̾դƤϡǥ̾򸡾ڤ뤳ȤǡǡӥǡʪǤ뤳ȤåǤޤǡΡפȤϡǡѹ줿ꡢѤ줿ꤷƤʤȤ̣ޤ ޤǡʪǤפȤϡΥǡǡƽ̾ȾΤʪºݤϤ줿ǡǤ뤳Ȥ̣ޤ .LP .LP -また、\f3keytool\fP を使えば、DES などの対称暗号化/復号化で使用される秘密鍵を管理することもできます。 +ޤ\f3keytool\fP ȤСDES ʤɤоΰŹ沽/沽ǻѤ̩뤳ȤǤޤ .LP .LP -\f3keytool\fP は、鍵と証明書を\f2「キーストア」\fPに格納します。 +\f3keytool\fP ϡȾ\f2֥ȥ\fP˳Ǽޤ .LP -.SH "コマンドとオプションに関する注" -.LP - +.SH "ޥɤȥץ˴ؤ" .LP .LP -以下では、コマンドとそのオプションについて説明します。注: +ʲǤϡޥɤȤΥץˤĤޤ: .LP .RS 3 .TP 2 o -どのコマンド名およびオプション名にも先頭にマイナス記号 (\-) が付く +ɤΥޥ̾ӥץ̾ˤƬ˥ޥʥ (\-) դ .TP 2 o -各コマンドのオプションは任意の順序で指定できる +ƥޥɤΥץǤդνǻǤ .TP 2 o -イタリック体になっていないすべての項目、または中括弧か角括弧で囲まれているすべての項目は、そのとおりに指定する必要がある +åΤˤʤäƤʤ٤Ƥιܡޤ̤ѳ̤ǰϤޤƤ뤹٤ƤιܤϡΤȤ˻ꤹɬפ .TP 2 o -オプションを囲む中括弧は、一般に、そのオプションをコマンド行で指定しなかった場合に、デフォルト値が使われることを意味する。中括弧は、\f2\-v\fP、\f2\-rfc\fP、および \f2\-J\fP オプションを囲むのにも使われるが、これらのオプションはコマンド行で指定された場合にのみ意味を持つ (つまり、これらのオプションには、オプション自体を指定しないこと以外に「デフォルト値」は存在しない) +ץϤ̤ϡ̤ˡΥץ򥳥ޥɹԤǻꤷʤäˡǥեͤȤ뤳Ȥ̣롣̤ϡ \f2\-v\fP \f2\-rfc\fP \f2\-J\fP ץϤΤˤȤ뤬ΥץϥޥɹԤǻꤵ줿ˤΤ̣߰ (ĤޤꡢΥץˤϡץΤꤷʤȰʳˡ֥ǥե͡פ¸ߤʤ) .TP 2 o -オプションを囲む角括弧は、そのオプションをコマンド行で指定しなかった場合に、値の入力を求められることを意味する。ただし、\f2\-keypass\fP オプションをコマンド行で指定しなかった場合は、\f3keytool\fP がキーストアのパスワードから非公開/秘密鍵の復元を試みる。 ユーザーは、この試みが失敗した場合に非公開/秘密鍵の入力を求められる +ץϤѳ̤ϡΥץ򥳥ޥɹԤǻꤷʤäˡͤϤ뤳Ȥ̣롣( \f2\-keypass\fP ץξ硢ץ򥳥ޥɹԤǻꤷʤäϡ\f3keytool\fP ޤȥΥѥɤ/̩ߤ롣 桼ϡλߤԤ/̩ΥѥɤϤ .TP 2 o -イタリック体の項目の実際の値 (オプションの値) は、ユーザーが指定する必要がある。たとえば、\f2\-printcert\fP コマンドの形式は次のとおりである +åΤιܤμºݤ (ץ) ϡ桼ꤹɬפ뤿ȤС \f2\-printcert\fP ޥɤηϼΤȤǤ .nf \f3 .fl @@ -93,7 +85,7 @@ o \fP .fi .LP -\f2\-printcert\fP コマンドを指定するときは、\f2cert_file\fP の代わりに実際のファイル名を指定する。次に例を示す +\f2\-printcert\fP ޥɤꤹȤϡ\f2cert_file\fP ˼ºݤΥե̾ꤹ롣򼨤 .nf \f3 .fl @@ -103,10 +95,10 @@ o .fi .TP 2 o -オプションの値に空白 (スペース) が含まれている場合は、値を引用符で囲む必要がある +ץͤ˶ (ڡ) ޤޤƤϡͤǰϤɬפ .TP 2 o -\f2\-help\fP コマンドはデフォルトのコマンドである。たとえば、次のようにコマンド行を指定したとする +\f2\-help\fP ޥɤϥǥեȤΥޥɤǤ롣ȤСΤ褦˥ޥɹԤꤷȤ .nf \f3 .fl @@ -114,7 +106,8 @@ o .fl \fP .fi -これは、次のように指定することと同じである +.LP +ϡΤ褦˻ꤹ뤳ȤƱǤ .nf \f3 .fl @@ -126,12 +119,11 @@ o .LP .SS -オプションのデフォルト値 +ץΥǥե .LP -.RS 3 - .LP -オプションのデフォルト値は、次のとおりです。 +ץΥǥեͤϡΤȤǤ +.LP .nf \f3 .fl @@ -141,19 +133,25 @@ o .fl \-keyalg .fl - "DSA" (\fP\f3\-genkeypair\fP\f3 を使用している場合) + "DSA" (\fP\f3\-genkeypair\fP\f3 ѤƤ) .fl - "DES" (\fP\f3\-genseckey\fP\f3 を使用している場合) + "DES" (\fP\f3\-genseckey\fP\f3 ѤƤ) .fl .fl \-keysize .fl - 1024 (\fP\f3\-genkeypair\fP\f3 を使用している場合) + 2048 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "RSA" ξ) .fl - 56 (\fP\f3\-genseckey\fP\f3 を使用していて \-keyalg が "DES" の場合) + 1024 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "DSA" ξ) .fl - 168 (\fP\f3\-genseckey\fP\f3 を使用していて \-keyalg が "DESede" の場合) + 256 (\fP\f3\-genkeypair\fP\f3 ѤƤ \-keyalg "EC" ξ) +.fl + 56 (\fP\f3\-genseckey\fP\f3 ѤƤ \-keyalg "DES" ξ) +.fl + 168 (\fP\f3\-genseckey\fP\f3 ѤƤ \-keyalg "DESede" ξ) +.fl + .fl .fl @@ -161,320 +159,933 @@ o .fl .fl -\-keystore \fP\f4ユーザーのホームディレクトリの \fP\f4.keystore\fP\f3 というファイル\fP\f3 +\-keystore 桼Υۡǥ쥯ȥ \fP\f4.keystore\fP\f3 Ȥե .fl .fl -\-storetype \fP\f4セキュリティープロパティーファイルの「keystore.type」プロパティーの値で、 +\-storetype ƥץѥƥեΡkeystore.typeץץѥƥͤǡ .fl - \fP\f4java.security.KeyStore\fP\f3 の静的な \fP\f4getDefaultType\fP\f3 メソッドから返される\fP\f3 + java.security.KeyStore Ū getDefaultType ᥽åɤ֤ \fP\f4 \fP\f3 +.fl + \fP\f4 \fP\f3 .fl .fl -\-file \fP\f4読み込みの場合は標準入力、書き込みの場合は標準出力\fP\f3 +\-file ɤ߹ߤξɸϡ񤭹ߤξɸ .fl .fl \-protected false -.fl - .fl \fP .fi .LP -公開/非公開鍵ペアの生成において、署名アルゴリズム (\f2\-sigalg\fP オプション) は、基になる非公開鍵のアルゴリズムから派生します。基になる非公開鍵が DSA タイプである場合、\f2\-sigalg\fP オプションのデフォルト値は SHA1withDSA になり、基になる非公開鍵が RSA タイプである場合は、\f2\-sigalg\fP オプションのデフォルト値は MD5withRSA になります。選択可能な \f2\-keyalg\fP および \f2\-sigalg\fP の完全な一覧については、 -.na -\f2「Java Cryptography Architecture API Specification & Reference」\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppAを参照してください。 -.RE -.SS -一般オプション +.LP +/ڥˤơ̾르ꥺ (\f2\-sigalg\fP ץ) ϡˤʤΥ르ꥺफޤ .LP .RS 3 +.TP 2 +o +ˤʤ DSA פǤ硢\f2\-sigalg\fP ץΥǥեͤ SHA1withDSA ˤʤꡢ +.TP 2 +o +ˤʤ RSA פǤϡ\f2\-sigalg\fP ץΥǥեͤ SHA256withRSA ˤʤꡢ +.TP 2 +o +ˤʤ EC פǤϡ\f2\-sigalg\fP ץΥǥեͤ SHA256withECDSA ˤʤޤ +.RE .LP -\f2\-v\fP オプションは、\f2\-help\fP コマンドを除くすべてのコマンドで使用できます。このオプションを指定した場合、コマンドは「冗長」モードで実行され、詳細な証明書情報が出力されます。 .LP -また、\f2\-J\fP\f2javaoption\fP オプションも、任意のコマンドで使用できます。このオプションを指定した場合、指定された \f2javaoption\fP 文字列が Java インタプリタに直接渡されます。このオプションには、空白を含めることはできません。このオプションは、実行環境またはメモリー使用を調整する場合に便利です。指定できるインタプリタオプションを一覧表示するには、コマンド行で \f2java \-h\fP または \f2java \-X\fP と入力してください。 +ǽ \f2\-keyalg\fP \f2\-sigalg\fP δʰˤĤƤϡ +.na +\f2Java Cryptography Architecture API Specification & Reference\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA򻲾ȤƤ +.LP +.SS +̥ץ .LP .LP -次のオプションは、キーストアに対する操作を行うすべてのコマンドで指定できます。 +\f2\-v\fP ץϡ \f2\-help\fP ޥɤ٤ƤΥޥɤǻѤǤޤΥץꤷ硢ޥɤϡ־Ĺץ⡼ɤǼ¹Ԥ졢ܺ٤ʾ󤬽Ϥޤ +.LP +.LP +ޤ \f2\-J\fP\f2javaoption\fP ץ⡢ǤդΥޥɤǻѤǤޤΥץꤷ硢ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤǤ륤󥿥ץ꥿ץɽˤϡޥɹԤ \f2java \-h\fP ޤ \f2java \-X\fP ϤƤ +.LP +.LP +ΥץϡȥФԤ٤ƤΥޥɤǻǤޤ .LP .RS 3 .TP 3 \-storetype storetype -この修飾子は、インスタンスを生成するキーストアのタイプを指定します。 +.LP +νҤϡ󥹥󥹤륭ȥΥפꤷޤ .TP 3 \-keystore keystore -キーストアの場所を指定します。 .LP -特定の \f3keytool\fP コマンドを実行する際に、JKS ストアタイプが使用され、かつキーストアファイルがまだ存在していなかった場合、新しいキーストアファイルが作成されます。たとえば、\f2keytool \-genkeypair\fP の実行時に \f2\-keystore\fP オプションが指定されなかった場合、\f2.keystore\fP という名前のデフォルトキーストアファイルがユーザーのホームディレクトリ内にまだ存在していなければ、そこに作成されます。同様に、\f2\-keystore \fP\f2ks_file\fP というオプションが指定されてもその \f2ks_file\fP が存在しなかった場合、そのファイルが作成されます。 +ȥξꤷޤ .LP -\f2\-keystore\fP オプションからの入力ストリームは、\f2KeyStore.load\fP メソッドに渡されます。URL として \f2NONE\fP が指定されている場合は、null のストリームが \f2KeyStore.load\fP メソッドに渡されます。\f2NONE\fP は、\f2KeyStore\fP がファイルベースではなく、たとえば、ハードウェアトークンデバイスに置かれている場合に指定します。 + \f3keytool\fP ޥɤ¹ԤݤˡJKS ȥפѤ졢ĥȥե뤬ޤ¸ߤƤʤä硢ȥե뤬ޤȤС \f2keytool \-genkeypair\fP μ¹Ի \f2\-keystore\fP ץ󤬻ꤵʤä硢 \f2.keystore\fP Ȥ̾Υǥեȥȥե뤬桼Υۡǥ쥯ȥˤޤ¸ߤƤʤС˺ޤƱͤˡ \f2\-keystore \fP\f2ks_file\fP Ȥץ󤬻ꤵƤ⤽ \f2ks_file\fP ¸ߤʤä硢Υե뤬ޤ +.LP +\f2\-keystore\fP ץ󤫤ϥȥ꡼ϡ \f2KeyStore.load\fP ᥽åɤϤޤURL Ȥ \f2NONE\fP ꤵƤϡnull Υȥ꡼ब \f2KeyStore.load\fP ᥽åɤϤޤ \f2NONE\fP ϡ \f2KeyStore\fP ե١ǤϤʤȤСϡɥȡǥХ֤Ƥ˻ꤷޤ .TP 3 -\-storepass storepass -キーストアの整合性を保護するために使うパスワードを指定します。 +\-storepass[:env|:file] argument .LP -\f2storepass\fP は、6 文字以上にする必要があります。指定したパスワードは、キーストアの内容にアクセスするすべてのコマンドで使われます。この種のコマンドを実行するときに、コマンド行で \f2\-storepass\fP オプションを指定しなかった場合は、パスワードの入力を求められます。 +ȥݸ뤿˻Ȥѥɤꤷޤ .LP -キーストアから情報を取り出す場合は、パスワードを省略できます。 パスワードを省略すると、取り出す情報の整合性をチェックできないので、警告が表示されます。 + \f2env\fP ޤ \f2file\fP ꤷʤ硢ѥɤͤ \f2argument\fP ˤʤޤͤϡ6 ʸʾˤɬפޤʳξ硢ѥɤϼΤ褦˼ޤ +.RS 3 +.TP 2 +o +\f2env\fP: \f2argument\fP Ȥ̾δĶѿѥɤ +.TP 2 +o +\f2file\fP: \f2argument\fP Ȥ̾Υե뤫ѥɤ +.RE +.LP +\f3\fP: \f2\-keypass\fP \f2\-srckeypass\fP \f2\-destkeypass\fP \f2\-srcstorepass\fP \f2\-deststorepass\fP ʤɤΥѥɤɬפȤ뤽¾ΥץϤ٤ơ \f2env\fP \f2file\fP ҤդޤѥɥץȽҤϡɬ (\f2:\fP) ǶڤäƤ +.LP +ѥɤϡȥƤ˥뤹٤ƤΥޥɤǻȤޤμΥޥɤ¹ԤȤˡޥɹԤ \f2\-storepass\fP ץꤷʤäϡѥɤϤޤ +.LP +ȥФϡѥɤάǤޤ ѥɤάȡФåǤʤΤǡٹɽޤ .TP 3 \-providerName provider_name -セキュリティープロパティーファイル内に含まれる暗号化サービスプロバイダ名を特定するために使用されます。 +.LP +ƥץѥƥե˴ޤޤŹ沽ӥץХ̾ꤹ뤿˻Ѥޤ .TP 3 \-providerClass provider_class_name -暗号化サービスプロバイダがセキュリティープロパティーファイルに指定されていないときは、そのマスタークラスファイルの名前を指定するときに使われます。 +.LP +Ź沽ӥץХƥץѥƥե˻ꤵƤʤȤϡΥޥ饹ե̾ꤹȤ˻Ȥޤ .TP 3 \-providerArg provider_arg -\f2\-providerClass\fP と組み合わせて使用します。\f2provider_class_name\fP のコンストラクタに対する省略可能な文字列入力引数を表します。 +.LP +\f2\-providerClass\fP Ȥ߹碌ƻѤޤ\f2provider_class_name\fP Υ󥹥ȥ饯Фάǽʸϰɽޤ .TP 3 \-protected -\f2true\fP または \f2false\fP のいずれか。専用 PIN リーダーなどの保護された認証パスを介してパスワードを指定する必要がある場合には、この値に \f2true\fP を指定してください。 +.LP +\f2true\fP ޤ \f2false\fP Τ줫 PIN ꡼ʤɤݸ줿ǧڥѥ𤷤ƥѥɤꤹɬפˤϡͤ \f2true\fP ꤷƤ +.LP +: \f2\-importkeystore\fP ޥɤˤ 2 ĤΥȥطƤ뤿ᡢ2 ĤΥץ󡢤Ĥޤ \f2\-srcprotected\fP \f2\-destprotected\fP ȥȥåȥȥˤ줾ꤵޤ +.TP 3 +\-ext {name{:critical}{=value}} +.LP +X.509 񥨥ƥ󥷥򼨤ޤΥץ \-genkeypair \-gencert ǻѤơޤ \f2\-certreq\fP ˥ƥ󥷥ߡ׵׵ᤵ륨ƥ󥷥򼨤ȤǤޤΥץϡʣѤǤޤname ˤϡݡȤƤ륨ƥ󥷥̾ (򻲾) ޤǤդ OID ֹǤޤvalue ꤷϡƥ󥷥Υѥ᡼򼨤ޤάϡƥ󥷥Υǥե (Ƥ) 򼨤ޤϥƥ󥷥˥ѥ᡼ɬפޤ \f2:critical\fP Ҥꤷϡƥ󥷥 isCritical ° true Ǥ뤳Ȥ򼨤ޤʳξ false Ǥ뤳Ȥ򼨤ޤ:critical : \f2:c\fP ѤǤޤ . .RE .LP -.RE -.SH "コマンド" .LP +ߡkeytool ϼ̾Υƥ󥷥򥵥ݡȤƤޤ (ʸȾʸ϶̤ʤ) +.LP +.LP +.TS +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 80 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +BC ޤ BasicConstraints +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ʷϡca:{true|false}[,pathlen:<len>]פǡ<len> ϡca:true,pathlen:<len>פξάɽǤ άȡca:trueפΰ̣ˤʤޤ +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +usage(,usage)*usage ˤϡdigitalSignature nonRepudiation (contentCommitment)keyEnciphermentdataEnciphermentkeyAgreementkeyCertSigncRLSignencipherOnlydecipherOnly Τ줫ǤޤUsage ϡޤʤСǽοʸ (ȤСdigitalSignature dig ) ޤϥ륱 (ȤС digitalSignature dS ˡcRLSign cRLS ) ṳ̂ǤޤUsage ʸȾʸ϶̤ޤ +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +EKU ޤ ExtendedkeyUsage +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +usage(,usage)*usage ˤϡanyExtendedKeyUsage serverAuthclientAuthcodeSigningemailProtection timeStampingOCSPSigningޤǤդ OID ʸΤ줫Ǥޤ ̾դ usage ϡޤʤС ǽοʸޤϥ륱 ṳ̂ǤޤUsage ʸȾʸ϶̤ޤ +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +SAN ޤ SubjectAlternativeName +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di g+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +type:value(,type:value)*type ˤϡEMAILURIDNSIPޤ OID Ǥޤvalue ϡtype ʸͤǤ +.br +.di +.nr g| \n(dn +.nr g- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di h+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +IAN ޤ IssuerAlternativeName +.br +.di +.nr h| \n(dn +.nr h- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di i+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +SubjectAlternativeName ƱǤ +.br +.di +.nr i| \n(dn +.nr i- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di j+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +SIA ޤ SubjectInfoAccess +.br +.di +.nr j| \n(dn +.nr j- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di k+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +method:location\-type:location\-value (,method:location\-type:location\-value)* method ˤϡtimeStampingסcaRepositoryסޤǤդ OID Ǥޤlocation\-type location\-value ˤϡSubjectAlternativeName ƥ󥷥ǥݡȤǤդ type:value Ǥޤ +.br +.di +.nr k| \n(dn +.nr k- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di l+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +AIA ޤ AuthorityInfoAccess +.br +.di +.nr l| \n(dn +.nr l- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di m+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +SubjectInfoAccess ƱǤmethod ˤϡocspסcaIssuersסޤǤդ OID Ǥޤ +.br +.di +.nr m| \n(dn +.nr m- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3̾\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wKU ޤ KeyUsage +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(a- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(f- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(h- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(j- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \n(l- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(g- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(i- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(k- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(m- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 325 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3̾\fP\h'|\n(41u'\f3\fP +.ne \n(a|u+\n(.Vu +.ne \n(b|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'KU ޤ KeyUsage\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.ne \n(g|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.g+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(h|u+\n(.Vu +.ne \n(i|u+\n(.Vu +.if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) +.if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.h+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.i+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(j|u+\n(.Vu +.ne \n(k|u+\n(.Vu +.if (\n(j|+\n(#^-1v)>\n(#- .nr #- +(\n(j|+\n(#^-\n(#--1v) +.if (\n(k|+\n(#^-1v)>\n(#- .nr #- +(\n(k|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.j+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.k+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(l|u+\n(.Vu +.ne \n(m|u+\n(.Vu +.if (\n(l|+\n(#^-1v)>\n(#- .nr #- +(\n(l|+\n(#^-\n(#--1v) +.if (\n(m|+\n(#^-1v)>\n(#- .nr #- +(\n(m|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.l+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.m+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.rm g+ +.rm h+ +.rm i+ +.rm j+ +.rm k+ +.rm l+ +.rm m+ +.TE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-44 +.LP +.LP +OID ̾ξ硢OCTET STRING פĹΥХȤƥ󥷥ˤĤƤϡͤ extnValue HEX פ DER 󥳡ǥ󥰤ǤHEX ʸǤϡɸ HEX (0\-9a\-fA\-F) ʳʸ̵뤵ޤäơ \f201:02:03:04\fP \f201020304פξȤ\fP ƱͤȤƼդޤͤʤ硢ƥ󥷥ͥեɤ϶ˤʤޤ +.LP +.LP +\f2\-gencert\fP ǤΤ߻ѤhonoredפȤ̤̾ϡ׵˴ޤޤ륨ƥ󥷥ͥ褹ˡ򼨤ޤ̾ͤϡ \f2all\fP (׵ᤵ뤹٤ƤΥƥ󥷥ͥ褵) \f2name{:[critical|non\-critical]}\fP (̾դΥƥ󥷥ͥ褵뤬̤ isCritical °Ѥ) \f2\-name\fP (allפȤȤ˻Ѥ㳰򼨤) Υ޶ڤꥹȤǤǥեȤǤϡ׵ᤵ륨ƥ󥷥ͥ褵ޤ +.LP +.LP +\-ext ͥΥץ˲ä̤̾Ρޤ OID \-ext ΥץꤷϡΥƥ󥷥󤬡Ǥͥ褵Ƥ륨ƥ󥷥ɲäޤ̾ (ޤ OID) ͥ褵ͤǤѤϡͤȽ׵˴ޤޤΤ򥪡С饤ɤޤ +.LP +.LP +subjectKeyIdentifier ƥ󥷥Ͼ˺ޤʽ̾ǤʤξϡauthorityKeyIdentifier ˺ޤ +.LP +.LP +\f3:\fP 桼ϡƥ󥷥 (ӾΤۤΥե) Ȥ߹碌ˤäƤϡ󥿡ͥåȤɸ˽򤷤ʤ礬뤳ȤդƤܺ٤ˤĤƤϡ־ν˴ؤջפ򻲾ȤƤ +.LP +.SH "ޥ" .LP .SS -キーストアへのデータの作成または追加 -.LP -.RS 3 - +ȥؤΥǡκޤɲ .LP .RS 3 .TP 3 -\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-gencert {\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -鍵のペア (公開鍵および関連する非公開鍵) を生成します。公開鍵は X.509 v3 自己署名証明書でラップされます。 証明書は、単一の要素を持つ証明書チェーンとして格納されます。この証明書チェーンと非公開鍵は、\f2alias\fP で特定される新しいキーストアエントリに格納されます。 +׵ե ( \f2keytool \-certreq\fP ޥɤǺǤ) ˱ƾޤΥޥɤϡ\f2infile\fP (άϡɸϤ) ׵ɤ߹ߡ̾ȤäƤ׵˽̾ơX.509 \f2outfile\fP (άϡɸϤ) Ϥޤ \f2\-rfc\fP ꤷ硢Ϸ BASE64 沽 PEM ˤʤޤʳξϡХʥ DER ޤ .LP -\f2keyalg\fP には、鍵のペアを生成するのに使うアルゴリズムを指定し、\f2keysize\fP には、生成する各鍵のサイズを指定します。 \f2sigalg\fP には、自己署名証明書に署名を付けるときに使うアルゴリズムを指定します。このアルゴリズムは、\f2keyalg\fP と互換性のあるものでなければなりません。 +\f2sigalg\fP ˤϡ˽̾դȤ˻Ȥ르ꥺꤷޤ\f2startdate\fP ϡͭˤʤ볫ϻ/դǤ\f2valDays\fP ˤϡͭꤷޤ .LP -\f2dname\fP には、\f2alias\fP に関連付け、自己署名証明書の \f2issuer\fP フィールドと \f2subject\fP フィールドとして使う X.500 識別名を指定します。コマンド行で識別名を指定しなかった場合は、識別名の入力を求められます。 +\f2dname\fP ꤹȡμΤȤƻѤޤʳξϡ׵ᤫ̾Ѥޤ .LP -\f2keypass\fP には、生成される鍵のペアのうち、非公開鍵を保護するのに使うパスワードを指定します。パスワードを指定しなかった場合、ユーザーはその入力求められます。このとき、Return キーを押すと、キーストアのパスワードと同じパスワードが鍵のパスワードに設定されます。 \f2keypass\fP は、6 文字以上でなければなりません。 +\f2ext\fP ϡޤ X.509 ƥ󥷥򼨤ޤ\-ext ʸˡˤĤƤϡְ̥ץפ򻲾ȤƤ .LP -\f2valDays\fP には、証明書の有効日数を指定します。 +\f2\-gencert\fP ޥɤѤȡǤޤǤϡ \f2e1\fP Ȥޤξξˤϡ3 Ĥξ񤬴ޤޤƤޤ .LP -このコマンドは、以前のリリースでは \f2\-genkey\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-genkeypair\fP を使用することをお勧めします。 +Υޥɤϡcaca1ca2 e1 4 Ĥθڥޤ +.nf +\f3 +.fl +keytool \-alias ca \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca1 \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca2 \-dname CN=CA \-genkeypair +.fl +keytool \-alias e1 \-dname CN=E1 \-genkeypair +.fl +\fP +.fi +.LP + 2 ĤΥޥɤϡ̾դΥޤ \f2ca\fP ca1 ˽̾ \f2ca1 signs ca2\fP ˽̾ޤ٤ƼȯԤǤ +.nf +\f3 +.fl +keytool \-alias ca1 \-certreq | keytool \-alias ca \-gencert \-ext san=dns:ca1 | keytool \-alias ca1 \-importcert +.fl +keytool \-alias ca2 \-certreq | $KT \-alias ca1 \-gencert \-ext san=dns:ca2 | $KT \-alias ca2 \-importcert +.fl +\fP +.fi +.LP +Υޥɤϡ e1 ƥե e1.cert ˳Ǽޤξ ca2 ˤäƽ̾ޤη̡e1 ξˤ caca1 ca2 ޤޤ뤳Ȥˤʤޤ +.nf +\f3 +.fl +keytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1.cert +.fl +\fP +.fi +.TP 3 +\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +.LP +Υڥ (ӴϢ) ޤ X.509 v3 ʽ̾ǥåפޤϡñǤľȤƳǼޤξϡ\f2alias\fP ꤵ뿷ȥȥ˳Ǽޤ +.LP +\f2keyalg\fP ϸΥڥ˻Ѥ륢르ꥺ\f2keysize\fP ƸΥ򡢤줾ꤷޤ\f2sigalg\fP ˤϡʽ̾˽̾դȤ˻Ȥ르ꥺꤷޤΥ르ꥺϡ\f2keyalg\fP ȸߴΤΤǤʤФʤޤ +.LP +\f2dname\fP ˤϡ\f2alias\fP ˴Ϣդʽ̾ issuer եɤ subject եɤȤƻȤ X.500 ̾ꤷޤ ޥɹԤǼ̾ꤷʤäϡ̾Ϥޤ +.LP +\f2keypass\fP ˤϡ븰ΥڥΤݸΤ˻ȤѥɤꤷޤѥɤꤷʤäϡѥɤϤޤΤȤReturn 򲡤ȡȥΥѥɤƱѥɤΥѥɤꤵޤ\f2keypass\fP ϡ6 ʸʾˤɬפޤ +.LP +\f2startdate\fP ˤϡȯԻꤷޤϡX.509 ΡValidityץեɤΡNot BeforeͤȤƤФޤ +.LP +ץͤϡ 2 ĤηΤ줫Ǥޤ +.RS 3 +.TP 3 +1. +([+\-]\f2nnn\fP[ymdHMS])+ +.TP 3 +2. +[yyyy/mm/dd] [HH:MM:SS] +.RE +.LP +ǽηǤϡȯԻϡꤵͤߤλ狼ܤޤꤵͤϡϢβ̤ͤϢ뤷Τˤʤޤ̤γͤǡץ饹 (+) ϻ֤ʤळȤ򡢥ޥʥ (\-) ϻ֤뤳Ȥ̣Ƥޤܤ֤ \f2nnn\fP ǡñ̤ǯ֡ʬޤäǤ (줾졢1 ʸΡyסmסdסHסMסޤϡSפǼƤ)̤γͤ \f2java.util.GregorianCalendar.add(int field, int amount)\fP ᥽åɤȤȤǡȯԻɲäͤ鱦ط׻ޤȤС \f2\-startdate \-1y+1m\-1d\fPȻꤹȡϻϼΤ褦ˤʤޤ +.nf +\f3 +.fl + Calendar c = new GregorianCalendar(); +.fl + c.add(Calendar.YEAR, \-1); +.fl + c.add(Calendar.MONTH, 1); +.fl + c.add(Calendar.DATE, \-1); +.fl + return c.getTime() +.fl +\fP +.fi +.LP +2 ܤηǤϡ桼ϡǯ//Ȼ:ʬ:ä 2 ĤʬǸ̩ʳϻꤷޤ (ϸλӤ)桼ϡ1 ĤʬǤޤϡ⤦ 1 Ĥʬϸߤ (ޤϻ) ƱˤʤȤȤǤ桼ϡ˼Ƥ褦ˡ̩˻ꤹɬפޤ (û 0 )դȻξꤵ줿֤ǡ2 Ĥʬδ֤˶ʸ 1 (1 Ĥ) ޤ֤Ͼ 24 ַǻꤷƤ +.LP +ץꤷʤȡդϸߤλˤʤޤץϡ 1 Ǥޤ +.LP +\f2valDays\fP ˤϡͭꤷޤ ( \f2\-startdate\fP ǻꤵ줿աޤ \f2\-startdate\fP ꤵƤʤϸߤդϤޤ) +.LP +ΥޥɤϡΥ꡼Ǥ \f2\-genkey\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-genkeypair\fP Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-genseckey {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -秘密鍵を生成し、それを \f2alias\fP で特定される新しい \f2KeyStore.SecretKeyEntry\fP 内に格納します。 +̩򿷤 \f2KeyStore.SecretKeyEntry\fP (\f2alias\fP ꤵ) ˳Ǽޤ .LP -\f2keyalg\fP は秘密鍵の生成に使用するアルゴリズムを、\f2keysize\fP は生成する鍵のサイズを、それぞれ指定します。\f2keypass\fP は秘密鍵の保護に使用するパスワードです。パスワードを指定しなかった場合、ユーザーはその入力求められます。このとき、Return キーを押すと、キーストアのパスワードと同じパスワードが鍵のパスワードに設定されます。 \f2keypass\fP は、6 文字以上でなければなりません。 +\f2keyalg\fP ̩˻Ѥ륢르ꥺ\f2keysize\fP 븰Υ򡢤줾ꤷޤ\f2keypass\fP ̩ݸ˻ѤѥɤǤѥɤꤷʤäϡѥɤϤޤΤȤReturn 򲡤ȡȥΥѥɤƱѥɤΥѥɤꤵޤ\f2keypass\fP ϡ6 ʸʾˤɬפޤ .TP 3 \-importcert {\-alias alias} {\-file cert_file} [\-keypass keypass] {\-noprompt} {\-trustcacerts} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -ファイル \f2cert_file\fP から証明書または証明書チェーン (証明書チェーンの場合は、PKCS#7 形式の応答で提供されるもの) を読み込み、\f2alias\fP によって特定されるキーストアエントリに格納します。ファイルが指定されていない場合は、標準入力から証明書または PKCS#7 応答を読み込みます。 +ե \f2cert_file\fP ޤϾ (ξϡPKCS#7 αޤϰϢ X.509 󶡤) ɤ߹ߡ\f2alias\fP ˤäꤵ륭ȥȥ˳Ǽޤե뤬ꤵƤʤϡɸϤޤϾɤ߹ߤޤ .LP -\f3keytool\fP では、X.509 v1、v2、v3 の証明書、および、PKCS#7 形式の証明書から構成されている PKCS#7 形式の証明書チェーンをインポートできます。インポートするデータは、バイナリ符号化方式、または出力可能符号化方式 (Base64 符号化とも呼ばれる) のどちらかで提供する必要があります。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。この符号化方式の場合、証明書は「\-\-\-\-\-BEGIN」で始まる文字列で開始され、「\-\-\-\-\-END」で始まる文字列で終了しなければなりません。 +\f3keytool\fP ǤϡX.509 v1v2v3 ξ񡢤ӡPKCS#7 ξ񤫤鹽Ƥ PKCS#7 ξ򥤥ݡȤǤޤݡȤǡϡХʥ沽ޤϽϲǽ沽 (Base64 沽ȤƤФ) Τɤ餫󶡤ɬפޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ沽ξ硢ϡ\-\-\-\-\-BEGINפǻϤޤʸdzϤ졢\-\-\-\-\-ENDפǻϤޤʸǽλʤФʤޤ .LP -証明書のインポートには、次の 2 つの目的があります。 +ΥݡȤˤϡ 2 ĤŪޤ .RS 3 .TP 3 1. -信頼できる証明書のリストに証明書を追加する +ǤΥꥹȤ˾ɲä .TP 3 2. -CA に証明書署名要求 (\-certreq コマンドを参照) を送信した結果として、CA から受け取った証明応答をインポートする +CA ˾̾׵ (\-certreq ޥɤ򻲾) ̤ȤơCA ä򥤥ݡȤ .RE .LP -どちらの種類のインポートを行うかは、\f2\-alias\fP オプションの値によって指定します。 +ɤμΥݡȤԤϡ \f2\-alias\fP ץͤˤäƻꤷޤ .RS 3 .TP 3 1. -\f3別名がキーエントリをポイントしない場合\fP、\f3keytool\fP はユーザーが信頼できる証明書エントリを追加しようとしているものと見なします。この場合、別名がキーストア内にすでに存在していてはいけません。別名がすでに存在している場合、その別名の信頼できる証明書がすでに存在することになるので、\f3keytool\fP はエラーを出力し、証明書のインポートを行いません。 +\f3̾ȥݥȤʤ\fP\f3keytool\fP ϥ桼Ǥ񥨥ȥɲä褦ȤƤΤȸʤޤξ硢̾ȥˤǤ¸ߤƤƤϤޤ̾Ǥ¸ߤƤ硢̾οǤ񤬤Ǥ¸ߤ뤳ȤˤʤΤǡ\f3keytool\fP ϥ顼ϤΥݡȤԤޤ .TP 3 2. -\f3別名がキーエントリをポイントしない場合\fP、\f3keytool\fP はユーザーが信頼できる証明書エントリを追加しようとしているものと見なします。 +.LP +\f3̾ȥݥȤʤ\fP\f3keytool\fP ϥ桼Ǥ񥨥ȥɲä褦ȤƤΤȸʤޤ .RE -\f3新しい信頼できる証明書のインポート\fP -.RS 3 - +\f3ǤΥݡ\fP .LP +\f3keytool\fP ϡȥ˾ɲäˡȥˤǤ¸ߤ뿮ǤȤäơݡȤ񤫤 (롼 CA ) ʽ̾˻ޤǤοΥιۤߤޤ .LP -\f3keytool\fP は、キーストアに証明書を追加する前に、キーストア内にすでに存在する信頼できる証明書を使って、インポートする証明書から (ルート CA の) 自己署名証明書に至るまでの信頼のチェーンの構築を試みます。 +\f2\-trustcacerts\fP ץꤷ硢ɲäξϿǤ뤹ʤ cacerts Ȥ̾Υե˴ޤޤΥȸʤޤ .LP +\f3keytool\fP ݡȤ񤫤鼫ʽ̾ (ȥޤ cacerts ե˴ޤޤƤ뼫ʽ̾) ˻ޤǤοΥѥιۤ˼ԤϡݡȤξɽ桼˳ǧޤ ξϡɽ줿Υե󥬡ץȤȡۤΤʤ餫 (Ǥ) (νͭܿͤʤ) ꤷե󥬡ץȤȤӤޤֿǤפȤƾ򥤥ݡȤȤϡͭǤ뤳Ȥ򿵽Ť˳ǧɬפޤܺ٤ϡֿǤΥݡȤ˴ؤջפ򻲾ȤƤݡϡǧߤǤޤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ +\f3Υݡ\fP .LP -\f2\-trustcacerts\fP オプションを指定した場合、追加の証明書は信頼できるすなわち cacerts という名前のファイルに含まれる証明書のチェーンと見なされます。 -.LP -.LP -\f3keytool\fP が、インポートする証明書から自己署名証明書 (キーストアまたは cacerts ファイルに含まれている自己署名証明書) に至るまでの信頼のパスの構築に失敗した場合は、インポートする証明書の情報を表示し、ユーザーに確認を求めます。 この場合は、表示された証明書のフィンガープリントと、ほかのなんらかの (信頼できる) 情報源 (証明書の所有者本人など) から入手したフィンガープリントとを比較します。「信頼できる証明書」として証明書をインポートするときは、証明書が有効であることを慎重に確認する必要があります。詳細は、「信頼できる証明書のインポートに関する注意事項」を参照してください。インポート操作は、証明書を確認する時点で中止できます。ただし、\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 -.LP -.RE -\f3証明応答のインポート\fP -.RS 3 -.LP -「証明応答」をインポートするときは、キーストア内の信頼できる証明書、および (\f2\-trustcacerts\fP オプションが指定されている場合は) cacerts キーストアファイルで構成された証明書を使って証明応答が検査されます。 -.LP -.LP -証明応答が信頼できるかどうかを決定する方法は次のとおりです。 +־פ򥤥ݡȤȤϡȥοǤ񡢤 (\-trustcacerts ץ󤬻ꤵƤ) cacerts ȥեǹ줿Ȥäƾޤ .LP +Ǥ뤫ɤꤹˡϼΤȤǤ .RS 3 .TP 2 o -\f3証明応答が単一の X.509 証明書である場合\fP、\f3keytool\fP は、証明応答から (ルート CA の) 自己署名証明書に至るまでの信頼チェーンの確立を試みます。証明応答と、証明応答の認証に使われる証明書の階層構造は、\f2alias\fP の新しい証明書チェーンを形成します。信頼チェーンが確立されない場合、証明応答はインポートされません。この場合、\f3keytool\fP は証明書を出力せず、ユーザーに検証を求めるプロンプトを表示します。 ユーザーが証明応答の信頼性を判断するのは、不可能ではなくても非常に困難だからです。 +\f3ñ X.509 Ǥ\fP\f3keytool\fP ϡ (롼 CA ) ʽ̾˻ޤǤογΩߤޤȡǧڤ˻Ȥγع¤ϡ\f2alias\fP οޤ󤬳Ωʤ硢ϥݡȤޤ󡣤ξ硢\f3keytool\fP ϾϤ桼˸ڤץץȤɽޤ桼οȽǤΤϡԲǽǤϤʤƤ˺Ǥ .TP 2 o -\f3証明応答が PKCS#7 形式の証明書チェーンである場合\fP、\f3keytool\fP は、まずチェーンを並べ替えて、ユーザーの証明書が最初に、ルート CA の自己署名証明書が最後にくるようにしたあと、証明応答に含まれるルート CA の証明書と、キーストア内または (\f2\-trustcacerts\fP オプションが指定されている場合は) cacerts キーストアファイル内の信頼できる証明書とをすべて比較し、一致するものがあるかどうかを調べます。一致するものが見つからなかった場合は、ルート CA の証明書の情報を表示し、ユーザーに確認を求めます。 この場合は、表示された証明書のフィンガープリントと、ほかのなんらかの (信頼できる) 情報源 (ルート CA 自身など) から入手したフィンガープリントとを比較します。インポート操作は、証明書を確認する時点で中止できます。ただし、\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 -.RE - -.LP -.LP -証明書応答内の公開鍵が \f2alias\fP の下にすでに格納されているユーザーの公開鍵に一致した場合、古い証明書チェーンが応答内の新しい証明書チェーンで置き換えられます。以前の証明書チェーンを新しい証明書チェーンで置き換えることができるのは、有効な \f2keypass\fP、つまり該当するエントリの非公開鍵を保護するためのパスワードを指定した場合だけです。パスワードを指定しておらず、非公開鍵のパスワードがキーストアのパスワードと異なる場合は、非公開鍵のパスワードの入力を求められます。 -.LP +\f3 PKCS#7 ξޤϰϢ X.509 Ǥ\fPϡ桼ξ񤬺ǽˡ0 ʾ CA 񤬤μˤ褦¤٤ޤ󤬼ʽ̾Υ롼 CA ǽꡢ \f2\-trustcacerts\fP ץ󤬻ꤵƤ硢\f3keytool\fP ϡξȡȥޤϡcacertsץȥեοǤ뤹٤Ƥξȹ礷褦Ȥޤ󤬼ʽ̾Υ롼 CA ǽäƤ餺 \f2\-trustcacerts\fP ץ󤬻ꤵƤ硢\f3keytool\fP ϡȥޤϡcacertsץȥեοǤ񤫤鼫ʽ̾Υ롼 CA 򸫤ĤƤɲä褦Ȥޤξ񤬸Ĥ餺 \f2\-noprompt\fP ץ󤬻ꤵƤʤϡκǸξξ󤬽Ϥ졢桼ϳǧޤ .RE .LP -このコマンドは、以前のリリースでは \f2\-import\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-importcert\fP を使用することをお勧めします。 +θ \f2alias\fP βˤǤ˳ǼƤ桼θ˰פ硢Ť󤬱ο֤ޤξ򿷤֤뤳ȤǤΤϡͭ \f2keypass\fPĤޤ곺륨ȥݸ뤿ΥѥɤꤷǤѥɤꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤ +.LP +ΥޥɤϡΥ꡼Ǥ \f2\-import\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-importcert\fP Ѥ뤳Ȥ򤪴ᤷޤ .TP 3 \-importkeystore \-srckeystore srckeystore \-destkeystore destkeystore {\-srcstoretype srcstoretype} {\-deststoretype deststoretype} [\-srcstorepass srcstorepass] [\-deststorepass deststorepass] {\-srcprotected} {\-destprotected} {\-srcalias srcalias {\-destalias destalias} [\-srckeypass srckeypass] [\-destkeypass destkeypass] } {\-noprompt} {\-srcProviderName src_provider_name} {\-destProviderName dest_provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -ソースキーストアからターゲットキーストアへ、単一のエントリまたはすべてのエントリをインポートします。 +ȥ饿åȥȥءñΥȥޤϤ٤ƤΥȥ򥤥ݡȤޤ .LP -\f2srcalias\fP オプションが指定された場合、このコマンドは、その別名で特定される単一のエントリをターゲットキーストアにインポートします。\f2destalias\fP 経由でターゲット別名が指定されなかった場合、\f2srcalias\fP がターゲット別名として使用されます。ソースのエントリがパスワードで保護されていた場合、\f2srckeypass\fP を使ってそのエントリが回復されます。\f2srckeypass\fP が指定されなかった場合、\f3keytool\fP は \f2srcstorepass\fP を使ってそのエントリを回復しようとします。\f2srcstorepass\fP が指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ターゲットエントリは \f2destkeypass\fP によって保護されます。\f2destkeypass\fP が指定されなかった場合、ターゲットエントリはソースエントリのパスワードによって保護されます。 +\f2srcalias\fP ץ󤬻ꤵ줿硢Υޥɤϡ̾ꤵñΥȥ򥿡åȥȥ˥ݡȤޤ\f2destalias\fP ͳǥå̾ꤵʤä硢\f2srcalias\fP å̾ȤƻѤޤΥȥ꤬ѥɤݸƤ硢\f2srckeypass\fP ȤäƤΥȥ꤬ޤ\f2srckeypass\fP ꤵʤä硢\f3keytool\fP \f2srcstorepass\fP ȤäƤΥȥ褦Ȥޤ\f2srcstorepass\fP ꤵʤäʤä硢桼ϥѥɤϤޤåȥȥ \f2destkeypass\fP ˤäݸޤ\f2destkeypass\fP ꤵʤä硢åȥȥϥȥΥѥɤˤäݸޤ .LP -\f2srcalias\fP オプションが指定されなかった場合、ソースキーストア内のすべてのエントリがターゲットキーストア内にインポートされます。各ターゲットエントリは対応するソースエントリの別名の下に格納されます。ソースのエントリがパスワードで保護されていた場合、\f2srcstorepass\fP を使ってそのエントリが回復されます。\f2srcstorepass\fP が指定されなかったか正しくなかった場合、ユーザーはパスワードの入力を求められます。ソースキーストア内のあるエントリタイプがターゲットキーストアでサポートされていない場合や、あるエントリをターゲットキーストアに格納する際にエラーが発生した場合、ユーザーはそのエントリをスキップして処理を続行するか、あるいは処理を中断するかの選択を求められます。ターゲットエントリはソースエントリのパスワードによって保護されます。 +\f2srcalias\fP ץ󤬻ꤵʤä硢ȥΤ٤ƤΥȥ꤬åȥȥ˥ݡȤޤƥåȥȥб륽ȥ̾β˳ǼޤΥȥ꤬ѥɤݸƤ硢\f2srcstorepass\fP ȤäƤΥȥ꤬ޤ\f2srcstorepass\fP ꤵʤäʤä硢桼ϥѥɤϤޤȥΤ륨ȥ꥿פåȥȥǥݡȤƤʤ䡢륨ȥ򥿡åȥȥ˳Ǽݤ˥顼ȯ硢桼ϤΥȥ򥹥åפƽ³Ԥ뤫뤤ϽǤ뤫ޤåȥȥϥȥΥѥɤˤäݸޤ .LP -ターゲット別名がターゲットキーストア内にすでに存在していた場合、ユーザーは、そのエントリを上書きするか、あるいは異なる別名の下で新しいエントリを作成するかの選択を求められます。 +å̾åȥȥˤǤ¸ߤƤ硢桼ϡΥȥ񤭤뤫뤤ϰۤʤ̾βǿȥ뤫ޤ .LP -\f2\-noprompt\fP を指定した場合、ユーザーは新しいターゲット別名の入力を求められません。既存のエントリはそのターゲット別名で自動的に上書きされます。最後に、インポートできないエントリは自動的にスキップされ、警告が出力されます。 +\f2\-noprompt\fP ꤷ硢桼Ͽå̾Ϥޤ󡣴¸ΥȥϤΥå̾ǼưŪ˾񤭤ޤǸˡݡȤǤʤȥϼưŪ˥åפ졢ٹ𤬽Ϥޤ +.TP 3 +\-printcertreq {\-file file} +.LP +PKCS #10 ξ׵ƤϤޤ׵ϡkeytool \-certreq ޥɤǤޤΥޥɤϡfile ׵ɤ߹ߤޤfile άƤϡɸϤɤ߹ߤޤ .RE -.RE -.SS -データのエクスポート -.LP -.RS 3 +.LP +.SS +ǡΥݡ .LP .RS 3 .TP 3 -\-certreq {\-alias alias} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-certreq {\-alias alias} {\-dname dname} {\-sigalg sigalg} {\-file certreq_file} [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -PKCS#10 形式を使って証明書署名要求 (CSR) を生成します。 +PKCS#10 Ȥäƾ̾׵ (CSR) ޤ .LP -CSR は、証明書発行局 (CA) に送信することを目的としたものです。CA は、証明書要求者を (通常はオフラインで) 認証し、証明書または証明書チェーンを送り返します。 この証明書または証明書チェーンは、キーストア内の既存の証明書チェーン (最初は 1 つの自己署名証明書から構成される) に置き換えて使います。 +CSR ϡȯԶ (CA) 뤳ȤŪȤΤǤCA ϡ׵Ԥ (̾ϥե饤) ǧڤޤϾ֤ޤ ξޤϾϡȥδ¸ξ (ǽ 1 Ĥμʽ̾񤫤鹽) ֤ƻȤޤ .LP -\f2alias\fP に関連付けられた非公開鍵と X.500 識別名は、PKCS#10 証明書要求を作成するのに使われます。非公開鍵はキーストア内ではパスワードによって保護されているので、非公開鍵にアクセスするには、適切なパスワードを提供する必要があります。コマンド行で \f2keypass\fP を指定しておらず、非公開鍵のパスワードがキーストアのパスワードと異なる場合は、非公開鍵のパスワードの入力を求められます。 +\f2alias\fP ˴Ϣդ줿ϡPKCS#10 ׵Τ˻ȤޤϥȥǤϥѥɤˤäݸƤΤǡ˥ˤϡŬڤʥѥɤ󶡤ɬפޤޥɹԤ \f2keypass\fP ꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤdname ꤵƤϡ줬 CSR ǼΤȤƻѤޤʳξϡ̾˴Ϣդ줿 X.500 ̾Ѥޤ .LP -\f2sigalg\fP には、CSR に署名を付けるときに使うアルゴリズムを指定します。 +\f2sigalg\fP ˤϡCSR ˽̾դȤ˻Ȥ르ꥺꤷޤ .LP -CSR は、ファイル \f2certreq_file\fP に格納されます。ファイルが指定されていない場合は、標準出力に CSR が出力されます。 +CSR ϡե \f2certreq_file\fP ˳Ǽޤե뤬ꤵƤʤϡɸϤ CSR Ϥޤ .LP -CA からの応答をインポートするには、\f2importcert\fP コマンドを使います。 +CA α򥤥ݡȤˤϡ\f2importcert\fP ޥɤȤޤ .TP 3 \-exportcert {\-alias alias} {\-file cert_file} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-rfc} {\-v} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP に関連付けられた証明書を (キーストアから) 読み込み、ファイル \f2cert_file\fP に格納します。 +\f2alias\fP ˴Ϣդ줿 (ȥ) ɤ߹ߡե \f2cert_file\fP ˳Ǽޤ .LP -ファイルが指定されていない場合は、標準出力に証明書が出力されます。 +ե뤬ꤵƤʤϡɸϤ˾񤬽Ϥޤ .LP -デフォルトでは、バイナリ符号化方式の証明書が出力されます。 ただし、\f2\-rfc\fP オプションを指定した場合は、出力可能符号化方式の証明書が出力されます。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。 +ǥեȤǤϡХʥ沽ξ񤬽Ϥޤ \-rfc ץꤷϡϲǽ沽ξ񤬽Ϥޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ .LP -\f2alias\fP が、信頼できる証明書を参照している場合は、該当する証明書が出力されます。それ以外の場合、\f2alias\fP は、関連付けられた証明書チェーンを持つ鍵エントリを参照します。この場合は、チェーン内の最初の証明書が返されます。この証明書は、\f2alias\fP によって表されるエンティティーの公開鍵を認証する証明書です。 +\f2alias\fP Ǥ򻲾ȤƤϡ񤬽Ϥޤʳξ硢\f2alias\fP ϡϢդ줿ĸȥ򻲾Ȥޤξϡκǽξ֤ޤξϡ\f2alias\fP ˤäɽ륨ƥƥθǧڤǤ .LP -このコマンドは、以前のリリースでは \f2\-export\fP という名前でした。この古い名前は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。ただし、今後はわかりやすいように、新しい名前 \f2\-exportcert\fP を使用することをお勧めします。 +ΥޥɤϡΥ꡼Ǥ \f2\-export\fP Ȥ̾ǤθŤ̾ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤϤ狼䤹褦ˡ̾ \f2\-exportcert\fP Ѥ뤳Ȥ򤪴ᤷޤ .RE .LP -.RE .SS -データの表示 -.LP -.RS 3 - +ǡɽ .LP .RS 3 .TP 3 \-list {\-alias alias} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v | \-rfc} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP で特定されるキーストアエントリの内容を (標準出力に) 出力します。別名が指定されていない場合は、キーストア全体の内容が表示されます。 +\f2alias\fP ꤵ륭ȥȥƤ (ɸϤ) Ϥޤ̾ꤵƤʤϡȥΤƤɽޤ .LP -このコマンドは、デフォルトでは証明書の MD5 フィンガープリントを表示します。\f2\-v\fP オプションが指定されている場合は、所有者、発行者、シリアル番号、拡張機能などの付加的な情報とともに、人間が読むことのできる形式で証明書が表示されます。\f2\-rfc\fP オプションが指定されている場合は、出力可能符号化方式で証明書の内容が表示されます。 出力可能符号化方式は、インターネット RFC 1421 証明書符号化規格で定義されています。 +ΥޥɤϡǥեȤǤϾ SHA1 ե󥬡ץȤɽޤ \f2\-v\fP ץ󤬻ꤵƤϡͭԡȯԼԡꥢֹ桢ĥǽʤɤղŪʾȤȤˡʹ֤ɤळȤΤǤǾɽޤ \f2\-rfc\fP ץ󤬻ꤵƤϡϲǽ沽ǾƤɽޤ ϲǽ沽ϡ󥿡ͥå RFC 1421 沽ʤƤޤ .LP -\f2\-v\fP オプションと \f2\-rfc\fP オプションとを同時に指定することはできません。 +\f2\-v\fP ץ \f2\-rfc\fP ץƱ˻ꤹ뤳ȤϤǤޤ .TP 3 -\-printcert {\-file cert_file} {\-v} {\-Jjavaoption} +\-printcert {\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption} .LP -ファイル +ե \f2cert_file\fP\f2host:port\fP ˤ SSL СޤϽ̾դ JAR ե \f2JAR_file\fP ( \f2\-jarfile\fP ץ) ɤ߹ߡʹ֤ɤळȤΤǤǾƤɽޤݡȤꤵƤʤϡɸ HTTPS ݡ 443 ꤵޤ \f2\-sslserver\fP \f2\-file\fP ץƱ˻ꤹ뤳ȤϤǤޤƱ˻ꤹȡ顼𤵤ޤץ󤬻ꤵƤʤϡɸϤɤ߹ߤޤ .LP -インターネット RFC 1421 証明書符号化規格で定義されています。 +\f2\-rfc\fP ꤵƤ硢keytool ϡ󥿡ͥå RFC 1421 ɸƤ褦ˡPEM ⡼ɤǾϤޤ .LP -注:このコマンドはキーストアとは関係なく動作します。 +եޤɸϤɤ߹硢ξϡ󥿡ͥå RFC 1421 ɸƤ褦ˡХʥ沽ޤϽϲǽ沽ɽǤޤ +.LP +SSL Сեظˤϡ \f2\-J\-Dhttps.proxyHost=proxyhost\fP \f2\-J\-Dhttps.proxyPort=proxyport\fP 򥳥ޥɹԤǻꤷơץȥͥ󥰤ѤǤޤܺ٤ϡ +.na +\f2JSSE ե󥹥ɡ\fP @ +.fi +http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html򻲾ȤƤ +.LP +\f3\fP: ΥץϥȥȤϴطʤѤǤޤ +.TP 3 +\-printcrl \-file crl_ {\-v} +.LP +ե \f2crl_file\fP μäꥹ (CRL) ɤ߹ߤޤ +.LP +μäꥹ (CRL) ϡǥȯԤȯԶ (CA) ˤäƼä줿ǥΥꥹȤǤCA ϡ\f2crl_file\fP ޤ +.LP +\f3\fP: ΥץϥȥȤϴطʤѤǤޤ .RE .LP -.RE .SS -キーストアの管理 -.LP -.RS 3 - +ȥδ .LP .RS 3 .TP 3 \-storepasswd [\-new new_storepass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption} .LP -キーストアの内容の整合性を保護するために使うパスワードを変更します。\f2new_storepass\fP には、新しいパスワードを指定します。 \f2new_storepass\fP は、6 文字以上でなければなりません。 +ȥƤݸ뤿˻Ȥѥɤѹޤ\f2new_storepass\fP ˤϡѥɤꤷޤnew_storepass ϡ6 ʸʾǤʤФʤޤ .TP 3 \-keypasswd {\-alias alias} [\-keypass old_keypass] [\-new new_keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-Jjavaoption} .LP -\f2alias\fP によって特定される非公開/秘密鍵を保護するためのパスワードを、\f2old_keypass\fP から \f2new_keypass\fP に変更します。 \f2new_keypass\fP は、6 文字以上でなければなりません。 +\f2alias\fP ˤäꤵ/̩ݸ뤿Υѥɤ\f2old_keypass\fP \f2new_keypass\fP ѹޤnew_keypass ϡ6 ʸʾǤʤФʤޤ .LP -コマンド行で \f2\-keypass\fP オプションを指定しておらず、鍵のパスワードがキーストアのパスワードと異なる場合は、鍵のパスワードの入力を求められます。 +ޥɹԤ \f2\-keypass\fP ץꤷƤ餺ΥѥɤȥΥѥɤȰۤʤϡΥѥɤϤޤ .LP -コマンド行で \f2\-new\fP オプションを指定しなかった場合は、新しいパスワードの入力を求められます。 +ޥɹԤ \f2\-new\fP ץꤷʤäϡѥɤϤޤ .TP 3 \-delete [\-alias alias] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -\f2alias\fP によって特定されるエントリをキーストアから削除します。コマンド行で別名を指定しなかった場合は、別名の入力を求められます。 +\f2alias\fP ˤäꤵ륨ȥ򥭡ȥޤޥɹԤ̾ꤷʤäϡ̾Ϥޤ .TP 3 \-changealias {\-alias alias} [\-destalias destalias] [\-keypass keypass] {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerName provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -指定された \f2alias\fP から新しい別名 \f2destalias\fP へ、既存のキーストアエントリを移動します。ターゲット別名が指定されなかった場合、このコマンドはその入力を求めます。元のエントリがエントリパスワードで保護されていた場合、「\-keypass」オプション経由でそのパスワードを指定できます。鍵パスワードが指定されなかった場合、\f2storepass\fP (指定された場合) がまず試みられます。その試みが失敗すると、ユーザーはパスワードの入力を求められます。 +ꤵ줿 \f2alias\fP 鿷̾ \f2destalias\fP ء¸Υȥȥưޤå̾ꤵʤä硢ΥޥɤϤϤޤΥȥ꤬ȥѥɤݸƤ硢\-keypassץץͳǤΥѥɤǤޤѥɤꤵʤä硢\f2storepass\fP (ꤵ줿) ޤߤޤλߤԤȡ桼ϥѥɤϤޤ .RE .LP -.RE .SS -ヘルプの表示 -.LP -.RS 3 - +إפɽ .LP .RS 3 .TP 3 \-help .LP -基本的なコマンドとそのオプションの一覧を表示します。 +ŪʥޥɤȤΥץΰɽޤ +.LP +Υޥɤξܺ٤ˤĤƤϡΤ褦ϤƤ \f2command_name\fP ϥޥɤ̾Ǥ +.nf +\f3 +.fl + keytool \-\fP\f4command_name\fP\f3 \-help +.fl +\fP +.fi .RE .LP -.RE -.SH "例" -.LP - +.SH "" .LP .LP -ここでは、自分の鍵のペアおよび信頼できるエンティティーからの証明書を管理するためのキーストアを作成する場合を例として示します。 +ǤϡʬθΥڥӿǤ륨ƥƥξ뤿ΥȥȤƼޤ .LP .SS -鍵のペアの生成 -.LP -.RS 3 - +Υڥ .LP .LP -まず、キーストアを作成して鍵のペアを生成する必要があります。次に示すのは、実行するコマンドの例です。 +ޤȥƸΥڥɬפޤ˼Τϡ¹Ԥ륳ޥɤǤ .LP .nf \f3 .fl - keytool \-genkeypair \-dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" + keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl \-alias business \-keypass kpi135 \-keystore /working/mykeystore .fl @@ -485,16 +1096,16 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .LP .LP -注:このコマンドは 1 行に入力しなければなりません。例で複数行に入力しているのは読みやすくするためです。 +: Υޥɤ 1 ԤϤʤФʤޤʣԤϤƤΤɤߤ䤹뤿Ǥ .LP .LP -この例では、working ディレクトリに mykeystore という名前のキーストアを作成し (キーストアはまだ存在していないと仮定する)、作成したキーストアにパスワード ab987c を割り当てます。生成する公開鍵と非公開鍵のペアに対応するエンティティーの「識別名」は、通称が「Mark Jones」、組織単位が「JavaSoft」、組織が「Sun」、2 文字の国番号が「US」です。公開鍵と非公開鍵のサイズはどちらも 1024 ビットで、鍵の作成にはデフォルトの DSA 鍵生成アルゴリズムを使用します。 +Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥ˥ѥ ab987c ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ .LP .LP -このコマンドは、公開鍵と識別名情報を含む自己署名証明書 (デフォルトの SHA1withDSA 署名アルゴリズムを使用) を作成します。証明書の有効期間は 180 日です。 証明書は、別名「business」で特定されるキーストアエントリ内の非公開鍵に関連付けられます。非公開鍵にはパスワード「kpi135」が割り当てられます。 +Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϥѥɡkpi135פƤޤ .LP .LP -オプションのデフォルト値を使う場合は、上に示したコマンドを大幅に短くすることができます。実際には、オプションを 1 つも指定せずにコマンドを実行することも可能です。 デフォルト値を持つオプションでは、オプションを指定しなければデフォルト値が使われ、必要な値については入力を求められます。たとえば、単に次のように入力することもできます。 +ץΥǥեͤȤϡ˼ޥɤû뤳ȤǤޤºݤˤϡץ 1 Ĥꤻ˥ޥɤ¹Ԥ뤳ȤǽǤ ǥեͤĥץǤϡץꤷʤХǥեͤȤ졢ɬפͤˤĤƤϤޤȤСñ˼Τ褦Ϥ뤳ȤǤޤ .LP .nf \f3 @@ -505,19 +1116,17 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .fi .LP -この場合は、mykey という別名でキーストアエントリが作成され、新しく生成された鍵のペア、および 90 日間有効な証明書がこのエントリに格納されます。このエントリは、ホームディレクトリ内の .keystore という名前のキーストアに置かれます。このキーストアがまだ存在していない場合は、作成されます。識別名情報、キーストアのパスワード、および非公開鍵のパスワードについては、入力を求められます。 .LP -以下では、オプションを指定しないで \f2\-genkeypair\fP コマンドを実行したものとして例を示します。 情報の入力を求められた場合は、最初に示した \f2\-genkeypair\fP コマンドの値を入力したものとします (たとえば、非公開鍵のパスワードには kpi135 と指定)。 +ξϡmykey Ȥ̾ǥȥȥ꤬졢줿Υڥ 90 ͭʾ񤬤Υȥ˳ǼޤΥȥϡۡǥ쥯ȥ .keystore Ȥ̾Υȥ֤ޤΥȥޤ¸ߤƤʤϡޤ̾󡢥ȥΥѥɡΥѥɤˤĤƤϡϤޤ +.LP +.LP +ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤСΥѥɤˤ kpi135 Ȼ) .LP -.RE .SS -証明書発行局に対する署名付き証明書の要求 -.LP -.RS 3 - +ȯԶɤФ̾դ׵ .LP .LP -現時点で手元にあるのは、1 通の自己署名証明書だけです。証明書に証明書発行局 (CA) の署名が付いていれば、ほかのユーザーから証明書が信頼できる可能性も高くなります。CA の署名を取得するには、まず、証明書署名要求 (CSR) を生成します。 たとえば、次のようにします。 +Ǽ긵ˤΤϡ1 ̤μʽ̾Ǥ˾ȯԶ (CA) ν̾դƤСۤΥ桼񤬿Ǥǽ⤯ʤޤCA ν̾ˤϡޤ̾׵ (CSR) ޤ ȤСΤ褦ˤޤ .LP .nf \f3 @@ -528,41 +1137,39 @@ CA からの応答をインポートするには、\f2importcert\fP コマンド .fi .LP -CSR (デフォルト別名「mykey」によって特定されるエンティティーの CSR) が作成され、MarkJ.csr という名前のファイルに置かれます。このファイルは、VeriSign などの CA に提出します。 CA は要求者を (通常はオフラインで) 認証し、要求者の公開鍵を認証した署名付きの証明書を送り返します。場合によっては、CA が証明書のチェーンを返すこともあります。 証明書のチェーンでは、各証明書がチェーン内のその前の署名者の公開鍵を認証します。 -.RE +.LP +CSR (ǥե̾mykeyפˤäꤵ륨ƥƥ CSR) 졢MarkJ.csr Ȥ̾Υե֤ޤΥեϡVeriSign ʤɤ CA Фޤ CA ׵Ԥ (̾ϥե饤) ǧڤ׵Ԥθǧڤ̾դξ֤ޤˤäƤϡCA Υ֤Ȥ⤢ޤΥǤϡƾ񤬥Τν̾Ԥθǧڤޤ +.LP .SS -CA からの証明書のインポート -.LP -.RS 3 - +CA ξΥݡ .LP .LP -作成した自己署名証明書は、証明書チェーンで置き換える必要があります。 証明書チェーンでは、各証明書が、「ルート」CA を起点とするチェーン内の次の証明書の署名者の公開鍵を認証します。 +ʽ̾ϡ֤ɬפޤǤϡƾ񤬡֥롼ȡCA Ȥμξν̾Ԥθǧڤޤ .LP .LP -CA からの証明応答をインポートするには、キーストアか、(importcert コマンド で説明しているように) \f2cacerts\fP キーストアファイル内に 1 つ以上の「信頼できる証明書」がある必要があります。 +CA ξ򥤥ݡȤˤϡȥ \f2cacerts\fP ȥե (importcert ޥɤ) 1 İʾΡֿǤפɬפޤ .LP .RS 3 .TP 2 o -証明応答が証明書チェーンの場合は、チェーンのトップの証明書 (その CA の公開鍵を認証する「ルート」CA の証明書) だけを必要とする +ξϡΥȥåפξ ( CA θǧڤ֥롼ȡCA ξ) ɬפȤ .TP 2 o -証明応答が単一の証明書の場合は、証明書に署名した CA の発行用の証明書が必要で、その証明書が自己署名されない場合は、さらにその証明書の署名者用の証明書を必要とする。 このようにして自己署名される「ルート」CA の証明書までそれぞれ証明書を必要とする +ñξξϡ˽̾ CA ȯѤξɬפǡξ񤬼ʽ̾ʤϡˤξν̾ѤξɬפȤ롣 Τ褦ˤƼʽ֥̾롼ȡCA ξޤǤ줾ɬפȤ .RE .LP .LP -cacerts キーストアファイルは、5 つの VeriSign ルート CA 証明書を含んだ状態で出荷されているので、VeriSign の証明書を、信頼できる証明書としてキーストア内にインポートする必要はないかもしれません。ただし、ほかの CA に対して署名付き証明書を要求していて、この CA の公開鍵を認証する証明書が、cacerts にまだ追加されていない場合は、該当する CA からの証明書を、「信頼できる証明書」としてインポートする必要があります。 +cacerts ȥեϡĤ VeriSign 롼 CA ޤ֤ǽв٤ƤΤǡVeriSign ξ򡢿ǤȤƥȥ˥ݡȤɬפϤʤ⤷ޤ󡣤ۤ CA Фƽ̾դ׵ᤷƤơ CA θǧڤ񤬡cacerts ˤޤɲäƤʤϡ CA ξ򡢡ֿǤפȤƥݡȤɬפޤ .LP .LP -通常、CA からの証明書は、自己署名証明書、またはほかの CA によって署名された証明書です (後者の場合は、該当するほかの CA の公開鍵を認証する証明書も必要)。たとえば、ABC という企業が CA だとします。 このとき、この CA の公開鍵を認証する自己署名証明書と考えられる ABCCA.cer という名前のファイルを、ABC から入手したとします。 +̾CA ξϡʽ̾񡢤ޤϤۤ CA ˤäƽ̾줿Ǥ (Ԥξϡۤ CA θǧڤɬ)ȤСABC ȤȤ CA ȤޤΤȤ CA θǧڤ뼫ʽ̾ȹͤ ABCCA.cer Ȥ̾ΥեABC ꤷȤޤ .LP .LP -「信頼できる証明書」として証明書をインポートするときは、証明書が有効であることを慎重に確認する必要があります。まず、証明書の内容を表示し (\f3keytool\fP \f2\-printcert\fP コマンドを使用するか、または \f2\-noprompt\fP オプションを指定しないで \f3keytool\fP \f2\-importcert\fP コマンドを使用)、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。証明書を送信した人物に連絡し、この人物が提示した (または安全な公開鍵のリポジトリによって提示される) フィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中でほかの何者か (攻撃者など) による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのものを信頼することになります。 +ֿǤפȤƾ򥤥ݡȤȤϡͭǤ뤳Ȥ򿵽Ť˳ǧɬפޤޤƤɽ (\f3keytool\fP \f2\-printcert\fP ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \f3keytool\fP \f2\-importcert\fP ޥɤѤ ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤʪϢοʪ󼨤 (ޤϰʸΥݥȥˤä󼨤) ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤΤꤹ뤳Ȥˤʤޤ .LP .LP -ABCCA.cer を有効な証明書として信頼する場合は、証明書をキーストアに追加できます。 たとえば、次のようにします。 +ABCCA.cer ͭʾȤƿꤹϡ򥭡ȥɲäǤޤ ȤСΤ褦ˤޤ .LP .nf \f3 @@ -573,19 +1180,17 @@ ABCCA.cer を有効な証明書として信頼する場合は、証明書をキ .fi .LP -ABCCA.cer ファイルのデータを含む「信頼できる証明書」のエントリがキーストア内に作成され、該当するエントリに abc という別名が割り当てられます。 -.RE +.LP +ABCCA.cer եΥǡޤֿǤפΥȥ꤬ȥ˺졢륨ȥ abc Ȥ̾Ƥޤ +.LP .SS -CA からの証明応答のインポート -.LP -.RS 3 - +CA ξΥݡ .LP .LP -証明書署名要求の提出先の CA の公開鍵を認証する証明書をインポートしたあとは (または同種の証明書がすでに cacerts ファイル内に存在している場合は)、証明応答をインポートし、自己署名証明書を証明書チェーンで置き換えることができます。この証明書チェーンは、CA の応答がチェーンの場合、証明書署名要求に対する応答として CA から送り返された証明書チェーンです。 また、CA の応答が単一の証明書の場合は、この証明応答と、インポート先のキーストア内または cacerts キーストアファイル内にすでに存在する信頼できる証明書とを使って構築した証明書チェーンです。 +̾׵ CA θǧڤ򥤥ݡȤȤ (ޤƱξ񤬤Ǥ cacerts ե¸ߤƤ)򥤥ݡȤʽ֤̾뤳ȤǤޤξϡCA αξ硢̾׵ФȤ CA ֤줿Ǥ ޤCA αñξξϡξȡݡΥȥޤ cacerts ȥեˤǤ¸ߤ뿮ǤȤȤäƹۤǤ .LP .LP -たとえば、証明書署名要求を VeriSign に送信したとします。送り返された証明書の名前が VSMarkJ.cer だとすると、次のようにして応答をインポートできます。 +ȤС̾׵ VeriSign Ȥޤ֤줿̾ VSMarkJ.cer ȤȡΤ褦ˤƱ򥤥ݡȤǤޤ .LP .nf \f3 @@ -594,18 +1199,16 @@ CA からの証明応答のインポート .fl \fP .fi -.RE .LP .SS -公開鍵を認証する証明書のエクスポート +ǧڤΥݡ .LP -.RS 3 - .LP -たとえば、jarsigner(1) を使って Java ARchive (JAR) ファイルに署名したとします。この JAR ファイルはクライアントによって使われますが、クライアント側では署名を認証したいと考えています。 +ȤСjarsigner(1) ġȤä Java ARchive (JAR) ե˽̾դȤޤ JAR եϥ饤ȤˤäƻȤޤ饤¦ǤϽ̾ǧڤȹͤƤޤ .LP -クライアントが署名を認証する方法の 1 つに、まず自分の公開鍵の証明書を「信頼できる」エントリとしてクライアントのキーストアにインポートする方法があります。そのためには、証明書をエクスポートして、クライアントに提供します。たとえば、次のようにして、証明書を \f2MJ.cer\fP という名前のファイルにコピーします。 このエントリには「mykey」という別名が使われているとします。 +.LP +饤Ȥ̾ǧڤˡ 1 ĤˡޤʬθξֿǤץȥȤƥ饤ȤΥȥ˥ݡȤˡޤΤˤϡ򥨥ݡȤơ饤Ȥ󶡤ޤȤСΤ褦ˤơ \f2MJ.cer\fP Ȥ̾Υե˥ԡޤΥȥˤϡmykeyפȤ̾ȤƤȤޤ .LP .nf \f3 @@ -616,24 +1219,22 @@ CA からの証明応答のインポート .fi .LP -証明書と署名付き JAR ファイルを入手したクライアントは、\f3jarsigner\fP ツールを使って署名を認証できます。 -.RE +.LP +Ƚ̾դ JAR եꤷ饤Ȥϡ\f3jarsigner\fP ġȤäƽ̾ǧڤǤޤ +.LP .SS -キーストアのインポート -.LP -.RS 3 - +ȥΥݡ .LP .LP -コマンド「importkeystore」を使えば、あるキーストアの全体を別のキーストア内にインポートできます。 これは、鍵や証明書といったソースキーストア内のすべてのエントリが、単一のコマンドを使ってターゲットキーストア内にインポートされることを意味します。このコマンドを使えば、異なるタイプのキーストア内に含まれるエントリをインポートすることができます。インポート時には、ターゲットキーストア内の新しいエントリはすべて、元と同じ別名および (秘密鍵や非公開鍵の場合は) 保護用パスワードを持ちます。ソースキーストア内の非公開鍵や秘密鍵の回復時に問題が発生した場合、\f3keytool\fP はユーザーにパスワードの入力を求めます。このコマンドは、別名の重複を検出すると、ユーザーに新しい別名の入力を求めます。 ユーザーは、新しい別名を指定することも、単純に既存の別名の上書きを \f3keytool\fP に許可することもできます。 +ޥɡimportkeystoreפȤС륭ȥΤ̤Υȥ˥ݡȤǤޤϡȤäȥΤ٤ƤΥȥ꤬ñΥޥɤȤäƥåȥȥ˥ݡȤ뤳Ȥ̣ޤΥޥɤȤСۤʤ륿פΥȥ˴ޤޤ륨ȥ򥤥ݡȤ뤳ȤǤޤݡȻˤϡåȥȥοȥϤ٤ơƱ̾ (̩ξ) ݸѥѥɤޤȥ̩β꤬ȯ硢\f3keytool\fP ϥ桼˥ѥɤϤޤΥޥɤϡ̾νʣ򸡽Фȡ桼˿̾Ϥޤ桼ϡ̾ꤹ뤳Ȥ⡢ñ˴¸̾ξ񤭤 \f3keytool\fP ˵Ĥ뤳ȤǤޤ .LP .LP -たとえば、通常の JKS タイプのキーストア key.jks 内のエントリを PKCS #11 タイプのハードウェアベースのキーストア内にインポートするには、次のコマンドを使用できます。 +ȤС̾ JKS פΥȥ key.jks Υȥ PKCS #11 פΥϡɥ١Υȥ˥ݡȤˤϡΥޥɤѤǤޤ .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl @@ -646,12 +1247,12 @@ keytool \-importkeystore .LP .LP -また、importkeystore コマンドを使えば、あるソースキーストア内の単一のエントリをターゲットキーストアにインポートすることもできます。この場合、上記の例で示したオプションに加え、インポート対象となる別名を指定する必要があります。srcalias オプションを指定する場合には、ターゲット別名もコマンド行から指定できるほか、秘密/非公開鍵の保護用パスワードやターゲット保護用パスワードも指定できます。そうすれば、プロンプトのまったく表示されない \f3keytool\fP コマンドを発行できます。これは、\f3keytool\fP コマンドをスクリプトファイルに含める際に非常に便利です。 次に例を示します。 +ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤСץץȤΤޤäɽʤ \f3keytool\fP ޥɤȯԤǤޤϡ\f3keytool\fP ޥɤ򥹥ץȥե˴ޤݤǤ򼨤ޤ .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl @@ -667,55 +1268,74 @@ keytool \-importkeystore .fl \fP .fi -.RE - -.LP -.SH "用語と警告" -.LP .LP .SS -キーストア +Ū SSL СѤξ .LP -.RS 3 +.LP +ˡ3 ĤΥƥƥĤޤ롼 CA (root) CA (ca) SSL С (server) ѤθڥȾ keytool ޥɤ򼨤ޤ٤ƤξƱȥ˳Ǽ褦ˤƤǤϡΥ르ꥺȤ RSA ꤹ뤳Ȥ򤪴ᤷޤ +.LP +.nf +\f3 +.fl +keytool \-genkeypair \-keystore root.jks \-alias root \-ext bc:c +.fl +keytool \-genkeypair \-keystore ca.jks \-alias ca \-ext bc:c +.fl +keytool \-genkeypair \-keystore server.jks \-alias server +.fl + +.fl +keytool \-keystore root.jks \-alias root \-exportcert \-rfc > root.pem +.fl + +.fl +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-certreq \-alias ca | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore root.jks \-gencert \-alias root \-ext BC=0 \-rfc > ca.pem +.fl +keytool \-keystore ca.jks \-importcert \-alias ca \-file ca.pem +.fl + +.fl +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore server.jks \-certreq \-alias server | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE \-rfc > server.pem +.fl +cat root.pem ca.pem server.pem | keytool \-keystore server.jks \-importcert \-alias server +.fl +\fP +.fi .LP -キーストアは、暗号化の鍵と証明書を格納するための機能です。 -.RE +.SH "Ѹȷٹ" +.LP +.SS +KeyStore +.LP +.LP +ȥϡŹ沽θȾǼ뤿εǽǤ +.LP .RS 3 .TP 2 o -.TP 2 -o -\f3キーストアのエントリ\fP -.RS 3 - +\f3ȥΥȥ\fP .LP -キーストアには異なるタイプのエントリを含めることができます。\f3keytool\fP でもっとも適用範囲の広いエントリタイプは、次の 2 つです。 +ȥˤϰۤʤ륿פΥȥޤ뤳ȤǤޤ\f3keytool\fP ǤäȤŬϰϤιȥ꥿פϡ 2 ĤǤ .RS 3 .TP 3 1. -\f3鍵のエントリ\fP \- 各エントリは、非常に重要な暗号化の鍵の情報を保持します。この情報は、許可していないアクセスを防ぐために、保護された形で格納されます。一般に、この種のエントリとして格納される鍵は、秘密鍵か、対応する公開鍵の証明書チェーンを伴う非公開鍵です。\f3keytool\fP がこの両方のタイプのエントリを処理できるのに対し、\f3jarsigner\fP ツールは後者のタイプのエントリ、つまり非公開鍵とそれに関連付けられた証明書チェーンのみを処理します。 +\f3Υȥ\fP \- ƥȥϡ˽פʰŹ沽θξݻޤξϡĤƤʤɤˡݸ줿dzǼޤ ̤ˡμΥȥȤƳǼ븰ϡ̩бξȼǤ\f3keytool\fP ξΥפΥȥǤΤФ\f3jarsigner\fP ġϸԤΥפΥȥꡢĤޤȤ˴Ϣդ줿Τߤޤ .TP 3 2. -\f3信頼できる証明書のエントリ\fP \- 各エントリは、第三者からの公開鍵証明書を 1 つ含んでいます。この証明書は、「信頼できる証明書」と呼ばれます。 それは、証明書内の公開鍵が、証明書の「Subject」(所有者) によって特定されるアイデンティティーに由来するものであることを、キーストアの所有者が信頼するからです。証明書の発行者は、証明書に署名を付けることによって、その内容を保証します。 -.RE - -.LP +\f3ǤΥȥ\fP \- ƥȥϡ軰Ԥθ 1 ĴޤǤޤξϡֿǤפȸƤФޤ ϡθΡSubject(ͭ) ˤäꤵ륢ǥƥƥͳ褹ΤǤ뤳Ȥ򡢥ȥνͭԤꤹ뤫ǤȯԼԤϡ˽̾դ뤳ȤˤäơƤݾڤޤ .RE .TP 2 o -\f3キーストアの別名\fP -.RS 3 +\f3ȥ̾\fP .LP -キーストアのすべてのエントリ (鍵および信頼できる証明書) は、一意の「別名」を介してアクセスされます。 +ȥΤ٤ƤΥȥ (ӿǤ) ϡդΡ̾פ𤷤ƥޤ .LP +̾ꤹΤϡ\-genseckey ޥɤȤä̩ꡢ\-genkeypair ޥɤȤäƸڥ () ꡢ\-importcert ޥɤȤäƾޤϾǤΥꥹȤɲäꤹʤɡΥƥƥ򥭡ȥɲäǤʸ塢\f3keytool\fP ޥɤǥƥƥ򻲾ȤϡΤȤ˻ꤷ̾Ѥɬפޤ .LP -別名を指定するのは、\-genseckey コマンドを使って秘密鍵を生成したり、\-genkeypair コマンドを使って鍵ペア (公開鍵と非公開鍵) を生成したり、\-importcert コマンドを使って証明書または証明書チェーンを信頼できる証明書のリストに追加したりするなど、特定のエンティティーをキーストアに追加する場合です。これ以後、\f3keytool\fP コマンドでエンティティーを参照する場合は、このときに指定した別名を使用する必要があります。 -.LP -.LP -たとえば、\f2duke\fP という別名を使って新しい公開鍵と非公開鍵のペアを生成し、公開鍵を自己署名証明書 (「証明書チェーン」を参照) でラップするとします。 この場合は、次のコマンドを実行します。 -.LP +ȤС\f2duke\fP Ȥ̾ȤäƿΥڥ򼫸ʽ̾ (־פ򻲾) ǥåפȤޤ ξϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -723,9 +1343,8 @@ o .fl \fP .fi - .LP -ここでは、初期パスワードとして dukekeypasswd を指定しています。 以後、別名 \f2duke\fP に関連付けられた非公開鍵にアクセスするコマンドを実行するときは、このパスワードが必要になります。duke の非公開鍵のパスワードをあとから変更するには、次のコマンドを実行します。 +ǤϡѥɤȤ dukekeypasswd ꤷƤޤ ʸ塢̾ duke Ϣդ줿˥륳ޥɤ¹ԤȤϡΥѥɤɬפˤʤޤ duke Υѥɤ򤢤ȤѹˤϡΥޥɤ¹Ԥޤ .nf \f3 .fl @@ -733,49 +1352,37 @@ o .fl \fP .fi - .LP -パスワードが、dukekeypasswd から newpass に変更されます。 +ѥɤdukekeypasswd newpass ѹޤ .LP -注 \-テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 -.LP -.RE +: ƥȤŪȤ硢ޤϰǤ뤳Ȥ狼äƤ륷ƥǼ¹ԤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤɬפʥѥɤΥץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ .TP 2 o -\f3キーストアの実装\fP -.RS 3 -\f2java.security\fP パッケージで提供される \f2KeyStore\fP クラスには、キーストア内の情報に対するアクセスと変更を行うための明確に定義されたインタフェースが用意されています。キーストアの固定実装としては、それぞれが特定の「タイプ」のキーストアを対象とする複数の異なる実装が存在可能です。 +\f3ȥμ\fP .LP -現在、\f3keytool\fP と \f3jarsigner\fP の 2 つのコマンド行ツールと、\f3Policy Tool\fP という名前の 1 つの GUI ベースのツールが、キーストアの実装を使用しています。\f2KeyStore\fP は public として使用可能なので、JDK ユーザーは \f2KeyStore\fP を使ったほかのセキュリティーアプリケーションも作成できます。 +\f2KeyStore\fP 饹 ( \f2java.security\fP ѥå󶡤) ˤϡȥξФ륢ѹԤΤ줿󥿥եѰդƤޤȥθȤƤϡ줾줬Ρ֥ספΥȥоݤȤʣΰۤʤ¸߲ǽǤ .LP +ߡ\f3keytool\fP \f3jarsigner\fP 2 ĤΥޥɹԥġȡ\f3Policy Tool\fP Ȥ̾ 1 Ĥ GUI ١Υġ뤬ȥμѤƤޤ \f2KeyStore\fP public ȤƻѲǽʤΤǡJDK 桼 KeyStore ȤäۤΥƥץꥱǤޤ .LP -キーストアには、Sun が提供する組み込みのデフォルトの実装があります。これは、JKS という名前の独自のキーストアタイプ (形式) を利用するもので、キーストアをファイルとして実装しています。この実装では、個々の非公開鍵は個別のパスワードによって保護され、キーストア全体の整合性も (非公開鍵とは別の) パスワードによって保護されます。 +ȥˤϡOracle 󶡤Ȥ߹ߤΥǥեȤμޤϡJKS Ȥ̾ȼΥȥ () ѤΤǡȥեȤƼƤޤμǤϡġϸ̤Υѥɤˤäݸ졢ȥΤ (Ȥ̤) ѥɤˤäݸޤ .LP -.LP -キーストアの実装は、プロバイダベースです。具体的には、\f2KeyStore\fP が提供するアプリケーションインタフェースは、Service Provider Interface (SPI) という形で実装されています。つまり、対応する \f2KeystoreSpi\fP 抽象クラス (これも \f2java.security\fP パッケージに含まれている) があり、このクラスが Service Provider Interface のメソッドを定義しています。 これらのメソッドは、「プロバイダ」が実装しなければなりません。ここで、「プロバイダ」とは、Java Security API によってアクセス可能なサービスのサブセットに対し、その固定実装を提供するパッケージまたはパッケージの集合のことです。したがって、キーストアの実装を提供するには、 +ȥμϡץХ١ǤŪˤϡ \f2KeyStore\fP 󶡤륢ץꥱ󥤥󥿥եϡService Provider Interface (SPI) ȤǼƤޤĤޤꡢб \f2KeystoreSpi\fP ݥ饹 ( \f2java.security\fP ѥå˴ޤޤƤ) ꡢΥ饹֥ץХפɬפΤ Service Provider Interface Υ᥽åɤƤޤǡ֥ץХפȤϡJava Security API ˤäƥǽʥӥΥ֥åȤФθ󶡤ѥåޤϥѥåνΤȤǤäơȥμ󶡤ˤϡ .na -\f2「Java(TM) 暗号化アーキテクチャー用プロバイダの実装方法」\fP @ +\f2Java(TM) Ź沽ƥ㡼ѥץХμˡ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlで説明しているように、クライアントが「プロバイダ」を実装し、KeystoreSpi サブクラスの実装を提供する必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.htmlƤ褦ˡ饤Ȥ֥ץХפKeystoreSpi ֥饹μ󶡤ɬפޤ .LP +ץꥱǤϡKeyStore 饹󶡤 getInstance եȥ᥽åɤȤȤǡޤޤʥץХۤʤ֥ספΥȥμǤޤ ȥΥפϡȥγǼȥǡȤȤˡȥ/̩ȥȥΤݸ뤿˻Ȥ륢르ꥺޤۤʤ륿פΥȥμˤϡߴϤޤ .LP -アプリケーションでは、\f2KeyStore\fP クラスが提供する getInstance ファクトリメソッドを使うことで、さまざまなプロバイダから異なる「タイプ」のキーストアの実装を選択できます。キーストアのタイプは、キーストア情報の格納形式とデータ形式を定義するとともに、キーストア内の非公開/秘密鍵とキーストア自体の整合性を保護するために使われるアルゴリズムを定義します。異なるタイプのキーストアの実装には、互換性はありません。 +\f3keytool\fP ϡǤդΥե١Υȥưޤkeytool ϡޥɹԤϤ줿ȥξե̾Ȥư FileInputStream ѴơFileInputStream 饭ȥξɤޤ\f3jarsigner\fP ġ \f3policytool\fP ġϡURL ǻǽǤդξ꤫饭ȥɤ߹ळȤǤޤ .LP +\f3keytool\fP \f3jarsigner\fP ξ硢\f2\-storetype\fP ץȤäƥޥɹԤǥȥΥפǤޤ\f3Policy Tool\fPξϡ֥ȥץ˥塼ˤäƥȥΥפǤޤ .LP -\f3keytool\fP は、任意のファイルベースのキーストア実装で動作します。keytool は、コマンド行から渡されたキーストアの場所をファイル名として扱い、これを FileInputStream に変換して、FileInputStream からキーストアの情報をロードします。一方、\f3jarsigner\fP ツールと \f3policytool\fP ツールは、URL で指定可能な任意の場所からキーストアを読み込むことができます。 +ȥΥפŪ˻ꤷʤ硢keytooljarsigner policytool γƥġϡƥץѥƥեǻꤵ줿 \f2keystore.type\fP ץѥƥͤ˴Ťƥȥμ򤷤ޤƥץѥƥեϡ\f2java.security\fP Ȥ̾ǥƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ֤Ƥޤ\f2java.home\fP ϡ¹ԴĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment κǾ̥ǥ쥯ȥ) Ǥ .LP +ƥġϡ \f2keystore.type\fP ͤͤǻꤵ줿פΥȥƤץХĤޤǡߥ󥹥ȡ뤵Ƥ뤹٤ƤΥץХĴ٤ޤŪΥץХĤȡΥץХΥȥμȤޤ .LP -\f3keytool\fP と \f3jarsigner\fP の場合、\f2\-storetype\fP オプションを使ってコマンド行でキーストアのタイプを指定できます。\f3Policy Tool\fPの場合は、「キーストア」メニューによってキーストアのタイプを指定できます。 -.LP -.LP -キーストアのタイプを明示的に指定しない場合、keytool、jarsigner、および policytool の各ツールは、セキュリティープロパティーファイル内で指定された \f2keystore.type\fP プロパティーの値に基づいてキーストアの実装を選択します。セキュリティープロパティーファイルは、\f2java.security\fP という名前でセキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位ディレクトリ) です。 -.LP -.LP -各ツールは、\f2keystore.type\fP の値を取得し、この値で指定されたタイプのキーストアを実装しているプロバイダが見つかるまで、現在インストールされているすべてのプロバイダを調べます。目的のプロバイダが見つかると、そのプロバイダからのキーストアの実装を使います。 -.LP -.LP -\f2KeyStore\fP クラスでは \f2getDefaultType\fP という名前の static メソッドが定義されており、アプリケーションとアプレットはこのメソッドを使うことで \f2keystore.type\fP プロパティーの値を取得できます。次のコードは、デフォルトのキーストアタイプ (\f2keystore.type\fP プロパティーで指定されたタイプ) のインスタンスを生成します。 -.LP +\f2KeyStore\fP 饹Ǥ \f2getDefaultType\fP Ȥ̾ static ᥽åɤƤꡢץꥱȥץåȤϤΥ᥽åɤȤȤ \f2keystore.type\fP ץѥƥͤǤޤΥɤϡǥեȤΥȥ ( \f2keystore.type\fP ץѥƥǻꤵ줿) Υ󥹥󥹤ޤ .nf \f3 .fl @@ -783,11 +1390,8 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi - -.LP -.LP -デフォルトのキーストアタイプは JKS (Sun が提供する独自のタイプのキーストアの実装) です。これは、セキュリティープロパティーファイル内の次の行によって指定されています。 .LP +ǥեȤΥȥפ JKS (Oracle 󶡤ȼΥפΥȥμ) ǤϡƥץѥƥեμιԤˤäƻꤵƤޤ .nf \f3 .fl @@ -795,14 +1399,10 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi - .LP +ƥġǥǥեȰʳΥȥμѤˤϡιԤѹ̤ΥȥΥפꤷޤ .LP -各ツールでデフォルト以外のキーストアの実装を使用するには、上の行を変更して別のキーストアのタイプを指定します。 -.LP -.LP -たとえば、pkcs12 と呼ばれるタイプのキーストアの実装を提供しているプロバイダパッケージを使用するには、上の行を次のように変更します。 -.LP +ȤСpkcs12 ȸƤФ륿פΥȥμ󶡤ƤץХѥåѤˤϡιԤ򼡤Τ褦ѹޤ .nf \f3 .fl @@ -810,561 +1410,163 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAPro .fl \fP .fi +.LP +: ȥΥפλǤϡʸȾʸ϶̤ޤ󡣤ȤСJKS jks ƱΤȤưޤ +.RE .LP -注:キーストアのタイプの指定では、大文字と小文字は区別されません。たとえば、JKS と jks は同じものとして扱われます。 -.RE -.RE .SS -証明書 + .LP -.RS 3 - -.LP -\f3証明書\fP (\f3公開鍵証明書\fPとも呼ぶ) とは、あるエンティティー (「発行者」) からのデジタル署名付きの文書のことです。 証明書には、ほかのあるエンティティー (「署名者」) の公開鍵 (およびその他の情報) が特別な値を持っていることが書かれています。 -.RE +\f3\fP (\f3\fPȤƤ) Ȥϡ륨ƥƥ (ȯԼԡ) Υǥ̾դʸΤȤǤ ˤϡۤΤ륨ƥƥ (ֽ̾ԡ) θ (Ӥ¾ξ) ̤ͤäƤ뤳Ȥ񤫤Ƥޤ .RS 3 .TP 2 o -.TP 2 -o -\f3証明書の用語\fP +\f3Ѹ\fP .RS 3 - +.TP 3 + .LP -.RS 3 +ϡΥƥƥ˴Ϣդ줿Ǥϡ륨ƥƥȤδ֤˿Ǥطɬפ뤹٤ƤοͤФƸ뤳ȤտޤΤǤϡ̾򸡾ڤΤ˻Ȥޤ .TP 3 -公開鍵 -公開鍵は、特定のエンティティーに関連付けられた数です。 公開鍵は、該当するエンティティーとの間に信頼できる関係を持つ必要があるすべての人に対して公開することを意図したものです。公開鍵は、署名を検証するのに使われます。 +ǥ̾ +.LP +ǡ֥ǥ̾פȡΥǡϡƥƥΡ֥ǥƥƥפȡΥƥƥǡƤˤĤΤäƤ뤳Ȥ̾ȤȤ˳ǼޤƥƥȤäƥǡ˽̾դȡǡε¤Բǽˤʤޤ .TP 3 -デジタル署名 -データが「\f2デジタル署名\fP」されると、そのデータは、エンティティーの「アイデンティティー」と、そのエンティティーがデータの内容について知っていることを証明する署名とともに格納されます。エンティティーの非公開鍵を使ってデータに署名を付けると、データの偽造は不可能になります。 +ǥƥƥ +.LP +ƥƥꤹ뤿δΤˡǤƥˤäƤϡ򥢥ǥƥƥˤΤޤΤۤˤ⡢Unix UID Żҥ᡼륢ɥ쥹X.509 ̾ʤɡޤޤʤΤ򥢥ǥƥƥȤ뤳ȤǤޤ .TP 3 -アイデンティティー -エンティティーを特定するための既知の方法です。システムによっては、公開鍵をアイデンティティーにするものがあります。 公開鍵のほかにも、Unix UID や電子メールアドレス、X.509 識別名など、さまざまなものをアイデンティティーとすることができます。 +̾ +.LP +̾ϡʤ餫Υǡ˥ƥƥ (̾ԡ ˴ؤƤȯԼԤȤƤФ) ȤäƷ׻ޤ .TP 3 -署名 -署名は、なんらかのデータを基にエンティティー (署名者。 証明書に関しては発行者とも呼ばれる) の非公開鍵を使って計算されます。 + +.LP +ΥƥƥΤäƤΤȤǡοΤȤ򡢤ΥƥƥȤޤϡۤΤʤ褦̩ˤƤȤˤʤäƤޤȸϡ٤ƤθŹ沽ƥФˤʤä¸ߤƤޤDSA ʤɤŵŪʸŹ沽ƥξ硢1 ĤΤ 1 Ĥθбޤϡ̾׻Τ˻Ȥޤ .TP 3 -非公開鍵 -非公開鍵は特定のエンティティーだけが知っている数のことで、この数のことを、そのエンティティーの非公開鍵といいます。非公開鍵は、ほかに知られないように秘密にしておくことが前提になっています。 非公開鍵と公開鍵は、すべての公開鍵暗号化システムで対になって存在しています。DSA などの典型的な公開鍵暗号化システムの場合、1 つの非公開鍵は正確に 1 つの公開鍵に対応します。非公開鍵は、署名を計算するのに使われます。 -.TP 3 -エンティティー -エンテンティーは、人、組織、プログラム、コンピュータ、企業、銀行など、一定の度合いで信頼の対象となるさまざまなものを指します。 +ƥƥ +.LP +ƥƥϡ͡ȿץࡢԥ塼ȡԤʤɡٹ礤ǿоݤȤʤ뤵ޤޤʤΤؤޤ .RE - .LP -.LP -公開鍵暗号化では、その性質上、ユーザーの公開鍵にアクセスする必要があります。大規模なネットワーク環境では、互いに通信しているエンティティー間で以前の関係が引き続き確立されていると仮定したり、使われているすべての公開鍵を収めた信頼できるリポジトリが存在すると仮定したりすることは不可能です。このような公開鍵の配布に関する問題を解決するために証明書が考案されました。現在では、「証明書発行局 (CA)」が信頼できる第三者として機能します。CA は、ほかのエンティティーの証明書に署名する (発行する) 行為を、信頼して任されているエンティティー (企業など) です。CA は法律上の契約に拘束されるので、有効かつ信頼できる証明書だけを作成するものとして扱われます。 +Ź沽Ǥϡ塢桼θ˥ɬפޤ絬ϤʥͥåȥĶǤϡߤ̿Ƥ륨ƥƥ֤ǰδط³ΩƤȲꤷꡢȤƤ뤹٤Ƥθ᤿Ǥݥȥ꤬¸ߤȲꤷꤹ뤳ȤԲǽǤΤ褦ʸۤ˴ؤ褹뤿˾񤬹ͰƤޤߤǤϡ־ȯԶ (CA)פǤ軰ԤȤƵǽޤCA ϡۤΥƥƥξ˽̾ (ȯԤ) ԰٤򡢿ꤷǤƤ륨ƥƥ (Ȥʤ) ǤCA ˡΧη˹«ΤǡͭĿǤΤȤưޤ .na \f2VeriSign\fP @ .fi -http://www.verisign.com/、 +http://www.verisign.com/ .na \f2Thawte\fP @ .fi -http://www.thawte.com/、 +http://www.thawte.com/ .na \f2Entrust\fP @ .fi -http://www.entrust.com/ をはじめ、多くの CA が存在します。Netscape や Microsoft の認証サーバー、Entrust の CA 製品などを所属組織内で利用すれば、独自の証明書発行局を運営することも可能です。 +http://www.entrust.com/ Ϥᡢ¿ CA ¸ߤޤMicrosoft ǧڥСEntrust CA ʤʤɤ°ȿѤСȼξȯԶɤ򱿱Ĥ뤳ȤǽǤ .LP +\f3keytool\fP ȤȡɽݡȡӥݡȤԤȤǤޤޤʽ̾뤳ȤǤޤ .LP -\f3keytool\fP を使うと、証明書の表示、インポート、およびエクスポートを行うことができます。また、自己署名証明書を生成することもできます。 -.LP -.LP -現在、\f3keytool\fP は X.509 証明書を対象にしています。 -.LP -.RE +ߡ\f3keytool\fP X.509 оݤˤƤޤ .TP 2 o -\f3X.509 証明書\fP -.RS 3 -X.509 規格では、証明書に含める情報が定義されており、この情報を証明書に書き込む方法 (データ形式) についても記述されています。証明書のすべてのデータは、ASN.1/DER と呼ばれる 2 つの関連規格を使って符号化されます。\f2Abstract Syntax Notation 1\fP はデータについて記述しています。\f2Definite Encoding Rules\fP は、データの保存および転送の方法について記述しています。 +\f3X.509 \fP .LP -すべての X.509 証明書は、署名のほかに次のデータを含んでいます。 +X.509 ʤǤϡ˴ޤƤꡢξ˽񤭹ˡ (ǡ) ˤĤƤ⵭ҤƤޤΤ٤ƤΥǡϡASN.1/DER ȸƤФ 2 ĤδϢʤȤä沽ޤ\f2Abstract Syntax Notation 1\fP ϥǡˤĤƵҤƤޤ\f2Definite Encoding Rules\fP ϡǡ¸žˡˤĤƵҤƤޤ .LP +٤Ƥ X.509 ϡ̾Τۤ˼ΥǡޤǤޤ .RS 3 .TP 3 -バージョン -証明書に適用される X.509 規格のバージョンを特定します。 証明書に指定できる情報は、バージョンによって異なります。これまでに、3 つのバージョンが定義されています。\f3keytool\fP では、v1、v2、および v3 の証明書のインポートとエクスポートが可能です。keytool が生成するのは、v3 の証明書です。 +С .LP -「X.509 Version 1」は、1988 年から利用されて広く普及しており、もっとも一般的です。 +ŬѤ X.509 ʤΥСꤷޤ˻ǤϡСˤäưۤʤޤޤǤˡ3 ĤΥСƤޤ\f3keytool\fP Ǥϡv1v2 v3 ξΥݡȤȥݡȤǽǤkeytool Τϡv3 ξǤ .LP -「X.509 Version 2」では、Subject や発行者の名前をあとで再利用できるようにするために、Subject と発行者の一意識別子の概念が導入されました。ほとんどの証明書プロファイル文書では、名前を再使用しないことと、証明書で一意な識別子を使わないことが、強く推奨されています。Version 2 の証明書は、広くは使われていません。 +X.509 Version 1פϡ1988 ǯѤƹڤƤꡢäȤŪǤ .LP -「X.509 Version 3」はもっとも新しい (1996 年) 規格で、エクステンションの概念をサポートしています。エクステンションは誰でも定義することができ、証明書に含めることができます。現在使われている一般的なエクステンションとしては、KeyUsage (「署名専用」など、鍵の使用を特定の目的に制限する)、AlternativeNames (DNS 名、電子メールアドレス、IP アドレスなど、ほかのアイデンティティーを公開鍵に関連付けることができる) などがあります。エクステンションには、critical というマークを付けて、そのエクステンションのチェックと使用を義務づけることができます。たとえば、critical とマークされ、KeyCertSign が設定された KeyUsage エクステンションが証明書に含まれている場合、この証明書を SSL 通信中に提示すると、証明書が拒否されます。 これは、証明書のエクステンションによって、関連する非公開鍵が証明書の署名専用として指定されており、SSL では使用できないためです。 +X.509 Version 2פǤϡSubject ȯԼԤ̾򤢤ȤǺѤǤ褦ˤ뤿ˡSubject ȯԼԤΰռ̻ҤγǰƳޤۤȤɤξץեʸǤϡ̾ƻѤʤȤȡǰդʼ̻ҤȤʤȤ侩ƤޤVersion 2 ξϡϻȤƤޤ +.LP +X.509 Version 3פϤäȤ⿷ (1996 ǯ) ʤǡƥ󥷥γǰ򥵥ݡȤƤޤƥ󥷥ïǤ뤳ȤǤ˴ޤ뤳ȤǤޤ߻ȤƤŪʥƥ󥷥ȤƤϡKeyUsage (ֽ̾ѡפʤɡλѤŪ¤)AlternativeNames (DNS ̾Żҥ᡼륢ɥ쥹IP ɥ쥹ʤɡۤΥǥƥƥ˴Ϣդ뤳ȤǤ) ʤɤޤƥ󥷥ˤϡcritical ȤޡդơΥƥ󥷥ΥåȻѤ̳Ť뤳ȤǤޤȤСcritical ȥޡ졢KeyCertSign ꤵ줿 KeyUsage ƥ󥷥󤬾˴ޤޤƤ硢ξ SSL ̿󼨤ȡ񤬵ݤޤϡΥƥ󥷥ˤäơϢν̾ѤȤƻꤵƤꡢSSL ǤϻѤǤʤǤ .TP 3 -シリアル番号 -証明書を作成したエンティティーは、そのエンティティーが発行するほかの証明書と区別するために、証明書にシリアル番号を割り当てます。この情報は、さまざまな方法で使われます。 たとえば、証明書が取り消されると、シリアル番号が証明書の取り消しリスト (CRL) に格納されます。 +ꥢֹ +.LP +ƥƥϡΥƥƥȯԤۤξȶ̤뤿ˡ˥ꥢֹƤޤξϡޤޤˡǻȤޤȤС񤬼äȡꥢֹ椬μäꥹ (CRL) ˳Ǽޤ .TP 3 -署名アルゴリズム識別子 -証明書に署名を付けるときに CA が使ったアルゴリズムを特定します。 +̾르ꥺ༱̻ +.LP +˽̾դȤ CA Ȥä르ꥺꤷޤ .TP 3 -発行者名 -証明書に署名を付けたエンティティーの X.500 識別名です。エンティティーは、通常は CA です。この証明書を使うことは、証明書に署名を付けたエンティティーを信頼することを意味します。「ルート」つまり「トップレベル」の CA の証明書など、場合によっては発行者が自身の証明書に署名を付けることがある点に注意してください。 +ȯԼ̾ +.LP +˽̾դƥƥ X.500 ̾Ǥƥƥϡ̾ CA ǤξȤȤϡ˽̾դƥƥꤹ뤳Ȥ̣ޤ֥롼ȡפĤޤ֥ȥåץ٥פ CA ξʤɡˤäƤȯԼԤȤξ˽̾դ뤳ȤդƤ .TP 3 -有効期間 -各証明書は、限られた期間だけ有効になります。この期間は開始の日時と終了の日時によって指定され、数秒の短い期間から 100 年という長期にわたることもあります。選択される有効期間は、証明書への署名に使われる非公開鍵の強度や証明書に支払う金額など、さまざまな要因で異なります。有効期間は、使用する非公開鍵が損なわれない場合に、エンティティーが公開鍵を信頼できると期待される期間です。 +ͭ +.LP +ƾϡ¤줿֤ͭˤʤޤδ֤ϳϤȽλˤäƻꤵ졢äû֤ 100 ǯȤĹˤ錄뤳Ȥ⤢ޤ򤵤֤ͭϡؤν̾˻Ȥζ٤˻ʧۤʤɡޤޤװǰۤʤޤ֤ͭϡѤ»ʤʤˡƥƥǤȴԤ֤Ǥ .TP 3 -Subject 名 -証明書で公開鍵が識別されているエンティティーの名前です。この名前は X.500 標準を使うので、インターネット全体で一意なものと想定されます。これは、エンティティーの X.500 識別名 (DN) です。 次に例を示します。 +Subject ̾ +.LP +Ǹ̤Ƥ륨ƥƥ̾Ǥ̾ X.500 ɸȤΤǡ󥿡ͥåΤǰդʤΤꤵޤϡƥƥ X.500 ̾ (DN) Ǥ򼨤ޤ .nf \f3 .fl - CN=Java Duke, OU=Java Software Division, O=Sun Microsystems Inc, C=US + CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US .fl \fP .fi -これらはそれぞれ主体の通称、組織単位、組織、国を表します。 +.LP +Ϥ줾Τ̾Ρȿñ̡ȿɽޤ .TP 3 -Subject の公開鍵情報 -名前を付けられたエンティティーの公開鍵とアルゴリズム識別子です。 アルゴリズム識別子では、公開鍵に対して使われている公開鍵暗号化システムおよび関連する鍵パラメータが指定されています。 -.RE - +Subject θ .LP +̾դ줿ƥƥθȥ르ꥺ༱̻ҤǤ르ꥺ༱̻ҤǤϡФƻȤƤŹ沽ƥपӴϢ븰ѥ᡼ꤵƤޤ .RE .TP 2 o -\f3証明書チェーン\fP -.RS 3 +\f3\fP .LP -\f3keytool\fP では、非公開鍵および関連する証明書「チェーン」を含むキーストアの「鍵」エントリを作成し、管理することができます。このようなエントリでは、非公開鍵に対応する公開鍵は、チェーンの最初の証明書に含まれています。 +\f3keytool\fP ǤϡӴϢ֥פޤ७ȥΡָץȥ뤳ȤǤޤΤ褦ʥȥǤϡбϡκǽξ˴ޤޤƤޤ .LP +ƺ (\-genkeypair ޥɤ򻲾)ּʽ̾פȤ 1 ĤǤޤ󤬳Ϥޤʽ̾ϡȯԼ (̾) (ǧڤƤλ) ƱǤΤȤǤ \f2\-genkeypair\fP ޥɤƤӽФƿΥڥȡϾ˼ʽ̾ǥåפޤ .LP -鍵を初めて作成すると (\-genkeypair コマンドを参照)、「自己署名証明書」という 1 つの要素だけを含むチェーンが開始されます。自己署名証明書は、発行者 (署名者) が主体 (証明書で認証されている公開鍵の持ち主) と同じである証明書のことです。\f2\-genkeypair\fP コマンドを呼び出して新しい公開鍵と非公開鍵のペアを作成すると、公開鍵は常に自己署名証明書でラップされます。 +Τȡ̾׵ (CSR) (\-certreq ޥɤ򻲾)CSR ȯԶ (CA) ȡCA αݡȤ (\-importcert ޥɤ򻲾)μʽ̾Ͼˤä֤ޤκǸˤΤϡSubject θǧڤ CA ȯԤ () ǤΤξϡCAפθǧڤǤ .LP +CA θǧڤϡ¿ξ硢ʽ̾ (Ĥޤ CA Ȥθǧڤ) ǤꡢϥκǽξˤʤޤˤäƤϡCA Υ֤Ȥ⤢ޤξ硢κǸξ (CA ˤäƽ̾졢ȥθǧڤ) ѤϤޤ󤬡ΤξϡCSR CA Ȥϡ̤ΡCA ˤäƽ̾졢CSR CA θǧڤˤʤޤˡΤξϡ CA θǧڤˤʤޤ ʲƱͤˡʽ̾줿֥롼ȡ׾ãޤǥ³ޤäơ (ǽξʸ) ƾǤϡμξν̾ԤθǧڤƤ뤳Ȥˤʤޤ .LP -このあと、証明書署名要求 (CSR) が生成されて (\-certreq コマンドを参照)、CSR が証明書発行局 (CA) に送信されると、CA からの応答がインポートされ (\-importcert コマンドを参照)、元の自己署名証明書は証明書チェーンによって置き換えられます。チェーンの最後にあるのは、Subject の公開鍵を認証した CA が発行した証明書 (応答) です。チェーン内のその前の証明書は、「CA」の公開鍵を認証する証明書です。 +¿ CA ϡ򥵥ݡȤȯԺѤߤξ֤ޤäˡ֤ CA ¸ߤʤեåȤʳع¤ξϡηǤΤ褦ʾϡȥˤǤ˳ǼƤ뿮Ǥ󤫤顢Ωɬפޤ .LP +̤α (PKCS#7 Ƥ) Ǥ⡢ȯԺѤ߾˲äΥݡȤޤޤƤޤ\f3keytool\fP ǤϡɤαⰷȤǤޤ .LP -CA の公開鍵を認証する証明書は、多くの場合、自己署名証明書 (つまり CA が自身の公開鍵を認証した証明書) であり、これはチェーンの最初の証明書になります。場合によっては、CA が証明書のチェーンを返すこともあります。この場合、チェーン内の最後の証明書 (CA によって署名され、鍵エントリの公開鍵を認証する証明書) に変わりはありませんが、チェーン内のその前の証明書は、CSR の送信先の CA とは「別の」CA によって署名され、CSR の送信先の CA の公開鍵を認証する証明書になります。さらに、チェーン内のその前の証明書は、次の CA の鍵を認証する証明書になります。 以下同様に、自己署名された「ルート」証明書に達するまでチェーンが続きます。したがって、チェーン内の (最初の証明書以後の) 各証明書では、チェーン内の次の証明書の署名者の公開鍵が認証されていることになります。 -.LP -.LP -多くの CA は、チェーンをサポートせずに発行済みの証明書だけを返します。 特に、中間の CA が存在しないフラットな階層構造の場合は、その傾向が顕著です。このような場合は、キーストアにすでに格納されている信頼できる証明書情報から、証明書チェーンを確立する必要があります。 -.LP -.LP -別の応答形式 (PKCS#7 で定義されている形式) でも、発行済み証明書に加え、証明書チェーンのサポートが含まれています。\f3keytool\fP では、どちらの応答形式も扱うことができます。 -.LP -.LP -トップレベル (ルート) CA の証明書は、自己署名証明書です。ただし、ルートの公開鍵に対する信頼は、ルートの証明書自体から導き出されるものではなく (たとえば、VeriSign ルート CA のような有名な識別名を使った自己署名証明書を作成すること自体は誰でも可能)、新聞などのほかの情報源に由来するものです。ルート CA の公開鍵は広く知られています。ルート CA の公開鍵を証明書に格納する理由は、証明書という形式にすることで多くのツールから利用できるようになるからにすぎません。 つまり、証明書は、ルート CA の公開鍵を運ぶ「媒体」として利用されるだけです。ルート CA の証明書をキーストアに追加するときは、その前に証明書の内容を表示し (\f2\-printcert\fP オプションを使用)、表示されたフィンガープリントと、新聞やルート CA の Web ページなどから入手した既知のフィンガープリントとを比較する必要があります。 -.LP -.RE +ȥåץ٥ (롼) CA ξϡʽ̾Ǥ롼ȤθФ뿮ϡ롼ȤξΤƳФΤǤϤʤ (ȤСVeriSign 롼 CA Τ褦ͭ̾ʼ̾Ȥäʽ̾뤳ȼΤïǤǽ)ʹʤɤΤۤξ󸻤ͳ褹ΤǤ롼 CA θϹΤƤޤ롼 CA θ˳ǼͳϡȤˤ뤳Ȥ¿Υġ뤫ѤǤ褦ˤʤ뤫ˤޤ Ĥޤꡢϡ롼 CA θ򱿤֡ΡפȤѤǤ롼 CA ξ򥭡ȥɲäȤϡ˾Ƥɽ ( \f2\-printcert\fP ץ)ɽ줿ե󥬡ץȤȡʹ롼 CA Web ڡʤɤꤷΤΥե󥬡ץȤȤӤɬפޤ .TP 2 o -\f3cacerts 証明書ファイル\fP -.RS 3 +\f3cacerts ե\fP .LP -\f3cacerts\fP 証明書ファイルは、セキュリティープロパティーディレクトリ \f2java.home\fP/lib/security に置かれています。 \f2java.home\fP は、実行環境のディレクトリ (SDK の \f2jre\fP ディレクトリまたは Java 2 Runtime Environment の最上位ディレクトリ) です。 +\f3cacerts\fP Ȥ̾ξեϡƥץѥƥǥ쥯ȥ \f2java.home\fP/lib/security ֤Ƥޤ\f2java.home\fP ϡ¹ԴĶΥǥ쥯ȥ (SDK \f2jre\fP ǥ쥯ȥޤ Java 2 Runtime Environment κǾ̥ǥ쥯ȥ) Ǥ .LP +cacerts եϡCA ξޤࡢƥΤΥȥǤƥԤϡȥפ jks ꤹ뤳Ȥǡ\f3keytool\fP ȤäƤΥեιȴԤȤǤޤcacerts ȥեϡ롼 CA ΥǥեȥåȤޤ֤ǽв٤ƤޤξɽˤϡΥޥɤѤޤ +.nf +\f3 +.fl +keytool \-list \-keystore \fP\f4java.home\fP\f3/lib/security/cacerts +.fl +\fP +.fi .LP -cacerts ファイルは、CA の証明書を含む、システム全体のキーストアです。システム管理者は、キーストアタイプに jks を指定することで、\f3keytool\fP を使ってこのファイルの構成と管理を行うことができます。cacerts キーストアファイルは、次の別名および X.500 所有者識別名を持ついくつかのルート CA 証明書を含んだ状態で出荷されています。 +cacerts ȥեνѥɤϡchangeit ǤƥԤϡSDK Υ󥹥ȡ塢ΥեΥѥɤȥǥեȥѹɬפޤ .LP -.RS 3 -.TP 2 -* -\f3Alias\fP:thawtepersonalfreemailca -.br -\f3Owner DN\fP:EmailAddress=personal\-freemail@thawte.com, -.br -CN=Thawte Personal Freemail CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepersonalbasicca -.br -\f3Owner DN\fP:EmailAddress=personal\-basic@thawte.com, -.br -CN=Thawte Personal Basic CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepersonalpremiumca -.br -\f3Owner DN\fP:EmailAddress=personal\-premium@thawte.com, -.br -CN=Thawte Personal Premium CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawteserverca -.br -\f3Owner DN\fP:EmailAddress=server\-certs@thawte.com, -.br -CN=Thawte Server CA, OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:thawtepremiumserverca -.br -\f3Owner DN\fP:EmailAddress=premium\-server@thawte.com, -.br -CN=Thawte Premium Server CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP:verisignclass1ca -.br -\f3Owner DN\fP:OU=Class 1 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2ca -.br -\f3Owner DN\fP:OU=Class 2 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3ca -.br -\f3Owner DN\fP:OU=Class 3 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignserverca -.br -\f3Owner DN\fP:OU=Secure Server Certification Authority, -.br -O="RSA Data Security, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass1g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 1 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass1g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 1 Public Primary Certification Authority \- G3, OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 2 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass2g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 2 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3g2ca -.br -\f3Owner DN\fP:OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 3 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:verisignclass3g3ca -.br -\f3Owner DN\fP:CN=VeriSign Class 3 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP:baltimorecodesigningca -.br -\f3Owner DN\fP:CN=Baltimore CyberTrust Code Signing Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP:gtecybertrustglobalca -.br -\f3Owner DN\fP:CN=GTE CyberTrust Global Root, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP:baltimorecybertrustca -.br -\f3Owner DN\fP:CN=Baltimore CyberTrust Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP:gtecybertrust5ca -.br -\f3Owner DN\fP:CN=GTE CyberTrust Root 5, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP:entrustclientca -.br -\f3Owner DN\fP:CN=Entrust.net Client Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/Client_CA_Info/CPS incorp. by ref. limits liab., -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP:entrustglobalclientca -.br -\f3Owner DN\fP:CN=Entrust.net Client Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/GCCA_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:entrust2048ca -.br -\f3Owner DN\fP:CN=Entrust.net Certification Authority (2048), -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:entrustsslca -.br -\f3Owner DN\fP:CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP:entrustgsslca -.br -\f3Owner DN\fP:CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/SSL_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP:godaddyclass2ca -.br -\f3Owner DN\fP:OU=Go Daddy Class 2 Certification Authority, -.br -O="The Go Daddy Group, Inc.", C=US -.TP 2 -* -\f3Alias\fP:starfieldclass2ca -.br -\f3Owner DN\fP:OU=Starfield Class 2 Certification Authority, -.br -O="Starfield Technologies, Inc.", C=US -.TP 2 -* -\f3Alias\fP:valicertclass2ca -.br -\f3Owner DN\fP:EMAILADDRESS=info@valicert.com, -.br -CN=http://www.valicert.com/, -.br -OU=ValiCert Class 2 Policy Validation Authority, -.br -O="ValiCert, Inc.", L=ValiCert Validation Network -.TP 2 -* -\f3Alias\fP:geotrustglobalca -.br -\f3Owner DN\fP:CN=GeoTrust Global CA, -.br -O=GeoTrust Inc., C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureca -.br -\f3Owner DN\fP:OU=Equifax Secure Certificate Authority, -.br -O=Equifax, C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureebusinessca1 -.br -\f3Owner DN\fP:CN=Equifax Secure eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureebusinessca2 -.br -\f3Owner DN\fP:OU=Equifax Secure eBusiness CA\-2, -.br -O=Equifax Secure, C=US -.TP 2 -* -\f3Alias\fP:equifaxsecureglobalebusinessca1 -.br -\f3Owner DN\fP:CN=Equifax Secure Global eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP:soneraclass1ca -.br -\f3Owner DN\fP:CN=Sonera Class1 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP:soneraclass2ca -.br -\f3Owner DN\fP:CN=Sonera Class2 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP:comodoaaaca -.br -\f3Owner DN\fP:CN=AAA Certificate Services, -.br -O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB -.TP 2 -* -\f3Alias\fP:addtrustclass1ca -.br -\f3Owner DN\fP:CN=AddTrust Class 1 CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:addtrustexternalca -.br -\f3Owner DN\fP:CN=AddTrust External CA Root, -.br -OU=AddTrust External TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:addtrustqualifiedca -.br -\f3Owner DN\fP:CN=AddTrust Qualified CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP:utnuserfirsthardwareca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Hardware, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utnuserfirstclientauthemailca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Client Authentication and Email, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utndatacorpsgcca -.br -\f3Owner DN\fP:CN=UTN \- DATACorp SGC, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP:utnuserfirstobjectca -.br -\f3Owner DN\fP:CN=UTN\-USERFirst\-Object, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.RE - -.LP -.LP -cacerts キーストアファイルの初期パスワードは、changeit です。システム管理者は、SDK のインストール後、このファイルのパスワードとデフォルトアクセス権を変更する必要があります。 -.LP -.RS 3 - -.LP - -.LP -\f3重要:\fP\f4cacerts\fP\f3 ファイルを確認してください。\fP -.br - -.LP -\f2cacerts\fP ファイル内の CA は、署名および他のエンティティーへの証明書発行のためのエンティティーとして信頼されるため、\f2cacerts\fP ファイルの管理は慎重に行う必要があります。\f2cacerts\fP ファイルには、信頼する CA の証明書だけが含まれていなければなりません。ユーザーは、自身の責任において、\f2cacerts\fP ファイルにバンドルされている信頼できるルート CA 証明書を検証し、信頼性に関する独自の決定を行います。信頼できない CA 証明書を \f2cacerts\fP ファイルから削除するには、\f2keytool\fP コマンドの削除オプションを使用します。\f2cacerts\fP ファイルは JRE のインストールディレクトリにあります。このファイルを編集するアクセス権がない場合は、システム管理者に連絡してください。 -.br - -.LP -.RE - -.LP -.RE +\f3: \fP\f4cacerts\fP\f3 եǧƤ\fP: \f2cacerts\fP ե CA ϡ̾¾ΥƥƥؤξȯԤΤΥƥƥȤƿꤵ뤿ᡢ \f2cacerts\fP եδϿŤ˹Ԥɬפޤ \f2cacerts\fP եˤϡꤹ CA ξޤޤƤʤФʤޤ󡣥桼ϡȤǤˤơ \f2cacerts\fP ե˥Хɥ뤵Ƥ뿮Ǥ롼 CA 򸡾ڤ˴ؤȼηԤޤǤʤ CA \f2cacerts\fP ե뤫ˤϡ \f2keytool\fP ޥɤκץѤޤ \f2cacerts\fP ե JRE Υ󥹥ȡǥ쥯ȥˤޤΥեԽ륢ʤϡƥԤϢƤ .TP 2 o -\f3インターネット RFC 1421 証明書符号化規格\fP -.RS 3 +\f3󥿡ͥå RFC 1421 沽\fP .LP -多くの場合、証明書は、バイナリ符号化ではなく、インターネット RFC 1421 規格で定義されている出力可能符号化方式を使って格納されます。「Base 64 符号化」とも呼ばれるこの証明書形式では、電子メールやその他の機構を通じて、ほかのアプリケーションに証明書を容易にエクスポートできます。 +¿ξ硢ϡХʥ沽ǤϤʤ󥿡ͥå RFC 1421 ʤƤϲǽ沽ȤäƳǼޤBase 64 沽פȤƤФ뤳ξǤϡŻҥ᡼䤽¾ε̤ơۤΥץꥱ˾ưפ˥ݡȤǤޤ .LP +\f2\-importcert\fP \f2\-printcert\fP ޥɤǤϡηξȥХʥ沽ξɤ߹ळȤǤޤ .LP -\f2\-importcert\fP コマンドと \f2\-printcert\fP コマンドでは、この形式の証明書とバイナリ符号化の証明書を読み込むことができます。 +\f2\-exportcert\fP ޥɤǤϡǥեȤǥХʥ沽ξ񤬽Ϥޤ \f2\-rfc\fP ץꤷϡϲǽ沽ξ񤬽Ϥޤ .LP +\f2\-list\fP ޥɤǤϡǥեȤǾ SHA1 ե󥬡ץȤϤޤ \f2\-v\fP ץꤹȡʹ֤ɤळȤΤǤǾ񤬽Ϥޤ \f2\-rfc\fP ץꤹȡϲǽ沽Ǿ񤬽Ϥޤ .LP -\f2\-exportcert\fP コマンドでは、デフォルトでバイナリ符号化の証明書が出力されます。 ただし、\f2\-rfc\fP オプションを指定した場合は、出力可能符号化方式の証明書が出力されます。 -.LP -.LP -\f2\-list\fP コマンドでは、デフォルトで証明書の MD5 フィンガープリントが出力されます。\f2\-v\fP オプションを指定すると、人間が読むことのできる形式で証明書が出力されます。 一方、\f2\-rfc\fP オプションを指定すると、出力可能符号化方式で証明書が出力されます。 -.LP -.LP -出力可能符号化方式で符号化された証明書は、次の行で始まります。 -.LP +ϲǽ沽沽줿ϡιԤǻϤޤޤ .nf \f3 .fl @@ -1372,11 +1574,8 @@ o .fl \fP .fi - -.LP -.LP -最後は、次の行で終わります。 .LP +ǸϡιԤǽޤ .nf \f3 .fl @@ -1385,40 +1584,38 @@ o \fP .fi .RE -.RE .LP .SS -X.500 識別名 +X.500 ̾ +.LP +.LP +X.500 ̾ϡƥƥꤹ뤿˻ȤޤȤСX.509 \f2subject\fP եɤ \f2issuer\fP (̾) եɤǻꤵ̾ϡX.500 ̾Ǥ\f3keytool\fP ϡΥ֥ѡȤ򥵥ݡȤƤޤ .LP .RS 3 - -.LP -X.500 識別名は、エンティティーを特定するために使われます。 たとえば、X.509 証明書の \f2subject\fP フィールドと \f2issuer\fP (署名者) フィールドで指定される名前は、X.500 識別名です。 \f3keytool\fP は、次のサブパートをサポートしています。 -.RS 3 .TP 2 o -\f2commonName\fP \- 人の通称。 「Susan Jones」など +\f2commonName\fP \- ͤ̾Ρ Susan Jonesפʤ .TP 2 o -\f2organizationUnit\fP \- 小さな組織 (部、課など) の名称。 「仕入部」など +\f2organizationUnit\fP \- ȿ (ݤʤ) ̾Ρ ֻפʤ .TP 2 o -\f2organizationName\fP \- 大きな組織の名称。 「ABCSystems, Inc.」など +\f2organizationName\fP \- 礭ȿ̾Ρ ABCSystems, Inc.פʤ .TP 2 o -\f2localityName\fP \- 地域 (都市) 名。 「Palo Alto」など +\f2localityName\fP \- ϰ (Ի) ̾ Palo Altoפʤ .TP 2 o -\f2stateName\fP \- 州名または地方名。 「California」など +\f2stateName\fP \- ̾ޤ̾ Californiaפʤ .TP 2 o -\f2country\fP \- 2 文字の国番号。 「CH」など +\f2country\fP \- 2 ʸιֹ档 CHפʤ .RE .LP .LP -\f2\-genkeypair\fP コマンド の \f2\-dname\fP オプションの値として識別名文字列を指定する場合は、次の形式で指定する必要があります。 +\-genkeypair ޥɤ \f2\-dname\fP ץͤȤƼ̾ʸꤹϡ ηǻꤹɬפޤ .LP .nf \f3 @@ -1430,12 +1627,12 @@ CN=\fP\f4cName\fP\f3, OU=\fP\f4orgUnit\fP\f3, O=\fP\f4org\fP\f3, L=\fP\f4city\fP .LP .LP -イタリック体の項目は、実際に指定する値を表します。 短縮形のキーワードの意味は、次のとおりです。 +åΤιܤϡºݤ˻ꤹͤɽޤ û̷Υɤΰ̣ϡΤȤǤ .LP .nf \f3 .fl - CN=commonName + CN=commonName .fl OU=organizationUnit .fl @@ -1452,22 +1649,24 @@ CN=\fP\f4cName\fP\f3, OU=\fP\f4orgUnit\fP\f3, O=\fP\f4org\fP\f3, L=\fP\f4city\fP .LP .LP -次に示すのは、識別名文字列の例です。 +˼Τϡ̾ʸǤ .LP .nf \f3 .fl -CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US +CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US .fl \fP .fi .LP -次は、この文字列を使ったコマンドの例です。 +.LP +ϡʸȤäޥɤǤ +.LP .nf \f3 .fl -keytool \-genkeypair \-dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, +keytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, .fl S=California, C=US" \-alias mark .fl @@ -1476,45 +1675,43 @@ S=California, C=US" \-alias mark .LP .LP -キーワードの短縮形では、大文字と小文字は区別されません。たとえば、CN、cn、および Cn は、どれも同じものとして扱われます。 +ɤû̷ǤϡʸȾʸ϶̤ޤ󡣤ȤСCNcn Cn ϡɤƱΤȤưޤ .LP .LP -一方、キーワードの指定順序には意味があり、各サブコンポーネントは上に示した順序で指定する必要があります。ただし、サブコンポーネントをすべて指定する必要はありません。たとえば、次のように一部のサブコンポーネントだけを指定できます。 +ɤλˤϰ̣ꡢƥ֥ݡͥȤϾ˼ǻꤹɬפޤ֥ݡͥȤ򤹤٤ƻꤹɬפϤޤ󡣤ȤСΤ褦˰Υ֥ݡͥȤǤޤ .LP .nf \f3 .fl -CN=Steve Meier, OU=SunSoft, O=Sun, C=US +CN=Steve Meier, OU=Java, O=Oracle, C=US .fl \fP .fi .LP .LP -識別名文字列の値にコンマが含まれる場合に、コマンド行で文字列を指定するときには、次のようにコンマを文字 \\ でエスケープする必要があります。 +̾ʸͤ˥ޤޤޤˡޥɹԤʸꤹȤˤϡΤ褦˥ޤʸ \\ ǥפɬפޤ .LP .nf \f3 .fl - cn=peter schuster, o=Sun Microsystems\\, Inc., o=sun, c=us + cn=Peter Schuster, ou=Java\\, Product Development, o=Oracle, c=US .fl \fP .fi .LP .LP -識別名文字列をコマンド行で指定する必要はありません。識別名を必要とするコマンドを実行するときに、コマンド行で識別名を指定しなかった場合は、各サブコンポーネントの入力を求められます。この場合は、コンマを文字 \\ でエスケープする必要はありません。 +̾ʸ򥳥ޥɹԤǻꤹɬפϤޤ󡣼̾ɬפȤ륳ޥɤ¹ԤȤˡޥɹԤǼ̾ꤷʤäϡƥ֥ݡͥȤϤޤξϡޤʸ \\ ǥפɬפϤޤ .LP -.RE .SS -信頼できる証明書のインポートに関する注意事項 +ǤΥݡȤ˴ؤջ .LP -.RS 3 - .LP -重要:信頼できる証明書として証明書をインポートする前に、証明書の内容を慎重に調べてください。 +: ǤȤƾ򥤥ݡȤˡƤ򿵽ŤĴ٤Ƥ .LP -まず、証明書の内容を表示し (\f2\-printcert\fP コマンドを使用するか、または \f2\-noprompt\fP オプションを指定しないで \f2\-import\fP コマンドを使用)、表示された証明書のフィンガープリントが、期待されるフィンガープリントと一致するかどうかを確認します。たとえば、あるユーザーから証明書が送られてきて、この証明書を \f2/tmp/cert\fP という名前でファイルに格納しているとします。この場合は、信頼できる証明書のリストにこの証明書を追加する前に、\f2\-printcert\fP コマンドを実行してフィンガープリントを表示できます。 たとえば、次のようにします。 +.LP +ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ .LP .nf \f3 @@ -1534,91 +1731,94 @@ CN=Steve Meier, OU=SunSoft, O=Sun, C=US MD5: 11:81:AD:92:C8:E5:0E:A2:01:2E:D4:7A:D7:5F:07:6F .fl SHA1: 20:B6:17:FA:EF:E5:55:8A:D0:71:1F:E8:D6:9D:C0:37:13:0E:5E:FE +.fl + SHA256: 90:7B:70:0A:EA:DC:16:79:92:99:41:FF:8A:FE:EB:90: +.fl + 17:75:E0:90:B2:24:4D:3A:2A:16:A6:E4:11:0F:67:A4 .fl \fP .fi .LP -次に、証明書を送信した人物に連絡し、この人物が提示したフィンガープリントと、上のコマンドで表示されたフィンガープリントとを比較します。フィンガープリントが一致すれば、送信途中でほかの何者か (攻撃者など) による証明書のすり替えが行われていないことを確認できます。送信途中でこの種の攻撃が行われていた場合、チェックを行わずに証明書をインポートすると、攻撃者によって署名されたすべてのもの (攻撃的意図を持つクラスファイルを含んだ JAR ファイルなど) を信頼することになります。 .LP -注:証明書をインポートする前に必ず \f2\-printcert\fP コマンドを実行しなければならないわけではありません。 キーストア内の信頼できる証明書のリストに証明書を追加する前に \f2\-importcert\fP コマンドを実行すると、証明書の情報が表示され、確認を求めるメッセージが表示されます。インポート操作は、この時点で中止できます。ただし、確認メッセージが表示されるのは、\f2\-importcert\fP コマンドを \f2\-noprompt\fP オプションを指定せずに実行した場合だけです。\f2\-noprompt\fP オプションが指定されている場合、ユーザーとの対話は行われません。 +ˡʪϢοʪ󼨤ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤ (Ūտޤĥ饹եޤ JAR եʤ) ꤹ뤳Ȥˤʤޤ +.LP +.LP +: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ .LP -.RE .SS -パスワードに関する注意事項 -.LP -.RS 3 - +ѥɤ˴ؤջ .LP .LP -キーストアに対する操作を行うほとんどのコマンドでは、ストアのパスワードが必要です。また、一部のコマンドでは、非公開/秘密鍵のパスワードが必要になることがあります。 +ȥФԤۤȤɤΥޥɤǤϡȥΥѥɤɬפǤޤΥޥɤǤϡ/̩Υѥɤɬפˤʤ뤳Ȥޤ .LP .LP -パスワードはコマンド行で指定できます (ストアのパスワードには \f2\-storepass\fP オプション、非公開鍵のパスワードには \f2\-keypass\fP オプションを使用)。ただし、テストを目的とする場合、または安全であることがわかっているシステムで実行する場合以外は、コマンド行やスクリプトでパスワードを指定しないでください。 +ѥɤϥޥɹԤǻǤޤ (ȥΥѥɤˤ \f2\-storepass\fP ץΥѥɤˤ \f2\-keypass\fP ץ)ƥȤŪȤ硢ޤϰǤ뤳Ȥ狼äƤ륷ƥǼ¹ԤʳϡޥɹԤ䥹ץȤǥѥɤꤷʤǤ .LP .LP -必要なパスワードのオプションをコマンド行で指定しなかった場合は、パスワードの入力を求められます。 +ɬפʥѥɤΥץ򥳥ޥɹԤǻꤷʤäϡѥɤϤޤ .LP -.RE -.SH "関連項目" +.SS +ν˴ؤջ .LP - .LP -.RS 3 -.TP 2 -o -.LP -jar(1) ツールのドキュメント -.TP 2 -o -.LP -jarsigner(1) ツールのドキュメント -.TP 2 -o -.LP -\f3keytool\fP の使用例については、 +󥿡ͥåɸ .na -\f4「Java Tutorial」\fP @ +\f2RFC 5280\fP @ .fi -http://java.sun.com/docs/books/tutorialの -.na -\f4「Security」\fP @ -.fi -http://java.sun.com/docs/books/tutorial/security/index.htmlを参照 -.RE - +http://tools.ietf.org/rfc/rfc5280.txt ǤϡX.509 񤬽򤹤ץեƤޤΥץեˤϡΥեɤ䥨ƥ󥷥ͭͤͤȤ߹碌ޤޤƤޤ\f3keytool\fP ǤϡΤ٤Ƥε§ŬѤƤ櫓ǤϤʤΤǡɸ˽򤷤ʤǽꡢΤ褦ʾ JRE ۤΥץꥱǵݤ뤳Ȥޤ桼ϡ \f2\-dname\fP \f2\-ext\fP ʤɤŬʥץꤹ褦ˤƤ .LP -.SH "変更点" -.LP - -.LP -.LP -Java SE 6 で keytool のコマンドインタフェースが変更されました。 -.LP -.LP -\f3keytool\fP は、ユーザーがパスワードを入力する際にその入力内容を表示しなくなりました。ユーザーはパスワード入力時にその入力内容を確認できなくなったため、初期キーストアパスワードを設定したり鍵パスワードを変更したりするなど、パスワードの設定や変更を行うたびにパスワードの再入力を求められます。 -.LP -.LP -変更されたコマンドの中には、名前が変更されただけのものもあれば、廃止されてこのドキュメントに記載されなくなったものもあります。以前のすべてのコマンド (名前が変更されたものと廃止されたものの両方) は、このリリースでも引き続きサポートされており、今後のリリースでもサポートされる予定です。keytool のコマンドインタフェースに加えられたすべての変更点の概要を、次に示します。 -.LP -.LP -名前が変更されたコマンド: +.SH "Ϣ" .LP .RS 3 .TP 2 o -\f2\-export\fP の名前が \f2\-exportcert\fP に変更 +jar(1) ġΥɥ .TP 2 o -\f2\-genkey\fP の名前が \f2\-genkeypair\fP に変更 +jarsigner(1) ġΥɥ .TP 2 o -\f2\-import\fP の名前が \f2\-importcert\fP に変更 +.na +\f4keytool\fP\f2 λˤĤƤϡ\fP @ +.fi +http://download.oracle.com/javase/tutorial/security/index.html +.na +\f2Java Tutorial\fP\f4\fP @ +.fi +http://download.oracle.com/javase/tutorial/Security\f3򻲾\fP +.RE + +.LP +.SH "ѹ" +.LP +.LP +Java SE 6 keytool Υޥɥ󥿥եѹޤ +.LP +.LP +\f3keytool\fP ϡ桼ѥɤϤݤˤƤɽʤʤޤ桼ϥѥϻˤƤǧǤʤʤäᡢȥѥɤꤷ기ѥɤѹꤹʤɡѥɤѹԤӤ˥ѥɤκϤޤ +.LP +.LP +ѹ줿ޥɤˤϡ̾ѹ줿ΤΤ⤢СѻߤƤΥɥȤ˵ܤʤʤäΤ⤢ޤΤ٤ƤΥޥ (̾ѹ줿Τѻߤ줿Τξ) ϡΥ꡼Ǥ³ݡȤƤꡢΥ꡼Ǥ⥵ݡȤͽǤkeytool Υޥɥ󥿥ե˲ä줿٤Ƥѹγפ򡢼˼ޤ +.LP +.LP +̾ѹ줿ޥ: +.LP +.RS 3 +.TP 2 +o +\f2\-export\fP ̾ \f2\-exportcert ѹ\fP +.TP 2 +o +\f2\-genkey\fP ̾ \f2\-genkeypair ѹ\fP +.TP 2 +o +\f2\-import\fP ̾ \f2\-importcert ѹ\fP .RE .LP .LP -廃止されてドキュメントに記載されなくなったコマンド: +ѻߤƥɥȤ˵ܤʤʤäޥ: .LP .RS 3 .TP 2 @@ -1626,19 +1826,19 @@ o .na \f2\-keyclone\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#keycloneCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#keycloneCmd .TP 2 o .na \f2\-identitydb\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#identitydbCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#identitydbCmd .TP 2 o .na \f2\-selfcert\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#selfcertCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#selfcertCmd .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 b/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 index d7f1eedd9d4..6e775392b92 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2010, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "02 Jun 2010" +.TH native2ascii 1 "14 Apr 2011" .LP -.SH "名前" -native2ascii \- ネイティブ \- ASCII コンバータ -.LP -.RS 3 - +.SH "̾" +native2ascii \- ͥƥ \- ASCII С .LP .LP -ネイティブコード (Latin 1 および Unicode 以外) のファイルを Unicode コードに変換します。 +ݡȤʸ󥳡ǥ󥰤ʸΥե ASCII ޤ Unicode פ뤤ϤξΥեѴޤεդѴԤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -44,36 +38,34 @@ native2ascii \- ネイティブ \- ASCII コンバータ .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -Java コンパイラおよびその他の Java ツールは、Latin\-1 または Unicode コード (\\udddd 表記) 文字を含んだファイルだけを処理することができます。 \f2native2ascii\fP は、これら以外の文字コードのファイルを Latin\-1 または Unicode コードのファイルに変換します。 +\f2native2ascii\fP Java ¹ԴĶǥݡȤʸ󥳡ǥ󥰤˥󥳡ɤ줿եASCII ǥ󥳡ɤ줿եѴޤASCII ʸåȤΰǤʤ٤Ƥʸ Unicode (\\uxxxxפɽ) ѤޤΥץϡISO\-8859\-1 ʸåȤ˴ޤޤʤʸޤޤƤץѥƥեɬפǤΥġϡεդѴ¹Ԥ뤳ȤǤޤ .LP .LP -\f2outputfile\fP を省略した場合、標準出力に出力されます。さらに、\f2inputfile\fP を省略した場合、標準入力から入力されます。 +\f2outputfile\fP ά硢ɸϤ˽Ϥޤˡ \f2inputfile\fP ά硢ɸϤϤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-reverse -逆の処理を行います。つまり、Latin\-1 または Unicode コードのファイルをネイティブコードに変換します。 +դνԤޤĤޤꡢISO\-8859\-1 Unicode פȤäƥ󥳡ɤ줿եJava ¹ԴĶǥݡȤʸ󥳡ǥ󥰤ΥեѴޤ .br .br .TP 3 \-encoding encoding_name -変換処理で使用するコードの名前を指定します。デフォルトのコードは、システムプロパティーの \f2file.encoding\fP から取得されます。\f2encoding_name\fP 文字列は、 +ѴǻѤʸ󥳡ǥ󥰤̾ꤷޤΥץ¸ߤʤϡǥեȤʸ󥳡ǥ ( \f2java.nio.charset.Charset.defaultCharset\fP ᥽åɤ) Ѥޤ \f2encoding_name\fP ʸϡ .na -\f4「サポートされているエンコーディング」\fP @ +\f4֥ݡȤƤʸ󥨥󥳡ǥ󥰡\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.htmlドキュメントに示されている、サポートされるエンコーディングの表の最初の列から取得される必要があります。 +http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.htmlɥȤ˼Ƥ롢Java ¹ԴĶǥݡȤʸ󥳡ǥ󥰤̾ˤɬפޤ +.br +.br .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 index 79406bece96..b6485a6e714 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 @@ -19,29 +19,23 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "02 Jun 2010" +.TH orbd 1 "14 Apr 2011" .LP -.SH "名前" +.SH "̾" orbd \- The Object Request Broker Daemon .LP -.RS 3 - +.LP +\f3orbd\fP ϡ饤Ȥ CORBA ĶΥСˤ³֥ȤƩŪ˸ƸƤӽФ˻Ѥޤ .LP .LP -\f3orbd\fP は、クライアントから CORBA 環境のサーバーにある持続オブジェクトを透過的に検索して呼び出すために使用します。 -.LP -.LP -\f3関連項目:\fP +\f3Ϣ:\fP .na -\f2ネームサービス\fP @ +\f2͡ॵӥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -52,42 +46,40 @@ orbd <\fP\f3options\fP\f3> .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3orbd\fP ツールに含まれるサーバーマネージャーを使うと、クライアントは CORBA 環境でサーバー上にある持続オブジェクトを透過的に検索して呼び出すことができます。持続サーバーは、ネームサービスに持続オブジェクト参照を発行する際、サーバーのポート番号の代わりに OBRD のポート番号をオブジェクト参照に含めます。持続オブジェクト参照のオブジェクト参照に ORBD ポート番号を含めることには、次のような利点があります。 +\f3orbd\fP ġ˴ޤޤ륵Сޥ͡㡼Ȥȡ饤Ȥ CORBA ĶǥСˤ³֥ȤƩŪ˸ƸƤӽФȤǤޤ³Сϡ͡ॵӥ˻³֥ȻȤȯԤݡСΥݡֹ OBRD Υݡֹ򥪥֥ȻȤ˴ޤޤ³֥ȻȤΥ֥ȻȤ ORBD ݡֹޤ뤳ȤˤϡΤ褦ޤ .LP .RS 3 .TP 2 o -ネームサービスにあるオブジェクト参照が、サーバーのライフタイムと無関係になる。オブジェクト参照は、始めてインストールされたときはネームサービスのサーバーによりネームサービスに発行されますが、その後は、サーバーの開始またはシャットダウンの回数にかかわらず、ORBD がいつでも呼び出したクライアントに正しいオブジェクト参照を返します。 +͡ॵӥˤ륪֥ȻȤСΥ饤ե̵طˤʤ롣֥ȻȤϡϤƥ󥹥ȡ뤵줿Ȥϥ͡ॵӥΥСˤ͡ॵӥȯԤޤθϡСγϤޤϥåȥβˤ餺ORBD ĤǤƤӽФ饤Ȥ֥ȻȤ֤ޤ .TP 2 o -クライアントは一度だけネーミングサービスのオブジェクト参照をルックアップする必要があるが、その後はサーバーのライフタイムによる変更とは無関係にこの参照を利用することができる +饤Ȥϰ٤͡ߥ󥰥ӥΥ֥ȻȤååפɬפ뤬θϥСΥ饤եˤѹȤ̵طˤλȤѤ뤳ȤǤ .RE .LP .LP -ORBD のサーバーマネージャーにアクセスするには、servertool(1) を使用してサーバーを起動する必要があります。 servertool は、アプリケーションプログラマが、持続サーバーの登録、登録解除、起動、およびシャットダウンを行うためのコマンド行インタフェースです。サーバーマネージャーの詳細については、このドキュメントの\f2「サーバーマネージャー」\fPを参照してください。 +ORBD ΥСޥ͡㡼˥ˤϡservertool(1) ѤƥСưɬפޤservertool ϡץꥱץޤ³СϿϿưӥåȥԤΥޥɹԥ󥿥եǤСޥ͡㡼ξܺ٤ˤĤƤϡΥɥȤΡ֥Сޥ͡㡼פ򻲾ȤƤ .LP .LP -\f2orbd\fP を起動すると、ネームサービスも起動されます。ネームサービスについては、 +\f2orbd\fP ưȡ͡ॵӥⵯưޤ͡ॵӥˤĤƤϡ .na -\f2「ネームサービス」\fP @ +\f2֥͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html򻲾ȤƤ .LP -.SH "オプション" +.SH "ץ" .LP .SS -必須オプション +ɬܥץ .LP .RS 3 .TP 3 \-ORBInitialPort nameserverport -ネームサーバーを起動するポートの番号を指定します。\f2orbd\fP は、起動されると、このポート上で着信要求を待機します。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 (必須) +͡ॵСưݡȤֹꤷޤ\f2orbd\fP ϡưȡΥݡȾ忮׵ԵޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ(ɬ) .RE .LP @@ -95,75 +87,75 @@ http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照 .LP .SS -その他のオプション +¾Υץ .LP .RS 3 .TP 3 \-port port -ORBD を起動するポートを指定します。 ORBD は、このポートで、持続オブジェクトに対する要求を受け取ります。このポートのデフォルト値は 1049 です。 このポート番号は持続 Interoperable Object References (IOR) のポートフィールドに追加されます。(省略可) +ORBD ưݡȤꤷޤORBD ϡΥݡȤǡ³֥ȤФ׵ޤΥݡȤΥǥեͤ 1049 ǤΥݡֹ椬³ Interoperable Object References (IOR). Υݡȥեɤɲäޤ(ά) .RE .LP .RS 3 .TP 3 \-defaultdb directory -ORBD 持続格納ディレクトリ \f2orb.db\fP が作成されるベースディレクトリを指定します。このオプションが指定されていない場合、デフォルト値は「./orb.db」となります。(省略可) +ORBD ³Ǽǥ쥯ȥ \f2orb.db\fP ١ǥ쥯ȥꤷޤΥץ󤬻ꤵƤʤ硢ǥեͤϡ./orb.dbפȤʤޤ(ά) .RE .LP .RS 3 .TP 3 \-serverPollingTime milliseconds -\f2servertool\fP を使用して登録された持続サーバーが正常に動作していることを ORBD が確認する回数を指定します。デフォルト値は 1,000 ミリ秒です。 「ミリ秒」の指定値は有効な整数値である必要があります。(省略可) +\f2servertool\fP ѤϿ줿³СưƤ뤳Ȥ ORBD ǧꤷޤǥեͤ 1,000 ߥäǤ\f2milliseconds\fP ˻ꤹͤϡͭǤʤФʤޤ(ά) .RE .LP .RS 3 .TP 3 \-serverStartupDelay milliseconds -\f2servertool\fP を使用して登録された持続サーバーを再起動してから、位置転送の例外を送信するまでの ORBD の待機時間を指定します。デフォルト値は 1,000 ミリ秒です。 「ミリ秒」の指定値は有効な整数値である必要があります。(省略可) +\f2servertool\fP ѤϿ줿³СƵưƤ顢ž㳰ޤǤ ORBD Ե֤ꤷޤǥեͤ 1,000 ߥäǤ\f2milliseconds\fP ˻ꤹͤϡͭǤʤФʤޤ(ά) .RE .LP .RS 3 .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .TP 3 .RE .LP -.SH "ネームサービスの起動と停止" +.SH "͡ॵӥεư" .LP .LP -ネームサービスは、 +͡ॵӥϡ .na -\f2CORBA オブジェクト\fP @ +\f2CORBA ֥\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20objectにネーミングを可能にする CORBA サービスです。 ネーミングは名前をオブジェクト参照にバインドすることにより可能になります。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object˥͡ߥ󥰤ǽˤ CORBA ӥǤ͡ߥ󥰤̾򥪥֥ȻȤ˥Хɤ뤳Ȥˤǽˤʤޤ .na -\f2「ネームバインディング」\fP @ +\f2֥͡Хǥ󥰡\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingはネームサービスに格納され、クライアントは名前を与えて目的のオブジェクト参照を取得できます。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20bindingϥ͡ॵӥ˳Ǽ졢饤Ȥ̾ͿŪΥ֥ȻȤǤޤ .LP .LP -ORBD は、クライアントまたはサーバーを実行する前に起動します。ORBD には、持続ネームサービスおよび一時ネームサービスが組み込まれています。 これらはどちらも COS ネームサービスの実装です。 +ORBD ϡ饤ȤޤϥС¹Ԥ˵ưޤORBD ˤϡ³͡ॵӥӰ͡ॵӥȤ߹ޤƤޤϤɤ COS ͡ॵӥμǤ .LP .LP -\f3「持続」ネームサービス\fPは、ネーミングコンテキストに対して持続性を提供します。つまり、この情報は、サービスの停止や起動後にも維持され、サービスに障害が発生した場合でも回復できます。ORBD を再起動すると、持続ネームサービスはネーミングコンテキストのグラフを復元し、すべてのクライアントとサーバーの名前のバインディングが保持されます。 +\f3ֻ³ץ͡ॵӥ\fPϡ͡ߥ󥰥ƥȤФƻ³󶡤ޤĤޤꡢξϡӥߤ䵯ưˤݻ졢ӥ˾㳲ȯǤǤޤORBD Ƶưȡ³͡ॵӥϥ͡ߥ󥰥ƥȤΥդ٤ƤΥ饤ȤȥС̾ΥХǥ󥰤ݻޤ .LP .LP \ .LP .LP -下位互換性のため、旧バージョンの JDK に同梱されていた\f3一時ネームサービス\fPが、今回のリリースの J2SE にも同梱されています。一時ネームサービスでは、ネームサービスの実行中にのみネーミングコンテキストが保持されます。サービスが中断されると、ネーミングコンテキストは失われます。 +̸ߴΤᡢС JDK ƱƤ\f2͡ॵӥ\fPΥ꡼ J2SE ˤƱƤޤ͡ॵӥǤϡ͡ॵӥμ¹ˤΤߥ͡ߥ󥰥ƥȤݻޤӥǤȡ͡ߥ󥰥ƥȤϼޤ .LP .LP -\f2\-ORBInitialPort\fP 引数は、\f2orbd\fP の必須のコマンド行引数で、ネームサービスが実行されるポートの番号を設定するために使われます。以下の説明では、Java\ IDL Object Request Broker Daemon 用にポート 1050 を使用できることを前提としています。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 +\f2\-ORBInitialPort\fP ϡ\f2orbd\fP ɬܤΥޥɹ԰ǡ͡ॵӥ¹ԤݡȤֹꤹ뤿˻ȤޤʲǤϡJavaIDL Object Request Broker Daemon Ѥ˥ݡ 1050 ѤǤ뤳ȤȤƤޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤɬפǤ̤ΥݡȤѹƤ .LP .LP -UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように入力します。 +UNIX ޥɥ \f2orbd\fP ưˤϡΤ褦Ϥޤ .LP .nf \f3 @@ -175,7 +167,7 @@ UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -187,7 +179,7 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -これで ORBD が実行され、サーバーとクライアントのアプリケーションを実行できるようになります。クライアントとサーバーのアプリケーションは、実行時に、ネームサービスが実行されているポートの番号 (必要な場合はさらにマシン名) を認識している必要があります。これを実現する 1 つの方法は、次のコードをアプリケーションに追加することです。 + ORBD ¹Ԥ졢Сȥ饤ȤΥץꥱ¹ԤǤ褦ˤʤޤ饤ȤȥСΥץꥱϡ¹Իˡ͡ॵӥ¹ԤƤݡȤֹ (ɬפʾϤ˥ޥ̾) ǧƤɬפޤ¸ 1 ĤˡϡΥɤ򥢥ץꥱɲä뤳ȤǤ .LP .nf \f3 @@ -205,7 +197,7 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -この例では、ネームサービスは、ホスト MyHost のポート 1050 上で実行されます。別の方法として、コマンド行からサーバーまたはクライアントのアプリケーションを実行するときに、ポート番号またはマシン名あるいはその両方を指定する方法もあります。たとえば、次のコマンド行オプションを使用して、「HelloApplication」を起動できます。 +Ǥϡ͡ॵӥϡۥ MyHost Υݡ 1050 Ǽ¹Ԥޤ̤ˡȤơޥɹԤ饵Сޤϥ饤ȤΥץꥱ¹ԤȤˡݡֹޤϥޥ̾뤤Ϥξꤹˡ⤢ޤȤСΥޥɹԥץѤơHelloApplicationפưǤޤ .LP .nf \f3 @@ -217,35 +209,35 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -ネームサービスを停止するには、適切なオペレーティングシステムコマンドを使用します。 たとえば、Solaris では \f2pkill orbd\fP を使用し、\f2orbd\fP が実行されている DOS ウィンドウでは \f2Ctrl+C\fP キーを使用します。一時ネームサービスの場合は、サービスが終了されると、ネームサービスに登録された名前が消去される場合があります。Java IDL ネームサービスは、明示的に停止されるまで実行されます。 +͡ॵӥߤˤϡŬڤʥڥ졼ƥ󥰥ƥॳޥɤѤޤȤСSolaris \f2pkill orbd\fP \f2¹Ԥꡢ\fP \f2orbd\fP ư DOS ɥ Ctrl+C 򲡤ꤷޤ͡ॵӥξϡӥλȡ͡ॵӥϿ줿̾õ礬ޤJava IDL ͡ॵӥϡŪߤޤǼ¹Ԥޤ .LP .LP -ORDB に含まれるネームサービスの詳細については、 +ORDB ˴ޤޤ͡ॵӥξܺ٤ˤĤƤϡ .na -\f2「ネームサービス」\fP @ +\f2֥͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html򻲾ȤƤ .LP -.SH "サーバーマネージャー" +.SH "Сޥ͡㡼" .LP .LP -ORBD のサーバーマネージャーにアクセスして持続サーバーを実行するには、servertool(1) を使用してサーバーを起動する必要があります。 servertool は、アプリケーションプログラマが、持続サーバーの登録、登録解除、起動、およびシャットダウンを行うためのコマンド行インタフェースです。servertool を使用してサーバーを起動する場合は、\f2orbd\fP が実行されている場所と同じポートとホストで起動する必要があります。サーバーを異なるポートで実行すると、ローカルコンテキスト用にデータベースに保存されている情報が無効になり、サービスが正しく動作しません。 +ORBD ΥСޥ͡㡼˥ƻ³С¹Ԥˤϡservertool(1) ѤƥСưɬפޤservertool ϡץꥱץޤ³СϿϿưӥåȥԤΥޥɹԥ󥿥եǤ\f2servertool\fP ѤƥСưϡ\f2orbd\fP ¹ԤƤƱݡȤȥۥȤǵưɬפޤСۤʤݡȤǼ¹Ԥȡ륳ƥѤ˥ǡ١¸Ƥ̵ˤʤꡢӥưޤ .LP .SS -サーバーマネージャー:例 +Сޥ͡㡼: .LP .LP -デモ用の +ǥѤ .na -\f2サンプルチュートリアル\fP @ +\f2ץ塼ȥꥢ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.htmlを使用し、チュートリアルの手順に従って、\f2idlj\fP コンパイラと \f2javac\fP コンパイラを実行します。サーバーマネージャーを実行するには、次の手順に従ってアプリケーションを実行します。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.htmlѤ塼ȥꥢμ˽äơ\f2idlj\fP ѥ \f2javac\fP ѥ¹ԤޤСޥ͡㡼¹Ԥˤϡμ˽äƥץꥱ¹Ԥޤ .LP .LP -\f2orbd\fP を起動します。 +\f2orbd\fP ưޤ .LP .LP -UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように入力します。 +UNIX ޥɥ \f2orbd\fP ưˤϡΤ褦Ϥޤ .LP .LP \ @@ -260,7 +252,7 @@ UNIX コマンドシェルで \f2orbd\fP を起動するには、次のように .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -272,13 +264,13 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -\f21050\fP はネームサーバーを実行するポートです。\f2\-ORBInitialPort\fP は必要なコマンド行の引数です。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 +\f21050\fP ϥ͡ॵС¹ԤݡȤǤ\f2\-ORBInitialPort\fP ɬפʥޥɹԤΰǤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ .LP .LP -\f2servertool\fP を起動します。 +\f2servertool\fP ưޤ .LP .LP -Hello サーバーを起動するには、次のように入力します。 +Hello СưˤϡΤ褦Ϥޤ .LP .nf \f3 @@ -290,21 +282,21 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -前回の手順と同様にネームサーバー (\f2orbd\fP) のポートを指定します。 たとえば \f2\-ORBInitialPort 1050\fP のようになります。\f2servertool\fP は、ネームサーバーと同じポート上で起動する必要があります。 +μƱͤ˥͡ॵС (\f2orbd\fP) ΥݡȤꤷޤȤ \f2\-ORBInitialPort 1050\fP Τ褦ˤʤޤ\f2servertool\fP ϡ͡ॵСƱݡȾǵưɬפޤ .LP .LP -\f2servertool\fP コマンド行インタフェースが表示されます。 +\f2servertool\fP ޥɹԥ󥿥եɽޤ .LP .LP .LP .LP -\f2servertool\fP プロンプトから Hello サーバーを起動します。 +\f2servertool\fP ץץȤ Hello Сưޤ .LP .nf \f3 .fl - servertool > register \-server HelloServer \-classpath . \-applicationName + servertool > register \-server HelloServer \-classpath .\-applicationName .fl HelloServerApName .fl @@ -313,13 +305,13 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -\f2servertool\fP によってサーバーが登録されて、「HelloServerApName」という名前がサーバーに割り当てられ、サーバー ID が表示されます。 +\f2servertool\fP ˤäƥСϿơHelloServerApNameפȤ̾С˳Ƥ졢С ID ɽޤ .LP .LP .LP .LP -別の端末ウィンドウまたはプロンプトからクライアントアプリケーションを実行します。 +̤üɥޤϥץץȤ饯饤ȥץꥱ¹Ԥޤ .LP .LP \ @@ -334,10 +326,10 @@ Hello サーバーを起動するには、次のように入力します。 .LP .LP -この例の \f2\-ORBInitialHost localhost\fP は省略することができます。 ネームサーバーが Hello クライアントとして同一ホスト上で動作しているからです。ネームサーバーが別のホストで動作している場合は、IDL ネームサーバーが動作しているホストを \f2\-ORBInitialHost\fP \f2nameserverhost\fP で指定します。 + \f2\-ORBInitialHost localhost\fP Ͼά뤳ȤǤޤ͡ॵС Hello 饤ȤȤƱۥȾưƤ뤫Ǥ͡ॵС̤ΥۥȤưƤϡIDL ͡ॵСưƤۥȤ \f2\-ORBInitialHost\fP \f2nameserverhost\fP ǻꤷޤ .LP .LP -前回の手順と同様にネームサーバー (\f2orbd\fP) のポートを指定します。 たとえば \f2\-ORBInitialPort 1050\fP のようになります。 +μƱͤ˥͡ॵС (\f2orbd\fP) ΥݡȤꤷޤȤ \f2\-ORBInitialPort 1050\fP Τ褦ˤʤޤ .LP .LP \ @@ -346,21 +338,21 @@ Hello サーバーを起動するには、次のように入力します。 \ .LP .LP -サーバーマネージャーの操作が終了したら、ネームサーバー (\f2orbd\fP) と \f2servertool\fP を停止するか終了してください。 +Сޥ͡㡼λ顢͡ॵС (\f2orbd\fP) \f2servertool\fP ߤ뤫λƤ .LP .LP -DOS プロンプトで \f2orbd\fP をシャットダウンするには、サーバーを実行しているウィンドウを選択して \f2Ctrl+C\fP と入力します。UNIX シェルで \f2orbd\fP をシャットダウンするには、プロセスを検出して終了 (kill) します。サーバーを明示的に停止するまでは、呼び出し待機状態が続きます。 +DOS ץץȤ \f2orbd\fP 򥷥åȥ󤹤ˤϡС¹ԤƤ륦ɥ򤷤 \f2Ctrl+C\fP ϤޤUNIX \f2orbd\fP 򥷥åȥ󤹤ˤϡץ򸡽Фƽλ (kill) ޤСŪߤޤǤϡƤӽФԵ֤³ޤ .LP .LP -\f2servertool\fP をシャットダウンするには、\f2quit\fP と入力し、キーボードの \f2Enter\fP キーを押します。 +\f2servertool\fP 򥷥åȥ󤹤ˤϡ \f2quit\fP Ϥƥܡɤ \f2Enter\fP 򲡤ޤ .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o .na -\f2ネームサービス\fP @ +\f2͡ॵӥ\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html .br diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 b/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 index 51fb78b7101..74886e8d950 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 @@ -19,99 +19,79 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "02 Jun 2010" +.TH pack200 1 "14 Apr 2011" .LP -.SH "名前" -pack200 \- JAR パックツール +.SH "̾" +pack200 \- JAR ѥåġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -終了ステータス +λơ .TP 2 o -関連項目 +Ϣ .TP 2 o -説明 +ջ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .LP \f4pack200\fP\f2 [ \fP\f2options\fP ] \f2output\-file\fP \f2JAR\-file\fP .LP .LP -オプションの指定順序に決まりはありません。コマンド行または properties ファイルに指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。 -.LP -.RS 3 - +ץλ˷ޤϤޤ󡣥ޥɹԤޤ properties ե˻ꤵ줿ǸΥץ󤬡˻ꤵ줿٤ƤΥץͥ褵ޤ .LP .RS 3 .TP 3 options -コマンド行オプション。 +ޥɹԥץ .TP 3 output\-file -出力ファイルの名前。 +ϥե̾ .TP 3 JAR\-file -入力ファイルの名前。 +ϥե̾ .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -\f2pack200\fP ツールは、Java \f2gzip\fP 圧縮プログラムを使用して、JAR ファイルを \f2pack200\fP 圧縮ファイルに変換する Java アプリケーションです。\f2pack200\fP ファイルは高圧縮のファイルで、帯域幅の節約やダウンロード時間の短縮や直接配備することができます。 +\f2pack200\fP ġϡJava gzip ̥ץѤ JAR ե \f2pack200\fP ̥եѴ \f2Java ץꥱ\fP Ǥ \f2pack200\fP եϹⰵ̤ΥեǡӰɻ֤ṳ̂ľ뤳ȤǤޤ .LP .LP -\f2pack200\fP ツールには、圧縮エンジンの設定や微調整を行うオプションが用意されています。 +\f2pack200\fP ġˤϡ̥󥸥ĴԤץѰդƤޤ .LP .SS -一般的な使用方法: -.LP -.RS 3 - +Ūʻˡ: .LP .LP \f2% pack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP -この例では、デフォルトの \f2pack200\fP 設定で、\f2myarchive.pack.gz\fP が作成されます。 +Ǥϡ \f2ǥեȤ pack200 Ѥ\fP myarchive.pack.gz \f2ޤ\fP .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .LP \f4\-r \-\-repack\fP .LP -.RS 3 - .LP -.LP -\f2myarchive.jar\fP ファイルをパックした後にアンパックすることにより、JAR ファイルを生成します。生成されたファイルは、\f2jarsigner(1)\fP ツールの入力ファイルとして使用できます。 -.LP -.RS 3 - +ե \f2myarchive.jar\fP ѥåȥѥå뤳ȤǡJAR եޤ줿ե \f2jarsigner(1)\fP ġϥեȤƻѤǤޤ .LP .LP \f2% pack200 \-\-repack myarchive\-packer.jar myarchive.jar\fP @@ -119,158 +99,122 @@ JAR\-file .LP \f2% pack200 \-\-repack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-g \-\-no\-gzip\fP .LP -.RS 3 - .LP -.LP -\f2pack200\fP ファイルを生成します。このオプションを指定するときは、適切な圧縮ツールを使用する必要があります。 また、ターゲットシステムでは、対応する圧縮解除ツールを使用する必要があります。 -.LP -.RS 3 - +\f2pack200\fP եޤΥץꤹȤϡŬڤʰ̥ġѤɬפޤޤåȥƥǤϡб밵̲ġѤɬפޤ .LP .LP \f2% pack200 \-\-no\-gzip myarchive.pack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-G \-\-strip\-debug\fP .LP -.RS 3 - +.LP +ϤǥХåѤ°ޤ°ȤƤϡ \f2SourceFile\fP \f2LineNumberTable\fP \f2LocalVariableTable\fP \f2LocalVariableTypeTable\fP ʤɤ󤲤ޤ°Сɤȥ󥹥ȡΥϾʤޤǥХåεǽ¤ޤ .LP .LP -出力からデバッグ用の属性を削除します。対象となる属性には、\f2SourceFile\fP、\f2LineNumberTable\fP、\f2LocalVariableTable\fP、および \f2LocalVariableTypeTable\fP などがあります。これらの属性を削除すれば、ダウンロードとインストールのサイズは小さくなりますが、デバッガの機能は制限されます。 +\f4\-\-keep\-file\-order\fP +.LP +.LP +ϥեΥեνݻޤ줬ǥեȤưǤ .LP -.RE .LP \f4\-O \-\-no\-keep\-file\-order\fP .LP -.RS 3 - .LP +ѥåġϡ٤ƤǤ¤ؤžޤޤJAR ǥ쥯ȥ̾ޤΤᡢɤΥϾʤޤǥåϤȤ JAR եκŬǽưʤʤ뤳Ȥޤ .LP -パックツールは、すべての要素を並べ替えて転送します。また、JAR ディレクトリ名を削除します。このため、ダウンロードのサイズは小さくなりますが、インデックスをはじめとする JAR ファイルの最適化機能は正常に動作しなくなることがあります。 -.LP -.RE .LP \f4\-Svalue \-\-segment\-limit=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -この値は、各アーカイブセグメントの予想ターゲットサイズ N (バイト単位) です。N バイト以上を必要とする単一の入力ファイルには、 +ͤϡƥ֥Ȥͽۥåȥ N (Хñ) Ǥñϥեɬץ .br -独立したアーカイブセグメントが割り当てられます。たとえば、これは特殊な例ですが、値が \f2\-1\fP の場合、すべての入力ファイルを含む単一の巨大なセグメントが生成されます。 一方、値が \f20\fP の場合、クラスごとにセグメントが 1 つずつ生成されます。アーカイブセグメントのサイズが大きければ大きいほど断片化は起こりにくく、圧縮率も高くなります。しかし、こうしたセグメントを処理するためには、大量のメモリーが必要になります。 +N ХȤĶȡΥեˤΩ֥ȤƤޤüʥȤơͤ \f2\-1\fP ξϡ٤Ƥϥեޤ礭ñΥȤ졢ͤ \f20\fP ξϡ饹Ȥ˥Ȥ 1 Ĥޤ֥Ȥ礭ʤȡҲʤʤ갵Ψ⤯ʤޤνˤ¿Υ꡼ɬפǤ .LP .LP -各セグメントのサイズは、セグメント内で転送される入力ファイルのサイズと、このファイルの名前のサイズ、およびその他の転送プロパティーによって予測されます。 +ƥȤΥϡȤѴ뤽줾ϥեΥΤۤ̾ȤۤץѥƥΥ׻ƿ¬ޤ .LP .LP -デフォルトのサイズは \f21000000\fP (100 万バイト) です。これは、標準サイズの入力 JAR ファイルを単一セグメント内で転送できるサイズです。パックツールおよびアンパックツールのメモリー要件には制限が課されます。 +ǥեȤ \-1 ǤĤޤꡢѥåġϾñΥȽϥեޤü礭ʽϥե뤬ˤϡϥե򥻥Ȳ (ʬ) Ƥ꾮 JAR ˤ뤳Ȥ򶯤ᤷޤ .LP .LP -この制限が課されていない 10M バイトの JAR パックファイルは通常、元の 10% 程度のサイズにパックされます。 しかし、パックツールでより大きな Java ヒープ (セグメントの制限の約 10 倍) を必要とする場合もあります。 +¤ݤƤʤ 10M ХȤ JAR ѥåե̾ 10% ٤Υ˥ѥåޤѥåġǤ礭 Java ҡ (Ȥ¤ 10 ) ɬפȤ⤢ޤ .LP -.RE .LP \f4\-Evalue \-\-effort=\fP\f2value\fP .LP -.RS 3 - +.LP +ñ 10 ʿͤꤷ硢ѥåġϡꤵ줿Ψǥ֤򰵽̤ޤ٥ \f21\fP ξϡŪû̻֤Ǥ礭Υե뤬ޤ٥ \f29\fP ξϡĹ֤ΤΡ갵Ψι⤤ե뤬ޤü \f20\fP ꤷϡ JAR ե򰵽̤ʤľܥԡޤJSR 200 ɸǤϡ٤Ƥβץब̤ʾ򥢡ΤΥѥ롼Ȳ᤹褦˵ꤷƤޤ .LP .LP -単一の 10 進数値を指定した場合、パックツールは、指定された圧縮率でアーカイブを圧縮します。レベル \f21\fP の場合、圧縮速度は速くても圧縮率はそれほど高くありません。 レベル \f29\fP の場合、圧縮速度は遅くても圧縮率は高くなります。特殊な値 \f20\fP を指定した場合は、元の JAR ファイルを圧縮なしで直接コピーします。JSR 200 標準では、すべてのアンパックツールはこの特殊な処理をアーカイブ全体のパススルーとして理解する必要があります。 +ǥեȤ \f25\fPǤξ硢ɸŪʻ֤Ŭڤʰ̤Ԥޤ .LP .LP -デフォルト値は \f25\fP です。 この場合、標準的な時間で、適度な圧縮が行われます。 -.LP -.RE -.LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -デフォルト値を上書きし、入力情報を保持します。 転送されるアーカイブのサイズは大きくなります。可能な値: +ǥեͤ񤭤Ͼ¸ޤž륢֤Υ礭ʤޤ֤ͤϼΤɤ줫ˤʤޤ .LP .RS 3 .TP 3 true .TP 3 false -どちらの場合でも、パックツールはデフレーションヒントを出力アーカイブに設定します。 アーカイブ要素の個々のデフレーションヒントは転送しません。 +ɤξǤ⡢ѥåġϥǥե졼ҥȤϥ֤ꤷޤǤθġΥǥե졼ҥȤžޤ .RE .LP .RS 3 .TP 3 keep -入力 JAR 内のデフレーションヒントを保持します (デフォルト)。 + JAR.ǸĤäǥե졼ҥȤݻޤ(줬ǥեȤǤ) .RE .LP -.RE .LP \f4\-mvalue \-\-modification\-time=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -可能な値: +֤ͤϼΤɤ줫ˤʤޤ .LP .RS 3 .TP 3 latest -パックツールは、元のアーカイブの全エントリの最終更新時刻か、そのセグメントのすべてのエントリの最終更新時刻を特定しようとします。この単一の値はセグメントの一部として転送され、各セグメントの全エントリに適用されます。この場合、すべてのインストールファイルに単一の日付が設定されるという問題はありますが、アーカイブの転送サイズを少し小さくすることができます。 +ѥåġϡΥ֤ȥκǽ狼ΥȤΤ٤ƤΥȥκǽꤷ褦ȤޤñͤϥȤΰȤž졢ƥȤȥŬѤޤξ硢٤ƤΥ󥹥ȡեñդꤵȤϤޤ֤ž򾯤뤳ȤǤޤ .TP 3 keep -入力 JAR 内の更新時刻を保持します (デフォルト)。 + JAR. ǸĤäѹݻޤ(줬ǥեȤǤ) .RE .LP -.RE .LP \f4\-Pfile \-\-pass\-file=\fP\f2file\fP .LP -.RS 3 - .LP +ե򰵽̤Хñ̤ž褦˻ꤷޤΥץ򷫤֤ѤơʣΥեǤޤƥե륻ѥ졼 JAR ե륻ѥ졼\f2/\fPפ֤ѥ̾ѴϹԤޤ ̤Ȥե̾ϡʸȤΤ JAR եǤνиȰפƤɬפޤfile ˥ǥ쥯ȥ̾ꤷ硢Υǥ쥯ȥΤ٤ƤΥե뤬žޤ .LP -ファイルを圧縮せず、バイト単位で転送するように指定します。このオプションを繰り返し使用して、複数のファイルを指定できます。パス名の変換は行われません。 システムファイルの区切り文字が JAR ファイルの区切り文字「\f2/\fP」で置き換えられるだけです。ファイル名は、JAR ファイル内の文字列と完全に一致していなければなりません。file にディレクトリ名を指定した場合、そのディレクトリ内のすべてのファイルが転送されます。 -.LP -.RE .LP \f4\-Uaction \-\-unknown\-attribute=\fP\f2action\fP .LP -.RS 3 - .LP -.LP -デフォルトの動作を無効にします。 たとえば、不明な属性を含むクラスファイルを指定したアクションで転送します。アクションとして指定可能な値: +ǥեȤư̵ˤޤȤС°ޤ९饹եꤷžޤȤƻǽ: .LP .RS 3 .TP 3 error -\f2pack200\fP の操作に失敗し、適切な解説が表示されます。 +\f2pack200\fP ˼ԤŬڤʲ⤬ɽޤ .TP 3 strip -属性はドロップされます。注: VM 必須属性を削除すると、クラスローダーの障害が発生することがあります。 +°ϥɥåפޤ: VM ɬ°ȥ饹ξ㳲ȯ뤳Ȥޤ .TP 3 pass -この属性が検出された場合、クラス全体が 1 つのリソースとして転送されます。 +°Ф줿硢饹Τ 1 ĤΥ꥽Ȥžޤ .RE .LP -.RE .LP \f4\-Cattribute\-name=\fP\f2layout\fP \f3\-\-class\-attribute=\fP\f2attribute\-name=action\fP .br @@ -280,42 +224,32 @@ pass .br \f4\-Dattribute\-name=\fP\f2layout\fP \f3\-\-code\-attribute=\fP\f2attribute\-name=action\fP .LP -.RS 3 - .LP -.LP -これら 4 つのオプションでは、クラスエンティティーに Class 属性、Field 属性、Method 属性、Code 属性などの属性のレイアウトを指定できます。attribute\-name には、これからレイアウトまたはアクションを定義する属性の名前を指定します。アクションとして指定可能な値: + 4 ĤΥץǤϡ饹ƥƥ Class °Field °Method °Code °ʤɤ°Υ쥤ȤǤޤattribute\-name ˤϡ줫쥤Ȥޤϥ°̾ꤷޤȤƻǽ: .LP .RS 3 .TP 3 -(一部のレイアウト文字列) -レイアウト言語は、JSR 200 仕様に定義されています。 +some\-layout\-string +쥤ȸϡJSR 200 ͤƤޤ .LP -例: \f2\-\-class\-attribute=SourceFile=RUH\fP +: \f2\-\-class\-attribute=SourceFile=RUH\fP .TP 3 error -この属性が検出された場合、pack200 の操作に失敗し、適切な解説が表示されます。 +°Ф줿硢pack200 ˼ԤŬڤʲ⤬ɽޤ .TP 3 strip -この属性が検出された場合、属性は出力から削除されます。注: VM 必須属性を削除すると、クラスローダーの障害が発生することがあります。 +°Ф줿硢°ϽϤޤ: VM ɬ°ȥ饹ξ㳲ȯ뤳Ȥޤ .RE .LP .LP -例: \f2\-\-class\-attribute=CompilationID=pass\fP というこの属性を含むクラスファイルを転送します。 パックツールは、その他のアクションを行いません。 +: \f2\-\-class\-attribute=CompilationID=pass\fP Ȥ°ޤ९饹եžޤѥåġϡ¾ΥԤޤ .LP -.RE .LP \f4\-f\fP\f2 \fP\f2pack.properties\fP \f3\-\-config\-file=\fP\f2pack.properties\fP .LP -.RS 3 - .LP -.LP -コマンド行に、パックツールを初期化するための Java プロパティーが含まれている設定ファイルを指定できます。 -.LP -.RS 3 - +ޥɹԤˡѥåġ뤿 Java ץѥƥޤޤƤեǤޤ .LP .LP \f2% pack200 \-f pack.properties myarchive.pack.gz myarchive.jar\fP @@ -339,71 +273,55 @@ strip \f2# Change the segment limit to be unlimited.\fP .br \f2segment.limit=\-1\fP -.LP -.RE -.RE -.RS 3 - .LP .LP \f4\-v \-\-verbose\fP .LP -.RS 3 - .LP +Ǿ¤ΥåϤޤΥץʣꤹȡĹåϤޤ .LP -最小限のメッセージを出力します。このオプションを複数指定すると、より長いメッセージが出力されます。 -.LP -.RE .LP \f4\-q \-\-quiet\fP .LP -.RS 3 - .LP +åɽưޤ .LP -メッセージを表示せずに動作します。 -.LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP .LP -.RS 3 - +.LP +ϥåΥեꤷޤ .LP .LP -出力メッセージのログファイルを指定します。 -.LP -.RE -.LP -\f4\-Joption\fP -.LP -.RS 3 - +\f4\-? \-h \-\-help\fP .LP .LP -\f2pack200\fP によって呼び出される Java 起動ツールにオプションを渡します。たとえば、\f2\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。このオプションは \f2\-X\fP で始まっていませんが、\f2pack200\fP の標準オプションではありません。\f2\-J\fP を使って、Java で記述されたアプリケーションを実行する背後の VM にオプション渡すことは、よく行われています。 -.LP -.RE -.RE -.SH "終了ステータス" -.LP - +Υޥɤ˴ؤإ׾Ϥޤ .LP .LP -次の終了値が返されます。 -.LP -.RS 3 - +\f4\-V \-\-version\fP .LP .LP -\f2\ 0\fP "成功" +Υޥɤ˴ؤСϤޤ .LP .LP -\f2>0\fP "エラー" +\f4\-J\fP\f2option\fP .LP -.RE -.SH "関連項目" +.LP +\f2option\fP \f2pack200\fP ƤӽФ줿 Java ưġϤޤȤС \f2\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤΥץ \f2\-X\fP ǻϤޤäƤޤ󤬡 \f2pack200\fP ɸ४ץǤϤޤ \f2\-J\fP ȤäơJava ǵҤ줿ץꥱ¹Ԥظ VM ˥ץϤȤϡ褯ԤƤޤ +.LP +.SH "λơ" +.LP +.LP +νλ֤ͤޤ +.LP +.LP +\f2\ 0\fP ェλ +.LP +.LP +\f2>0\fP 顼ȯ +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -412,35 +330,33 @@ unpack200(1) .TP 2 o .na -\f2Java SE のドキュメント\fP @ +\f2Java SE Υɥ\fP @ .fi http://java.sun.com/javase/6/docs/index.html .TP 2 o .na -\f2「Java 配備ガイド \- Pack200」\fP @ +\f2Java \- Pack200\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o -jar(1) \- Java Archive ツール」 +jar(1) \- Java Archive ġ .TP 2 o -「jarsigner(1) \- JAR 署名および検証ツール」 +jarsigner(1) \- JAR ̾Ӹڥġ .TP 2 o -\f2attributes(5)\fP のマニュアルページ +\f2attributes(5) \fP ޥ˥奢ڡ .RE .LP -.SH "注意事項" -.LP - +.SH "ջ" .LP .LP -このコマンドと \f2pack(1)\fP を混同しないでください。これらは別製品です。 +Υޥɤ \f2pack(1)\fP ƱʤǤʤǤ .LP .LP -SDK に付属する Java SE API 仕様との相違が見つかった場合には、仕様を優先してください。 +SDK ° Java SE API ͤȤ㤬Ĥäˤϡͤͥ褷Ƥ .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 index c53d78fe09c..ee5b9c7dbff 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 @@ -19,84 +19,82 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "02 Jun 2010" +.TH policytool 1 "14 Apr 2011" .LP -.SH "名前" -policytool \- PolicyTool 管理 GUI ユーティリティー +.SH "̾" +policytool \- PolicyTool GUI 桼ƥƥ .LP -\f3policytool\fP は、ユーティリティー GUI 経由で取得したユーザー入力に基づいて、プレーンテキストのポリシーファイルを読み書きします。 +\f3policytool\fP ϡ桼ƥƥ GUI ͳǼ桼Ϥ˴Ťơץ졼ƥȤΥݥꥷեɤ߽񤭤ޤ .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -関連項目 +Ϣ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .RS 3 .TP 3 \ .TP 3 -policytool 管理者ユーティリティーを実行します +policytool ԥ桼ƥƥ¹Ԥޤ \f4policytool\fP .TP 3 -policytool を実行し、指定されたポリシーファイルを読み込みます -\f4policytool\fP\f2 [\-file\ \fP\f2filename\fP\f2]\fP +policytool ¹Ԥꤵ줿ݥꥷեɤ߹ߤޤ +\f4policytool\fP\f2[\-file\ \fP\f2filename\fP\f2]\fP .TP 3 \ .TP 3 -各要素は次のとおりです。 +ʲˤ줾ΰ̣򼨤ޤ .RS 3 .TP 3 file -ローカルポリシーファイルを読み込むように \f2policytool\fP に指示します +ݥꥷեɤ߹褦 \f2policytool\fP ˻ؼޤ .TP 3 filename -ファイル名 +ե̾ .RE -.SH "説明" +.SH "" .LP -\f3policytool\fP は、ユーザーがローカルポリシーファイルの内容を管理することを可能にする GUI です。詳細については、 +\f3policytool\fP ϡ桼ݥꥷեƤ뤳Ȥǽˤ GUI Ǥܺ٤ˤĤƤϡ .na -\f2「ポリシーファイル作成および管理ツール」\fP @ +\f2֥ݥꥷեӴġ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.htmlを参照してください。 -.SH "オプション" +http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html򻲾ȤƤ +.SH "ץ" .RS 3 .TP 3 file -\f2filename\fP を読み込みます。 -.SH "関連項目" +\f2filename\fP ɤ߹ߤޤ +.SH "Ϣ" .na -\f2「Default Policy Implementation and Syntax」\fP @ +\f2Default Policy Implementation and Syntax\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html .br .na -\f2「Policy Tool Users' Guide」\fP @ +\f2Policy Tool Users' Guide\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html .br .na -\f2「Security Permissions」\fP @ +\f2Security Permissions\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html .br .na -\f2「Security Overview」\fP @ +\f2Security Overview\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html .br diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 index 85e045e6446..bef409008e5 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "02 Jun 2010" +.TH rmic 1 "14 Apr 2011" .LP -.SH "名前" -rmic \- Java RMI コンパイラ -.LP -.RS 3 - +.SH "̾" +rmic \- Java RMI ѥ .LP .LP -\f3rmic\fP によって、JRMP または IIOP プロトコルを使用するリモートオブジェクトのスタブ、スケルトン、および Tie クラスが生成されます。また、OMG IDL も生成されます。 +\f3rmic\fP ˤäơJRMP ޤ IIOP ץȥѤ⡼ȥ֥ȤΥ֡ȥ󡢤 Tie 饹ޤޤOMG IDL ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,12 +39,10 @@ rmic [ \fP\f3options\fP\f3 ] \fP\f4package\-qualified\-class\-name(s)\fP\f3 .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmic\fP コンパイラによって、リモートオブジェクトの、スタブ、スケルトンクラスファイル (JRMP プロトコル)、およびスタブと Tie クラスファイルの組み合わせ (IIOP プロトコル) が生成されます。リモートオブジェクトの実装クラスであるこれらのクラスファイルは、Java プログラミング言語のクラスをコンパイルしたときに生成されます。リモート実装クラスは、\f2java.rmi.Remote\fP インタフェースを実装するクラスです。\f3rmic\fP コマンドでのクラス名は、そのクラスが \f3javac\fP コマンドでコンパイルが成功していて、かつ完全なパッケージ名が指定されている必要があります。たとえば、クラスファイル名 \f2HelloImpl\fP で \f3rmic\fP を実行するには、次のようにします。 +\f3rmic\fP ѥˤäơ⡼ȥ֥ȤΡ֡ȥ󥯥饹ե (JRMP ץȥ)ӥ֤ Tie 饹եȤ߹碌 (IIOP ץȥ) ޤ⡼ȥ֥Ȥμ饹Ǥ뤳Υ饹եϡJava ץߥ󥰸Υ饹򥳥ѥ뤷Ȥޤ⡼ȼ饹ϡ\f2java.rmi.Remote\fP 󥿥ե륯饹Ǥ\f3rmic\fP ޥɤǤΥ饹̾ϡΥ饹 \f3javac\fP ޥɤǥѥ뤬ƤơĴʥѥå̾ꤵƤɬפޤȤС饹ե̾ \f2HelloImpl\fP \f3rmic\fP ¹ԤˤϡΤ褦ˤޤ .LP .nf \f3 @@ -62,37 +54,32 @@ rmic hello.HelloImpl .LP .LP -\f2HelloImpl_Stub.class\fP ファイルが、クラスのパッケージ名が付いた \f2hello\fP サブディレクトリに作成されます。 +\f2HelloImpl_Stub.class\fP ե뤬饹Υѥå̾դ \f2hello\fP ֥ǥ쥯ȥ˺ޤ .LP .LP -リモートオブジェクトの「スケルトン」は JRMP プロトコルサーバー側のエンティティーで、実際のリモートオブジェクト実装を呼び出すメソッドを含みます。 +⡼ȥ֥ȤΡ֥ȥפ JRMP ץȥ륵С¦ΥƥƥǡºݤΥ⡼ȥ֥ȼƤӽФ᥽åɤޤߤޤ .LP .LP -リモートオブジェクトの「Tie」は、スケルトンと同様にサーバー側のエンティティーですが、IIOP プロトコルを使ってクライアントと通信します。 +⡼ȥ֥ȤΡTieפϡȥƱͤ˥С¦ΥƥƥǤIIOP ץȥȤäƥ饤Ȥ̿ޤ .LP .LP -「スタブ」とは、リモートオブジェクトのクライアント側での代理です。 スタブは、リモートオブジェクトのメソッド呼び出しを、実物のリモートオブジェクトが常駐するサーバーと通信する役割を持ちます。したがって、クライアントのリモートオブジェクトへの参照は、実際はローカルスタブへの参照となります。 +֥֡פȤϡ⡼ȥ֥ȤΥ饤¦ǤǤ֤ϡ⡼ȥ֥ȤΥ᥽åɸƤӽФ򡢼ʪΥ⡼ȥ֥Ȥ󤹤륵С̿ޤäơ饤ȤΥ⡼ȥ֥ȤؤλȤϡºݤϥ륹֤ؤλȤȤʤޤ .LP .LP -デフォルトで \f3rmic\fP では、1.2 JRMP スタブプロトコルバージョンだけを使用するスタブクラスを生成します。 これは、\f2\-v1.2\fP オプションを指定した場合と同じ動作です。(5.0 以前では \f2\-vcompat\fP オプションがデフォルトであったことに注意。) IIOP プロトコル用のスタブおよび Tie クラスを生成するには \f2\-iiop\fP オプションを使用します。 +ǥեȤ \f3rmic\fP Ǥϡ1.2 JRMP ֥ץȥСѤ륹֥饹ޤϡ\f2\-v1.2\fP ץꤷƱưǤ(5.0 Ǥ \f2\-vcompat\fP ץ󤬥ǥեȤǤäȤաIIOP ץȥѤΥ֤ Tie 饹ˤ \f2\-iiop\fP ץѤޤ .LP .LP -スタブはリモートインタフェースだけを実装し、リモートオブジェクトが実装する局所インタフェースは実装していません。JRMP スタブはリモートオブジェクト自体が実装するリモートインタフェースと同じものを実装しているので、クライアントは、キャストや型チェックに Java プログラミング言語に組み込まれた演算子を使用することができます。IIOP の場合は、\f2PortableRemoteObject.narrow\fP メソッドを使わなければなりません。 +֤ϥ⡼ȥ󥿥ե⡼ȥ֥Ȥɽꥤ󥿥եϼƤޤJRMP ֤ϥ⡼ȥ֥ȼΤ⡼ȥ󥿥եƱΤƤΤǡ饤Ȥϡ㥹Ȥ䷿å Java ץߥ󥰸Ȥ߹ޤ줿黻ҤѤ뤳ȤǤޤIIOP ξϡ\f2PortableRemoteObject.narrow\fP ᥽åɤȤʤФʤޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-bootclasspath path -ブートストラップクラスファイルの位置をオーバーライドします。 +֡ȥȥåץ饹եΰ֤򥪡С饤ɤޤ .TP 3 \-classpath path -\f3rmic\fP がクラスを探すためのパスを指定します。このオプションは、デフォルトや CLASSPATH 環境変数設定を上書きします。ディレクトリはコロンで分割します。したがって、\f2path\fP の一般形式は次のようになります。 -.RS 3 - -.LP +\f3rmic\fP 饹õΥѥꤷޤΥץϡǥեȤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ .nf \f3 .fl @@ -100,11 +87,7 @@ rmic hello.HelloImpl .fl \fP .fi -.RE -例を示します。 -.RS 3 - -.LP +򼨤ޤ .nf \f3 .fl @@ -112,13 +95,9 @@ rmic hello.HelloImpl .fl \fP .fi -.RE .TP 3 \-d directory -生成されたクラス階層の出力先ディレクトリのルートを指定します。このオプションを使えば、スタブ、スケルトン、および Tie ファイルを格納するディレクトリを指定できます。たとえば、次のようにして使います。 -.RS 3 - -.LP +줿饹ؤνǥ쥯ȥΥ롼ȤꤷޤΥץȤС֡ȥ󡢤 Tie եǼǥ쥯ȥǤޤȤСΤ褦ˤƻȤޤ .nf \f3 .fl @@ -126,49 +105,43 @@ rmic hello.HelloImpl .fl \fP .fi -.RE -\f2MyClass\fP から取得したスタブとスケルトンクラスを \f2/java/classes/foo\fP ディレクトリに置きます。\f2\-d\fP オプションが指定されていない場合は、\f2「\-d\ .」\fPが指定されていると見なされます。ターゲットクラスのパッケージ階層が現在のディレクトリに作成され、スタブ、Tie、およびスケルトンファイルがそのディレクトリに格納されます。(以前のバージョンの \f3rmic\fP では、\f2\-d\fP が指定されていない場合は、パッケージ階層は作成されず、出力ファイルはすべて現在のディレクトリに直接格納されていた)。 +MyClass \f2֤ȥȥ󥯥饹\fP \f2/java/classes/foo\fP ǥ쥯ȥ֤ޤ\f2\-d\fP ץ󤬻ꤵƤʤϡ\f2\-d\ .\fPꤵƤȸʤޤåȥ饹ΥѥåؤߤΥǥ쥯ȥ˺졢֡Tieӥȥե뤬Υǥ쥯ȥ˳Ǽޤ(ΥС \f3rmic\fP Ǥϡ\f2\-d\fP ꤵƤʤϡѥåؤϺ줺ϥեϤ٤ƸߤΥǥ쥯ȥľܳǼƤ) .br \ .TP 3 \-extdirs path -インストール型拡張機能の位置をオーバーライドします。 +󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ .TP 3 \-g -局所変数を含むすべてのデバッグ情報を生成します。デフォルトでは、行番号情報だけが生成されます。 -.LP +ɽѿޤह٤ƤΥǥХåޤǥեȤǤϡֹޤ .TP 3 \-idl -\f2rmic\fP によって、指定したクラスおよび参照されたクラスの OMG IDL が生成されます。IDL では、プログラミング言語に依存せずに、宣言するだけでオブジェクトの API を指定することができます。IDL は、メソッドおよびデータの仕様として使用します。 CORBA バインディングを提供する任意の言語で、メソッドおよびデータの作成および呼び出しを行うことができます。これらの言語には、Java および C++ が含まれています。詳細は、 +\f2rmic\fP ˤäơꤷ饹ӻȤ줿饹 OMG IDL ޤIDL Ǥϡץߥ󥰸˰¸ˡǥ֥Ȥ API ꤹ뤳ȤǤޤIDL ϡ᥽åɤӥǡλͤȤƻѤޤCORBA Хǥ󥰤󶡤Ǥդθǡ᥽åɤӥǡκӸƤӽФԤȤǤޤθˤϡJava C++ ޤޤƤޤܺ٤ϡ .na \f2Java Language to IDL Mapping\fP @ .fi -http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) を参照してください。 +http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) 򻲾ȤƤ .LP -\f2\-idl\fP オプションを使うときは、ほかのオプションも指定できます。 +\f2\-idl\fP ץȤȤϡۤΥץǤޤ .RS 3 .TP 3 -\-always または \-alwaysgenerate -既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 +\-always ޤ \-alwaysgenerate +¸Υ֡Tie IDL ϥ饹꿷ȤǤ⡢Ūľޤ .TP 3 \-factory -生成された IDL で factory キーワードを使います。 +줿 IDL factory ɤȤޤ .TP 3 \-idlModule\ fromJavaPackage[.class]\ toIDLModule -IDLEntity パッケージのマップを指定します。例を示します。 \f2\-idlModule foo.bar my::real::idlmod\fP +IDLEntity ѥåΥޥåפꤷޤ򼨤ޤ \f2\-idlModule foo.bar my::real::idlmod\fP .TP 3 \-idlFile\ fromJavaPackage[.class]\ toIDLFile -IDLEntity ファイルのマップを指定します。例を示します。 \f2\-idlFile test.pkg.X TEST16.idl\fP\ +IDLEntity եΥޥåפꤷޤ򼨤ޤ \f2\-idlFile test.pkg.X TEST16.idl\fP\ .RE -.LP .TP 3 \-iiop -\f2rmic\fP によって、JRMP のスタブとスケルトンクラスの代わりに、IIOP のスタブと Tie クラスが生成されます。スタブクラスは、リモートオブジェクトのローカルプロキシで、クライアントからサーバーに呼び出しを送信するときに使われます。各リモートインタフェースにはスタブクラスが必要です。 スタブクラスによってリモートインタフェースが実装されます。クライアントでリモートオブジェクトを参照するときは、実際にはスタブを参照することになります。タイクラスは、サーバー側で着呼を処理し、その呼び出しを適切な実装クラスにディスパッチするときに使われます。各実装クラスには、タイクラスが必要です。 -.LP -\f2\-iiop\fP を使って \f2rmic\fP を呼び出すと、次の命名規約に準拠したスタブと Tie が生成されます。 -.RS 3 - +\f2rmic\fP ˤäơJRMP Υ֤ȥȥ󥯥饹ˡIIOP Υ֤ Tie 饹ޤ֥饹ϡ⡼ȥ֥ȤΥץǡ饤Ȥ饵С˸ƤӽФȤ˻Ȥޤƥ⡼ȥ󥿥եˤϥ֥饹ɬפǤ֥饹ˤäƥ⡼ȥ󥿥եޤ饤Ȥǥ⡼ȥ֥Ȥ򻲾ȤȤϡºݤˤϥ֤򻲾Ȥ뤳Ȥˤʤޤ饹ϡС¦ƤθƤӽФŬڤʼ饹˥ǥѥåȤ˻ȤޤƼ饹ˤϡ饹ɬפǤ .LP +\f2\-iiop\fP Ȥä \f2rmic\fP ƤӽФȡ̿̾˽򤷤֤ Tie ޤ .nf \f3 .fl @@ -182,66 +155,60 @@ _<interfaceName>_tie.class .fl \fP .fi -.RE .LP -\f2\-iiop\fP オプションを使うときは、ほかのオプションも指定できます。 +\f2\-iiop\fP ץȤȤϡۤΥץǤޤ .RS 3 .TP 3 -\-always または \-alwaysgenerate -既存のスタブ、Tie、および IDL が入力クラスより新しいときでも、強制的に生成し直します。 +\-always ޤ \-alwaysgenerate +¸Υ֡Tie IDL ϥ饹꿷ȤǤ⡢Ūľޤ .TP 3 \-nolocalstubs -同じプロセスのクライアントとサーバーに対して最適化されたスタブを作成しません。 +ƱץΥ饤ȤȥСФƺŬ줿֤ޤ .TP 3 \-noValueMethods -\f2\-idl\fP オプションとともに使われなければなりません。発行された IDL に、\f2valuetype\fP メソッドおよび初期化子を追加しません。このメソッドおよび初期化子は、\f2valuetype\fP の場合はオプションです。 \f2\-idl\fP オプションを使うときは、 \f2\-noValueMethods\fP オプションを指定しない限り生成されます。 + \f2\-idl\fP ץȤȤ˻ȤʤФʤޤȯԤ줿 IDL ˡ\f2valuetype\fP ᥽åɤӽҤɲäޤ󡣤Υ᥽åɤӽҤϡ\f2valuetype\fP ξϥץǤ \f2\-idl\fP ץȤȤϡ \f2\-noValueMethods\fP ץꤷʤ¤ޤ .TP 3 \-poa -継承が \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP から \f2org.omg.PortableServer.Servant\fP に変わります。 +Ѿ \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP \f2org.omg.PortableServer.Servant\fP Ѥޤ .LP .na \f2Portable Object Adapter\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) の \f2PortableServer\fP モジュールは、ネイティブの \f2Servant\fP 型を定義します。Java プログラミング言語では、\f2Servant\fP 型は、Java の \f2org.omg.PortableServer.Servant\fP クラスにマッピングされています。これはあらゆる POA サーバント実装の基底クラスとなり多数のメソッドを提供します。 これらのメソッドはアプリケーションプログラマが呼び出すだけではなく、POA 自身からも呼び出され、場合によってはサーバントの動作を制御するためにユーザーがオーバーライドすることもあります。OMG IDL to Java Language Mapping Specification、CORBA V 2.3.1 ptc/00\-01\-08.pdf に準拠しています。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) \f2PortableServer\fP ⥸塼ϡͥƥ֤ \f2Servant\fP ޤJava ץߥ󥰸Ǥϡ\f2Servant\fP Java \f2org.omg.PortableServer.Servant\fP 饹˥ޥåפޤΥ饹ϡ٤Ƥ POA Хȼδ쥯饹ȤƵǽץꥱץޤƤӽФȤΤǤ뤤ĤΥ᥽åɤΤۤˡPOA ΤΤˤäƸƤӽФ졢ХȤư椹뤿˥桼С饤ɤǤ᥽åɤ󶡤ޤOMG IDL to Java Language Mapping SpecificationCORBA V 2.3.1 ptc/00\-01\-08.pdf ˽򤷤Ƥޤ .RE .TP 3 \-J -\f2\-J\fP の後ろに続くオプションを \f2java\fP インタプリタに引き渡します。 \f2java\fP オプションと組み合わせて使います (\f2\-J\fP と \f2java\fP オプションの間にスペースは入れない)。 +\f2\-J\fP θ³ץ \f2java\fP 󥿥ץ꥿˰Ϥޤ \f2java\fP ץȤ߹碌ƻȤޤ (\-J java ץδ֤˥ڡʤ) .TP 3 -\-keep または \-keepgenerated -スタブ、スケルトン、または Tie クラスのための \f2.java\fP ソースファイルを \f2.class\fP ファイルと同じディレクトリに残します。 +\-keep ޤ \-keepgenerated +֡ȥ󡢤ޤ Tie 饹Τ \f2.java\fP ե \f2.class\fP եƱǥ쥯ȥ˻Ĥޤ .TP 3 \-nowarn -警告をオフにします。このオプションを指定すると、コンパイラは警告を表示しません。 -.LP +ٹ򥪥դˤޤΥץꤹȡѥϷٹɽޤ +.TP 3 +\-nowrite +ѥ뤷饹ե륷ƥ˽񤭹ߤޤ .TP 3 \-vcompat -1.1 と 1.2 の両方の JRMP スタブプロトコルバージョンと互換性のあるスタブおよびスケルトンクラスを作成します。(5.0 以前のリリースではこのオプションはデフォルト。)生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされると 1.1 スタブプロトコルバージョンを使用し、JDK 1.2 以降の仮想マシンにロードされると 1.2 スタブプロトコルバージョンを使用します。生成されたスケルトンクラスでは、1.1 と 1.2 の両方のスタブプロトコルバージョンをサポートします。生成されたクラスは両方の操作モードをサポートするために、サイズが大きくなります。 +1.1 1.2 ξ JRMP ֥ץȥСȸߴΤ륹֤ӥȥ󥯥饹ޤ(5.0 Υ꡼ǤϤΥץϥǥեȡ)줿֥饹ϡJDK 1.1 ۥޥ˥ɤ 1.1 ֥ץȥСѤJDK 1.2 ʹߤβۥޥ˥ɤ 1.2 ֥ץȥСѤޤ줿ȥ󥯥饹Ǥϡ1.1 1.2 ξΥ֥ץȥС򥵥ݡȤޤ줿饹ξ⡼ɤ򥵥ݡȤ뤿ˡ礭ʤޤ .TP 3 \-verbose -コンパイラやリンカーが、コンパイルされているクラスやロードされているクラスファイルについてのメッセージを表示するようにします。 -.LP +ѥ󥫡ѥ뤵Ƥ륯饹ɤƤ륯饹եˤĤƤΥåɽ褦ˤޤ .TP 3 \-v1.1 -1.1 JRMP スタブプロトコルバージョンのみのスタブおよびスケルトンクラスを生成します。このオプションが使用できるのは、JDK 1.1 から \f3rmic\fP ツールで生成され、アップグレードできない (さらにダイナミッククラスローディングを使用していない) 、既存の静的配備されたスタブクラスに対し、直列化互換性のあるスタブクラスを生成場合だけです。 -.LP +1.1 JRMP ֥ץȥСΤߤΥ֤ӥȥ󥯥饹ޤΥץ󤬻ѤǤΤϡJDK 1.1 \f3rmic\fP ġ졢åץ졼ɤǤʤ (˥ʥߥå饹ǥ󥰤ѤƤʤ) ¸Ū줿֥饹Фľ󲽸ߴΤ륹֥饹Ǥ .TP 3 \-v1.2 -(デフォルト) 1.2 JRMP スタブプロトコルバージョンのみのスタブクラスを生成します。スケルトンクラスは 1.2 スタブプロトコルバージョンで使用できないため、このオプションではスケルトンクラスは生成されません。生成されたスタブクラスは、JDK 1.1 仮想マシンにロードされても動作しません。 +(ǥե) 1.2 JRMP ֥ץȥСΤߤΥ֥饹ޤȥ󥯥饹 1.2 ֥ץȥСǻѤǤʤᡢΥץǤϥȥ󥯥饹ޤ줿֥饹ϡJDK 1.1 ۥޥ˥ɤƤưޤ .RE .LP -.SH "環境変数" -.LP - +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。次に例を示します。 -.RS 3 - -.LP +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -250,15 +217,12 @@ CLASSPATH \fP .fi .RE -.RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -java(1)、javac(1)、 +java(1)javac(1) .na \f2CLASSPATH\fP @ .fi diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 index 37d7d6a7657..232cf1ad050 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "02 Jun 2010" +.TH rmid 1 "14 Apr 2011" .LP -.SH "名前" -rmid \- Java RMI 起動システムデーモン -.LP -.RS 3 - +.SH "̾" +rmid \- Java RMI ưƥǡ .LP .LP -\f3rmid\fP で起動システムデーモンを開始すると、オブジェクトを仮想マシン (VM) に登録して起動できるようになります。 +\f3rmid\fP ǵưƥǡ򳫻Ϥȡ֥Ȥۥޥ (VM) ϿƵưǤ褦ˤʤޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -45,23 +39,21 @@ rmid [options] .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmid\fP ツールは、起動システムデーモンを開始します。起動システムデーモンを開始してからでないと、起動可能オブジェクトを起動システムに登録したり、VM 内で起動したりすることができません。起動可能なリモートオブジェクトを使ったプログラムの作成方法の詳細は、 +\f3rmid\fP ġϡưƥǡ򳫻Ϥޤưƥǡ򳫻ϤƤǤʤȡưǽ֥ȤưƥϿꡢVM ǵưꤹ뤳ȤǤޤ󡣵ưǽʥ⡼ȥ֥ȤȤäץκˡξܺ٤ϡ .na -\f2「Java RMI 仕様」\fP @ +\f2Java RMI ͡\fP @ .fi -http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.htmlおよび +http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.html .na -\f2「起動のチュートリアル」\fP @ +\f2ֵưΥ塼ȥꥢ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.htmlを参照してくだ さい。 +http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html򻲾ȤƤ .LP .LP -デーモンを起動するには、次のように、セキュリティーポリシーファイルを指定して \f2rmid\fP コマンドを実行します。 +ǡưˤϡΤ褦ˡƥݥꥷեꤷ \f2rmid\fP ޥɤ¹Ԥޤ .LP .nf \f3 @@ -73,23 +65,23 @@ http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html .LP .LP -\f3注:\fP\f2rmid\fP の Sun の 実装を実行する場合、デフォルトでは、セキュリティーポリシーファイルを指定する必要があります。 それは、起動グループ用に VM を起動するために各 \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを \f2rmid\fP が検証できるようにするためです。特に、\f2ActivationGroupDesc\fP のコンストラクタに渡される \f2CommandEnvironment\fP や任意の \f2Properties\fP によって指定されるコマンドおよびオプションは、\f2rmid\fP のセキュリティーポリシーファイルの中で明示的に許可することが必要になりました。\f2sun.rmi.activation.execPolicy\fP プロパティーの値は、起動グループ用に VM を起動するために \f2ActivationGroupDesc\fP 内の情報を使用できるかどうかを判断するときに \f2rmid\fP が使用するポリシーを決定します。 +\f3:\fP \f2rmid\fP Sun ¹Ԥ硢ǥեȤǤϡƥݥꥷեꤹɬפޤϡ \f2rmid\fP ư롼Ѥ VM ư뤿˳ \f2ActivationGroupDesc\fP ξѤǤ뤫ɤ򸡾ڤǤ褦ˤ뤿ǤäˡActivationGroupDesc Υ󥹥ȥ饯Ϥ \f2CommandEnvironment\fP Ǥդ \f2Properties\fP ˤäƻꤵ \f2ޥɤ\fPץϡ \f2rmid\fP ΥƥݥꥷեŪ˵Ĥ뤳Ȥɬפˤʤޤ\f2sun.rmi.activation.execPolicy\fP ץѥƥͤϡ \f2ư롼Ѥ VM \fP ư뤿 \f2ActivationGroupDesc\fP ξѤǤ뤫ɤȽǤȤ rmid Ѥݥꥷꤷޤ .LP .LP -\f2rmid\fP をデフォルト設定で実行すると、次のような処理が行われます。 +\f2rmid\fP ǥեǼ¹ԤȡΤ褦ʽԤޤ .LP .RS 3 .TP 2 o -アクティベータを起動し、デフォルトポート 1098 で内部レジストリを起動する +ƥ١ưǥեȥݡ 1098 쥸ȥư .TP 2 o -この内部レジストリの中で、\f2ActivationSystem\fP を \f2java.rmi.activation.ActivationSystem\fP という名前にバインドする +쥸ȥǡ \f2ActivationSystem\fP \f2java.rmi.activation.ActivationSystem Ȥ̾\fP Хɤ .RE .LP .LP -レジストリにほかのポートを指定するには、\f2rmid\fP の起動時に \f2\-port\fP オプションを指定しなければなりません。次に例を示します。 +쥸ȥˤۤΥݡȤꤹˤϡrmid εư \f2\-port\fP ץ \f2ꤷʤФʤޤ\fP򼨤ޤ .LP .nf \f3 @@ -101,44 +93,42 @@ o .LP .LP -このコマンドは、起動システムデーモンを開始し、レジストリのデフォルトポート 1099 でレジストリを開始します。 +Υޥɤϡưƥǡ򳫻Ϥ쥸ȥΥǥեȥݡ 1099 ǥ쥸ȥ򳫻Ϥޤ .LP .SS -rmid を inetd/xinetd から開始する +rmid inetd/xinetd 鳫Ϥ .LP .LP -\f2rmid\fP をコマンド行から開始するには、\f2inetd\fP (Solaris の場合)、または \f2xinetd\fP (Linux) を構成して \f2rmid\fP を必要に応じて開始する方法もあります。 +\f2rmid\fP 򥳥ޥɹԤ鳫Ϥˤϡ \f2inetd\fP (Solaris ξ)ޤ \f2xinetd\fP (Linux ξ) \f2rmid\fP ɬפ˱ƳϤˡ⤢ޤ .LP .LP -\f2rmid\fP を開始すると、\f2System.inheritedChannel\fP メソッドを呼び出して、継承されたチャンネル (\f2inetd\fP/\f2xinetd\fP から継承) を取得しようとします。継承されたチャンネルが \f2null\fP であるか、\f2java.nio.channels.ServerSocketChannel\fP のインスタンスでなかった場合、\f2rmid\fP はそのチャンネルは \f2inetd\fP/\f2xinetd\fP によって起動されたものではないと判断し、前述のように起動します。 +\f2rmid\fP 򳫻ϤȡSystem.inheritedChannel ᥽åɤƤӽФơѾ줿ͥ ( \f2inetd\fP/\f2xinetd\fP Ѿ) 褦Ȥޤ Ѿ줿ͥ뤬 \f2null\fP Ǥ뤫 \f2java.nio.channels.ServerSocketChannel\fP Υ󥹥󥹤Ǥʤä硢 \f2rmid\fP rmid ϤΥͥ \f2inetd\fP/\f2xinetd\fP ˤäƵư줿ΤǤϤʤȽǤҤΤ褦˵ưޤ .LP .LP -継承されたチャンネルが \f2ServerSocketChannel\fP インスタンスである場合は、エクスポートするリモートオブジェクト、つまり \f2java.rmi.activation.ActivationSystem\fP がバインドされているレジストリと \f2java.rmi.activation.Activator\fP リモートオブジェクトに対する要求を受信するサーバーソケットとして、\f2ServerSocketChannel\fP から取得した \f2java.net.ServerSocket\fP を \f2rmid\fP では使用します。このモードでは、\f2rmid\fP の動作は、次のことを除いて、 コマンド行から起動した場合と同じです。 +Ѿ줿ͥ뤬 \f2ServerSocketChannel\fP 󥹥󥹤Ǥϡ \f2rmid\fP ϥݡȤ⡼ȥ֥ȡĤޤ java.rmi.activation.ActivationSystem ХɤƤ쥸ȥ java.rmi.activation.Activator ⡼ȥ֥ȤФ׵륵СåȤȤơServerSocketChannel java.net.ServerSocket Ѥޤ Υ⡼ɤǤϡ \f2rmid\fP ưϡΤȤơ ޥɹԤ鵯ưƱǤ .LP .RS 3 .TP 2 o -\f2System.err\fP に対する出力は、ファイルにリダイレクトされる。このファイルは \f2java.io.tmpdir\fP システムプロパティーで指定されるディレクトリ (通常は \f2/var/tmp\fP または \f2/tmp\fP) にある。 ファイル名の接頭辞は \f2rmid\-err\fP で、接尾辞は \f2"tmp"\fP である +\f2System.err\fP ФϤϡե˥쥯Ȥ롣Υե \f2java.io.tmpdir\fP ƥץѥƥǻꤵǥ쥯ȥ (̾ \f2/var/tmp\fP ޤ \f2/tmp\fP) ˤ롣ե̾Ƭ \f2"rmid\-err"\fP ǡ \f2"tmp"\fP Ǥ .TP 2 o -\f2\-port\fP オプションは拒否される。このオプションを指定すると、\f2rmid\fP はエラーメッセージを出して終了する +\f2\-port\fP ץϵݤ롣Υץꤹȡ \f2rmid\fP ϥ顼åФƽλ .TP 2 o -\f2\-log\fP オプションは必須。このオプションを指定しないと、\f2rmid\fP はエラーメッセージを出して終了する +\f2\-log\fP ץɬܡΥץꤷʤȡ \f2rmid\fP ϥ顼åФƽλ .RE .LP .LP -必要に応じてサービスを開始するように設定する詳細については、\f2inetd\fP (Solaris) または \f2xinetd\fP (Linux) のマニュアルページを参照してください。 +ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris) ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-C<someCommandLineOption> -\f2rmid\fP の子プロセス (起動グループ) が作成されたときに、それぞれの子プロセスにコマンド行引数として渡されるオプションを指定します。たとえば、次のように指定すると、起動システムデーモ ンによって生成される各仮想マシンにプロパティーを渡すことができます。 +\f2rmid\fP λҥץ (ư롼) 줿Ȥˡ줾λҥץ˥ޥɹ԰ȤϤ륪ץꤷޤȤСΤ褦˻ꤹȡưƥǡˤäƲۥޥ˥ץѥƥϤȤǤޤ .nf \f3 .fl @@ -146,7 +136,7 @@ o .fl \fP .fi -コマンド行引数を子プロセスに渡す機能は、デバッグを行う場合に便利です。たとえば、次のようなコマンドを実行できます。 +ޥɹ԰ҥץϤǽϡǥХåԤǤȤСΤ褦ʥޥɤ¹ԤǤޤ .nf \f3 .fl @@ -154,11 +144,11 @@ o .fl \fP .fi -このコマンドにより、すべての子 VM でサーバー呼び出しのログが作成されるようになります。 +Υޥɤˤꡢ٤Ƥλ VM ǥСƤӽФΥ褦ˤʤޤ .LP .TP 3 \-J<someCommandLineOption> -\f2rmid\fP を実行している \f2java\fP インタプリタに渡すオプションを指定します。たとえば、\f2rmid\fP が \f2rmid.policy\fP という名前のポリシーファイルを使用するように指定するには、\f2rmid\fP のコマンド行で \f2\-J\fP オプションを使って、\f2java.security.policy\fP プロパティーを定義します。 次に例を示します。 +rmid ¹ԤƤ \f2java\fP 󥿥ץ꥿Ϥץꤷޤ ȤС \f2rmid\fP \f2rmid.policy\fP Ȥ̾ΥݥꥷեѤ褦˻ꤹˤϡrmid ΥޥɹԤ \f2\-J\fP ץȤäơ \f2java.security.policy\fP ץѥƥޤ 򼨤ޤ .nf \f3 .fl @@ -168,16 +158,15 @@ o .fi .TP 3 \-J\-Dsun.rmi.activation.execPolicy=<policy> -起動グループが実行されることになる VM の起動に使用するコマンドおよびコマンド行オプションをチェックするために、\f2rmid\fP が採用するポリシーを指定します。このオプションは、Java RMI 起動デーモンの Sun の実装だけに存在することに注意してください。コマンド行にこのプロパティーを指定しない場合、結果は \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP を指定した場合と同じになります。\f2<policy>\fP に指定可能な値は、\f2default\fP、\f2<policyClassName>\fP、または \f2none\fP です。 それぞれの値について、このあと説明します。 -.LP +ư롼פ¹Ԥ뤳Ȥˤʤ VM εư˻Ѥ륳ޥɤӥޥɹԥץå뤿ˡ \f2rmid\fP ѤݥꥷꤷޤΥץϡJava RMI ưǡ Sun μ¸ߤ뤳ȤդƤޥɹԤˤΥץѥƥꤷʤ硢̤ \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP ꤷƱˤʤޤ\f2<policy>\fP ˻ǽͤϡ\f2default\fP\f2<policyClassName>\fPޤ \f2none\fP Ǥ .RS 3 .TP 2 o -\f3default (または、このプロパティーが「指定されていない」場合)\fP +\f3default (ޤϡΥץѥƥֻꤵƤʤ׾)\fP .LP -デフォルトの \f2execPolicy\fP の場合、\f2rmid\fP が実行できるのは、\f2rmid\fP が使用する セキュリティーポリシーファイルの中で、実行する権限が \f2rmid\fP に与えられているコマンドおよびコマンド行オプションだけです。「デフォルト」の実行ポリシーで使用できるのは、デフォルトの起動グループ実装だけです。 +ǥեȤ \f2execPolicy\fP ξ硢 \f2rmid\fP ¹ԤǤΤϡ \f2rmid\fP Ѥ륻ƥݥꥷեǡ¹Ԥ븢¤ \f2rmid\fP ͿƤ륳ޥɤӥޥɹԥץǤ֥ǥեȡפμ¹ԥݥꥷǻѤǤΤϡǥեȤεư롼׼Ǥ .LP -\f2rmid\fP は、起動グループ用の VM を起動するときに、そのグループについて登録された起動グループ記述子である \f2ActivationGroupDesc\fP 内の情報を使用します。グループ記述子は、\f2ActivationGroupDesc.CommandEnvironment\fP を指定します (省略可能)。 これには、起動グループを開始する「コマンド」と、そのコマンド行に追加できるコマンド行「オプション」が含まれています。デフォルトでは、\f2rmid\fP は、\f2java.home\fP にある \f2java\fP コマンドを使用します。グループ記述子には、オプションとしてコマンド行に追加される「プロパティー」オーバーライドも含まれています。 このプロパティーは、次のように定義します。 +\f2rmid ϡ\fP ư롼Ѥ VM ưȤˡΥ롼פˤĤϿ줿ư롼׵һҤǤ \f2ActivationGroupDesc\fP ξѤޤ롼׵һҤϡ \f2ActivationGroupDesc.CommandEnvironment\fP ꤷޤ (άǽ)ˤϡư롼פ򳫻Ϥ֥ޥɡפȡΥޥɹԤɲäǤ륳ޥɹԡ֥ץפޤޤƤޤǥեȤǤϡ \f2rmid \fP java.home ˤ \f2java\fP ޥɤѤޤ 롼׵һҤˤϡץȤƥޥɹԤɲä֥ץѥƥץС饤ɤޤޤƤޤΥץѥƥϡΤ褦ޤ .nf \f3 .fl @@ -186,33 +175,33 @@ o \fP .fi .LP -アクセス権 \f2com.sun.rmi.rmid.ExecPermission\fP を使用すると、グループ記述子の \f2CommandEnvironment\fP で指定されたコマンドを実行して起動グループを開始する権限を、\f2rmid\fP に対して許可することができます。アクセス権 \f2com.sun.rmi.rmid.ExecOptionPermission\fP を使用すると、グループ記述子でプロパティーオーバーライドとして指定されたコマンド行オプション、または \f2CommandEnvironment\fP でオプションとして指定されたコマンド行オプションを、起動グループを開始するときに \f2rmid\fP が使用できるようになります。 + \f2com.sun.rmi.rmid.ExecPermission\fP Ѥȡ \f2rmid\fP Фơ롼׵һҤ \f2CommandEnvironment\fP ǻꤵ줿ޥɤ¹ԤƵư롼פ򳫻Ϥ븢¤Ĥ뤳ȤǤޤ \f2com.sun.rmi.rmid.ExecOptionPermission\fP Ѥȡ롼׵һҤǥץѥƥС饤ɤȤƻꤵ줿ޥɹԥץ󡢤ޤ \f2CommandEnvironment\fP ǥץȤƻꤵ줿ޥɹԥץ򡢵ư롼פ򳫻ϤȤ rmid ѤǤ褦ˤʤޤ .LP -\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。 +\f2rmid \fP ޤޤʥޥɤӥץ¹Ԥ븢¤Ĥϡ \f2ExecPermission\fP \f2ExecOptionPermission\fP Ū˵ĤɬפޤĤޤꡢ٤ƤΥɥФƵĤޤ .RS 3 .TP 3 ExecPermission -\f2ExecPermission\fP クラスは、起動グループを開始するために \f2rmid\fP が特定の「コマンド」を実行する権限を表します。 +\f2ExecPermission\fP 饹ϡư롼פ򳫻Ϥ뤿 \f2rmid \fP Ρ֥ޥɡפ¹Ԥ븢¤ɽޤ .LP -\f3構文\fP +\f3ʸ\fP .br -\f2ExecPermission\fP の「名前」は、\f2rmid\fP に実行を許可するコマンドのパス名です。「/*」 (「/」はファイル区切り文字 \f2File.separatorChar\fP) で終わるパス名は、そのディレクトリに含まれるすべてのファイルを示します。「/\-」で終わるパス名は、そのディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を示します。パス名に特別なトークン「<<ALL FILES>>」を指定した場合は、\f3任意の\fPファイルを示します。 +\f2ExecPermission\fP Ρ̾פϡ \f2rmid\fP ˼¹ԤĤ륳ޥɤΥѥ̾Ǥ/* (/פϥեڤʸ File.separatorChar) ǽѥ̾ϡΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥե򼨤ޤ /\-פǽѥ̾ϡΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥեȥ֥ǥ쥯ȥ (ƵŪ) 򼨤ޤѥ̤̾ʥȡ<<ALL FILES>>פꤷϡ\f3Ǥդ\fPե򼨤ޤ .LP -\f3注:\fP「*」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルを表します。 また、「\-」を 1 つ指定しただけのパス名は、現在のディレクトリ内のすべてのファイルと、現在のディレクトリに含まれるすべてのファイルとサブディレクトリ (再帰的に) を表します。 +\f3:\fP *פ 1 ĻꤷΥѥ̾ϡߤΥǥ쥯ȥΤ٤ƤΥեɽޤޤ\-פ 1 ĻꤷΥѥ̾ϡߤΥǥ쥯ȥΤ٤ƤΥեȡߤΥǥ쥯ȥ˴ޤޤ뤹٤ƤΥեȥ֥ǥ쥯ȥ (ƵŪ) ɽޤ .TP 3 ExecOptionPermission -\f2ExecOptionPermission\fP クラスは、起動グループを開始するときに \f2rmid\fP が特定のコマンド行「オプション」を使用できる権限を表します。\f2ExecOptionPermission\fP の「名前」は、コマンド行オプションの値です。 +\f2ExecOptionPermission\fP 饹ϡư롼פ򳫻ϤȤ \f2rmid ϡư롼פ򳫻Ϥ륳ޥɤޤäڤޤ\fP Υޥɹԡ֥ץפѤǤ븢¤ɽޤ \f2ExecOptionPermission\fP Ρ̾פϡޥɹԥץͤǤ .LP -\f3構文\fP +\f3ʸ\fP .br -オプションでは、ワイルドカードが限定的にサポートされます。アスタリスクは、ワイルドカードマッチを表します。 アスタリスクは、オプション名そのものとして使用できます。 つまり、任意のオプションを表すことができます。 また、オプション名の末尾に使用することもできます。 ただし、「.」か「=」の直後にアスタリスクを指定する必要があります。 +ץǤϡ磻ɥɤŪ˥ݡȤޤꥹϡ磻ɥɥޥåɽޤ ꥹϡץ̾ΤΤȤƻѤǤޤ ĤޤꡢǤդΥץɽȤǤޤ ޤץ̾˻Ѥ뤳ȤǤޤ .פ=פľ˥ꥹꤹɬפޤ .LP -例を示します。「*」、「\-Dfoo.*」、「\-Da.b.c=*」は有効ですが、「*foo」、「\-Da*b」、「ab*」は無効です。 +򼨤ޤ*ס\-Dfoo.*ס\-Da.b.c=*פͭǤ*fooס\-Da*bסab*פ̵Ǥ .TP 3 -rmid のポリシーファイル -\f2rmid\fP にさまざまなコマンドおよびオプションを実行する権限を許可する場合は、アクセス権 \f2ExecPermission\fP および \f2ExecOptionPermission\fP を汎用的に許可する必要があります。 つまり、すべてのコードソースに対して許可します。これらのアクセス権をチェックするのは \f2rmid\fP だけなので、これらのアクセス権を汎用的に許可しても安全です。 +rmid Υݥꥷե +\f2rmid \fP ޤޤʥޥɤӥץ¹Ԥ븢¤Ĥϡ \f2ExecPermission\fP \f2ExecOptionPermission\fP Ū˵ĤɬפޤĤޤꡢ٤ƤΥɥФƵĤޤΥåΤ \f2rmid\fP ʤΤǡΥŪ˵ĤƤǤ .LP -\f2rmid\fP に各種の実行権限を許可するポリシーファイルの例を、次に示します。 +rmid ˳Ƽμ¹Ը¤Ĥݥꥷե򡢼˼ޤ .nf \f3 .fl @@ -220,13 +209,7 @@ grant { .fl permission com.sun.rmi.rmid.ExecPermission .fl - "/files/apps/java/jdk1.2.2/solaris/bin/java"; -.fl - -.fl - permission com.sun.rmi.rmid.ExecPermission -.fl - "/files/apps/java/jdk1.2.2/solaris/bin/java_g"; + "/files/apps/java/jdk1.7.0/solaris/bin/java"; .fl .fl @@ -256,29 +239,21 @@ grant { .fl \fP .fi -最初の 2 つの付与されているアクセス権は、\f2rmid\fP に対し、パス名により明示的に指定される \f2java\fP コマンドおよび \f2java_g\fP コマンドの 1.2.2 バージョンの実行を許可します。デフォルトでは、\f2java.home\fP にあるバージョンの \f2java\fP コマンド (\f2rmid\fP が使用するのと同じバージョン) が使用されるため、そのコマンドは、ポリシーファイルで指定する必要はありません。3 番目のアクセス権は、\f2rmid\fP に対して、ディレクトリ \f2/files/apps/rmidcmds\fP 内の任意のコマンドの実行権限を許可します。 +ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥ ( \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ .LP -4 番目のアクセス権 \f2ExecOptionPermission\fP は、\f2rmid\fP に対して、セキュリティーポリシーファイルを \f2/files/policies/group.policy\fP として定義している起動グループの開始を許可します。5 番目のアクセス権は、起動グループが \f2java.security.debug\fP プロパティーを使用することを許可しています。最後のアクセス権は、起動グループが \f2sun.rmi\fP というプロパティー名の階層内の任意のプロパティーを使用することを許可しています。 +3 ܤͿƤ륢 \f2ExecOptionPermission\fP ϡ \f2rmid\fP Фơƥݥꥷե \f2/files/policies/group.policy\fP ȤƤ뵯ư롼פγϤĤޤΥϡư롼פ \f2java.security.debug\fP ץѥƥѤ뤳ȤĤƤޤǸΥϡư롼פ \f2sun.rmi\fP Ȥץѥƥ̾γǤդΥץѥƥѤ뤳ȤĤƤޤ .LP -ポリシーファイルを指定して \f2rmid\fP を起動するには、\f2rmid\fP のコマンド行で \f2java.security.policy\fP プロパティーを指定する必要があります。 次に例を示します。 -.RS 3 - -.LP -.LP -\f2rmid \-J\-Djava.security.policy=rmid.policy\fP +ݥꥷեꤷ \f2rmid\fP ưˤϡrmid ΥޥɹԤ \f2java.security.policy\fP ץѥƥꤹɬפޤ 򼨤ޤ .LP +\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .RE -.RE -.TP 2 -o -.LP .TP 2 o \f4<policyClassName>\fP .LP -デフォルトの動作では十分な柔軟性が得られない場合、管理者は、\f2rmid\fP の起動時に、\f2checkExecCommand\fP メソッドが所属するクラスの名前を指定して、rmid が実行するコマンドをチェックすることができます。 +ǥեȤưǤϽʬʽʤ硢Ԥϡ \f2rmid\fP εưˡ \f2checkExecCommand\fP ᥽åɤ°륯饹̾ꤷơrmid ¹Ԥ륳ޥɤå뤳ȤǤޤ .LP -\f2policyClassName\fP には、引数なしのコンストラクタを持ち、次のような \f2checkExecCommand\fP メソッドを実装している public クラスを指定します。 +\f2policyClassName\fP ˤϡʤΥ󥹥ȥ饯Τ褦 \f2checkExecCommand\fP ᥽åɤƤ public 饹ꤷޤ .nf \f3 .fl @@ -290,22 +265,21 @@ o .fl \fP .fi -起動グループを開始する前に、\f2rmid\fP は、ポリシーの \f2checkExecCommand\fP メソッドを呼び出します。このとき、起動グループの記述子と、起動グループを開始するための完全なコマンドを含む配列をそのメソッドに渡します。\f2checkExecCommand\fP が \f2SecurityException\fP をスローすると、\f2rmid\fP はその起動グループを開始せず、オブジェクトの起動を試行している呼び出し側には \f2ActivationException\fP がスローされます。 -.LP +ư롼פ򳫻Ϥˡ \f2rmid\fP ϡݥꥷ \f2checkExecCommand\fP ᥽åɤƤӽФޤΤȤư롼פεһҤȡư롼פ򳫻Ϥ뤿δʥޥɤޤ򤽤Υ᥽åɤϤޤ \f2checkExecCommand\fP \f2SecurityException\fP 򥹥ȡ \f2rmid\fP Ϥεư롼פ򳫻Ϥ֥ȤεưԤƤƤӽФ¦ˤ \f2ActivationException\fP ޤ .TP 2 o \f3none\fP .LP -\f2sun.rmi.activation.execPolicy\fP プロパティーの値が「none」の場合、\f2rmid\fP は、起動グループを開始するコマンドをまったく検証しません。 +\f2sun.rmi.activation.execPolicy\fP ץѥƥͤnoneפξ硢 \f2rmid\fP ϡư롼פ򳫻Ϥ륳ޥɤޤäڤޤ .RE .LP .TP 3 \-log dir -起動システムデーモンがデータベースおよび関連情報を書き込むのに使うディレクトリの名前を指定します。デフォルトでは、\f2rmid\fP コマンドを実行したディレクトリに、\f2log\fP というログディレクトリが作成されます。 +ưƥǡ󤬥ǡ١ӴϢ񤭹Τ˻Ȥǥ쥯ȥ̾ꤷޤǥեȤǤϡrmid ޥɤ¹Ԥǥ쥯ȥˡ \f2log\fP Ȥǥ쥯ȥ꤬ޤ .LP .TP 3 \-port port -\f2rmid\fP のレジストリが使うポートを指定します。起動システムデーモンは、このレジストリの中で、\f2java.rmi.activation.ActivationSystem\fP という名前で\f2ActivationSystem\fP をバインドします。したがって、ローカルマシン上の \f2ActivationSystem\fP は、次のように \f2Naming.lookup\fP メソッドを呼び出すことによって取得できます。 +\f2rmid\fP Υ쥸ȥ꤬ȤݡȤꤷޤưƥǡϡΥ쥸ȥǡ \f2java.rmi.activation.ActivationSystem\fP Ȥ̾ActivationSystem Хɤޤäơޥ \f2ActivationSystem\fP ϡΤ褦 \f2Naming.lookup\fP ᥽åɤƤӽФȤˤäƼǤޤ .nf \f3 .fl @@ -322,16 +296,16 @@ o .fi .TP 3 \-stop -\f2\-port\fP オプションによって指定されたポートの、現在の \f2rmid\fP 呼び出しを停止します。ポートが指定されていない場合は、ポート 1098 で実行されている \f2rmid\fP を停止します。 +\-port ץˤäƻꤵ줿ݡȤΡߤ \f2rmid\fP ƤӽФߤޤ ݡȤꤵƤʤϡݡ 1098 Ǽ¹ԤƤ \f2rmid\fP ߤޤ .RE -.SH "環境変数" -.LP +.LP +.SH "Ķѿ" .LP .RS 3 .TP 3 CLASSPATH -ユーザー定義クラスへのパスをシステムに指定します。ディレクトリはコロンで分割します。例を示します。 +桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ .nf \f3 .fl @@ -342,15 +316,13 @@ CLASSPATH .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP -rmic(1)、 +rmic(1) .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath、java(1) +http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpathjava(1) .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 index 7a36ac9e5d2..864ccc78375 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 @@ -19,22 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "02 Jun 2010" +.TH rmiregistry 1 "14 Apr 2011" .LP -.SH "名前" -rmiregistry \- Java リモートオブジェクトレジストリ +.SH "̾" +rmiregistry \- Java ⡼ȥ֥ȥ쥸ȥ .LP .RS 3 - -.LP -.LP -\f3rmiregistry\fP コマンドは、現在のホストの指定したポート上にリモートオブジェクトレジストリを開始します。 -.LP +\f3rmiregistry\fP ޥɤϡߤΥۥȤλꤷݡȾ˥⡼ȥ֥ȥ쥸ȥ򳫻Ϥޤ .RE -.SH "形式" -.LP +.LP +.SH "" .LP .nf \f3 @@ -45,52 +41,43 @@ rmiregistry [\fP\f4port\fP\f3] .fi .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f3rmiregistry\fP コマンドは、現在のホストの指定 \f2port\fP 上にリモートオブジェクトレジストリを作成し、開始します。\f2port\fP の指定を省略した場合、レジストリはポート 1099 で開始します。\f3rmiregistry\fP コマンドに、出力機能はありません。通常、これはバックグラウンドで実行されます。例を示します。 +\f3rmiregistry\fP ޥɤϡߤΥۥȤλ \f2port\fP ˥⡼ȥ֥ȥ쥸ȥϤޤ\f2port\fP λά硢쥸ȥϥݡ 1099 dzϤޤ\f3rmiregistry\fP ޥɤˡϵǽϤޤ̾ϥХå饦ɤǼ¹Ԥޤ򼨤ޤ .LP .LP \f2rmiregistry&\fP .LP .LP -リモートオブジェクトレジストリは、ブートストラップのネームサービスです。 同一ホストの RMI サーバーが、リモートオブジェクトを名前にバインドするために使用されます。次に、ローカルおよびリモートホストのクライアントはリモートオブジェクトを検索し、リモートメソッドの呼び出しを行います。 +⡼ȥ֥ȥ쥸ȥϡ֡ȥȥåפΥ͡ॵӥǤƱۥȤ RMI С⡼ȥ֥Ȥ̾˥Хɤ뤿˻Ѥޤˡ뤪ӥ⡼ȥۥȤΥ饤Ȥϥ⡼ȥ֥Ȥ򸡺⡼ȥ᥽åɤθƤӽФԤޤ .LP .LP -レジストリは、一般的に、最初のリモートオブジェクトの位置を指定します。 そこで、アプリケーションはメソッドを呼び出す必要があります。代わって、そのオブジェクトはアプリケーション指定のサポートを提供し、他のオブジェクトを探します。 +쥸ȥϡŪˡǽΥ⡼ȥ֥Ȥΰ֤ꤷޤ ǡץꥱϥ᥽åɤƤӽФɬפޤäơΥ֥ȤϥץꥱΥݡȤ󶡤¾Υ֥Ȥõޤ .LP .LP -\f2java.rmi.registry.LocateRegistry\fP クラスのメソッドは、ローカルホスト、またはローカルホストとポートで動作するレジストリを取得するために使用されます。 +\f2java.rmi.registry.LocateRegistry\fP 饹Υ᥽åɤϡۥȡޤϥۥȤȥݡȤư쥸ȥ뤿˻Ѥޤ .LP .LP -\f2java.rmi.Naming\fP クラスの URL ベースのメソッドは、レジストリで動作し、任意のホストおよびローカルホスト上のリモートオブジェクトの検索に使用されます。リモートオブジェクトに単純な (文字列) 名前をバインドしたり、新しい名前をリバインド (古いバインドにオーバーライド) します。 またリモートオブジェクトをアンバインドしたり、レジストリにバインドされた URL を出力します。 +\f2java.rmi.Naming\fP 饹 URL ١Υ᥽åɤϡ쥸ȥưǤդΥۥȤӥۥȾΥ⡼ȥ֥Ȥθ˻Ѥޤ⡼ȥ֥Ȥñ (ʸ) ̾Хɤꡢ̾Х (ŤХɤ˥С饤) ޤޤ⡼ȥ֥Ȥ򥢥Хɤꡢ쥸ȥ˥Хɤ줿 URL Ϥޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-J -\f2\-J\fP の後ろに続くオプションを \f2java\fP インタプリタに引き渡します。 \f2java\fP オプションと組み合わせて使います (\f2\-J\fP と \f2java\fP オプションの間にスペースは入れない)。 +\f2\-J\fP θ³ץ \f2java\fP 󥿥ץ꥿˰Ϥޤ \f2java\fP ץȤ߹碌ƻȤޤ (\-J java ץδ֤˥ڡʤ) .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP - -.LP -.LP -java(1)、 +java(1) .na \f2java.rmi.registry.LocateRegistry\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html、および +http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html .na \f2java.rmi.Naming\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html -.LP - +http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 b/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 index 6906d33f850..b9cb1a27c65 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 @@ -19,110 +19,106 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "02 Jun 2010" +.TH schemagen 1 "14 Apr 2011" .LP -.SH "名前" -schemagen \- XML バインドのための Java(TM) アーキテクチャースキーマジェネレータ +.SH "̾" +schemagen \- XML ХɤΤ Java(TM) ƥ㡼ޥͥ졼 .LP .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.3 +\f3С:\fP 2.1.3 .LP -.SS -schemagen の起動 +.SH "schemagen εư" .LP .LP -スキーマジェネレータは、ユーザーのプラットフォームの \f2bin\fP ディレクトリにある \f2schemagen\fP シェルスクリプトを使って起動できます。 +ޥͥ졼ưˤϡ桼Υץåȥե bin ǥ쥯ȥˤ \f2Ŭڤ schemagen 륹ץ\fP \f2ޤ\fP .LP .LP -現在のスキーマジェネレータは、Java ソースファイルとクラスファイルのいずれも処理できます。 +ߤΥޥͥ졼ϡJava եȥ饹եΤǤޤ .LP .LP -また、スキーマジェネレータを実行するための Ant タスクも用意されています。 +ޤޥͥ졼¹Ԥ뤿 Ant ѰդƤޤ .na -\f2schemagen を Ant とともに使用する\fP @ +\f2schemagen Ant ȤȤ˻Ѥ\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlための手順を参照してください。 -.LP -.RS 3 - +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlμ򻲾ȤƤ .LP .nf \f3 .fl % schemagen.sh Foo.java Bar.java ... .fl -注: Writing schema1.xsd +Note: Writing schema1.xsd .fl \fP .fi -.RE .LP .LP -ユーザーの Java ソース/クラスがほかのクラスを参照している場合、システムの CLASSPATH 環境変数経由でそれらのクラスにアクセスできるようになっているか、あるいは \f2\-classpath\fP/\f2\-cp\fP オプションを使ってそれらのクラスをツールに指定する必要があります。そうしないと、スキーマの生成時にエラーが発生します。 +桼 Java /饹ۤΥ饹򻲾ȤƤ硢ƥ ĶѿͳǤΥ饹˥Ǥ褦ˤʤäƤ뤫뤤 \f2\-classpath\fP/\f2\-cp\fP ȤäƤΥ饹ġ˻ꤹɬפޤʤȡޤ˥顼ȯޤ .LP -.RS 3 - -.LP -\f3コマンド行オプション\fP -.LP -.RS 3 - +.SS +ޥɹԥץ .LP .nf \f3 .fl -使用方法: schemagen [\-options ...] <java files> +ˡ: schemagen [\-options ...] <java files> .fl .fl -オプション: +ץ: .fl - \-d <path> : プロセッサと javac 生成のクラスファイルを置く場所を指定します。 + \-d <path> : ץå javac ˤä륯饹եγǼꤷޤ .fl - \-cp <path> : ユーザー指定ファイルの検索場所を指定します。 + \-cp <path> : 桼եθꤷޤ .fl - \-classpath <path> : ユーザー指定ファイルの検索場所を指定します。 + \-classpath <path> : 桼եθꤷޤ .fl - \-help : この使用方法に関するメッセージを表示します。 + \-encoding <encoding> : apt/javac ƤӽФ˻Ѥ륨󥳡ǥ󥰤ꤷޤ +.fl + +.fl + \-episode <file> : ̥ѥѤΥԥɥեޤ +.fl + \-version : Сɽޤ +.fl + \-help : λˡ˴ؤåɽޤ .fl \fP .fi -.RE .LP -.RE -.SS -生成されるリソースファイル +.SH "꥽ե" .LP .LP -現在のスキーマジェネレータは単純に、Java クラス内で参照されている名前空間ごとに 1 つのスキーマファイルを作成します。生成されるスキーマファイルの名前を制御する方法は、現時点では存在しません。そうした目的には、 +ߤΥޥͥ졼ñˡJava 饹ǻȤƤ֤̾Ȥ 1 ĤΥޥեޤ륹ޥե̾椹ˡϡǤ¸ߤޤ󡣤Ūˤϡ .na -\f2スキーマジェネレータの Ant タスク\fP @ +\f2ޥͥ졼 ant \fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlを使用してください。 +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.htmlѤƤ .LP -.SH "関連項目" +.SH "̾" +Ϣ .LP .RS 3 .TP 2 o -スキーマジェネレータの実行 (schemagen):[ +ޥͥ졼μ¹ (schemagen): [ .na -\f2コマンド行の命令\fP @ +\f2ޥɹԤ̿\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagen.html、 +https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagen.html .na -\f2SchemaGen を Ant とともに使用する\fP @ +\f2SchemaGen Ant ȤȤ˻Ѥ\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html] .TP 2 o .na -\f2XML バインドのための JavaTM アーキテクチャー (JAXB)\fP @ +\f2XML ХɤΤ JavaTM ƥ㡼 (JAXB)\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 b/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 index abbaa0e5e2f..4929593320c 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "02 Jun 2010" +.TH serialver 1 "14 Apr 2011" .LP -.SH "名前" -serialver \- シリアルバージョンコマンド -.LP -.RS 3 - +.SH "̾" +serialver \- ꥢС󥳥ޥ .LP .LP -\f3serialver\fP コマンドは \f2serialVersionUID\fP を返します。 +\f3serialver\fP ޥɤ \f2serialVersionUID\fP ֤ޤ .LP -.RE -.SH "形式" -.LP - +.SH "" .LP .nf \f3 @@ -43,76 +37,56 @@ serialver \- シリアルバージョンコマンド .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 options -このドキュメントで説明されているコマンド行オプションです。 +ΥɥȤƤ륳ޥɹԥץǤ .TP 3 classnames -1 つ以上のクラス名です。 +1 İʾΥ饹̾Ǥ .RE .LP -.RE -.SH "説明" -.LP - +.SH "" .LP .LP -\f3serialver\fP は、1 つ以上のクラスの \f2serialVersionUID\fP を、展開しているクラスへコピーするのに適した形式で返します。引数を指定しないで呼び出すと、使用方法が表示されます。 +\f3serialver\fP ϡ1 İʾΥ饹 \f2serialVersionUID\fP ŸƤ륯饹إԡΤŬ֤ޤꤷʤǸƤӽФȡˡɽޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 -\-classpath <: で区切られたディレクトリと zip や jar ファイル> -アプリケーションのクラスおよびリソースの検索パスを設定します。 +\-classpath <: Ƕڤ줿ǥ쥯ȥ zip jar ե> +ץꥱΥ饹ӥ꥽θѥꤷޤ .RE .LP .RS 3 .TP 3 \-show -簡単なユーザーインタフェースを表示します。完全指定のクラス名を入力して、Enter キーか [Show] ボタンを押し、シリアルバージョン UID を表示します。 +ñʥ桼󥿥եɽޤΥ饹̾ϤơEnter Showץܥ򲡤ꥢС UID ɽޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ .RE .LP -.SH "注" -.LP - +.SH "" .LP .LP -\f3serialver\fP コマンドは、指定されたクラスをその仮想マシン内に読み込んで初期化しますが、デフォルトではセキュリティーマネージャーの設定は行いません。信頼できないクラスとともに \f3serialver\fP を実行する場合には、次のオプションを使ってセキュリティーマネージャーを設定できます。 -.LP -.RS 3 - +\f3serialver\fP ޥɤϡꤵ줿饹򤽤βۥޥɤ߹ǽޤǥեȤǤϥƥޥ͡㡼ϹԤޤ󡣿Ǥʤ饹ȤȤ \f3serialver\fP ¹ԤˤϡΥץȤäƥƥޥ͡㡼Ǥޤ .LP .LP \f2\-J\-Djava.security.manager\fP .LP -.RE .LP -また、必要であれば、次のオプションを使ってセキュリティーポリシーを指定できます。 -.LP -.RS 3 - +ޤɬפǤСΥץȤäƥƥݥꥷǤޤ .LP .LP \f2\-J\-Djava.security.policy=<policy file>\fP .LP -.RE -.SH "関連項目" -.LP - +.SH "Ϣ" .LP .LP .na diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 index 2bf60b6f928..1cb919bca17 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "02 Jun 2010" +.TH servertool 1 "14 Apr 2011" .LP -.SH "名前" -servertool \- Java(TM) IDL サーバーツール +.SH "̾" +servertool \- Java(TM) IDL Сġ .LP -.RS 3 - -.LP -\f3servertool\fP はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、および停止を行うためのコマンド行インタフェースを提供します。 -.RE -.SH "形式" -.LP - +\f3servertool\fP ϥץꥱץޤ³СϿϿưߤԤΥޥɹԥ󥿥ե󶡤ޤ +.SH "" .LP .nf \f3 @@ -44,84 +38,76 @@ servertool \-ORBInitialPort \fP\f4nameserverport\fP\f3 \fP\f3options\fP\f3 [ \fP .LP .LP -コマンドを入力しないで \f2servertool\fP を起動すると、コマンド行ツールとして \f2servertool >\fP プロンプトが表示されます。\f2servertool >\fP プロンプトにコマンドを入力します。 +ޥɤϤʤ \f2servertool\fP ưȡޥɹԥġȤ \f2servertool >\fP ץץȤɽޤ\f2servertool >\fP ץץȤ˥ޥɤϤޤ .LP .LP -コマンドを入力して \f2servertool\fP を起動すると、Java IDL サーバーツールが起動し、コマンドを実行して終了します。 +ޥɤϤ \f2servertool\fP ưȡJava IDL Сġ뤬ưޥɤ¹Ԥƽλޤ .LP .LP -\f2\-ORBInitialPort\fP \f2nameserverport\fP オプションは\f3必須\fPです。\f2nameserverport\fP の値には、\f2orbd\fP が実行され、着信要求を待機しているポートを指定する必要があります。Solaris ソフトウェアの使用時は、1024 より小さいポートでプロセスを開始する場合は、root ユーザーになる必要があります。 このため、\f2nameserverport\fP として 1024 または 1024 より大きいポートを使用することをお勧めします。 +\f2\-ORBInitialPort\fP \f2nameserverport\fP ץ\f3ɬ\fPǤ \f2nameserverport\fP ͤˤϡ\f2orbd\fP ¹Ԥ졢忮׵ԵƤݡȤꤹɬפޤSolaris եȥѤ硢1024 꾮ݡȾǥץ򳫻Ϥˤϡroot 桼ˤʤɬפޤΤᡢ\f2nameserverport\fPȤ 1024 ʾΥݡֹѤ뤳Ȥ򤪴ᤷޤ .LP -.SH "説明" -.LP - +.SH "" .LP .LP -\f2servertool\fP はアプリケーションプログラマが、持続サーバーの登録、登録解除、起動、および停止を行うためのコマンド行インタフェースを提供します。そのほかに、サーバーに関するさまざまな統計情報を取得するためのコマンドも提供します。 +\f2servertool\fP ϥץꥱץޤ³СϿϿưߤԤΥޥɹԥ󥿥ե󶡤ޤΤۤˡС˴ؤ뤵ޤޤ׾뤿Υޥɤ󶡤ޤ .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-ORBInitialHost nameserverhost -ネームサーバーが、実行され、着信要求を待機しているホストマシンを指定します。このオプションを指定しない場合、\f2nameserverhost\fP はデフォルトで \f2localhost\fP に設定されます。\f2orbd\fP と \f2servertool\fP が異なるマシン上で実行されている場合は、\f2orbd\fP が実行されているホストの名前と IP アドレスを指定する必要があります。 +͡ॵС¹Ԥ졢忮׵ԵƤۥȥޥꤷޤΥץꤷʤ硢\f2nameserverhost\fP ϥǥեȤ \f2localhost\fP ꤵޤ\f2orbd\fP \f2servertool\fP ۤʤޥǼ¹ԤƤϡ\f2orbd\fP ¹ԤƤۥȤ̾ IP ɥ쥹ꤹɬפޤ .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.SH "コマンド" -.LP - +.SH "ޥ" .LP .RS 3 .TP 3 register \-server\ <server\ class\ name> \ \-classpath\ <classpath\ to\ server> [\ \-applicationName\ <application\ name> \-args\ <args\ to\ server> \-vmargs\ <flags\ to\ be\ passed\ to\ Java\ VM> \ ] -Object Request Broker Daemon (ORBD) に新規持続サーバーを登録します。サーバーが未登録の場合、登録して起動します。このコマンドによって、\f2\-server\fP オプションで識別されるサーバーのメインクラス内でインストールメソッドが呼び出されます。このインストールメソッドは、\f2public static void install(org.omg.CORBA.ORB)\fP になっている必要があります。インストールメソッドは、オプションであり、データベーススキーマの作成などの独自のサーバーインストール動作を開発者が指定できます。 +Object Request Broker Daemon (ORBD) ˿³СϿޤС̤Ͽξ硢ϿƵưޤΥޥɤˤäơ\f2\-server\fP ץǼ̤륵СΥᥤ󥯥饹ǥ󥹥ȡ᥽åɤƤӽФޤΥ󥹥ȡ᥽åɤϡ\f2public static void install(org.omg.CORBA.ORB)\fP ˤʤäƤɬפޤ󥹥ȡ᥽åɤϡץǤꡢǡ١ޤκʤɤȼΥС󥹥ȡưȯԤǤޤ .TP 3 unregister \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -サーバー ID またはアプリケーション名を使用して、ORBD のサーバーの登録を解除します。このコマンドによって、\f2\-server\fP オプションで識別されるサーバーのメインクラス内でアンインストールメソッドが呼び出されます。このアンインストールメソッドは、\f2public static void uninstall(org.omg.CORBA.ORB)\fP になっている必要があります。アンインストールメソッドは、オプションであり、インストールメソッドの動作の取り消しなどの独自のサーバーアンインストール動作を開発者が指定できます。 +С ID ޤϥץꥱ̾ѤơORBD ΥСϿޤΥޥɤˤäơ\f2\-server\fP ץǼ̤륵СΥᥤ󥯥饹ǥ󥤥󥹥ȡ᥽åɤƤӽФޤΥ󥤥󥹥ȡ᥽åɤϡ\f2public static void uninstall(org.omg.CORBA.ORB)\fP ˤʤäƤɬפޤ󥤥󥹥ȡ᥽åɤϡץǤꡢ󥹥ȡ᥽åɤưμäʤɤȼΥС󥤥󥹥ȡưȯԤǤޤ .TP 3 getserverid \-applicationName\ <application\ name> -アプリケーションに関連付けられているサーバー ID を返します。 +ץꥱ˴ϢդƤ륵С ID ֤ޤ .TP 3 list -ORBD に登録されているすべての持続サーバーに関する情報を一覧表示します。 +ORBD ϿƤ뤹٤Ƥλ³С˴ؤɽޤ .TP 3 listappnames -現在 ORBD に登録されているすべてのサーバーのアプリケーション名を一覧表示します。 + ORBD ϿƤ뤹٤ƤΥСΥץꥱ̾ɽޤ .TP 3 listactive -ORDB によって起動され、現在実行されているすべての持続サーバーに関する情報を一覧表示します。 +ORDB ˤäƵư졢߼¹ԤƤ뤹٤Ƥλ³С˴ؤɽޤ .TP 3 locate \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> [\-endpointType\ <endpointType>\ ] -登録されたサーバーで作成したすべての ORB の特定の型について端点 (ポート) を検出します。サーバーが実行されていない場合、起動されます。端点の型が指定されていない場合、サーバーの ORB ごとに関連付けられている plain 型 または non\-protected 型の端点が返されます。 +Ͽ줿СǺ٤Ƥ ORB ηˤĤü (ݡ) 򸡽ФޤС¹ԤƤʤ硢ưޤüηꤵƤʤ硢С ORB Ȥ˴ϢդƤ plain ޤ non\-protected ü֤ޤ .TP 3 locateperorb \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> [\-orbid\ <ORB\ name>\ ] -登録されたサーバーの特定の ORB で登録された端点 (ポート) を検出します。サーバーが実行されていない場合、起動されます。\f2orbid\fP が指定されていない場合は、デフォルト値の「""」が\f2orbid\fPに割り当てられます。ORB が空文字列の \f2orbid\fP で作成されている場合、登録したポートがすべて返されます。 +Ͽ줿С ORB Ͽ줿ü (ݡ) 򸡽ФޤС¹ԤƤʤ硢ưޤ\f2orbid\fP ꤵƤʤϡǥեͤΡ""פ\f2orbid\fP˳ƤޤORB ʸ \f2orbid\fP ǺƤ硢ϿݡȤ٤֤ޤ .TP 3 orblist \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -サーバー上に定義された ORB の ORBId を一覧表示します。ORBId はサーバーで作成された ORB の文字列名です。サーバーが実行されていない場合、起動されます。 +С줿 ORB ORBId ɽޤORBId ϥСǺ줿 ORB ʸ̾ǤС¹ԤƤʤ硢ưޤ .TP 3 shutdown \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -ORBD に登録されたアクティブなサーバーを停止します。このコマンドの実行中に、\f2\-serverid\fP パラメータまたは \f2\-applicationName\fP パラメータで指定されたクラス内に定義された \f2shutdown()\fP メソッドも呼び出されてサーバープロセスを正しく停止します。 +ORBD Ͽ줿ƥ֤ʥСߤޤΥޥɤμ¹ˡ\f2\-serverid\fP ѥ᡼ޤ \f2\-applicationName\fP ѥ᡼ǻꤵ줿饹줿 \f2shutdown()\fP ᥽åɤƤӽФƥСץߤޤ .TP 3 startup \-serverid\ <server\ id\ >\ | \-applicationName\ <application\ name> -ORBD に登録されたサーバーを起動します。サーバーが実行されていない場合は、このコマンドでサーバーを起動します。サーバーがすでに実行されている場合は、ユーザーにエラーメッセージが返されます。 +ORBD Ͽ줿СưޤС¹ԤƤʤϡΥޥɤǥСưޤСǤ˼¹ԤƤϡ桼˥顼å֤ޤ .TP 3 help -サーバーがサーバーツールで使用できるすべてのコマンドを表示します。 +ССġǻѤǤ뤹٤ƤΥޥɤɽޤ .TP 3 quit -サーバーツールを終了します。 +Сġλޤ .RE .LP -.SH "関連項目" -.LP - +.SH "Ϣ" .LP orbd(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 b/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 index 4b96e1b9998..216075e37ec 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 @@ -19,59 +19,59 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "02 Jun 2010" +.TH tnameserv 1 "14 Apr 2011" .LP -.SH "名前" -Java IDL:一時ネームサービス \- \f2tnameserv\fP +.SH "̾" +Java IDL: ͡ॵӥ \- \f2tnameserv\fP .LP .LP -このドキュメントでは、Java IDL 一時ネームサービス \f2tnameserv\fP の使用方法について説明します。Java IDL には、Object Request Broker Daemon (ORBD) も含まれています。ORBD は、ブートストラップサービス、一時ネームサービス、\f3持続\fPネームサービス、およびサーバーマネージャーを含むデーモンプロセスです。Java IDL のすべてのチュートリアルでは ORBD を使用していますが、一時ネームサービスを使用する例では、\f2orbd\fP の代わりに \f2tnameserv\fP を使用できます。\f2orbd\fP ツールの詳細については、\f2orbd\fP の orbd(1)または +ΥɥȤǤϡJava IDL ͡ॵӥ \f2tnameserv\fP λˡˤĤޤJava IDL ˤϡObject Request Broker Daemon (ORBD) ޤޤƤޤORBD ϡ֡ȥȥåץӥ͡ॵӥ\f3³\fP͡ॵӥӥСޥ͡㡼ޤǡץǤJava IDL Τ٤ƤΥ塼ȥꥢǤ ORBD ѤƤޤ͡ॵӥѤǤϡ\f2orbd\fP \f2tnameserv\fP ѤǤޤ\f2orbd\fP ġξܺ٤ˤĤƤϡorbd orbd(1)ޤ .na -\f2ORBD に含まれる Java IDL ネームサービス\fP @ +\f2ORBD ˴ޤޤ Java IDL ͡ॵӥ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.htmlに関するトピックを参照してください。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html˴ؤȥԥå򻲾ȤƤ .LP .LP -ここでは、以下の項目について説明します。 +ǤϡʲιܤˤĤޤ .LP .RS 3 .TP 2 o -Java\ IDL 一時ネームサービス +Java\ IDL ͡ॵӥ .TP 2 o -Java\ IDL 一時ネームサービスの起動 +Java\ IDL ͡ॵӥεư .TP 2 o -Java\ IDL 一時ネームサービスの停止 +Java\ IDL ͡ॵӥ .TP 2 o -サンプルクライアント:名前空間へのオブジェクトの追加 +ץ륯饤: ֤̾ؤΥ֥Ȥɲ .TP 2 o -サンプルクライアント:名前空間のブラウズ +ץ륯饤: ֤̾Υ֥饦 .RE .LP -.SH "Java\ IDL 一時ネームサービス" +.SH "Java IDL ͡ॵӥ" .LP .LP -CORBA の COS (Common Object Services) ネームサービスは、ファイルシステムがファイルに対してディレクトリ構造を提供しているのと同じように、オブジェクト参照に対してツリー構造のディレクトリを提供します。Java IDL の一時ネームサービスである \f2tnameserv\fP は、COS ネームサービスの仕様を単純な形で実装したものです。 +CORBA COS (Common Object Services) ͡ॵӥϡե륷ƥबեФƥǥ쥯ȥ깽¤󶡤ƤΤƱ褦ˡ֥ȻȤФƥĥ꡼¤Υǥ쥯ȥ󶡤ޤJava IDL ΰ͡ॵӥǤ \f2tnameserv\fP ϡCOS ͡ॵӥλͤñʷǼΤǤ .LP .LP -オブジェクト参照は名前空間に名前で格納され、オブジェクト参照と名前のペアは、それぞれ「ネームバインディング」と呼ばれます。ネームバインディングは「ネーミングコンテキスト」に組み込むことができます。ネーミングコンテキストはそれ自体がネームバインディングであり、ファイルシステムのサブディレクトリと同じ編成機能を持ちます。すべてのバインディングは「初期ネーミングコンテキスト」に格納されます。名前空間において、初期ネーミングコンテキストは唯一の持続的バインディングです。 それ以外のネーミングコンテキストは、Java IDL のネーミングサービスプロセスが停止し、再起動されると失われます。 +֥ȻȤ֤̾̾dzǼ졢֥ȻȤ̾Υڥϡ줾֥͡Хǥ󥰡פȸƤФޤ͡Хǥ󥰤ϡ֥͡ߥ󥰥ƥȡפȤ߹ळȤǤޤ͡ߥ󥰥ƥȤϤ켫Τ͡Хǥ󥰤Ǥꡢե륷ƥΥ֥ǥ쥯ȥƱǽޤ٤ƤΥХǥ󥰤ϡֽ͡ߥ󥰥ƥȡפ˳Ǽޤ֤̾ˤơ͡ߥ󥰥ƥȤͣλ³ŪХǥ󥰤ǤʳΥ͡ߥ󥰥ƥȤϡJava IDL Υ͡ߥ󥰥ӥץߤƵưȼޤ .LP .LP -アプレットまたはアプリケーションから COS ネームサービスを使用するためには、その ORB はネームサービスが動作しているホストのポートを知っているか、そのネームサービスの文字列化された初期ネーミングコンテキストにアクセスできなければなりません。ネームサービスは、Java\ IDL のネームサービスでもその他の COS 準拠のネームサービスでもかまいません。 +ץåȤޤϥץꥱ󤫤 COS ͡ॵӥѤ뤿ˤϡ ORB ϥ͡ॵӥưƤۥȤΥݡȤΤäƤ뤫Υ͡ॵӥʸ󲽤줿͡ߥ󥰥ƥȤ˥ǤʤФʤޤ󡣥͡ॵӥϡJava IDL Υ͡ॵӥǤ⤽¾ COS Υ͡ॵӥǤ⤫ޤޤ .LP -.SH "Java\ IDL 一時ネームサービスの起動" +.SH "Java IDL ͡ॵӥεư" .LP .LP -Java\ IDL ネームサービスは、ネームサービスを使用するアプリケーションまたはアプレットより前に起動しておかなければなりません。Java\ IDL 製品をインストールすると、Java IDL ネームサービスを起動するスクリプト (Solaris: \f2tnameserv\fP) か、実行可能ファイル (Windows NT: \f2tnameserv.exe\fP) が作成されます。バックグラウンドで動作するように、ネームサービスを起動してください。 +Java IDL ͡ॵӥϡ͡ॵӥѤ륢ץꥱޤϥץåȤ˵ưƤɬפޤJava\ IDL ʤ򥤥󥹥ȡ뤹ȡJava\ IDL ͡ॵӥư륹ץ (Solaris: \f2tnameserv\fP) ޤϼ¹Բǽե (Windows NT: \f2tnameserv.exe\fP) ޤХå饦ɤư褦ˡ͡ॵӥưƤ .LP .LP -特に指定しない場合、Java IDL ネームサービスは、ORB の \f2resolve_initial_references()\fP メソッドと \f2list_initial_references()\fP メソッドの実装に使用するブートストラッププロトコルに対してポート 900 で待機します。 +ä˻ꤷʤ硢Java IDL ͡ॵӥϡORB \f2resolve_initial_references()\fP ᥽åɤ \f2list_initial_references()\fP ᥽åɤμ˻Ѥ֡ȥȥåץץȥФƥݡ 900 Եޤ .LP .nf \f3 @@ -83,7 +83,7 @@ Java\ IDL ネームサービスは、ネームサービスを使用するアプ .LP .LP -ネームサーバーポートを指定しない場合、デフォルトでポート 900 が使用されます。Solaris ソフトウェアの実行時は、1024 より小さいポートでプロセスを開始する場合、root ユーザーになる必要があります。 このため、1024 または 1024 より大きいポートを使用することをお勧めします。 1050 のように別のポートを指定し、ネームサービスをバックグラウンドで実行するには、UNIX コマンドシェルで次のように入力します。 +͡ॵСݡȤꤷʤ硢ǥեȤǥݡ 900 ѤޤSolaris եȥμ¹Իϡ1024 꾮ݡȤǥץ򳫻Ϥ硢root 桼ˤʤɬפޤΤᡢ1024 ޤ 1024 礭ݡֹѤ뤳Ȥ򤪴ᤷޤ1050 Τ褦̤ΥݡȤꤷ͡ॵӥХå饦ɤǼ¹ԤˤϡUNIX ޥɥǼΤ褦Ϥޤ .LP .nf \f3 @@ -95,7 +95,7 @@ Java\ IDL ネームサービスは、ネームサービスを使用するアプ .LP .LP -Windows の MS\-DOS システムプロンプトでは、次のように入力します。 +Windows MS\-DOS ƥץץȤǤϡΤ褦Ϥޤ .LP .nf \f3 @@ -107,32 +107,32 @@ Windows の MS\-DOS システムプロンプトでは、次のように入力し .LP .LP -ネームサーバーのクライアントには、新しいポート番号を知らせる必要があります。このため、ORB オブジェクトの作成時に \f2org.omg.CORBA.ORBInitialPort\fP プロパティーに新しいポート番号を設定します。 +͡ॵСΥ饤ȤˤϡݡֹΤ餻ɬפޤΤᡢORB ֥Ȥκ \f2org.omg.CORBA.ORBInitialPort\fP ץѥƥ˿ݡֹꤷޤ .LP .SS -異なるマシン上でのクライアントとサーバーの実行 +ۤʤޥǤΥ饤ȤȥСμ¹ .LP .LP -Java IDL と RMI\-IIOP のほとんどのチュートリアルでは、ネームサービス、サーバー、およびクライアントはすべて開発用のマシン上で実行されます。実際に配備する場合には、クライアントとサーバーを、ネームサービスとは異なるホスト上で実行することが多くなります。 +Java IDL RMI\-IIOP ΤۤȤɤΥ塼ȥꥢǤϡ͡ॵӥСӥ饤ȤϤ٤ƳȯѤΥޥǼ¹Ԥޤºݤˤϡ饤ȤȥС򡢥͡ॵӥȤϰۤʤۥȾǼ¹Ԥ뤳Ȥ¿ʤޤ .LP .LP -クライアントとサーバーがネームサービスを見つけるには、クライアントとサーバーが、ネームサービスが実行されているポートの番号とホストを認識している必要があります。そのためには、クライアントとサーバーのファイル内の \f2org.omg.CORBA.ORBInitialPort\fP プロパティーと \f2org.omg.CORBA.ORBInitialHost\fP プロパティーをネームサービスが実行されているポートの番号とマシンの名前に設定します。この例は、 +饤ȤȥС͡ॵӥ򸫤Ĥˤϡ饤ȤȥС͡ॵӥ¹ԤƤݡȤֹȥۥȤǧƤɬפޤΤˤϡ饤ȤȥСΥե \f2org.omg.CORBA.ORBInitialPort\fP ץѥƥ \f2org.omg.CORBA.ORBInitialHost\fP ץѥƥ͡ॵӥ¹ԤƤݡȤֹȥޥ̾ꤷޤϡ .na -\f2「RMI\-IIOP を使った Hello World の例」\fP @ +\f2RMI\-IIOP Ȥä Hello World פ˼Ƥޤ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.htmlに示されています。コマンド行オプション \f2\-ORBInitialPort\fP \f2nameserverport#\fP と \f2\-ORBInitialHost\fP \f2nameserverhostname\fP を使用して、クライアントとサーバーに対してネームサービスを探す場所を指定することもできます。 +http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.htmlޥɹԥץ \f2\-ORBInitialPort\fP \f2nameserverport#\fP \f2\-ORBInitialHost\fP \f2nameserverhostname\fP Ѥơ饤ȤȥСФƥ͡ॵӥõꤹ뤳ȤǤޤ .na -\f2「Java IDL: 2 台のマシン上で実行する Hello World プログラム」\fP @ +\f2Java IDL: 2 ΥޥǼ¹Ԥ Hello World ץ\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html には、コマンド行オプションを使用して指定する方法が示されています。 +http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html ˤϡޥɹԥץѤƻꤹˡƤޤ .LP .LP -たとえば、一時ネームサービス \f2tnameserv\fP が、ホスト \f2nameserverhost\fP のポート 1050 上で実行されているとします。さらに、クライアントがホスト \f2clienthost\fP 上で実行され、サーバーはホスト \f2serverhost\fP 上で実行されているとします。 +ȤС͡ॵӥ \f2tnameserv\fP ۥ \f2nameserverhost\fP Υݡ 1050 Ǽ¹ԤƤȤޤˡ饤Ȥۥ \f2clienthost\fP Ǽ¹Ԥ졢Сϥۥ \f2serverhost\fP Ǽ¹ԤƤȤޤ .LP .RS 3 .TP 2 o -次のように、ホスト \f2nameserverhost\fP 上で \f2tnameserv\fP を起動します。 +Τ褦ˡۥ \f2nameserverhost\fP \f2tnameserv\fP ưޤ .nf \f3 .fl @@ -144,7 +144,7 @@ o .fi .TP 2 o -\f2serverhost\fP 上でサーバーを起動します。 +\f2serverhost\fP ǥСưޤ .nf \f3 .fl @@ -154,7 +154,7 @@ o .fi .TP 2 o -\f2clienthost\fP 上でクライアントを起動します。 +\f2clienthost\fP ǥ饤Ȥưޤ .nf \f3 .fl @@ -166,38 +166,34 @@ o .LP .SS -\-J オプション -.LP -このコマンド行オプションは、\f2tnameserve\fP とともに使用できます。 -.RS 3 - +\-J ץ .LP +Υޥɹԥץϡ\f2tnameserve\fP ȤȤ˻ѤǤޤ .RS 3 .TP 3 \-Joption -Java 仮想マシンに \f2option\fP を渡します。 \f2option\fP には、java(1)のリファレンスページに記載されているオプションを 1 つ指定します。たとえば、\f3\-J\-Xms48m\fP と指定すると、スタートアップメモリーは 48M バイトに設定されます。\f3\-J\fP を使って背後の実行環境にオプションを渡すことはよく行われています。 +Java ۥޥ \f2option\fP Ϥޤ\f2option\fP ˤϡjava(1)Υե󥹥ڡ˵ܤƤ륪ץ 1 ĻꤷޤȤС\f3\-J\-Xms48m\fP Ȼꤹȡȥåץ꡼ 48M ХȤꤵޤ\f3\-J\fP Ȥäظμ¹ԴĶ˥ץϤȤϤ褯ԤƤޤ .RE .LP -.RE -.SH "Java\ IDL 一時ネームサービスの停止" +.SH "Java IDL ͡ॵӥ" .LP .LP -Java IDL ネームサービスを停止するには、Unix の場合は、\f2kill\fP などのオペレーティングシステムのコマンドを使い、Windows の場合は、\f2Ctrl\-C\fP を使います。ネームサービスを明示的に停止するまでは、呼び出し待機状態が続きます。なお、サービスを終了させると、Java\ IDL ネームサービスに登録されている名前は失われます。 +Java IDL ͡ॵӥߤˤϡUnix ξϡ\f2kill\fP ʤɤΥڥ졼ƥ󥰥ƥΥޥɤȤWindows ξϡ\f2Ctrl\-C\fP Ȥޤ͡ॵӥŪߤޤǤϡƤӽФԵ֤³ޤʤӥλȡJava IDL ͡ॵӥϿƤ̾ϼޤ .LP -.SH "サンプルクライアント:名前空間へのオブジェクトの追加" +.SH "ץ륯饤: ֤̾ؤΥ֥Ȥɲ" .LP .LP -次に示すサンプルプログラムは、名前を名前空間に追加する方法を示すものです。このサンプルプログラムは、このままの状態で完全に動作する一時ネームサービスクライアントで、次のような単純なツリーを作成するものです。 +˼ץץϡ֤̾̾ɲäˡ򼨤ΤǤΥץץϡΤޤޤξ֤Ǵư͡ॵӥ饤ȤǡΤ褦ñʥĥ꡼ΤǤ .LP .nf \f3 .fl \fP\f3 .fl - \fP\f4初期\fP\f3 + \fP\f4\fP\f3 .fl - \fP\f4ネーミングコンテキスト\fP\f3 + \fP\f4͡ߥ󥰥ƥ\fP\f3 .fl / \\ .fl @@ -215,7 +211,7 @@ Java IDL ネームサービスを停止するには、Unix の場合は、\f2kil .LP .LP -この例で、\f3plans\fP はオブジェクト参照、\f3Personal\fP は \f3calendar\fP と \f3schedule\fP の 2 つのオブジェクト参照を含むネーミングコンテキストです。 +ǡ\f3plans\fP ϥ֥Ȼȡ\f3Personal\fP \f3calendar\fP \f3schedule\fP 2 ĤΥ֥ȻȤޤ͡ߥ󥰥ƥȤǤ .LP .nf \f3 @@ -242,7 +238,7 @@ public class NameClient .fi .LP -前述の「Java IDL 一時ネームサービスの起動」で、ネームサーバーはポート 1050 を使用して起動しました。 次のコードで、このポート番号をクライアントプログラムに知らせます。 +ҤΡJava IDL ͡ॵӥεưפǡ͡ॵСϥݡ 1050 ѤƵưޤΥɤǡΥݡֹ򥯥饤ȥƥΤ餻ޤ .nf \f3 .fl @@ -258,7 +254,7 @@ public class NameClient .fi .LP -次のコードでは、初期ネーミングコンテキストを取得し、それを \f3ctx\fP に代入します。2 行目では、\f3ctx\fP をダミーのオブジェクト参照 \f3objref\fP にコピーします。 この \f3objref\fP には、あとでさまざまな名前を割り当てて名前空間に追加します。 +ΥɤǤϡ͡ߥ󥰥ƥȤ \f3ctx\fP ޤ2 ܤǤϡ\f3ctx\fP ߡΥ֥Ȼ \f3objref\fP ˥ԡޤ objref ˤϡȤǤޤޤ̾Ƥ֤̾ɲäޤ .nf \f3 .fl @@ -274,7 +270,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、text 型の名前 plans を作成し、それをダミーのオブジェクト参照にバインドします。その後、\f2rebind\fP を使用して初期ネーミングコンテキストの下に "plans" を追加しています。\f2rebind\fP メソッドを使用すれば、\f2bind\fP を使用した場合に発生する例外を発生させずに、このプログラムを何度も繰り返し実行できます。 +ΥɤǤϡtext ̾ plans ߡΥ֥ȻȤ˥Хɤޤθ塢rebind Ѥƽ͡ߥ󥰥ƥȤβ \f2plans ɲäƤޤ\fP \f2rebind\fP ᥽åɤѤСbind Ѥȯ㳰ȯˡ \f2Υץ٤֤ⷫ¹ԤǤޤ\fP .nf \f3 .fl @@ -292,7 +288,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、directory 型の Personal というネーミングコンテキストを作成します。その結果得られるオブジェクト参照 \f3ctx2\fP をこの名前にバインドし、初期ネーミングコンテキストに追加します。 +ΥɤǤϡdirectory Personal Ȥ͡ߥ󥰥ƥȤޤη륪֥Ȼ \f3ctx2\fP 򤳤̾˥Хɤ͡ߥ󥰥ƥȤɲäޤ .nf \f3 .fl @@ -310,7 +306,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -残りのコードでは、ダミーのオブジェクト参照を schedule と calendar という名前でネーミングコンテキスト "Personal" (\f3ctx2\fP) にバインドします。 +ĤΥɤǤϡߡΥ֥ȻȤ schedule calendar Ȥ̾ǥ͡ߥ󥰥ƥ "Personal" (\f3ctx2\fP) ˥Хɤޤ .nf \f3 .fl @@ -350,10 +346,10 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -.SH "サンプルクライアント:名前空間のブラウズ" +.SH "ץ륯饤: ֤̾Υ֥饦" .LP .LP -次のサンプルプログラムでは、名前空間をブラウズする方法を示します。 +ΥץץǤϡ֤֥̾饦ˡ򼨤ޤ .LP .nf \f3 @@ -380,7 +376,7 @@ public class NameClientList .fi .LP -前述の「Java IDL 一時ネームサービスの起動」で、ネームサーバーはポート 1050 を使用して起動しました。 次のコードで、このポート番号をクライアントプログラムに知らせます。 +ҤΡJava IDL ͡ॵӥεưפǡ͡ॵСϥݡ 1050 ѤƵưޤΥɤǡΥݡֹ򥯥饤ȥƥΤ餻ޤ .nf \f3 .fl @@ -400,7 +396,7 @@ public class NameClientList .fi .LP -次のコードでは、初期ネーミングコンテキストを取得しています。 +ΥɤǤϡ͡ߥ󥰥ƥȤƤޤ .nf \f3 .fl @@ -414,7 +410,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -\f2list\fP メソッドは、ネーミングコンテキストに追加されているバインディングをリストします。この場合、最大 1000 個までのバインディングが初期ネーミングコンテキストから BindingListHolder に返されます。 残りのバインディングは、BindingIteratorHolder に返されます。 +\f2list\fP ᥽åɤϡ͡ߥ󥰥ƥȤɲäƤХǥ󥰤ꥹȤޤξ硢 1000 ĤޤǤΥХǥ󥰤͡ߥ󥰥ƥȤ BindingListHolder ֤ޤĤΥХǥ󥰤ϡBindingIteratorHolder ֤ޤ .nf \f3 .fl @@ -430,7 +426,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -次のコードでは、返された BindingListHolder からバインディングの配列を取得します。バインディングがない場合は、プログラムは終了します。 +ΥɤǤϡ֤줿 BindingListHolder Хǥ󥰤ޤХǥ󥰤ʤϡץϽλޤ .nf \f3 .fl @@ -444,7 +440,7 @@ NamingContextHelper.narrow(orb.resolve_initial_references("NameService")); .fi .LP -残りのコードでは、バインディングに対してループ処理を行い、名前を出力します。 +ĤΥɤǤϡХǥ󥰤Фƥ롼׽Ԥ̾Ϥޤ .nf \f3 .fl diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 b/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 index 8a34dd3b718..c5f12136430 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 @@ -19,159 +19,125 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "02 Jun 2010" +.TH unpack200 1 "14 Apr 2011" .LP -.SH "名前" -unpack200 \- JAR アンパックツール +.SH "̾" +unpack200 \- JAR ѥåġ .LP .RS 3 .TP 2 o -形式 + .TP 2 o -説明 + .TP 2 o -オプション +ץ .TP 2 o -終了ステータス +λơ .TP 2 o -関連項目 +Ϣ .TP 2 o -説明 +ջ .RE .LP -.SH "形式" -.LP - +.SH "" .LP .LP \f4unpack200\fP\f2 [ \fP\f2options\fP ] \f2input\-file\fP \f2JAR\-file\fP .LP .LP -オプションの指定順序に決まりはありません。コマンド行に指定された最後のオプションが、それ以前に指定されたすべてのオプションより優先されます。 -.LP -.RS 3 - +ץλ˷ޤϤޤ󡣥ޥɹԤ˻ꤵ줿ǸΥץ󤬡˻ꤵ줿٤ƤΥץͥ褵ޤ .LP .RS 3 .TP 3 input\-file -入力ファイルの名前。 入力ファイルは通常、pack200 gzip ファイルか pack200 ファイルです。このほかに、0 を設定すれば pack200(1) から作成された JAR ファイルも入力ファイルとして使用できます。 この場合、入力ファイルの内容が Pack200 マーカーとともに出力 JAR ファイルにコピーされます。 +ϥե̾ϥե̾pack200 gzip ե뤫 pack200 եǤΤۤˡ0 ꤹ pack200(1) 줿 JAR եϥեȤƻѤǤޤξ硢ϥեƤ Pack200 ޡȤȤ˽ JAR ե˥ԡޤ .TP 3 JAR\-file -出力 JAR ファイル名。 + JAR ե̾ .RE .LP -.RE -.SH " 説明" -.LP - +.SH " " .LP .LP -\f2unpack200\fP は、\f2pack200\fP(1) で作成されたパックファイルを JAR ファイルに変換するネイティブ実装です。一般的な使用方法: -.LP -.RS 3 - +\f2unpack200\fP ϡpack200(1) Ǻ줿ѥåե JAR եѴ \f2ͥƥּ\fPǤŪʻˡ: .LP .LP \f2% unpack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP -この例では、デフォルトの \f2unpack200\fP 設定で、\f2myarchive.jar\fP から \f2myarchive.pack.gz\fP が作成されます。 +Ǥϡ \f2ǥեȤ unpack200 ǡmyarchive.pack.gz\fP \f2myarchive.jar\fP \f2ޤ\fP .LP -.SH "オプション" -.LP -.SS -標準オプション -.LP -.RS 3 - +.SH "ץ" .LP .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP .LP -.RS 3 - .LP -.LP -JAR ファイル内のすべてのエントリに \f2true\fP、\f2false\fP、\f2keep\fP としてデフレーションを設定します。デフォルトモードは \f2keep\fP です。\f2true\fP または \f2false\fP の場合、デフォルトの動作をオーバーライドして、出力 JAR ファイル内のすべてのエントリのデフレーションモードを設定します。 -.LP -.RE -.RE -.SS -非標準オプション -.LP -.RS 3 - +JAR եΤ٤ƤΥȥ \f2true\fP \f2false\fP \f2keep\fP Ȥƥǥե졼ꤷޤǥեȥ⡼ɤ \f2keep\fP Ǥ \f2true\fP ޤ \f2false 硢\fPǥեȤư򥪡С饤ɤơ JAR եΤ٤ƤΥȥΥǥե졼⡼ɤꤷޤ .LP .LP \f4\-r \-\-remove\-pack\-file\fP .LP -.RS 3 - .LP +ϥѥåեޤ .LP -入力パックファイルを削除します。 -.LP -.RE .LP \f4\-v \-\-verbose\fP .LP -.RS 3 - .LP +Ǿ¤ΥåϤޤΥץʣꤹȡĹåϤޤ .LP -最小限のメッセージを出力します。このオプションを複数指定すると、より長いメッセージが出力されます。 -.LP -.RE .LP \f4\-q \-\-quiet\fP .LP -.RS 3 - .LP +åɽưޤ .LP -メッセージを表示せずに動作します。 -.LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP .LP -.RS 3 - +.LP +ϥåΥեꤷޤ .LP .LP -出力メッセージのログファイルを指定します。 -.LP -.RE -.RE -.SH "終了ステータス" -.LP - +\f4\-? \-h \-\-help\fP .LP .LP -次の終了値が返されます。 -.LP -.RS 3 - +Υޥɤ˴ؤإ׾Ϥޤ .LP .LP -\f2\ 0\fP " 成功" +\f4\-V \-\-version\fP .LP .LP -\f2>0\fP " エラー" +Υޥɤ˴ؤСϤޤ .LP -.RE -.SH "関連項目" +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +unpack200 ˤäƸƤӽФ Java ưġ \f2ץ\fP \f2Ϥޤ\fP +.LP +.SH "λơ" +.LP +.LP +νλ֤ͤޤ +.LP +.LP +\f2\ 0\fP " " +.LP +.LP +\f2>0\fP " 顼" +.LP +.SH "Ϣ" .LP .RS 3 .TP 2 @@ -180,35 +146,33 @@ pack200(1) .TP 2 o .na -\f2Java SE のドキュメント\fP @ +\f2Java SE Υɥ\fP @ .fi http://java.sun.com/javase/6/docs/index.html .TP 2 o .na -\f2「Java 配備ガイド \- Pack200」\fP @ +\f2Java \- Pack200\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o -jar(1) \- Java Archive ツール」 +jar(1) \- Java Archive ġ .TP 2 o -「jarsigner(1) \- JAR 署名および検証ツール」 +jarsigner(1) \- JAR ̾Ӹڥġ .TP 2 o -\f2attributes(5)\fP のマニュアルページ +\f2attributes(5)\fP Υޥ˥奢ڡ .RE .LP -.SH "注意事項" -.LP - +.SH "ջ" .LP .LP -このコマンドと \f2unpack(1)\fP を混同しないでください。これらは別製品です。 +Υޥɤ \f2unpack(1) \fPƱʤǤʤǤ .LP .LP -SDK に付属する Java SE API 仕様との相違が見つかった場合には、仕様を優先してください。 +SDK ° Java SE API ͤȤ㤬Ĥäˤϡͤͥ褷Ƥ .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 b/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 index 49f39d6054f..2a3bc5874eb 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 @@ -19,30 +19,24 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "02 Jun 2010" -.SH "名前" -wsgen \- XML Web Services (JAX\-WS) 2.0 のための Java(TM) API -.RS 3 - +.TH wsgen 1 "14 Apr 2011" +.SH "̾" +wsgen \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP -.LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.1 +\f3С:\fP 2.1.1 .LP +\f2wsgen\fP ġϡJAX\-WS Web ӥǻѤ JAX\-WS ݡ֥륢ƥեȤޤΥġϡWeb ӥΥɥݥȼ饹 (SEI) ɤ߼ꡢWeb ӥȸƤӽФɬפʤ٤ƤΥƥեȤޤ +.SH "" .LP -\f2wsgen\fP ツールは、JAX\-WS Web サービスで使用される JAX\-WS ポータブルアーティファクトを生成します。このツールは、Web サービスのエンドポイント実装クラス (SEI) を読み取り、Web サービスの配備と呼び出しに必要なすべてのアーティファクトを生成します。 -.LP -.RE -.SH "概要" -.LP -\f2wsgen\fP ツールは、JAX\-WS Web サービスで使用される JAX\-WS ポータブルアーティファクトを生成します。このツールは、Web サービスのエンドポイントクラスを読み取り、Web サービスの配備と呼び出しに必要なすべてのアーティファクトを生成します。JAXWS 2.1.1 RI には wsgen Ant タスクも用意されています。詳細は、 +\f2wsgen\fP ġϡJAX\-WS Web ӥǻѤ JAX\-WS ݡ֥륢ƥեȤޤΥġϡWeb ӥΥɥݥȥ饹ɤ߼ꡢWeb ӥȸƤӽФɬפʤ٤ƤΥƥեȤޤJAXWS 2.1.1 RI ˤ wsgen Ant ѰդƤޤܺ٤ϡ .na -\f2Wsgen Ant タスク\fP @ +\f2Wsgen Ant \fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsgenant.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsgenant.html򻲾ȤƤ .LP -.SH "wsgen の起動" +.SH "wsgen εư" .RS 3 .TP 2 o @@ -69,7 +63,7 @@ o .RE .LP -.SH "構文" +.SH "ʸ" .nf \f3 .fl @@ -80,7 +74,7 @@ wsgen [options] <SEI>\fP \fP .fi .LP -次の表に、\f2wsgen\fP のオプションを示します。 +ɽˡ \f2wsgen\fP Υץ򼨤ޤ .br .LP .TS @@ -111,7 +105,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -入力クラスファイルの検索場所を指定します +ϥ饹եθꤷޤ .br .di .nr a| \n(dn @@ -127,7 +121,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2\-classpath <path>\fP と同じ +\-classpath <path> \f2ƱǤ\fP .br .di .nr b| \n(dn @@ -143,7 +137,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成される出力ファイルを格納する場所を指定する +ϥեǼꤷޤ .br .di .nr c| \n(dn @@ -159,7 +153,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ベンダー拡張 (仕様で規定されていない機能) を許可します。拡張を使用すると、アプリケーションの移植性が失われたり、ほかの実装との相互運用が行えなくなる可性があります +٥ĥ (ͤǵꤵƤʤǽ) ĤޤĥѤȡץꥱΰܿ줿ꡢۤμȤ߱ѤԤʤʤޤ .br .di .nr d| \n(dn @@ -175,7 +169,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ヘルプを表示します +إפɽޤ .br .di .nr e| \n(dn @@ -191,7 +185,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されたファイルを保持します +줿եݻޤ .br .di .nr f| \n(dn @@ -207,7 +201,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \-wsdl オプションと組み合わせて使用します。WSDL などの生成されたリソースファイルの格納場所を指定します + \-wsdl ץȤ߹碌ƻѤޤWSDL ʤɤ줿꥽եγǼꤷޤ .br .di .nr g| \n(dn @@ -223,7 +217,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されるソースファイルを格納する場所を指定する +륽եǼꤹ .br .di .nr h| \n(dn @@ -239,7 +233,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイラが実行している処理に関するメッセージを出力します +ѥ餬¹ԤƤ˴ؤåϤޤ .br .di .nr i| \n(dn @@ -255,7 +249,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -バージョン情報を出力します。このオプションを使用した場合、バージョン情報が出力されるだけです。通常の処理は実行されません。 +СϤޤΥץѤ硢С󤬽ϤǤ̾νϼ¹Ԥޤ .br .di .nr j| \n(dn @@ -271,7 +265,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2wsgen\fP は、デフォルトでは WSDL ファイルを生成しません。このフラグは省略可能ですが、指定した場合は \f2wsgen\fP が WSDL ファイルを生成するようになります。このフラグは通常、エンドポイントの配備前に開発者が WSDL を参照できるようにするためだけに使用されます。\f2protocol\fP は省略可能であり、\f2wsdl:binding\fP で使用すべきプロトコルを指定するために使用されます。有効なプロトコルは次のとおりです。\f2soap1.1\fP と \f2Xsoap1.2\fP。デフォルトは \f2soap1.1\fP です。\f2Xsoap1.2\fP は標準ではないため、\f2\-extension\fP オプションと組み合わせないと使用できません。 +ǥեȤǤ \f2wsgen\fP WSDL եޤ󡣤Υե饰ϾάǽǤꤷ \f2wsgen\fP WSDL ե褦ˤʤޤΥե饰̾ɥݥȤ˳ȯԤ WSDL 򻲾ȤǤ褦ˤ뤿˻Ѥޤ \f2protocol\fP ϾάǽǤꡢwsdl:binding ǻѤ٤ץȥꤹ뤿 \f2Ѥޤ\fPͭʥץȥϼΤȤǤ \f2soap1.1\fP \f2Xsoap1.2\fPǥեȤ \f2soap1.1\fP Ǥ \f2Xsoap1.2\fP ɸǤϤʤᡢ \f2\-extension\fP ץȤ߹碌ʤȻѤǤޤ .br .di .nr k| \n(dn @@ -287,7 +281,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \f2\-wsdl\fP オプションと組み合わせて使用します。WSDL 内で生成されるべき \f2wsdl:service\fP の名前を指定するために使用します。例 : \f2\-servicename "{http://mynamespace/}MyService"\fP + \f2\-wsdl\fP ץȤ߹碌ƻѤޤWSDL ٤ \f2wsdl:service\fP ̾ꤹ뤿˻Ѥޤ: \f2\-servicename "{http://mynamespace/}MyService"\fP .br .di .nr l| \n(dn @@ -303,7 +297,7 @@ wsgen [options] <SEI>\fP .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -常に \f2\-wsdl\fP オプションと組み合わせて使用します。WSDL 内で生成されるべき \f2wsdl:port\fP の名前を指定するために使用します。例 : \f2\-portname "{http://mynamespace/}MyPort"\fP + \f2\-wsdl\fP ץȤ߹碌ƻѤޤWSDL ٤ \f2wsdl:port\fP ̾ꤹ뤿˻Ѥޤ: \f2\-portname "{http://mynamespace/}MyPort"\fP .br .br .di @@ -315,7 +309,7 @@ wsgen [options] <SEI>\fP .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f4\-classpath <path>\fP .if \n(80<\n(38 .nr 80 \n(38 @@ -346,7 +340,7 @@ wsgen [options] <SEI>\fP .80 .rm 80 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -386,7 +380,7 @@ wsgen [options] <SEI>\fP .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 143 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 137 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -403,7 +397,7 @@ wsgen [options] <SEI>\fP .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -633,7 +627,7 @@ wsgen [options] <SEI>\fP .if \n-(b.=0 .nr c. \n(.c-\n(d.-57 .LP -.SH "例" +.SH "" .nf \f3 .fl @@ -641,7 +635,7 @@ wsgen [options] <SEI>\fP .fl .fi .LP -\f3stock\fP ディレクトリ内に @WebService 注釈が付けられた、StockService に必要なラッパークラスが生成されます。 +\f3stock\fP ǥ쥯ȥ @WebService ᤬դ줿StockService ɬפʥåѡ饹ޤ .nf \f3 .fl @@ -649,7 +643,7 @@ wsgen [options] <SEI>\fP .fl .fi .LP -SOAP 1.1 WSDL と、@WebService 注釈が付けられた Java クラス stock.StockService のスキーマが生成されます。 +SOAP 1.1 WSDL ȡ@WebService ᤬դ줿 Java 饹 stock.StockService Υޤޤ .nf \f3 .fl @@ -657,6 +651,6 @@ SOAP 1.1 WSDL と、@WebService 注釈が付けられた Java クラス stock.St .fl .fi .LP -SOAP 1.2 WSDL が生成されます。 +SOAP 1.2 WSDL ޤ .LP -サービスを配備するときに JAXWS ランタイムによって自動的に WSDL が生成されるため、開発時に WSDL を生成する必要はありません。 +ӥȤ JAXWS 󥿥ˤäƼưŪ WSDL 뤿ᡢȯ WSDL ɬפϤޤ diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 b/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 index bd51f28ca1a..ff5301792d8 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 @@ -19,44 +19,44 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "02 Jun 2010" -.SH "名前" -wsimport \- XML Web Services (JAX\-WS) 2.0 のための Java(TM) API +.TH wsimport 1 "14 Apr 2011" +.SH "̾" +wsimport \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3実装バージョン:\fP 2.1.1 +\f3С:\fP 2.1.1 .br -.SH "概要" +.SH "" .LP -\f2wsimport\fP ツールは、次のような JAX\-WS ポータブルアーティファクトを生成します。 +\f2wsimport\fP ġϡΤ褦 JAX\-WS ݡ֥륢ƥեȤޤ .RS 3 .TP 2 o -サービスエンドポイントインタフェース (SEI) +ӥɥݥȥ󥿥ե (SEI) .TP 2 o -サービス +ӥ .TP 2 o -wsdl:fault からマップされる例外クラス (存在する場合) +wsdl:fault ޥåפ㳰饹 (¸ߤ) .TP 2 o -応答 wsdl:message から派生する非同期応答 Bean (存在する場合) + wsdl:message Ʊ Bean (¸ߤ) .TP 2 o -JAX\-B が生成する値タイプ (スキーマの型からマップされた Java クラス) +JAX\-B ͥ (ޤηޥåפ줿 Java 饹) .RE .LP -これらのアーティファクトは、WSDL ドキュメント、スキーマドキュメント、およびエンドポイント実装とともに WAR ファイル内にパッケージ化して配備することができます。また、wsimport Ant タスクも用意されています。 +ΥƥեȤϡWSDL ɥȡޥɥȡӥɥݥȼȤȤ WAR ե˥ѥå뤳ȤǤޤޤwsimport Ant ѰդƤޤ .na -\f2Wsimport Ant タスク\fP @ +\f2wsimport Ant \fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsimportant.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/wsimportant.html򻲾ȤƤ .br .LP -.SH "wsimport の起動" +.SH "wsimport εư" .RS 3 .TP 2 o @@ -77,7 +77,7 @@ o .RE .LP -.SH "構文" +.SH "ʸ" .nf \f3 .fl @@ -86,7 +86,7 @@ wsimport [options] <wsdl> \fP .fi .LP -次の表に、\f2wsimport\fP のオプションを示します。 +ɽˡ \f2wsimport\fP Υץ򼨤ޤ .LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 @@ -116,7 +116,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成される出力ファイルを格納する場所を指定します +ϥեǼꤷޤ .br .di .nr a| \n(dn @@ -132,7 +132,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -外部の JAX\-WS または JAXB バインディングファイルを指定します (\f2<file>\fP ごとに \f2\-b\fP が必要となる) + JAX\-WS ޤ JAXB Хǥ󥰥եꤷޤ ( \f2<file>\fP Ȥ \f2\-b\fP ɬפȤʤ) .br .di .nr b| \n(dn @@ -148,7 +148,7 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -このオプションを JAXB スキーマコンパイラに渡します +Υץ JAXB ޥѥϤޤ .br .di .nr c| \n(dn @@ -164,11 +164,11 @@ wsimport [options] <wsdl> .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -外部エンティティー参照を解決するためのカタログファイルを指定します。 TR9401、XCatalog、OASIS XML Catalog の各形式がサポートされています。 +ƥƥȤ褹뤿ΥեꤷޤTR9401XCatalogOASIS XML Catalog γƷݡȤƤޤ .na -\f2カタログ\fP @ +\f2\fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュメントをお読みになり、\f3カタログ\fPのサンプルを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlΥɥȤɤߤˤʤꡢ\f3\fPΥץ򻲾ȤƤ .br .di .nr d| \n(dn @@ -184,7 +184,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ベンダー拡張 (仕様で規定されていない機能) を許可します。拡張を使用すると、アプリケーションの移植性が失われたり、ほかの実装との相互運用が行えなくなる可能性があります +٥ĥ (ͤǵꤵƤʤǽ) ĤޤĥѤȡץꥱΰܿ줿ꡢۤμȤ߱ѤԤʤʤǽޤ .br .di .nr e| \n(dn @@ -200,7 +200,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ヘルプを表示します +إפɽޤ .br .di .nr f| \n(dn @@ -232,7 +232,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/catalog\-support.htmlのドキュ .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -HTTP プロキシサーバーを指定します (デフォルトのポートは 8080) +HTTP ץСꤷޤ (ǥեȤΥݡȤ 8080) .br .di .nr h| \n(dn @@ -248,7 +248,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されたファイルを保持します +줿եݻޤ .br .di .nr i| \n(dn @@ -264,7 +264,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -このコマンド行オプション経由でターゲットパッケージを指定した場合、その指定内容は、パッケージ名に対するすべての WSDL/スキーマバインディングカスタマイズや、 仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます +Υޥɹԥץͳǥåȥѥåꤷ硢λƤϡѥå̾Ф뤹٤Ƥ WSDL/ޥХǥ󥰥ޥ䡢 ͤǵꤵƤǥեȤΥѥå̾르ꥺͥ褵ޤ .br .di .nr j| \n(dn @@ -280,7 +280,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -生成されるソースファイルを格納する場所を指定します +륽եǼꤹ .br .di .nr k| \n(dn @@ -296,7 +296,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -コンパイラが実行している処理に関するメッセージを出力します +ѥ餬¹ԤƤ˴ؤåϤޤ .br .di .nr l| \n(dn @@ -312,7 +312,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -バージョン情報を出力します +СϤޤ .br .di .nr m| \n(dn @@ -344,7 +344,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -\f2@WebServiceClient.wsdlLocation\fP 値 +\f2@WebServiceClient.wsdlLocation\fP .br .di .nr o| \n(dn @@ -360,7 +360,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -指定された JAX\-WS 仕様バージョンに従ってコードを生成します。バージョン 2.0 では、JAX\-WS 2.0 仕様に準拠したコードを生成します。 +ꤵ줿 JAX\-WS ͥС˽äƥɤޤС 2.0 ǤϡJAX\-WS 2.0 ͤ˽򤷤ɤޤ .br .di .nr p| \n(dn @@ -376,7 +376,7 @@ HTTP プロキシサーバーを指定します (デフォルトのポートは .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -wsimport 出力を抑制します +wsimport Ϥޤ .br .di .nr q| \n(dn @@ -387,7 +387,7 @@ wsimport 出力を抑制します .nf .ll \n(34u .nr 80 0 -.nr 38 \w\f3オプション\fP +.nr 38 \w\f3ץ\fP .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f3\-d <directory> \fP .if \n(80<\n(38 .nr 80 \n(38 @@ -422,7 +422,7 @@ wsimport 出力を抑制します .nr 38 \n(n- .if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 -.nr 38 \w\f3説明\fP +.nr 38 \w\f3\fP .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 @@ -483,7 +483,7 @@ wsimport 出力を抑制します .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\f3オプション\fP\h'|\n(41u'\f3説明\fP +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP .ne \n(a|u+\n(.Vu .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) .ta \n(80u \n(81u @@ -766,13 +766,294 @@ wsimport 出力を抑制します .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-72 .LP -\f2\-b\fP オプションを使って、複数の JAX\-WS および JAXB バインディングファイルを指定できます。 これらのファイルを使って、パッケージ名や Bean 名など、さまざまなカスタマイズが可能です。 JAX\-WS および JAXB バインディングファイルの詳細は、 +\-b ץȤäơʣ JAX\-WS JAXB Хǥ󥰥ե \f2Ǥޤ\fP ΥեȤäơѥå̾ Bean ̾ʤɡޤޤʥޥǽǤJAX\-WS JAXB Хǥ󥰥եξܺ٤ϡ .na -\f2カスタマイズマニュアル\fP @ +\f2ޥޥ˥奢\fP @ .fi -https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.htmlを参照してください。 +https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html򻲾ȤƤ .LP -.SH "例" +ɽˡ \f2wsimport\fP ɸ४ץ򼨤ޤ +.LP +.TS +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 81 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +׵ޤϱå˥Хɤʤإå Java ᥽åɤΥѥ᡼˥ޥåפޤ +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://username:password@example.org/stock?wsdl +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +ǥХåϤޤ +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +\f3\-Xno\-addressing\-databinding\fP +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +W3C \f2EndpointReferenceType\fP Java ΥХǥ󥰤ͭˤޤ +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +줿 Java ե򥳥ѥ뤷ޤ +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3ץ\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-XadditionalHeaders\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xauthfile <file>\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xdebug\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xnocompile\fP +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(f- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 199 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3ץ\fP\h'|\n(41u'\f3\fP +.ne \n(a|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-XadditionalHeaders\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(b|u+\n(.Vu +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xauthfile <file>\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xdebug\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xnocompile\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.TE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 + +.LP +.SH "" .nf \f3 .fl @@ -780,6 +1061,6 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.htmlを参照して .fl .fi .LP -Java アーティファクトを生成し、\f2http://stockquote.xyz/quote?wsdl\fP をインポートすることで、それらのアーティファクトをコンパイルします。 +Java ƥեȤ \f2http://stockquote.xyz/quote?wsdl\fP 򥤥ݡȤ뤳ȤǡΥƥեȤ򥳥ѥ뤷ޤ .br diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 b/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 index 83d80e9c21b..7aec40218aa 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 @@ -19,266 +19,277 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "02 Jun 2010" +.TH xjc 1 "14 Apr 2011" .LP .ad c -.SH "名前" -xjc \- XML バインドのための Java(TM) アーキテクチャー +.SH "̾" +xjc \- XML ХɤΤ Java(TM) ƥ㡼 .br -バインディングコンパイラ +Хǥ󥰥ѥ .LP -\f3仕様バージョン:\fP 2.1 +\f3ͥС:\fP 2.1 .br -\f3リファレンス実装 (RI) バージョン:\fP 2.1.3 .ad l +\f3ե󥹼 (RI) С:\fP 2.1.3 .ad l .LP -.SH "xjc の起動" +.SH "xjc εư" .LP .LP -バインディングコンパイラを起動するには、使用するプラットフォームに応じた \f2bin\fP ディレクトリ内の \f2xjc\fP シェルスクリプトを使用します。また、バインディングコンパイラを実行するための Ant タスクも用意されています。 +Хǥ󥰥ѥưˤϡѤץåȥե˱ bin ǥ쥯ȥ \f2xjc\fP 륹ץ \f2\fP ѤޤޤХǥ󥰥ѥ¹Ԥ뤿 Ant ѰդƤޤ .na -\f2xjc を Ant とともに使用する\fP @ +\f2xjc Ant ȤȤ˻Ѥ\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.htmlための手順を参照してください。 -.LP -.RS 3 - +https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.htmlμ򻲾ȤƤ .LP .LP \f2% xjc \-help\fP .LP -.RE -\f3出力\fP -.LP -.RS 3 - +.SS + .LP .nf \f3 .fl -Usage: xjc [\-options ...] <schema_file/URL/dir> ... [\-b <bindinfo>] ... +Usage: xjc [\-options ...] <schema file/URL/dir/jar> ... [\-b <bindinfo>] ... +.fl +If dir is specified, all schema files in it will be compiled. +.fl +If jar is specified, /META\-INF/sun\-jaxb.episode binding file will be compiled. .fl Options: .fl - \-nv : do not perform strict validation of the input schema(s) + \-nv : do not perform strict validation of the input schema(s) .fl - \-extension : allow vendor extensions \- do not strictly follow the + \-extension : allow vendor extensions \- do not strictly follow the Compatibility Rules and App E.2 from the JAXB Spec .fl - Compatibility Rules and App E.2 from the JAXB Spec + \-b <file/dir> : specify external bindings files (each <file> must have its own \-b); if a directory is given, **/*.xjb is searched .fl - \-b <file/dir> : specify external bindings files (each <file> must have its own \-b) + \-d <dir> : generated files will go into this directory .fl - If a directory is given, **/*.xjb is searched + \-p <pkg> : specifies the target package .fl - \-d <dir> : generated files will go into this directory + \-httpproxy <proxy> : set HTTP/HTTPS proxy; format is [user[:password]@]proxyHost:proxyPort .fl - \-p <pkg> : specifies the target package + \-httpproxyfile <f> : works like \-httpproxy but takes the argument in a file to protect password .fl - \-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort + \-classpath <arg> : specify where to find user class files .fl - \-httpproxyfile <file>: set the proxy string (same format as above). + \-catalog <file> : specify catalog files to resolve external entity references; support TR9401, XCatalog, and OASIS XML Catalog format .fl - \-classpath <arg> : specify where to find user class files + \-readOnly : generated files will be in read\-only mode .fl - \-catalog <file> : specify catalog files to resolve external entity references + \-npa : suppress generation of package level annotations (**/package\-info.java) .fl - support TR9401, XCatalog, and OASIS XML Catalog format. + \-no\-header : suppress generation of a file header with timestamp .fl - \-readOnly : generated files will be in read\-only mode + \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features .fl - \-npa : suppress generation of package level annotations (**/package\-info.java) + \-xmlschema : treat input as W3C XML Schema (default) .fl - \-no\-header : suppress generation of a file header with timestamp + \-relaxng : treat input as RELAX NG (experimental,unsupported) .fl - \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features. + \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) .fl - \-xmlschema : treat input as W3C XML Schema (default) + \-dtd : treat input as XML DTD (experimental,unsupported) .fl - \-relaxng : treat input as RELAX NG (experimental,unsupported) + \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) .fl - \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) + \-verbose : be extra verbose .fl - \-dtd : treat input as XML DTD (experimental,unsupported) + \-quiet : suppress compiler output .fl - \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) + \-help : display this help message .fl - \-verbose : be extra verbose + \-version : display version information .fl - \-quiet : suppress compiler output + .fl - \-help : display this help message + .fl - \-version : display version information +Extensions: +.fl + \-Xlocator : enable source location support for generated code +.fl + \-Xsync\-methods : generate accessor methods with the 'synchronized' keyword +.fl + \-mark\-generated : mark the generated code as @javax.annotation.Generated +.fl + \-episode <FILE> : generate the episode file for separate compilation .fl \fP .fi -.RE .LP -.SH "オプション" -.LP - +.SH "ץ" .LP .RS 3 .TP 3 \-nv -デフォルトでは、XJC バインディングコンパイラは、ソーススキーマを処理する前に厳密な検証を実行します。このオプションを使用すると、厳密なスキーマ検証を無効にします。これは、バインディングコンパイラが検証を一切実行しないということではありません。 より厳密でない検証を実行するということです。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡޤ˸̩ʸڤ¹ԤޤΥץѤȡ̩ʥ޸ڤ̵ˤޤϡХǥ󥰥ѥ餬ڤڼ¹ԤʤȤȤǤϤޤ󡣤긷̩Ǥʤڤ¹ԤȤȤǤ .TP 3 \-extension -デフォルトでは、XJC バインディングコンパイラは、JAXB 仕様の「Compatibility」の章で説明されている規則を厳密に強制します。付録 E.2 には、JAXB v1.0 で完全にはサポートされていない一連の W3C XML スキーマ機能が定義されています。 場合によっては、このスイッチで有効になる「\-extension」モードでそれらの機能が使用できるかもしれません。また、デフォルトの厳密なモードでは、仕様に定義されているバインディングカスタマイズのみが使用できます。「\-extension」スイッチを指定すれば、JAXB Vendor Extension を使用できます。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡJAXB ͤΡCompatibilityפξϤƤ뵬§̩˶ޤϿ E.2 ˤϡJAXB v1.0 ǴˤϥݡȤƤʤϢ W3C XML ޵ǽƤޤˤäƤϡΥåͭˤʤ\-extensionץ⡼ɤǤεǽѤǤ뤫⤷ޤ󡣤ޤǥեȤθ̩ʥ⡼ɤǤϡͤƤХǥ󥰥ޥΤߤѤǤޤ\-extensionץåꤹСJAXB Vendor Extension ѤǤޤ .TP 3 \-b <file> -処理する外部バインディングファイルを 1 つまたは複数指定します。(バインディングファイルごとに「\f2\-b\fP」スイッチを指定する必要があります。)外部バインディングファイルの構文は非常に柔軟です。複数のスキーマのカスタマイズが含まれる 1 つのバインディングファイルを使用したり、それらのカスタマイズを複数のバインディングファイルに分割したりできます。 次に例を示します。 -.RS 3 - -.LP -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP +볰Хǥ󥰥ե 1 Ĥޤʣꤷޤ(Хǥ󥰥ե뤴Ȥ \f2\-b\fP åꤹɬפޤ) Хǥ󥰥եιʸ˽ǤʣΥޤΥޥޤޤ 1 ĤΥХǥ󥰥եѤꡢΥޥʣΥХǥ󥰥եʬ䤷Ǥޤ򼨤ޤ \f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP .br -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP -.RE -また、コマンド行にスキーマファイルとバインディングファイルを指定する順番は任意です。 +\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP ޤޥɹԤ˥ޥեȥХǥ󥰥եꤹ֤ǤդǤ .TP 3 \-d <dir> -デフォルトでは、XJC バインディングコンパイラは、Java コンテンツクラスを現在のディレクトリに生成します。このオプションを使用すると、代替出力ディレクトリを指定できます。出力ディレクトリはあらかじめ存在している必要があります。 XJC バインディングコンパイラは、このディレクトリを自動的に作成しません。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡJava ƥĥ饹򸽺ߤΥǥ쥯ȥޤΥץѤȡؽϥǥ쥯ȥǤޤϥǥ쥯ȥϤ餫¸ߤƤɬפޤXJC Хǥ󥰥ѥϡΥǥ쥯ȥưŪ˺ޤ .TP 3 \-p <pkg> -このコマンド行オプション経由でターゲットパッケージを指定した場合、その指定内容は、パッケージ名に対するすべてのバインディングカスタマイズや、仕様で規定されているデフォルトのパッケージ名アルゴリズムよりも優先されます。 +Υޥɹԥץͳǥåȥѥåꤷ硢λƤϡѥå̾Ф뤹٤ƤΥХǥ󥰥ޥ䡢ͤǵꤵƤǥեȤΥѥå̾르ꥺͥ褵ޤ .TP 3 \-httpproxy <proxy> -HTTP/HTTPS プロキシを指定します。形式は [user[:password]@]proxyHost[:proxyPort] です。従来の \f2\-host\fP および \f2\-port\fP は、下位互換性のためにリファレンス実装でもサポートされていますが、推奨されなくなりました。このオプションで指定されたパスワードは、\f2top\fP コマンドを使用するユーザーなど、ほかのユーザーが表示できる引数であることに注意してください。セキュリティーを高めるには、次の \f2\-httpproxyfile\fP を使用してください。 +HTTP/HTTPS ץꤷޤ [user[:password]@]proxyHost[:proxyPort] Ǥ \f2\-host\fP \f2\-port\fP ϡ̸ߴΤ˥ե󥹼Ǥ⥵ݡȤƤޤ侩ʤʤޤΥץǻꤵ줿ѥɤϡ \f2top\fP ޥɤѤ桼ʤɡۤΥ桼ɽǤǤ뤳ȤդƤƥˤϡ \f2\-httpproxyfile\fP ѤƤ .TP 3 \-httpproxyfile <file> -HTTP/HTTPS プロキシをファイル経由で指定します。形式は上記と同じですが、このファイル内に指定されたパスワードをほかのユーザーが表示することはできません。 +HTTP/HTTPS ץեͳǻꤷޤϾ嵭ƱǤΥե˻ꤵ줿ѥɤۤΥ桼ɽ뤳ȤϤǤޤ .TP 3 \-classpath <arg> -\f2<jxb:javaType>\fP および \f2<xjc:superClass>\fP カスタマイズが使用するクライアントアプリケーションのクラスファイルの検索場所を指定します。 +<jxb:javaType> <xjc:superClass> \f2ޥѤ\fP 饤ȥץꥱ \f2饹եθ\fP ꤷޤ .TP 3 \-catalog <file> -外部エンティティー参照を解決するカタログファイルを指定します。TR9401、XCatalog、および OASIS XML Catalog 形式がサポートされます。詳細は、『XML Entity and URI Resolvers』ドキュメントを参照するか、\f2カタログリゾルバ\fPのサンプルアプリケーションを調べてください。 +ƥƥȤ褹륫եꤷޤTR9401XCatalog OASIS XML Catalog ݡȤޤܺ٤ϡXML Entity and URI Resolvers٥ɥȤ򻲾Ȥ뤫 \f2꥾Ф\fP ץ륢ץꥱĴ٤Ƥ .TP 3 \-readOnly -デフォルトでは、XJC バインディングコンパイラは、生成する Java ソースファイルを書き込みから保護しません。このオプションを使用すると、XJC バインディングコンパイラは生成される Java ソースを強制的に読み取り専用にします。 +ǥեȤǤϡXJC Хǥ󥰥ѥϡ Java ե񤭹ߤݸޤ󡣤ΥץѤȡXJC Хǥ󥰥ѥ Java Ūɤ߼Ѥˤޤ .TP 3 \-npa -パッケージレベルの注釈を **/package\-info.java に生成することを抑制します。このスイッチを使用して生成するコードでは、これらの注釈がほかの生成済みクラスに内部化されます。 +ѥå٥ **/package\-info.java 뤳ȤޤΥåѤ륳ɤǤϡ᤬ۤѤߥ饹ޤ .TP 3 \-no\-header -多少のメモとタイムスタンプを含むファイルヘッダーコメントの生成を抑制します。このオプションを使用すると、生成されたコードがわかりにくくなります。 +¿ΥȥॹפޤեإåȤޤΥץѤȡ줿ɤ狼ˤʤޤ .TP 3 \-target 2.0 -なんらかの JAXB 2.1 機能に依存するコードを生成しないようにします。これにより、生成されたコードを JAXB 2.0 ランタイム (JavaSE 6 など) で実行できます。 +ʤ餫 JAXB 2.1 ǽ˰¸륳ɤʤ褦ˤޤˤꡢ줿ɤ JAXB 2.0 󥿥 (JavaSE 6 ʤ) Ǽ¹ԤǤޤ .TP 3 \-xmlschema -入力スキーマを W3C XML スキーマ (デフォルト) と見なします。このスイッチを指定しなくても、入力スキーマは W3C XML スキーマと見なされます。 +ϥޤ W3C XML (ǥե) ȸʤޤΥåꤷʤƤ⡢ϥޤ W3C XML ޤȸʤޤ .TP 3 \-relaxng -入力スキーマを RELAX NG として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ RELAX NG Ȥưޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-relaxng\-compact -入力スキーマを RELAX NG 圧縮構文として処理します (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ RELAX NG ̹ʸȤƽޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-dtd -入力スキーマを XML DTD として扱います (試験的、未サポート)。RELAX NG スキーマのサポートは JAXB Vendor Extension として提供されています。 +ϥޤ XML DTD Ȥưޤ (Ṳ̄ݡ)RELAX NG ޤΥݡȤ JAXB Vendor Extension Ȥ󶡤Ƥޤ .TP 3 \-wsdl -入力を WSDL として扱い、その内部のスキーマをコンパイルします (試験的、未サポート)。 +Ϥ WSDL ȤưΥޤ򥳥ѥ뤷ޤ (Ṳ̄ݡ) .TP 3 \-quiet -進捗情報や警告など、コンパイラの出力を抑制します。 +ĽٹʤɡѥνϤޤ .TP 3 \-verbose -情報メッセージを出力したり特定のエラー発生時にスタックトレースを表示したりするなど、極めて冗長になります。 +åϤΥ顼ȯ˥åȥ졼ɽꤹʤɡˤƾĹˤʤޤ .TP 3 \-help -コンパイラスイッチの概要を表示します。 +ѥ饹åγפɽޤ .TP 3 \-version -コンパイラのバージョン情報を表示します。 +ѥΥСɽޤ .TP 3 <schema file/URL/dir> -コンパイル対象となる 1 つまたは複数のスキーマファイルを指定します。ユーザーがディレクトリを指定した場合、xjc はそのディレクトリを走査し、そこで見つかったすべてのスキーマファイルをコンパイルします。 +ѥоݤȤʤ 1 ĤޤʣΥޥեꤷޤ桼ǥ쥯ȥꤷ硢xjc ϤΥǥ쥯ȥǸĤä٤ƤΥޥե򥳥ѥ뤷ޤ .RE + +.LP .SS -非推奨コマンド行オプションおよび削除されたコマンド行オプションの概要 +ɸΥޥɹԥץ .LP .RS 3 +.TP 3 +\-Xlocator +줿ɤǤϡ󲽤ΤȤ Java Bean 󥹥󥹤˴ޤޤ륽 XML ˴ؤ SAX Locator 󤬸ޤ +.TP 3 +\-Xsync\-methods +줿٤ƤΥ᥽åɥ˥㡼 \f2Ʊ줿\fP ɤޤޤ +.TP 3 +\-mark\-generated +줿ɤ \f2@javax.annotation.Generated\fP դޤ +.TP 3 +\-episode <file> +ѥ뤴Ȥ˻ꤵ줿ԥɥեޤ +.RE +.LP +.SS +侩ޥɹԥץ󤪤Ӻ줿ޥɹԥץ .LP .RS 3 .TP 3 \-host & \-port -これらのオプションは非推奨となり、\f3\-httpproxy\fP オプションで置き換えられました。これらのオプションは、下位互換性を確保する目的で引き続きサポートされますが、ドキュメントには記載されず、将来のリリースで削除される可能性もあります。 +Υץ侩Ȥʤꡢ\f3\-httpproxy\fP ץ֤ޤΥץϡ̸ߴݤŪǰ³ݡȤޤɥȤˤϵܤ줺Υ꡼Ǻǽ⤢ޤ .TP 3 \-use\-runtime -JAXB 2.0 仕様で移植性のあるランタイムが規定されたため、JAXB RI が **/impl/runtime パッケージを生成する必要がなくなりました。このため、このスイッチは不要となり、削除されました。 +JAXB 2.0 ͤǰܿΤ󥿥बꤵ줿ᡢJAXB RI **/impl/runtime ѥåɬפʤʤޤΤᡢΥåפȤʤꡢޤ .TP 3 \-source -\-source 互換性スイッチは、JAXB 2.0 の最初の Early Access 版で導入されました。このスイッチは、JAXB 2.0 の今後のリリースから削除されることになりました。1.0.x コードを生成する必要がある場合には、1.0.x コードベースのインストールを使用してください。 -.TP 3 -\-Xlocator & \-Xsync\-methods -これらのスイッチは現時点では無効化されています。この機能は将来、個別のダウンロードとして提供される予定です。 +\-source ߴåϡJAXB 2.0 κǽ Early Access ǤƳޤΥåϡJAXB 2.0 κΥ꡼뤳Ȥˤʤޤ1.0.x ɤɬפϡ1.0.x ɥ١Υ󥹥ȡѤƤ .RE .LP -.RE .SS -コンパイラの制限 +ѥ .LP .LP -通常は、関連するすべてのスキーマを、同じバインディングコンパイラスイッチを指定して 1 つの単位としてコンパイルするのがもっとも安全です。 +̾ϡϢ뤹٤ƤΥޤƱХǥ󥰥ѥ饹åꤷ 1 Ĥñ̤Ȥƥѥ뤹ΤäȤǤ .LP .LP -xjc を実行するときは、次に示す制限に注意してください。これらの制限のほとんどは、xjc を何度か呼び出して複数のスキーマをコンパイルする場合にのみ適用されます。 +xjc ¹ԤȤϡ˼¤դƤ¤ΤۤȤɤϡxjc ٤ƤӽФʣΥޤ򥳥ѥ뤹ˤΤŬѤޤ .LP .RS 3 .TP 2 o -複数のスキーマを同時にコンパイルする場合は、ターゲットの Java パッケージ名に次の優先順位の規則が適用されることに注意してください。 +ʣΥޤƱ˥ѥ뤹ϡåȤ Java ѥå̾˼̤ͥε§ŬѤ뤳ȤդƤ .RS 3 .TP 3 1. -「\f2\-p\fP」コマンド行オプションがもっとも優先されます。 +\f2\-p\fPץޥɹԥץ󤬤äȤͥ褵ޤ .TP 3 2. -<\f2jaxb:package\fP> のカスタマイズ +<\f2jaxb:package\fP> Υޥ .TP 3 3. -\f2targetNamespace\fP が宣言されている場合は、仕様に定義されている \f2targetNamespace\fP \-> Java パッケージ名のアルゴリズムを適用します。 +\f2targetNamespace\fP Ƥϡ \f2ͤƤ targetNamespace\fP \-> Java ѥå̾Υ르ꥺŬѤޤ .TP 3 4. -\f2targetNamespace\fP が宣言されていない場合は、"generated" という名前のハードコードされたパッケージを使用します。 +\f2targetNamespace\fP ƤʤϡgeneratedפȤ̾Υϡɥɤ줿ѥåѤޤ .RE .TP 2 o -名前空間ごとに複数の <\f2jaxb:schemaBindings\fP> を持つことは不正です。 このため、1 つのターゲット名前空間内の 2 つのスキーマを、異なる Java パッケージにコンパイルすることはできません。 +֤̾Ȥʣ <\f2jaxb:schemaBindings\fP> ĤȤǤΤᡢ1 ĤΥå̾ 2 ĤΥޤۤʤ Java ѥå˥ѥ뤹뤳ȤϤǤޤ .TP 2 o -1 つの Java パッケージにコンパイルされるすべてのスキーマは、XJC バインディングコンパイラに同時に送信する必要があります。 個別にコンパイルすることはできず、予期したとおりに動作しません。 +1 Ĥ Java ѥå˥ѥ뤵뤹٤ƤΥޤϡXJC Хǥ󥰥ѥƱɬפޤ̤˥ѥ뤹뤳ȤϤǤͽȤưޤ .TP 2 o -複数のスキーマファイルにまたがる要素置換グループは、同時にコンパイルする必要があります。 +ʣΥޥեˤޤִ롼פϡƱ˥ѥ뤹ɬפޤ .RE .LP -.SH "関連項目" +.SH "Ϣ" .LP .RS 3 .TP 2 o -コマンド行でのコンバータの実行 (XJC):[ +ޥɹԤǤΥСμ¹ (XJC): [ .na -\f2コマンド行の命令\fP @ +\f2ޥɹԤ̿\fP @ .fi -https://jaxb.dev.java.net/nonav/2.1.3/docs/xjc.html、 +https://jaxb.dev.java.net/nonav/2.1.3/docs/xjc.html .na -\f2xjc を Ant とともに使用する\fP @ +\f2xjc Ant ȤȤ˻Ѥ\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.html] .TP 2 o .na -\f2XML バインドのための JavaTM アーキテクチャー (JAXB)\fP @ +\f2XML ХɤΤ Java ƥ㡼 (JAXB)\fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html .RE From 68d5cd6f233d0215e498fce5cec57f1b68ba2f95 Mon Sep 17 00:00:00 2001 From: Weijun Wang <weijun@openjdk.org> Date: Wed, 20 Apr 2011 18:41:32 +0800 Subject: [PATCH 010/147] 6894072: always refresh keytab Reviewed-by: valeriep --- .../security/auth/module/Krb5LoginModule.java | 131 ++++++---- .../JavaxSecurityAuthKerberosAccessImpl.java | 38 +++ .../security/auth/kerberos/KerberosKey.java | 10 +- .../javax/security/auth/kerberos/KeyTab.java | 230 ++++++++++++++++++ .../misc/JavaxSecurityAuthKerberosAccess.java | 43 ++++ .../share/classes/sun/misc/SharedSecrets.java | 14 ++ .../jgss/krb5/Krb5AcceptCredential.java | 55 ++--- .../sun/security/jgss/krb5/Krb5Util.java | 193 ++++++++++++--- .../sun/security/jgss/krb5/SubjectComber.java | 73 +++--- .../classes/sun/security/krb5/Config.java | 1 - .../sun/security/krb5/EncryptionKey.java | 10 +- .../classes/sun/security/krb5/KrbAsRep.java | 37 +-- .../sun/security/krb5/KrbAsReqBuilder.java | 92 +++---- .../security/krb5/internal/ktab/KeyTab.java | 225 +++++++++-------- .../sun/security/ssl/ServerHandshaker.java | 11 +- .../sun/security/ssl/krb5/Krb5ProxyImpl.java | 6 +- .../security/krb5/internal/tools/Kinit.java | 20 +- .../security/krb5/internal/tools/Klist.java | 20 +- .../security/krb5/internal/tools/Ktab.java | 4 +- jdk/test/sun/security/krb5/auto/Context.java | 38 ++- .../sun/security/krb5/auto/DynamicKeytab.java | 140 +++++++++++ jdk/test/sun/security/krb5/auto/KDC.java | 56 ++++- .../sun/security/krb5/auto/KeyTabCompat.java | 90 +++++++ .../krb5/auto/LoginModuleOptions.java | 4 +- jdk/test/sun/security/krb5/auto/SSL.java | 60 ++++- .../sun/security/krb5/auto/TwoPrinces.java | 102 ++++++++ .../sun/security/krb5/ktab/KeyTabIndex.java | 3 +- 27 files changed, 1334 insertions(+), 372 deletions(-) create mode 100644 jdk/src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java create mode 100644 jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java create mode 100644 jdk/src/share/classes/sun/misc/JavaxSecurityAuthKerberosAccess.java create mode 100644 jdk/test/sun/security/krb5/auto/DynamicKeytab.java create mode 100644 jdk/test/sun/security/krb5/auto/KeyTabCompat.java create mode 100644 jdk/test/sun/security/krb5/auto/TwoPrinces.java diff --git a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java index c9499f1d1a0..5da153d72ea 100644 --- a/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java +++ b/jdk/src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -395,7 +395,13 @@ public class Krb5LoginModule implements LoginModule { private boolean succeeded = false; private boolean commitSucceeded = false; private String username; + + // Encryption keys calculated from password. Assigned when storekey == true + // and useKeyTab == false (or true but not found) private EncryptionKey[] encKeys = null; + + KeyTab ktab = null; + private Credentials cred = null; private PrincipalName principal = null; @@ -663,28 +669,49 @@ public class Krb5LoginModule implements LoginModule { (krb5PrincName.toString(), PrincipalName.KRB_NT_PRINCIPAL); } + + /* + * Before dynamic KeyTab support (6894072), here we check if + * the keytab contains keys for the principal. If no, keytab + * will not be used and password is prompted for. + * + * After 6894072, we normally don't check it, and expect the + * keys can be populated until a real connection is made. The + * check is still done when isInitiator == true, where the keys + * will be used right now. + * + * Probably tricky relations: + * + * useKeyTab is config flag, but when it's true but the ktab + * does not contains keys for principal, we would use password + * and keep the flag unchanged (for reuse?). In this method, + * we use (ktab != null) to check whether keytab is used. + * After this method (and when storeKey == true), we use + * (encKeys == null) to check. + */ if (useKeyTab) { - encKeys = - EncryptionKey.acquireSecretKeys(principal, keyTabName); - - if (debug) { - if (encKeys != null) - System.out.println - ("principal's key obtained from the keytab"); - else - System.out.println - ("Key for the principal " + - principal + - " not available in " + - ((keyTabName == null) ? - "default key tab" : keyTabName)); + ktab = (keyTabName == null) + ? KeyTab.getInstance() + : KeyTab.getInstance(new File(keyTabName)); + if (isInitiator) { + if (Krb5Util.keysFromJavaxKeyTab(ktab, principal).length + == 0) { + ktab = null; + if (debug) { + System.out.println + ("Key for the principal " + + principal + + " not available in " + + ((keyTabName == null) ? + "default key tab" : keyTabName)); + } + } } - } KrbAsReqBuilder builder; - // We can't get the key from the keytab so prompt - if (encKeys == null) { + + if (ktab == null) { promptForPass(getPasswdFromSharedState); builder = new KrbAsReqBuilder(principal, password); if (isInitiator) { @@ -693,9 +720,13 @@ public class Krb5LoginModule implements LoginModule { // updated with PA info cred = builder.action().getCreds(); } - encKeys = builder.getKeys(); + if (storeKey) { + encKeys = builder.getKeys(); + // When encKeys is empty, the login actually fails. + // For compatibility, exception is thrown in commit(). + } } else { - builder = new KrbAsReqBuilder(principal, encKeys); + builder = new KrbAsReqBuilder(principal, ktab); if (isInitiator) { cred = builder.action().getCreds(); } @@ -705,10 +736,15 @@ public class Krb5LoginModule implements LoginModule { if (debug) { System.out.println("principal is " + principal); HexDumpEncoder hd = new HexDumpEncoder(); - for (int i = 0; i < encKeys.length; i++) { - System.out.println("EncryptionKey: keyType=" + - encKeys[i].getEType() + " keyBytes (hex dump)=" + - hd.encodeBuffer(encKeys[i].getBytes())); + if (ktab != null) { + System.out.println("Will use keytab"); + } else if (storeKey) { + for (int i = 0; i < encKeys.length; i++) { + System.out.println("EncryptionKey: keyType=" + + encKeys[i].getEType() + + " keyBytes (hex dump)=" + + hd.encodeBuffer(encKeys[i].getBytes())); + } } } @@ -989,8 +1025,8 @@ public class Krb5LoginModule implements LoginModule { kerbTicket = Krb5Util.credsToTicket(cred); } - if (storeKey) { - if (encKeys == null || encKeys.length <= 0) { + if (storeKey && encKeys != null) { + if (encKeys.length == 0) { succeeded = false; throw new LoginException("Null Server Key "); } @@ -1006,10 +1042,11 @@ public class Krb5LoginModule implements LoginModule { } } - // Let us add the kerbClientPrinc,kerbTicket and kerbKey (if + // Let us add the kerbClientPrinc,kerbTicket and KeyTab/KerbKey (if // storeKey is true) - if (!princSet.contains(kerbClientPrinc)) + if (!princSet.contains(kerbClientPrinc)) { princSet.add(kerbClientPrinc); + } // add the TGT if (kerbTicket != null) { @@ -1018,19 +1055,29 @@ public class Krb5LoginModule implements LoginModule { } if (storeKey) { - for (int i = 0; i < kerbKeys.length; i++) { - if (!privCredSet.contains(kerbKeys[i])) { - privCredSet.add(kerbKeys[i]); + if (encKeys == null) { + if (!privCredSet.contains(ktab)) { + privCredSet.add(ktab); + // Compatibility; also add keys to privCredSet + for (KerberosKey key: ktab.getKeys(kerbClientPrinc)) { + privCredSet.add(new Krb5Util.KeysFromKeyTab(key)); + } } - encKeys[i].destroy(); - encKeys[i] = null; - if (debug) { - System.out.println("Added server's key" - + kerbKeys[i]); - System.out.println("\t\t[Krb5LoginModule] " + - "added Krb5Principal " + - kerbClientPrinc.toString() - + " to Subject"); + } else { + for (int i = 0; i < kerbKeys.length; i ++) { + if (!privCredSet.contains(kerbKeys[i])) { + privCredSet.add(kerbKeys[i]); + } + encKeys[i].destroy(); + encKeys[i] = null; + if (debug) { + System.out.println("Added server's key" + + kerbKeys[i]); + System.out.println("\t\t[Krb5LoginModule] " + + "added Krb5Principal " + + kerbClientPrinc.toString() + + " to Subject"); + } } } } @@ -1106,7 +1153,8 @@ public class Krb5LoginModule implements LoginModule { while (it.hasNext()) { Object o = it.next(); if (o instanceof KerberosTicket || - o instanceof KerberosKey) { + o instanceof KerberosKey || + o instanceof KeyTab) { it.remove(); } } @@ -1161,6 +1209,7 @@ public class Krb5LoginModule implements LoginModule { } else { // remove temp results for the next try encKeys = null; + ktab = null; principal = null; } username = null; diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java b/jdk/src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java new file mode 100644 index 00000000000..56ed40eed3e --- /dev/null +++ b/jdk/src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.security.auth.kerberos; + +import sun.misc.JavaxSecurityAuthKerberosAccess; +import sun.security.krb5.EncryptionKey; +import sun.security.krb5.PrincipalName; + +class JavaxSecurityAuthKerberosAccessImpl + implements JavaxSecurityAuthKerberosAccess { + public EncryptionKey[] keyTabGetEncryptionKeys( + KeyTab ktab, PrincipalName principal) { + return ktab.getEncryptionKeys(principal); + } +} diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java b/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java index 7eb7118a5bc..ba530f9583c 100644 --- a/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java +++ b/jdk/src/share/classes/javax/security/auth/kerberos/KerberosKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -35,14 +35,16 @@ import javax.security.auth.DestroyFailedException; * principal.<p> * * All Kerberos JAAS login modules that obtain a principal's password and - * generate the secret key from it should use this class. Where available, - * the login module might even read this secret key directly from a - * Kerberos "keytab". Sometimes, such as when authenticating a server in + * generate the secret key from it should use this class. + * Sometimes, such as when authenticating a server in * the absence of user-to-user authentication, the login module will store * an instance of this class in the private credential set of a * {@link javax.security.auth.Subject Subject} during the commit phase of the * authentication process.<p> * + * A Kerberos service using a keytab to read secret keys should use + * the {@link KeyTab} class, where latest keys can be read when needed.<p> + * * It might be necessary for the application to be granted a * {@link javax.security.auth.PrivateCredentialPermission * PrivateCredentialPermission} if it needs to access the KerberosKey diff --git a/jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java b/jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java new file mode 100644 index 00000000000..c2f8dd79478 --- /dev/null +++ b/jdk/src/share/classes/javax/security/auth/kerberos/KeyTab.java @@ -0,0 +1,230 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package javax.security.auth.kerberos; + +import java.io.File; +import java.util.Objects; +import sun.misc.SharedSecrets; +import sun.security.krb5.EncryptionKey; +import sun.security.krb5.PrincipalName; +import sun.security.krb5.RealmException; + +/** + * This class encapsulates a keytab file. + * <p> + * A Kerberos JAAS login module that obtains long term secret keys from a + * keytab file should use this class. The login module will store + * an instance of this class in the private credential set of a + * {@link javax.security.auth.Subject Subject} during the commit phase of the + * authentication process. + * <p> + * It might be necessary for the application to be granted a + * {@link javax.security.auth.PrivateCredentialPermission + * PrivateCredentialPermission} if it needs to access the KeyTab + * instance from a Subject. This permission is not needed when the + * application depends on the default JGSS Kerberos mechanism to access the + * KeyTab. In that case, however, the application will need an appropriate + * {@link javax.security.auth.kerberos.ServicePermission ServicePermission}. + * <p> + * The keytab file format is described at + * <a href="http://www.ioplex.com/utilities/keytab.txt"> + * http://www.ioplex.com/utilities/keytab.txt</a>. + * + * @since 1.7 + */ +public final class KeyTab { + + /* + * Impl notes: + * + * This class is only a name, a permanent link to the keytab source + * (can be missing). Itself has no content. In order to read content, + * take a snapshot and read from it. + * + * The snapshot is of type sun.security.krb5.internal.ktab.KeyTab, which + * contains the content of the keytab file when the snapshot is taken. + * Itself has no refresh function and mostly an immutable class (except + * for the create/add/save methods only used by the ktab command). + */ + + // Source, null if using the default one. Note that the default name + // is maintained in snapshot, this field is never "resolved". + private final File file; + + // Set up JavaxSecurityAuthKerberosAccess in SharedSecrets + static { + SharedSecrets.setJavaxSecurityAuthKerberosAccess( + new JavaxSecurityAuthKerberosAccessImpl()); + } + + private KeyTab(File file) { + this.file = file; + } + + /** + * Returns a {@code KeyTab} instance from a {@code File} object. + * <p> + * The result of this method is never null. This method only associates + * the returned {@code KeyTab} object with the file and does not read it. + * @param file the keytab {@code File} object, must not be null + * @return the keytab instance + * @throws NullPointerException if the {@code file} argument is null + */ + public static KeyTab getInstance(File file) { + if (file == null) { + throw new NullPointerException("file must be non null"); + } + return new KeyTab(file); + } + + /** + * Returns the default {@code KeyTab} instance. + * <p> + * The result of this method is never null. This method only associates + * the returned {@code KeyTab} object with the default keytab file and + * does not read it. + * @return the default keytab instance. + */ + public static KeyTab getInstance() { + return new KeyTab(null); + } + + //Takes a snapshot of the keytab content + private sun.security.krb5.internal.ktab.KeyTab takeSnapshot() { + return sun.security.krb5.internal.ktab.KeyTab.getInstance(file); + } + + /** + * Returns fresh keys for the given Kerberos principal. + * <p> + * Implementation of this method should make sure the returned keys match + * the latest content of the keytab file. The result is a newly created + * copy that can be modified by the caller without modifying the keytab + * object. The caller should {@link KerberosKey#destroy() destroy} the + * result keys after they are used. + * <p> + * Please note that the keytab file can be created after the + * {@code KeyTab} object is instantiated and its content may change over + * time. Therefore, an application should call this method only when it + * needs to use the keys. Any previous result from an earlier invocation + * could potentially be expired. + * <p> + * If there is any error (say, I/O error or format error) + * during the reading process of the KeyTab file, a saved result should be + * returned. If there is no saved result (say, this is the first time this + * method is called, or, all previous read attempts failed), an empty array + * should be returned. This can make sure the result is not drastically + * changed during the (probably slow) update of the keytab file. + * <p> + * Each time this method is called and the reading of the file succeeds + * with no exception (say, I/O error or file format error), + * the result should be saved for {@code principal}. The implementation can + * also save keys for other principals having keys in the same keytab object + * if convenient. + * <p> + * Any unsupported key read from the keytab is ignored and not included + * in the result. + * + * @param principal the Kerberos principal, must not be null. + * @return the keys (never null, may be empty) + * @throws NullPointerException if the {@code principal} + * argument is null + * @throws SecurityException if a security manager exists and the read + * access to the keytab file is not permitted + */ + public KerberosKey[] getKeys(KerberosPrincipal principal) { + try { + EncryptionKey[] keys = takeSnapshot().readServiceKeys( + new PrincipalName(principal.getName())); + KerberosKey[] kks = new KerberosKey[keys.length]; + for (int i=0; i<kks.length; i++) { + Integer tmp = keys[i].getKeyVersionNumber(); + kks[i] = new KerberosKey( + principal, + keys[i].getBytes(), + keys[i].getEType(), + tmp == null ? 0 : tmp.intValue()); + keys[i].destroy(); + } + return kks; + } catch (RealmException re) { + return new KerberosKey[0]; + } + } + + EncryptionKey[] getEncryptionKeys(PrincipalName principal) { + return takeSnapshot().readServiceKeys(principal); + } + + /** + * Checks if the keytab file exists. Implementation of this method + * should make sure that the result matches the latest status of the + * keytab file. + * <p> + * The caller can use the result to determine if it should fallback to + * another mechanism to read the keys. + * @return true if the keytab file exists; false otherwise. + * @throws SecurityException if a security manager exists and the read + * access to the keytab file is not permitted + */ + public boolean exists() { + return !takeSnapshot().isMissing(); + } + + public String toString() { + return file == null ? "Default keytab" : file.toString(); + } + + /** + * Returns a hashcode for this KeyTab. + * + * @return a hashCode() for the <code>KeyTab</code> + */ + public int hashCode() { + return Objects.hash(file); + } + + /** + * Compares the specified Object with this KeyTab for equality. + * Returns true if the given object is also a + * <code>KeyTab</code> and the two + * <code>KeyTab</code> instances are equivalent. + * + * @param other the Object to compare to + * @return true if the specified object is equal to this KeyTab + */ + public boolean equals(Object other) { + if (other == this) + return true; + + if (! (other instanceof KeyTab)) { + return false; + } + + KeyTab otherKtab = (KeyTab) other; + return Objects.equals(otherKtab.file, file); + } +} diff --git a/jdk/src/share/classes/sun/misc/JavaxSecurityAuthKerberosAccess.java b/jdk/src/share/classes/sun/misc/JavaxSecurityAuthKerberosAccess.java new file mode 100644 index 00000000000..9c8f9f2d3d2 --- /dev/null +++ b/jdk/src/share/classes/sun/misc/JavaxSecurityAuthKerberosAccess.java @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package sun.misc; + +import javax.security.auth.kerberos.KeyTab; +import sun.security.krb5.EncryptionKey; +import sun.security.krb5.PrincipalName; + +/** + * An unsafe tunnel to get non-public access to classes in the + * javax.security.auth.kerberos package. + */ +public interface JavaxSecurityAuthKerberosAccess { + /** + * Returns keys for a principal in a keytab. + * @return the keys, never null, can be empty. + */ + public EncryptionKey[] keyTabGetEncryptionKeys( + KeyTab ktab, PrincipalName principal); +} diff --git a/jdk/src/share/classes/sun/misc/SharedSecrets.java b/jdk/src/share/classes/sun/misc/SharedSecrets.java index 0bd39b4a5d4..969da9a744f 100644 --- a/jdk/src/share/classes/sun/misc/SharedSecrets.java +++ b/jdk/src/share/classes/sun/misc/SharedSecrets.java @@ -29,6 +29,7 @@ import java.util.jar.JarFile; import java.io.Console; import java.io.FileDescriptor; import java.security.ProtectionDomain; +import javax.security.auth.kerberos.KeyTab; import java.security.AccessController; @@ -51,6 +52,7 @@ public class SharedSecrets { private static JavaIOFileDescriptorAccess javaIOFileDescriptorAccess; private static JavaSecurityProtectionDomainAccess javaSecurityProtectionDomainAccess; private static JavaSecurityAccess javaSecurityAccess; + private static JavaxSecurityAuthKerberosAccess javaxSecurityAuthKerberosAccess; public static JavaUtilJarAccess javaUtilJarAccess() { if (javaUtilJarAccess == null) { @@ -139,4 +141,16 @@ public class SharedSecrets { } return javaSecurityAccess; } + + public static void setJavaxSecurityAuthKerberosAccess + (JavaxSecurityAuthKerberosAccess jsaka) { + javaxSecurityAuthKerberosAccess = jsaka; + } + + public static JavaxSecurityAuthKerberosAccess + getJavaxSecurityAuthKerberosAccess() { + if (javaxSecurityAuthKerberosAccess == null) + unsafe.ensureClassInitialized(KeyTab.class); + return javaxSecurityAuthKerberosAccess; + } } diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java index 7a7156d9b1c..1df500bc524 100644 --- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java +++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5AcceptCredential.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -29,7 +29,6 @@ import org.ietf.jgss.*; import sun.security.jgss.GSSCaller; import sun.security.jgss.spi.*; import sun.security.krb5.*; -import javax.security.auth.kerberos.*; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; import java.security.AccessController; @@ -43,40 +42,23 @@ import javax.security.auth.DestroyFailedException; * @since 1.4 */ public class Krb5AcceptCredential - extends KerberosKey implements Krb5CredElement { private static final long serialVersionUID = 7714332137352567952L; private Krb5NameElement name; - /** - * We cache an EncryptionKey representation of this key because many - * Krb5 operation require a key in that form. At some point we might do - * away with EncryptionKey altogether and use the base class - * KerberosKey everywhere. - */ - private EncryptionKey[] krb5EncryptionKeys; + private Krb5Util.ServiceCreds screds; - private Krb5AcceptCredential(Krb5NameElement name, KerberosKey[] keys) { + private Krb5AcceptCredential(Krb5NameElement name, Krb5Util.ServiceCreds creds) { /* * Initialize this instance with the data from the acquired * KerberosKey. This class needs to be a KerberosKey too * hence we can't just store a reference. */ - super(keys[0].getPrincipal(), - keys[0].getEncoded(), - keys[0].getKeyType(), - keys[0].getVersionNumber()); this.name = name; - // Cache this for later use by the sun.security.krb5 package. - krb5EncryptionKeys = new EncryptionKey[keys.length]; - for (int i = 0; i < keys.length; i++) { - krb5EncryptionKeys[i] = new EncryptionKey(keys[i].getEncoded(), - keys[i].getKeyType(), - new Integer(keys[i].getVersionNumber())); - } + this.screds = creds; } static Krb5AcceptCredential getInstance(final GSSCaller caller, Krb5NameElement name) @@ -86,12 +68,12 @@ public class Krb5AcceptCredential name.getKrb5PrincipalName().getName()); final AccessControlContext acc = AccessController.getContext(); - KerberosKey[] keys; + Krb5Util.ServiceCreds creds = null; try { - keys = AccessController.doPrivileged( - new PrivilegedExceptionAction<KerberosKey[]>() { - public KerberosKey[] run() throws Exception { - return Krb5Util.getKeys( + creds = AccessController.doPrivileged( + new PrivilegedExceptionAction<Krb5Util.ServiceCreds>() { + public Krb5Util.ServiceCreds run() throws Exception { + return Krb5Util.getServiceCreds( caller == GSSCaller.CALLER_UNKNOWN ? GSSCaller.CALLER_ACCEPT: caller, serverPrinc, acc); }}); @@ -103,17 +85,17 @@ public class Krb5AcceptCredential throw ge; } - if (keys == null || keys.length == 0) + if (creds == null) throw new GSSException(GSSException.NO_CRED, -1, - "Failed to find any Kerberos Key"); + "Failed to find any Kerberos credentails"); if (name == null) { - String fullName = keys[0].getPrincipal().getName(); + String fullName = creds.getName(); name = Krb5NameElement.getInstance(fullName, Krb5MechFactory.NT_GSS_KRB5_PRINCIPAL); } - return new Krb5AcceptCredential(name, keys); + return new Krb5AcceptCredential(name, creds); } /** @@ -171,7 +153,7 @@ public class Krb5AcceptCredential } EncryptionKey[] getKrb5EncryptionKeys() { - return krb5EncryptionKeys; + return screds.getEKeys(); } /** @@ -193,13 +175,6 @@ public class Krb5AcceptCredential * destroy in the base class. */ public void destroy() throws DestroyFailedException { - if (krb5EncryptionKeys != null) { - for (int i = 0; i < krb5EncryptionKeys.length; i++) { - krb5EncryptionKeys[i].destroy(); - } - krb5EncryptionKeys = null; - } - - super.destroy(); + screds.destroy(); } } diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java index d5b172f9249..22552a71c3f 100644 --- a/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java +++ b/jdk/src/share/classes/sun/security/jgss/krb5/Krb5Util.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ package sun.security.jgss.krb5; import javax.security.auth.kerberos.KerberosTicket; import javax.security.auth.kerberos.KerberosKey; import javax.security.auth.kerberos.KerberosPrincipal; +import javax.security.auth.kerberos.KeyTab; import javax.security.auth.Subject; import javax.security.auth.login.LoginException; import java.security.AccessControlContext; @@ -38,7 +39,13 @@ import sun.security.krb5.Credentials; import sun.security.krb5.EncryptionKey; import sun.security.krb5.KrbException; import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Objects; +import java.util.Set; +import sun.misc.SharedSecrets; +import sun.security.krb5.PrincipalName; /** * Utilities for obtaining and converting Kerberos tickets. * @@ -75,7 +82,7 @@ public class Krb5Util { // 1. Try to find service ticket in acc subject Subject accSubj = Subject.getSubject(acc); - KerberosTicket ticket = (KerberosTicket) SubjectComber.find(accSubj, + KerberosTicket ticket = SubjectComber.find(accSubj, serverPrincipal, clientPrincipal, KerberosTicket.class); if (ticket != null) { @@ -87,7 +94,7 @@ public class Krb5Util { // 2. Try to get ticket from login try { loginSubj = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID); - ticket = (KerberosTicket) SubjectComber.find(loginSubj, + ticket = SubjectComber.find(loginSubj, serverPrincipal, clientPrincipal, KerberosTicket.class); if (ticket != null) { return ticket; // found it @@ -102,13 +109,13 @@ public class Krb5Util { // Try to get TGT to acquire service ticket // 3. Try to get TGT from acc subject - KerberosTicket tgt = (KerberosTicket) SubjectComber.find(accSubj, + KerberosTicket tgt = SubjectComber.find(accSubj, tgsPrincipal, clientPrincipal, KerberosTicket.class); boolean fromAcc; if (tgt == null && loginSubj != null) { // 4. Try to get TGT from login subject - tgt = (KerberosTicket) SubjectComber.find(loginSubj, + tgt = SubjectComber.find(loginSubj, tgsPrincipal, clientPrincipal, KerberosTicket.class); fromAcc = false; } else { @@ -145,14 +152,14 @@ public class Krb5Util { // Try to get ticket from acc's Subject Subject accSubj = Subject.getSubject(acc); - KerberosTicket ticket = (KerberosTicket) + KerberosTicket ticket = SubjectComber.find(accSubj, serverPrincipal, clientPrincipal, KerberosTicket.class); // Try to get ticket from Subject obtained from GSSUtil if (ticket == null && !GSSUtil.useSubjectCredsOnly(caller)) { Subject subject = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID); - ticket = (KerberosTicket) SubjectComber.find(subject, + ticket = SubjectComber.find(subject, serverPrincipal, clientPrincipal, KerberosTicket.class); } return ticket; @@ -182,37 +189,152 @@ public class Krb5Util { return subject; } + // A special KerberosKey, used as keys read from a KeyTab object. + // Each time new keys are read from KeyTab objects in the private + // credentials set, old ones are removed and new ones added. + public static class KeysFromKeyTab extends KerberosKey { + public KeysFromKeyTab(KerberosKey key) { + super(key.getPrincipal(), key.getEncoded(), + key.getKeyType(), key.getVersionNumber()); + } + } + /** - * Retrieves the keys for the specified server principal from - * the Subject in the specified AccessControlContext. - * If the ticket can not be found in the Subject, and if - * useSubjectCredsOnly is false, then obtain keys from - * a LoginContext. + * Credentials of a service, the private secret to authenticate its + * identity, which can be: + * 1. Some KerberosKeys (generated from password) + * 2. A KeyTab (for a typical service) + * 3. A TGT (for a user2user service. Not supported yet) * - * NOTE: This method is used by JSSE Kerberos Cipher Suites + * Note that some creds can coexist. For example, a user2user service + * can use its keytab (or keys) if the client can successfully obtain a + * normal service ticket, otherwise, it can uses the TGT (actually, the + * session key of the TGT) if the client can only acquire a service ticket + * of ENC-TKT-IN-SKEY style. */ - public static KerberosKey[] getKeys(GSSCaller caller, + public static class ServiceCreds { + private KerberosPrincipal kp; + private List<KeyTab> ktabs; + private List<KerberosKey> kk; + private Subject subj; + //private KerberosTicket tgt; // user2user, not supported yet + + private static ServiceCreds getInstance( + Subject subj, String serverPrincipal) { + + ServiceCreds sc = new ServiceCreds(); + sc.subj = subj; + + for (KerberosPrincipal p: subj.getPrincipals(KerberosPrincipal.class)) { + if (serverPrincipal == null || + p.getName().equals(serverPrincipal)) { + sc.kp = p; + serverPrincipal = p.getName(); + break; + } + } + if (sc.kp == null) { + // Compatibility with old behavior: even when there is no + // KerberosPrincipal, we can find one from KerberosKeys + List<KerberosKey> keys = SubjectComber.findMany( + subj, null, null, KerberosKey.class); + if (!keys.isEmpty()) { + sc.kp = keys.get(0).getPrincipal(); + serverPrincipal = sc.kp.getName(); + if (DEBUG) { + System.out.println(">>> ServiceCreds: no kp?" + + " find one from kk: " + serverPrincipal); + } + } else { + return null; + } + } + sc.ktabs = SubjectComber.findMany( + subj, null, null, KeyTab.class); + sc.kk = SubjectComber.findMany( + subj, serverPrincipal, null, KerberosKey.class); + if (sc.ktabs.isEmpty() && sc.kk.isEmpty()) { + return null; + } + return sc; + } + + public String getName() { + return kp.getName(); + } + + public KerberosKey[] getKKeys() { + if (ktabs.isEmpty()) { + return kk.toArray(new KerberosKey[kk.size()]); + } else { + List<KerberosKey> keys = new ArrayList<>(); + for (KeyTab ktab: ktabs) { + for (KerberosKey k: ktab.getKeys(kp)) { + keys.add(k); + } + } + // Compatibility: also add keys to privCredSet. Remove old + // ones first, only remove those from keytab. + if (!subj.isReadOnly()) { + Set<Object> pcs = subj.getPrivateCredentials(); + synchronized (pcs) { + Iterator<Object> iterator = pcs.iterator(); + while (iterator.hasNext()) { + Object obj = iterator.next(); + if (obj instanceof KeysFromKeyTab) { + KerberosKey key = (KerberosKey)obj; + if (Objects.equals(key.getPrincipal(), kp)) { + iterator.remove(); + } + } + } + } + for (KerberosKey key: keys) { + subj.getPrivateCredentials().add(new KeysFromKeyTab(key)); + } + } + return keys.toArray(new KerberosKey[keys.size()]); + } + } + + public EncryptionKey[] getEKeys() { + KerberosKey[] kkeys = getKKeys(); + EncryptionKey[] ekeys = new EncryptionKey[kkeys.length]; + for (int i=0; i<ekeys.length; i++) { + ekeys[i] = new EncryptionKey( + kkeys[i].getEncoded(), kkeys[i].getKeyType(), + new Integer(kkeys[i].getVersionNumber())); + } + return ekeys; + } + + public void destroy() { + kp = null; + ktabs = null; + kk = null; + } + } + /** + * Retrieves the ServiceCreds for the specified server principal from + * the Subject in the specified AccessControlContext. If not found, and if + * useSubjectCredsOnly is false, then obtain from a LoginContext. + * + * NOTE: This method is also used by JSSE Kerberos Cipher Suites + */ + public static ServiceCreds getServiceCreds(GSSCaller caller, String serverPrincipal, AccessControlContext acc) throws LoginException { Subject accSubj = Subject.getSubject(acc); - List<KerberosKey> kkeys = (List<KerberosKey>)SubjectComber.findMany( - accSubj, serverPrincipal, null, KerberosKey.class); - - if (kkeys == null && !GSSUtil.useSubjectCredsOnly(caller)) { + ServiceCreds sc = null; + if (accSubj != null) { + sc = ServiceCreds.getInstance(accSubj, serverPrincipal); + } + if (sc == null && !GSSUtil.useSubjectCredsOnly(caller)) { Subject subject = GSSUtil.login(caller, GSSUtil.GSS_KRB5_MECH_OID); - kkeys = (List<KerberosKey>) SubjectComber.findMany(subject, - serverPrincipal, null, KerberosKey.class); - } - - int len; - if (kkeys != null && (len = kkeys.size()) > 0) { - KerberosKey[] keys = new KerberosKey[len]; - kkeys.toArray(keys); - return keys; - } else { - return null; + sc = ServiceCreds.getInstance(subject, serverPrincipal); } + return sc; } public static KerberosTicket credsToTicket(Credentials serviceCreds) { @@ -247,4 +369,17 @@ public class Krb5Util { kerbTicket.getRenewTill(), kerbTicket.getClientAddresses()); } + + /** + * A helper method to get EncryptionKeys from a javax..KeyTab + * @param ktab the javax..KeyTab class + * @param cname the PrincipalName + * @return the EKeys, never null, might be empty + */ + public static EncryptionKey[] keysFromJavaxKeyTab( + KeyTab ktab, PrincipalName cname) { + return SharedSecrets.getJavaxSecurityAuthKerberosAccess(). + keyTabGetEncryptionKeys(ktab, cname); + } + } diff --git a/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java b/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java index e33867dedc8..c7269cb874f 100644 --- a/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java +++ b/jdk/src/share/classes/sun/security/jgss/krb5/SubjectComber.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2002, 2011, 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 @@ -33,10 +33,11 @@ import java.util.Iterator; import java.util.ArrayList; import java.util.List; import java.util.Set; +import javax.security.auth.kerberos.KeyTab; /** - * This utility looks through the current Subject and retrieves a ticket or key - * for the desired client/server principals. + * This utility looks through the current Subject and retrieves private + * credentials for the desired client/server principals. * * @author Ram Marti * @since 1.4.2 @@ -52,58 +53,70 @@ class SubjectComber { private SubjectComber() { // Cannot create one of these } - static Object find(Subject subject, String serverPrincipal, - String clientPrincipal, Class credClass) { + static <T> T find(Subject subject, String serverPrincipal, + String clientPrincipal, Class<T> credClass) { - return findAux(subject, serverPrincipal, clientPrincipal, credClass, + return (T)findAux(subject, serverPrincipal, clientPrincipal, credClass, true); } - static Object findMany(Subject subject, String serverPrincipal, - String clientPrincipal, Class credClass) { + static <T> List<T> findMany(Subject subject, String serverPrincipal, + String clientPrincipal, Class<T> credClass) { - return findAux(subject, serverPrincipal, clientPrincipal, credClass, + return (List<T>)findAux(subject, serverPrincipal, clientPrincipal, credClass, false); } /** - * Find the ticket or key for the specified client/server principals + * Find private credentials for the specified client/server principals * in the subject. Returns null if the subject is null. * - * @return the ticket or key + * @return the private credentials */ - private static Object findAux(Subject subject, String serverPrincipal, - String clientPrincipal, Class credClass, boolean oneOnly) { + private static <T> Object findAux(Subject subject, String serverPrincipal, + String clientPrincipal, Class<T> credClass, boolean oneOnly) { if (subject == null) { return null; } else { - List<Object> answer = (oneOnly ? null : new ArrayList<Object>()); + List<T> answer = (oneOnly ? null : new ArrayList<T>()); - if (credClass == KerberosKey.class) { - // We are looking for a KerberosKey credentials for the - // serverPrincipal - Iterator<KerberosKey> iterator = - subject.getPrivateCredentials(KerberosKey.class).iterator(); + if (credClass == KeyTab.class) { // Principal un-related + // We are looking for credentials unrelated to serverPrincipal + Iterator<T> iterator = + subject.getPrivateCredentials(credClass).iterator(); while (iterator.hasNext()) { - KerberosKey key = iterator.next(); - if (serverPrincipal == null || - serverPrincipal.equals(key.getPrincipal().getName())) { + T t = iterator.next(); + if (DEBUG) { + System.out.println("Found " + credClass.getSimpleName()); + } + if (oneOnly) { + return t; + } else { + answer.add(t); + } + } + } else if (credClass == KerberosKey.class) { + // We are looking for credentials for the serverPrincipal + Iterator<T> iterator = + subject.getPrivateCredentials(credClass).iterator(); + while (iterator.hasNext()) { + T t = iterator.next(); + String name = ((KerberosKey)t).getPrincipal().getName(); + if (serverPrincipal == null || serverPrincipal.equals(name)) { if (DEBUG) { - System.out.println("Found key for " - + key.getPrincipal() + "(" + - key.getKeyType() + ")"); + System.out.println("Found " + + credClass.getSimpleName() + " for " + name); } if (oneOnly) { - return key; + return t; } else { if (serverPrincipal == null) { // Record name so that keys returned will all // belong to the same principal - serverPrincipal = - key.getPrincipal().getName(); + serverPrincipal = name; } - answer.add(key); + answer.add(t); } } } @@ -167,7 +180,7 @@ class SubjectComber { serverPrincipal = ticket.getServer().getName(); } - answer.add(ticket); + answer.add((T)ticket); } } } diff --git a/jdk/src/share/classes/sun/security/krb5/Config.java b/jdk/src/share/classes/sun/security/krb5/Config.java index 01d97eaf599..2ec4e12bd71 100644 --- a/jdk/src/share/classes/sun/security/krb5/Config.java +++ b/jdk/src/share/classes/sun/security/krb5/Config.java @@ -110,7 +110,6 @@ public class Config { public static synchronized void refresh() throws KrbException { singleton = new Config(); - KeyTab.refresh(); KdcComm.initStatic(); } diff --git a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java index 8ce51c0c659..1de032945ff 100644 --- a/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java +++ b/jdk/src/share/classes/sun/security/krb5/EncryptionKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -138,8 +138,7 @@ public class EncryptionKey * @returns an array of secret keys or null if none were found. */ public static EncryptionKey[] acquireSecretKeys(PrincipalName princ, - String keytab) - throws KrbException, IOException { + String keytab) { if (princ == null) throw new IllegalArgumentException( @@ -148,11 +147,6 @@ public class EncryptionKey // KeyTab getInstance(keytab) will call KeyTab.getInstance() // if keytab is null KeyTab ktab = KeyTab.getInstance(keytab); - - if (ktab == null) { - return null; - } - return ktab.readServiceKeys(princ); } diff --git a/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java b/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java index 16c7d87895f..29a7a5b4ccd 100644 --- a/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java +++ b/jdk/src/share/classes/sun/security/krb5/KrbAsRep.java @@ -37,6 +37,8 @@ import sun.security.krb5.internal.crypto.EType; import sun.security.util.*; import java.io.IOException; import java.util.Objects; +import javax.security.auth.kerberos.KeyTab; +import sun.security.jgss.krb5.Krb5Util; /** * This class encapsulates a AS-REP message that the KDC sends to the @@ -90,29 +92,32 @@ class KrbAsRep extends KrbKdcRep { } /** - * Called by KrbAsReqBuilder to resolve a AS-REP message using keys. - * @param keys user provided keys, not null + * Called by KrbAsReqBuilder to resolve a AS-REP message using a keytab. + * @param ktab the keytab, not null * @param asReq the original AS-REQ sent, used to validate AS-REP + * @param cname the user principal name, used to locate keys in ktab */ - void decryptUsingKeys(EncryptionKey[] keys, KrbAsReq asReq) + void decryptUsingKeyTab(KeyTab ktab, KrbAsReq asReq, PrincipalName cname) throws KrbException, Asn1Exception, IOException { EncryptionKey dkey = null; int encPartKeyType = rep.encPart.getEType(); Integer encPartKvno = rep.encPart.kvno; - try { - dkey = EncryptionKey.findKey(encPartKeyType, encPartKvno, keys); - } catch (KrbException ke) { - if (ke.returnCode() == Krb5.KRB_AP_ERR_BADKEYVER) { - // Fallback to no kvno. In some cases, keytab is generated - // not by sysadmin but Java's ktab command - dkey = EncryptionKey.findKey(encPartKeyType, keys); + try { + dkey = EncryptionKey.findKey(encPartKeyType, encPartKvno, + Krb5Util.keysFromJavaxKeyTab(ktab, cname)); + } catch (KrbException ke) { + if (ke.returnCode() == Krb5.KRB_AP_ERR_BADKEYVER) { + // Fallback to no kvno. In some cases, keytab is generated + // not by sysadmin but Java's ktab command + dkey = EncryptionKey.findKey(encPartKeyType, + Krb5Util.keysFromJavaxKeyTab(ktab, cname)); + } + } + if (dkey == null) { + throw new KrbException(Krb5.API_INVALID_ARG, + "Cannot find key for type/kvno to decrypt AS REP - " + + EType.toString(encPartKeyType) + "/" + encPartKvno); } - } - if (dkey == null) { - throw new KrbException(Krb5.API_INVALID_ARG, - "Cannot find key for type/kvno to decrypt AS REP - " + - EType.toString(encPartKeyType) + "/" + encPartKvno); - } decrypt(dkey, asReq); } diff --git a/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java b/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java index 940d31107e5..dd9b8dcfb92 100644 --- a/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java +++ b/jdk/src/share/classes/sun/security/krb5/KrbAsReqBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -27,6 +27,8 @@ package sun.security.krb5; import java.io.IOException; import java.util.Arrays; +import javax.security.auth.kerberos.KeyTab; +import sun.security.jgss.krb5.Krb5Util; import sun.security.krb5.internal.HostAddresses; import sun.security.krb5.internal.KDCOptions; import sun.security.krb5.internal.KRBError; @@ -42,13 +44,16 @@ import sun.security.krb5.internal.crypto.EType; * 1. Gather information to create AS-REQ * 2. Create and send AS-REQ * 3. Receive AS-REP and KRB-ERROR (-KRB_ERR_RESPONSE_TOO_BIG) and parse them - * 4. Emit credentials and secret keys (for JAAS storeKey=true) + * 4. Emit credentials and secret keys (for JAAS storeKey=true with password) * * This class does not: * 1. Deal with real communications (KdcComm does it, and TGS-REQ) * a. Name of KDCs for a realm * b. Server availability, timeout, UDP or TCP * d. KRB_ERR_RESPONSE_TOO_BIG + * 2. Stores its own copy of password, this means: + * a. Do not change/wipe it before Builder finish + * b. Builder will not wipe it for you * * With this class: * 1. KrbAsReq has only one constructor @@ -70,19 +75,17 @@ public final class KrbAsReqBuilder { private HostAddresses addresses; // Secret source: can't be changed once assigned, only one (of the two - // sources) can be set and should be non-null - private EncryptionKey[] keys; - private char[] password; + // sources) can be set to non-null + private final char[] password; + private final KeyTab ktab; // Used to create a ENC-TIMESTAMP in the 2nd AS-REQ - private EncryptionKey pakey; private PAData[] paList; // PA-DATA from both KRB-ERROR and AS-REP. // Used by getKeys() only. // Only AS-REP should be enough per RFC, // combined in case etypes are different. // The generated and received: - int[] eTypes; private KrbAsReq req; private KrbAsRep rep; @@ -94,7 +97,7 @@ public final class KrbAsReqBuilder { private State state; // Called by other constructors - private KrbAsReqBuilder(PrincipalName cname) + private void init(PrincipalName cname) throws KrbException { if (cname.getRealm() == null) { cname.setRealm(Config.getInstance().getDefaultRealm()); @@ -114,14 +117,11 @@ public final class KrbAsReqBuilder { * This argument will neither be modified nor stored by the method. * @throws KrbException */ - public KrbAsReqBuilder(PrincipalName cname, EncryptionKey[] keys) + public KrbAsReqBuilder(PrincipalName cname, KeyTab ktab) throws KrbException { - this(cname); - this.keys = new EncryptionKey[keys.length]; - for (int i=0; i<keys.length; i++) { - this.keys[i] = (EncryptionKey)keys[i].clone(); - } - eTypes = EType.getDefaults("default_tkt_enctypes", keys); + init(cname); + this.ktab = ktab; + this.password = null; } /** @@ -137,30 +137,24 @@ public final class KrbAsReqBuilder { */ public KrbAsReqBuilder(PrincipalName cname, char[] pass) throws KrbException { - this(cname); + init(cname); this.password = pass.clone(); - eTypes = EType.getDefaults("default_tkt_enctypes"); + this.ktab = null; } /** - * Retrieves an array of secret keys for the client. This is useful if + * Retrieves an array of secret keys for the client. This is used when * the client supplies password but need keys to act as an acceptor * (in JAAS words, isInitiator=true and storeKey=true) - * @return original keys if initiated with keys, or generated keys if - * password. In latter case, PA-DATA from server might be used to - * generate keys. All "default_tkt_enctypes" keys will be generated, - * Never null. + * @return generated keys from password. PA-DATA from server might be used. + * All "default_tkt_enctypes" keys will be generated, Never null. + * @throws IllegalStateException if not constructed from a password * @throws KrbException */ public EncryptionKey[] getKeys() throws KrbException { checkState(State.REQ_OK, "Cannot get keys"); - if (keys != null) { - EncryptionKey[] result = new EncryptionKey[keys.length]; - for (int i=0; i<keys.length; i++) { - result[i] = (EncryptionKey)keys[i].clone(); - } - return result; - } else { + if (password != null) { + int[] eTypes = EType.getDefaults("default_tkt_enctypes"); EncryptionKey[] result = new EncryptionKey[eTypes.length]; /* @@ -205,6 +199,8 @@ public final class KrbAsReqBuilder { } } return result; + } else { + throw new IllegalStateException("Required password not provided"); } } @@ -241,12 +237,22 @@ public final class KrbAsReqBuilder { /** * Build a KrbAsReq object from all info fed above. Normally this method * will be called twice: initial AS-REQ and second with pakey + * @param key null (initial AS-REQ) or pakey (with preauth) * @return the KrbAsReq object * @throws KrbException * @throws IOException */ - private KrbAsReq build() throws KrbException, IOException { - return new KrbAsReq(pakey, + private KrbAsReq build(EncryptionKey key) throws KrbException, IOException { + int[] eTypes; + if (password != null) { + eTypes = EType.getDefaults("default_tkt_enctypes"); + } else { + EncryptionKey[] ks = Krb5Util.keysFromJavaxKeyTab(ktab, cname); + eTypes = EType.getDefaults("default_tkt_enctypes", + ks); + for (EncryptionKey k: ks) k.destroy(); + } + return new KrbAsReq(key, options, cname, sname, @@ -263,9 +269,10 @@ public final class KrbAsReqBuilder { * @throws Asn1Exception * @throws IOException */ - private KrbAsReqBuilder resolve() throws KrbException, Asn1Exception, IOException { - if (keys != null) { - rep.decryptUsingKeys(keys, req); + private KrbAsReqBuilder resolve() + throws KrbException, Asn1Exception, IOException { + if (ktab != null) { + rep.decryptUsingKeyTab(ktab, req, cname); } else { rep.decryptUsingPassword(password, req, cname); } @@ -292,9 +299,10 @@ public final class KrbAsReqBuilder { private KrbAsReqBuilder send() throws KrbException, IOException { boolean preAuthFailedOnce = false; KdcComm comm = new KdcComm(cname.getRealmAsString()); + EncryptionKey pakey = null; while (true) { try { - req = build(); + req = build(pakey); rep = new KrbAsRep(comm.send(req.encoding())); return this; } catch (KrbException ke) { @@ -308,7 +316,10 @@ public final class KrbAsReqBuilder { preAuthFailedOnce = true; KRBError kerr = ke.getError(); if (password == null) { - pakey = EncryptionKey.findKey(kerr.getEType(), keys); + EncryptionKey[] ks = Krb5Util.keysFromJavaxKeyTab(ktab, cname); + pakey = EncryptionKey.findKey(kerr.getEType(), ks); + if (pakey != null) pakey = (EncryptionKey)pakey.clone(); + for (EncryptionKey k: ks) k.destroy(); } else { PAData.SaltAndParams snp = PAData.getSaltAndParams( kerr.getEType(), kerr.getPA()); @@ -317,7 +328,7 @@ public final class KrbAsReqBuilder { // does not recommend this pakey = EncryptionKey.acquireSecretKey(password, snp.salt == null ? cname.getSalt() : snp.salt, - eTypes[0], + EType.getDefaults("default_tkt_enctypes")[0], null); } else { pakey = EncryptionKey.acquireSecretKey(password, @@ -369,15 +380,8 @@ public final class KrbAsReqBuilder { */ public void destroy() { state = State.DESTROYED; - if (keys != null) { - for (EncryptionKey k: keys) { - k.destroy(); - } - keys = null; - } if (password != null) { Arrays.fill(password, (char)0); - password = null; } } diff --git a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java index b4b9be1e4fa..ae75641e67d 100644 --- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java +++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java @@ -40,6 +40,7 @@ import java.io.IOException; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.File; +import java.io.FileNotFoundException; import java.util.Comparator; import java.util.HashMap; import java.util.Map; @@ -50,92 +51,138 @@ import java.util.Vector; * This class represents key table. The key table functions deal with storing * and retrieving service keys for use in authentication exchanges. * + * A KeyTab object is always constructed, if the file specified does not + * exist, it's still valid but empty. If there is an I/O error or file format + * error, it's invalid. + * + * The class is immutable on the read side (the write side is only used by + * the ktab tool). + * * @author Yanni Zhang */ public class KeyTab implements KeyTabConstants { - int kt_vno; - private static KeyTab singleton = null; + private static final boolean DEBUG = Krb5.DEBUG; - private static String name; + private static String defaultTabName = null; + + // Attention: Currently there is no way to remove a keytab from this map, + // this might lead to a memory leak. + private static Map<String,KeyTab> map = new HashMap<>(); + + // KeyTab file does not exist. Note: a missing keytab is still valid + private boolean isMissing = false; + + // KeyTab file is invalid, possibly an I/O error or a file format error. + private boolean isValid = true; + + private final String tabName; + private long lastModified; + private int kt_vno; + private Vector<KeyTabEntry> entries = new Vector<>(); - private KeyTab(String filename) throws IOException, RealmException { - init(filename); - } - - public static KeyTab getInstance(String s) { - name = parse(s); - if (name == null) { - return getInstance(); + /** + * Constructs a KeyTab object. + * + * If there is any I/O error or format errot during the loading, the + * isValid flag is set to false, and all half-read entries are dismissed. + * @param filename path name for the keytab file, must not be null + */ + private KeyTab(String filename) { + tabName = filename; + try { + lastModified = new File(tabName).lastModified(); + KeyTabInputStream kis = + new KeyTabInputStream(new FileInputStream(filename)); + load(kis); + kis.close(); + } catch (FileNotFoundException e) { + entries.clear(); + isMissing = true; + } catch (Exception ioe) { + entries.clear(); + isValid = false; } - return getInstance(new File(name)); } /** - * Gets the single instance of KeyTab class. + * Read a keytab file. Returns a new object and save it into cache when + * new content (modified since last read) is available. If keytab file is + * invalid, the old object will be returned. This is a safeguard for + * partial-written keytab files or non-stable network. Please note that + * a missing keytab is valid, which is equivalent to an empty keytab. + * + * @param s file name of keytab, must not be null + * @return the keytab object, can be invalid, but never null. + */ + private synchronized static KeyTab getInstance0(String s) { + long lm = new File(s).lastModified(); + KeyTab old = map.get(s); + if (old != null && old.isValid() && old.lastModified == lm) { + return old; + } + KeyTab ktab = new KeyTab(s); + if (ktab.isValid()) { // A valid new keytab + map.put(s, ktab); + return ktab; + } else if (old != null) { // An existing old one + return old; + } else { + return ktab; // first read is invalid + } + } + + /** + * Gets a KeyTab object. + * @param s the key tab file name. + * @return the KeyTab object, never null. + */ + public static KeyTab getInstance(String s) { + if (s == null) { + return getInstance(); + } else { + return getInstance0(s); + } + } + + /** + * Gets a KeyTab object. * @param file the key tab file. - * @return single instance of KeyTab; - * return null if error occurs while reading data out of the file. + * @return the KeyTab object, never null. */ public static KeyTab getInstance(File file) { - try { - if (!(file.exists())) { - singleton = null; - } else { - String fname = file.getAbsolutePath(); - // Since this class deals with file I/O operations, - // we want only one class instance existing. - if (singleton != null) { - File kfile = new File(singleton.name); - String kname = kfile.getAbsolutePath(); - if (kname.equalsIgnoreCase(fname)) { - if (DEBUG) { - System.out.println("KeyTab instance already exists"); - } - } - } else { - singleton = new KeyTab(fname); - } - } - } catch (Exception e) { - singleton = null; - if (DEBUG) { - System.out.println("Could not obtain an instance of KeyTab" + - e.getMessage()); - } + if (file == null) { + return getInstance(); + } else { + return getInstance0(file.getPath()); } - return singleton; } /** - * Gets the single instance of KeyTab class. - * @return single instance of KeyTab; return null if default keytab file - * does not exist, or error occurs while reading data from the file. + * Gets the default KeyTab object. + * @return the KeyTab object, never null. */ public static KeyTab getInstance() { - try { - name = getDefaultKeyTab(); - if (name != null) { - singleton = getInstance(new File(name)); - } - } catch (Exception e) { - singleton = null; - if (DEBUG) { - System.out.println("Could not obtain an instance of KeyTab" + - e.getMessage()); - } - } - return singleton; + return getInstance(getDefaultTabName()); + } + + public boolean isMissing() { + return isMissing; + } + + public boolean isValid() { + return isValid; } /** * The location of keytab file will be read from the configuration file * If it is not specified, consider user.home as the keytab file's * default location. + * @return never null */ - private static String getDefaultKeyTab() { - if (name != null) { - return name; + private static String getDefaultTabName() { + if (defaultTabName != null) { + return defaultTabName; } else { String kname = null; try { @@ -145,7 +192,7 @@ public class KeyTab implements KeyTabConstants { StringTokenizer st = new StringTokenizer(keytab_names, " "); while (st.hasMoreTokens()) { kname = parse(st.nextToken()); - if (kname != null) { + if (new File(kname).exists()) { break; } } @@ -165,19 +212,20 @@ public class KeyTab implements KeyTabConstants { new sun.security.action.GetPropertyAction("user.dir")); } - if (user_home != null) { - kname = user_home + File.separator + "krb5.keytab"; - } + kname = user_home + File.separator + "krb5.keytab"; } + defaultTabName = kname; return kname; } } + /** + * Parses some common keytab name formats + * @param name never null + * @return never null + */ private static String parse(String name) { - String kname = null; - if (name == null) { - return null; - } + String kname; if ((name.length() >= 5) && (name.substring(0, 5).equalsIgnoreCase("FILE:"))) { kname = name.substring(5); @@ -194,18 +242,6 @@ public class KeyTab implements KeyTabConstants { return kname; } - private synchronized void init(String filename) - throws IOException, RealmException { - - if (filename != null) { - KeyTabInputStream kis = - new KeyTabInputStream(new FileInputStream(filename)); - load(kis); - kis.close(); - name = filename; - } - } - private void load(KeyTabInputStream kis) throws IOException, RealmException { @@ -234,14 +270,13 @@ public class KeyTab implements KeyTabConstants { * etypes that have been configured for use. If there are multiple * keys with same etype, the one with the highest kvno is returned. * @param service the PrincipalName of the requested service - * @return an array containing all the service keys + * @return an array containing all the service keys, never null */ public EncryptionKey[] readServiceKeys(PrincipalName service) { KeyTabEntry entry; EncryptionKey key; int size = entries.size(); ArrayList<EncryptionKey> keys = new ArrayList<>(size); - for (int i = size-1; i >= 0; i--) { entry = entries.elementAt(i); if (entry.service.match(service)) { @@ -260,10 +295,7 @@ public class KeyTab implements KeyTabConstants { } } } - size = keys.size(); - if (size == 0) - return null; EncryptionKey[] retVal = keys.toArray(new EncryptionKey[size]); // Sort keys according to default_tkt_enctypes @@ -328,10 +360,13 @@ public class KeyTab implements KeyTabConstants { return false; } - public static String tabName() { - return name; + public String tabName() { + return tabName; } + /////////////////// THE WRITE SIDE /////////////////////// + /////////////// only used by ktab tool ////////////////// + /** * Adds a new entry in the key table. * @param service the service which will have a new entry in the key table. @@ -394,7 +429,7 @@ public class KeyTab implements KeyTabConstants { */ public synchronized static KeyTab create() throws IOException, RealmException { - String dname = getDefaultKeyTab(); + String dname = getDefaultTabName(); return create(dname); } @@ -408,8 +443,7 @@ public class KeyTab implements KeyTabConstants { new KeyTabOutputStream(new FileOutputStream(name)); kos.writeVersion(KRB5_KT_VNO); kos.close(); - singleton = new KeyTab(name); - return singleton; + return new KeyTab(name); } /** @@ -417,7 +451,7 @@ public class KeyTab implements KeyTabConstants { */ public synchronized void save() throws IOException { KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(name)); + new KeyTabOutputStream(new FileOutputStream(tabName)); kos.writeVersion(kt_vno); for (int i = 0; i < entries.size(); i++) { kos.writeEntry(entries.elementAt(i)); @@ -490,13 +524,4 @@ public class KeyTab implements KeyTabConstants { kos.write16(KRB5_KT_VNO); kos.close(); } - - public static void refresh() { - if (singleton != null) { - if (DEBUG) { - System.out.println("Refreshing Keytab"); - } - singleton = null; - } - } } diff --git a/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java index ff1c8d7d5c9..125de5f3f50 100644 --- a/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java +++ b/jdk/src/share/classes/sun/security/ssl/ServerHandshaker.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2011, 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 @@ -1285,11 +1285,12 @@ final class ServerHandshaker extends Handshaker { // check permission to access and use the secret key of the // Kerberized "host" service - if (kerberosKeys != null) { - + if (kerberosKeys != null && kerberosKeys.length > 0) { if (debug != null && Debug.isOn("handshake")) { - System.out.println("Using Kerberos key: " + - kerberosKeys[0]); + for (SecretKey k: kerberosKeys) { + System.out.println("Using Kerberos key: " + + k); + } } String serverPrincipal = diff --git a/jdk/src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java b/jdk/src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java index 94d1e8e75be..652268e166f 100644 --- a/jdk/src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/krb5/Krb5ProxyImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -40,7 +40,7 @@ import sun.security.krb5.PrincipalName; import sun.security.ssl.Krb5Proxy; /** - * An implementatin of Krb5Proxy that simply delegates to the appropriate + * An implementation of Krb5Proxy that simply delegates to the appropriate * Kerberos APIs. */ public class Krb5ProxyImpl implements Krb5Proxy { @@ -62,7 +62,7 @@ public class Krb5ProxyImpl implements Krb5Proxy { @Override public SecretKey[] getServerKeys(AccessControlContext acc) throws LoginException { - return Krb5Util.getKeys(GSSCaller.CALLER_SSL_SERVER, null, acc); + return Krb5Util.getServiceCreds(GSSCaller.CALLER_SSL_SERVER, null, acc).getKKeys(); } @Override diff --git a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Kinit.java b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Kinit.java index f6c53f81f1e..41354c88a74 100644 --- a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Kinit.java +++ b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Kinit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -30,12 +30,15 @@ package sun.security.krb5.internal.tools; +import java.io.File; import sun.security.krb5.*; import sun.security.krb5.internal.*; import sun.security.krb5.internal.ccache.*; import java.io.IOException; import java.util.Arrays; +import javax.security.auth.kerberos.KerberosPrincipal; import sun.security.util.Password; +import javax.security.auth.kerberos.KeyTab; /** * Kinit tool for obtaining Kerberos v5 tickets. @@ -153,7 +156,6 @@ public class Kinit { System.out.println("Principal is " + principal); } char[] psswd = options.password; - EncryptionKey[] skeys = null; boolean useKeytab = options.useKeytabFile(); if (!useKeytab) { if (princName == null) { @@ -186,17 +188,9 @@ public class Kinit { } } - // assert princName and principal are nonnull - skeys = EncryptionKey.acquireSecretKeys(principal, ktabName); - - if (skeys == null || skeys.length == 0) { - String msg = "No supported key found in keytab"; - if (princName != null) { - msg += " for principal " + princName; - } - throw new KrbException(msg); - } - builder = new KrbAsReqBuilder(principal, skeys); + builder = new KrbAsReqBuilder(principal, ktabName == null + ? KeyTab.getInstance() + : KeyTab.getInstance(new File(ktabName))); } KDCOptions opt = new KDCOptions(); diff --git a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Klist.java b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Klist.java index ad5c8aa34f0..6cbc8a3fa61 100644 --- a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Klist.java +++ b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Klist.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -95,16 +95,15 @@ public class Klist { } break; case 'k': - if (klist.name == null) { - klist.target = KeyTab.getInstance(); - klist.name = KeyTab.tabName(); - } else klist.target = KeyTab.getInstance(klist.name); - if (klist.target != null) { - klist.displayTab(); - } else { + try { + KeyTab ktab = KeyTab.getInstance(klist.name); + klist.target = ktab; + klist.name = ktab.tabName(); + } catch (Exception e) { klist.displayMessage("KeyTab"); System.exit(-1); } + klist.displayTab(); break; default: if (klist.name != null) { @@ -295,9 +294,10 @@ public class Klist { void displayMessage(String target) { if (name == null) { - name = ""; + System.out.println("Default " + target + " not found."); + } else { + System.out.println(target + " " + name + " not found."); } - System.out.println(target + " " + name + " not found."); } /** * Reformats the date from the form - diff --git a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Ktab.java b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Ktab.java index 216c3a30c12..fe29462add5 100644 --- a/jdk/src/windows/classes/sun/security/krb5/internal/tools/Ktab.java +++ b/jdk/src/windows/classes/sun/security/krb5/internal/tools/Ktab.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -321,7 +321,7 @@ public class Ktab { * Lists key table name and entries in it. */ void listKt() { - System.out.println("Keytab name: " + KeyTab.tabName()); + System.out.println("Keytab name: " + table.tabName()); KeyTabEntry[] entries = table.getEntries(); if ((entries != null) && (entries.length > 0)) { String[][] output = new String[entries.length+1][showTime?3:2]; diff --git a/jdk/test/sun/security/krb5/auto/Context.java b/jdk/test/sun/security/krb5/auto/Context.java index 676042ba993..1739f876f08 100644 --- a/jdk/test/sun/security/krb5/auto/Context.java +++ b/jdk/test/sun/security/krb5/auto/Context.java @@ -44,6 +44,7 @@ import com.sun.security.jgss.InquireType; import com.sun.security.jgss.AuthorizationDataEntry; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; +import javax.security.auth.kerberos.KeyTab; /** * Context of a JGSS subject, encapsulating Subject and GSSContext. @@ -107,15 +108,19 @@ public class Context { return out; } + public static Context fromUserPass( + String user, char[] pass, boolean storeKey) throws Exception { + return fromUserPass(null, user, pass, storeKey); + } /** * Logins with a username and a password, using Krb5LoginModule directly * @param storeKey true if key should be saved, used on acceptor side */ - public static Context fromUserPass(String user, char[] pass, boolean storeKey) - throws Exception { + public static Context fromUserPass(Subject s, + String user, char[] pass, boolean storeKey) throws Exception { Context out = new Context(); out.name = user; - out.s = new Subject(); + out.s = s == null ? new Subject() : s; Krb5LoginModule krb5 = new Krb5LoginModule(); Map<String, String> map = new HashMap<>(); Map<String, Object> shared = new HashMap<>(); @@ -198,12 +203,25 @@ public class Context { * @throws java.lang.Exception */ public void startAsServer(final Oid mech) throws Exception { + startAsServer(null, mech); + } + + /** + * Starts as a server with the specified service name + * @param name the service name + * @param mech GSS mech + * @throws java.lang.Exception + */ + public void startAsServer(final String name, final Oid mech) throws Exception { doAs(new Action() { @Override public byte[] run(Context me, byte[] dummy) throws Exception { GSSManager m = GSSManager.getInstance(); me.x = (ExtendedGSSContext)m.createContext(m.createCredential( - null, + name == null ? null : + (name.indexOf('@') < 0 ? + m.createName(name, null) : + m.createName(name, GSSName.NT_HOSTBASED_SERVICE)), GSSCredential.INDEFINITE_LIFETIME, mech, GSSCredential.ACCEPT_ONLY)); @@ -229,6 +247,14 @@ public class Context { return x; } + /** + * Accesses the internal subject. + * @return the subject + */ + public Subject s() { + return s; + } + /** * Disposes the GSSContext within * @throws org.ietf.jgss.GSSException @@ -297,7 +323,7 @@ public class Context { } catch (Exception e) { ;// Don't care } - System.out.println("====================================="); + System.out.println("====== Private Credentials Set ======"); for (Object o : s.getPrivateCredentials()) { System.out.println(" " + o.getClass()); if (o instanceof KerberosTicket) { @@ -315,6 +341,8 @@ public class Context { for (Object k : map.keySet()) { System.out.println(" " + k + ": " + map.get(k)); } + } else { + System.out.println(" " + o); } } if (x != null && x instanceof ExtendedGSSContext) { diff --git a/jdk/test/sun/security/krb5/auto/DynamicKeytab.java b/jdk/test/sun/security/krb5/auto/DynamicKeytab.java new file mode 100644 index 00000000000..256476b0b5e --- /dev/null +++ b/jdk/test/sun/security/krb5/auto/DynamicKeytab.java @@ -0,0 +1,140 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6894072 + * @run main/othervm DynamicKeytab + * @summary always refresh keytab + */ + +import java.io.File; +import java.io.FileOutputStream; +import org.ietf.jgss.GSSException; +import sun.security.jgss.GSSUtil; +import sun.security.krb5.KrbException; +import sun.security.krb5.internal.Krb5; + +public class DynamicKeytab { + + Context c, s; + public static void main(String[] args) + throws Exception { + new DynamicKeytab().go(); + } + + void go() throws Exception { + OneKDC k = new OneKDC(null); + k.writeJAASConf(); + + new File(OneKDC.KTAB).delete(); + + + // Starts with no keytab + c = Context.fromJAAS("client"); + s = Context.fromJAAS("com.sun.security.jgss.krb5.accept"); + + // Test 1: read new key 1 from keytab + k.addPrincipal(OneKDC.SERVER, "pass1".toCharArray()); + k.writeKtab(OneKDC.KTAB); + connect(); + + // Test 2: service key cached, find 1 in keytab (now contains 1 and 2) + k.addPrincipal(OneKDC.SERVER, "pass2".toCharArray()); + k.appendKtab(OneKDC.KTAB); + connect(); + + // Test 3: re-login. Now find 2 in keytab + c = Context.fromJAAS("client"); + connect(); + + // Test 4: re-login, KDC use 3 this time. + c = Context.fromJAAS("client"); + // Put 3 and 4 into keytab but keep the real key back to 3. + k.addPrincipal(OneKDC.SERVER, "pass3".toCharArray()); + k.appendKtab(OneKDC.KTAB); + k.addPrincipal(OneKDC.SERVER, "pass4".toCharArray()); + k.appendKtab(OneKDC.KTAB); + k.addPrincipal(OneKDC.SERVER, "pass3".toCharArray()); + connect(); + + // Test 5: invalid keytab file, should ignore + new FileOutputStream(OneKDC.KTAB).write("BADBADBAD".getBytes()); + connect(); + + // Test 6: delete keytab file, identical to revoke all + new File(OneKDC.KTAB).delete(); + try { + connect(); + throw new Exception("Should not success"); + } catch (GSSException gsse) { + System.out.println(gsse); + KrbException ke = (KrbException)gsse.getCause(); + // KrbApReq.authenticate(*) if (dkey == null)... + // This should have been Krb5.KRB_AP_ERR_NOKEY + if (ke.returnCode() != Krb5.API_INVALID_ARG) { + throw new Exception("Not expected failure code: " + + ke.returnCode()); + } + } + + // Test 7: 3 revoked, should fail (now contains only 5) + k.addPrincipal(OneKDC.SERVER, "pass5".toCharArray()); + k.writeKtab(OneKDC.KTAB); // overwrite keytab, which means + // old key is revoked + try { + connect(); + throw new Exception("Should not success"); + } catch (GSSException gsse) { + System.out.println(gsse); + KrbException ke = (KrbException)gsse.getCause(); + if (ke.returnCode() != Krb5.KRB_AP_ERR_BADKEYVER) { + throw new Exception("Not expected failure code: " + + ke.returnCode()); + } + } + + // Test 8: an empty KDC means revoke all + KDC.create("EMPTY.REALM").writeKtab(OneKDC.KTAB); + try { + connect(); + throw new Exception("Should not success"); + } catch (GSSException gsse) { + System.out.println(gsse); + KrbException ke = (KrbException)gsse.getCause(); + // KrbApReq.authenticate(*) if (dkey == null)... + // This should have been Krb5.KRB_AP_ERR_NOKEY + if (ke.returnCode() != Krb5.API_INVALID_ARG) { + throw new Exception("Not expected failure code: " + + ke.returnCode()); + } + } + } + + void connect() throws Exception { + Thread.sleep(2000); // make sure ktab timestamp is different + c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID); + s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); + Context.handshake(c, s); + } +} diff --git a/jdk/test/sun/security/krb5/auto/KDC.java b/jdk/test/sun/security/krb5/auto/KDC.java index 8d01dd346cd..45a3d530c4b 100644 --- a/jdk/test/sun/security/krb5/auto/KDC.java +++ b/jdk/test/sun/security/krb5/auto/KDC.java @@ -228,7 +228,33 @@ public class KDC { } /** - * Write all principals' keys from multiple KDCsinto one keytab file. + * Writes or appends KDC keys into a keytab. See doc for writeMultiKtab. + * @param append true if append, otherwise, overwrite. + */ + private static void writeKtab0(String tab, boolean append, KDC... kdcs) + throws IOException, KrbException { + KeyTab ktab = append ? KeyTab.getInstance(tab) : KeyTab.create(tab); + for (KDC kdc: kdcs) { + for (String name : kdc.passwords.keySet()) { + char[] pass = kdc.passwords.get(name); + int kvno = 0; + if (Character.isDigit(pass[pass.length-1])) { + kvno = pass[pass.length-1] - '0'; + } + ktab.addEntry(new PrincipalName(name, + name.indexOf('/') < 0 ? + PrincipalName.KRB_NT_UNKNOWN : + PrincipalName.KRB_NT_SRV_HST), + pass, + kvno, + true); + } + } + ktab.save(); + } + + /** + * Writes all principals' keys from multiple KDCs into one keytab file. * Note that the keys for the krbtgt principals will not be written. * <p> * Attention: This method references krb5.conf settings. If you need to @@ -252,17 +278,16 @@ public class KDC { */ public static void writeMultiKtab(String tab, KDC... kdcs) throws IOException, KrbException { - KeyTab ktab = KeyTab.create(tab); - for (KDC kdc: kdcs) { - for (String name : kdc.passwords.keySet()) { - ktab.addEntry(new PrincipalName(name, - name.indexOf('/') < 0 ? - PrincipalName.KRB_NT_UNKNOWN : - PrincipalName.KRB_NT_SRV_HST), - kdc.passwords.get(name), -1, true); - } - } - ktab.save(); + writeKtab0(tab, false, kdcs); + } + + /** + * Appends all principals' keys from multiple KDCs to one keytab file. + * See writeMultiKtab for details. + */ + public static void appendMultiKtab(String tab, KDC... kdcs) + throws IOException, KrbException { + writeKtab0(tab, true, kdcs); } /** @@ -272,6 +297,13 @@ public class KDC { KDC.writeMultiKtab(tab, this); } + /** + * Appends keys in this KDC to a ktab. + */ + public void appendKtab(String tab) throws IOException, KrbException { + KDC.appendMultiKtab(tab, this); + } + /** * Adds a new principal to this realm with a given password. * @param user the principal's name. For a service principal, use the diff --git a/jdk/test/sun/security/krb5/auto/KeyTabCompat.java b/jdk/test/sun/security/krb5/auto/KeyTabCompat.java new file mode 100644 index 00000000000..f6763510fd2 --- /dev/null +++ b/jdk/test/sun/security/krb5/auto/KeyTabCompat.java @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6894072 + * @compile -XDignore.symbol.file KeyTabCompat.java + * @run main/othervm KeyTabCompat + * @summary always refresh keytab + */ + +import javax.security.auth.kerberos.KerberosKey; +import sun.security.jgss.GSSUtil; + +/* + * There are 2 compat issues to check: + * + * 1. If there is only KerberosKeys in private credential set and no + * KerberosPrincipal. JAAS login should go on. + * 2. Even if KeyTab is used, user can still get KerberosKeys from + * private credentials set. + */ +public class KeyTabCompat { + + public static void main(String[] args) + throws Exception { + OneKDC kdc = new OneKDC("aes128-cts"); + kdc.writeJAASConf(); + kdc.addPrincipal(OneKDC.SERVER, "pass1".toCharArray()); + kdc.writeKtab(OneKDC.KTAB); + + Context c, s; + + // Part 1 + c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + s = Context.fromUserPass(OneKDC.USER2, OneKDC.PASS2, true); + + s.s().getPrincipals().clear(); + + c.startAsClient(OneKDC.USER2, GSSUtil.GSS_KRB5_MECH_OID); + s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); + + Context.handshake(c, s); + + // Part 2 + c = Context.fromJAAS("client"); + s = Context.fromJAAS("server"); + + c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_KRB5_MECH_OID); + s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); + s.status(); + + if (s.s().getPrivateCredentials(KerberosKey.class).size() != 1) { + throw new Exception("There should be one KerberosKey"); + } + + Thread.sleep(2000); // make sure ktab timestamp is different + + kdc.addPrincipal(OneKDC.SERVER, "pass2".toCharArray()); + kdc.writeKtab(OneKDC.KTAB); + + Context.handshake(c, s); + s.status(); + + if (s.s().getPrivateCredentials(KerberosKey.class).size() != 1) { + throw new Exception("There should be only one KerberosKey"); + } + + } +} diff --git a/jdk/test/sun/security/krb5/auto/LoginModuleOptions.java b/jdk/test/sun/security/krb5/auto/LoginModuleOptions.java index a6dd33b8029..2c77451d748 100644 --- a/jdk/test/sun/security/krb5/auto/LoginModuleOptions.java +++ b/jdk/test/sun/security/krb5/auto/LoginModuleOptions.java @@ -28,7 +28,6 @@ * @summary Krb5LoginModule a little too restrictive, and the doc is not clear. */ import com.sun.security.auth.module.Krb5LoginModule; -import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.security.auth.Subject; @@ -36,7 +35,6 @@ import javax.security.auth.callback.Callback; import javax.security.auth.callback.CallbackHandler; import javax.security.auth.callback.NameCallback; import javax.security.auth.callback.PasswordCallback; -import javax.security.auth.callback.UnsupportedCallbackException; public class LoginModuleOptions { @@ -61,10 +59,12 @@ public class LoginModuleOptions { // 1. ccache -> keytab login(null, "useTicketCache", "true", "ticketCache", "krbcc_non_exists", "useKeyTab", "true", "principal", "dummy"); + // 2. keytab -> shared login(null, "useKeyTab", "true", "principal", "dummy", "keyTab", "ktab_non_exist", "tryFirstPass", "true", NAME, OneKDC.USER, PWD, OneKDC.PASS); + // 3. shared -> callback // 3.1. useFirstPass, no callback boolean failed = false; diff --git a/jdk/test/sun/security/krb5/auto/SSL.java b/jdk/test/sun/security/krb5/auto/SSL.java index 7bd4601481e..eca535051fc 100644 --- a/jdk/test/sun/security/krb5/auto/SSL.java +++ b/jdk/test/sun/security/krb5/auto/SSL.java @@ -48,7 +48,7 @@ import sun.security.krb5.internal.ktab.KeyTab; public class SSL { private static String krb5Cipher; - private static final int LOOP_LIMIT = 1; + private static final int LOOP_LIMIT = 3; private static int loopCount = 0; private static volatile String server; private static volatile int port; @@ -98,13 +98,13 @@ public class SSL { fos.close(); f.deleteOnExit(); - final Context c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + Context c; final Context s = Context.fromJAAS("ssl"); - c.startAsClient("host/" + server, GSSUtil.GSS_KRB5_MECH_OID); + // There's no keytab file when server starts. s.startAsServer(GSSUtil.GSS_KRB5_MECH_OID); - new Thread(new Runnable() { + Thread server = new Thread(new Runnable() { public void run() { try { s.doAs(new JsseServerAction(), null); @@ -112,12 +112,57 @@ public class SSL { e.printStackTrace(); } } - }).start(); + }); + server.setDaemon(true); + server.start(); // Warm the server Thread.sleep(2000); + // Now create the keytab + + /* + // Add 3 versions of keys into keytab + KeyTab ktab = KeyTab.create(OneKDC.KTAB); + PrincipalName service = new PrincipalName( + "host/" + server, PrincipalName.KRB_NT_SRV_HST); + ktab.addEntry(service, "pass1".toCharArray(), 1); + ktab.addEntry(service, "pass2".toCharArray(), 2); + ktab.addEntry(service, "pass3".toCharArray(), 3); + ktab.save(); + + // and use the middle one as the real key + kdc.addPrincipal("host/" + server, "pass2".toCharArray()); + */ + c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + c.startAsClient("host/" + server, GSSUtil.GSS_KRB5_MECH_OID); c.doAs(new JsseClientAction(), null); + + // Add another version of key, make sure it can be loaded + Thread.sleep(2000); + ktab = KeyTab.getInstance(OneKDC.KTAB); + ktab.addEntry(service, "pass4".toCharArray(), 4, true); + ktab.save(); + kdc.addPrincipal("host/" + server, "pass4".toCharArray()); + + c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + c.startAsClient("host/" + server, GSSUtil.GSS_KRB5_MECH_OID); + c.doAs(new JsseClientAction(), null); + + // Revoke the old key + /*Thread.sleep(2000); + ktab = KeyTab.create(OneKDC.KTAB); + ktab.addEntry(service, "pass5".toCharArray(), 5, false); + ktab.save(); + + c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + c.startAsClient("host/" + server, GSSUtil.GSS_KRB5_MECH_OID); + try { + c.doAs(new JsseClientAction(), null); + throw new Exception("Should fail this time."); + } catch (SSLException e) { + // Correct behavior. + }*/ } // Following codes copied from @@ -126,6 +171,7 @@ public class SSL { public byte[] run(Context s, byte[] input) throws Exception { SSLSocketFactory sslsf = (SSLSocketFactory) SSLSocketFactory.getDefault(); + System.out.println("Connecting " + server + ":" + port); SSLSocket sslSocket = (SSLSocket) sslsf.createSocket(server, port); // Enable only a KRB5 cipher suite. @@ -154,6 +200,9 @@ public class SSL { System.out.println("Server is: " + peer.toString()); sslSocket.close(); + // This line should not be needed. It's the server's duty to + // forget the old key + //sslSocket.getSession().invalidate(); return null; } } @@ -165,6 +214,7 @@ public class SSL { SSLServerSocket sslServerSocket = (SSLServerSocket) sslssf.createServerSocket(0); // any port port = sslServerSocket.getLocalPort(); + System.out.println("Listening on " + port); // Enable only a KRB5 cipher suite. String enabledSuites[] = {krb5Cipher}; diff --git a/jdk/test/sun/security/krb5/auto/TwoPrinces.java b/jdk/test/sun/security/krb5/auto/TwoPrinces.java new file mode 100644 index 00000000000..30f16e96a25 --- /dev/null +++ b/jdk/test/sun/security/krb5/auto/TwoPrinces.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6894072 + * @compile -XDignore.symbol.file TwoPrinces.java + * @run main/othervm TwoPrinces + * @summary always refresh keytab + */ + +import java.io.File; +import java.io.FileOutputStream; +import sun.security.jgss.GSSUtil; +import sun.security.krb5.Config; + +public class TwoPrinces { + + public static void main(String[] args) + throws Exception { + + KDC k1 = KDC.create("R1"); + k1.addPrincipal("u1", "hello".toCharArray()); + k1.addPrincipalRandKey("krbtgt/R1"); + k1.addPrincipalRandKey("host/same.host"); + + KDC k2 = KDC.create("R2"); + k2.addPrincipal("u2", "hello".toCharArray()); + k2.addPrincipalRandKey("krbtgt/R2"); + k2.addPrincipalRandKey("host/same.host"); + + System.setProperty("java.security.krb5.conf", "krb5.conf"); + + // R1 is the default realm now + KDC.saveConfig("krb5.conf", k1, k2); + Config.refresh(); + + k1.writeKtab("ktab1"); + k2.writeKtab("ktab2"); + + // A JAAS config file with 2 Krb5LoginModules, after commit, the + // subject with have principals and keytabs from both sides + System.setProperty("java.security.auth.login.config", "jaas.conf"); + File f = new File("jaas.conf"); + FileOutputStream fos = new FileOutputStream(f); + fos.write(( + "me {\n" + + " com.sun.security.auth.module.Krb5LoginModule required" + + " isInitiator=true principal=\"host/same.host@R1\"" + + " useKeyTab=true keyTab=ktab1 storeKey=true;\n" + + " com.sun.security.auth.module.Krb5LoginModule required" + + " isInitiator=true principal=\"host/same.host@R2\"" + + " useKeyTab=true keyTab=ktab2 storeKey=true;\n" + + "};\n" + ).getBytes()); + fos.close(); + + /* + * This server side context will be able to act as services in both + * realms. Please note that we still don't support a single instance + * of server to accept connections from two realms at the same time. + * Therefore, we must call startAsServer in a given realm to start + * working there. The same Subject never changes anyway. + */ + Context s = Context.fromJAAS("me"); + + // Default realm still R1 + s.startAsServer("host@same.host", GSSUtil.GSS_KRB5_MECH_OID); + Context c1 = Context.fromUserPass("u1", "hello".toCharArray(), false); + c1.startAsClient("host@same.host", GSSUtil.GSS_KRB5_MECH_OID); + Context.handshake(c1, s); + + KDC.saveConfig("krb5.conf", k2, k1); + Config.refresh(); + + // Default realm now R2 + s.startAsServer("host@same.host", GSSUtil.GSS_KRB5_MECH_OID); + Context c2 = Context.fromUserPass("u2", "hello".toCharArray(), false); + c2.startAsClient("host@same.host", GSSUtil.GSS_KRB5_MECH_OID); + Context.handshake(c2, s); + } +} diff --git a/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java b/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java index f0cd88e6a65..26eb5621939 100644 --- a/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java +++ b/jdk/test/sun/security/krb5/ktab/KeyTabIndex.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -44,7 +44,6 @@ public class KeyTabIndex { KeyTab.getInstance("ktab").getClass(); } }; - KeyTab.refresh(); for (int i=0; i<10; i++) { new Thread(t).start(); } From 1b62e08853c454408829a10496d60105a19e59a0 Mon Sep 17 00:00:00 2001 From: Michael McMahon <michaelm@openjdk.org> Date: Wed, 20 Apr 2011 12:03:30 +0100 Subject: [PATCH 011/147] 7034570: java.lang.Runtime.exec(String[] cmd, String[] env) can not work properly if SystemRoot not inherited Reviewed-by: dholmes, alanb --- .../classes/java/lang/ProcessBuilder.java | 5 ++ jdk/src/share/classes/java/lang/Runtime.java | 5 ++ .../classes/java/lang/ProcessEnvironment.java | 47 +++++++++++++++---- jdk/test/java/lang/ProcessBuilder/Basic.java | 22 +++++++-- 4 files changed, 66 insertions(+), 13 deletions(-) diff --git a/jdk/src/share/classes/java/lang/ProcessBuilder.java b/jdk/src/share/classes/java/lang/ProcessBuilder.java index c580f507d53..6caaaeb906d 100644 --- a/jdk/src/share/classes/java/lang/ProcessBuilder.java +++ b/jdk/src/share/classes/java/lang/ProcessBuilder.java @@ -938,6 +938,11 @@ public final class ProcessBuilder * but at the very least the command must be a non-empty list of * non-null strings. * + * <p>A minimal set of system dependent environment variables may + * be required to start a process on some operating systems. + * As a result, the subprocess may inherit additional environment variable + * settings beyond those in the process builder's {@link #environment()}. + * * <p>If there is a security manager, its * {@link SecurityManager#checkExec checkExec} * method is called with the first component of this object's diff --git a/jdk/src/share/classes/java/lang/Runtime.java b/jdk/src/share/classes/java/lang/Runtime.java index 5e4a1bceaba..3fc29d08376 100644 --- a/jdk/src/share/classes/java/lang/Runtime.java +++ b/jdk/src/share/classes/java/lang/Runtime.java @@ -544,6 +544,11 @@ public class Runtime { * <p>If <tt>envp</tt> is <tt>null</tt>, the subprocess inherits the * environment settings of the current process. * + * <p>A minimal set of system dependent environment variables may + * be required to start a process on some operating systems. + * As a result, the subprocess may inherit additional environment variable + * settings beyond those in the specified environment. + * * <p>{@link ProcessBuilder#start()} is now the preferred way to * start a process with a modified environment. * diff --git a/jdk/src/windows/classes/java/lang/ProcessEnvironment.java b/jdk/src/windows/classes/java/lang/ProcessEnvironment.java index b5a4383019e..89e46899999 100644 --- a/jdk/src/windows/classes/java/lang/ProcessEnvironment.java +++ b/jdk/src/windows/classes/java/lang/ProcessEnvironment.java @@ -143,7 +143,7 @@ final class ProcessEnvironment extends HashMap<String,String> public void remove() { i.remove();} }; } - private static Map.Entry<String,String> checkedEntry (Object o) { + private static Map.Entry<String,String> checkedEntry(Object o) { Map.Entry<String,String> e = (Map.Entry<String,String>) o; nonNullString(e.getKey()); nonNullString(e.getValue()); @@ -285,7 +285,7 @@ final class ProcessEnvironment extends HashMap<String,String> return (Map<String,String>) theEnvironment.clone(); } - // Only for use by Runtime.exec(...String[]envp...) + // Only for use by ProcessBuilder.environment(String[] envp) static Map<String,String> emptyEnvironment(int capacity) { return new ProcessEnvironment(capacity); } @@ -299,19 +299,46 @@ final class ProcessEnvironment extends HashMap<String,String> Collections.sort(list, entryComparator); StringBuilder sb = new StringBuilder(size()*30); - for (Map.Entry<String,String> e : list) - sb.append(e.getKey()) - .append('=') - .append(e.getValue()) - .append('\u0000'); - // Ensure double NUL termination, - // even if environment is empty. - if (sb.length() == 0) + int cmp = -1; + + // Some versions of MSVCRT.DLL require SystemRoot to be set. + // So, we make sure that it is always set, even if not provided + // by the caller. + final String SYSTEMROOT = "SystemRoot"; + + for (Map.Entry<String,String> e : list) { + String key = e.getKey(); + String value = e.getValue(); + if (cmp < 0 && (cmp = nameComparator.compare(key, SYSTEMROOT)) > 0) { + // Not set, so add it here + addToEnvIfSet(sb, SYSTEMROOT); + } + addToEnv(sb, key, value); + } + if (cmp < 0) { + // Got to end of list and still not found + addToEnvIfSet(sb, SYSTEMROOT); + } + if (sb.length() == 0) { + // Environment was empty and SystemRoot not set in parent sb.append('\u0000'); + } + // Block is double NUL terminated sb.append('\u0000'); return sb.toString(); } + // add the environment variable to the child, if it exists in parent + private static void addToEnvIfSet(StringBuilder sb, String name) { + String s = getenv(name); + if (s != null) + addToEnv(sb, name, s); + } + + private static void addToEnv(StringBuilder sb, String name, String val) { + sb.append(name).append('=').append(val).append('\u0000'); + } + static String toEnvironmentBlock(Map<String,String> map) { return map == null ? null : ((ProcessEnvironment)map).toEnvironmentBlock(); diff --git a/jdk/test/java/lang/ProcessBuilder/Basic.java b/jdk/test/java/lang/ProcessBuilder/Basic.java index 22916929561..677735474a8 100644 --- a/jdk/test/java/lang/ProcessBuilder/Basic.java +++ b/jdk/test/java/lang/ProcessBuilder/Basic.java @@ -26,7 +26,7 @@ * @bug 4199068 4738465 4937983 4930681 4926230 4931433 4932663 4986689 * 5026830 5023243 5070673 4052517 4811767 6192449 6397034 6413313 * 6464154 6523983 6206031 4960438 6631352 6631966 6850957 6850958 - * 4947220 7018606 + * 4947220 7018606 7034570 * @summary Basic tests for Process and Environment Variable code * @run main/othervm/timeout=300 Basic * @author Martin Buchholz @@ -1440,11 +1440,12 @@ public class Basic { // Check for sort order of environment variables on Windows. //---------------------------------------------------------------- try { + String systemRoot = "SystemRoot=" + System.getenv("SystemRoot"); // '+' < 'A' < 'Z' < '_' < 'a' < 'z' < '~' String[]envp = {"FOO=BAR","BAZ=GORP","QUUX=", - "+=+", "_=_", "~=~"}; + "+=+", "_=_", "~=~", systemRoot}; String output = nativeEnv(envp); - String expected = "+=+\nBAZ=GORP\nFOO=BAR\nQUUX=\n_=_\n~=~\n"; + String expected = "+=+\nBAZ=GORP\nFOO=BAR\nQUUX=\n"+systemRoot+"\n_=_\n~=~\n"; // On Windows, Java must keep the environment sorted. // Order is random on Unix, so this test does the sort. if (! Windows.is()) @@ -1452,6 +1453,21 @@ public class Basic { equal(output, expected); } catch (Throwable t) { unexpected(t); } + //---------------------------------------------------------------- + // Test Runtime.exec(...envp...) + // and check SystemRoot gets set automatically on Windows + //---------------------------------------------------------------- + try { + if (Windows.is()) { + String systemRoot = "SystemRoot=" + System.getenv("SystemRoot"); + String[]envp = {"FOO=BAR","BAZ=GORP","QUUX=", + "+=+", "_=_", "~=~"}; + String output = nativeEnv(envp); + String expected = "+=+\nBAZ=GORP\nFOO=BAR\nQUUX=\n"+systemRoot+"\n_=_\n~=~\n"; + equal(output, expected); + } + } catch (Throwable t) { unexpected(t); } + //---------------------------------------------------------------- // System.getenv() must be consistent with System.getenv(String) //---------------------------------------------------------------- From e45512128a063241bb4de8c1463aa7fc11016cf7 Mon Sep 17 00:00:00 2001 From: Alex Menkov <amenkov@openjdk.org> Date: Wed, 20 Apr 2011 16:46:31 +0400 Subject: [PATCH 012/147] 7030629: closed/sun/audio/AudioClipClose/AudioClipClose.java test fails just against jdk7 b134 7033899: SoundTestSuite: test050 fails on Ubuntu Linux Reviewed-by: bae --- .../sound/PLATFORM_API_LinuxOS_ALSA_PCM.c | 56 ++++++++++++++++--- 1 file changed, 49 insertions(+), 7 deletions(-) diff --git a/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c index fb2ba3c5da3..0c5784bc496 100644 --- a/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c +++ b/jdk/src/solaris/native/com/sun/media/sound/PLATFORM_API_LinuxOS_ALSA_PCM.c @@ -239,6 +239,13 @@ void DAUDIO_GetFormats(INT32 mixerIndex, INT32 deviceID, int isSource, void* cre snd_pcm_close(handle); } +/** Workaround for cr 7033899, 7030629: + * dmix plugin doesn't like flush (snd_pcm_drop) when the buffer is empty + * (just opened, underruned or already flushed). + * Sometimes it causes PCM falls to -EBADFD error, + * sometimes causes bufferSize change. + * To prevent unnecessary flushes AlsaPcmInfo::isRunning & isFlushed are used. + */ /* ******* ALSA PCM INFO ******************** */ typedef struct tag_AlsaPcmInfo { snd_pcm_t* handle; @@ -248,6 +255,8 @@ typedef struct tag_AlsaPcmInfo { int frameSize; // storage size in Bytes unsigned int periods; snd_pcm_uframes_t periodSize; + short int isRunning; // see comment above + short int isFlushed; // see comment above #ifdef GET_POSITION_METHOD2 // to be used exclusively by getBytePosition! snd_pcm_status_t* positionStatus; @@ -432,6 +441,9 @@ void* DAUDIO_Open(INT32 mixerIndex, INT32 deviceID, int isSource, return NULL; } memset(info, 0, sizeof(AlsaPcmInfo)); + // initial values are: stopped, flushed + info->isRunning = 0; + info->isFlushed = 1; ret = openPCMfromDeviceID(deviceID, &(info->handle), isSource, FALSE /* do open device*/); if (ret == 0) { @@ -587,6 +599,14 @@ int DAUDIO_Start(void* id, int isSource) { || (state == SND_PCM_STATE_RUNNING) || (state == SND_PCM_STATE_XRUN) || (state == SND_PCM_STATE_SUSPENDED); + if (ret) { + info->isRunning = 1; + // source line should keep isFlushed value until Write() is called; + // for target data line reset it right now. + if (!isSource) { + info->isFlushed = 0; + } + } TRACE1("< DAUDIO_Start %s\n", ret?"success":"error"); return ret?TRUE:FALSE; } @@ -606,6 +626,7 @@ int DAUDIO_Stop(void* id, int isSource) { ERROR1("ERROR in snd_pcm_pause: %s\n", snd_strerror(ret)); return FALSE; } + info->isRunning = 0; TRACE0("< DAUDIO_Stop success\n"); return TRUE; } @@ -651,8 +672,7 @@ int xrun_recovery(AlsaPcmInfo* info, int err) { return -1; } return 1; - } - else if (err == -ESTRPIPE) { + } else if (err == -ESTRPIPE) { TRACE0("xrun_recovery: suspended.\n"); ret = snd_pcm_resume(info->handle); if (ret < 0) { @@ -667,11 +687,11 @@ int xrun_recovery(AlsaPcmInfo* info, int err) { return -1; } return 1; - } - else if (err == -EAGAIN) { + } else if (err == -EAGAIN) { TRACE0("xrun_recovery: EAGAIN try again flag.\n"); return 0; } + TRACE2("xrun_recovery: unexpected error %d: %s\n", err, snd_strerror(err)); return -1; } @@ -691,6 +711,7 @@ int DAUDIO_Write(void* id, char* data, int byteSize) { TRACE0("< DAUDIO_Write returning -1\n"); return -1; } + count = 2; // maximum number of trials to recover from underrun //frameSize = snd_pcm_bytes_to_frames(info->handle, byteSize); frameSize = (snd_pcm_sframes_t) (byteSize / info->frameSize); @@ -712,6 +733,12 @@ int DAUDIO_Write(void* id, char* data, int byteSize) { } } while (TRUE); //ret = snd_pcm_frames_to_bytes(info->handle, writtenFrames); + + if (writtenFrames > 0) { + // reset "flushed" flag + info->isFlushed = 0; + } + ret = (int) (writtenFrames * info->frameSize); TRACE1("< DAUDIO_Write: returning %d bytes.\n", ret); return ret; @@ -736,6 +763,11 @@ int DAUDIO_Read(void* id, char* data, int byteSize) { TRACE0("< DAUDIO_Read returning -1\n"); return -1; } + if (!info->isRunning && info->isFlushed) { + // PCM has nothing to read + return 0; + } + count = 2; // maximum number of trials to recover from error //frameSize = snd_pcm_bytes_to_frames(info->handle, byteSize); frameSize = (snd_pcm_sframes_t) (byteSize / info->frameSize); @@ -784,12 +816,22 @@ int DAUDIO_Flush(void* id, int isSource) { int ret; TRACE0("DAUDIO_Flush\n"); + + if (info->isFlushed) { + // nothing to drop + return 1; + } + ret = snd_pcm_drop(info->handle); if (ret != 0) { ERROR1("ERROR in snd_pcm_drop: %s\n", snd_strerror(ret)); return FALSE; } - ret = DAUDIO_Start(id, isSource); + + info->isFlushed = 1; + if (info->isRunning) { + ret = DAUDIO_Start(id, isSource); + } return ret; } @@ -800,7 +842,7 @@ int DAUDIO_GetAvailable(void* id, int isSource) { int ret; state = snd_pcm_state(info->handle); - if (state == SND_PCM_STATE_XRUN) { + if (info->isFlushed || state == SND_PCM_STATE_XRUN) { // if in xrun state then we have the entire buffer available, // not 0 as alsa reports ret = info->bufferSizeInBytes; @@ -841,7 +883,7 @@ INT64 DAUDIO_GetBytePosition(void* id, int isSource, INT64 javaBytePos) { snd_pcm_state_t state; state = snd_pcm_state(info->handle); - if (state != SND_PCM_STATE_XRUN) { + if (!info->isFlushed && state != SND_PCM_STATE_XRUN) { #ifdef GET_POSITION_METHOD2 snd_timestamp_t* ts; snd_pcm_uframes_t framesAvail; From f3c1d5f3ea80220483e024f9f3fffa80063f5267 Mon Sep 17 00:00:00 2001 From: Jennifer Godinez <jgodinez@openjdk.org> Date: Wed, 20 Apr 2011 09:10:36 -0700 Subject: [PATCH 013/147] 6989724: font warnings in the build, native code Reviewed-by: bae, igor --- .../share/native/sun/awt/giflib/dgif_lib.c | 2 +- .../share/native/sun/font/fontscalerdefs.h | 4 +++- .../sun/font/layout/HangulLayoutEngine.cpp | 2 +- .../native/sun/font/layout/MPreFixups.cpp | 4 ++-- jdk/src/solaris/native/sun/awt/fontpath.c | 3 ++- jdk/src/windows/native/sun/font/fontpath.c | 24 +++++++++---------- 6 files changed, 21 insertions(+), 18 deletions(-) diff --git a/jdk/src/share/native/sun/awt/giflib/dgif_lib.c b/jdk/src/share/native/sun/awt/giflib/dgif_lib.c index b566e7e1cc1..742ae9c3335 100644 --- a/jdk/src/share/native/sun/awt/giflib/dgif_lib.c +++ b/jdk/src/share/native/sun/awt/giflib/dgif_lib.c @@ -70,7 +70,7 @@ /* avoid extra function call in case we use fread (TVT) */ #define READ(_gif,_buf,_len) \ (((GifFilePrivateType*)_gif->Private)->Read ? \ - ((GifFilePrivateType*)_gif->Private)->Read(_gif,_buf,_len) : \ + (size_t)((GifFilePrivateType*)_gif->Private)->Read(_gif,_buf,_len) : \ fread(_buf,1,_len,((GifFilePrivateType*)_gif->Private)->File)) static int DGifGetWord(GifFileType *GifFile, int *Word); diff --git a/jdk/src/share/native/sun/font/fontscalerdefs.h b/jdk/src/share/native/sun/font/fontscalerdefs.h index 4e1bb99e9c3..8f142752af9 100644 --- a/jdk/src/share/native/sun/font/fontscalerdefs.h +++ b/jdk/src/share/native/sun/font/fontscalerdefs.h @@ -55,13 +55,15 @@ typedef Int32 hsFixed; typedef Int32 hsFract; typedef UInt32 Bool32; +#ifndef __cplusplus #ifndef false - #define false 0 + #define false 0 #endif #ifndef true #define true 1 #endif +#endif #define kPosInfinity32 (0x7fffffff) #define kNegInfinity32 (0x80000000) diff --git a/jdk/src/share/native/sun/font/layout/HangulLayoutEngine.cpp b/jdk/src/share/native/sun/font/layout/HangulLayoutEngine.cpp index 806f2dc5813..adc30bd526d 100644 --- a/jdk/src/share/native/sun/font/layout/HangulLayoutEngine.cpp +++ b/jdk/src/share/native/sun/font/layout/HangulLayoutEngine.cpp @@ -162,7 +162,7 @@ static le_int32 decompose(LEUnicode syllable, LEUnicode &lead, LEUnicode &vowel, return 0; } - lead = LJMO_FIRST + (sIndex / HSYL_LVCNT); + lead = (LEUnicode)(LJMO_FIRST + (sIndex / HSYL_LVCNT)); vowel = VJMO_FIRST + (sIndex % HSYL_LVCNT) / TJMO_COUNT; trail = TJMO_FIRST + (sIndex % TJMO_COUNT); diff --git a/jdk/src/share/native/sun/font/layout/MPreFixups.cpp b/jdk/src/share/native/sun/font/layout/MPreFixups.cpp index 673ea32ca16..254b3b01ace 100644 --- a/jdk/src/share/native/sun/font/layout/MPreFixups.cpp +++ b/jdk/src/share/native/sun/font/layout/MPreFixups.cpp @@ -65,9 +65,9 @@ void MPreFixups::add(le_int32 baseIndex, le_int32 mpreIndex) } } -void MPreFixups::apply(LEGlyphStorage &glyphStorage, LEErrorCode& success) +void MPreFixups::apply(LEGlyphStorage &glyphStorage, LEErrorCode& leSuccess) { - if (LE_FAILURE(success)) { + if (LE_FAILURE(leSuccess)) { return; } diff --git a/jdk/src/solaris/native/sun/awt/fontpath.c b/jdk/src/solaris/native/sun/awt/fontpath.c index 68c352db16c..98d6f1419fc 100644 --- a/jdk/src/solaris/native/sun/awt/fontpath.c +++ b/jdk/src/solaris/native/sun/awt/fontpath.c @@ -1107,7 +1107,8 @@ Java_sun_font_FontConfigManager_getFontConfig arrlen = (*env)->GetArrayLength(env, fcCompFontArray); for (i=0; i<arrlen; i++) { FcFontSet* fontset; - int fn, j, fontCount, nfonts, minGlyphs; + int fn, j, fontCount, nfonts; + unsigned int minGlyphs; FcChar8 **family, **styleStr, **fullname, **file; jarray fcFontArr; diff --git a/jdk/src/windows/native/sun/font/fontpath.c b/jdk/src/windows/native/sun/font/fontpath.c index f1437de5afb..074cdeba627 100644 --- a/jdk/src/windows/native/sun/font/fontpath.c +++ b/jdk/src/windows/native/sun/font/fontpath.c @@ -235,7 +235,7 @@ static int CALLBACK EnumFontFacesInFamilyProcW( } fullname = (*env)->NewString(env, lpelfe->elfFullName, - wcslen((LPWSTR)lpelfe->elfFullName)); + (jsize)wcslen((LPWSTR)lpelfe->elfFullName)); fullnameLC = (*env)->CallObjectMethod(env, fullname, fmi->toLowerCaseMID, fmi->locale); (*env)->CallBooleanMethod(env, fmi->list, fmi->addMID, fullname); @@ -314,7 +314,7 @@ static int CALLBACK EnumFamilyNamesW( GdiFontMapInfo *fmi = (GdiFontMapInfo*)lParam; JNIEnv *env = fmi->env; jstring familyLC; - int slen; + size_t slen; LOGFONTW lfw; /* Both Vista and XP return DEVICE_FONTTYPE for OTF fonts */ @@ -336,7 +336,7 @@ static int CALLBACK EnumFamilyNamesW( return 1; } slen = wcslen(lpelfe->elfLogFont.lfFaceName); - fmi->family = (*env)->NewString(env,lpelfe->elfLogFont.lfFaceName, slen); + fmi->family = (*env)->NewString(env,lpelfe->elfLogFont.lfFaceName, (jsize)slen); familyLC = (*env)->CallObjectMethod(env, fmi->family, fmi->toLowerCaseMID, fmi->locale); /* check if already seen this family with a different charset */ @@ -386,10 +386,10 @@ static int CALLBACK EnumFamilyNamesW( static BOOL RegistryToBaseTTNameA(LPSTR name) { static const char TTSUFFIX[] = " (TrueType)"; static const char OTSUFFIX[] = " (OpenType)"; - int TTSLEN = strlen(TTSUFFIX); + size_t TTSLEN = strlen(TTSUFFIX); char *suffix; - int len = strlen(name); + size_t len = strlen(name); if (len == 0) { return FALSE; } @@ -412,10 +412,10 @@ static BOOL RegistryToBaseTTNameA(LPSTR name) { static BOOL RegistryToBaseTTNameW(LPWSTR name) { static const wchar_t TTSUFFIX[] = L" (TrueType)"; static const wchar_t OTSUFFIX[] = L" (OpenType)"; - int TTSLEN = wcslen(TTSUFFIX); + size_t TTSLEN = wcslen(TTSUFFIX); wchar_t *suffix; - int len = wcslen(name); + size_t len = wcslen(name); if (len == 0) { return FALSE; } @@ -439,7 +439,7 @@ static void registerFontA(GdiFontMapInfo *fmi, jobject fontToFileMap, LPSTR ptr1, ptr2; jstring fontStr; JNIEnv *env = fmi->env; - int dslen = strlen(data); + size_t dslen = strlen(data); jstring fileStr = JNU_NewStringPlatform(env, data); /* TTC or ttc means it may be a collection. Need to parse out @@ -488,8 +488,8 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap, wchar_t *ptr1, *ptr2; jstring fontStr; JNIEnv *env = fmi->env; - int dslen = wcslen(data); - jstring fileStr = (*env)->NewString(env, data, dslen); + size_t dslen = wcslen(data); + jstring fileStr = (*env)->NewString(env, data, (jsize)dslen); /* TTC or ttc means it may be a collection. Need to parse out * multiple font face names separated by " & " @@ -510,7 +510,7 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap, while ((ptr2 = wcsstr(ptr1, L" & ")) != NULL) { ptr1 = ptr2+3; } - fontStr = (*env)->NewString(env, ptr1, wcslen(ptr1)); + fontStr = (*env)->NewString(env, ptr1, (jsize)wcslen(ptr1)); fontStr = (*env)->CallObjectMethod(env, fontStr, fmi->toLowerCaseMID, fmi->locale); @@ -524,7 +524,7 @@ static void registerFontW(GdiFontMapInfo *fmi, jobject fontToFileMap, } } } else { - fontStr = (*env)->NewString(env, name, wcslen(name)); + fontStr = (*env)->NewString(env, name, (jsize)wcslen(name)); fontStr = (*env)->CallObjectMethod(env, fontStr, fmi->toLowerCaseMID, fmi->locale); (*env)->CallObjectMethod(env, fontToFileMap, fmi->putMID, From 7d1c44eae43e722dd4f9cde369e83f310ee2bb53 Mon Sep 17 00:00:00 2001 From: Stuart Marks <smarks@openjdk.org> Date: Wed, 20 Apr 2011 16:30:38 -0700 Subject: [PATCH 014/147] 6896297: (rmi) fix ConcurrentModificationException causing TCK failure Reviewed-by: alanb, dholmes, peterjones --- .../classes/sun/rmi/log/ReliableLog.java | 4 +- .../classes/sun/rmi/server/Activation.java | 123 ++++++++++-------- 2 files changed, 73 insertions(+), 54 deletions(-) diff --git a/jdk/src/share/classes/sun/rmi/log/ReliableLog.java b/jdk/src/share/classes/sun/rmi/log/ReliableLog.java index 30ea3f1d464..fe512c2d87c 100644 --- a/jdk/src/share/classes/sun/rmi/log/ReliableLog.java +++ b/jdk/src/share/classes/sun/rmi/log/ReliableLog.java @@ -380,9 +380,7 @@ public class ReliableLog { } catch (IOException e) { throw e; } catch (Exception e) { - throw new IOException("snapshot failed with exception of type: " + - e.getClass().getName() + - ", message was: " + e.getMessage()); + throw new IOException("snapshot failed", e); } lastSnapshot = System.currentTimeMillis(); } finally { diff --git a/jdk/src/share/classes/sun/rmi/server/Activation.java b/jdk/src/share/classes/sun/rmi/server/Activation.java index 119910ed5cc..919edb7fb65 100644 --- a/jdk/src/share/classes/sun/rmi/server/Activation.java +++ b/jdk/src/share/classes/sun/rmi/server/Activation.java @@ -30,6 +30,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.io.ObjectInputStream; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; @@ -98,6 +99,7 @@ import java.util.MissingResourceException; import java.util.Properties; import java.util.ResourceBundle; import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; import sun.rmi.log.LogHandler; import sun.rmi.log.ReliableLog; import sun.rmi.registry.RegistryImpl; @@ -147,10 +149,10 @@ public class Activation implements Serializable { /** maps activation id to its respective group id */ private Map<ActivationID,ActivationGroupID> idTable = - new HashMap<ActivationID,ActivationGroupID>(); + new ConcurrentHashMap<>(); /** maps group id to its GroupEntry groups */ private Map<ActivationGroupID,GroupEntry> groupTable = - new HashMap<ActivationGroupID,GroupEntry>(); + new ConcurrentHashMap<>(); private byte majorVersion = MAJOR_VERSION; private byte minorVersion = MINOR_VERSION; @@ -236,9 +238,11 @@ public class Activation implements Serializable { groupSemaphore = getInt("sun.rmi.activation.groupThrottle", 3); groupCounter = 0; Runtime.getRuntime().addShutdownHook(shutdownHook); + + // Use array size of 0, since the value from calling size() + // may be out of date by the time toArray() is called. ActivationGroupID[] gids = - groupTable.keySet().toArray( - new ActivationGroupID[groupTable.size()]); + groupTable.keySet().toArray(new ActivationGroupID[0]); synchronized (startupLock = new Object()) { // all the remote methods briefly synchronize on startupLock @@ -274,6 +278,23 @@ public class Activation implements Serializable { } } + /** + * Previous versions used HashMap instead of ConcurrentHashMap. + * Replace any HashMaps found during deserialization with + * ConcurrentHashMaps. + */ + private void readObject(ObjectInputStream ois) + throws IOException, ClassNotFoundException + { + ois.defaultReadObject(); + if (! (groupTable instanceof ConcurrentHashMap)) { + groupTable = new ConcurrentHashMap<>(groupTable); + } + if (! (idTable instanceof ConcurrentHashMap)) { + idTable = new ConcurrentHashMap<>(idTable); + } + } + private static class SystemRegistryImpl extends RegistryImpl { private static final String NAME = ActivationSystem.class.getName(); @@ -488,9 +509,7 @@ public class Activation implements Serializable { ActivationGroupID id = new ActivationGroupID(systemStub); GroupEntry entry = new GroupEntry(id, desc); // table insertion must take place before log update - synchronized (groupTable) { - groupTable.put(id, entry); - } + groupTable.put(id, entry); addLogRecord(new LogRegisterGroup(id, desc)); return id; } @@ -515,11 +534,7 @@ public class Activation implements Serializable { // remove entry before unregister so state is updated before // logged - synchronized (groupTable) { - GroupEntry entry = getGroupEntry(id); - groupTable.remove(id); - entry.unregisterGroup(true); - } + removeGroupEntry(id).unregisterGroup(true); } public ActivationDesc setActivationDesc(ActivationID id, @@ -637,12 +652,7 @@ public class Activation implements Serializable { unexport(system); // destroy all child processes (groups) - GroupEntry[] groupEntries; - synchronized (groupTable) { - groupEntries = groupTable.values(). - toArray(new GroupEntry[groupTable.size()]); - } - for (GroupEntry groupEntry : groupEntries) { + for (GroupEntry groupEntry : groupTable.values()) { groupEntry.shutdown(); } @@ -693,10 +703,8 @@ public class Activation implements Serializable { } // destroy all child processes (groups) quickly - synchronized (groupTable) { - for (GroupEntry groupEntry : groupTable.values()) { - groupEntry.shutdownFast(); - } + for (GroupEntry groupEntry : groupTable.values()) { + groupEntry.shutdownFast(); } } } @@ -708,15 +716,34 @@ public class Activation implements Serializable { private ActivationGroupID getGroupID(ActivationID id) throws UnknownObjectException { - synchronized (idTable) { - ActivationGroupID groupID = idTable.get(id); - if (groupID != null) { - return groupID; - } + ActivationGroupID groupID = idTable.get(id); + if (groupID != null) { + return groupID; } throw new UnknownObjectException("unknown object: " + id); } + /** + * Returns the group entry for the group id, optionally removing it. + * Throws UnknownGroupException if the group is not registered. + */ + private GroupEntry getGroupEntry(ActivationGroupID id, boolean rm) + throws UnknownGroupException + { + if (id.getClass() == ActivationGroupID.class) { + GroupEntry entry; + if (rm) { + entry = groupTable.remove(id); + } else { + entry = groupTable.get(id); + } + if (entry != null && !entry.removed) { + return entry; + } + } + throw new UnknownGroupException("group unknown"); + } + /** * Returns the group entry for the group id. Throws * UnknownGroupException if the group is not registered. @@ -724,15 +751,17 @@ public class Activation implements Serializable { private GroupEntry getGroupEntry(ActivationGroupID id) throws UnknownGroupException { - if (id.getClass() == ActivationGroupID.class) { - synchronized (groupTable) { - GroupEntry entry = groupTable.get(id); - if (entry != null && !entry.removed) { - return entry; - } - } - } - throw new UnknownGroupException("group unknown"); + return getGroupEntry(id, false); + } + + /** + * Removes and returns the group entry for the group id. Throws + * UnknownGroupException if the group is not registered. + */ + private GroupEntry removeGroupEntry(ActivationGroupID id) + throws UnknownGroupException + { + return getGroupEntry(id, true); } /** @@ -744,11 +773,9 @@ public class Activation implements Serializable { throws UnknownObjectException { ActivationGroupID gid = getGroupID(id); - synchronized (groupTable) { - GroupEntry entry = groupTable.get(gid); - if (entry != null) { - return entry; - } + GroupEntry entry = groupTable.get(gid); + if (entry != null && !entry.removed) { + return entry; } throw new UnknownObjectException("object's group removed"); } @@ -882,9 +909,7 @@ public class Activation implements Serializable { } // table insertion must take place before log update - synchronized (idTable) { - idTable.put(id, groupID); - } + idTable.put(id, groupID); if (addRecord) { addLogRecord(new LogRegisterObject(id, desc)); @@ -901,10 +926,8 @@ public class Activation implements Serializable { restartSet.remove(id); } - // table insertion must take place before log update - synchronized (idTable) { - idTable.remove(id); - } + // table removal must take place before log update + idTable.remove(id); if (addRecord) { addLogRecord(new LogUnregisterObject(id)); } @@ -919,9 +942,7 @@ public class Activation implements Serializable { objects.entrySet()) { ActivationID id = entry.getKey(); - synchronized (idTable) { - idTable.remove(id); - } + idTable.remove(id); ObjectEntry objEntry = entry.getValue(); objEntry.removed = true; } From 1a7f59d292a3b75fa9b7db38db05343cb241a3f3 Mon Sep 17 00:00:00 2001 From: Mike Duigou <mduigou@openjdk.org> Date: Wed, 20 Apr 2011 17:20:00 -0700 Subject: [PATCH 015/147] 6546713: link the word (optional) in exception specifications to the text which provides explanation and context Reviewed-by: dholmes, dl --- .../share/classes/java/util/AbstractSet.java | 6 ++- .../share/classes/java/util/ArrayList.java | 12 ++++-- .../share/classes/java/util/Collection.java | 36 +++++++++++----- .../share/classes/java/util/Collections.java | 5 ++- jdk/src/share/classes/java/util/Deque.java | 24 +++++++---- jdk/src/share/classes/java/util/List.java | 43 +++++++++++++------ jdk/src/share/classes/java/util/Map.java | 25 +++++++---- jdk/src/share/classes/java/util/Set.java | 31 ++++++++----- jdk/src/share/classes/java/util/Vector.java | 14 ++++-- 9 files changed, 133 insertions(+), 63 deletions(-) diff --git a/jdk/src/share/classes/java/util/AbstractSet.java b/jdk/src/share/classes/java/util/AbstractSet.java index b99da00826d..1f1a49c250e 100644 --- a/jdk/src/share/classes/java/util/AbstractSet.java +++ b/jdk/src/share/classes/java/util/AbstractSet.java @@ -156,9 +156,11 @@ public abstract class AbstractSet<E> extends AbstractCollection<E> implements Se * @throws UnsupportedOperationException if the <tt>removeAll</tt> operation * is not supported by this set * @throws ClassCastException if the class of an element of this set - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this set contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) diff --git a/jdk/src/share/classes/java/util/ArrayList.java b/jdk/src/share/classes/java/util/ArrayList.java index 128ec5b5fd8..14b0fbf5599 100644 --- a/jdk/src/share/classes/java/util/ArrayList.java +++ b/jdk/src/share/classes/java/util/ArrayList.java @@ -628,9 +628,11 @@ public class ArrayList<E> extends AbstractList<E> * @param c collection containing elements to be removed from this list * @return {@code true} if this list changed as a result of the call * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see Collection#contains(Object) */ @@ -646,9 +648,11 @@ public class ArrayList<E> extends AbstractList<E> * @param c collection containing elements to be retained in this list * @return {@code true} if this list changed as a result of the call * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see Collection#contains(Object) */ diff --git a/jdk/src/share/classes/java/util/Collection.java b/jdk/src/share/classes/java/util/Collection.java index 7d0bcdc5aa3..b8f5869e861 100644 --- a/jdk/src/share/classes/java/util/Collection.java +++ b/jdk/src/share/classes/java/util/Collection.java @@ -60,7 +60,8 @@ package java.util; * but is not required to, throw the exception if the collection to be added * is empty. * - * <p>Some collection implementations have restrictions on the elements that + * <p><a name="optional-restrictions"/> + * Some collection implementations have restrictions on the elements that * they may contain. For example, some implementations prohibit null elements, * and some have restrictions on the types of their elements. Attempting to * add an ineligible element throws an unchecked exception, typically @@ -152,9 +153,11 @@ public interface Collection<E> extends Iterable<E> { * @return <tt>true</tt> if this collection contains the specified * element * @throws ClassCastException if the type of the specified element - * is incompatible with this collection (optional) + * is incompatible with this collection + * (<a href="#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * collection does not permit null elements (optional) + * collection does not permit null elements + * (<a href="#optional-restrictions">optional</a>) */ boolean contains(Object o); @@ -279,9 +282,11 @@ public interface Collection<E> extends Iterable<E> { * @param o element to be removed from this collection, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the type of the specified element - * is incompatible with this collection (optional) + * is incompatible with this collection + * (<a href="#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * collection does not permit null elements (optional) + * collection does not permit null elements + * (<a href="#optional-restrictions">optional</a>) * @throws UnsupportedOperationException if the <tt>remove</tt> operation * is not supported by this collection */ @@ -299,10 +304,13 @@ public interface Collection<E> extends Iterable<E> { * in the specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this - * collection (optional) + * collection + * (<a href="#optional-restrictions">optional</a>) * @throws NullPointerException if the specified collection contains one * or more null elements and this collection does not permit null - * elements (optional), or if the specified collection is null + * elements + * (<a href="#optional-restrictions">optional</a>), + * or if the specified collection is null. * @see #contains(Object) */ boolean containsAll(Collection<?> c); @@ -346,10 +354,13 @@ public interface Collection<E> extends Iterable<E> { * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified - * collection (optional) + * collection + * (<a href="#optional-restrictions">optional</a>) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not support - * null elements (optional), or if the specified collection is null + * null elements + * (<a href="#optional-restrictions">optional</a>), + * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ @@ -367,10 +378,13 @@ public interface Collection<E> extends Iterable<E> { * is not supported by this collection * @throws ClassCastException if the types of one or more elements * in this collection are incompatible with the specified - * collection (optional) + * collection + * (<a href="#optional-restrictions">optional</a>) * @throws NullPointerException if this collection contains one or more * null elements and the specified collection does not permit null - * elements (optional), or if the specified collection is null + * elements + * (<a href="#optional-restrictions">optional</a>), + * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) */ diff --git a/jdk/src/share/classes/java/util/Collections.java b/jdk/src/share/classes/java/util/Collections.java index 80221c8795b..d15a4292ddd 100644 --- a/jdk/src/share/classes/java/util/Collections.java +++ b/jdk/src/share/classes/java/util/Collections.java @@ -3746,9 +3746,10 @@ public class Collections { * @throws NullPointerException if either collection is {@code null}. * @throws NullPointerException if one collection contains a {@code null} * element and {@code null} is not an eligible element for the other collection. - * (optional) + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws ClassCastException if one collection contains an element that is - * of a type which is ineligible for the other collection. (optional) + * of a type which is ineligible for the other collection. + * (<a href="Collection.html#optional-restrictions">optional</a>) * @since 1.5 */ public static boolean disjoint(Collection<?> c1, Collection<?> c2) { diff --git a/jdk/src/share/classes/java/util/Deque.java b/jdk/src/share/classes/java/util/Deque.java index b5516211be6..051ae9cca46 100644 --- a/jdk/src/share/classes/java/util/Deque.java +++ b/jdk/src/share/classes/java/util/Deque.java @@ -351,9 +351,11 @@ public interface Deque<E> extends Queue<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) + * is incompatible with this deque + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * deque does not permit null elements (optional) + * deque does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean removeFirstOccurrence(Object o); @@ -369,9 +371,11 @@ public interface Deque<E> extends Queue<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) + * is incompatible with this deque + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * deque does not permit null elements (optional) + * deque does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean removeLastOccurrence(Object o); @@ -527,9 +531,11 @@ public interface Deque<E> extends Queue<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) + * is incompatible with this deque + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * deque does not permit null elements (optional) + * deque does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean remove(Object o); @@ -542,9 +548,11 @@ public interface Deque<E> extends Queue<E> { * @param o element whose presence in this deque is to be tested * @return <tt>true</tt> if this deque contains the specified element * @throws ClassCastException if the type of the specified element - * is incompatible with this deque (optional) + * is incompatible with this deque + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * deque does not permit null elements (optional) + * deque does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean contains(Object o); diff --git a/jdk/src/share/classes/java/util/List.java b/jdk/src/share/classes/java/util/List.java index 638fcc3a7d1..d3d2a1b8947 100644 --- a/jdk/src/share/classes/java/util/List.java +++ b/jdk/src/share/classes/java/util/List.java @@ -134,9 +134,11 @@ public interface List<E> extends Collection<E> { * @param o element whose presence in this list is to be tested * @return <tt>true</tt> if this list contains the specified element * @throws ClassCastException if the type of the specified element - * is incompatible with this list (optional) + * is incompatible with this list + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * list does not permit null elements (optional) + * list does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean contains(Object o); @@ -245,9 +247,11 @@ public interface List<E> extends Collection<E> { * @param o element to be removed from this list, if present * @return <tt>true</tt> if this list contained the specified element * @throws ClassCastException if the type of the specified element - * is incompatible with this list (optional) + * is incompatible with this list + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * list does not permit null elements (optional) + * list does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws UnsupportedOperationException if the <tt>remove</tt> operation * is not supported by this list */ @@ -265,10 +269,13 @@ public interface List<E> extends Collection<E> { * specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this - * list (optional) + * list + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified collection contains one * or more null elements and this list does not permit null - * elements (optional), or if the specified collection is null + * elements + * (<a href="Collection.html#optional-restrictions">optional</a>), + * or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection<?> c); @@ -334,9 +341,11 @@ public interface List<E> extends Collection<E> { * @throws UnsupportedOperationException if the <tt>removeAll</tt> operation * is not supported by this list * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) @@ -354,9 +363,11 @@ public interface List<E> extends Collection<E> { * @throws UnsupportedOperationException if the <tt>retainAll</tt> operation * is not supported by this list * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) @@ -493,9 +504,11 @@ public interface List<E> extends Collection<E> { * @return the index of the first occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element - * is incompatible with this list (optional) + * is incompatible with this list + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * list does not permit null elements (optional) + * list does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ int indexOf(Object o); @@ -510,9 +523,11 @@ public interface List<E> extends Collection<E> { * @return the index of the last occurrence of the specified element in * this list, or -1 if this list does not contain the element * @throws ClassCastException if the type of the specified element - * is incompatible with this list (optional) + * is incompatible with this list + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * list does not permit null elements (optional) + * list does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ int lastIndexOf(Object o); diff --git a/jdk/src/share/classes/java/util/Map.java b/jdk/src/share/classes/java/util/Map.java index 2f8f1315c1f..ccdb28813a2 100644 --- a/jdk/src/share/classes/java/util/Map.java +++ b/jdk/src/share/classes/java/util/Map.java @@ -144,9 +144,11 @@ public interface Map<K,V> { * @return <tt>true</tt> if this map contains a mapping for the specified * key * @throws ClassCastException if the key is of an inappropriate type for - * this map (optional) + * this map + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified key is null and this map - * does not permit null keys (optional) + * does not permit null keys + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean containsKey(Object key); @@ -162,9 +164,11 @@ public interface Map<K,V> { * @return <tt>true</tt> if this map maps one or more keys to the * specified value * @throws ClassCastException if the value is of an inappropriate type for - * this map (optional) + * this map + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified value is null and this - * map does not permit null values (optional) + * map does not permit null values + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean containsValue(Object value); @@ -187,9 +191,11 @@ public interface Map<K,V> { * @return the value to which the specified key is mapped, or * {@code null} if this map contains no mapping for the key * @throws ClassCastException if the key is of an inappropriate type for - * this map (optional) + * this map + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified key is null and this map - * does not permit null keys (optional) + * does not permit null keys + * (<a href="Collection.html#optional-restrictions">optional</a>) */ V get(Object key); @@ -245,9 +251,11 @@ public interface Map<K,V> { * @throws UnsupportedOperationException if the <tt>remove</tt> operation * is not supported by this map * @throws ClassCastException if the key is of an inappropriate type for - * this map (optional) + * this map + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified key is null and this - * map does not permit null keys (optional) + * map does not permit null keys + * (<a href="Collection.html#optional-restrictions">optional</a>) */ V remove(Object key); @@ -466,4 +474,5 @@ public interface Map<K,V> { * @see #equals(Object) */ int hashCode(); + } diff --git a/jdk/src/share/classes/java/util/Set.java b/jdk/src/share/classes/java/util/Set.java index 8d54f4f9d45..004e9708e56 100644 --- a/jdk/src/share/classes/java/util/Set.java +++ b/jdk/src/share/classes/java/util/Set.java @@ -110,9 +110,11 @@ public interface Set<E> extends Collection<E> { * @param o element whose presence in this set is to be tested * @return <tt>true</tt> if this set contains the specified element * @throws ClassCastException if the type of the specified element - * is incompatible with this set (optional) + * is incompatible with this set + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * set does not permit null elements (optional) + * set does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) */ boolean contains(Object o); @@ -236,9 +238,11 @@ public interface Set<E> extends Collection<E> { * @param o object to be removed from this set, if present * @return <tt>true</tt> if this set contained the specified element * @throws ClassCastException if the type of the specified element - * is incompatible with this set (optional) + * is incompatible with this set + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified element is null and this - * set does not permit null elements (optional) + * set does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws UnsupportedOperationException if the <tt>remove</tt> operation * is not supported by this set */ @@ -257,10 +261,13 @@ public interface Set<E> extends Collection<E> { * specified collection * @throws ClassCastException if the types of one or more elements * in the specified collection are incompatible with this - * set (optional) + * set + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified collection contains one * or more null elements and this set does not permit null - * elements (optional), or if the specified collection is null + * elements + * (<a href="Collection.html#optional-restrictions">optional</a>), + * or if the specified collection is null * @see #contains(Object) */ boolean containsAll(Collection<?> c); @@ -302,9 +309,11 @@ public interface Set<E> extends Collection<E> { * @throws UnsupportedOperationException if the <tt>retainAll</tt> operation * is not supported by this set * @throws ClassCastException if the class of an element of this set - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this set contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) */ @@ -322,9 +331,11 @@ public interface Set<E> extends Collection<E> { * @throws UnsupportedOperationException if the <tt>removeAll</tt> operation * is not supported by this set * @throws ClassCastException if the class of an element of this set - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this set contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) * @see #contains(Object) diff --git a/jdk/src/share/classes/java/util/Vector.java b/jdk/src/share/classes/java/util/Vector.java index 0c89889b19b..0d69591abce 100644 --- a/jdk/src/share/classes/java/util/Vector.java +++ b/jdk/src/share/classes/java/util/Vector.java @@ -893,10 +893,13 @@ public class Vector<E> * @return true if this Vector changed as a result of the call * @throws ClassCastException if the types of one or more elements * in this vector are incompatible with the specified - * collection (optional) + * collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this vector contains one or more null * elements and the specified collection does not support null - * elements (optional), or if the specified collection is null + * elements + * (<a href="Collection.html#optional-restrictions">optional</a>), + * or if the specified collection is null * @since 1.2 */ public synchronized boolean removeAll(Collection<?> c) { @@ -913,10 +916,13 @@ public class Vector<E> * @return true if this Vector changed as a result of the call * @throws ClassCastException if the types of one or more elements * in this vector are incompatible with the specified - * collection (optional) + * collection + * (<a href="Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this vector contains one or more null * elements and the specified collection does not support null - * elements (optional), or if the specified collection is null + * elements + * (<a href="Collection.html#optional-restrictions">optional</a>), + * or if the specified collection is null * @since 1.2 */ public synchronized boolean retainAll(Collection<?> c) { From 43b343694ff97dfb6bdf67ec43f59f1c779ddda3 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 20 Apr 2011 20:15:27 -0700 Subject: [PATCH 016/147] 7035843: [zh_CN, ja] JConsole mnemonic keys don't work Reviewed-by: ogino --- .../resources/JConsoleResources_ja.java | 58 ++++++++--------- .../resources/JConsoleResources_zh_CN.java | 64 +++++++++---------- 2 files changed, 61 insertions(+), 61 deletions(-) diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java index 8d9e61d27ba..b0709d06e15 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java @@ -103,9 +103,9 @@ public class JConsoleResources_ja extends JConsoleResources { {"CPUUsageFormat","CPU\u4F7F\u7528\u7387: {0}%"}, {"Cancel","\u53D6\u6D88"}, {"Cascade", "\u91CD\u306D\u3066\u8868\u793A(C)"}, - {"Cascade.mnemonic", "C"}, + {"Cascade.mnemonic", 'C'}, {"Chart:", "\u30C1\u30E3\u30FC\u30C8(C):"}, - {"Chart:.mnemonic", "C"}, + {"Chart:.mnemonic", 'C'}, {"Class path","\u30AF\u30E9\u30B9\u30D1\u30B9"}, {"Class","\u30AF\u30E9\u30B9"}, {"ClassName","ClassName"}, @@ -122,7 +122,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"CompositeData","CompositeData"}, {"Config","\u69CB\u6210"}, {"Connect", "\u63A5\u7D9A(C)"}, - {"Connect.mnemonic", "C"}, + {"Connect.mnemonic", 'C'}, {"Connect...","\u63A5\u7D9A..."}, {"ConnectDialog.connectButton.toolTip", "Java\u4EEE\u60F3\u30DE\u30B7\u30F3\u306B\u63A5\u7D9A"}, {"ConnectDialog.accessibleDescription", "\u30ED\u30FC\u30AB\u30EB\u307E\u305F\u306F\u30EA\u30E2\u30FC\u30C8\u306EJava\u4EEE\u60F3\u30DE\u30B7\u30F3\u3078\u306E\u65B0\u898F\u63A5\u7D9A\u3092\u884C\u3046\u30C0\u30A4\u30A2\u30ED\u30B0"}, @@ -133,7 +133,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Connected. Click to disconnect.","\u63A5\u7D9A\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u3068\u5207\u65AD\u3057\u307E\u3059\u3002"}, {"Connection failed","\u63A5\u7D9A\u306B\u5931\u6557\u3057\u307E\u3057\u305F"}, {"Connection", "\u63A5\u7D9A(C)"}, - {"Connection.mnemonic", "C"}, + {"Connection.mnemonic", 'C'}, {"Connection name", "\u63A5\u7D9A\u540D"}, {"ConnectionName (disconnected)","{0} (\u5207\u65AD\u6E08)"}, {"Constructor","\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF"}, @@ -150,7 +150,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Descriptor", "\u8A18\u8FF0\u5B50"}, {"Details", "\u8A73\u7D30"}, {"Detect Deadlock", "\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u306E\u691C\u51FA(D)"}, - {"Detect Deadlock.mnemonic", "D"}, + {"Detect Deadlock.mnemonic", 'D'}, {"Detect Deadlock.toolTip", "\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u6E08\u30B9\u30EC\u30C3\u30C9\u306E\u691C\u51FA"}, {"Dimension is not supported:","\u6B21\u5143\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093:"}, {"Discard chart", "\u30C1\u30E3\u30FC\u30C8\u306E\u7834\u68C4"}, @@ -168,7 +168,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Error:","\u30A8\u30E9\u30FC:"}, {"Event","\u30A4\u30D9\u30F3\u30C8"}, {"Exit", "\u7D42\u4E86(X)"}, - {"Exit.mnemonic", "X"}, + {"Exit.mnemonic", 'X'}, {"Fail to load plugin", "\u8B66\u544A: \u30D7\u30E9\u30B0\u30A4\u30F3\u306E\u30ED\u30FC\u30C9\u306B\u5931\u6557\u3057\u307E\u3057\u305F: {0}"}, {"FileChooser.fileExists.cancelOption", "\u53D6\u6D88"}, {"FileChooser.fileExists.message", "<html><center>\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u3066\u3044\u307E\u3059:<br>{0}<br>\u7F6E\u63DB\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\u3002"}, @@ -193,16 +193,16 @@ public class JConsoleResources_ja extends JConsoleResources { {"Help.AboutDialog.masthead.title", "JConsole\u306B\u3064\u3044\u3066"}, {"Help.AboutDialog.title", "JConsole: \u8A73\u7D30"}, {"Help.AboutDialog.userGuideLink", "JConsole\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9(U):<br>{0}"}, - {"Help.AboutDialog.userGuideLink.mnemonic", "U"}, + {"Help.AboutDialog.userGuideLink.mnemonic", 'U'}, {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "JConsole\u306B\u3064\u3044\u3066(A)"}, - {"HelpMenu.About.title.mnemonic", "A"}, + {"HelpMenu.About.title.mnemonic", 'A'}, {"HelpMenu.UserGuide.title", "\u30AA\u30F3\u30E9\u30A4\u30F3\u30FB\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9(U)"}, - {"HelpMenu.UserGuide.title.mnemonic", "U"}, + {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u30D8\u30EB\u30D7(H)"}, - {"HelpMenu.title.mnemonic", "H"}, + {"HelpMenu.title.mnemonic", 'H'}, {"Hotspot MBeans...", "Hotspot MBeans(H)..."}, - {"Hotspot MBeans....mnemonic", "H"}, + {"Hotspot MBeans....mnemonic", 'H'}, {"Hotspot MBeans.dialog.accessibleDescription", "Hotspot MBeans\u306E\u7BA1\u7406\u7528\u30C0\u30A4\u30A2\u30ED\u30B0"}, {"Impact","\u5F71\u97FF"}, {"Info","\u60C5\u5831"}, @@ -222,7 +222,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Live Threads","\u5B9F\u884C\u4E2D\u306E\u30B9\u30EC\u30C3\u30C9"}, {"Loaded", "\u30ED\u30FC\u30C9\u6E08"}, {"Local Process:", "\u30ED\u30FC\u30AB\u30EB\u30FB\u30D7\u30ED\u30BB\u30B9(L):"}, - {"Local Process:.mnemonic", "L"}, + {"Local Process:.mnemonic", 'L'}, {"Look and Feel","Look&Feel"}, {"Masthead.font", "Dialog-PLAIN-25"}, {"Management Not Enabled","<b>\u6CE8\u610F</b>: \u7BA1\u7406\u30A8\u30FC\u30B8\u30A7\u30F3\u30C8\u306F\u3053\u306E\u30D7\u30ED\u30BB\u30B9\u3067\u306F\u6709\u52B9\u5316\u3055\u308C\u307E\u305B\u3093\u3002"}, @@ -233,20 +233,20 @@ public class JConsoleResources_ja extends JConsoleResources { {"MBeanOperationInfo","MBeanOperationInfo"}, {"MBeans","MBeans"}, {"MBeansTab.clearNotificationsButton", "\u30AF\u30EA\u30A2(C)"}, - {"MBeansTab.clearNotificationsButton.mnemonic", "C"}, + {"MBeansTab.clearNotificationsButton.mnemonic", 'C'}, {"MBeansTab.clearNotificationsButton.toolTip", "\u901A\u77E5\u306E\u30AF\u30EA\u30A2"}, {"MBeansTab.compositeNavigationMultiple", "\u30B3\u30F3\u30DD\u30B8\u30C3\u30C8\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3{0}/{1}"}, {"MBeansTab.compositeNavigationSingle", "\u30B3\u30F3\u30DD\u30B8\u30C3\u30C8\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"}, {"MBeansTab.refreshAttributesButton", "\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5(R)"}, - {"MBeansTab.refreshAttributesButton.mnemonic", "R"}, + {"MBeansTab.refreshAttributesButton.mnemonic", 'R'}, {"MBeansTab.refreshAttributesButton.toolTip", "\u5C5E\u6027\u306E\u30EA\u30D5\u30EC\u30C3\u30B7\u30E5"}, {"MBeansTab.subscribeNotificationsButton", "\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6(S)"}, - {"MBeansTab.subscribeNotificationsButton.mnemonic", "S"}, + {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'}, {"MBeansTab.subscribeNotificationsButton.toolTip", "\u901A\u77E5\u30EA\u30B9\u30CB\u30F3\u30B0\u306E\u958B\u59CB"}, {"MBeansTab.tabularNavigationMultiple", "\u30BF\u30D6\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3{0}/{1}"}, {"MBeansTab.tabularNavigationSingle", "\u30BF\u30D6\u30FB\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3"}, {"MBeansTab.unsubscribeNotificationsButton", "\u30B5\u30D6\u30B9\u30AF\u30E9\u30A4\u30D6\u89E3\u9664(U)"}, - {"MBeansTab.unsubscribeNotificationsButton.mnemonic", "U"}, + {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'}, {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u901A\u77E5\u30EA\u30B9\u30CB\u30F3\u30B0\u306E\u505C\u6B62"}, {"Manage Hotspot MBeans in: ", "Hotspot MBeans\u306E\u7BA1\u7406: "}, {"Max","\u6700\u5927"}, @@ -263,7 +263,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Message","\u30E1\u30C3\u30BB\u30FC\u30B8"}, {"Method successfully invoked", "\u30E1\u30BD\u30C3\u30C9\u304C\u6B63\u5E38\u306B\u8D77\u52D5\u3055\u308C\u307E\u3057\u305F"}, {"Minimize All", "\u3059\u3079\u3066\u6700\u5C0F\u5316(M)"}, - {"Minimize All.mnemonic", "M"}, + {"Minimize All.mnemonic", 'M'}, {"Minus Version", "\u3053\u308C\u306F{0}\u306E\u30D0\u30FC\u30B8\u30E7\u30F3{1}\u3067\u3059"}, {"Monitor locked", " - \u30ED\u30C3\u30AF\u6E08{0}\n"}, @@ -279,7 +279,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Name State LockName LockOwner", "\u540D\u524D: {0}\n\u72B6\u614B: {2}\u306E{1}\u3001\u6240\u6709\u8005: {3}\n"}, {"New Connection...", "\u65B0\u898F\u63A5\u7D9A(N)..."}, - {"New Connection....mnemonic", "N"}, + {"New Connection....mnemonic", 'N'}, {"New value applied","\u9069\u7528\u3055\u308C\u305F\u65B0\u898F\u5024"}, {"No attribute selected","\u5C5E\u6027\u304C\u9078\u629E\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"}, {"No deadlock detected","\u30C7\u30C3\u30C9\u30ED\u30C3\u30AF\u304C\u691C\u51FA\u3055\u308C\u307E\u305B\u3093\u3067\u3057\u305F"}, @@ -305,19 +305,19 @@ public class JConsoleResources_ja extends JConsoleResources { {"OverviewPanel.plotter.accessibleName", "{0}\u306E\u30C1\u30E3\u30FC\u30C8\u3002"}, {"Parameter", "\u30D1\u30E9\u30E1\u30FC\u30BF"}, {"Password: ", "\u30D1\u30B9\u30EF\u30FC\u30C9(P): "}, - {"Password: .mnemonic", "P"}, + {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u30D1\u30B9\u30EF\u30FC\u30C9"}, {"Peak","\u30D4\u30FC\u30AF"}, {"Perform GC", "GC\u306E\u5B9F\u884C(G)"}, - {"Perform GC.mnemonic", "G"}, + {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"}, {"Plotter.accessibleName", "\u30C1\u30E3\u30FC\u30C8"}, {"Plotter.accessibleName.keyAndValue", "{0}={1}\n"}, {"Plotter.accessibleName.noData", "\u30C7\u30FC\u30BF\u304C\u30D7\u30ED\u30C3\u30C8\u3055\u308C\u307E\u305B\u3093\u3002"}, {"Plotter.saveAsMenuItem", "\u540D\u524D\u3092\u4ED8\u3051\u3066\u30C7\u30FC\u30BF\u3092\u4FDD\u5B58(A)..."}, - {"Plotter.saveAsMenuItem.mnemonic", "A"}, + {"Plotter.saveAsMenuItem.mnemonic", 'A'}, {"Plotter.timeRangeMenu", "\u6642\u9593\u7BC4\u56F2(T)"}, - {"Plotter.timeRangeMenu.mnemonic", "T"}, + {"Plotter.timeRangeMenu.mnemonic", 'T'}, {"Problem adding listener","\u30EA\u30B9\u30CA\u30FC\u8FFD\u52A0\u4E2D\u306E\u554F\u984C"}, {"Problem displaying MBean", "MBean\u8868\u793A\u4E2D\u306E\u554F\u984C"}, {"Problem invoking", "\u547C\u51FA\u3057\u4E2D\u306E\u554F\u984C"}, @@ -329,11 +329,11 @@ public class JConsoleResources_ja extends JConsoleResources { {"Received","\u53D7\u4FE1\u6E08"}, {"Reconnect","\u518D\u63A5\u7D9A"}, {"Remote Process:", "\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9(R):"}, - {"Remote Process:.mnemonic", "R"}, + {"Remote Process:.mnemonic", 'R'}, {"Remote Process.textField.accessibleName", "\u30EA\u30E2\u30FC\u30C8\u30FB\u30D7\u30ED\u30BB\u30B9"}, {"Remove","\u524A\u9664"}, {"Restore All", "\u3059\u3079\u3066\u5FA9\u5143(R)"}, - {"Restore All.mnemonic", "R"}, + {"Restore All.mnemonic", 'R'}, {"Return value", "\u623B\u308A\u5024"}, {"ReturnType", "ReturnType"}, {"SeqNum","SeqNum"}, @@ -364,9 +364,9 @@ public class JConsoleResources_ja extends JConsoleResources { {"ThreadTab.threadPlotter.accessibleName", "\u30B9\u30EC\u30C3\u30C9\u6570\u306E\u30C1\u30E3\u30FC\u30C8\u3002"}, {"Threshold","\u3057\u304D\u3044\u5024"}, {"Tile", "\u4E26\u3079\u3066\u8868\u793A(T)"}, - {"Tile.mnemonic", "T"}, + {"Tile.mnemonic", 'T'}, {"Time Range:", "\u6642\u9593\u7BC4\u56F2(T):"}, - {"Time Range:.mnemonic", "T"}, + {"Time Range:.mnemonic", 'T'}, {"Time", "\u6642\u9593"}, {"TimeStamp","TimeStamp"}, {"Total Loaded", "\u30ED\u30FC\u30C9\u6E08\u5408\u8A08"}, @@ -387,7 +387,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"remoteTF.usage","<b>\u4F7F\u7528\u65B9\u6CD5</b>: <hostname>:<port>\u307E\u305F\u306Fservice:jmx:<protocol>:<sap>"}, {"Used","\u4F7F\u7528\u6E08"}, {"Username: ", "\u30E6\u30FC\u30B6\u30FC\u540D(U): "}, - {"Username: .mnemonic", "U"}, + {"Username: .mnemonic", 'U'}, {"Username.accessibleName", "\u30E6\u30FC\u30B6\u30FC\u540D"}, {"UserData","UserData"}, {"Virtual Machine","\u4EEE\u60F3\u30DE\u30B7\u30F3"}, @@ -400,8 +400,8 @@ public class JConsoleResources_ja extends JConsoleResources { {"Verbose Output.toolTip", "\u30AF\u30E9\u30B9\u8AAD\u8FBC\u307F\u30B7\u30B9\u30C6\u30E0\u3067\u8A73\u7D30\u51FA\u529B\u3092\u6709\u52B9\u306B\u3059\u308B"}, {"View value", "\u5024\u306E\u8868\u793A"}, {"View","\u8868\u793A"}, - {"Window", "\u30A6\u30A3\u30F3\u30C9\u30A6"}, - {"Window.mnemonic", "W"}, + {"Window", "\u30A6\u30A3\u30F3\u30C9\u30A6(W)"}, + {"Window.mnemonic", 'W'}, {"Windows","\u30A6\u30A3\u30F3\u30C9\u30A6"}, {"Writable","\u66F8\u8FBC\u307F\u53EF\u80FD"}, {"You cannot drop a class here", "\u30AF\u30E9\u30B9\u3092\u3053\u3053\u306B\u30C9\u30ED\u30C3\u30D7\u3067\u304D\u307E\u305B\u3093"}, diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java index 54d7793f9d7..07f132b4752 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java @@ -102,10 +102,10 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"CPU Usage","CPU \u5360\u7528\u7387"}, {"CPUUsageFormat","CPU \u5360\u7528\u7387: {0}%"}, {"Cancel","\u53D6\u6D88"}, - {"Cascade", "\u7EA7\u8054(C)"}, - {"Cascade.mnemonic", "C"}, + {"Cascade", "\u5C42\u53E0(C)"}, + {"Cascade.mnemonic", 'C'}, {"Chart:", "\u56FE\u8868(C):"}, - {"Chart:.mnemonic", "C"}, + {"Chart:.mnemonic", 'C'}, {"Class path","\u7C7B\u8DEF\u5F84"}, {"Class","\u7C7B"}, {"ClassName","ClassName"}, @@ -122,7 +122,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"CompositeData","CompositeData"}, {"Config","\u914D\u7F6E"}, {"Connect", "\u8FDE\u63A5(C)"}, - {"Connect.mnemonic", "C"}, + {"Connect.mnemonic", 'C'}, {"Connect...","\u8FDE\u63A5..."}, {"ConnectDialog.connectButton.toolTip", "\u8FDE\u63A5\u5230 Java \u865A\u62DF\u673A"}, {"ConnectDialog.accessibleDescription", "\u7528\u4E8E\u4E0E\u672C\u5730\u6216\u8FDC\u7A0B Java \u865A\u62DF\u673A\u5EFA\u7ACB\u65B0\u8FDE\u63A5\u7684\u5BF9\u8BDD\u6846"}, @@ -133,7 +133,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Connected. Click to disconnect.","\u5DF2\u8FDE\u63A5\u3002\u5355\u51FB\u53EF\u65AD\u5F00\u8FDE\u63A5\u3002"}, {"Connection failed","\u8FDE\u63A5\u5931\u8D25"}, {"Connection", "\u8FDE\u63A5(C)"}, - {"Connection.mnemonic", "C"}, + {"Connection.mnemonic", 'C'}, {"Connection name", "\u8FDE\u63A5\u540D\u79F0"}, {"ConnectionName (disconnected)","{0} (\u5DF2\u65AD\u5F00\u8FDE\u63A5)"}, {"Constructor","\u6784\u9020\u5668"}, @@ -150,7 +150,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Descriptor", "\u63CF\u8FF0\u7B26"}, {"Details", "\u8BE6\u7EC6\u8D44\u6599"}, {"Detect Deadlock", "\u68C0\u6D4B\u6B7B\u9501(D)"}, - {"Detect Deadlock.mnemonic", "D"}, + {"Detect Deadlock.mnemonic", 'D'}, {"Detect Deadlock.toolTip", "\u68C0\u6D4B\u5904\u4E8E\u6B7B\u9501\u72B6\u6001\u7684\u7EBF\u7A0B"}, {"Dimension is not supported:","\u4E0D\u652F\u6301\u7EF4:"}, {"Discard chart", "\u653E\u5F03\u56FE\u8868"}, @@ -168,7 +168,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Error:","\u9519\u8BEF:"}, {"Event","\u4E8B\u4EF6"}, {"Exit", "\u9000\u51FA(X)"}, - {"Exit.mnemonic", "X"}, + {"Exit.mnemonic", 'X'}, {"Fail to load plugin", "\u8B66\u544A: \u65E0\u6CD5\u52A0\u8F7D\u63D2\u4EF6: {0}"}, {"FileChooser.fileExists.cancelOption", "\u53D6\u6D88"}, {"FileChooser.fileExists.message", "<html><center>\u6587\u4EF6\u5DF2\u5B58\u5728:<br>{0}<br>\u662F\u5426\u8981\u66FF\u6362?"}, @@ -193,17 +193,17 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Help.AboutDialog.masthead.title", "\u5173\u4E8E JConsole"}, {"Help.AboutDialog.title", "JConsole: \u5173\u4E8E"}, {"Help.AboutDialog.userGuideLink", "JConsole \u7528\u6237\u6307\u5357(U):<br>{0}"}, - {"Help.AboutDialog.userGuideLink.mnemonic", "U"}, + {"Help.AboutDialog.userGuideLink.mnemonic", 'U'}, {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "\u5173\u4E8E JConsole(A)"}, - {"HelpMenu.About.title.mnemonic", "A"}, + {"HelpMenu.About.title.mnemonic", 'A'}, {"HelpMenu.UserGuide.title", "\u8054\u673A\u7528\u6237\u6307\u5357(U)"}, - {"HelpMenu.UserGuide.title.mnemonic", "U"}, + {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u5E2E\u52A9(H)"}, - {"HelpMenu.title.mnemonic", "H"}, - {"Hotspot MBeans...", "\u70ED\u70B9 MBean(H)..."}, - {"Hotspot MBeans....mnemonic", "H"}, - {"Hotspot MBeans.dialog.accessibleDescription", "\u7528\u4E8E\u7BA1\u7406\u70ED\u70B9 MBean \u7684\u5BF9\u8BDD\u6846"}, + {"HelpMenu.title.mnemonic", 'H'}, + {"Hotspot MBeans...", "HotSpot MBean(H)..."}, + {"Hotspot MBeans....mnemonic", 'H'}, + {"Hotspot MBeans.dialog.accessibleDescription", "\u7528\u4E8E\u7BA1\u7406 HotSpot MBean \u7684\u5BF9\u8BDD\u6846"}, {"Impact","\u5F71\u54CD"}, {"Info","\u4FE1\u606F"}, {"INFO","INFO"}, @@ -222,7 +222,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Live Threads","\u6D3B\u52A8\u7EBF\u7A0B"}, {"Loaded", "\u5DF2\u52A0\u8F7D"}, {"Local Process:", "\u672C\u5730\u8FDB\u7A0B(L):"}, - {"Local Process:.mnemonic", "L"}, + {"Local Process:.mnemonic", 'L'}, {"Look and Feel","\u5916\u89C2"}, {"Masthead.font", "Dialog-PLAIN-25"}, {"Management Not Enabled","<b>\u6CE8</b>: \u672A\u5BF9\u6B64\u8FDB\u7A0B\u542F\u7528\u7BA1\u7406\u4EE3\u7406\u3002"}, @@ -233,22 +233,22 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"MBeanOperationInfo","MBeanOperationInfo"}, {"MBeans","MBean"}, {"MBeansTab.clearNotificationsButton", "\u6E05\u9664(C)"}, - {"MBeansTab.clearNotificationsButton.mnemonic", "C"}, + {"MBeansTab.clearNotificationsButton.mnemonic", 'C'}, {"MBeansTab.clearNotificationsButton.toolTip", "\u6E05\u9664\u901A\u77E5"}, {"MBeansTab.compositeNavigationMultiple", "\u7EC4\u5408\u5BFC\u822A{0}/{1}"}, {"MBeansTab.compositeNavigationSingle", "\u7EC4\u5408\u5BFC\u822A"}, {"MBeansTab.refreshAttributesButton", "\u5237\u65B0(R)"}, - {"MBeansTab.refreshAttributesButton.mnemonic", "R"}, + {"MBeansTab.refreshAttributesButton.mnemonic", 'R'}, {"MBeansTab.refreshAttributesButton.toolTip", "\u5237\u65B0\u5C5E\u6027"}, {"MBeansTab.subscribeNotificationsButton", "\u8BA2\u9605(S)"}, - {"MBeansTab.subscribeNotificationsButton.mnemonic", "S"}, + {"MBeansTab.subscribeNotificationsButton.mnemonic", 'S'}, {"MBeansTab.subscribeNotificationsButton.toolTip", "\u5F00\u59CB\u76D1\u542C\u901A\u77E5"}, {"MBeansTab.tabularNavigationMultiple", "\u8868\u683C\u5F0F\u5BFC\u822A{0}/{1}"}, {"MBeansTab.tabularNavigationSingle", "\u8868\u683C\u5F0F\u5BFC\u822A"}, {"MBeansTab.unsubscribeNotificationsButton", "\u53D6\u6D88\u8BA2\u9605(U)"}, - {"MBeansTab.unsubscribeNotificationsButton.mnemonic", "U"}, + {"MBeansTab.unsubscribeNotificationsButton.mnemonic", 'U'}, {"MBeansTab.unsubscribeNotificationsButton.toolTip", "\u505C\u6B62\u76D1\u542C\u901A\u77E5"}, - {"Manage Hotspot MBeans in: ", "\u7BA1\u7406\u4EE5\u4E0B\u4F4D\u7F6E\u7684\u70ED\u70B9 MBean: "}, + {"Manage Hotspot MBeans in: ", "\u7BA1\u7406\u4EE5\u4E0B\u4F4D\u7F6E\u7684 HotSpot MBean: "}, {"Max","\u6700\u5927\u503C"}, {"Maximum heap size","\u6700\u5927\u5806\u5927\u5C0F"}, {"Memory","\u5185\u5B58"}, @@ -263,7 +263,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Message","\u6D88\u606F"}, {"Method successfully invoked", "\u5DF2\u6210\u529F\u8C03\u7528\u65B9\u6CD5"}, {"Minimize All", "\u5168\u90E8\u6700\u5C0F\u5316(M)"}, - {"Minimize All.mnemonic", "M"}, + {"Minimize All.mnemonic", 'M'}, {"Minus Version", "\u8FD9\u662F{0}\u7248\u672C {1}"}, {"Monitor locked", " - \u5DF2\u9501\u5B9A{0}\n"}, @@ -279,7 +279,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Name State LockName LockOwner", "\u540D\u79F0: {0}\n\u72B6\u6001: {2}\u4E0A\u7684{1}, \u62E5\u6709\u8005: {3}\n"}, {"New Connection...", "\u65B0\u5EFA\u8FDE\u63A5(N)..."}, - {"New Connection....mnemonic", "N"}, + {"New Connection....mnemonic", 'N'}, {"New value applied","\u5DF2\u5E94\u7528\u65B0\u503C"}, {"No attribute selected","\u672A\u9009\u62E9\u5C5E\u6027"}, {"No deadlock detected","\u672A\u68C0\u6D4B\u5230\u6B7B\u9501"}, @@ -305,19 +305,19 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"OverviewPanel.plotter.accessibleName", "{0}\u7684\u56FE\u8868\u3002"}, {"Parameter", "\u53C2\u6570"}, {"Password: ", "\u53E3\u4EE4(P): "}, - {"Password: .mnemonic", "P"}, + {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u53E3\u4EE4"}, {"Peak","\u5CF0\u503C"}, {"Perform GC", "\u6267\u884C GC(G)"}, - {"Perform GC.mnemonic", "G"}, + {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u8BF7\u6C42\u5783\u573E\u6536\u96C6"}, {"Plotter.accessibleName", "\u56FE\u8868"}, {"Plotter.accessibleName.keyAndValue", "{0}={1}\n"}, {"Plotter.accessibleName.noData", "\u672A\u7ED8\u5236\u6570\u636E\u3002"}, {"Plotter.saveAsMenuItem", "\u5C06\u6570\u636E\u53E6\u5B58\u4E3A(A)..."}, - {"Plotter.saveAsMenuItem.mnemonic", "A"}, + {"Plotter.saveAsMenuItem.mnemonic", 'A'}, {"Plotter.timeRangeMenu", "\u65F6\u95F4\u8303\u56F4(T)"}, - {"Plotter.timeRangeMenu.mnemonic", "T"}, + {"Plotter.timeRangeMenu.mnemonic", 'T'}, {"Problem adding listener","\u6DFB\u52A0\u76D1\u542C\u7A0B\u5E8F\u65F6\u51FA\u73B0\u95EE\u9898"}, {"Problem displaying MBean", "\u663E\u793A MBean \u65F6\u51FA\u73B0\u95EE\u9898"}, {"Problem invoking", "\u8C03\u7528\u65F6\u51FA\u73B0\u95EE\u9898"}, @@ -329,11 +329,11 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Received","\u6536\u5230"}, {"Reconnect","\u91CD\u65B0\u8FDE\u63A5"}, {"Remote Process:", "\u8FDC\u7A0B\u8FDB\u7A0B(R):"}, - {"Remote Process:.mnemonic", "R"}, + {"Remote Process:.mnemonic", 'R'}, {"Remote Process.textField.accessibleName", "\u8FDC\u7A0B\u8FDB\u7A0B"}, {"Remove","\u5220\u9664"}, {"Restore All", "\u5168\u90E8\u8FD8\u539F(R)"}, - {"Restore All.mnemonic", "R"}, + {"Restore All.mnemonic", 'R'}, {"Return value", "\u8FD4\u56DE\u503C"}, {"ReturnType", "ReturnType"}, {"SeqNum","SeqNum"}, @@ -364,9 +364,9 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"ThreadTab.threadPlotter.accessibleName", "\u8868\u793A\u7EBF\u7A0B\u6570\u7684\u56FE\u8868\u3002"}, {"Threshold","\u9608\u503C"}, {"Tile", "\u5E73\u94FA(T)"}, - {"Tile.mnemonic", "T"}, + {"Tile.mnemonic", 'T'}, {"Time Range:", "\u65F6\u95F4\u8303\u56F4(T):"}, - {"Time Range:.mnemonic", "T"}, + {"Time Range:.mnemonic", 'T'}, {"Time", "\u65F6\u95F4"}, {"TimeStamp","TimeStamp"}, {"Total Loaded", "\u52A0\u8F7D\u603B\u6570"}, @@ -387,7 +387,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"remoteTF.usage","<b>\u7528\u6CD5</b>: <hostname>:<port> \u6216 service:jmx:<protocol>:<sap>"}, {"Used","\u5DF2\u7528"}, {"Username: ", "\u7528\u6237\u540D(U): "}, - {"Username: .mnemonic", "U"}, + {"Username: .mnemonic", 'U'}, {"Username.accessibleName", "\u7528\u6237\u540D"}, {"UserData","UserData"}, {"Virtual Machine","\u865A\u62DF\u673A"}, @@ -401,7 +401,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"View value", "\u89C6\u56FE\u503C"}, {"View","\u89C6\u56FE"}, {"Window", "\u7A97\u53E3(W)"}, - {"Window.mnemonic", "W"}, + {"Window.mnemonic", 'W'}, {"Windows","Windows"}, {"Writable","\u53EF\u5199"}, {"You cannot drop a class here", "\u65E0\u6CD5\u5220\u9664\u6B64\u5904\u7684\u7C7B"}, From 90df638cdcc3f7651ba244ee0c7c16b2701f310b Mon Sep 17 00:00:00 2001 From: Pavel Porvatov <rupashka@openjdk.org> Date: Thu, 21 Apr 2011 14:29:23 +0400 Subject: [PATCH 017/147] 7021058: The Create folder button produces error in the Details mode (JFileChooser) Reviewed-by: malenkov --- jdk/src/share/classes/sun/swing/FilePane.java | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/jdk/src/share/classes/sun/swing/FilePane.java b/jdk/src/share/classes/sun/swing/FilePane.java index a5e7dffda32..5bf5c1f43b0 100644 --- a/jdk/src/share/classes/sun/swing/FilePane.java +++ b/jdk/src/share/classes/sun/swing/FilePane.java @@ -763,7 +763,7 @@ public class FilePane extends JPanel implements PropertyChangeListener { public void setValueAt(Object value, int row, int col) { if (col == COLUMN_FILENAME) { - JFileChooser chooser = getFileChooser(); + final JFileChooser chooser = getFileChooser(); File f = (File)getValueAt(row, col); if (f != null) { String oldDisplayName = chooser.getName(f); @@ -782,18 +782,25 @@ public class FilePane extends JPanel implements PropertyChangeListener { // rename FileSystemView fsv = chooser.getFileSystemView(); - File f2 = fsv.createFileObject(f.getParentFile(), newFileName); + final File f2 = fsv.createFileObject(f.getParentFile(), newFileName); if (f2.exists()) { JOptionPane.showMessageDialog(chooser, MessageFormat.format(renameErrorFileExistsText, oldFileName), renameErrorTitleText, JOptionPane.ERROR_MESSAGE); } else { if (FilePane.this.getModel().renameFile(f, f2)) { if (fsv.isParent(chooser.getCurrentDirectory(), f2)) { - if (chooser.isMultiSelectionEnabled()) { - chooser.setSelectedFiles(new File[]{f2}); - } else { - chooser.setSelectedFile(f2); - } + // The setSelectedFile method produces a new setValueAt invocation while the JTable + // is editing. Postpone file selection to be sure that edit mode of the JTable + // is completed + SwingUtilities.invokeLater(new Runnable() { + public void run() { + if (chooser.isMultiSelectionEnabled()) { + chooser.setSelectedFiles(new File[]{f2}); + } else { + chooser.setSelectedFile(f2); + } + } + }); } else { // Could be because of delay in updating Desktop folder // chooser.setSelectedFile(null); From 6e092bff6a4c7ff85d8f26234ac68b769bc79ff2 Mon Sep 17 00:00:00 2001 From: Doug Lea <dl@openjdk.org> Date: Thu, 21 Apr 2011 13:53:27 +0100 Subject: [PATCH 018/147] 7038501: Clarify meaning of "(optional)" in javadoc Reviewed-by: chegar --- .../java/util/concurrent/BlockingDeque.java | 24 ++++++++++++------- .../java/util/concurrent/BlockingQueue.java | 12 ++++++---- .../java/util/concurrent/ConcurrentMap.java | 6 +++-- .../util/concurrent/CopyOnWriteArrayList.java | 12 ++++++---- 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java b/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java index 3134eae8ec5..7f37f7e66ea 100644 --- a/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java +++ b/jdk/src/share/classes/java/util/concurrent/BlockingDeque.java @@ -400,8 +400,10 @@ public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this deque + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ boolean removeFirstOccurrence(Object o); @@ -416,8 +418,10 @@ public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if an element was removed as a result of this call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this deque + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ boolean removeLastOccurrence(Object o); @@ -591,8 +595,10 @@ public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E> { * @param o element to be removed from this deque, if present * @return <tt>true</tt> if this deque changed as a result of the call * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this deque + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ boolean remove(Object o); @@ -604,8 +610,10 @@ public interface BlockingDeque<E> extends BlockingQueue<E>, Deque<E> { * @param o object to be checked for containment in this deque * @return <tt>true</tt> if this deque contains the specified element * @throws ClassCastException if the class of the specified element - * is incompatible with this deque (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this deque + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ public boolean contains(Object o); diff --git a/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java b/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java index 9886e6da3c1..4511d27efd7 100644 --- a/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/BlockingQueue.java @@ -303,8 +303,10 @@ public interface BlockingQueue<E> extends Queue<E> { * @param o element to be removed from this queue, if present * @return <tt>true</tt> if this queue changed as a result of the call * @throws ClassCastException if the class of the specified element - * is incompatible with this queue (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this queue + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ boolean remove(Object o); @@ -316,8 +318,10 @@ public interface BlockingQueue<E> extends Queue<E> { * @param o object to be checked for containment in this queue * @return <tt>true</tt> if this queue contains the specified element * @throws ClassCastException if the class of the specified element - * is incompatible with this queue (optional) - * @throws NullPointerException if the specified element is null (optional) + * is incompatible with this queue + * (<a href="../Collection.html#optional-restrictions">optional</a>) + * @throws NullPointerException if the specified element is null + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ public boolean contains(Object o); diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java index 25cf98ff0f1..4434c0563b4 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentMap.java @@ -103,9 +103,11 @@ public interface ConcurrentMap<K, V> extends Map<K, V> { * @throws UnsupportedOperationException if the <tt>remove</tt> operation * is not supported by this map * @throws ClassCastException if the key or value is of an inappropriate - * type for this map (optional) + * type for this map + * (<a href="../Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if the specified key or value is null, - * and this map does not permit null keys or values (optional) + * and this map does not permit null keys or values + * (<a href="../Collection.html#optional-restrictions">optional</a>) */ boolean remove(Object key, Object value); diff --git a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java index 2774e61136a..785ec6fcede 100644 --- a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java +++ b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java @@ -631,9 +631,11 @@ public class CopyOnWriteArrayList<E> * @param c collection containing elements to be removed from this list * @return <tt>true</tt> if this list changed as a result of the call * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="../Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="../Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) */ @@ -671,9 +673,11 @@ public class CopyOnWriteArrayList<E> * @param c collection containing elements to be retained in this list * @return <tt>true</tt> if this list changed as a result of the call * @throws ClassCastException if the class of an element of this list - * is incompatible with the specified collection (optional) + * is incompatible with the specified collection + * (<a href="../Collection.html#optional-restrictions">optional</a>) * @throws NullPointerException if this list contains a null element and the - * specified collection does not permit null elements (optional), + * specified collection does not permit null elements + * (<a href="../Collection.html#optional-restrictions">optional</a>), * or if the specified collection is null * @see #remove(Object) */ From c74acca8b088533afc78d90d5b88cc56c2263b8b Mon Sep 17 00:00:00 2001 From: Vinnie Ryan <vinnie@openjdk.org> Date: Thu, 21 Apr 2011 14:23:57 +0100 Subject: [PATCH 019/147] 6888925: SunMSCAPI's Cipher can't use RSA public keys obtained from other sources Reviewed-by: mullan --- .../sun/security/mscapi/RSACipher.java | 41 ++++++++- .../sun/security/mscapi/RSAPublicKey.java | 6 +- .../sun/security/mscapi/RSASignature.java | 6 +- .../sun/security/mscapi/PublicKeyInterop.java | 92 +++++++++++++++++++ .../sun/security/mscapi/PublicKeyInterop.sh | 84 +++++++++++++++++ 5 files changed, 222 insertions(+), 7 deletions(-) create mode 100644 jdk/test/sun/security/mscapi/PublicKeyInterop.java create mode 100644 jdk/test/sun/security/mscapi/PublicKeyInterop.sh diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java b/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java index 8838cbe8e48..3421450b922 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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,6 +25,7 @@ package sun.security.mscapi; +import java.math.BigInteger; import java.security.*; import java.security.Key; import java.security.interfaces.*; @@ -33,6 +34,8 @@ import java.security.spec.*; import javax.crypto.*; import javax.crypto.spec.*; +import sun.security.rsa.RSAKeyFactory; + /** * RSA cipher implementation using the Microsoft Crypto API. * Supports RSA en/decryption and signing/verifying using PKCS#1 v1.5 padding. @@ -189,8 +192,38 @@ public final class RSACipher extends CipherSpi { default: throw new InvalidKeyException("Unknown mode: " + opmode); } + if (!(key instanceof sun.security.mscapi.Key)) { - throw new InvalidKeyException("Unsupported key type: " + key); + if (key instanceof java.security.interfaces.RSAPublicKey) { + java.security.interfaces.RSAPublicKey rsaKey = + (java.security.interfaces.RSAPublicKey) key; + + // Convert key to MSCAPI format + + BigInteger modulus = rsaKey.getModulus(); + BigInteger exponent = rsaKey.getPublicExponent(); + + // Check against the local and global values to make sure + // the sizes are ok. Round up to the nearest byte. + RSAKeyFactory.checkKeyLengths(((modulus.bitLength() + 7) & ~7), + exponent, -1, RSAKeyPairGenerator.KEY_SIZE_MAX); + + byte[] modulusBytes = modulus.toByteArray(); + byte[] exponentBytes = exponent.toByteArray(); + + // Adjust key length due to sign bit + int keyBitLength = (modulusBytes[0] == 0) + ? (modulusBytes.length - 1) * 8 + : modulusBytes.length * 8; + + byte[] keyBlob = RSASignature.generatePublicKeyBlob( + keyBitLength, modulusBytes, exponentBytes); + + key = RSASignature.importPublicKey(keyBlob, keyBitLength); + + } else { + throw new InvalidKeyException("Unsupported key type: " + key); + } } if (key instanceof PublicKey) { @@ -358,6 +391,10 @@ public final class RSACipher extends CipherSpi { if (key instanceof sun.security.mscapi.Key) { return ((sun.security.mscapi.Key) key).bitLength(); + + } else if (key instanceof RSAKey) { + return ((RSAKey) key).getModulus().bitLength(); + } else { throw new InvalidKeyException("Unsupported key type: " + key); } diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java index 9e454e75e5d..b652fabf729 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -91,7 +91,7 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey if (exponent == null) { publicKeyBlob = getPublicKeyBlob(hCryptKey); - exponent = new BigInteger(getExponent(publicKeyBlob)); + exponent = new BigInteger(1, getExponent(publicKeyBlob)); } return exponent; @@ -104,7 +104,7 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey if (modulus == null) { publicKeyBlob = getPublicKeyBlob(hCryptKey); - modulus = new BigInteger(getModulus(publicKeyBlob)); + modulus = new BigInteger(1, getModulus(publicKeyBlob)); } return modulus; diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java index bb0be095cf6..1c80cc029b9 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java @@ -379,11 +379,13 @@ abstract class RSASignature extends java.security.SignatureSpi /** * Generates a public-key BLOB from a key's components. */ - private native byte[] generatePublicKeyBlob( + // used by RSACipher + static native byte[] generatePublicKeyBlob( int keyBitLength, byte[] modulus, byte[] publicExponent); /** * Imports a public-key BLOB. */ - private native RSAPublicKey importPublicKey(byte[] keyBlob, int keySize); + // used by RSACipher + static native RSAPublicKey importPublicKey(byte[] keyBlob, int keySize); } diff --git a/jdk/test/sun/security/mscapi/PublicKeyInterop.java b/jdk/test/sun/security/mscapi/PublicKeyInterop.java new file mode 100644 index 00000000000..53d5b094681 --- /dev/null +++ b/jdk/test/sun/security/mscapi/PublicKeyInterop.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2011, 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. + */ + +/** + * @see PublicKeyInterop.sh + */ + +import java.security.*; +import java.util.*; +import javax.crypto.*; + +import sun.misc.HexDumpEncoder; + +/* + * Confirm interoperability of RSA public keys between SunMSCAPI and SunJCE + * security providers. + */ +public class PublicKeyInterop { + + public static void main(String[] arg) throws Exception { + PrivateKey privKey = null; + Certificate cert = null; + KeyStore ks = KeyStore.getInstance("Windows-MY"); + ks.load(null, null); + System.out.println("Loaded keystore: Windows-MY"); + + PublicKey myPuKey = + (PublicKey) ks.getCertificate("6888925").getPublicKey(); + System.out.println("Public key is a " + myPuKey.getClass().getName()); + PrivateKey myPrKey = (PrivateKey) ks.getKey("6888925", null); + System.out.println("Private key is a " + myPrKey.getClass().getName()); + System.out.println(); + + byte[] plain = new byte[] {0x01, 0x02, 0x03, 0x04, 0x05}; + HexDumpEncoder hde = new HexDumpEncoder(); + System.out.println("Plaintext:\n" + hde.encode(plain) + "\n"); + + Cipher rsa = Cipher.getInstance("RSA/ECB/PKCS1Padding"); + rsa.init(Cipher.ENCRYPT_MODE, myPuKey); + byte[] encrypted = rsa.doFinal(plain); + System.out.println("Encrypted plaintext using RSA Cipher from " + + rsa.getProvider().getName() + " JCE provider\n"); + System.out.println(hde.encode(encrypted) + "\n"); + + Cipher rsa2 = Cipher.getInstance("RSA/ECB/PKCS1Padding", "SunMSCAPI"); + rsa2.init(Cipher.ENCRYPT_MODE, myPuKey); + byte[] encrypted2 = rsa2.doFinal(plain); + System.out.println("Encrypted plaintext using RSA Cipher from " + + rsa2.getProvider().getName() + " JCE provider\n"); + System.out.println(hde.encode(encrypted2) + "\n"); + + Cipher rsa3 = Cipher.getInstance("RSA/ECB/PKCS1Padding", "SunMSCAPI"); + rsa3.init(Cipher.DECRYPT_MODE, myPrKey); + byte[] decrypted = rsa3.doFinal(encrypted); + System.out.println("Decrypted first ciphertext using RSA Cipher from " + + rsa3.getProvider().getName() + " JCE provider\n"); + System.out.println(hde.encode(decrypted) + "\n"); + if (! Arrays.equals(plain, decrypted)) { + throw new Exception("First decrypted ciphertext does not match " + + "original plaintext"); + } + + decrypted = rsa3.doFinal(encrypted2); + System.out.println("Decrypted second ciphertext using RSA Cipher from " + + rsa3.getProvider().getName() + " JCE provider\n"); + System.out.println(hde.encode(decrypted) + "\n"); + if (! Arrays.equals(plain, decrypted)) { + throw new Exception("Second decrypted ciphertext does not match " + + "original plaintext"); + } + } +} diff --git a/jdk/test/sun/security/mscapi/PublicKeyInterop.sh b/jdk/test/sun/security/mscapi/PublicKeyInterop.sh new file mode 100644 index 00000000000..1967e63d266 --- /dev/null +++ b/jdk/test/sun/security/mscapi/PublicKeyInterop.sh @@ -0,0 +1,84 @@ +#!/bin/sh + +# +# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + +# @test +# @bug 6888925 +# @run shell PublicKeyInterop.sh +# @summary SunMSCAPI's Cipher can't use RSA public keys obtained from other +# sources. +# + +# set a few environment variables so that the shell-script can run stand-alone +# in the source directory +if [ "${TESTSRC}" = "" ] ; then + TESTSRC="." +fi + +if [ "${TESTCLASSES}" = "" ] ; then + TESTCLASSES="." +fi + +if [ "${TESTJAVA}" = "" ] ; then + echo "TESTJAVA not set. Test cannot execute." + echo "FAILED!!!" + exit 1 +fi + +OS=`uname -s` +case "$OS" in + Windows* | CYGWIN* ) + + echo "Creating a temporary RSA keypair in the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -genkeypair \ + -storetype Windows-My \ + -keyalg RSA \ + -alias 6888925 \ + -dname "cn=6888925,c=US" \ + -noprompt + + echo + echo "Running the test..." + ${TESTJAVA}/bin/javac -d . ${TESTSRC}\\PublicKeyInterop.java + ${TESTJAVA}/bin/java PublicKeyInterop + + rc=$? + + echo + echo "Removing the temporary RSA keypair from the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -delete \ + -storetype Windows-My \ + -alias 6888925 + + echo done. + exit $rc + ;; + + * ) + echo "This test is not intended for '$OS' - passing test" + exit 0 + ;; +esac From 9d72155fc57c598370bf1f7ec12435a7602882f8 Mon Sep 17 00:00:00 2001 From: Doug Lea <dl@openjdk.org> Date: Thu, 21 Apr 2011 17:00:23 +0100 Subject: [PATCH 020/147] 7038542: Small performace regression in ConcurrentHashMap on c1 since CR 703655 Reviewed-by: chegar --- .../util/concurrent/ConcurrentHashMap.java | 63 +++++++++++++------ 1 file changed, 43 insertions(+), 20 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java index c66a82e6305..e82148069b4 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentHashMap.java @@ -239,7 +239,8 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> /** * Gets the ith element of given table (if nonnull) with volatile - * read semantics. + * read semantics. Note: This is manually integrated into a few + * performance-sensitive methods to reduce call overhead. */ @SuppressWarnings("unchecked") static final <K,V> HashEntry<K,V> entryAt(HashEntry<K,V>[] tab, int i) { @@ -389,8 +390,7 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> else node = new HashEntry<K,V>(hash, key, value, first); int c = count + 1; - if (c > threshold && first != null && - tab.length < MAXIMUM_CAPACITY) + if (c > threshold && tab.length < MAXIMUM_CAPACITY) rehash(node); else setEntryAt(tab, index, node); @@ -647,7 +647,11 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> /** * Gets the jth element of given segment array (if nonnull) with - * volatile element access semantics via Unsafe. + * volatile element access semantics via Unsafe. (The null check + * can trigger harmlessly only during deserialization.) Note: + * because each element of segments array is set only once (using + * fully ordered writes), some performance-sensitive methods rely + * on this method only as a recheck upon null reads. */ @SuppressWarnings("unchecked") static final <K,V> Segment<K,V> segmentAt(Segment<K,V>[] ss, int j) { @@ -913,12 +917,19 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * @throws NullPointerException if the specified key is null */ public V get(Object key) { - int hash = hash(key.hashCode()); - for (HashEntry<K,V> e = entryForHash(segmentForHash(hash), hash); - e != null; e = e.next) { - K k; - if ((k = e.key) == key || (e.hash == hash && key.equals(k))) - return e.value; + Segment<K,V> s; // manually integrate access methods to reduce overhead + HashEntry<K,V>[] tab; + int h = hash(key.hashCode()); + long u = (((h >>> segmentShift) & segmentMask) << SSHIFT) + SBASE; + if ((s = (Segment<K,V>)UNSAFE.getObjectVolatile(segments, u)) != null && + (tab = s.table) != null) { + for (HashEntry<K,V> e = (HashEntry<K,V>) UNSAFE.getObjectVolatile + (tab, ((long)(((tab.length - 1) & h)) << TSHIFT) + TBASE); + e != null; e = e.next) { + K k; + if ((k = e.key) == key || (e.hash == h && key.equals(k))) + return e.value; + } } return null; } @@ -932,13 +943,21 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * <tt>equals</tt> method; <tt>false</tt> otherwise. * @throws NullPointerException if the specified key is null */ + @SuppressWarnings("unchecked") public boolean containsKey(Object key) { - int hash = hash(key.hashCode()); - for (HashEntry<K,V> e = entryForHash(segmentForHash(hash), hash); - e != null; e = e.next) { - K k; - if ((k = e.key) == key || (e.hash == hash && key.equals(k))) - return true; + Segment<K,V> s; // same as get() except no need for volatile value read + HashEntry<K,V>[] tab; + int h = hash(key.hashCode()); + long u = (((h >>> segmentShift) & segmentMask) << SSHIFT) + SBASE; + if ((s = (Segment<K,V>)UNSAFE.getObjectVolatile(segments, u)) != null && + (tab = s.table) != null) { + for (HashEntry<K,V> e = (HashEntry<K,V>) UNSAFE.getObjectVolatile + (tab, ((long)(((tab.length - 1) & h)) << TSHIFT) + TBASE); + e != null; e = e.next) { + K k; + if ((k = e.key) == key || (e.hash == h && key.equals(k))) + return true; + } } return false; } @@ -1032,13 +1051,15 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * <tt>null</tt> if there was no mapping for <tt>key</tt> * @throws NullPointerException if the specified key or value is null */ + @SuppressWarnings("unchecked") public V put(K key, V value) { + Segment<K,V> s; if (value == null) throw new NullPointerException(); int hash = hash(key.hashCode()); int j = (hash >>> segmentShift) & segmentMask; - Segment<K,V> s = segmentAt(segments, j); - if (s == null) + if ((s = (Segment<K,V>)UNSAFE.getObject // nonvolatile; recheck + (segments, (j << SSHIFT) + SBASE)) == null) // in ensureSegment s = ensureSegment(j); return s.put(key, hash, value, false); } @@ -1050,13 +1071,15 @@ public class ConcurrentHashMap<K, V> extends AbstractMap<K, V> * or <tt>null</tt> if there was no mapping for the key * @throws NullPointerException if the specified key or value is null */ + @SuppressWarnings("unchecked") public V putIfAbsent(K key, V value) { + Segment<K,V> s; if (value == null) throw new NullPointerException(); int hash = hash(key.hashCode()); int j = (hash >>> segmentShift) & segmentMask; - Segment<K,V> s = segmentAt(segments, j); - if (s == null) + if ((s = (Segment<K,V>)UNSAFE.getObject + (segments, (j << SSHIFT) + SBASE)) == null) s = ensureSegment(j); return s.put(key, hash, value, true); } From d617d849a08d94ea99725af709e2aa03138bc1ad Mon Sep 17 00:00:00 2001 From: Vinnie Ryan <vinnie@openjdk.org> Date: Thu, 21 Apr 2011 19:05:29 +0100 Subject: [PATCH 021/147] 6732372: Some MSCAPI native methods not returning correct exceptions Reviewed-by: mullan --- .../sun/security/ec/ECKeyPairGenerator.java | 21 ++++++----- .../classes/sun/security/mscapi/KeyStore.java | 37 +++++++++++++------ .../sun/security/mscapi/RSACipher.java | 7 +++- .../security/mscapi/RSAKeyPairGenerator.java | 20 ++++++---- .../sun/security/mscapi/RSAPublicKey.java | 29 +++++++++++---- .../sun/security/mscapi/RSASignature.java | 16 ++++++-- .../native/sun/security/mscapi/security.cpp | 8 ++-- 7 files changed, 93 insertions(+), 45 deletions(-) diff --git a/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java b/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java index 6f994ec1f5e..046fb42b7d2 100644 --- a/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java +++ b/jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -121,15 +121,16 @@ public final class ECKeyPairGenerator extends KeyPairGeneratorSpi { } random.nextBytes(seed); - long[] handles = generateECKeyPair(keySize, encodedParams, seed); - - // The 'params' object supplied above is equivalent to the native one - // so there is no need to fetch it. - - // handles[0] points to the native private key - BigInteger s = new BigInteger(1, getEncodedBytes(handles[0])); - try { + + long[] handles = generateECKeyPair(keySize, encodedParams, seed); + + // The 'params' object supplied above is equivalent to the native + // one so there is no need to fetch it. + + // handles[0] points to the native private key + BigInteger s = new BigInteger(1, getEncodedBytes(handles[0])); + PrivateKey privateKey = new ECPrivateKeyImpl(s, (ECParameterSpec)params); @@ -163,7 +164,7 @@ public final class ECKeyPairGenerator extends KeyPairGeneratorSpi { * The first handle points to the private key, the second to the public key. */ private static native long[] generateECKeyPair(int keySize, - byte[] encodedParams, byte[] seed); + byte[] encodedParams, byte[] seed) throws GeneralSecurityException; /* * Extracts the encoded key data using the supplied handle. diff --git a/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java b/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java index a89aae18e29..55ac6161074 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java +++ b/jdk/src/windows/classes/sun/security/mscapi/KeyStore.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -31,6 +31,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.math.BigInteger; import java.security.AccessController; +import java.security.InvalidKeyException; import java.security.KeyStoreSpi; import java.security.KeyStoreException; import java.security.UnrecoverableKeyException; @@ -123,6 +124,7 @@ abstract class KeyStore extends KeyStoreSpi { * Sets the private key for the keystore entry. */ void setPrivateKey(RSAPrivateCrtKey key) + throws InvalidKeyException, KeyStoreException { byte[] modulusBytes = key.getModulus().toByteArray(); @@ -158,7 +160,7 @@ abstract class KeyStore extends KeyStoreSpi { * Sets the certificate chain for the keystore entry. */ void setCertificateChain(X509Certificate[] chain) - throws CertificateException + throws CertificateException, KeyStoreException { for (int i = 0; i < chain.length; i++) { byte[] encoding = chain[i].getEncoded(); @@ -404,13 +406,16 @@ abstract class KeyStore extends KeyStoreSpi { } entry.setAlias(alias); - entry.setPrivateKey((RSAPrivateCrtKey) key); try { + entry.setPrivateKey((RSAPrivateCrtKey) key); entry.setCertificateChain((X509Certificate[]) chain); } catch (CertificateException ce) { throw new KeyStoreException(ce); + + } catch (InvalidKeyException ike) { + throw new KeyStoreException(ike); } } else { @@ -537,7 +542,7 @@ abstract class KeyStore extends KeyStoreSpi { removeCertificate(getName(), alias, encoding, encoding.length); - } catch (CertificateEncodingException e) { + } catch (CertificateException e) { throw new KeyStoreException("Cannot remove entry: " + e); } @@ -754,8 +759,14 @@ abstract class KeyStore extends KeyStoreSpi { // Clear all key entries entries.clear(); - // Load keys and/or certificate chains - loadKeysOrCertificateChains(getName(), entries); + try { + + // Load keys and/or certificate chains + loadKeysOrCertificateChains(getName(), entries); + + } catch (KeyStoreException e) { + throw new IOException(e); + } } /** @@ -868,7 +879,7 @@ abstract class KeyStore extends KeyStoreSpi { * @param entries Collection of key/certificate. */ private native void loadKeysOrCertificateChains(String name, - Collection<KeyEntry> entries); + Collection<KeyEntry> entries) throws KeyStoreException; /** * Stores a DER-encoded certificate into the certificate store @@ -879,7 +890,7 @@ abstract class KeyStore extends KeyStoreSpi { */ private native void storeCertificate(String name, String alias, byte[] encoding, int encodingLength, long hCryptProvider, - long hCryptKey); + long hCryptKey) throws CertificateException, KeyStoreException; /** * Removes the certificate from the certificate store @@ -889,14 +900,16 @@ abstract class KeyStore extends KeyStoreSpi { * @param encoding DER-encoded certificate. */ private native void removeCertificate(String name, String alias, - byte[] encoding, int encodingLength); + byte[] encoding, int encodingLength) + throws CertificateException, KeyStoreException; /** * Destroys the key container. * * @param keyContainerName The name of the key container. */ - private native void destroyKeyContainer(String keyContainerName); + private native void destroyKeyContainer(String keyContainerName) + throws KeyStoreException; /** * Generates a private-key BLOB from a key's components. @@ -910,8 +923,8 @@ abstract class KeyStore extends KeyStoreSpi { byte[] primeQ, byte[] exponentP, byte[] exponentQ, - byte[] crtCoefficient); + byte[] crtCoefficient) throws InvalidKeyException; private native RSAPrivateKey storePrivateKey(byte[] keyBlob, - String keyContainerName, int keySize); + String keyContainerName, int keySize) throws KeyStoreException; } diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java b/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java index 3421450b922..4b146539caf 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java @@ -219,7 +219,12 @@ public final class RSACipher extends CipherSpi { byte[] keyBlob = RSASignature.generatePublicKeyBlob( keyBitLength, modulusBytes, exponentBytes); - key = RSASignature.importPublicKey(keyBlob, keyBitLength); + try { + key = RSASignature.importPublicKey(keyBlob, keyBitLength); + + } catch (KeyStoreException e) { + throw new InvalidKeyException(e); + } } else { throw new InvalidKeyException("Unsupported key type: " + key); diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java b/jdk/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java index a5afe5c16e1..f0d193eb8a6 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSAKeyPairGenerator.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -105,14 +105,20 @@ public final class RSAKeyPairGenerator extends KeyPairGeneratorSpi { // generate the keypair. See JCA doc public KeyPair generateKeyPair() { - // Generate each keypair in a unique key container - RSAKeyPair keys = - generateRSAKeyPair(keySize, - "{" + UUID.randomUUID().toString() + "}"); + try { - return new KeyPair(keys.getPublic(), keys.getPrivate()); + // Generate each keypair in a unique key container + RSAKeyPair keys = + generateRSAKeyPair(keySize, + "{" + UUID.randomUUID().toString() + "}"); + + return new KeyPair(keys.getPublic(), keys.getPrivate()); + + } catch (KeyException e) { + throw new ProviderException(e); + } } private static native RSAKeyPair generateRSAKeyPair(int keySize, - String keyContainerName); + String keyContainerName) throws KeyException; } diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java index b652fabf729..68148b0e4b5 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSAPublicKey.java @@ -27,7 +27,9 @@ package sun.security.mscapi; import java.math.BigInteger; import java.security.InvalidKeyException; +import java.security.KeyException; import java.security.KeyRep; +import java.security.ProviderException; import java.security.PublicKey; import sun.security.rsa.RSAPublicKeyImpl; @@ -89,9 +91,14 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey public BigInteger getPublicExponent() { if (exponent == null) { - publicKeyBlob = getPublicKeyBlob(hCryptKey); - exponent = new BigInteger(1, getExponent(publicKeyBlob)); + try { + publicKeyBlob = getPublicKeyBlob(hCryptKey); + exponent = new BigInteger(1, getExponent(publicKeyBlob)); + + } catch (KeyException e) { + throw new ProviderException(e); + } } return exponent; @@ -103,8 +110,14 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey public BigInteger getModulus() { if (modulus == null) { - publicKeyBlob = getPublicKeyBlob(hCryptKey); - modulus = new BigInteger(1, getModulus(publicKeyBlob)); + + try { + publicKeyBlob = getPublicKeyBlob(hCryptKey); + modulus = new BigInteger(1, getModulus(publicKeyBlob)); + + } catch (KeyException e) { + throw new ProviderException(e); + } } return modulus; @@ -147,7 +160,7 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey encoding = new RSAPublicKeyImpl(getModulus(), getPublicExponent()).getEncoded(); - } catch (InvalidKeyException e) { + } catch (KeyException e) { // ignore } } @@ -164,15 +177,15 @@ class RSAPublicKey extends Key implements java.security.interfaces.RSAPublicKey /* * Returns the Microsoft CryptoAPI representation of the key. */ - private native byte[] getPublicKeyBlob(long hCryptKey); + private native byte[] getPublicKeyBlob(long hCryptKey) throws KeyException; /* * Returns the key's public exponent (in big-endian 2's complement format). */ - private native byte[] getExponent(byte[] keyBlob); + private native byte[] getExponent(byte[] keyBlob) throws KeyException; /* * Returns the key's modulus (in big-endian 2's complement format). */ - private native byte[] getModulus(byte[] keyBlob); + private native byte[] getModulus(byte[] keyBlob) throws KeyException; } diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java index 1c80cc029b9..7e80490e652 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -31,6 +31,7 @@ import java.security.PrivateKey; import java.security.InvalidKeyException; import java.security.InvalidParameterException; import java.security.InvalidAlgorithmParameterException; +import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.ProviderException; import java.security.MessageDigest; @@ -146,7 +147,12 @@ abstract class RSASignature extends java.security.SignatureSpi byte[] keyBlob = generatePublicKeyBlob( keyBitLength, modulusBytes, exponentBytes); - publicKey = importPublicKey(keyBlob, keyBitLength); + try { + publicKey = importPublicKey(keyBlob, keyBitLength); + + } catch (KeyStoreException e) { + throw new InvalidKeyException(e); + } } else { publicKey = (sun.security.mscapi.RSAPublicKey) key; @@ -381,11 +387,13 @@ abstract class RSASignature extends java.security.SignatureSpi */ // used by RSACipher static native byte[] generatePublicKeyBlob( - int keyBitLength, byte[] modulus, byte[] publicExponent); + int keyBitLength, byte[] modulus, byte[] publicExponent) + throws InvalidKeyException; /** * Imports a public-key BLOB. */ // used by RSACipher - static native RSAPublicKey importPublicKey(byte[] keyBlob, int keySize); + static native RSAPublicKey importPublicKey(byte[] keyBlob, int keySize) + throws KeyStoreException; } diff --git a/jdk/src/windows/native/sun/security/mscapi/security.cpp b/jdk/src/windows/native/sun/security/mscapi/security.cpp index ed3b16fbca5..f92cc9a9e9e 100644 --- a/jdk/src/windows/native/sun/security/mscapi/security.cpp +++ b/jdk/src/windows/native/sun/security/mscapi/security.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -40,6 +40,8 @@ #define CERTIFICATE_PARSING_EXCEPTION \ "java/security/cert/CertificateParsingException" +#define INVALID_KEY_EXCEPTION \ + "java/security/InvalidKeyException" #define KEY_EXCEPTION "java/security/KeyException" #define KEYSTORE_EXCEPTION "java/security/KeyStoreException" #define PROVIDER_EXCEPTION "java/security/ProviderException" @@ -1398,7 +1400,7 @@ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSAPublicKey_getPublicKeyB jbyteArray blob = NULL; DWORD dwBlobLen; - BYTE* pbKeyBlob; + BYTE* pbKeyBlob = NULL; __try { @@ -1656,7 +1658,7 @@ jbyteArray generateKeyBlob( // Sanity check jsize jPublicExponentLength = env->GetArrayLength(jPublicExponent); if (jPublicExponentLength > sizeof(pRsaPubKey->pubexp)) { - ThrowException(env, KEY_EXCEPTION, NTE_BAD_TYPE); + ThrowException(env, INVALID_KEY_EXCEPTION, NTE_BAD_TYPE); __leave; } // The length argument must be the smaller of jPublicExponentLength From 258130179836fe5418fe5f75f1b6382d1738228c Mon Sep 17 00:00:00 2001 From: Sean Mullan <mullan@openjdk.org> Date: Thu, 21 Apr 2011 17:39:28 -0400 Subject: [PATCH 022/147] 7038175: Expired PKITS certificates causing CertPathBuilder and CertPathValidator regression test failures Reviewed-by: xuelei --- .../certpath/CrlRevocationChecker.java | 5 +++-- .../certpath/DistributionPointFetcher.java | 18 +++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java index 1f692f235b6..977d465ac47 100644 --- a/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java +++ b/jdk/src/share/classes/sun/security/provider/certpath/CrlRevocationChecker.java @@ -312,7 +312,8 @@ class CrlRevocationChecker extends PKIXCertPathChecker { DistributionPointFetcher.getInstance(); // all CRLs returned by the DP Fetcher have also been verified mApprovedCRLs.addAll(store.getCRLs(sel, signFlag, prevKey, - mSigProvider, mStores, reasonsMask, trustAnchors)); + mSigProvider, mStores, reasonsMask, trustAnchors, + mParams.getDate())); } catch (Exception e) { if (debug != null) { debug.println("CrlRevocationChecker.verifyRevocationStatus() " @@ -769,7 +770,7 @@ class CrlRevocationChecker extends PKIXCertPathChecker { for (X509CRL crl : crls) { if (dpf.verifyCRL(certImpl, point, crl, reasonsMask, signFlag, prevKey, mSigProvider, - trustAnchors, mStores)) { + trustAnchors, mStores, mParams.getDate())) { results.add(crl); } } diff --git a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java index 56c5ab91c43..35d7b2c87e9 100644 --- a/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java +++ b/jdk/src/share/classes/sun/security/provider/certpath/DistributionPointFetcher.java @@ -90,8 +90,8 @@ class DistributionPointFetcher { */ Collection<X509CRL> getCRLs(X509CRLSelector selector, boolean signFlag, PublicKey prevKey, String provider, List<CertStore> certStores, - boolean[] reasonsMask, - Set<TrustAnchor> trustAnchors) throws CertStoreException { + boolean[] reasonsMask, Set<TrustAnchor> trustAnchors, + Date validity) throws CertStoreException { if (USE_CRLDP == false) { return Collections.emptySet(); @@ -122,7 +122,7 @@ class DistributionPointFetcher { DistributionPoint point = t.next(); Collection<X509CRL> crls = getCRLs(selector, certImpl, point, reasonsMask, signFlag, prevKey, provider, - certStores, trustAnchors); + certStores, trustAnchors, validity); results.addAll(crls); } if (debug != null) { @@ -143,7 +143,8 @@ class DistributionPointFetcher { private Collection<X509CRL> getCRLs(X509CRLSelector selector, X509CertImpl certImpl, DistributionPoint point, boolean[] reasonsMask, boolean signFlag, PublicKey prevKey, String provider, - List<CertStore> certStores, Set<TrustAnchor> trustAnchors) { + List<CertStore> certStores, Set<TrustAnchor> trustAnchors, + Date validity) { // check for full name GeneralNames fullName = point.getFullName(); @@ -196,7 +197,7 @@ class DistributionPointFetcher { selector.setIssuerNames(null); if (selector.match(crl) && verifyCRL(certImpl, point, crl, reasonsMask, signFlag, prevKey, provider, trustAnchors, - certStores)) { + certStores, validity)) { crls.add(crl); } } catch (Exception e) { @@ -280,13 +281,15 @@ class DistributionPointFetcher { * @param trustAnchors a {@code Set} of {@code TrustAnchor}s * @param certStores a {@code List} of {@code CertStore}s to be used in * finding certificates and CRLs + * @param validity the time for which the validity of the CRL issuer's + * certification path should be determined * @return true if ok, false if not */ boolean verifyCRL(X509CertImpl certImpl, DistributionPoint point, X509CRL crl, boolean[] reasonsMask, boolean signFlag, PublicKey prevKey, String provider, - Set<TrustAnchor> trustAnchors, - List<CertStore> certStores) throws CRLException, IOException { + Set<TrustAnchor> trustAnchors, List<CertStore> certStores, + Date validity) throws CRLException, IOException { boolean indirectCRL = false; X509CRLImpl crlImpl = X509CRLImpl.toImpl(crl); @@ -605,6 +608,7 @@ class DistributionPointFetcher { } params.setCertStores(certStores); params.setSigProvider(provider); + params.setDate(validity); try { CertPathBuilder builder = CertPathBuilder.getInstance("PKIX"); PKIXCertPathBuilderResult result = From 896553f4395e1373247869bf059b7ab4af6e1d24 Mon Sep 17 00:00:00 2001 From: Joe Darcy <darcy@openjdk.org> Date: Thu, 21 Apr 2011 15:55:59 -0700 Subject: [PATCH 023/147] 6998871: Support making the Throwable.stackTrace field immutable Reviewed-by: dholmes, mchung, forax --- .../java/lang/ArithmeticException.java | 3 +- jdk/src/share/classes/java/lang/Error.java | 31 ++- .../share/classes/java/lang/Exception.java | 22 ++- .../java/lang/NullPointerException.java | 3 +- .../classes/java/lang/OutOfMemoryError.java | 3 +- .../classes/java/lang/RuntimeException.java | 23 ++- .../share/classes/java/lang/Throwable.java | 185 ++++++++++++++---- jdk/src/share/native/java/lang/Throwable.c | 4 +- .../lang/Throwable/ChainedExceptions.java | 34 ++-- .../Throwable/StackTraceSerialization.java | 63 ++++-- .../lang/Throwable/SuppressedExceptions.java | 3 +- 11 files changed, 295 insertions(+), 79 deletions(-) diff --git a/jdk/src/share/classes/java/lang/ArithmeticException.java b/jdk/src/share/classes/java/lang/ArithmeticException.java index 0d6ed9164ef..af00777dbcd 100644 --- a/jdk/src/share/classes/java/lang/ArithmeticException.java +++ b/jdk/src/share/classes/java/lang/ArithmeticException.java @@ -32,7 +32,8 @@ package java.lang; * * {@code ArithmeticException} objects may be constructed by the * virtual machine as if {@linkplain Throwable#Throwable(String, - * Throwable, boolean) suppression were disabled}. + * Throwable, boolean, boolean) suppression were disabled and/or the + * stack trace was not writable}. * * @author unascribed * @since JDK1.0 diff --git a/jdk/src/share/classes/java/lang/Error.java b/jdk/src/share/classes/java/lang/Error.java index 1c5c50797f4..d18c15f84ce 100644 --- a/jdk/src/share/classes/java/lang/Error.java +++ b/jdk/src/share/classes/java/lang/Error.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2011, 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 @@ -79,7 +79,7 @@ public class Error extends Throwable { * @param message the detail message (which is saved for later retrieval * by the {@link #getMessage()} method). * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is + * {@link #getCause()} method). (A {@code null} value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 @@ -90,13 +90,13 @@ public class Error extends Throwable { /** * Constructs a new error with the specified cause and a detail - * message of <tt>(cause==null ? null : cause.toString())</tt> (which - * typically contains the class and detail message of <tt>cause</tt>). + * message of {@code (cause==null ? null : cause.toString())} (which + * typically contains the class and detail message of {@code cause}). * This constructor is useful for errors that are little more than * wrappers for other throwables. * * @param cause the cause (which is saved for later retrieval by the - * {@link #getCause()} method). (A <tt>null</tt> value is + * {@link #getCause()} method). (A {@code null} value is * permitted, and indicates that the cause is nonexistent or * unknown.) * @since 1.4 @@ -104,4 +104,25 @@ public class Error extends Throwable { public Error(Throwable cause) { super(cause); } + + /** + * Constructs a new error with the specified detail message, + * cause, suppression enabled or disabled, and writable stack + * trace enabled or disabled. + * + * @param message the detail message. + * @param cause the cause. (A {@code null} value is permitted, + * and indicates that the cause is nonexistent or unknown.) + * @param enableSuppression whether or not suppression is enabled + * or disabled + * @param writableStackTrace whether or not the stack trace should + * be writable + * + * @since 1.7 + */ + protected Error(String message, Throwable cause, + boolean enableSuppression, + boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/jdk/src/share/classes/java/lang/Exception.java b/jdk/src/share/classes/java/lang/Exception.java index 944aa052369..0bcbf9cd045 100644 --- a/jdk/src/share/classes/java/lang/Exception.java +++ b/jdk/src/share/classes/java/lang/Exception.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2011, 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 @@ -101,4 +101,24 @@ public class Exception extends Throwable { public Exception(Throwable cause) { super(cause); } + + /** + * Constructs a new exception with the specified detail message, + * cause, suppression enabled or disabled, and writable stack + * trace enabled or disabled. + * + * @param message the detail message. + * @param cause the cause. (A {@code null} value is permitted, + * and indicates that the cause is nonexistent or unknown.) + * @param enableSuppression whether or not suppression is enabled + * or disabled + * @param writableStackTrace whether or not the stack trace should + * be writable + * @since 1.7 + */ + protected Exception(String message, Throwable cause, + boolean enableSuppression, + boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/jdk/src/share/classes/java/lang/NullPointerException.java b/jdk/src/share/classes/java/lang/NullPointerException.java index 0472710f23f..5b87ec4fd7c 100644 --- a/jdk/src/share/classes/java/lang/NullPointerException.java +++ b/jdk/src/share/classes/java/lang/NullPointerException.java @@ -43,7 +43,8 @@ package java.lang; * * {@code NullPointerException} objects may be constructed by the * virtual machine as if {@linkplain Throwable#Throwable(String, - * Throwable, boolean) suppression were disabled}. + * Throwable, boolean, boolean) suppression were disabled and/or the + * stack trace was not writable}. * * @author unascribed * @since JDK1.0 diff --git a/jdk/src/share/classes/java/lang/OutOfMemoryError.java b/jdk/src/share/classes/java/lang/OutOfMemoryError.java index 37b0ae6f476..0f9df4e2f16 100644 --- a/jdk/src/share/classes/java/lang/OutOfMemoryError.java +++ b/jdk/src/share/classes/java/lang/OutOfMemoryError.java @@ -32,7 +32,8 @@ package java.lang; * * {@code OutOfMemoryError} objects may be constructed by the virtual * machine as if {@linkplain Throwable#Throwable(String, Throwable, - * boolean) suppression were disabled}. + * boolean, boolean) suppression were disabled and/or the stack trace was not + * writable}. * * @author unascribed * @since JDK1.0 diff --git a/jdk/src/share/classes/java/lang/RuntimeException.java b/jdk/src/share/classes/java/lang/RuntimeException.java index 85c0729dc9f..c9731e895a9 100644 --- a/jdk/src/share/classes/java/lang/RuntimeException.java +++ b/jdk/src/share/classes/java/lang/RuntimeException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2011, 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 @@ -95,4 +95,25 @@ public class RuntimeException extends Exception { public RuntimeException(Throwable cause) { super(cause); } + + /** + * Constructs a new runtime exception with the specified detail + * message, cause, suppression enabled or disabled, and writable + * stack trace enabled or disabled. + * + * @param message the detail message. + * @param cause the cause. (A {@code null} value is permitted, + * and indicates that the cause is nonexistent or unknown.) + * @param enableSuppression whether or not suppression is enabled + * or disabled + * @param writableStackTrace whether or not the stack trace should + * be writable + * + * @since 1.7 + */ + protected RuntimeException(String message, Throwable cause, + boolean enableSuppression, + boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } } diff --git a/jdk/src/share/classes/java/lang/Throwable.java b/jdk/src/share/classes/java/lang/Throwable.java index 8468ecf0d30..fdfa2525b5f 100644 --- a/jdk/src/share/classes/java/lang/Throwable.java +++ b/jdk/src/share/classes/java/lang/Throwable.java @@ -129,16 +129,41 @@ public class Throwable implements Serializable { */ private String detailMessage; + + /** + * Holder class to defer initializing sentinel objects only used + * for serialization. + */ + private static class SentinelHolder { + /** + * {@linkplain #setStackTrace(StackTraceElement[]) Setting the + * stack trace} to a one-element array containing this sentinel + * value indicates future attempts to set the stack trace will be + * ignored. The sentinal is equal to the result of calling:<br> + * {@code new StackTraceElement("", "", null, Integer.MIN_VALUE)} + */ + public static final StackTraceElement STACK_TRACE_ELEMENT_SENTINEL = + new StackTraceElement("", "", null, Integer.MIN_VALUE); + + /** + * Sentinel value used in the serial form to indicate an immutable + * stack trace. + */ + public static final StackTraceElement[] STACK_TRACE_SENTINEL = + new StackTraceElement[] {STACK_TRACE_ELEMENT_SENTINEL}; + } + /** * A shared value for an empty stack. */ - private static final StackTraceElement[] EMPTY_STACK = new StackTraceElement[0]; + private static final StackTraceElement[] UNASSIGNED_STACK = new StackTraceElement[0]; /* * To allow Throwable objects to be made immutable and safely * reused by the JVM, such as OutOfMemoryErrors, fields of - * Throwable that are writable in response to user actions, cause - * and suppressedExceptions obey the following protocol: + * Throwable that are writable in response to user actions, cause, + * stackTrace, and suppressedExceptions obey the following + * protocol: * * 1) The fields are initialized to a non-null sentinel value * which indicates the value has logically not been set. @@ -174,10 +199,15 @@ public class Throwable implements Serializable { /** * The stack trace, as returned by {@link #getStackTrace()}. * + * The field is initialized to a zero-length array. A {@code + * null} value of this field indicates subsequent calls to {@link + * #setStackTrace(StackTraceElement[])} and {@link + * #fillInStackTrace()} will be be no-ops. + * * @serial * @since 1.4 */ - private StackTraceElement[] stackTrace; + private StackTraceElement[] stackTrace = UNASSIGNED_STACK; // Setting this static field introduces an acceptable // initialization dependency on a few java.util classes. @@ -284,24 +314,36 @@ public class Throwable implements Serializable { /** * Constructs a new throwable with the specified detail message, - * cause, and {@linkplain #addSuppressed suppression} enabled or - * disabled. If suppression is disabled, {@link #getSuppressed} - * for this object will return a zero-length array and calls to - * {@link #addSuppressed} that would otherwise append an exception - * to the suppressed list will have no effect. + * cause, {@linkplain #addSuppressed suppression} enabled or + * disabled, and writable stack trace enabled or disabled. If + * suppression is disabled, {@link #getSuppressed} for this object + * will return a zero-length array and calls to {@link + * #addSuppressed} that would otherwise append an exception to the + * suppressed list will have no effect. If the writable stack + * trace is false, this constructor will not call {@link + * #fillInStackTrace()}, a {@code null} will be written to the + * {@code stackTrace} field, and subsequent calls to {@code + * fillInStackTrace} and {@link + * #setStackTrace(StackTraceElement[])} will not set the stack + * trace. If the writable stack trace is false, {@link + * #getStackTrace} will return a zero length array. * * <p>Note that the other constructors of {@code Throwable} treat - * suppression as being enabled. Subclasses of {@code Throwable} - * should document any conditions under which suppression is - * disabled. Disabling of suppression should only occur in - * exceptional circumstances where special requirements exist, - * such as a virtual machine reusing exception objects under - * low-memory situations. + * suppression as being enabled and the stack trace as being + * writable. Subclasses of {@code Throwable} should document any + * conditions under which suppression is disabled and document + * conditions under which the stack trace is not writable. + * Disabling of suppression should only occur in exceptional + * circumstances where special requirements exist, such as a + * virtual machine reusing exception objects under low-memory + * situations. * * @param message the detail message. * @param cause the cause. (A {@code null} value is permitted, * and indicates that the cause is nonexistent or unknown.) * @param enableSuppression whether or not suppression is enabled or disabled + * @param writableStackTrace whether or not the stack trace should be + * writable * * @see OutOfMemoryError * @see NullPointerException @@ -309,8 +351,13 @@ public class Throwable implements Serializable { * @since 1.7 */ protected Throwable(String message, Throwable cause, - boolean enableSuppression) { - fillInStackTrace(); + boolean enableSuppression, + boolean writableStackTrace) { + if (writableStackTrace) { + fillInStackTrace(); + } else { + stackTrace = null; + } detailMessage = message; this.cause = cause; if (!enableSuppression) @@ -707,10 +754,22 @@ public class Throwable implements Serializable { * {@code Throwable} object information about the current state of * the stack frames for the current thread. * + * <p>If the stack trace of this {@code Throwable} {@linkplain + * Throwable#Throwable(String, Throwable, boolean, boolean) is not + * writable}, calling this method has no effect. + * * @return a reference to this {@code Throwable} instance. * @see java.lang.Throwable#printStackTrace() */ - public synchronized native Throwable fillInStackTrace(); + public synchronized Throwable fillInStackTrace() { + if (stackTrace != null) { + fillInStackTrace(0); + stackTrace = UNASSIGNED_STACK; + } + return this; + } + + private native Throwable fillInStackTrace(int dummy); /** * Provides programmatic access to the stack trace information printed by @@ -740,12 +799,15 @@ public class Throwable implements Serializable { } private synchronized StackTraceElement[] getOurStackTrace() { - // Initialize stack trace if this is the first call to this method - if (stackTrace == null) { + // Initialize stack trace field with information from + // backtrace if this is the first call to this method + if (stackTrace == UNASSIGNED_STACK) { int depth = getStackTraceDepth(); stackTrace = new StackTraceElement[depth]; for (int i=0; i < depth; i++) stackTrace[i] = getStackTraceElement(i); + } else if (stackTrace == null) { + return UNASSIGNED_STACK; } return stackTrace; } @@ -761,6 +823,11 @@ public class Throwable implements Serializable { * when a throwable is constructed or deserialized when a throwable is * read from a serialization stream. * + * <p>If the stack trace of this {@code Throwable} {@linkplain + * Throwable#Throwable(String, Throwable, boolean, boolean) is not + * writable}, calling this method has no effect other than + * validating its argument. + * * @param stackTrace the stack trace elements to be associated with * this {@code Throwable}. The specified array is copied by this * call; changes in the specified array after the method invocation @@ -768,16 +835,21 @@ public class Throwable implements Serializable { * trace. * * @throws NullPointerException if {@code stackTrace} is - * {@code null}, or if any of the elements of + * {@code null} or if any of the elements of * {@code stackTrace} are {@code null} * * @since 1.4 */ public void setStackTrace(StackTraceElement[] stackTrace) { + // Validate argument StackTraceElement[] defensiveCopy = stackTrace.clone(); - for (int i = 0; i < defensiveCopy.length; i++) + for (int i = 0; i < defensiveCopy.length; i++) { if (defensiveCopy[i] == null) throw new NullPointerException("stackTrace[" + i + "]"); + } + + if (this.stackTrace == null) // Immutable stack + return; synchronized (this) { this.stackTrace = defensiveCopy; @@ -808,7 +880,11 @@ public class Throwable implements Serializable { * well-formedness constraints on fields. Null entries and * self-pointers are not allowed in the list of {@code * suppressedExceptions}. Null entries are not allowed for stack - * trace elements. + * trace elements. A null stack trace in the serial form results + * in a zero-length stack element array. A single-element stack + * trace whose entry is equal to {@code new StackTraceElement("", + * "", null, Integer.MIN_VALUE)} results in a {@code null} {@code + * stackTrace} field. * * Note that there are no constraints on the value the {@code * cause} field can hold; both {@code null} and {@code this} are @@ -837,26 +913,63 @@ public class Throwable implements Serializable { suppressedExceptions = suppressed; } // else a null suppressedExceptions field remains null + /* + * For zero-length stack traces, use a clone of + * UNASSIGNED_STACK rather than UNASSIGNED_STACK itself to + * allow identity comparison against UNASSIGNED_STACK in + * getOurStackTrace. The identity of UNASSIGNED_STACK in + * stackTrace indicates to the getOurStackTrace method that + * the stackTrace needs to be constructed from the information + * in backtrace. + */ if (stackTrace != null) { - for (StackTraceElement ste : stackTrace) { - if (ste == null) - throw new NullPointerException("null StackTraceElement in serial stream. "); + if (stackTrace.length == 0) { + stackTrace = UNASSIGNED_STACK.clone(); + } else if (stackTrace.length == 1 && + // Check for the marker of an immutable stack trace + SentinelHolder.STACK_TRACE_ELEMENT_SENTINEL.equals(stackTrace[0])) { + stackTrace = null; + } else { // Verify stack trace elements are non-null. + for(StackTraceElement ste : stackTrace) { + if (ste == null) + throw new NullPointerException("null StackTraceElement in serial stream. "); + } } } else { - // A null stackTrace field in the serial form can result from - // an exception serialized without that field in older JDK releases. - stackTrace = EMPTY_STACK; + // A null stackTrace field in the serial form can result + // from an exception serialized without that field in + // older JDK releases; treat such exceptions as having + // empty stack traces. + stackTrace = UNASSIGNED_STACK.clone(); } - } /** * Write a {@code Throwable} object to a stream. + * + * A {@code null} stack trace field is represented in the serial + * form as a one-element array whose element is equal to {@code + * new StackTraceElement("", "", null, Integer.MIN_VALUE)}. */ private synchronized void writeObject(ObjectOutputStream s) throws IOException { - getOurStackTrace(); // Ensure that stackTrace field is initialized. - s.defaultWriteObject(); + // Ensure that the stackTrace field is initialized to a + // non-null value, if appropriate. As of JDK 7, a null stack + // trace field is a valid value indicating the stack trace + // should not be set. + getOurStackTrace(); + ObjectOutputStream.PutField fields = s.putFields(); + + fields.put("detailMessage", detailMessage); + fields.put("cause", cause); + // Serialize a null stacktrace using the stack trace sentinel. + if (stackTrace == null) + fields.put("stackTrace", SentinelHolder.STACK_TRACE_SENTINEL); + else + fields.put("stackTrace", stackTrace); + fields.put("suppressedExceptions", suppressedExceptions); + + s.writeFields(); } /** @@ -866,8 +979,8 @@ public class Throwable implements Serializable { * try}-with-resources statement. * * <p>The suppression behavior is enabled <em>unless</em> disabled - * {@linkplain #Throwable(String, Throwable, boolean) via a - * constructor}. When suppression is disabled, this method does + * {@linkplain #Throwable(String, Throwable, boolean, boolean) via + * a constructor}. When suppression is disabled, this method does * nothing other than to validate its argument. * * <p>Note that when one exception {@linkplain @@ -933,8 +1046,8 @@ public class Throwable implements Serializable { * statement, in order to deliver this exception. * * If no exceptions were suppressed or {@linkplain - * Throwable(String, Throwable, boolean) suppression is disabled}, - * an empty array is returned. + * #Throwable(String, Throwable, boolean, boolean) suppression is + * disabled}, an empty array is returned. * * @return an array containing all of the exceptions that were * suppressed to deliver this exception. diff --git a/jdk/src/share/native/java/lang/Throwable.c b/jdk/src/share/native/java/lang/Throwable.c index ebef64f025a..aaf3c265865 100644 --- a/jdk/src/share/native/java/lang/Throwable.c +++ b/jdk/src/share/native/java/lang/Throwable.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2000, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2011, 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 @@ -44,7 +44,7 @@ * `this' so you can write 'throw e.fillInStackTrace();' */ JNIEXPORT jobject JNICALL -Java_java_lang_Throwable_fillInStackTrace(JNIEnv *env, jobject throwable) +Java_java_lang_Throwable_fillInStackTrace(JNIEnv *env, jobject throwable, int dummy) { JVM_FillInStackTrace(env, throwable); return throwable; diff --git a/jdk/test/java/lang/Throwable/ChainedExceptions.java b/jdk/test/java/lang/Throwable/ChainedExceptions.java index a6577ba4693..2c2fa398d11 100644 --- a/jdk/test/java/lang/Throwable/ChainedExceptions.java +++ b/jdk/test/java/lang/Throwable/ChainedExceptions.java @@ -13,28 +13,28 @@ public class ChainedExceptions { StackTraceElement[] highTrace = e.getStackTrace(); int depthTrim = highTrace.length - 2; - check(highTrace[0], "a", 48); - check(highTrace[1], "main", 11); + check(e, highTrace[0], "a", 48); + check(e, highTrace[1], "main", 11); Throwable mid = e.getCause(); StackTraceElement[] midTrace = mid.getStackTrace(); if (midTrace.length - depthTrim != 4) throw new RuntimeException("Mid depth"); - check(midTrace[0], "c", 58); - check(midTrace[1], "b", 52); - check(midTrace[2], "a", 46); - check(midTrace[3], "main", 11); + check(mid, midTrace[0], "c", 58); + check(mid, midTrace[1], "b", 52); + check(mid, midTrace[2], "a", 46); + check(mid, midTrace[3], "main", 11); Throwable low = mid.getCause(); StackTraceElement[] lowTrace = low.getStackTrace(); if (lowTrace.length - depthTrim != 6) throw new RuntimeException("Low depth"); - check(lowTrace[0], "e", 65); - check(lowTrace[1], "d", 62); - check(lowTrace[2], "c", 56); - check(lowTrace[3], "b", 52); - check(lowTrace[4], "a", 46); - check(lowTrace[5], "main", 11); + check(low, lowTrace[0], "e", 65); + check(low, lowTrace[1], "d", 62); + check(low, lowTrace[2], "c", 56); + check(low, lowTrace[3], "b", 52); + check(low, lowTrace[4], "a", 46); + check(low, lowTrace[5], "main", 11); if (low.getCause() != null) throw new RuntimeException("Low cause != null"); @@ -68,15 +68,15 @@ public class ChainedExceptions { private static final String OUR_CLASS = ChainedExceptions.class.getName(); private static final String OUR_FILE_NAME = "ChainedExceptions.java"; - private static void check(StackTraceElement e, String methodName, int n) { + private static void check(Throwable t, StackTraceElement e, String methodName, int n) { if (!e.getClassName().equals(OUR_CLASS)) - throw new RuntimeException("Class: " + e); + throw new RuntimeException("Class: " + e, t); if (!e.getMethodName().equals(methodName)) - throw new RuntimeException("Method name: " + e); + throw new RuntimeException("Method name: " + e, t); if (!e.getFileName().equals(OUR_FILE_NAME)) - throw new RuntimeException("File name: " + e); + throw new RuntimeException("File name: " + e, t); if (e.getLineNumber() != n) - throw new RuntimeException("Line number: " + e); + throw new RuntimeException("Line number: " + e, t); } } diff --git a/jdk/test/java/lang/Throwable/StackTraceSerialization.java b/jdk/test/java/lang/Throwable/StackTraceSerialization.java index 2d2f4f42a23..29a4d2a8c13 100644 --- a/jdk/test/java/lang/Throwable/StackTraceSerialization.java +++ b/jdk/test/java/lang/Throwable/StackTraceSerialization.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2000, 2011, 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 @@ -26,7 +26,7 @@ import java.util.*; /* * @test - * @bug 4202914 4363318 6991528 + * @bug 4202914 4363318 6991528 6998871 * @summary Basic test of serialization of stack trace information * @author Josh Bloch */ @@ -37,14 +37,52 @@ public class StackTraceSerialization { testWithFillInStackTrace(); } - private static void testWithSetStackTrace() throws Exception { - Throwable t = new Throwable(); + private static void testWithSetStackTrace() { + StackTraceElement[] stackTrace = {new StackTraceElement("foo", "bar", "baz", -1)}; - t.setStackTrace(new StackTraceElement[] - {new StackTraceElement("foo", "bar", "baz", -1)}); + Throwable t = new TestThrowable(true, false); // Immutable and empty stack + assertEmptyStackTrace(t); + + // Verify fillInStackTrace is now a no-op. + t.fillInStackTrace(); + assertEmptyStackTrace(t); + + // Verify setStackTrace is now a no-op. + t.setStackTrace(stackTrace); + assertEmptyStackTrace(t); + + // Verify null-handling + try { + t.setStackTrace(null); + throw new RuntimeException("No NPE on a null stack trace."); + } catch(NullPointerException npe) { + assertEmptyStackTrace(t); + } + + try { + t.setStackTrace(new StackTraceElement[]{null}); + throw new RuntimeException("No NPE on a null stack trace element."); + } catch(NullPointerException npe) { + assertEmptyStackTrace(t); + } if (!equal(t, reconstitute(t))) - throw new Exception("Unequal Throwables with set stacktrace"); + throw new RuntimeException("Unequal Throwables with set stacktrace"); + + Throwable t2 = new Throwable(); + t2.setStackTrace(stackTrace); + if (!equal(t2, reconstitute(t2))) + throw new RuntimeException("Unequal Throwables with set stacktrace"); + + } + + private static class TestThrowable extends Throwable { + public TestThrowable(boolean enableSuppression, + boolean writableStackTrace) { + super("the medium", null, + enableSuppression, + writableStackTrace); + } } private static void assertEmptyStackTrace(Throwable t) { @@ -52,7 +90,7 @@ public class StackTraceSerialization { throw new AssertionError("Nonempty stacktrace."); } - private static void testWithFillInStackTrace() throws Exception { + private static void testWithFillInStackTrace() { Throwable original = null; try { a(); @@ -61,16 +99,14 @@ public class StackTraceSerialization { } if (!equal(original, reconstitute(original))) - throw new Exception("Unequal Throwables with filled-in stacktrace"); + throw new RuntimeException("Unequal Throwables with filled-in stacktrace"); } - /** * Serialize the argument and return the deserialized result. */ - private static Throwable reconstitute(Throwable t) throws Exception { + private static Throwable reconstitute(Throwable t) { Throwable result = null; - try(ByteArrayOutputStream bout = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bout)) { out.writeObject(t); @@ -80,8 +116,9 @@ public class StackTraceSerialization { ObjectInputStream in = new ObjectInputStream(bin)) { result = (Throwable) in.readObject(); } + } catch(IOException | ClassNotFoundException e) { + throw new RuntimeException(e); } - return result; } diff --git a/jdk/test/java/lang/Throwable/SuppressedExceptions.java b/jdk/test/java/lang/Throwable/SuppressedExceptions.java index b987600dca3..f92fee4e57d 100644 --- a/jdk/test/java/lang/Throwable/SuppressedExceptions.java +++ b/jdk/test/java/lang/Throwable/SuppressedExceptions.java @@ -193,6 +193,7 @@ public class SuppressedExceptions { // Make sure addSuppressed(null) throws an NPE try { t.addSuppressed(null); + throw new RuntimeException("NPE not thrown!"); } catch(NullPointerException e) { ; // Expected } @@ -204,7 +205,7 @@ public class SuppressedExceptions { private static class NoSuppression extends Throwable { public NoSuppression(boolean enableSuppression) { - super("The medium.", null, enableSuppression); + super("The medium.", null, enableSuppression, true); } } } From 4e01afab2d1b609c02a497557b5e4af4f5436d05 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Thu, 21 Apr 2011 18:26:04 -0700 Subject: [PATCH 024/147] 7038711: Fix CC_VER checks for compiler options, fix use of -Wno-clobber Reviewed-by: igor --- jdk/make/common/Defs-linux.gmk | 5 ++-- jdk/make/common/Defs-solaris.gmk | 40 ++++++++++++++----------- jdk/make/common/shared/Compiler-gcc.gmk | 2 ++ jdk/make/common/shared/Compiler-sun.gmk | 5 +++- jdk/make/sun/jpeg/Makefile | 11 +++++-- 5 files changed, 38 insertions(+), 25 deletions(-) diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index fcaad70af32..515691dd293 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -251,9 +251,8 @@ LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX) # statically link libgcc but will print a warning with the flag. We don't # want the warning, so check gcc version first. # -CC_VER_MAJOR := $(shell $(CC) -dumpversion | $(SED) 's/egcs-//' | $(CUT) -d'.' -f1) -ifeq ("$(CC_VER_MAJOR)", "3") -OTHER_LDFLAGS += -static-libgcc +ifeq ($(CC_MAJORVER),3) + OTHER_LDFLAGS += -static-libgcc endif # Automatic precompiled header option to use (if COMPILE_APPROACH=batch) diff --git a/jdk/make/common/Defs-solaris.gmk b/jdk/make/common/Defs-solaris.gmk index 1442959756f..c062f275c25 100644 --- a/jdk/make/common/Defs-solaris.gmk +++ b/jdk/make/common/Defs-solaris.gmk @@ -457,14 +457,15 @@ else # On X86, make sure tail call optimization is off # The z and y are the tail call optimizations. ifeq ($(ARCH_FAMILY), i586) - ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) - ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 8), 1) - # Somehow, tail call optimization is creeping in. - # Make sure it is off. - # WARNING: These may cause compiler warnings about duplicate -O options - CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz - CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz - endif + CC_NEWER_THAN_58 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 8 \) ) + ifeq ($(CC_NEWER_THAN_58),1) + # Somehow, tail call optimization is creeping in. + # Make sure it is off. + # WARNING: These may cause compiler warnings about duplicate -O options + CC_XKEEPFRAME_OPTIONS += -Wu,-O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz + CXX_XKEEPFRAME_OPTIONS += -Qoption ube -O$(OPT_LEVEL/$(OPTIMIZATION_LEVEL))~yz endif endif @@ -481,14 +482,15 @@ else CXX_XKEEPFRAME_OPTIONS += -Qoption ube -Z~B endif - ifeq ($(shell $(EXPR) $(CC_MAJORVER) \>= 5), 1) - ifeq ($(shell $(EXPR) $(CC_MINORVER) \> 6), 1) - # Do NOT use frame pointer register as a general purpose opt register - CC_OPT/NONE += -xregs=no%frameptr - CXX_OPT/NONE += -xregs=no%frameptr - CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr - CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr - endif + CC_NEWER_THAN_56 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) + ifeq ($(CC_NEWER_THAN_56),1) + # Do NOT use frame pointer register as a general purpose opt register + CC_OPT/NONE += -xregs=no%frameptr + CXX_OPT/NONE += -xregs=no%frameptr + CC_XKEEPFRAME_OPTIONS += -xregs=no%frameptr + CXX_XKEEPFRAME_OPTIONS += -xregs=no%frameptr endif endif @@ -566,8 +568,10 @@ else CFLAGS_REQUIRED_sparc += -xregs=no%appl CFLAGS_REQUIRED_sparcv9 += -xregs=no%appl endif - ifeq ($(shell $(EXPR) $(CC_VER) \> 5.6), 1) - # We MUST allow data alignment of 4 for sparc V8 (32bit) + CC_NEWER_THAN_56 := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \> 6 \) ) + ifeq ($(CC_NEWER_THAN_56),1) # Presents an ABI issue with customer JNI libs? We must be able to # to handle 4byte aligned objects? (rare occurance, but possible?) CFLAGS_REQUIRED_sparc += -xmemalign=4s diff --git a/jdk/make/common/shared/Compiler-gcc.gmk b/jdk/make/common/shared/Compiler-gcc.gmk index 570ea1c85db..092ec168346 100644 --- a/jdk/make/common/shared/Compiler-gcc.gmk +++ b/jdk/make/common/shared/Compiler-gcc.gmk @@ -87,6 +87,8 @@ endif # Get gcc version _CC_VER :=$(shell $(CC) -dumpversion 2>&1 ) CC_VER :=$(call GetVersion,"$(_CC_VER)") +CC_MAJORVER :=$(call MajorVersion,$(CC_VER)) +CC_MINORVER :=$(call MinorVersion,$(CC_VER)) # Name of compiler COMPILER_NAME = GCC$(call MajorVersion,$(CC_VER)) diff --git a/jdk/make/common/shared/Compiler-sun.gmk b/jdk/make/common/shared/Compiler-sun.gmk index 3881d393dc9..fc0e9df6e3a 100644 --- a/jdk/make/common/shared/Compiler-sun.gmk +++ b/jdk/make/common/shared/Compiler-sun.gmk @@ -117,7 +117,10 @@ ifeq ($(ARCH_FAMILY), i586) LINT_XARCH_OPTION_OLD/64 += -Xarch=amd64 endif # Pick the options we want based on the compiler being used. (5.9 or newer) -ifeq ($(shell expr $(CC_MINORVER) \>= 9), 1) +CC_59_OR_NEWER := \ + $(shell expr $(CC_MAJORVER) \> 5 \| \ + \( $(CC_MAJORVER) = 5 \& $(CC_MINORVER) \>= 9 \) ) +ifeq ($(CC_59_OR_NEWER), 1) XARCH_OPTION/32 = $(XARCH_OPTION_NEW/32) XARCH_OPTION/64 = $(XARCH_OPTION_NEW/64) LINT_XARCH_OPTION/32 = $(LINT_XARCH_OPTION_NEW/32) diff --git a/jdk/make/sun/jpeg/Makefile b/jdk/make/sun/jpeg/Makefile index da2aff171f3..f73acf3a2e1 100644 --- a/jdk/make/sun/jpeg/Makefile +++ b/jdk/make/sun/jpeg/Makefile @@ -73,9 +73,14 @@ ifeq ($(PLATFORM), linux) # Recommended way to avoid such warning is to declare the variable as # volatile to prevent the optimization. However, this approach does not # work because we have to declare all variables as volatile in result. -ifndef CROSS_COMPILE_ARCH - OTHER_CFLAGS += -Wno-clobbered -endif + ifndef CROSS_COMPILE_ARCH + CC_43_OR_NEWER := \ + $(shell $(EXPR) $(CC_MAJORVER) \> 4 \| \ + \( $(CC_MAJORVER) = 4 \& $(CC_MINORVER) \>= 3 \) ) + ifeq ($(CC_43_OR_NEWER),1) + OTHER_CFLAGS += -Wno-clobbered + endif + endif endif include $(BUILDDIR)/common/Mapfile-vers.gmk From c5114e7e0ff49ee858523a890f421f906012f2f2 Mon Sep 17 00:00:00 2001 From: Sean Coffey <coffeys@openjdk.org> Date: Fri, 22 Apr 2011 11:03:39 +0100 Subject: [PATCH 025/147] 7025227: SSLSocketImpl does not close the TCP layer socket if a close notify cannot be sent to the peer 6932403: SSLSocketImpl state issue Reviewed-by: xuelei --- .../sun/security/ssl/SSLSocketImpl.java | 98 ++++++++++++++----- 1 file changed, 76 insertions(+), 22 deletions(-) diff --git a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java index 8bc8c22a9fd..d12eaf1c091 100644 --- a/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java +++ b/jdk/src/share/classes/sun/security/ssl/SSLSocketImpl.java @@ -1453,6 +1453,21 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } } + private void closeSocket(boolean selfInitiated) throws IOException { + if ((debug != null) && Debug.isOn("ssl")) { + System.out.println(threadName() + ", called closeSocket(selfInitiated)"); + } + if (self == this) { + super.close(); + } else if (autoClose) { + self.close(); + } else if (selfInitiated) { + // layered && non-autoclose + // read close_notify alert to clear input stream + waitForClose(false); + } + } + /* * Closing the connection is tricky ... we can't officially close the * connection until we know the other end is ready to go away too, @@ -1491,6 +1506,8 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } int state = getConnectionState(); + boolean closeSocketCalled = false; + Throwable cachedThrowable = null; try { switch (state) { /* @@ -1531,8 +1548,18 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { return; // connection was closed while we waited } if (state != cs_SENT_CLOSE) { - warning(Alerts.alert_close_notify); - connectionState = cs_SENT_CLOSE; + try { + warning(Alerts.alert_close_notify); + connectionState = cs_SENT_CLOSE; + } catch (Throwable th) { + // we need to ensure socket is closed out + // if we encounter any errors. + connectionState = cs_ERROR; + // cache this for later use + cachedThrowable = th; + closeSocketCalled = true; + closeSocket(selfInitiated); + } } } // If state was cs_SENT_CLOSE before, we don't do the actual @@ -1569,22 +1596,11 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { return; } - if (self == this) { - super.close(); - } else if (autoClose) { - self.close(); - } else if (selfInitiated) { - // layered && non-autoclose - // read close_notify alert to clear input stream - waitForClose(false); + if (!closeSocketCalled) { + closeSocketCalled = true; + closeSocket(selfInitiated); } - // See comment in changeReadCiphers() - readCipher.dispose(); - writeCipher.dispose(); - - // state will be set to cs_CLOSED in the finally block below - break; } } finally { @@ -1595,6 +1611,20 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { // notify any threads waiting for the closing to finish this.notifyAll(); } + if (closeSocketCalled) { + // Dispose of ciphers since we've closed socket + disposeCiphers(); + } + if (cachedThrowable != null) { + /* + * Rethrow the error to the calling method + * The Throwable caught can only be an Error or RuntimeException + */ + if (cachedThrowable instanceof Error) + throw (Error) cachedThrowable; + if (cachedThrowable instanceof RuntimeException) + throw (RuntimeException) cachedThrowable; + } } } @@ -1641,6 +1671,24 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } } + /** + * Called by closeInternal() only. Be sure to consider the + * synchronization locks carefully before calling it elsewhere. + */ + private void disposeCiphers() { + // See comment in changeReadCiphers() + synchronized (readLock) { + readCipher.dispose(); + } + // See comment in changeReadCiphers() + writeLock.lock(); + try { + writeCipher.dispose(); + } finally { + writeLock.unlock(); + } + } + // // EXCEPTION AND ALERT HANDLING // @@ -1761,7 +1809,9 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { } int oldState = connectionState; - connectionState = cs_ERROR; + if (connectionState < cs_ERROR) { + connectionState = cs_ERROR; + } /* * Has there been an error received yet? If not, remember it. @@ -1792,13 +1842,17 @@ final public class SSLSocketImpl extends BaseSSLSocketImpl { * Clean up our side. */ closeSocket(); + // Another thread may have disposed the ciphers during closing + if (connectionState < cs_CLOSED) { + connectionState = (oldState == cs_APP_CLOSED) ? cs_APP_CLOSED + : cs_CLOSED; - // See comment in changeReadCiphers() - readCipher.dispose(); - writeCipher.dispose(); + // We should lock readLock and writeLock if no deadlock risks. + // See comment in changeReadCiphers() + readCipher.dispose(); + writeCipher.dispose(); + } - connectionState = (oldState == cs_APP_CLOSED) ? cs_APP_CLOSED - : cs_CLOSED; throw closeReason; } From 4071e413e5a994efd39d3ef864367cde582a3f73 Mon Sep 17 00:00:00 2001 From: Doug Lea <dl@openjdk.org> Date: Fri, 22 Apr 2011 16:33:23 +0100 Subject: [PATCH 026/147] 7038885: Improved bulk operation disclaimers for concurrent collections Reviewed-by: chegar --- .../concurrent/ConcurrentLinkedDeque.java | 13 ++++++++++--- .../concurrent/ConcurrentLinkedQueue.java | 9 ++++++++- .../concurrent/ConcurrentSkipListMap.java | 19 +++++++++++-------- .../concurrent/ConcurrentSkipListSet.java | 14 ++++++++------ .../util/concurrent/LinkedTransferQueue.java | 13 ++++++++++--- 5 files changed, 47 insertions(+), 21 deletions(-) diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java index 4c1c4616263..21d59cfc460 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedDeque.java @@ -59,10 +59,17 @@ import java.util.Queue; * ConcurrentModificationException}, and may proceed concurrently with * other operations. * - * <p>Beware that, unlike in most collections, the {@code size} - * method is <em>NOT</em> a constant-time operation. Because of the + * <p>Beware that, unlike in most collections, the {@code size} method + * is <em>NOT</em> a constant-time operation. Because of the * asynchronous nature of these deques, determining the current number - * of elements requires a traversal of the elements. + * of elements requires a traversal of the elements, and so may report + * inaccurate results if this collection is modified during traversal. + * Additionally, the bulk operations {@code addAll}, + * {@code removeAll}, {@code retainAll}, {@code containsAll}, + * {@code equals}, and {@code toArray} are <em>not</em> guaranteed + * to be performed atomically. For example, an iterator operating + * concurrently with an {@code addAll} operation might view only some + * of the added elements. * * <p>This class and its iterator implement all of the <em>optional</em> * methods of the {@link Deque} and {@link Iterator} interfaces. diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java index 09f21ef1504..fcdfcf97eb6 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentLinkedQueue.java @@ -72,7 +72,14 @@ import java.util.Queue; * <p>Beware that, unlike in most collections, the {@code size} method * is <em>NOT</em> a constant-time operation. Because of the * asynchronous nature of these queues, determining the current number - * of elements requires a traversal of the elements. + * of elements requires a traversal of the elements, and so may report + * inaccurate results if this collection is modified during traversal. + * Additionally, the bulk operations {@code addAll}, + * {@code removeAll}, {@code retainAll}, {@code containsAll}, + * {@code equals}, and {@code toArray} are <em>not</em> guaranteed + * to be performed atomically. For example, an iterator operating + * concurrently with an {@code addAll} operation might view only some + * of the added elements. * * <p>This class and its iterator implement all of the <em>optional</em> * methods of the {@link Queue} and {@link Iterator} interfaces. diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java index 8e3e4d0a7cc..8d23964512b 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListMap.java @@ -66,12 +66,13 @@ import java.util.concurrent.atomic.*; * <p>Beware that, unlike in most collections, the <tt>size</tt> * method is <em>not</em> a constant-time operation. Because of the * asynchronous nature of these maps, determining the current number - * of elements requires a traversal of the elements. Additionally, - * the bulk operations <tt>putAll</tt>, <tt>equals</tt>, and - * <tt>clear</tt> are <em>not</em> guaranteed to be performed - * atomically. For example, an iterator operating concurrently with a - * <tt>putAll</tt> operation might view only some of the added - * elements. + * of elements requires a traversal of the elements, and so may report + * inaccurate results if this collection is modified during traversal. + * Additionally, the bulk operations <tt>putAll</tt>, <tt>equals</tt>, + * <tt>toArray</tt>, <tt>containsValue</tt>, and <tt>clear</tt> are + * <em>not</em> guaranteed to be performed atomically. For example, an + * iterator operating concurrently with a <tt>putAll</tt> operation + * might view only some of the added elements. * * <p>This class and its views and iterators implement all of the * <em>optional</em> methods of the {@link Map} and {@link Iterator} @@ -1661,7 +1662,9 @@ public class ConcurrentSkipListMap<K,V> extends AbstractMap<K,V> /** * Returns <tt>true</tt> if this map maps one or more keys to the * specified value. This operation requires time linear in the - * map size. + * map size. Additionally, it is possible for the map to change + * during execution of this method, in which case the returned + * result may be inaccurate. * * @param value value whose presence in this map is to be tested * @return <tt>true</tt> if a mapping to <tt>value</tt> exists; @@ -1751,7 +1754,7 @@ public class ConcurrentSkipListMap<K,V> extends AbstractMap<K,V> * * @return a navigable set view of the keys in this map */ - public NavigableSet<K> keySet() { + public NavigableSet<K> keySet() { KeySet ks = keySet; return (ks != null) ? ks : (keySet = new KeySet(this)); } diff --git a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java index eb90bb0bf9f..7b5dc79a932 100644 --- a/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java +++ b/jdk/src/share/classes/java/util/concurrent/ConcurrentSkipListSet.java @@ -58,12 +58,14 @@ import sun.misc.Unsafe; * <p>Beware that, unlike in most collections, the <tt>size</tt> * method is <em>not</em> a constant-time operation. Because of the * asynchronous nature of these sets, determining the current number - * of elements requires a traversal of the elements. Additionally, the - * bulk operations <tt>addAll</tt>, <tt>removeAll</tt>, - * <tt>retainAll</tt>, and <tt>containsAll</tt> are <em>not</em> - * guaranteed to be performed atomically. For example, an iterator - * operating concurrently with an <tt>addAll</tt> operation might view - * only some of the added elements. + * of elements requires a traversal of the elements, and so may report + * inaccurate results if this collection is modified during traversal. + * Additionally, the bulk operations <tt>addAll</tt>, + * <tt>removeAll</tt>, <tt>retainAll</tt>, <tt>containsAll</tt>, + * <tt>equals</tt>, and <tt>toArray</tt> are <em>not</em> guaranteed + * to be performed atomically. For example, an iterator operating + * concurrently with an <tt>addAll</tt> operation might view only some + * of the added elements. * * <p>This class and its iterators implement all of the * <em>optional</em> methods of the {@link Set} and {@link Iterator} diff --git a/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java b/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java index 3fe72477bf9..ebdf223ff6c 100644 --- a/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java +++ b/jdk/src/share/classes/java/util/concurrent/LinkedTransferQueue.java @@ -51,10 +51,17 @@ import java.util.concurrent.locks.LockSupport; * producer. The <em>tail</em> of the queue is that element that has * been on the queue the shortest time for some producer. * - * <p>Beware that, unlike in most collections, the {@code size} - * method is <em>NOT</em> a constant-time operation. Because of the + * <p>Beware that, unlike in most collections, the {@code size} method + * is <em>NOT</em> a constant-time operation. Because of the * asynchronous nature of these queues, determining the current number - * of elements requires a traversal of the elements. + * of elements requires a traversal of the elements, and so may report + * inaccurate results if this collection is modified during traversal. + * Additionally, the bulk operations {@code addAll}, + * {@code removeAll}, {@code retainAll}, {@code containsAll}, + * {@code equals}, and {@code toArray} are <em>not</em> guaranteed + * to be performed atomically. For example, an iterator operating + * concurrently with an {@code addAll} operation might view only some + * of the added elements. * * <p>This class and its iterator implement all of the * <em>optional</em> methods of the {@link Collection} and {@link From dc6eb040b713a679852328c1f99d804975a80318 Mon Sep 17 00:00:00 2001 From: Vinnie Ryan <vinnie@openjdk.org> Date: Fri, 22 Apr 2011 17:03:51 +0100 Subject: [PATCH 027/147] 6931562: Support SunMSCAPI Security Provider in Windows 64-bit releases of JVM Reviewed-by: mullan --- jdk/make/java/security/Makefile | 8 +++----- jdk/make/sun/security/Makefile | 8 +++----- jdk/test/sun/security/mscapi/AccessKeyStore.sh | 6 ++---- jdk/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh | 6 ++---- jdk/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh | 6 ++---- jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh | 6 ++---- jdk/test/sun/security/mscapi/RSAEncryptDecrypt.sh | 6 ++---- 7 files changed, 16 insertions(+), 30 deletions(-) diff --git a/jdk/make/java/security/Makefile b/jdk/make/java/security/Makefile index fa87a586468..d06fc91404e 100644 --- a/jdk/make/java/security/Makefile +++ b/jdk/make/java/security/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2011 Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2011, 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 @@ -44,11 +44,9 @@ PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-solaris else # PLATFORM -# Register Microsoft CryptoAPI provider only on (non-64-bit) Windows platform. +# Register Microsoft CryptoAPI provider only on Windows platform. ifeq ($(PLATFORM), windows) - ifneq ($(ARCH_DATA_MODEL), 64) - PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-windows - endif + PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-windows endif endif # PLATFORM diff --git a/jdk/make/sun/security/Makefile b/jdk/make/sun/security/Makefile index efff97d7e55..6e03ffbe05d 100644 --- a/jdk/make/sun/security/Makefile +++ b/jdk/make/sun/security/Makefile @@ -1,5 +1,5 @@ # -# Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 1996, 2011, 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 @@ -52,12 +52,10 @@ ifeq ($(ARCH_DATA_MODEL), 64) endif endif -# Build Microsoft CryptoAPI provider only on (non-64-bit) Windows platform. +# Build Microsoft CryptoAPI provider only on Windows platform. MSCAPI = ifeq ($(PLATFORM), windows) - ifneq ($(ARCH_DATA_MODEL), 64) - MSCAPI = mscapi - endif + MSCAPI = mscapi endif # Build in-tree elliptic curve crypto provider only when diff --git a/jdk/test/sun/security/mscapi/AccessKeyStore.sh b/jdk/test/sun/security/mscapi/AccessKeyStore.sh index 5adef063cdb..6706aa3ff39 100644 --- a/jdk/test/sun/security/mscapi/AccessKeyStore.sh +++ b/jdk/test/sun/security/mscapi/AccessKeyStore.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, 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,11 +25,9 @@ # @test -# @bug 6324295 +# @bug 6324295 6931562 # @run shell AccessKeyStore.sh # @summary Confirm that permission must be granted to access keystores. -# -# Run only on non-64-bit Windows platform. OS=`uname -s` case "$OS" in diff --git a/jdk/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh b/jdk/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh index b712dd7ddb5..197ee37b134 100644 --- a/jdk/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh +++ b/jdk/test/sun/security/mscapi/IsSunMSCAPIAvailable.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, 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,11 +25,9 @@ # @test -# @bug 6318171 +# @bug 6318171 6931562 # @run shell IsSunMSCAPIAvailable.sh # @summary Basic test of the Microsoft CryptoAPI provider. -# -# Run only on non-64-bit Windows platform. OS=`uname -s` case "$OS" in diff --git a/jdk/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh b/jdk/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh index 7d0f1b47ba0..ee0c6c3609f 100644 --- a/jdk/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh +++ b/jdk/test/sun/security/mscapi/KeyStoreCompatibilityMode.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, 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,12 +25,10 @@ # @test -# @bug 6324294 +# @bug 6324294 6931562 # @run shell KeyStoreCompatibilityMode.sh # @summary Confirm that a null stream or password is not permitted when # compatibility mode is enabled (and vice versa). -# -# Run only on non-64-bit Windows platform. OS=`uname -s` case "$OS" in diff --git a/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh b/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh index b42c51dddee..0012a93af52 100644 --- a/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh +++ b/jdk/test/sun/security/mscapi/KeytoolChangeAlias.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2011, 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,11 +25,9 @@ # @test -# @bug 6415696 +# @bug 6415696 6931562 # @run shell KeytoolChangeAlias.sh # @summary Test "keytool -changealias" using the Microsoft CryptoAPI provider. -# -# Run only on non-64-bit Windows platform. # set a few environment variables so that the shell-script can run stand-alone # in the source directory diff --git a/jdk/test/sun/security/mscapi/RSAEncryptDecrypt.sh b/jdk/test/sun/security/mscapi/RSAEncryptDecrypt.sh index 4191fb1b0c0..19add0a7356 100644 --- a/jdk/test/sun/security/mscapi/RSAEncryptDecrypt.sh +++ b/jdk/test/sun/security/mscapi/RSAEncryptDecrypt.sh @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2006, 2011, 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,13 +24,11 @@ # # @test -# @bug 6457422 +# @bug 6457422 6931562 # @run shell RSAEncryptDecrypt.sh # @summary Confirm that plaintext can be encrypted and then decrypted using the # RSA cipher in the SunMSCAPI crypto provider. NOTE: The RSA cipher is # absent from the SunMSCAPI provider in OpenJDK builds. -# -# Run only on non-64-bit Windows platform. # set a few environment variables so that the shell-script can run stand-alone # in the source directory From 6431b121c725e931240020868be7f13e26a436c5 Mon Sep 17 00:00:00 2001 From: Alexander Potochkin <alexp@openjdk.org> Date: Fri, 22 Apr 2011 20:54:37 +0400 Subject: [PATCH 028/147] 7036871: Some JCK interactive JSplitPane tests that test continuous layout fail with Nimbus L&F Reviewed-by: rupashka --- jdk/src/share/classes/javax/swing/JSplitPane.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/javax/swing/JSplitPane.java b/jdk/src/share/classes/javax/swing/JSplitPane.java index d947329d663..fa773e5ae67 100644 --- a/jdk/src/share/classes/javax/swing/JSplitPane.java +++ b/jdk/src/share/classes/javax/swing/JSplitPane.java @@ -671,7 +671,7 @@ public class JSplitPane extends JComponent implements Accessible * which must be <code>true</code> for the child components * to be continuously * redisplayed and laid out during user intervention. - * The default value of this property is <code>false</code>. + * The default value of this property is look and feel dependent. * Some look and feels might not support continuous layout; * they will ignore this property. * From 218457a8457e8a65f55f6a4639906215009bb673 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Fri, 22 Apr 2011 10:21:37 -0700 Subject: [PATCH 029/147] 6595663: Manifest on jars contain JavaBeans entries Reviewed-by: alanb, mchung --- jdk/make/common/Demo.gmk | 8 ++++++-- jdk/make/common/Release-embedded.gmk | 4 ++-- jdk/make/common/Release.gmk | 23 +++++++++++++++-------- jdk/make/javax/crypto/Defs-jce.gmk | 8 +++++--- jdk/make/tools/manifest.mf | 2 +- 5 files changed, 29 insertions(+), 16 deletions(-) diff --git a/jdk/make/common/Demo.gmk b/jdk/make/common/Demo.gmk index c804e94d180..a3788aea7d5 100644 --- a/jdk/make/common/Demo.gmk +++ b/jdk/make/common/Demo.gmk @@ -211,9 +211,13 @@ $(DEMO_BUILD_SRCDIR)/%: $(DEMO_SRCDIR)/../java_crw_demo/% endif # Jar manifest file -$(DEMO_MANIFEST): +MAINMANIFEST = $(JDK_TOPDIR)/make/tools/manifest.mf +$(DEMO_MANIFEST): $(MAINMANIFEST) @$(prep-target) - $(ECHO) "Main-Class: $(DEMO_MAINCLASS)" > $@ + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + $(ECHO) "Main-Class: $(DEMO_MAINCLASS)" >> $@ ifdef DEMO_MANIFEST_ATTR $(ECHO) "$(DEMO_MANIFEST_ATTR)" >> $@ endif diff --git a/jdk/make/common/Release-embedded.gmk b/jdk/make/common/Release-embedded.gmk index f7a87f28421..06e2127ecf3 100644 --- a/jdk/make/common/Release-embedded.gmk +++ b/jdk/make/common/Release-embedded.gmk @@ -84,10 +84,10 @@ MakeHeadlessJarFileList: $(TOTAL_HEADLESS_JAR_FILELIST) $(JARSPLIT_JARFILE) # Create headless rt.jar HL_RT_JAR=$(ABS_TEMPDIR)/rt-hl-orig.jar -$(HL_RT_JAR): MakeHeadlessJarFileList $(JAR_MANIFEST_FILE) +$(HL_RT_JAR): MakeHeadlessJarFileList $(RT_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) ; \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ @$(HEADLESS_RT_JAR_FILELIST) \ $(JAR_JFLAGS) @$(CD) $(CLASSBINDIR); $(java-vm-cleanup) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index 17297d573b0..ccf566562ec 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -609,8 +609,8 @@ $(RT_JAR_FILELIST) + $(RES_JAR_FILELIST): \ @$(java-vm-cleanup) # Create the manifest file. -JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp -$(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) +RT_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/rt_manifest.tmp +$(RT_JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) $(prep-target) $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ @@ -618,21 +618,28 @@ $(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST) $(ECHO) >> $@ $(CAT) $(BEANMANIFEST) >> $@ +OTHER_JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/other_manifest.tmp +$(OTHER_JAR_MANIFEST_FILE): $(MAINMANIFEST) + $(prep-target) + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + # Create resources.jar containing non-class files RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar -$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(JAR_MANIFEST_FILE) +$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(OTHER_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) # Create jsse.jar containing SunJSSE implementation classes JSSE_JAR=$(ABS_TEMPDIR)/jsse-orig.jar -$(JSSE_JAR): $(JAR_MANIFEST_FILE) +$(JSSE_JAR): $(OTHER_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(OTHER_JAR_MANIFEST_FILE) $@ \ $(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) @@ -676,10 +683,10 @@ endif # Create rt.jar RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar -$(RT_JAR): $(RT_JAR_FILELIST) $(JAR_MANIFEST_FILE) +$(RT_JAR): $(RT_JAR_FILELIST) $(RT_JAR_MANIFEST_FILE) $(prep-target) $(CD) $(CLASSBINDIR) && \ - $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(JAR_MANIFEST_FILE) $@ \ + $(BOOT_JAR_CMD) $(CREATE_JAR_OPTS) $(RT_JAR_MANIFEST_FILE) $@ \ @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS) @$(CD) $(CLASSBINDIR) && $(java-vm-cleanup) diff --git a/jdk/make/javax/crypto/Defs-jce.gmk b/jdk/make/javax/crypto/Defs-jce.gmk index bd5cec9d4eb..f4e2d0bb05f 100644 --- a/jdk/make/javax/crypto/Defs-jce.gmk +++ b/jdk/make/javax/crypto/Defs-jce.gmk @@ -31,9 +31,11 @@ include $(BUILDDIR)/common/Release.gmk JCE_MANIFEST_FILE = $(TEMPDIR)/manifest.mf $(JCE_MANIFEST_FILE): $(MAINMANIFEST) $(prep-target) - ( $(SED) "s/@@RELEASE@@/$(RELEASE)/" $<; \ - $(ECHO) "Extension-Name: javax.crypto"; \ - $(ECHO) "Implementation-Vendor-Id: com.sun"; ) > $@ + $(SED) -e "s#@@RELEASE@@#$(RELEASE)#" \ + -e "s#@@COMPANY_NAME@@#$(COMPANY_NAME)#" \ + $(MAINMANIFEST) >> $@ + $(ECHO) "Extension-Name: javax.crypto" >> $@ + $(ECHO) "Implementation-Vendor-Id: com.sun" >> $@ README-MAKEFILE_WARNING = \ "\nPlease read make/javax/crypto/Makefile for further build instructions." diff --git a/jdk/make/tools/manifest.mf b/jdk/make/tools/manifest.mf index 5e631b7bb41..bbfd1c3cfb6 100644 --- a/jdk/make/tools/manifest.mf +++ b/jdk/make/tools/manifest.mf @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Specification-Title: Java Platform API Specification Specification-Version: 1.7 -Specification-Vendor: Oracle +Specification-Vendor: Oracle Corporation Implementation-Title: Java Runtime Environment Implementation-Version: @@RELEASE@@ Implementation-Vendor: @@COMPANY_NAME@@ From b5141e63fd863154e856d0147176b7fd65a8f620 Mon Sep 17 00:00:00 2001 From: Phil Race <prr@openjdk.org> Date: Fri, 22 Apr 2011 12:59:15 -0700 Subject: [PATCH 030/147] 7031011: fallbackfont testing failed on OEL 6 Reviewed-by: igor, jgodinez --- jdk/src/solaris/classes/sun/font/FcFontConfiguration.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java index ce2c935ba71..14d8e7ed221 100644 --- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java +++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java @@ -256,9 +256,9 @@ public class FcFontConfiguration extends FontConfiguration { } if (installedFallbackFontFiles != null) { - System.arraycopy(fileNames, index, - installedFallbackFontFiles, - 0, installedFallbackFontFiles.length); + System.arraycopy(installedFallbackFontFiles, 0, + fileNames, fcFonts.length, + installedFallbackFontFiles.length); } result[fontIndex * NUM_STYLES + styleIndex] From b91701fce632312a5aacec63e7f9126dccc2dec0 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev <dav@openjdk.org> Date: Mon, 25 Apr 2011 21:08:14 +0400 Subject: [PATCH 031/147] 7030632: Pasting HTML that was copied from MS Word results in IOException Reviewed-by: uta, denis --- .../windows/classes/sun/awt/windows/WDataTransferer.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java b/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java index 21c1945140f..47dcf275430 100644 --- a/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java +++ b/jdk/src/windows/classes/sun/awt/windows/WDataTransferer.java @@ -830,7 +830,14 @@ class HTMLCodec extends InputStream { if( -1 == iStartOffset ){ throw new IOException(FAILURE_MSG + "invalid HTML format."); } - iReadCount = bufferedStream.skip(iStartOffset); + + int curOffset = 0; + while (curOffset < iStartOffset){ + curOffset += bufferedStream.skip(iStartOffset - curOffset); + } + + iReadCount = curOffset; + if( iStartOffset != iReadCount ){ throw new IOException(FAILURE_MSG + "Byte stream ends in description."); } From 5621d404bfbc05943b42affbba32ad2e43cda565 Mon Sep 17 00:00:00 2001 From: Denis Fokin <denis@openjdk.org> Date: Mon, 25 Apr 2011 20:39:35 +0400 Subject: [PATCH 032/147] 6888182: Readable and permitted to delete files could not be transferred through Clipboard and DnD Reviewed-by: uta --- jdk/src/windows/native/sun/windows/awt_Clipboard.cpp | 2 +- jdk/src/windows/native/sun/windows/awt_DnDDS.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/src/windows/native/sun/windows/awt_Clipboard.cpp b/jdk/src/windows/native/sun/windows/awt_Clipboard.cpp index d978090b8b3..6cea4a715fb 100644 --- a/jdk/src/windows/native/sun/windows/awt_Clipboard.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Clipboard.cpp @@ -294,7 +294,7 @@ Java_sun_awt_windows_WClipboard_publishClipboardData(JNIEnv *env, if (format == CF_HDROP) { DROPFILES *dropfiles = (DROPFILES *)dataout; dropfiles->pFiles = sizeof(DROPFILES); - dropfiles->fWide = FALSE; // good guess! + dropfiles->fWide = TRUE; // we publish only Unicode dataout += sizeof(DROPFILES); } diff --git a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp index 1aea026c885..2d585e0330a 100644 --- a/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp +++ b/jdk/src/windows/native/sun/windows/awt_DnDDS.cpp @@ -843,7 +843,7 @@ HRESULT __stdcall AwtDragSource::GetData(FORMATETC __RPC_FAR *pFormatEtc, dropfiles->pt.x = m_dropPoint.x; dropfiles->pt.y = m_dropPoint.y; dropfiles->fNC = m_fNC; - dropfiles->fWide = TRUE; // good guess! + dropfiles->fWide = TRUE; // we publish only Unicode dataout += sizeof(DROPFILES); } From 94164d4b451f8c1b39e2f163a75d1a6937432469 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons <jjg@openjdk.org> Date: Mon, 25 Apr 2011 15:50:30 -0700 Subject: [PATCH 033/147] 7039019: test cannot run standalone Reviewed-by: dlsmith --- .../test/tools/javac/processing/model/TestSymtabItems.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/langtools/test/tools/javac/processing/model/TestSymtabItems.java b/langtools/test/tools/javac/processing/model/TestSymtabItems.java index 84f5e51194a..b16826e3eaa 100644 --- a/langtools/test/tools/javac/processing/model/TestSymtabItems.java +++ b/langtools/test/tools/javac/processing/model/TestSymtabItems.java @@ -44,6 +44,7 @@ import javax.lang.model.util.Types; import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.code.Symtab; import com.sun.tools.javac.file.JavacFileManager; +import com.sun.tools.javac.main.JavaCompiler; import com.sun.tools.javac.model.JavacTypes; import com.sun.tools.javac.util.Context; @@ -62,6 +63,7 @@ public class TestSymtabItems { JavacFileManager.preRegister(c); Symtab syms = Symtab.instance(c); JavacTypes types = JavacTypes.instance(c); + JavaCompiler.instance(c); // will init ClassReader.sourceCompleter // print("noSymbol", syms.noSymbol); // print("errSymbol", syms.errSymbol); From 59b66506144bc452c8b3abb92c9a2c1c739c2a19 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons <jjg@openjdk.org> Date: Mon, 25 Apr 2011 15:56:09 -0700 Subject: [PATCH 034/147] 7038363: cast from object to primitive should be for source >= 1.7 Reviewed-by: mcimadamore --- .../com/sun/tools/javac/code/Source.java | 3 ++ .../com/sun/tools/javac/code/Types.java | 22 ++++++----- .../types/CastObjectToPrimitiveTest.java | 38 +++++++++++++++++++ .../javac/types/CastObjectToPrimitiveTest.out | 2 + 4 files changed, 56 insertions(+), 9 deletions(-) create mode 100644 langtools/test/tools/javac/types/CastObjectToPrimitiveTest.java create mode 100644 langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Source.java b/langtools/src/share/classes/com/sun/tools/javac/code/Source.java index ee6df182252..bee0ed8ff29 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Source.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Source.java @@ -186,6 +186,9 @@ public enum Source { public boolean allowSimplifiedVarargs() { return compareTo(JDK1_7) >= 0; } + public boolean allowObjectToPrimitiveCast() { + return compareTo(JDK1_7) >= 0; + } public static SourceVersion toSourceVersion(Source source) { switch(source) { case JDK1_2: diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java index 355f56f6ee9..2481d586a39 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java @@ -74,8 +74,9 @@ public class Types { final JavacMessages messages; final Names names; final boolean allowBoxing; + final boolean allowCovariantReturns; + final boolean allowObjectToPrimitiveCast; final ClassReader reader; - final Source source; final Check chk; List<Warner> warnStack = List.nil(); final Name capturedName; @@ -92,9 +93,11 @@ public class Types { context.put(typesKey, this); syms = Symtab.instance(context); names = Names.instance(context); - allowBoxing = Source.instance(context).allowBoxing(); + Source source = Source.instance(context); + allowBoxing = source.allowBoxing(); + allowCovariantReturns = source.allowCovariantReturns(); + allowObjectToPrimitiveCast = source.allowObjectToPrimitiveCast(); reader = ClassReader.instance(context); - source = Source.instance(context); chk = Check.instance(context); capturedName = names.fromString("<captured wildcard>"); messages = JavacMessages.instance(context); @@ -949,8 +952,9 @@ public class Types { return true; if (t.isPrimitive() != s.isPrimitive()) - return allowBoxing && (isConvertible(t, s, warn) || isConvertible(s, t, warn)); - + return allowBoxing && ( + isConvertible(t, s, warn) + || (allowObjectToPrimitiveCast && isConvertible(s, t, warn))); if (warn != warnStack.head) { try { warnStack = warnStack.prepend(warn); @@ -3070,7 +3074,7 @@ public class Types { if (hasSameArgs(r1, r2)) return covariantReturnType(r1.getReturnType(), r2res, warner); - if (!source.allowCovariantReturns()) + if (!allowCovariantReturns) return false; if (isSubtypeUnchecked(r1.getReturnType(), r2res, warner)) return true; @@ -3087,7 +3091,7 @@ public class Types { public boolean covariantReturnType(Type t, Type s, Warner warner) { return isSameType(t, s) || - source.allowCovariantReturns() && + allowCovariantReturns && !t.isPrimitive() && !s.isPrimitive() && isAssignable(t, s, warner); @@ -3293,7 +3297,7 @@ public class Types { } if (giveWarning && !isReifiable(reverse ? from : to)) warn.warn(LintCategory.UNCHECKED); - if (!source.allowCovariantReturns()) + if (!allowCovariantReturns) // reject if there is a common method signature with // incompatible return types. chk.checkCompatibleAbstracts(warn.pos(), from, to); @@ -3320,7 +3324,7 @@ public class Types { Type t2 = to; if (disjointTypes(t1.getTypeArguments(), t2.getTypeArguments())) return false; - if (!source.allowCovariantReturns()) + if (!allowCovariantReturns) // reject if there is a common method signature with // incompatible return types. chk.checkCompatibleAbstracts(warn.pos(), from, to); diff --git a/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.java b/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.java new file mode 100644 index 00000000000..f8e61e1afb4 --- /dev/null +++ b/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7038363 + * @summary cast from object to primitive should be for source >= 1.7 + * @compile/fail/ref=CastObjectToPrimitiveTest.out -XDrawDiagnostics -Xlint:-options -source 5 CastObjectToPrimitiveTest.java + * @compile/fail/ref=CastObjectToPrimitiveTest.out -XDrawDiagnostics -Xlint:-options -source 6 CastObjectToPrimitiveTest.java + * @compile CastObjectToPrimitiveTest.java + */ + +class CastObjectToPrimitiveTest { + void m() { + Object o = 42; + int i = (int) o; + } +} diff --git a/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out b/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out new file mode 100644 index 00000000000..0a4f9cd0734 --- /dev/null +++ b/langtools/test/tools/javac/types/CastObjectToPrimitiveTest.out @@ -0,0 +1,2 @@ +CastObjectToPrimitiveTest.java:36:23: compiler.err.prob.found.req: (compiler.misc.inconvertible.types), java.lang.Object, int +1 error From f23eb2096ff33fc2d718cbe70bbae04720391449 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Mon, 25 Apr 2011 16:39:49 -0700 Subject: [PATCH 035/147] 7034259: [all] incorrect mnemonic keys in JCP automatic update advanced settings dialog Reviewed-by: yhuang --- .../swing/plaf/gtk/resources/gtk.properties | 4 ++++ .../plaf/gtk/resources/gtk_de.properties | 4 ++++ .../plaf/gtk/resources/gtk_es.properties | 4 ++++ .../plaf/gtk/resources/gtk_fr.properties | 4 ++++ .../plaf/gtk/resources/gtk_it.properties | 4 ++++ .../plaf/gtk/resources/gtk_ja.properties | 4 ++++ .../plaf/gtk/resources/gtk_ko.properties | 4 ++++ .../plaf/gtk/resources/gtk_pt_BR.properties | 4 ++++ .../plaf/gtk/resources/gtk_sv.properties | 4 ++++ .../plaf/gtk/resources/gtk_zh_CN.properties | 4 ++++ .../plaf/gtk/resources/gtk_zh_TW.properties | 4 ++++ .../plaf/basic/resources/basic.properties | 10 +++++----- .../plaf/basic/resources/basic_de.properties | 8 ++++---- .../plaf/basic/resources/basic_es.properties | 8 ++++---- .../plaf/basic/resources/basic_fr.properties | 8 ++++---- .../plaf/basic/resources/basic_ja.properties | 20 +++++++++---------- .../plaf/basic/resources/basic_ko.properties | 20 +++++++++---------- .../basic/resources/basic_pt_BR.properties | 8 ++++---- .../basic/resources/basic_zh_CN.properties | 20 +++++++++---------- .../basic/resources/basic_zh_TW.properties | 20 +++++++++---------- .../applet/resources/MsgAppletViewer_sv.java | 4 ++-- 21 files changed, 107 insertions(+), 63 deletions(-) diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties index 3696c0e6b10..904a49352eb 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties @@ -79,5 +79,9 @@ FileChooser.renameFileDialogText=Rename file "{0}" to FileChooser.renameFileErrorTitle=Error FileChooser.renameFileErrorText=Error renaming file "{0}" to "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancel OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties index 3abf19588f3..571bc0afae3 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Datei "{0}" umbenennen in FileChooser.renameFileErrorTitle=Fehler FileChooser.renameFileErrorText=Fehler beim Umbenennen der Datei "{0}" in "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Abbrechen OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties index c9340d0bf5e..6daa4d9b441 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Cambiar el nombre del archivo "{0}" por FileChooser.renameFileErrorTitle=Error FileChooser.renameFileErrorText=Error al cambiar el nombre del archivo "{0}" a "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=Aceptar OptionPane.okButtonMnemonic=65 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancelar OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties index a6a17749c3e..9f4e0e559f7 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Renomme le fichier "{0}" en FileChooser.renameFileErrorTitle=Erreur FileChooser.renameFileErrorText=Erreur lors du changement de nom du fichier "{0}" en "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Annuler OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties index 0bdb3413c3c..21cd8f77826 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Rinomina file "{0}" in FileChooser.renameFileErrorTitle=Errore FileChooser.renameFileErrorText=Errore durante la ridenominazione del file "{0}" in "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Annulla OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties index 30f7bf8d344..c7ff0bb97a2 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u30D5\u30A1\u30A4\u30EB"{0}"\u3092\u6B21\u306E FileChooser.renameFileErrorTitle=\u30A8\u30E9\u30FC FileChooser.renameFileErrorText=\u30D5\u30A1\u30A4\u30EB"{0}"\u306E"{1}"\u3078\u306E\u5909\u66F4\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F +# dummy resource added for translation automation +OptionPane.okButtonText=OK(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties index eeb35411d9d..cb029e7b025 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText="{0}" \uD30C\uC77C\uC758 \uC774\uB984 \uBC14\uA FileChooser.renameFileErrorTitle=\uC624\uB958 FileChooser.renameFileErrorText="{0}" \uD30C\uC77C\uC758 \uC774\uB984\uC744 "{1}"(\uC73C)\uB85C \uBC14\uAFB8\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. +# dummy resource added for translation automation +OptionPane.okButtonText=\uD655\uC778(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\uCDE8\uC18C(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties index 89d49e039c5..6fb63b6764f 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Renomear arquivo "{0}" por FileChooser.renameFileErrorTitle=Erro FileChooser.renameFileErrorText=Erro ao renomear o arquivo "{0}" por "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Cancelar OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties index 852f05330d0..cfde4686b9b 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=Namn\u00E4ndra fil "{0}" till FileChooser.renameFileErrorTitle=Fel FileChooser.renameFileErrorText=Fel vid namn\u00E4ndring av fil "{0}" till "{1}" +# dummy resource added for translation automation +OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=Avbryt OptionPane.cancelButtonMnemonic=65 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties index 8024e043b4f..58506b0107d 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E FileChooser.renameFileErrorTitle=\u9519\u8BEF FileChooser.renameFileErrorText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A "{1}" \u65F6\u51FA\u9519 +# dummy resource added for translation automation +OptionPane.okButtonText=\u786E\u5B9A(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties index d8952c40d33..ac8c732dc6d 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties @@ -79,6 +79,10 @@ FileChooser.renameFileDialogText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u54 FileChooser.renameFileErrorTitle=\u932F\u8AA4 FileChooser.renameFileErrorText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA "{1}" \u6642\u51FA\u73FE\u932F\u8AA4 +# dummy resource added for translation automation +OptionPane.okButtonText=\u78BA\u5B9A(O) OptionPane.okButtonMnemonic=79 +# dummy resource added for translation automation +OptionPane.cancelButtonText=\u53D6\u6D88(C) OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties index 4dac249bfa0..87e3bde708e 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties @@ -59,9 +59,9 @@ FileChooser.acceptAllFileFilterText=All Files FileChooser.cancelButtonText=Cancel FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=Save -FileChooser.saveButtonMnemonic=83 +FileChooser.saveButtonMnemonic=83 // not needed? FileChooser.openButtonText=Open -FileChooser.openButtonMnemonic=79 +FileChooser.openButtonMnemonic=79 //not needed? FileChooser.saveDialogTitleText=Save FileChooser.openDialogTitleText=Open FileChooser.updateButtonText=Update @@ -121,11 +121,11 @@ ColorChooser.hslTransparencyText=Transparency ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 ColorChooser.rgbRedText=Red -ColorChooser.rgbRedMnemonic=68 +ColorChooser.rgbRedMnemonic=68 // not needed? ColorChooser.rgbGreenText=Green -ColorChooser.rgbGreenMnemonic=78 +ColorChooser.rgbGreenMnemonic=78 // not needed? ColorChooser.rgbBlueText=Blue -ColorChooser.rgbBlueMnemonic=66 +ColorChooser.rgbBlueMnemonic=66 // not needed? ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=Color Code ColorChooser.rgbHexCodeMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties index 54783a8a872..2306682b067 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_de.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Ja OptionPane.yesButtonMnemonic=74 OptionPane.noButtonText=Nein OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Abbrechen(0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Abbrechen +OptionPane.cancelButtonMnemonic=A OptionPane.titleText=Option ausw\u00E4hlen # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties index 0d4f49e69c5..87ce61c7f77 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=S\u00ED OptionPane.yesButtonMnemonic=83 OptionPane.noButtonText=No OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Cancelar (0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Cancelar +OptionPane.cancelButtonMnemonic=C OptionPane.titleText=Seleccionar una Opci\u00F3n # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties index 3c88b67b475..8b3ba8f2d58 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_fr.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Oui OptionPane.yesButtonMnemonic=79 OptionPane.noButtonText=Non OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Annuler (0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Annuler +OptionPane.cancelButtonMnemonic=A OptionPane.titleText=S\u00E9lectionner une option # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties index 6ea5b12e9b9..9382e0abc04 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3 FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u4FDD\u5B58(S) +FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u958B\u304F(O) +FileChooser.openButtonText=\u958B\u304F FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u958B\u304F @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u65B0: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u76F8 ColorChooser.hsvSaturationText=\u5F69\u5EA6 ColorChooser.hsvValueText=\u5024 ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u76F8 ColorChooser.hslSaturationText=\u5F69\u5EA6 ColorChooser.hslLightnessText=\u660E\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u8D64(D) +ColorChooser.rgbRedText=\u8D64 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7DD1(N) +ColorChooser.rgbGreenText=\u7DD1 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u9752(B) +ColorChooser.rgbBlueText=\u9752 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=\u30A2\u30EB\u30D5\u30A1 ColorChooser.rgbHexCodeText=\u8272\u30B3\u30FC\u30C9(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u306F\u3044(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u3044\u3044\u3048(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u9078\u629E diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties index 432a0c13429..b8f70de37ff 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 FileChooser.acceptAllFileFilterText=\uBAA8\uB4E0 \uD30C\uC77C FileChooser.cancelButtonText=\uCDE8\uC18C(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\uC800\uC7A5(S) +FileChooser.saveButtonText=\uC800\uC7A5 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\uC5F4\uAE30(O) +FileChooser.openButtonText=\uC5F4\uAE30 FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\uC800\uC7A5 FileChooser.openDialogTitleText=\uC5F4\uAE30 @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\uCD5C\uADFC \uBAA9\uB85D: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\uC0C9\uC870 ColorChooser.hsvSaturationText=\uCC44\uB3C4 ColorChooser.hsvValueText=\uAC12 ColorChooser.hsvTransparencyText=\uD22C\uBA85 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\uC0C9\uC870 ColorChooser.hslSaturationText=\uCC44\uB3C4 ColorChooser.hslLightnessText=\uBC1D\uAE30 ColorChooser.hslTransparencyText=\uD22C\uBA85 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\uBE68\uAC04\uC0C9(D) +ColorChooser.rgbRedText=\uBE68\uAC04\uC0C9 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\uB179\uC0C9(N) +ColorChooser.rgbGreenText=\uB179\uC0C9 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\uD30C\uB780\uC0C9(B) +ColorChooser.rgbBlueText=\uD30C\uB780\uC0C9 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=\uC54C\uD30C ColorChooser.rgbHexCodeText=\uC0C9\uC0C1 \uCF54\uB4DC(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\uC608(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\uC544\uB2C8\uC624(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\uCDE8\uC18C(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\uC635\uC158 \uC120\uD0DD diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties index 426dcfe8953..cbc3c99d669 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_pt_BR.properties @@ -144,10 +144,10 @@ OptionPane.yesButtonText=Sim OptionPane.yesButtonMnemonic=83 OptionPane.noButtonText=N\u00E3o OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 -OptionPane.cancelButtonText=Cancelar(0) -OptionPane.cancelButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O +OptionPane.cancelButtonText=Cancelar +OptionPane.cancelButtonMnemonic=C OptionPane.titleText=Selecionar uma Op\u00E7\u00E3o # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties index bf537e0d8dd..212b1753539 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText=\u65E0\u6CD5\u91CD\u547D\u540D{0}: \u5DF2\ FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4EF6 FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u4FDD\u5B58(S) +FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u6253\u5F00(O) +FileChooser.openButtonText=\u6253\u5F00 FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u6253\u5F00 @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u8FD1: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u8C03 ColorChooser.hsvSaturationText=\u9971\u548C\u5EA6 ColorChooser.hsvValueText=\u503C ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u8C03 ColorChooser.hslSaturationText=\u9971\u548C\u5EA6 ColorChooser.hslLightnessText=\u4EAE\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u7EA2\u8272(D) +ColorChooser.rgbRedText=\u7EA2\u8272 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7EFF\u8272(N) +ColorChooser.rgbGreenText=\u7EFF\u8272 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u84DD\u8272(B) +ColorChooser.rgbBlueText=\u84DD\u8272 ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=\u989C\u8272\u4EE3\u7801(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9009\u62E9\u4E00\u4E2A\u9009\u9879 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties index 14489713a11..ef267aaf8c5 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties @@ -57,9 +57,9 @@ FileChooser.renameErrorFileExistsText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}: FileChooser.acceptAllFileFilterText=\u6240\u6709\u6A94\u6848 FileChooser.cancelButtonText=\u53D6\u6D88(C) FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u5132\u5B58(S) +FileChooser.saveButtonText=\u5132\u5B58 FileChooser.saveButtonMnemonic=83 -FileChooser.openButtonText=\u958B\u555F(O) +FileChooser.openButtonText=\u958B\u555F FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u5132\u5B58 FileChooser.openDialogTitleText=\u958B\u555F @@ -105,25 +105,25 @@ ColorChooser.swatchesRecentText=\u6700\u65B0\u9078\u64C7: # constant, and an index into the text to render the mnemonic as. The # mnemonic is xxxMnemonic and the index of the character to underline is # xxxDisplayedMnemonicIndex. -ColorChooser.hsvNameText=HSV(H) +ColorChooser.hsvNameText=HSV ColorChooser.hsvMnemonic=72 ColorChooser.hsvHueText=\u8272\u8ABF ColorChooser.hsvSaturationText=\u5F69\u5EA6 ColorChooser.hsvValueText=\u6578\u503C ColorChooser.hsvTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.hslNameText=HSL(L) +ColorChooser.hslNameText=HSL ColorChooser.hslMnemonic=76 ColorChooser.hslHueText=\u8272\u8ABF ColorChooser.hslSaturationText=\u5F69\u5EA6 ColorChooser.hslLightnessText=\u4EAE\u5EA6 ColorChooser.hslTransparencyText=\u900F\u660E\u5EA6 -ColorChooser.rgbNameText=RGB(G) +ColorChooser.rgbNameText=RGB ColorChooser.rgbMnemonic=71 -ColorChooser.rgbRedText=\u7D05(D) +ColorChooser.rgbRedText=\u7D05 ColorChooser.rgbRedMnemonic=68 -ColorChooser.rgbGreenText=\u7DA0(N) +ColorChooser.rgbGreenText=\u7DA0 ColorChooser.rgbGreenMnemonic=78 -ColorChooser.rgbBlueText=\u85CD(B) +ColorChooser.rgbBlueText=\u85CD ColorChooser.rgbBlueMnemonic=66 ColorChooser.rgbAlphaText=Alpha ColorChooser.rgbHexCodeText=\u984F\u8272\u4EE3\u78BC(C) @@ -144,8 +144,8 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK(0) -OptionPane.okButtonMnemonic=0 +OptionPane.okButtonText=OK +OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88(0) OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9078\u53D6\u4E00\u500B\u9078\u9805 diff --git a/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java b/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java index bc7991c668f..0426389e94d 100644 --- a/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java +++ b/jdk/src/share/classes/sun/applet/resources/MsgAppletViewer_sv.java @@ -73,7 +73,7 @@ public class MsgAppletViewer_sv extends ListResourceBundle { {"appletviewer.parse.warning.embed.requiresheight", "Varning: <embed>-taggen kr\u00E4ver ett h\u00F6jdattribut."}, {"appletviewer.parse.warning.embed.requireswidth", "Varning: <embed>-taggen kr\u00E4ver ett breddattribut."}, {"appletviewer.parse.warning.appnotLongersupported", "Varning: <app>-taggen st\u00F6ds inte l\u00E4ngre, anv\u00E4nd <applet> ist\u00E4llet:"}, - {"appletviewer.usage", "Syntax: appletviewer <alternativ> url:er \n\nd\u00E4r <alternativ> inkluderar:\n -debug Startar appletvisning i Java-fels\u00F6kningen\n -encoding <kodning> Anger teckenkodning som anv\u00E4nds i HTML-filer\n -J<k\u00F6rningsflagga> \u00D6verf\u00F6r argument till Java-tolkningen\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."}, + {"appletviewer.usage", "Syntax: appletviewer-<alternativ> url:er \n\nd\u00E4r <alternativ> inkluderar:\n -debug Startar appletvisning i Java-fels\u00F6kningen\n -encoding <kodning> Anger teckenkodning som anv\u00E4nds i HTML-filer\n -J<k\u00F6rningsflagga> \u00D6verf\u00F6r argument till Java-tolkningen\n\nAlternativet -J \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande."}, {"appletviewer.main.err.unsupportedopt", "Alternativ som inte st\u00F6ds: {0}"}, {"appletviewer.main.err.unrecognizedarg", "Ok\u00E4nt argument: {0}"}, {"appletviewer.main.err.dupoption", "Duplicerat alternativ: {0}"}, @@ -152,7 +152,7 @@ public class MsgAppletViewer_sv extends ListResourceBundle { {"appletprops.label.unsignedapplet", "Till\u00E5t osignerade appletar:"}, {"appletprops.choice.unsignedapplet.no", "Nej"}, {"appletprops.choice.unsignedapplet.yes", "Ja"}, - {"appletprops.button.apply", "Till\u00E4mpa"}, + {"appletprops.button.apply", "Anv\u00E4nd"}, {"appletprops.button.cancel", "Avbryt"}, {"appletprops.button.reset", "\u00C5terst\u00E4ll"}, {"appletprops.apply.exception", "Kunde inte spara egenskaper: {0}"}, From 58aa826b315dbb63a3d5844c221920af0d660922 Mon Sep 17 00:00:00 2001 From: Yuka Kamiya <peytoia@openjdk.org> Date: Tue, 26 Apr 2011 10:46:19 +0900 Subject: [PATCH 036/147] 7039469: (tz) Support tzdata2011g Reviewed-by: okutsu --- jdk/make/sun/javazic/tzdata/VERSION | 2 +- jdk/make/sun/javazic/tzdata/africa | 18 ++++++++++++++++-- jdk/make/sun/javazic/tzdata/europe | 4 ++-- jdk/make/sun/javazic/tzdata/southamerica | 23 +++++++++++++++++++++-- 4 files changed, 40 insertions(+), 7 deletions(-) diff --git a/jdk/make/sun/javazic/tzdata/VERSION b/jdk/make/sun/javazic/tzdata/VERSION index c19847f5a11..c52096254ae 100644 --- a/jdk/make/sun/javazic/tzdata/VERSION +++ b/jdk/make/sun/javazic/tzdata/VERSION @@ -21,4 +21,4 @@ # or visit www.oracle.com if you need additional information or have any # questions. # -tzdata2011e +tzdata2011g diff --git a/jdk/make/sun/javazic/tzdata/africa b/jdk/make/sun/javazic/tzdata/africa index bea5f8157bb..a43e73ce10b 100644 --- a/jdk/make/sun/javazic/tzdata/africa +++ b/jdk/make/sun/javazic/tzdata/africa @@ -234,7 +234,21 @@ Rule Egypt 1989 only - May 6 1:00 1:00 S Rule Egypt 1990 1994 - May 1 1:00 1:00 S # IATA (after 1990) says transitions are at 0:00. # Go with IATA starting in 1995, except correct 1995 entry from 09-30 to 09-29. -Rule Egypt 1995 max - Apr lastFri 0:00s 1:00 S + +# From Alexander Krivenyshev (2011-04-20): +# "...Egypt's interim cabinet decided on Wednesday to cancel daylight +# saving time after a poll posted on its website showed the majority of +# Egyptians would approve the cancellation." +# +# Egypt to cancel daylight saving time +# <a href="http://www.almasryalyoum.com/en/node/407168"> +# http://www.almasryalyoum.com/en/node/407168 +# </a> +# or +# <a href="http://www.worldtimezone.com/dst_news/dst_news_egypt04.html"> +# http://www.worldtimezone.com/dst_news/dst_news_egypt04.html +# </a> +Rule Egypt 1995 2010 - Apr lastFri 0:00s 1:00 S Rule Egypt 1995 2005 - Sep lastThu 23:00s 0 - # From Steffen Thorsen (2006-09-19): # The Egyptian Gazette, issue 41,090 (2006-09-18), page 1, reports: @@ -335,7 +349,7 @@ Rule Egypt 2008 only - Aug lastThu 23:00s 0 - Rule Egypt 2009 only - Aug 20 23:00s 0 - Rule Egypt 2010 only - Aug 11 0:00 0 - Rule Egypt 2010 only - Sep 10 0:00 1:00 S -Rule Egypt 2010 max - Sep lastThu 23:00s 0 - +Rule Egypt 2010 only - Sep lastThu 23:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Cairo 2:05:00 - LMT 1900 Oct diff --git a/jdk/make/sun/javazic/tzdata/europe b/jdk/make/sun/javazic/tzdata/europe index 5b11dfb5122..89bf6c5d3dc 100644 --- a/jdk/make/sun/javazic/tzdata/europe +++ b/jdk/make/sun/javazic/tzdata/europe @@ -168,7 +168,7 @@ # A monument to Willett was unveiled on 1927-05-21, in an open space in # a 45-acre wood near Chislehurst, Kent that was purchased by popular # subscription and open to the public. On the south face of the monolith, -# designed by G. W. Miller, is the the William Willett Memorial Sundial, +# designed by G. W. Miller, is the...William Willett Memorial Sundial, # which is permanently set to Summer Time. # From Winston Churchill (1934-04-28): @@ -1808,7 +1808,7 @@ Zone Europe/Oslo 0:43:00 - LMT 1895 Jan 1 # # All these events predate our cutoff date of 1970. Unless we can # come up with more definitive info about the timekeeping during the -# war years it's probably best just do do the following for now: +# war years it's probably best just do...the following for now: Link Europe/Oslo Arctic/Longyearbyen # Poland diff --git a/jdk/make/sun/javazic/tzdata/southamerica b/jdk/make/sun/javazic/tzdata/southamerica index 7afec35d696..7717d12d17a 100644 --- a/jdk/make/sun/javazic/tzdata/southamerica +++ b/jdk/make/sun/javazic/tzdata/southamerica @@ -767,7 +767,7 @@ Zone America/La_Paz -4:32:36 - LMT 1890 # # As a result of the above Decree I believe the America/Rio_Branco # timezone shall be modified from UTC-5 to UTC-4 and a new timezone shall -# be created to represent the the west side of the Para State. I +# be created to represent the...west side of the Para State. I # suggest this new timezone be called Santarem as the most # important/populated city in the affected area. # @@ -1365,6 +1365,24 @@ Zone Pacific/Galapagos -5:58:24 - LMT 1931 # Puerto Baquerizo Moreno # For now, we'll just record the time in Stanley, since we have no # better info. +# From Steffen Thorsen (2011-04-01): +# The Falkland Islands will not turn back clocks this winter, but stay on +# daylight saving time. +# +# One source: +# <a href="http://www.falklandnews.com/public/story.cfm?get=5914&source=3"> +# http://www.falklandnews.com/public/story.cfm?get=5914&source=3 +# </a> +# +# We have gotten this confirmed by a clerk of the legislative assembly: +# Normally the clocks revert to Local Mean Time (UTC/GMT -4 hours) on the +# third Sunday of April at 0200hrs and advance to Summer Time (UTC/GMT -3 +# hours) on the first Sunday of September at 0200hrs. +# +# IMPORTANT NOTE: During 2011, on a trial basis, the Falkland Islands +# will not revert to local mean time, but clocks will remain on Summer +# time (UTC/GMT - 3 hours) throughout the whole of 2011. Any long term +# change to local time following the trial period will be notified. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Falk 1937 1938 - Sep lastSun 0:00 1:00 S Rule Falk 1938 1942 - Mar Sun>=19 0:00 0 - @@ -1376,7 +1394,8 @@ Rule Falk 1984 1985 - Apr lastSun 0:00 0 - Rule Falk 1984 only - Sep 16 0:00 1:00 S Rule Falk 1985 2000 - Sep Sun>=9 0:00 1:00 S Rule Falk 1986 2000 - Apr Sun>=16 0:00 0 - -Rule Falk 2001 max - Apr Sun>=15 2:00 0 - +Rule Falk 2001 2010 - Apr Sun>=15 2:00 0 - +Rule Falk 2012 max - Apr Sun>=15 2:00 0 - Rule Falk 2001 max - Sep Sun>=1 2:00 1:00 S # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Atlantic/Stanley -3:51:24 - LMT 1890 From 8b9fe065648dd28f7272009f66e061cb676afe14 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Mon, 25 Apr 2011 20:16:46 -0700 Subject: [PATCH 037/147] 7039493: incorporating WPTG translation bug fixes Reviewed-by: yhuang --- .../com/sun/tools/javadoc/resources/javadoc_zh_CN.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties index 8bcfafdb1eb..8bbe4a7abf8 100644 --- a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties +++ b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties @@ -43,7 +43,7 @@ main.Building_tree=\u6B63\u5728\u6784\u9020 Javadoc \u4FE1\u606F... main.no_source_files_for_package=\u6CA1\u6709\u7A0B\u5E8F\u5305{0}\u7684\u6E90\u6587\u4EF6 main.fatal.error=\u81F4\u547D\u9519\u8BEF main.fatal.exception=\u81F4\u547D\u5F02\u5E38\u9519\u8BEF -main.out.of.memory=java.lang.OutOfMemoryError: \u8BF7\u589E\u5927\u5185\u5B58\u3002\n\u4F8B\u5982, \u5BF9\u4E8E JDK \u7ECF\u5178\u6216\u70ED\u70B9 VM, \u8BF7\u589E\u5927\u9009\u9879 -J-Xmx,\n\u4F8B\u5982 -J-Xmx32m\u3002 +main.out.of.memory=java.lang.OutOfMemoryError: \u8BF7\u589E\u5927\u5185\u5B58\u3002\n\u4F8B\u5982, \u5BF9\u4E8E JDK \u7ECF\u5178\u6216 HotSpot VM, \u8BF7\u589E\u5927\u9009\u9879 -J-Xmx,\n\u4F8B\u5982 -J-Xmx32m\u3002 main.done_in=[\u5728 {0} \u6BEB\u79D2\u5185\u5B8C\u6210] main.doclet_method_must_be_static=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u4E3A\u9759\u6001\u3002 main.must_return_int=\u5728 doclet \u7C7B{0}\u4E2D, \u65B9\u6CD5{1}\u5FC5\u987B\u8FD4\u56DE\u6574\u578B\u503C\u3002 From a5e7b8d0d73a165bebbfe06a1fcd99c6a4e4d3d3 Mon Sep 17 00:00:00 2001 From: Nils Loodin <nloodin@openjdk.org> Date: Tue, 26 Apr 2011 12:49:34 +0200 Subject: [PATCH 038/147] 7029383: Refresh of non-client demos Reviewed-by: mchung, ohair --- .../debug/bdi/AccessWatchpointSpec.java | 3 +- .../debug/bdi/AmbiguousMethodException.java | 3 + .../example/debug/bdi/BreakpointSpec.java | 7 +- .../tools/example/debug/bdi/ChildSession.java | 19 +- .../debug/bdi/EvaluationException.java | 5 +- .../example/debug/bdi/EventRequestSpec.java | 2 - .../example/debug/bdi/ExceptionSpec.java | 14 +- .../example/debug/bdi/ExecutionManager.java | 73 +- .../bdi/FrameIndexOutOfBoundsException.java | 5 +- .../example/debug/bdi/JDIEventSource.java | 15 +- .../example/debug/bdi/LineBreakpointSpec.java | 9 +- .../debug/bdi/LineNotFoundException.java | 3 + .../bdi/MalformedMemberNameException.java | 3 + .../debug/bdi/MethodBreakpointSpec.java | 10 +- .../debug/bdi/MethodNotFoundException.java | 2 + .../debug/bdi/ModificationWatchpointSpec.java | 3 +- .../example/debug/bdi/NoSessionException.java | 5 +- .../example/debug/bdi/NoThreadException.java | 6 +- .../debug/bdi/PatternReferenceTypeSpec.java | 4 + .../example/debug/bdi/ReferenceTypeSpec.java | 2 + .../sun/tools/example/debug/bdi/Session.java | 1 - .../bdi/SourceNameReferenceTypeSpec.java | 7 +- .../example/debug/bdi/SpecErrorEvent.java | 3 +- .../tools/example/debug/bdi/SpecEvent.java | 1 + .../debug/bdi/ThreadGroupIterator.java | 4 +- .../tools/example/debug/bdi/ThreadInfo.java | 3 - .../example/debug/bdi/ThreadIterator.java | 3 + .../sun/tools/example/debug/bdi/Utils.java | 3 - .../debug/bdi/VMLaunchFailureException.java | 5 +- .../debug/bdi/VMNotInterruptedException.java | 5 +- .../example/debug/bdi/WatchpointSpec.java | 11 +- .../example/debug/event/AbstractEventSet.java | 18 + .../debug/event/AccessWatchpointEventSet.java | 4 +- .../debug/event/ClassPrepareEventSet.java | 3 + .../debug/event/ClassUnloadEventSet.java | 4 +- .../debug/event/ExceptionEventSet.java | 3 + .../tools/example/debug/event/JDIAdapter.java | 11 + .../debug/event/LocatableEventSet.java | 2 + .../debug/event/LocationTriggerEventSet.java | 4 +- .../event/ModificationWatchpointEventSet.java | 3 + .../debug/event/ThreadDeathEventSet.java | 3 + .../debug/event/ThreadStartEventSet.java | 3 + .../example/debug/event/VMDeathEventSet.java | 3 + .../debug/event/VMDisconnectEventSet.java | 3 + .../example/debug/event/VMStartEventSet.java | 3 + .../debug/event/WatchpointEventSet.java | 2 + .../example/debug/expr/ExpressionParser.java | 2476 ++++++++++++----- .../expr/ExpressionParserTokenManager.java | 602 ++-- .../sun/tools/example/debug/expr/LValue.java | 19 + .../example/debug/expr/ParseException.java | 19 +- .../sun/tools/example/debug/expr/Token.java | 1 + .../example/debug/expr/TokenMgrError.java | 3 + .../example/debug/gui/ApplicationTool.java | 6 +- .../example/debug/gui/ClassTreeTool.java | 15 +- .../example/debug/gui/CommandInterpreter.java | 16 +- .../tools/example/debug/gui/CommandTool.java | 37 +- .../example/debug/gui/ContextManager.java | 12 +- .../debug/gui/CurrentFrameChangedEvent.java | 1 + .../tools/example/debug/gui/Environment.java | 2 - .../com/sun/tools/example/debug/gui/GUI.java | 11 +- .../example/debug/gui/JDBFileFilter.java | 19 +- .../tools/example/debug/gui/JDBMenuBar.java | 6 +- .../tools/example/debug/gui/JDBToolBar.java | 3 +- .../tools/example/debug/gui/LaunchTool.java | 19 +- .../example/debug/gui/MonitorListModel.java | 7 +- .../tools/example/debug/gui/MonitorTool.java | 10 +- .../tools/example/debug/gui/SearchPath.java | 8 +- .../gui/SingleLeafTreeSelectionModel.java | 7 +- .../example/debug/gui/SourceManager.java | 13 +- .../tools/example/debug/gui/SourceModel.java | 4 +- .../tools/example/debug/gui/SourceTool.java | 29 +- .../example/debug/gui/SourceTreeTool.java | 20 +- .../debug/gui/SourcepathChangedEvent.java | 2 + .../example/debug/gui/StackTraceTool.java | 14 +- .../example/debug/gui/ThreadTreeTool.java | 13 +- .../tools/example/debug/gui/TypeScript.java | 3 +- .../debug/gui/TypeScriptOutputListener.java | 5 +- .../example/debug/gui/TypeScriptWriter.java | 3 + .../debug/tty/AccessWatchpointSpec.java | 2 + .../debug/tty/AmbiguousMethodException.java | 2 + .../example/debug/tty/BreakpointSpec.java | 6 +- .../sun/tools/example/debug/tty/Commands.java | 10 +- .../com/sun/tools/example/debug/tty/Env.java | 1 - .../tools/example/debug/tty/EventHandler.java | 7 +- .../example/debug/tty/EventRequestSpec.java | 2 - .../debug/tty/EventRequestSpecList.java | 3 - .../example/debug/tty/ExceptionSpec.java | 8 +- .../debug/tty/LineNotFoundException.java | 2 + .../tty/MalformedMemberNameException.java | 2 + .../debug/tty/ModificationWatchpointSpec.java | 2 + .../debug/tty/PatternReferenceTypeSpec.java | 5 + .../example/debug/tty/ReferenceTypeSpec.java | 2 + .../tools/example/debug/tty/SourceMapper.java | 3 - .../com/sun/tools/example/debug/tty/TTY.java | 32 +- .../tools/example/debug/tty/TTYResources.java | 1 + .../example/debug/tty/TTYResources_ja.java | 1 + .../example/debug/tty/TTYResources_zh_CN.java | 1 + .../debug/tty/ThreadGroupIterator.java | 4 +- .../tools/example/debug/tty/ThreadInfo.java | 2 - .../example/debug/tty/ThreadIterator.java | 3 + .../tools/example/debug/tty/VMConnection.java | 2 +- .../debug/tty/VMNotConnectedException.java | 2 + .../example/debug/tty/WatchpointSpec.java | 5 +- .../sun/tools/example/trace/EventThread.java | 15 +- .../example/trace/StreamRedirectThread.java | 1 + .../com/sun/tools/example/trace/Trace.java | 14 +- jdk/src/share/demo/jvmti/minst/Minst.java | 2 +- .../management/FullThreadDump/Deadlock.java | 3 +- .../FullThreadDump/ThreadMonitor.java | 5 +- jdk/src/share/demo/management/JTop/JTop.java | 21 +- .../demo/management/JTop/JTopPlugin.java | 8 +- .../MemoryMonitor/MemoryMonitor.java | 36 +- .../management/VerboseGC/PrintGCStat.java | 14 +- .../demo/management/VerboseGC/VerboseGC.java | 5 +- jdk/src/share/demo/nio/zipfs/Demo.java | 21 +- .../jconsole/EditableAtEndDocument.java | 4 + .../jconsole/ScriptJConsolePlugin.java | 9 +- .../scripting/jconsole/ScriptShellPanel.java | 11 + 118 files changed, 2842 insertions(+), 1150 deletions(-) diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java index 9ffd9148827..09e3f7e6814 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AccessWatchpointSpec.java @@ -26,7 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import com.sun.jdi.request.*; public class AccessWatchpointSpec extends WatchpointSpec { @@ -38,6 +37,7 @@ public class AccessWatchpointSpec extends WatchpointSpec { /** * The 'refType' is known to match. */ + @Override void resolve(ReferenceType refType) throws InvalidTypeException, NoSuchFieldException { if (!(refType instanceof ClassType)) { @@ -51,6 +51,7 @@ public class AccessWatchpointSpec extends WatchpointSpec { .createAccessWatchpointRequest(field)); } + @Override public boolean equals(Object obj) { return (obj instanceof AccessWatchpointSpec) && super.equals(obj); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java index 0e3d7668d2e..667cbb22593 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/AmbiguousMethodException.java @@ -27,6 +27,9 @@ package com.sun.tools.example.debug.bdi; public class AmbiguousMethodException extends Exception { + + private static final long serialVersionUID = 7793370943251707514L; + public AmbiguousMethodException() { super(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java index 798e5907063..541582ef89a 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/BreakpointSpec.java @@ -25,30 +25,33 @@ package com.sun.tools.example.debug.bdi; -import com.sun.jdi.request.*; - public abstract class BreakpointSpec extends EventRequestSpec { BreakpointSpec(EventRequestSpecList specs, ReferenceTypeSpec refSpec) { super(specs, refSpec); } + @Override void notifySet(SpecListener listener, SpecEvent evt) { listener.breakpointSet(evt); } + @Override void notifyDeferred(SpecListener listener, SpecEvent evt) { listener.breakpointDeferred(evt); } + @Override void notifyResolved(SpecListener listener, SpecEvent evt) { listener.breakpointResolved(evt); } + @Override void notifyDeleted(SpecListener listener, SpecEvent evt) { listener.breakpointDeleted(evt); } + @Override void notifyError(SpecListener listener, SpecErrorEvent evt) { listener.breakpointError(evt); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java index 5d5613c228a..917b0d8803a 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ChildSession.java @@ -43,10 +43,6 @@ class ChildSession extends Session { private BufferedReader out; private BufferedReader err; - private InputWriter inputWriter; - private OutputReader outputReader; - private OutputReader errorReader; - private InputListener input; private OutputListener output; private OutputListener error; @@ -84,6 +80,7 @@ class ChildSession extends Session { this.error = error; } + @Override public boolean attach() { if (!connectToVMProcess()) { @@ -131,6 +128,7 @@ class ChildSession extends Session { return true; } + @Override public void detach() { //### debug @@ -242,10 +240,7 @@ class ChildSession extends Session { this.diagnostics = diagnostics; } - public void quit() { - running = false; - } - + @Override public void run() { try { int count; @@ -254,6 +249,7 @@ class ChildSession extends Session { // Run in Swing event dispatcher thread. final String chars = new String(buffer, 0, count); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { output.putString(chars); } @@ -264,6 +260,7 @@ class ChildSession extends Session { } catch (IOException e) { // Run in Swing event dispatcher thread. SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { diagnostics.putString("IO error reading " + streamName + @@ -288,11 +285,7 @@ class ChildSession extends Session { this.input = input; } - public void quit() { - //### Won't have much effect if blocked on input! - running = false; - } - + @Override public void run() { String line; while (running) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java index 211bb5331b3..0e0a6b0b484 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EvaluationException.java @@ -25,4 +25,7 @@ package com.sun.tools.example.debug.bdi; -public class EvaluationException extends Exception {} +public class EvaluationException extends Exception { + + private static final long serialVersionUID = 4947109680354951694L; +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java index 28412756264..796d5803b9c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/EventRequestSpec.java @@ -25,8 +25,6 @@ package com.sun.tools.example.debug.bdi; -import java.util.*; - import com.sun.jdi.*; import com.sun.jdi.request.EventRequest; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java index 8be23905e3c..fa3fcb3de28 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExceptionSpec.java @@ -26,11 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.ReferenceType; -import com.sun.jdi.request.*; - -import java.util.ArrayList; -import java.util.List; -import java.util.Iterator; public class ExceptionSpec extends EventRequestSpec { @@ -45,22 +40,27 @@ public class ExceptionSpec extends EventRequestSpec { this.notifyUncaught = notifyUncaught; } + @Override void notifySet(SpecListener listener, SpecEvent evt) { listener.exceptionInterceptSet(evt); } + @Override void notifyDeferred(SpecListener listener, SpecEvent evt) { listener.exceptionInterceptDeferred(evt); } + @Override void notifyResolved(SpecListener listener, SpecEvent evt) { listener.exceptionInterceptResolved(evt); } + @Override void notifyDeleted(SpecListener listener, SpecEvent evt) { listener.exceptionInterceptDeleted(evt); } + @Override void notifyError(SpecListener listener, SpecErrorEvent evt) { listener.exceptionInterceptError(evt); } @@ -68,16 +68,19 @@ public class ExceptionSpec extends EventRequestSpec { /** * The 'refType' is known to match. */ + @Override void resolve(ReferenceType refType) { setRequest(refType.virtualMachine().eventRequestManager() .createExceptionRequest(refType, notifyCaught, notifyUncaught)); } + @Override public int hashCode() { return refSpec.hashCode(); } + @Override public boolean equals(Object obj) { if (obj instanceof ExceptionSpec) { ExceptionSpec es = (ExceptionSpec)obj; @@ -88,6 +91,7 @@ public class ExceptionSpec extends EventRequestSpec { } } + @Override public String toString() { StringBuffer buffer = new StringBuffer("exception catch "); buffer.append(refSpec.toString()); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java index 7dc60f5d625..35f2075daa9 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ExecutionManager.java @@ -26,7 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import com.sun.jdi.event.*; import com.sun.jdi.request.*; import com.sun.jdi.connect.*; import com.sun.tools.example.debug.expr.ExpressionParser; @@ -56,7 +55,7 @@ public class ExecutionManager { // Session Listeners - Vector<SessionListener> sessionListeners = new Vector<SessionListener>(); + ArrayList<SessionListener> sessionListeners = new ArrayList<SessionListener>(); public void addSessionListener(SessionListener listener) { sessionListeners.add(listener); @@ -68,7 +67,7 @@ public class ExecutionManager { // Spec Listeners - Vector<SpecListener> specListeners = new Vector<SpecListener>(); + ArrayList<SpecListener> specListeners = new ArrayList<SpecListener>(); public void addSpecListener(SpecListener cl) { specListeners.add(cl); @@ -80,7 +79,7 @@ public class ExecutionManager { // JDI Listeners - Vector<JDIListener> jdiListeners = new Vector<JDIListener>(); + ArrayList<JDIListener> jdiListeners = new ArrayList<JDIListener>(); /** * Adds a JDIListener @@ -105,50 +104,50 @@ public class ExecutionManager { // App Echo Listeners - private Vector<OutputListener> appEchoListeners = new Vector<OutputListener>(); + private ArrayList<OutputListener> appEchoListeners = new ArrayList<OutputListener>(); public void addApplicationEchoListener(OutputListener l) { - appEchoListeners.addElement(l); + appEchoListeners.add(l); } public void removeApplicationEchoListener(OutputListener l) { - appEchoListeners.removeElement(l); + appEchoListeners.remove(l); } // App Output Listeners - private Vector<OutputListener> appOutputListeners = new Vector<OutputListener>(); + private ArrayList<OutputListener> appOutputListeners = new ArrayList<OutputListener>(); public void addApplicationOutputListener(OutputListener l) { - appOutputListeners.addElement(l); + appOutputListeners.add(l); } public void removeApplicationOutputListener(OutputListener l) { - appOutputListeners.removeElement(l); + appOutputListeners.remove(l); } // App Error Listeners - private Vector<OutputListener> appErrorListeners = new Vector<OutputListener>(); + private ArrayList<OutputListener> appErrorListeners = new ArrayList<OutputListener>(); public void addApplicationErrorListener(OutputListener l) { - appErrorListeners.addElement(l); + appErrorListeners.add(l); } public void removeApplicationErrorListener(OutputListener l) { - appErrorListeners.removeElement(l); + appErrorListeners.remove(l); } // Diagnostic Listeners - private Vector<OutputListener> diagnosticsListeners = new Vector<OutputListener>(); + private ArrayList<OutputListener> diagnosticsListeners = new ArrayList<OutputListener>(); public void addDiagnosticsListener(OutputListener l) { - diagnosticsListeners.addElement(l); + diagnosticsListeners.add(l); } public void removeDiagnosticsListener(OutputListener l) { - diagnosticsListeners.removeElement(l); + diagnosticsListeners.remove(l); } /////////// End Listener Registration ////////////// @@ -159,7 +158,9 @@ public class ExecutionManager { } void ensureActiveSession() throws NoSessionException { - if (session == null) throw new NoSessionException(); + if (session == null) { + throw new NoSessionException(); + } } public EventRequestManager eventRequestManager() { @@ -293,6 +294,7 @@ public class ExecutionManager { ensureActiveSession(); if (f != null) { frameGetter = new ExpressionParser.GetFrame() { + @Override public StackFrame get() /* throws IncompatibleThreadStateException */ { return f; } @@ -628,35 +630,35 @@ public class ExecutionManager { */ private void notifyInterrupted() { - Vector l = (Vector)sessionListeners.clone(); + ArrayList<SessionListener> l = new ArrayList<SessionListener>(sessionListeners); EventObject evt = new EventObject(this); for (int i = 0; i < l.size(); i++) { - ((SessionListener)l.elementAt(i)).sessionInterrupt(evt); + l.get(i).sessionInterrupt(evt); } } private void notifyContinued() { - Vector l = (Vector)sessionListeners.clone(); + ArrayList<SessionListener> l = new ArrayList<SessionListener>(sessionListeners); EventObject evt = new EventObject(this); for (int i = 0; i < l.size(); i++) { - ((SessionListener)l.elementAt(i)).sessionContinue(evt); + l.get(i).sessionContinue(evt); } } private void notifySessionStart() { - Vector l = (Vector)sessionListeners.clone(); + ArrayList<SessionListener> l = new ArrayList<SessionListener>(sessionListeners); EventObject evt = new EventObject(this); for (int i = 0; i < l.size(); i++) { - ((SessionListener)l.elementAt(i)).sessionStart(evt); + l.get(i).sessionStart(evt); } } private void notifySessionDeath() { /*** noop for now - Vector l = (Vector)sessionListeners.clone(); + ArrayList<SessionListener> l = new ArrayList<SessionListener>(sessionListeners); EventObject evt = new EventObject(this); for (int i = 0; i < l.size(); i++) { - ((SessionListener)l.elementAt(i)).sessionDeath(evt); + ((SessionListener)l.get(i)).sessionDeath(evt); } ****/ } @@ -684,6 +686,7 @@ public class ExecutionManager { } private InputListener appInput = new InputListener() { + @Override public String getLine() { // Don't allow reader to be interrupted -- catch and retry. String line = null; @@ -703,6 +706,7 @@ public class ExecutionManager { // Run in Swing event dispatcher thread. final String input = line; SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { echoInputLine(input); } @@ -714,37 +718,40 @@ public class ExecutionManager { private static String newline = System.getProperty("line.separator"); private void echoInputLine(String line) { - Vector l = (Vector)appEchoListeners.clone(); + ArrayList<OutputListener> l = new ArrayList<OutputListener>(appEchoListeners); for (int i = 0; i < l.size(); i++) { - OutputListener ol = (OutputListener)l.elementAt(i); + OutputListener ol = l.get(i); ol.putString(line); ol.putString(newline); } } private OutputListener appOutput = new OutputListener() { + @Override public void putString(String string) { - Vector l = (Vector)appOutputListeners.clone(); + ArrayList<OutputListener> l = new ArrayList<OutputListener>(appEchoListeners); for (int i = 0; i < l.size(); i++) { - ((OutputListener)l.elementAt(i)).putString(string); + l.get(i).putString(string); } } }; private OutputListener appError = new OutputListener() { + @Override public void putString(String string) { - Vector l = (Vector)appErrorListeners.clone(); + ArrayList<OutputListener> l = new ArrayList<OutputListener>(appEchoListeners); for (int i = 0; i < l.size(); i++) { - ((OutputListener)l.elementAt(i)).putString(string); + l.get(i).putString(string); } } }; private OutputListener diagnostics = new OutputListener() { + @Override public void putString(String string) { - Vector l = (Vector)diagnosticsListeners.clone(); + ArrayList<OutputListener> l = new ArrayList<OutputListener>(diagnosticsListeners); for (int i = 0; i < l.size(); i++) { - ((OutputListener)l.elementAt(i)).putString(string); + l.get(i).putString(string); } } }; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java index 5f5db5e4206..5d70918cb3b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/FrameIndexOutOfBoundsException.java @@ -25,4 +25,7 @@ package com.sun.tools.example.debug.bdi; -public class FrameIndexOutOfBoundsException extends IndexOutOfBoundsException {} +public class FrameIndexOutOfBoundsException extends IndexOutOfBoundsException { + + private static final long serialVersionUID = -4870148107027371437L; +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java index 5b1a9b0bd8b..dedc2477e0c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/JDIEventSource.java @@ -28,8 +28,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; import com.sun.jdi.event.*; -import java.util.*; - import com.sun.tools.example.debug.event.*; import javax.swing.SwingUtilities; @@ -55,6 +53,7 @@ class JDIEventSource extends Thread { this.queue = session.vm.eventQueue(); } + @Override public void run() { try { runLoop(); @@ -78,6 +77,7 @@ class JDIEventSource extends Thread { //### Gross foul hackery! private void dispatchEventSet(final AbstractEventSet es) { SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { boolean interrupted = es.suspendedAll(); es.notify(firstListener); @@ -117,54 +117,65 @@ class JDIEventSource extends Thread { //### This is a Hack, deal with it private class FirstListener implements JDIListener { + @Override public void accessWatchpoint(AccessWatchpointEventSet e) { session.runtime.validateThreadInfo(); wantInterrupt = true; } + @Override public void classPrepare(ClassPrepareEventSet e) { wantInterrupt = false; runtime.resolve(e.getReferenceType()); } + @Override public void classUnload(ClassUnloadEventSet e) { wantInterrupt = false; } + @Override public void exception(ExceptionEventSet e) { wantInterrupt = true; } + @Override public void locationTrigger(LocationTriggerEventSet e) { session.runtime.validateThreadInfo(); wantInterrupt = true; } + @Override public void modificationWatchpoint(ModificationWatchpointEventSet e) { session.runtime.validateThreadInfo(); wantInterrupt = true; } + @Override public void threadDeath(ThreadDeathEventSet e) { wantInterrupt = false; } + @Override public void threadStart(ThreadStartEventSet e) { wantInterrupt = false; } + @Override public void vmDeath(VMDeathEventSet e) { //### Should have some way to notify user //### that VM died before the session ended. wantInterrupt = false; } + @Override public void vmDisconnect(VMDisconnectEventSet e) { //### Notify user? wantInterrupt = false; session.runtime.endSession(); } + @Override public void vmStart(VMStartEventSet e) { //### Do we need to do anything with it? wantInterrupt = false; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java index b82b386043e..0a1e0b1cb3d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineBreakpointSpec.java @@ -26,11 +26,7 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import com.sun.jdi.request.*; - -import java.util.ArrayList; import java.util.List; -import java.util.Iterator; public class LineBreakpointSpec extends BreakpointSpec { int lineNumber; @@ -44,6 +40,7 @@ public class LineBreakpointSpec extends BreakpointSpec { /** * The 'refType' is known to match. */ + @Override void resolve(ReferenceType refType) throws InvalidTypeException, LineNotFoundException { if (!(refType instanceof ClassType)) { @@ -81,10 +78,12 @@ public class LineBreakpointSpec extends BreakpointSpec { return lineNumber; } + @Override public int hashCode() { return refSpec.hashCode() + lineNumber; } + @Override public boolean equals(Object obj) { if (obj instanceof LineBreakpointSpec) { LineBreakpointSpec breakpoint = (LineBreakpointSpec)obj; @@ -96,6 +95,7 @@ public class LineBreakpointSpec extends BreakpointSpec { } } + @Override public String errorMessageFor(Exception e) { if (e instanceof LineNotFoundException) { return ("No code at line " + lineNumber() + " in " + refSpec); @@ -107,6 +107,7 @@ public class LineBreakpointSpec extends BreakpointSpec { } } + @Override public String toString() { StringBuffer buffer = new StringBuffer("breakpoint "); buffer.append(refSpec.toString()); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java index 00ad8d8f7ea..6d906a8b65c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/LineNotFoundException.java @@ -27,6 +27,9 @@ package com.sun.tools.example.debug.bdi; public class LineNotFoundException extends Exception { + + private static final long serialVersionUID = -5630418117861587582L; + public LineNotFoundException() { super(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java index 5c6be5d092f..c73e685f503 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MalformedMemberNameException.java @@ -26,6 +26,9 @@ package com.sun.tools.example.debug.bdi; class MalformedMemberNameException extends Exception { + + private static final long serialVersionUID = -7726664097374844485L; + public MalformedMemberNameException() { super(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java index 9e265bd08db..7a9748af102 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodBreakpointSpec.java @@ -26,11 +26,8 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import com.sun.jdi.request.*; - import java.util.ArrayList; import java.util.List; -import java.util.Iterator; public class MethodBreakpointSpec extends BreakpointSpec { String methodId; @@ -47,6 +44,7 @@ public class MethodBreakpointSpec extends BreakpointSpec { /** * The 'refType' is known to match. */ + @Override void resolve(ReferenceType refType) throws MalformedMemberNameException, AmbiguousMethodException, InvalidTypeException, @@ -80,12 +78,14 @@ public class MethodBreakpointSpec extends BreakpointSpec { return methodArgs; } + @Override public int hashCode() { return refSpec.hashCode() + ((methodId != null) ? methodId.hashCode() : 0) + ((methodArgs != null) ? methodArgs.hashCode() : 0); } + @Override public boolean equals(Object obj) { if (obj instanceof MethodBreakpointSpec) { MethodBreakpointSpec breakpoint = (MethodBreakpointSpec)obj; @@ -98,6 +98,7 @@ public class MethodBreakpointSpec extends BreakpointSpec { } } + @Override public String errorMessageFor(Exception e) { if (e instanceof AmbiguousMethodException) { return ("Method " + methodName() + " is overloaded; specify arguments"); @@ -114,6 +115,7 @@ public class MethodBreakpointSpec extends BreakpointSpec { } } + @Override public String toString() { StringBuffer buffer = new StringBuffer("breakpoint "); buffer.append(refSpec.toString()); @@ -257,7 +259,7 @@ public class MethodBreakpointSpec extends BreakpointSpec { */ if ((name.indexOf('.') == -1) || name.startsWith("*.")) { try { - List refs = specs.runtime.findClassesMatchingPattern(name); + List<?> refs = specs.runtime.findClassesMatchingPattern(name); if (refs.size() > 0) { //### ambiguity??? name = ((ReferenceType)(refs.get(0))).name(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java index 8fa2e60b79f..9fd3aa9efc7 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/MethodNotFoundException.java @@ -27,6 +27,8 @@ package com.sun.tools.example.debug.bdi; public class MethodNotFoundException extends Exception { + private static final long serialVersionUID = -2064968107599632609L; + public MethodNotFoundException() { super(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java index 7816ce698d2..7043d666ec8 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ModificationWatchpointSpec.java @@ -26,7 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import com.sun.jdi.request.*; public class ModificationWatchpointSpec extends WatchpointSpec { @@ -38,6 +37,7 @@ public class ModificationWatchpointSpec extends WatchpointSpec { /** * The 'refType' is known to match. */ + @Override void resolve(ReferenceType refType) throws InvalidTypeException, NoSuchFieldException { if (!(refType instanceof ClassType)) { @@ -51,6 +51,7 @@ public class ModificationWatchpointSpec extends WatchpointSpec { .createModificationWatchpointRequest(field)); } + @Override public boolean equals(Object obj) { return (obj instanceof ModificationWatchpointSpec) && super.equals(obj); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java index 9a40b413846..32988ab140b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoSessionException.java @@ -25,4 +25,7 @@ package com.sun.tools.example.debug.bdi; -public class NoSessionException extends Exception {} +public class NoSessionException extends Exception { + + private static final long serialVersionUID = -7324357828115128603L; +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java index aa36d667ee0..460b1a4ba4c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/NoThreadException.java @@ -25,4 +25,8 @@ package com.sun.tools.example.debug.bdi; -public class NoThreadException extends Exception {} +public class NoThreadException extends Exception { + + private static final long serialVersionUID = 1846613539928921998L; + +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java index e9bd3f93793..4f6d73e8e71 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/PatternReferenceTypeSpec.java @@ -47,6 +47,7 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { /** * Does the specified ReferenceType match this spec. */ + @Override public boolean matches(ReferenceType refType) { if (isWild) { return refType.name().endsWith(classId); @@ -55,10 +56,12 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { } } + @Override public int hashCode() { return classId.hashCode(); } + @Override public boolean equals(Object obj) { if (obj instanceof PatternReferenceTypeSpec) { PatternReferenceTypeSpec spec = (PatternReferenceTypeSpec)obj; @@ -89,6 +92,7 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { } } + @Override public String toString() { return isWild? "*" + classId : classId; } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java index e3282b747f1..fc478060aaa 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ReferenceTypeSpec.java @@ -33,7 +33,9 @@ interface ReferenceTypeSpec { */ boolean matches(ReferenceType refType); + @Override int hashCode(); + @Override boolean equals(Object obj); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java index 61790af7b32..4599cb1ba10 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Session.java @@ -27,7 +27,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.VirtualMachine; import com.sun.jdi.VMDisconnectedException; -import com.sun.jdi.event.EventSet; /** * Our repository of what we know about the state of one diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java index 2b8a1e158db..c788f5d0c53 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SourceNameReferenceTypeSpec.java @@ -39,6 +39,7 @@ class SourceNameReferenceTypeSpec implements ReferenceTypeSpec { /** * Does the specified ReferenceType match this spec. */ + @Override public boolean matches(ReferenceType refType) { try { if (refType.sourceName().equals(sourceName)) { @@ -48,9 +49,6 @@ class SourceNameReferenceTypeSpec implements ReferenceTypeSpec { return true; } catch(AbsentInformationException exc) { } catch(ObjectCollectedException exc) { - } catch(InvalidLineNumberException exc) { -// } catch(ClassNotPreparedException exc) { -// -- should not happen, so don't catch this --- } } } catch(AbsentInformationException exc) { @@ -59,10 +57,12 @@ class SourceNameReferenceTypeSpec implements ReferenceTypeSpec { return false; } + @Override public int hashCode() { return sourceName.hashCode() + linenumber; } + @Override public boolean equals(Object obj) { if (obj instanceof SourceNameReferenceTypeSpec) { SourceNameReferenceTypeSpec spec = (SourceNameReferenceTypeSpec)obj; @@ -74,6 +74,7 @@ class SourceNameReferenceTypeSpec implements ReferenceTypeSpec { } } + @Override public String toString() { return sourceName + "@" + linenumber; } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java index 86a7575bafa..c6b9f4e78d3 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecErrorEvent.java @@ -25,10 +25,9 @@ package com.sun.tools.example.debug.bdi; -import java.util.EventObject; - public class SpecErrorEvent extends SpecEvent { + private static final long serialVersionUID = 8162634387866409578L; private Exception reason; public SpecErrorEvent(EventRequestSpec eventRequestSpec, diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java index 6cc1d3a1bfc..625a263fcef 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/SpecEvent.java @@ -31,6 +31,7 @@ import com.sun.jdi.request.EventRequest; public class SpecEvent extends EventObject { + private static final long serialVersionUID = 4820735456787276230L; private EventRequestSpec eventRequestSpec; public SpecEvent(EventRequestSpec eventRequestSpec) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java index 419a466f70b..c6ec121d808 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadGroupIterator.java @@ -26,7 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.ThreadGroupReference; -import com.sun.jdi.ThreadReference; import java.util.List; import java.util.Stack; import java.util.ArrayList; @@ -73,10 +72,12 @@ public class ThreadGroupIterator implements Iterator<ThreadGroupReference> { } } + @Override public boolean hasNext() { return !stack.isEmpty(); } + @Override public ThreadGroupReference next() { return nextThreadGroup(); } @@ -87,6 +88,7 @@ public class ThreadGroupIterator implements Iterator<ThreadGroupReference> { return tg; } + @Override public void remove() { throw new UnsupportedOperationException(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java index 7ced75a40f4..b9516c4313f 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadInfo.java @@ -26,9 +26,6 @@ package com.sun.tools.example.debug.bdi; import com.sun.jdi.*; -import java.util.List; -import java.util.ArrayList; -import java.util.Iterator; //### Should handle target VM death or connection failure cleanly. diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java index c6b2ce6efd2..6fafd71cd80 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/ThreadIterator.java @@ -43,6 +43,7 @@ public class ThreadIterator implements Iterator<ThreadReference> { tgi = new ThreadGroupIterator(tgl); } + @Override public boolean hasNext() { while (it == null || !it.hasNext()) { if (!tgi.hasNext()) { @@ -53,6 +54,7 @@ public class ThreadIterator implements Iterator<ThreadReference> { return true; } + @Override public ThreadReference next() { return it.next(); } @@ -61,6 +63,7 @@ public class ThreadIterator implements Iterator<ThreadReference> { return next(); } + @Override public void remove() { throw new UnsupportedOperationException(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java index 81993bf05e8..d3e0173dc9b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/Utils.java @@ -26,9 +26,6 @@ package com.sun.tools.example.debug.bdi; //### does it belong here? import com.sun.jdi.*; -import com.sun.tools.jdi.*; -import java.util.*; -import java.io.*; public class Utils { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java index fcbe82b332c..d0c482c50e0 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMLaunchFailureException.java @@ -25,4 +25,7 @@ package com.sun.tools.example.debug.bdi; -public class VMLaunchFailureException extends Exception {} +public class VMLaunchFailureException extends Exception { + + private static final long serialVersionUID = -2439646729274310108L; +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java index 4ddc5a9fc86..ef12d6d2446 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/VMNotInterruptedException.java @@ -25,4 +25,7 @@ package com.sun.tools.example.debug.bdi; -public class VMNotInterruptedException extends Exception {} +public class VMNotInterruptedException extends Exception { + + private static final long serialVersionUID = 8111074582188765600L; +} diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java index 8414a17340a..469b4230a9a 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/bdi/WatchpointSpec.java @@ -25,9 +25,6 @@ package com.sun.tools.example.debug.bdi; -import com.sun.jdi.*; -import com.sun.jdi.request.*; - public abstract class WatchpointSpec extends EventRequestSpec { final String fieldId; @@ -40,31 +37,38 @@ public abstract class WatchpointSpec extends EventRequestSpec { // } } + @Override void notifySet(SpecListener listener, SpecEvent evt) { listener.watchpointSet(evt); } + @Override void notifyDeferred(SpecListener listener, SpecEvent evt) { listener.watchpointDeferred(evt); } + @Override void notifyResolved(SpecListener listener, SpecEvent evt) { listener.watchpointResolved(evt); } + @Override void notifyDeleted(SpecListener listener, SpecEvent evt) { listener.watchpointDeleted(evt); } + @Override void notifyError(SpecListener listener, SpecErrorEvent evt) { listener.watchpointError(evt); } + @Override public int hashCode() { return refSpec.hashCode() + fieldId.hashCode() + getClass().hashCode(); } + @Override public boolean equals(Object obj) { if (obj instanceof WatchpointSpec) { WatchpointSpec watchpoint = (WatchpointSpec)obj; @@ -77,6 +81,7 @@ public abstract class WatchpointSpec extends EventRequestSpec { } } + @Override public String errorMessageFor(Exception e) { if (e instanceof NoSuchFieldException) { return ("No field " + fieldId + " in " + refSpec); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java index 3dedd034638..80cbd9a0da8 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/AbstractEventSet.java @@ -33,6 +33,7 @@ import java.util.*; public abstract class AbstractEventSet extends EventObject implements EventSet { + private static final long serialVersionUID = 2772717574222076977L; private final EventSet jdiEventSet; final Event oneEvent; @@ -81,6 +82,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { // Implement Mirror + @Override public VirtualMachine virtualMachine() { return jdiEventSet.virtualMachine(); } @@ -105,10 +107,12 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { return jdiEventSet.suspendPolicy(); } + @Override public void resume() { jdiEventSet.resume(); } + @Override public int suspendPolicy() { return jdiEventSet.suspendPolicy(); } @@ -128,6 +132,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { /** * Return an iterator specific to {@link Event} objects. */ + @Override public EventIterator eventIterator() { return jdiEventSet.eventIterator(); } @@ -142,6 +147,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * * @return the number of elements in this set (its cardinality). */ + @Override public int size() { return jdiEventSet.size(); } @@ -151,6 +157,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * * @return <tt>true</tt> if this set contains no elements. */ + @Override public boolean isEmpty() { return jdiEventSet.isEmpty(); } @@ -163,6 +170,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * * @return <tt>true</tt> if this set contains the specified element. */ + @Override public boolean contains(Object o) { return jdiEventSet.contains(o); } @@ -174,6 +182,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * * @return an iterator over the elements in this set. */ + @Override public Iterator<Event> iterator() { return jdiEventSet.iterator(); } @@ -184,6 +193,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * * @return an array containing all of the elements in this set. */ + @Override public Object[] toArray() { return jdiEventSet.toArray(); } @@ -202,6 +212,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * @throws ArrayStoreException the runtime type of a is not a supertype * of the runtime type of every element in this set. */ + @Override public <T> T[] toArray(T a[]) { return jdiEventSet.toArray(a); } @@ -217,6 +228,7 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { * @return <tt>true</tt> if this set contains all of the elements of the * specified collection. */ + @Override public boolean containsAll(Collection<?> c) { return jdiEventSet.containsAll(c); } @@ -224,21 +236,27 @@ public abstract class AbstractEventSet extends EventObject implements EventSet { // Make the rest of Set unmodifiable + @Override public boolean add(Event e){ throw new UnsupportedOperationException(); } + @Override public boolean remove(Object o) { throw new UnsupportedOperationException(); } + @Override public boolean addAll(Collection<? extends Event> coll) { throw new UnsupportedOperationException(); } + @Override public boolean removeAll(Collection<?> coll) { throw new UnsupportedOperationException(); } + @Override public boolean retainAll(Collection<?> coll) { throw new UnsupportedOperationException(); } + @Override public void clear() { throw new UnsupportedOperationException(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java index 52894615e2b..37b73e5c4a2 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/AccessWatchpointEventSet.java @@ -25,15 +25,17 @@ package com.sun.tools.example.debug.event; -import com.sun.jdi.*; import com.sun.jdi.event.*; public class AccessWatchpointEventSet extends WatchpointEventSet { + private static final long serialVersionUID = -2620394219156607673L; + AccessWatchpointEventSet(EventSet jdiEventSet) { super(jdiEventSet); } + @Override public void notify(JDIListener listener) { listener.accessWatchpoint(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java index 763e5426eec..69050d3f53a 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassPrepareEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class ClassPrepareEventSet extends AbstractEventSet { + private static final long serialVersionUID = 5958493423581010491L; + ClassPrepareEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -55,6 +57,7 @@ public class ClassPrepareEventSet extends AbstractEventSet { return ((ClassPrepareEvent)oneEvent).referenceType(); } + @Override public void notify(JDIListener listener) { listener.classPrepare(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java index b7f996a5a2b..c043b23b29a 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ClassUnloadEventSet.java @@ -25,11 +25,12 @@ package com.sun.tools.example.debug.event; -import com.sun.jdi.*; import com.sun.jdi.event.*; public class ClassUnloadEventSet extends AbstractEventSet { + private static final long serialVersionUID = 8370341450345835866L; + ClassUnloadEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -48,6 +49,7 @@ public class ClassUnloadEventSet extends AbstractEventSet { return ((ClassUnloadEvent)oneEvent).classSignature(); } + @Override public void notify(JDIListener listener) { listener.classUnload(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java index d55aab6121f..c94fa284ae6 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ExceptionEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class ExceptionEventSet extends LocatableEventSet { + private static final long serialVersionUID = 5328140167954640711L; + ExceptionEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -75,6 +77,7 @@ public class ExceptionEventSet extends LocatableEventSet { return ((ExceptionEvent)oneEvent).catchLocation(); } + @Override public void notify(JDIListener listener) { listener.exception(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java index 3d310604240..fb3e7a859aa 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/JDIAdapter.java @@ -33,36 +33,47 @@ package com.sun.tools.example.debug.event; */ public class JDIAdapter implements JDIListener { + @Override public void accessWatchpoint(AccessWatchpointEventSet e) { } + @Override public void classPrepare(ClassPrepareEventSet e) { } + @Override public void classUnload(ClassUnloadEventSet e) { } + @Override public void exception(ExceptionEventSet e) { } + @Override public void locationTrigger(LocationTriggerEventSet e) { } + @Override public void modificationWatchpoint(ModificationWatchpointEventSet e) { } + @Override public void threadDeath(ThreadDeathEventSet e) { } + @Override public void threadStart(ThreadStartEventSet e) { } + @Override public void vmDeath(VMDeathEventSet e) { } + @Override public void vmDisconnect(VMDisconnectEventSet e) { } + @Override public void vmStart(VMStartEventSet e) { } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java index 6e557c419e8..303af121e4e 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocatableEventSet.java @@ -33,6 +33,8 @@ import com.sun.jdi.event.*; */ public abstract class LocatableEventSet extends AbstractEventSet { + private static final long serialVersionUID = 1027131209997915620L; + LocatableEventSet(EventSet jdiEventSet) { super(jdiEventSet); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java index 6e5366eae61..b30bea52bef 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/LocationTriggerEventSet.java @@ -25,15 +25,17 @@ package com.sun.tools.example.debug.event; -import com.sun.jdi.*; import com.sun.jdi.event.*; public class LocationTriggerEventSet extends LocatableEventSet { + private static final long serialVersionUID = -3674631710485872487L; + LocationTriggerEventSet(EventSet jdiEventSet) { super(jdiEventSet); } + @Override public void notify(JDIListener listener) { listener.locationTrigger(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java index d7824b7abf9..382a8f31b7c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ModificationWatchpointEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class ModificationWatchpointEventSet extends WatchpointEventSet { + private static final long serialVersionUID = -680889300856154719L; + ModificationWatchpointEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -42,6 +44,7 @@ public class ModificationWatchpointEventSet extends WatchpointEventSet { return ((ModificationWatchpointEvent)oneEvent).valueToBe(); } + @Override public void notify(JDIListener listener) { listener.modificationWatchpoint(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java index 2e2cc00eea1..ad432f77842 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadDeathEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class ThreadDeathEventSet extends AbstractEventSet { + private static final long serialVersionUID = -8801604712308151331L; + ThreadDeathEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -44,6 +46,7 @@ public class ThreadDeathEventSet extends AbstractEventSet { return ((ThreadDeathEvent)oneEvent).thread(); } + @Override public void notify(JDIListener listener) { listener.threadDeath(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java index 8f7ccc6fe39..63b1fb42603 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/ThreadStartEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class ThreadStartEventSet extends AbstractEventSet { + private static final long serialVersionUID = -3802096132294933502L; + ThreadStartEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -44,6 +46,7 @@ public class ThreadStartEventSet extends AbstractEventSet { return ((ThreadStartEvent)oneEvent).thread(); } + @Override public void notify(JDIListener listener) { listener.threadStart(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java index 963eb8e8e82..017f11ff5ae 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDeathEventSet.java @@ -29,10 +29,13 @@ import com.sun.jdi.event.*; public class VMDeathEventSet extends AbstractEventSet { + private static final long serialVersionUID = 1163097303940092229L; + VMDeathEventSet(EventSet jdiEventSet) { super(jdiEventSet); } + @Override public void notify(JDIListener listener) { listener.vmDeath(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java index d8555309555..4edf4b872c9 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMDisconnectEventSet.java @@ -29,10 +29,13 @@ import com.sun.jdi.event.*; public class VMDisconnectEventSet extends AbstractEventSet { + private static final long serialVersionUID = 7968123152344675342L; + VMDisconnectEventSet(EventSet jdiEventSet) { super(jdiEventSet); } + @Override public void notify(JDIListener listener) { listener.vmDisconnect(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java index d04116a44af..896fa78c369 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/VMStartEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public class VMStartEventSet extends AbstractEventSet { + private static final long serialVersionUID = -3384957227835478191L; + VMStartEventSet(EventSet jdiEventSet) { super(jdiEventSet); } @@ -44,6 +46,7 @@ public class VMStartEventSet extends AbstractEventSet { return ((VMStartEvent)oneEvent).thread(); } + @Override public void notify(JDIListener listener) { listener.vmStart(this); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java b/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java index 5c4de701001..628f21cb92d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/event/WatchpointEventSet.java @@ -30,6 +30,8 @@ import com.sun.jdi.event.*; public abstract class WatchpointEventSet extends LocatableEventSet { + private static final long serialVersionUID = 5606285209703845409L; + WatchpointEventSet(EventSet jdiEventSet) { super(jdiEventSet); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java index 3f8d0001a74..c2c79010c6b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java @@ -27,25 +27,25 @@ package com.sun.tools.example.debug.expr; import com.sun.jdi.*; + import java.util.Stack; import java.util.List; import java.util.ArrayList; -@SuppressWarnings("unchecked") public class ExpressionParser implements ExpressionParserConstants { - Stack stack = new Stack(); + Stack<LValue> stack = new Stack<LValue>(); VirtualMachine vm = null; GetFrame frameGetter = null; private static GetFrame lastFrameGetter; private static LValue lastLValue; LValue peek() { - return (LValue)stack.peek(); + return stack.peek(); } LValue pop() { - return (LValue)stack.pop(); + return stack.pop(); } void push(LValue lval) { @@ -61,17 +61,14 @@ public class ExpressionParser implements ExpressionParserConstants { } public static Value evaluate(String expr, VirtualMachine vm, - GetFrame frameGetter) throws ParseException, - InvocationException, - InvalidTypeException, - ClassNotLoadedException, + GetFrame frameGetter) throws ParseException, InvocationException, + InvalidTypeException, ClassNotLoadedException, IncompatibleThreadStateException { // TODO StringBufferInputStream is deprecated. java.io.InputStream in = new java.io.StringBufferInputStream(expr); ExpressionParser parser = new ExpressionParser(in); parser.vm = vm; parser.frameGetter = frameGetter; - Value value = null; parser.Expression(); lastFrameGetter = frameGetter; lastLValue = parser.pop(); @@ -89,8 +86,8 @@ public class ExpressionParser implements ExpressionParserConstants { try { parser = new ExpressionParser(new java.io.FileInputStream(args[0])); } catch (java.io.FileNotFoundException e) { - System.out.println("Java Parser Version 1.0.2: File " + - args[0] + " not found."); + System.out.println("Java Parser Version 1.0.2: File " + args[0] + + " not found."); return; } } else { @@ -137,8 +134,7 @@ public class ExpressionParser implements ExpressionParserConstants { jj_consume_token(-1); throw new ParseException(); } - label_1: - while (true) { + label_1: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: ; @@ -189,8 +185,7 @@ public class ExpressionParser implements ExpressionParserConstants { StringBuffer sb = new StringBuffer(); jj_consume_token(IDENTIFIER); sb.append(token); - label_2: - while (true) { + label_2: while (true) { if (jj_2_1(2)) { ; } else { @@ -198,16 +193,18 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(DOT); jj_consume_token(IDENTIFIER); - sb.append('.'); sb.append(token); - } - {if (true) return sb.toString();} + sb.append('.'); + sb.append(token); + } + if (true) { + return sb.toString(); + } throw new Error("Missing return statement in function"); } final public void NameList() throws ParseException { Name(); - label_3: - while (true) { + label_3: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; @@ -261,7 +258,9 @@ public class ExpressionParser implements ExpressionParserConstants { PrimaryExpression(); AssignmentOperator(); Expression(); - LValue exprVal = pop(); pop().setValue(exprVal); push(exprVal); + LValue exprVal = pop(); + pop().setValue(exprVal); + push(exprVal); } final public void AssignmentOperator() throws ParseException { @@ -317,13 +316,18 @@ public class ExpressionParser implements ExpressionParserConstants { Expression(); jj_consume_token(COLON); ConditionalExpression(); - LValue falseBranch = pop(); LValue trueBranch = pop(); + LValue falseBranch = pop(); + LValue trueBranch = pop(); Value cond = pop().interiorGetValue(); if (cond instanceof BooleanValue) { - push(((BooleanValue)cond).booleanValue()? - trueBranch : falseBranch); + push(((BooleanValue) cond).booleanValue() ? trueBranch + : falseBranch); } else { - {if (true) throw new ParseException("Condition must be boolean");} + { + if (true) { + throw new ParseException("Condition must be boolean"); + } + } } break; default: @@ -334,8 +338,7 @@ public class ExpressionParser implements ExpressionParserConstants { final public void ConditionalOrExpression() throws ParseException { ConditionalAndExpression(); - label_4: - while (true) { + label_4: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_OR: ; @@ -346,14 +349,17 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(SC_OR); ConditionalAndExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void ConditionalAndExpression() throws ParseException { InclusiveOrExpression(); - label_5: - while (true) { + label_5: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SC_AND: ; @@ -364,14 +370,17 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(SC_AND); InclusiveOrExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void InclusiveOrExpression() throws ParseException { ExclusiveOrExpression(); - label_6: - while (true) { + label_6: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_OR: ; @@ -382,14 +391,17 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(BIT_OR); ExclusiveOrExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void ExclusiveOrExpression() throws ParseException { AndExpression(); - label_7: - while (true) { + label_7: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case XOR: ; @@ -400,14 +412,17 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(XOR); AndExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void AndExpression() throws ParseException { EqualityExpression(); - label_8: - while (true) { + label_8: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case BIT_AND: ; @@ -418,15 +433,18 @@ public class ExpressionParser implements ExpressionParserConstants { } jj_consume_token(BIT_AND); EqualityExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void EqualityExpression() throws ParseException { Token tok; InstanceOfExpression(); - label_9: - while (true) { + label_9: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case EQ: case NE: @@ -460,7 +478,11 @@ public class ExpressionParser implements ExpressionParserConstants { case INSTANCEOF: jj_consume_token(INSTANCEOF); Type(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; default: jj_la1[14] = jj_gen; @@ -471,8 +493,7 @@ public class ExpressionParser implements ExpressionParserConstants { final public void RelationalExpression() throws ParseException { Token tok; ShiftExpression(); - label_10: - while (true) { + label_10: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case GT: case LT: @@ -510,8 +531,7 @@ public class ExpressionParser implements ExpressionParserConstants { final public void ShiftExpression() throws ParseException { AdditiveExpression(); - label_11: - while (true) { + label_11: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LSHIFT: case RSIGNEDSHIFT: @@ -538,15 +558,18 @@ public class ExpressionParser implements ExpressionParserConstants { throw new ParseException(); } AdditiveExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } } final public void AdditiveExpression() throws ParseException { Token tok; MultiplicativeExpression(); - label_12: - while (true) { + label_12: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case PLUS: case MINUS: @@ -577,8 +600,7 @@ public class ExpressionParser implements ExpressionParserConstants { final public void MultiplicativeExpression() throws ParseException { Token tok; UnaryExpression(); - label_13: - while (true) { + label_13: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case STAR: case SLASH: @@ -627,7 +649,11 @@ public class ExpressionParser implements ExpressionParserConstants { throw new ParseException(); } UnaryExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; case INCR: PreIncrementExpression(); @@ -661,13 +687,21 @@ public class ExpressionParser implements ExpressionParserConstants { final public void PreIncrementExpression() throws ParseException { jj_consume_token(INCR); PrimaryExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } final public void PreDecrementExpression() throws ParseException { jj_consume_token(DECR); PrimaryExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } } final public void UnaryExpressionNotPlusMinus() throws ParseException { @@ -687,7 +721,11 @@ public class ExpressionParser implements ExpressionParserConstants { throw new ParseException(); } UnaryExpression(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; default: jj_la1[26] = jj_gen; @@ -718,8 +756,10 @@ public class ExpressionParser implements ExpressionParserConstants { } } -// This production is to determine lookahead only. The LOOKAHEAD specifications -// below are not used, but they are there just to indicate that we know about + // This production is to determine lookahead only. The LOOKAHEAD + // specifications + // below are not used, but they are there just to indicate that we know + // about // this. final public void CastLookahead() throws ParseException { if (jj_2_4(2)) { @@ -792,7 +832,11 @@ public class ExpressionParser implements ExpressionParserConstants { break; case DECR: jj_consume_token(DECR); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; default: jj_la1[30] = jj_gen; @@ -810,8 +854,7 @@ public class ExpressionParser implements ExpressionParserConstants { if (jj_2_6(2)) { jj_consume_token(LPAREN); PrimitiveType(); - label_14: - while (true) { + label_14: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: ; @@ -830,8 +873,7 @@ public class ExpressionParser implements ExpressionParserConstants { case LPAREN: jj_consume_token(LPAREN); Name(); - label_15: - while (true) { + label_15: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: ; @@ -856,8 +898,7 @@ public class ExpressionParser implements ExpressionParserConstants { final public void PrimaryExpression() throws ParseException { PrimaryPrefix(); - label_16: - while (true) { + label_16: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LPAREN: case LBRACKET: @@ -896,7 +937,11 @@ public class ExpressionParser implements ExpressionParserConstants { jj_consume_token(SUPER); jj_consume_token(DOT); jj_consume_token(IDENTIFIER); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; case LPAREN: jj_consume_token(LPAREN); @@ -914,7 +959,7 @@ public class ExpressionParser implements ExpressionParserConstants { } final public void PrimarySuffix() throws ParseException { - List argList; + List<Value> argList; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: jj_consume_token(LBRACKET); @@ -992,8 +1037,8 @@ public class ExpressionParser implements ExpressionParserConstants { jj_consume_token(NULL); } - final public List Arguments() throws ParseException { - List argList = new ArrayList(); + final public List<Value> Arguments() throws ParseException { + List<Value> argList = new ArrayList<Value>(); jj_consume_token(LPAREN); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case FALSE: @@ -1021,15 +1066,18 @@ public class ExpressionParser implements ExpressionParserConstants { ; } jj_consume_token(RPAREN); - {if (true) return argList;} + { + if (true) { + return argList; + } + } throw new Error("Missing return statement in function"); } - final public void ArgumentList(List argList) throws ParseException { + final public void ArgumentList(List<Value> argList) throws ParseException { Expression(); argList.add(pop().interiorGetValue()); - label_17: - while (true) { + label_17: while (true) { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMA: ; @@ -1045,7 +1093,8 @@ public class ExpressionParser implements ExpressionParserConstants { } final public void AllocationExpression() throws ParseException { - List argList; String className; + List<Value> argList; + String className; if (jj_2_7(2)) { jj_consume_token(NEW); PrimitiveType(); @@ -1062,7 +1111,11 @@ public class ExpressionParser implements ExpressionParserConstants { break; case LBRACKET: ArrayDimensions(); - {if (true) throw new ParseException("operation not yet supported");} + { + if (true) { + throw new ParseException("operation not yet supported"); + } + } break; default: jj_la1[42] = jj_gen; @@ -1079,12 +1132,11 @@ public class ExpressionParser implements ExpressionParserConstants { } /* - * The second LOOKAHEAD specification below is to parse to PrimarySuffix - * if there is an expression between the "[...]". + * The second LOOKAHEAD specification below is to parse to PrimarySuffix if + * there is an expression between the "[...]". */ final public void ArrayDimensions() throws ParseException { - label_18: - while (true) { + label_18: while (true) { jj_consume_token(LBRACKET); Expression(); jj_consume_token(RBRACKET); @@ -1094,8 +1146,7 @@ public class ExpressionParser implements ExpressionParserConstants { break label_18; } } - label_19: - while (true) { + label_19: while (true) { if (jj_2_9(2)) { ; } else { @@ -1107,71 +1158,84 @@ public class ExpressionParser implements ExpressionParserConstants { } final private boolean jj_2_1(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_1(); jj_save(0, xla); return retval; } final private boolean jj_2_2(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_2(); jj_save(1, xla); return retval; } final private boolean jj_2_3(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_3(); jj_save(2, xla); return retval; } final private boolean jj_2_4(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_4(); jj_save(3, xla); return retval; } final private boolean jj_2_5(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_5(); jj_save(4, xla); return retval; } final private boolean jj_2_6(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_6(); jj_save(5, xla); return retval; } final private boolean jj_2_7(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_7(); jj_save(6, xla); return retval; } final private boolean jj_2_8(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_8(); jj_save(7, xla); return retval; } final private boolean jj_2_9(int xla) { - jj_la = xla; jj_lastpos = jj_scanpos = token; + jj_la = xla; + jj_lastpos = jj_scanpos = token; boolean retval = !jj_3_9(); jj_save(8, xla); return retval; } final private boolean jj_3R_154() { - if (jj_scan_token(INCR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(INCR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1180,9 +1244,15 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_154()) { jj_scanpos = xsp; - if (jj_3R_155()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_155()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1191,27 +1261,54 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3_6()) { jj_scanpos = xsp; - if (jj_3R_150()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_150()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_6() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_23()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_23()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_152()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_152()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } + if (jj_scan_token(RPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_115()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1220,45 +1317,86 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_50()) { jj_scanpos = xsp; - if (jj_3R_51()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_51()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_50() { - if (jj_3R_67()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_67()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_5() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_149() { - if (jj_3R_20()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_20()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; - if (jj_3R_151()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_151()) { + jj_scanpos = xsp; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_41() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; if (jj_3R_59()) { @@ -1275,51 +1413,109 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_65()) { jj_scanpos = xsp; - if (jj_3R_66()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_66()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_40() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_123() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_1() { - if (jj_scan_token(DOT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DOT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(IDENTIFIER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_4() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_23()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_23()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1330,76 +1526,129 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_40()) { jj_scanpos = xsp; - if (jj_3R_41()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_41()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_3() { - if (jj_3R_22()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_22()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_24() { - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(IDENTIFIER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3_1()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3_1()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_147() { - if (jj_scan_token(BANG)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BANG)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_142() { - if (jj_3R_149()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_149()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_122() { - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_49() { - if (jj_scan_token(DOUBLE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DOUBLE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_141() { - if (jj_3R_148()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_148()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_48() { - if (jj_scan_token(FLOAT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(FLOAT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_146() { - if (jj_scan_token(TILDE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(TILDE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_47() { - if (jj_scan_token(LONG)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LONG)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1408,11 +1657,21 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_146()) { jj_scanpos = xsp; - if (jj_3R_147()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_147()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_115()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1423,48 +1682,84 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_141()) { jj_scanpos = xsp; - if (jj_3R_142()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_142()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_46() { - if (jj_scan_token(INT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(INT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_145() { - if (jj_scan_token(REM)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(REM)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_45() { - if (jj_scan_token(SHORT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SHORT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_44() { - if (jj_scan_token(BYTE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BYTE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_135() { - if (jj_scan_token(DECR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_20()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DECR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_20()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_43() { - if (jj_scan_token(CHAR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(CHAR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1485,49 +1780,95 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_48()) { jj_scanpos = xsp; - if (jj_3R_49()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_49()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_42() { - if (jj_scan_token(BOOLEAN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BOOLEAN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_9() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_121() { - if (jj_3R_23()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_23()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_144() { - if (jj_scan_token(SLASH)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SLASH)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_134() { - if (jj_scan_token(INCR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_20()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(INCR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_20()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1536,62 +1877,105 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_121()) { jj_scanpos = xsp; - if (jj_3R_122()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_122()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } while (true) { xsp = jj_scanpos; - if (jj_3R_123()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_123()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_120() { - if (jj_scan_token(GE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(GE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_133() { - if (jj_scan_token(MINUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(MINUS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_127() { - if (jj_3R_136()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_136()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_126() { - if (jj_3R_135()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_135()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_139() { - if (jj_scan_token(MINUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(MINUS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_125() { - if (jj_3R_134()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_134()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_132() { - if (jj_scan_token(PLUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(PLUS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_143() { - if (jj_scan_token(STAR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(STAR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1600,11 +1984,21 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_132()) { jj_scanpos = xsp; - if (jj_3R_133()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_133()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_115()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1617,11 +2011,21 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_126()) { jj_scanpos = xsp; - if (jj_3R_127()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_127()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1632,54 +2036,95 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_144()) { jj_scanpos = xsp; - if (jj_3R_145()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_145()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_115()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_131() { - if (jj_scan_token(RUNSIGNEDSHIFT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RUNSIGNEDSHIFT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_119() { - if (jj_scan_token(LE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_138() { - if (jj_scan_token(PLUS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(PLUS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_112() { - if (jj_3R_115()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_115()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_137()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_137()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_88() { - if (jj_3R_86()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_86()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_130() { - if (jj_scan_token(RSIGNEDSHIFT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RSIGNEDSHIFT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1688,29 +2133,51 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_138()) { jj_scanpos = xsp; - if (jj_3R_139()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_112()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_139()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_112()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_87() { - if (jj_3R_82()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_82()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_118() { - if (jj_scan_token(GT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(GT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_129() { - if (jj_scan_token(LSHIFT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LSHIFT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1721,68 +2188,128 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_130()) { jj_scanpos = xsp; - if (jj_3R_131()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_108()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_131()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_108()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_108() { - if (jj_3R_112()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_112()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_128()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_128()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3_8() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_86() { Token xsp; - if (jj_3_8()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3_8()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } while (true) { xsp = jj_scanpos; - if (jj_3_8()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3_8()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } while (true) { xsp = jj_scanpos; - if (jj_3_9()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3_9()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_117() { - if (jj_scan_token(LT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_106() { - if (jj_3R_108()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_108()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_116()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_116()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } @@ -1796,64 +2323,125 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_119()) { jj_scanpos = xsp; - if (jj_3R_120()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_106()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_120()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_106()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_111() { - if (jj_scan_token(NE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_109() { - if (jj_scan_token(INSTANCEOF)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_114()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(INSTANCEOF)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_114()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_104() { - if (jj_3R_106()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_106()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_113()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_113()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_81() { - if (jj_scan_token(NEW)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NEW)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; if (jj_3R_87()) { jj_scanpos = xsp; - if (jj_3R_88()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_88()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_7() { - if (jj_scan_token(NEW)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_23()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_86()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NEW)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_23()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_86()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1862,39 +2450,68 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3_7()) { jj_scanpos = xsp; - if (jj_3R_81()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_81()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_97() { - if (jj_scan_token(COMMA)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(COMMA)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_39() { - if (jj_scan_token(ORASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(ORASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_110() { - if (jj_scan_token(EQ)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(EQ)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_102() { - if (jj_3R_104()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_104()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; - if (jj_3R_109()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_109()) { + jj_scanpos = xsp; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -1903,117 +2520,209 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_110()) { jj_scanpos = xsp; - if (jj_3R_111()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_102()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_111()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_102()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_94() { - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_97()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_97()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_89() { - if (jj_3R_94()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_94()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_38() { - if (jj_scan_token(XORASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(XORASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_82() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; - if (jj_3R_89()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_89()) { + jj_scanpos = xsp; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_105() { - if (jj_scan_token(BIT_AND)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_100()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BIT_AND)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_100()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_100() { - if (jj_3R_102()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_102()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_107()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_107()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_37() { - if (jj_scan_token(ANDASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(ANDASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_85() { - if (jj_scan_token(NULL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NULL)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_103() { - if (jj_scan_token(XOR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_98()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(XOR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_98()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_98() { - if (jj_3R_100()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_100()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_105()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_105()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_92() { - if (jj_scan_token(FALSE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(FALSE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_36() { - if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RUNSIGNEDSHIFTASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_91() { - if (jj_scan_token(TRUE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(TRUE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2022,109 +2731,189 @@ public class ExpressionParser implements ExpressionParserConstants { xsp = jj_scanpos; if (jj_3R_91()) { jj_scanpos = xsp; - if (jj_3R_92()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_92()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_101() { - if (jj_scan_token(BIT_OR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_95()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BIT_OR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_95()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_95() { - if (jj_3R_98()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_98()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_103()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_103()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_35() { - if (jj_scan_token(RSIGNEDSHIFTASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(RSIGNEDSHIFTASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_80() { - if (jj_3R_85()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_85()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_66() { - if (jj_3R_69()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_69()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_79() { - if (jj_3R_84()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_84()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_78() { - if (jj_scan_token(STRING_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(STRING_LITERAL)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_99() { - if (jj_scan_token(SC_AND)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_90()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SC_AND)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_90()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_90() { - if (jj_3R_95()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_95()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_101()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_101()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_34() { - if (jj_scan_token(LSHIFTASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LSHIFTASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_65() { - if (jj_scan_token(NEW)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(NEW)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_77() { - if (jj_scan_token(CHARACTER_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(CHARACTER_LITERAL)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_76() { - if (jj_scan_token(FLOATING_POINT_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(FLOATING_POINT_LITERAL)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_33() { - if (jj_scan_token(MINUSASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(MINUSASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2141,89 +2930,161 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_79()) { jj_scanpos = xsp; - if (jj_3R_80()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_80()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_75() { - if (jj_scan_token(INTEGER_LITERAL)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(INTEGER_LITERAL)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_96() { - if (jj_scan_token(SC_OR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_83()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SC_OR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_83()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_83() { - if (jj_3R_90()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_90()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_99()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_99()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_64() { - if (jj_scan_token(SUPER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SUPER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_32() { - if (jj_scan_token(PLUSASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(PLUSASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_73() { - if (jj_3R_82()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_82()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_72() { - if (jj_scan_token(DOT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DOT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(IDENTIFIER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_74() { - if (jj_3R_83()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_83()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_96()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_96()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_63() { - if (jj_scan_token(THIS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(THIS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_31() { - if (jj_scan_token(REMASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(REMASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2234,120 +3095,231 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_72()) { jj_scanpos = xsp; - if (jj_3R_73()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_73()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_71() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_93() { - if (jj_scan_token(HOOK)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(COLON)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_68()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(HOOK)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(COLON)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_68()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_57() { - if (jj_3R_70()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_70()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_30() { - if (jj_scan_token(SLASHASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SLASHASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_27() { - if (jj_3R_58()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_58()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_56() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_152() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_55() { - if (jj_scan_token(SUPER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(DOT)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(SUPER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(DOT)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(IDENTIFIER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_29() { - if (jj_scan_token(STARASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(STARASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_68() { - if (jj_3R_74()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_74()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; xsp = jj_scanpos; - if (jj_3R_93()) jj_scanpos = xsp; - else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_93()) { + jj_scanpos = xsp; + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_54() { - if (jj_scan_token(THIS)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(THIS)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_62() { - if (jj_scan_token(IDENTIFIER)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(IDENTIFIER)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_53() { - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_153() { - if (jj_scan_token(LBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_scan_token(RBRACKET)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_scan_token(RBRACKET)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2364,19 +3336,37 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_56()) { jj_scanpos = xsp; - if (jj_3R_57()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_57()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_52() { - if (jj_3R_69()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_69()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2405,103 +3395,206 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = xsp; if (jj_3R_38()) { jj_scanpos = xsp; - if (jj_3R_39()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } else if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_39()) { + return true; + } + if (jj_la == 0 + && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 + && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 + && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } else if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_28() { - if (jj_scan_token(ASSIGN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(ASSIGN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_61() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3_2() { - if (jj_3R_20()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_21()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_20()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_21()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_20() { - if (jj_3R_26()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_26()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_27()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_27()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } } return false; } final private boolean jj_3R_60() { - if (jj_scan_token(BANG)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(BANG)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_155() { - if (jj_scan_token(DECR)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(DECR)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_67() { - if (jj_3R_20()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_21()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_25()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_20()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_21()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_25()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_150() { - if (jj_scan_token(LPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_24()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(LPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_24()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } Token xsp; while (true) { xsp = jj_scanpos; - if (jj_3R_153()) { jj_scanpos = xsp; break; } - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - } - if (jj_scan_token(RPAREN)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; - if (jj_3R_136()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_153()) { + jj_scanpos = xsp; + break; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + } + if (jj_scan_token(RPAREN)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } + if (jj_3R_136()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_59() { - if (jj_scan_token(TILDE)) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_scan_token(TILDE)) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } final private boolean jj_3R_51() { - if (jj_3R_68()) return true; - if (jj_la == 0 && jj_scanpos == jj_lastpos) return false; + if (jj_3R_68()) { + return true; + } + if (jj_la == 0 && jj_scanpos == jj_lastpos) { + return false; + } return false; } @@ -2512,13 +3605,28 @@ public class ExpressionParser implements ExpressionParserConstants { private Token jj_scanpos, jj_lastpos; private int jj_la; public boolean lookingAhead = false; - private boolean jj_semLA; private int jj_gen; final private int[] jj_la1 = new int[44]; - final private int[] jj_la1_0 = {0x8209400,0x0,0x8209400,0x0,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x0,0x1000000,0x1000000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x1000000,0x0,0x1000000,0x1000000,0x1000000,0x0,0x0,0x0,}; - final private int[] jj_la1_1 = {0x2014,0x0,0x2014,0x0,0x884480c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x884480c0,0x0,0x0,0x884480c0,0x884480c0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x884480c0,0x0,0x88400080,0x400000,0x884480c0,0x0,0x0,0x40,}; - final private int[] jj_la1_2 = {0x8,0x400,0x0,0x2000,0xf00c004e,0x8000,0x100000,0x4000000,0x8000000,0x0,0x0,0x0,0x2400000,0x2400000,0x0,0x1830000,0x1830000,0x0,0x0,0xc0000000,0xc0000000,0x0,0x0,0xc0000000,0xf00c004e,0xc0000,0xc0000,0x4e,0xc004e,0x40,0x30000000,0x30000000,0x400,0x400,0x40,0x4440,0x4e,0x4440,0x6,0x0,0xf00c004e,0x2000,0x440,0x0,}; - final private int[] jj_la1_3 = {0x0,0x0,0x0,0x0,0x0,0xffe00,0x0,0x0,0x0,0x8,0x10,0x4,0x0,0x0,0x0,0x0,0x0,0x1c0,0x1c0,0x0,0x0,0x23,0x23,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,}; + final private int[] jj_la1_0 = { 0x8209400, 0x0, 0x8209400, 0x0, 0x1000000, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0, 0x0, 0x1000000, 0x1000000, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1000000, 0x0, 0x1000000, + 0x1000000, 0x1000000, 0x0, 0x0, 0x0, }; + final private int[] jj_la1_1 = { 0x2014, 0x0, 0x2014, 0x0, 0x884480c0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x884480c0, 0x0, 0x0, 0x884480c0, 0x884480c0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x884480c0, 0x0, 0x88400080, 0x400000, + 0x884480c0, 0x0, 0x0, 0x40, }; + final private int[] jj_la1_2 = { 0x8, 0x400, 0x0, 0x2000, 0xf00c004e, + 0x8000, 0x100000, 0x4000000, 0x8000000, 0x0, 0x0, 0x0, 0x2400000, + 0x2400000, 0x0, 0x1830000, 0x1830000, 0x0, 0x0, 0xc0000000, + 0xc0000000, 0x0, 0x0, 0xc0000000, 0xf00c004e, 0xc0000, 0xc0000, 0x4e, + 0xc004e, 0x40, 0x30000000, 0x30000000, 0x400, 0x400, 0x40, 0x4440, + 0x4e, 0x4440, 0x6, 0x0, 0xf00c004e, 0x2000, 0x440, 0x0, }; + final private int[] jj_la1_3 = { 0x0, 0x0, 0x0, 0x0, 0x0, 0xffe00, 0x0, 0x0, + 0x0, 0x8, 0x10, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c0, 0x1c0, 0x0, 0x0, + 0x23, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, + 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, }; final private JJExpressionParserCalls[] jj_2_rtns = new JJExpressionParserCalls[9]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -2529,8 +3637,12 @@ public class ExpressionParser implements ExpressionParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 44; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls(); + for (int i = 0; i < 44; i++) { + jj_la1[i] = -1; + } + for (int i = 0; i < jj_2_rtns.length; i++) { + jj_2_rtns[i] = new JJExpressionParserCalls(); + } } public void ReInit(java.io.InputStream stream) { @@ -2539,8 +3651,12 @@ public class ExpressionParser implements ExpressionParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 44; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls(); + for (int i = 0; i < 44; i++) { + jj_la1[i] = -1; + } + for (int i = 0; i < jj_2_rtns.length; i++) { + jj_2_rtns[i] = new JJExpressionParserCalls(); + } } public ExpressionParser(ExpressionParserTokenManager tm) { @@ -2548,8 +3664,12 @@ public class ExpressionParser implements ExpressionParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 44; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls(); + for (int i = 0; i < 44; i++) { + jj_la1[i] = -1; + } + for (int i = 0; i < jj_2_rtns.length; i++) { + jj_2_rtns[i] = new JJExpressionParserCalls(); + } } public void ReInit(ExpressionParserTokenManager tm) { @@ -2557,23 +3677,32 @@ public class ExpressionParser implements ExpressionParserConstants { token = new Token(); jj_ntk = -1; jj_gen = 0; - for (int i = 0; i < 44; i++) jj_la1[i] = -1; - for (int i = 0; i < jj_2_rtns.length; i++) jj_2_rtns[i] = new JJExpressionParserCalls(); + for (int i = 0; i < 44; i++) { + jj_la1[i] = -1; + } + for (int i = 0; i < jj_2_rtns.length; i++) { + jj_2_rtns[i] = new JJExpressionParserCalls(); + } } final private Token jj_consume_token(int kind) throws ParseException { Token oldToken; - if ((oldToken = token).next != null) token = token.next; - else token = token.next = token_source.getNextToken(); + if ((oldToken = token).next != null) { + token = token.next; + } else { + token = token.next = token_source.getNextToken(); + } jj_ntk = -1; if (token.kind == kind) { jj_gen++; if (++jj_gc > 100) { jj_gc = 0; - for (int i = 0; i < jj_2_rtns.length; i++) { - JJExpressionParserCalls c = jj_2_rtns[i]; + for (JJExpressionParserCalls jj_2_rtn : jj_2_rtns) { + JJExpressionParserCalls c = jj_2_rtn; while (c != null) { - if (c.gen < jj_gen) c.first = null; + if (c.gen < jj_gen) { + c.first = null; + } c = c.next; } } @@ -2589,7 +3718,8 @@ public class ExpressionParser implements ExpressionParserConstants { if (jj_scanpos == jj_lastpos) { jj_la--; if (jj_scanpos.next == null) { - jj_lastpos = jj_scanpos = jj_scanpos.next = token_source.getNextToken(); + jj_lastpos = jj_scanpos = jj_scanpos.next = token_source + .getNextToken(); } else { jj_lastpos = jj_scanpos = jj_scanpos.next; } @@ -2597,16 +3727,25 @@ public class ExpressionParser implements ExpressionParserConstants { jj_scanpos = jj_scanpos.next; } if (jj_rescan) { - int i = 0; Token tok = token; - while (tok != null && tok != jj_scanpos) { i++; tok = tok.next; } - if (tok != null) jj_add_error_token(kind, i); + int i = 0; + Token tok = token; + while (tok != null && tok != jj_scanpos) { + i++; + tok = tok.next; + } + if (tok != null) { + jj_add_error_token(kind, i); + } } return (jj_scanpos.kind != kind); } final public Token getNextToken() { - if (token.next != null) token = token.next; - else token = token.next = token_source.getNextToken(); + if (token.next != null) { + token = token.next; + } else { + token = token.next = token_source.getNextToken(); + } jj_ntk = -1; jj_gen++; return token; @@ -2615,27 +3754,33 @@ public class ExpressionParser implements ExpressionParserConstants { final public Token getToken(int index) { Token t = lookingAhead ? jj_scanpos : token; for (int i = 0; i < index; i++) { - if (t.next != null) t = t.next; - else t = t.next = token_source.getNextToken(); + if (t.next != null) { + t = t.next; + } else { + t = t.next = token_source.getNextToken(); + } } return t; } final private int jj_ntk() { - if ((jj_nt=token.next) == null) + if ((jj_nt = token.next) == null) { return (jj_ntk = (token.next=token_source.getNextToken()).kind); - else + } else { return (jj_ntk = jj_nt.kind); } + } - private java.util.Vector jj_expentries = new java.util.Vector(); + private java.util.Vector<int[]> jj_expentries = new java.util.Vector<int[]>(); private int[] jj_expentry; private int jj_kind = -1; private int[] jj_lasttokens = new int[100]; private int jj_endpos; private void jj_add_error_token(int kind, int pos) { - if (pos >= 100) return; + if (pos >= 100) { + return; + } if (pos == jj_endpos + 1) { jj_lasttokens[jj_endpos++] = kind; } else if (jj_endpos != 0) { @@ -2644,8 +3789,9 @@ public class ExpressionParser implements ExpressionParserConstants { jj_expentry[i] = jj_lasttokens[i]; } boolean exists = false; - for (java.util.Enumeration enum_ = jj_expentries.elements(); enum_.hasMoreElements();) { - int[] oldentry = (int[])(enum_.nextElement()); + for (java.util.Enumeration<int[]> enum_ = jj_expentries.elements(); enum_ + .hasMoreElements();) { + int[] oldentry = (enum_.nextElement()); if (oldentry.length == jj_expentry.length) { exists = true; for (int i = 0; i < jj_expentry.length; i++) { @@ -2654,11 +3800,17 @@ public class ExpressionParser implements ExpressionParserConstants { break; } } - if (exists) break; - } - } - if (!exists) jj_expentries.addElement(jj_expentry); - if (pos != 0) jj_lasttokens[(jj_endpos = pos) - 1] = kind; + if (exists) { + break; + } + } + } + if (!exists) { + jj_expentries.addElement(jj_expentry); + } + if (pos != 0) { + jj_lasttokens[(jj_endpos = pos) - 1] = kind; + } } } @@ -2702,7 +3854,7 @@ public class ExpressionParser implements ExpressionParserConstants { jj_add_error_token(0, 0); int[][] exptokseq = new int[jj_expentries.size()][]; for (int i = 0; i < jj_expentries.size(); i++) { - exptokseq[i] = (int[])jj_expentries.elementAt(i); + exptokseq[i] = jj_expentries.elementAt(i); } return new ParseException(token, exptokseq, tokenImage); } @@ -2719,17 +3871,36 @@ public class ExpressionParser implements ExpressionParserConstants { JJExpressionParserCalls p = jj_2_rtns[i]; do { if (p.gen > jj_gen) { - jj_la = p.arg; jj_lastpos = jj_scanpos = p.first; + jj_la = p.arg; + jj_lastpos = jj_scanpos = p.first; switch (i) { - case 0: jj_3_1(); break; - case 1: jj_3_2(); break; - case 2: jj_3_3(); break; - case 3: jj_3_4(); break; - case 4: jj_3_5(); break; - case 5: jj_3_6(); break; - case 6: jj_3_7(); break; - case 7: jj_3_8(); break; - case 8: jj_3_9(); break; + case 0: + jj_3_1(); + break; + case 1: + jj_3_2(); + break; + case 2: + jj_3_3(); + break; + case 3: + jj_3_4(); + break; + case 4: + jj_3_5(); + break; + case 5: + jj_3_6(); + break; + case 6: + jj_3_7(); + break; + case 7: + jj_3_8(); + break; + case 8: + jj_3_9(); + break; } } p = p.next; @@ -2741,10 +3912,15 @@ public class ExpressionParser implements ExpressionParserConstants { final private void jj_save(int index, int xla) { JJExpressionParserCalls p = jj_2_rtns[index]; while (p.gen > jj_gen) { - if (p.next == null) { p = p.next = new JJExpressionParserCalls(); break; } + if (p.next == null) { + p = p.next = new JJExpressionParserCalls(); + break; + } p = p.next; } - p.gen = jj_gen + xla - jj_la; p.first = token; p.arg = xla; + p.gen = jj_gen + xla - jj_la; + p.first = token; + p.arg = xla; } } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java index 28472858050..9787d5de554 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java @@ -25,10 +25,6 @@ /* Generated By:JavaCC: Do not edit this line. ExpressionParserTokenManager.java */ package com.sun.tools.example.debug.expr; -import com.sun.jdi.*; -import java.util.Stack; -import java.util.List; -import java.util.ArrayList; public class ExpressionParserTokenManager implements ExpressionParserConstants { @@ -37,15 +33,17 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) switch (pos) { case 0: - if ((active1 & 0x4000L) != 0L) + if ((active1 & 0x4000L) != 0L) { return 4; + } if ((active0 & 0x7fffffffffffe00L) != 0L) { jjmatchedKind = 67; return 28; } - if ((active1 & 0x100200000000L) != 0L) + if ((active1 & 0x100200000000L) != 0L) { return 49; + } return -1; case 1: if ((active0 & 0x7ffffffbfcffe00L) != 0L) @@ -57,8 +55,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) } return 28; } - if ((active0 & 0x40300000L) != 0L) + if ((active0 & 0x40300000L) != 0L) { return 28; + } return -1; case 2: if ((active0 & 0x77fffb3afeffe00L) != 0L) @@ -70,8 +69,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) } return 28; } - if ((active0 & 0x80004c10000000L) != 0L) + if ((active0 & 0x80004c10000000L) != 0L) { return 28; + } return -1; case 3: if ((active0 & 0x63bff2b8faf4e00L) != 0L) @@ -80,8 +80,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 3; return 28; } - if ((active0 & 0x14400902040b000L) != 0L) + if ((active0 & 0x14400902040b000L) != 0L) { return 28; + } return -1; case 4: if ((active0 & 0x2235f2b80ac0600L) != 0L) @@ -93,8 +94,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) } return 28; } - if ((active0 & 0x418a0000f034800L) != 0L) + if ((active0 & 0x418a0000f034800L) != 0L) { return 28; + } return -1; case 5: if ((active0 & 0x222070a848c0600L) != 0L) @@ -103,8 +105,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 5; return 28; } - if ((active0 & 0x11582100200000L) != 0L) + if ((active0 & 0x11582100200000L) != 0L) { return 28; + } return -1; case 6: if ((active0 & 0x222040a80040200L) != 0L) @@ -113,8 +116,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 6; return 28; } - if ((active0 & 0x30004880400L) != 0L) + if ((active0 & 0x30004880400L) != 0L) { return 28; + } return -1; case 7: if ((active0 & 0x22040a80000000L) != 0L) @@ -123,8 +127,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 7; return 28; } - if ((active0 & 0x200000000040200L) != 0L) + if ((active0 & 0x200000000040200L) != 0L) { return 28; + } return -1; case 8: if ((active0 & 0x2000280000000L) != 0L) @@ -133,8 +138,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 8; return 28; } - if ((active0 & 0x20040800000000L) != 0L) + if ((active0 & 0x20040800000000L) != 0L) { return 28; + } return -1; case 9: if ((active0 & 0x2000000000000L) != 0L) @@ -143,8 +149,9 @@ private final int jjStopStringLiteralDfa_0(int pos, long active0, long active1) jjmatchedPos = 9; return 28; } - if ((active0 & 0x280000000L) != 0L) + if ((active0 & 0x280000000L) != 0L) { return 28; + } return -1; case 10: if ((active0 & 0x2000000000000L) != 0L) @@ -286,16 +293,19 @@ private final int jjMoveStringLiteralDfa1_0(long active0, long active1) switch(curChar) { case 38: - if ((active1 & 0x8000000L) != 0L) + if ((active1 & 0x8000000L) != 0L) { return jjStopAtPos(1, 91); + } break; case 43: - if ((active1 & 0x10000000L) != 0L) + if ((active1 & 0x10000000L) != 0L) { return jjStopAtPos(1, 92); + } break; case 45: - if ((active1 & 0x20000000L) != 0L) + if ((active1 & 0x20000000L) != 0L) { return jjStopAtPos(1, 93); + } break; case 60: if ((active1 & 0x4000000000L) != 0L) @@ -305,30 +315,31 @@ private final int jjMoveStringLiteralDfa1_0(long active0, long active1) } return jjMoveStringLiteralDfa2_0(active0, 0L, active1, 0x2000000000000L); case 61: - if ((active1 & 0x400000L) != 0L) + if ((active1 & 0x400000L) != 0L) { return jjStopAtPos(1, 86); - else if ((active1 & 0x800000L) != 0L) + } else if ((active1 & 0x800000L) != 0L) { return jjStopAtPos(1, 87); - else if ((active1 & 0x1000000L) != 0L) + } else if ((active1 & 0x1000000L) != 0L) { return jjStopAtPos(1, 88); - else if ((active1 & 0x2000000L) != 0L) + } else if ((active1 & 0x2000000L) != 0L) { return jjStopAtPos(1, 89); - else if ((active1 & 0x20000000000L) != 0L) + } else if ((active1 & 0x20000000000L) != 0L) { return jjStopAtPos(1, 105); - else if ((active1 & 0x40000000000L) != 0L) + } else if ((active1 & 0x40000000000L) != 0L) { return jjStopAtPos(1, 106); - else if ((active1 & 0x80000000000L) != 0L) + } else if ((active1 & 0x80000000000L) != 0L) { return jjStopAtPos(1, 107); - else if ((active1 & 0x100000000000L) != 0L) + } else if ((active1 & 0x100000000000L) != 0L) { return jjStopAtPos(1, 108); - else if ((active1 & 0x200000000000L) != 0L) + } else if ((active1 & 0x200000000000L) != 0L) { return jjStopAtPos(1, 109); - else if ((active1 & 0x400000000000L) != 0L) + } else if ((active1 & 0x400000000000L) != 0L) { return jjStopAtPos(1, 110); - else if ((active1 & 0x800000000000L) != 0L) + } else if ((active1 & 0x800000000000L) != 0L) { return jjStopAtPos(1, 111); - else if ((active1 & 0x1000000000000L) != 0L) + } else if ((active1 & 0x1000000000000L) != 0L) { return jjStopAtPos(1, 112); + } break; case 62: if ((active1 & 0x8000000000L) != 0L) @@ -344,8 +355,9 @@ private final int jjMoveStringLiteralDfa1_0(long active0, long active1) case 101: return jjMoveStringLiteralDfa2_0(active0, 0x104000080000L, active1, 0L); case 102: - if ((active0 & 0x40000000L) != 0L) + if ((active0 & 0x40000000L) != 0L) { return jjStartNfaWithStates_0(1, 30, 28); + } break; case 104: return jjMoveStringLiteralDfa2_0(active0, 0x41c200000008000L, active1, 0L); @@ -377,8 +389,9 @@ private final int jjMoveStringLiteralDfa1_0(long active0, long active1) case 121: return jjMoveStringLiteralDfa2_0(active0, 0x2000000001000L, active1, 0L); case 124: - if ((active1 & 0x4000000L) != 0L) + if ((active1 & 0x4000000L) != 0L) { return jjStopAtPos(1, 90); + } break; default : break; @@ -387,8 +400,9 @@ private final int jjMoveStringLiteralDfa1_0(long active0, long active1) } private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, long active1) { - if (((active0 &= old0) | (active1 &= old1)) == 0L) + if (((active0 &= old0) | (active1 &= old1)) == 0L) { return jjStartNfa_0(0, old0, old1); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(1, active0, active1); @@ -397,10 +411,11 @@ private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, switch(curChar) { case 61: - if ((active1 & 0x2000000000000L) != 0L) + if ((active1 & 0x2000000000000L) != 0L) { return jjStopAtPos(2, 113); - else if ((active1 & 0x4000000000000L) != 0L) + } else if ((active1 & 0x4000000000000L) != 0L) { return jjStopAtPos(2, 114); + } break; case 62: if ((active1 & 0x10000000000L) != 0L) @@ -430,8 +445,9 @@ private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, case 112: return jjMoveStringLiteralDfa3_0(active0, 0x800180000000L, active1, 0L); case 114: - if ((active0 & 0x10000000L) != 0L) + if ((active0 & 0x10000000L) != 0L) { return jjStartNfaWithStates_0(2, 28, 28); + } return jjMoveStringLiteralDfa3_0(active0, 0x18000000000000L, active1, 0L); case 115: return jjMoveStringLiteralDfa3_0(active0, 0x200402200L, active1, 0L); @@ -445,12 +461,14 @@ private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, case 117: return jjMoveStringLiteralDfa3_0(active0, 0x40000000200000L, active1, 0L); case 119: - if ((active0 & 0x4000000000L) != 0L) + if ((active0 & 0x4000000000L) != 0L) { return jjStartNfaWithStates_0(2, 38, 28); + } break; case 121: - if ((active0 & 0x80000000000000L) != 0L) + if ((active0 & 0x80000000000000L) != 0L) { return jjStartNfaWithStates_0(2, 55, 28); + } break; default : break; @@ -459,8 +477,9 @@ private final int jjMoveStringLiteralDfa2_0(long old0, long active0, long old1, } private final int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, long active1) { - if (((active0 &= old0) | (active1 &= old1)) == 0L) + if (((active0 &= old0) | (active1 &= old1)) == 0L) { return jjStartNfa_0(1, old0, old1); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(2, active0, active1); @@ -469,8 +488,9 @@ private final int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, switch(curChar) { case 61: - if ((active1 & 0x8000000000000L) != 0L) + if ((active1 & 0x8000000000000L) != 0L) { return jjStopAtPos(3, 115); + } break; case 97: return jjMoveStringLiteralDfa4_0(active0, 0x20000000e080800L, active1, 0L); @@ -479,44 +499,51 @@ private final int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, case 99: return jjMoveStringLiteralDfa4_0(active0, 0x2000000004000L, active1, 0L); case 100: - if ((active0 & 0x100000000000000L) != 0L) + if ((active0 & 0x100000000000000L) != 0L) { return jjStartNfaWithStates_0(3, 56, 28); + } break; case 101: - if ((active0 & 0x1000L) != 0L) + if ((active0 & 0x1000L) != 0L) { return jjStartNfaWithStates_0(3, 12, 28); - else if ((active0 & 0x2000L) != 0L) + } else if ((active0 & 0x2000L) != 0L) { return jjStartNfaWithStates_0(3, 13, 28); - else if ((active0 & 0x400000L) != 0L) + } else if ((active0 & 0x400000L) != 0L) { return jjStartNfaWithStates_0(3, 22, 28); - else if ((active0 & 0x40000000000000L) != 0L) + } else if ((active0 & 0x40000000000000L) != 0L) { return jjStartNfaWithStates_0(3, 54, 28); + } return jjMoveStringLiteralDfa4_0(active0, 0x800800800000L, active1, 0L); case 103: - if ((active0 & 0x1000000000L) != 0L) + if ((active0 & 0x1000000000L) != 0L) { return jjStartNfaWithStates_0(3, 36, 28); + } break; case 105: return jjMoveStringLiteralDfa4_0(active0, 0x2000000000L, active1, 0L); case 107: return jjMoveStringLiteralDfa4_0(active0, 0x10000000000L, active1, 0L); case 108: - if ((active0 & 0x8000000000L) != 0L) + if ((active0 & 0x8000000000L) != 0L) { return jjStartNfaWithStates_0(3, 39, 28); + } return jjMoveStringLiteralDfa4_0(active0, 0x400080080000400L, active1, 0L); case 110: return jjMoveStringLiteralDfa4_0(active0, 0x20000000000000L, active1, 0L); case 111: - if ((active0 & 0x20000000L) != 0L) + if ((active0 & 0x20000000L) != 0L) { return jjStartNfaWithStates_0(3, 29, 28); + } return jjMoveStringLiteralDfa4_0(active0, 0x18000100000000L, active1, 0L); case 114: - if ((active0 & 0x8000L) != 0L) + if ((active0 & 0x8000L) != 0L) { return jjStartNfaWithStates_0(3, 15, 28); + } return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L, active1, 0L); case 115: - if ((active0 & 0x4000000000000L) != 0L) + if ((active0 & 0x4000000000000L) != 0L) { return jjStartNfaWithStates_0(3, 50, 28); + } return jjMoveStringLiteralDfa4_0(active0, 0x1030000L, active1, 0L); case 116: return jjMoveStringLiteralDfa4_0(active0, 0x1440200040200L, active1, 0L); @@ -531,8 +558,9 @@ private final int jjMoveStringLiteralDfa3_0(long old0, long active0, long old1, } private final int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, long active1) { - if (((active0 &= old0) | (active1 &= old1)) == 0L) + if (((active0 &= old0) | (active1 &= old1)) == 0L) { return jjStartNfa_0(2, old0, old1); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(3, active0, 0L); @@ -545,20 +573,23 @@ private final int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, case 99: return jjMoveStringLiteralDfa5_0(active0, 0x1000000000000L); case 101: - if ((active0 & 0x1000000L) != 0L) + if ((active0 & 0x1000000L) != 0L) { return jjStartNfaWithStates_0(4, 24, 28); - else if ((active0 & 0x400000000000000L) != 0L) + } else if ((active0 & 0x400000000000000L) != 0L) { return jjStartNfaWithStates_0(4, 58, 28); + } return jjMoveStringLiteralDfa5_0(active0, 0x40080000400L); case 104: - if ((active0 & 0x4000L) != 0L) + if ((active0 & 0x4000L) != 0L) { return jjStartNfaWithStates_0(4, 14, 28); + } return jjMoveStringLiteralDfa5_0(active0, 0x2000000000000L); case 105: return jjMoveStringLiteralDfa5_0(active0, 0x480000040000L); case 107: - if ((active0 & 0x800L) != 0L) + if ((active0 & 0x800L) != 0L) { return jjStartNfaWithStates_0(4, 11, 28); + } break; case 108: if ((active0 & 0x2000000L) != 0L) @@ -570,20 +601,23 @@ private final int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, case 110: return jjMoveStringLiteralDfa5_0(active0, 0x800000L); case 114: - if ((active0 & 0x800000000000L) != 0L) + if ((active0 & 0x800000000000L) != 0L) { return jjStartNfaWithStates_0(4, 47, 28); + } return jjMoveStringLiteralDfa5_0(active0, 0x100900000200L); case 115: - if ((active0 & 0x10000L) != 0L) + if ((active0 & 0x10000L) != 0L) { return jjStartNfaWithStates_0(4, 16, 28); + } return jjMoveStringLiteralDfa5_0(active0, 0x20000000000000L); case 116: - if ((active0 & 0x20000L) != 0L) + if ((active0 & 0x20000L) != 0L) { return jjStartNfaWithStates_0(4, 17, 28); - else if ((active0 & 0x8000000L) != 0L) + } else if ((active0 & 0x8000000L) != 0L) { return jjStartNfaWithStates_0(4, 27, 28); - else if ((active0 & 0x200000000000L) != 0L) + } else if ((active0 & 0x200000000000L) != 0L) { return jjStartNfaWithStates_0(4, 45, 28); + } return jjMoveStringLiteralDfa5_0(active0, 0x200000000000000L); case 117: return jjMoveStringLiteralDfa5_0(active0, 0x80000L); @@ -603,8 +637,9 @@ private final int jjMoveStringLiteralDfa4_0(long old0, long active0, long old1, } private final int jjMoveStringLiteralDfa5_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(3, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(4, active0, 0L); @@ -615,26 +650,29 @@ private final int jjMoveStringLiteralDfa5_0(long old0, long active0) case 97: return jjMoveStringLiteralDfa6_0(active0, 0x600L); case 99: - if ((active0 & 0x80000000000L) != 0L) + if ((active0 & 0x80000000000L) != 0L) { return jjStartNfaWithStates_0(5, 43, 28); - else if ((active0 & 0x400000000000L) != 0L) + } else if ((active0 & 0x400000000000L) != 0L) { return jjStartNfaWithStates_0(5, 46, 28); + } return jjMoveStringLiteralDfa6_0(active0, 0x40000000000L); case 100: return jjMoveStringLiteralDfa6_0(active0, 0x800000L); case 101: - if ((active0 & 0x200000L) != 0L) + if ((active0 & 0x200000L) != 0L) { return jjStartNfaWithStates_0(5, 21, 28); - else if ((active0 & 0x2000000000L) != 0L) + } else if ((active0 & 0x2000000000L) != 0L) { return jjStartNfaWithStates_0(5, 37, 28); + } break; case 102: return jjMoveStringLiteralDfa6_0(active0, 0x800000000L); case 103: return jjMoveStringLiteralDfa6_0(active0, 0x10000000000L); case 104: - if ((active0 & 0x1000000000000L) != 0L) + if ((active0 & 0x1000000000000L) != 0L) { return jjStartNfaWithStates_0(5, 48, 28); + } break; case 105: return jjMoveStringLiteralDfa6_0(active0, 0x220000000000000L); @@ -643,18 +681,21 @@ private final int jjMoveStringLiteralDfa5_0(long old0, long active0) case 109: return jjMoveStringLiteralDfa6_0(active0, 0x80000000L); case 110: - if ((active0 & 0x100000000000L) != 0L) + if ((active0 & 0x100000000000L) != 0L) { return jjStartNfaWithStates_0(5, 44, 28); + } return jjMoveStringLiteralDfa6_0(active0, 0x200040000L); case 114: return jjMoveStringLiteralDfa6_0(active0, 0x2000000000000L); case 115: - if ((active0 & 0x10000000000000L) != 0L) + if ((active0 & 0x10000000000000L) != 0L) { return jjStartNfaWithStates_0(5, 52, 28); + } break; case 116: - if ((active0 & 0x100000000L) != 0L) + if ((active0 & 0x100000000L) != 0L) { return jjStartNfaWithStates_0(5, 32, 28); + } return jjMoveStringLiteralDfa6_0(active0, 0x20000000000L); default : break; @@ -663,8 +704,9 @@ private final int jjMoveStringLiteralDfa5_0(long old0, long active0) } private final int jjMoveStringLiteralDfa6_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(4, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(5, active0, 0L); @@ -677,32 +719,37 @@ private final int jjMoveStringLiteralDfa6_0(long old0, long active0) case 99: return jjMoveStringLiteralDfa7_0(active0, 0x200000200L); case 101: - if ((active0 & 0x10000000000L) != 0L) + if ((active0 & 0x10000000000L) != 0L) { return jjStartNfaWithStates_0(6, 40, 28); - else if ((active0 & 0x20000000000L) != 0L) + } else if ((active0 & 0x20000000000L) != 0L) { return jjStartNfaWithStates_0(6, 41, 28); + } return jjMoveStringLiteralDfa7_0(active0, 0x20000080000000L); case 108: return jjMoveStringLiteralDfa7_0(active0, 0x200000000000000L); case 110: - if ((active0 & 0x400L) != 0L) + if ((active0 & 0x400L) != 0L) { return jjStartNfaWithStates_0(6, 10, 28); + } break; case 111: return jjMoveStringLiteralDfa7_0(active0, 0x2000000000000L); case 115: - if ((active0 & 0x800000L) != 0L) + if ((active0 & 0x800000L) != 0L) { return jjStartNfaWithStates_0(6, 23, 28); + } break; case 116: - if ((active0 & 0x80000L) != 0L) + if ((active0 & 0x80000L) != 0L) { return jjStartNfaWithStates_0(6, 19, 28); + } return jjMoveStringLiteralDfa7_0(active0, 0x40000000000L); case 117: return jjMoveStringLiteralDfa7_0(active0, 0x40000L); case 121: - if ((active0 & 0x4000000L) != 0L) + if ((active0 & 0x4000000L) != 0L) { return jjStartNfaWithStates_0(6, 26, 28); + } break; default : break; @@ -711,8 +758,9 @@ private final int jjMoveStringLiteralDfa6_0(long old0, long active0) } private final int jjMoveStringLiteralDfa7_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(5, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(6, active0, 0L); @@ -723,16 +771,18 @@ private final int jjMoveStringLiteralDfa7_0(long old0, long active0) case 99: return jjMoveStringLiteralDfa8_0(active0, 0x800000000L); case 101: - if ((active0 & 0x40000L) != 0L) + if ((active0 & 0x40000L) != 0L) { return jjStartNfaWithStates_0(7, 18, 28); - else if ((active0 & 0x200000000000000L) != 0L) + } else if ((active0 & 0x200000000000000L) != 0L) { return jjStartNfaWithStates_0(7, 57, 28); + } return jjMoveStringLiteralDfa8_0(active0, 0x40200000000L); case 110: return jjMoveStringLiteralDfa8_0(active0, 0x22000080000000L); case 116: - if ((active0 & 0x200L) != 0L) + if ((active0 & 0x200L) != 0L) { return jjStartNfaWithStates_0(7, 9, 28); + } break; default : break; @@ -741,8 +791,9 @@ private final int jjMoveStringLiteralDfa7_0(long old0, long active0) } private final int jjMoveStringLiteralDfa8_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(6, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(7, active0, 0L); @@ -751,20 +802,23 @@ private final int jjMoveStringLiteralDfa8_0(long old0, long active0) switch(curChar) { case 100: - if ((active0 & 0x40000000000L) != 0L) + if ((active0 & 0x40000000000L) != 0L) { return jjStartNfaWithStates_0(8, 42, 28); + } break; case 101: - if ((active0 & 0x800000000L) != 0L) + if ((active0 & 0x800000000L) != 0L) { return jjStartNfaWithStates_0(8, 35, 28); + } break; case 105: return jjMoveStringLiteralDfa9_0(active0, 0x2000000000000L); case 111: return jjMoveStringLiteralDfa9_0(active0, 0x200000000L); case 116: - if ((active0 & 0x20000000000000L) != 0L) + if ((active0 & 0x20000000000000L) != 0L) { return jjStartNfaWithStates_0(8, 53, 28); + } return jjMoveStringLiteralDfa9_0(active0, 0x80000000L); default : break; @@ -773,8 +827,9 @@ private final int jjMoveStringLiteralDfa8_0(long old0, long active0) } private final int jjMoveStringLiteralDfa9_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(7, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(8, active0, 0L); @@ -783,12 +838,14 @@ private final int jjMoveStringLiteralDfa9_0(long old0, long active0) switch(curChar) { case 102: - if ((active0 & 0x200000000L) != 0L) + if ((active0 & 0x200000000L) != 0L) { return jjStartNfaWithStates_0(9, 33, 28); + } break; case 115: - if ((active0 & 0x80000000L) != 0L) + if ((active0 & 0x80000000L) != 0L) { return jjStartNfaWithStates_0(9, 31, 28); + } break; case 122: return jjMoveStringLiteralDfa10_0(active0, 0x2000000000000L); @@ -799,8 +856,9 @@ private final int jjMoveStringLiteralDfa9_0(long old0, long active0) } private final int jjMoveStringLiteralDfa10_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(8, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(9, active0, 0L); @@ -817,8 +875,9 @@ private final int jjMoveStringLiteralDfa10_0(long old0, long active0) } private final int jjMoveStringLiteralDfa11_0(long old0, long active0) { - if (((active0 &= old0)) == 0L) + if (((active0 &= old0)) == 0L) { return jjStartNfa_0(9, old0, 0L); + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { jjStopStringLiteralDfa_0(10, active0, 0L); @@ -827,8 +886,9 @@ private final int jjMoveStringLiteralDfa11_0(long old0, long active0) switch(curChar) { case 100: - if ((active0 & 0x2000000000000L) != 0L) + if ((active0 & 0x2000000000000L) != 0L) { return jjStartNfaWithStates_0(11, 49, 28); + } break; default : break; @@ -891,320 +951,395 @@ static final long[] jjbitVec8 = { }; private final int jjMoveNfa_0(int startState, int curPos) { - int[] nextStates; int startsAt = 0; jjnewStateCnt = 67; int i = 1; jjstateSet[0] = startState; - int j, kind = 0x7fffffff; + int kind = 0x7fffffff; for (;;) { - if (++jjround == 0x7fffffff) + if (++jjround == 0x7fffffff) { ReInitRounds(); + } if (curChar < 64) { long l = 1L << curChar; - MatchLoop: do + //MatchLoop + do { switch(jjstateSet[--i]) { case 0: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddStates(0, 6); - else if (curChar == 47) + } else if (curChar == 47) { jjAddStates(7, 9); - else if (curChar == 36) + } else if (curChar == 36) { - if (kind > 67) + if (kind > 67) { kind = 67; + } jjCheckNAdd(28); } - else if (curChar == 34) + else if (curChar == 34) { jjCheckNAddStates(10, 12); - else if (curChar == 39) + } else if (curChar == 39) { jjAddStates(13, 14); - else if (curChar == 46) + } else if (curChar == 46) { jjCheckNAdd(4); + } if ((0x3fe000000000000L & l) != 0L) { - if (kind > 59) + if (kind > 59) { kind = 59; + } jjCheckNAddTwoStates(1, 2); } else if (curChar == 48) { - if (kind > 59) + if (kind > 59) { kind = 59; + } jjCheckNAddStates(15, 17); } break; case 49: - if (curChar == 42) + if (curChar == 42) { jjCheckNAddTwoStates(62, 63); - else if (curChar == 47) + } else if (curChar == 47) { jjCheckNAddStates(18, 20); - if (curChar == 42) + } + if (curChar == 42) { jjstateSet[jjnewStateCnt++] = 54; + } break; case 1: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 59) + } + if (kind > 59) { kind = 59; + } jjCheckNAddTwoStates(1, 2); break; case 3: - if (curChar == 46) + if (curChar == 46) { jjCheckNAdd(4); + } break; case 4: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddStates(21, 23); break; case 6: - if ((0x280000000000L & l) != 0L) + if ((0x280000000000L & l) != 0L) { jjCheckNAdd(7); + } break; case 7: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddTwoStates(7, 8); break; case 9: - if (curChar == 39) + if (curChar == 39) { jjAddStates(13, 14); + } break; case 10: - if ((0xffffff7fffffdbffL & l) != 0L) + if ((0xffffff7fffffdbffL & l) != 0L) { jjCheckNAdd(11); + } break; case 11: - if (curChar == 39 && kind > 65) + if (curChar == 39 && kind > 65) { kind = 65; + } break; case 13: - if ((0x8400000000L & l) != 0L) + if ((0x8400000000L & l) != 0L) { jjCheckNAdd(11); + } break; case 14: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAddTwoStates(15, 11); + } break; case 15: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAdd(11); + } break; case 16: - if ((0xf000000000000L & l) != 0L) + if ((0xf000000000000L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 17; + } break; case 17: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAdd(15); + } break; case 18: - if (curChar == 34) + if (curChar == 34) { jjCheckNAddStates(10, 12); + } break; case 19: - if ((0xfffffffbffffdbffL & l) != 0L) + if ((0xfffffffbffffdbffL & l) != 0L) { jjCheckNAddStates(10, 12); + } break; case 21: - if ((0x8400000000L & l) != 0L) + if ((0x8400000000L & l) != 0L) { jjCheckNAddStates(10, 12); + } break; case 22: - if (curChar == 34 && kind > 66) + if (curChar == 34 && kind > 66) { kind = 66; + } break; case 23: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAddStates(24, 27); + } break; case 24: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAddStates(10, 12); + } break; case 25: - if ((0xf000000000000L & l) != 0L) + if ((0xf000000000000L & l) != 0L) { jjstateSet[jjnewStateCnt++] = 26; + } break; case 26: - if ((0xff000000000000L & l) != 0L) + if ((0xff000000000000L & l) != 0L) { jjCheckNAdd(24); + } break; case 27: - if (curChar != 36) + if (curChar != 36) { break; - if (kind > 67) + } + if (kind > 67) { kind = 67; + } jjCheckNAdd(28); break; case 28: - if ((0x3ff001000000000L & l) == 0L) + if ((0x3ff001000000000L & l) == 0L) { break; - if (kind > 67) + } + if (kind > 67) { kind = 67; + } jjCheckNAdd(28); break; case 29: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddStates(0, 6); + } break; case 30: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddTwoStates(30, 31); + } break; case 31: - if (curChar != 46) + if (curChar != 46) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddStates(28, 30); break; case 32: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddStates(28, 30); break; case 34: - if ((0x280000000000L & l) != 0L) + if ((0x280000000000L & l) != 0L) { jjCheckNAdd(35); + } break; case 35: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddTwoStates(35, 8); break; case 36: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddTwoStates(36, 37); + } break; case 38: - if ((0x280000000000L & l) != 0L) + if ((0x280000000000L & l) != 0L) { jjCheckNAdd(39); + } break; case 39: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 63) + } + if (kind > 63) { kind = 63; + } jjCheckNAddTwoStates(39, 8); break; case 40: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddStates(31, 33); + } break; case 42: - if ((0x280000000000L & l) != 0L) + if ((0x280000000000L & l) != 0L) { jjCheckNAdd(43); + } break; case 43: - if ((0x3ff000000000000L & l) != 0L) + if ((0x3ff000000000000L & l) != 0L) { jjCheckNAddTwoStates(43, 8); + } break; case 44: - if (curChar != 48) + if (curChar != 48) { break; - if (kind > 59) + } + if (kind > 59) { kind = 59; + } jjCheckNAddStates(15, 17); break; case 46: - if ((0x3ff000000000000L & l) == 0L) + if ((0x3ff000000000000L & l) == 0L) { break; - if (kind > 59) + } + if (kind > 59) { kind = 59; + } jjCheckNAddTwoStates(46, 2); break; case 47: - if ((0xff000000000000L & l) == 0L) + if ((0xff000000000000L & l) == 0L) { break; - if (kind > 59) + } + if (kind > 59) { kind = 59; + } jjCheckNAddTwoStates(47, 2); break; case 48: - if (curChar == 47) + if (curChar == 47) { jjAddStates(7, 9); + } break; case 50: - if ((0xffffffffffffdbffL & l) != 0L) + if ((0xffffffffffffdbffL & l) != 0L) { jjCheckNAddStates(18, 20); + } break; case 51: - if ((0x2400L & l) != 0L && kind > 6) + if ((0x2400L & l) != 0L && kind > 6) { kind = 6; + } break; case 52: - if (curChar == 10 && kind > 6) + if (curChar == 10 && kind > 6) { kind = 6; + } break; case 53: - if (curChar == 13) + if (curChar == 13) { jjstateSet[jjnewStateCnt++] = 52; + } break; case 54: - if (curChar == 42) + if (curChar == 42) { jjCheckNAddTwoStates(55, 56); + } break; case 55: - if ((0xfffffbffffffffffL & l) != 0L) + if ((0xfffffbffffffffffL & l) != 0L) { jjCheckNAddTwoStates(55, 56); + } break; case 56: - if (curChar == 42) + if (curChar == 42) { jjCheckNAddStates(34, 36); + } break; case 57: - if ((0xffff7bffffffffffL & l) != 0L) + if ((0xffff7bffffffffffL & l) != 0L) { jjCheckNAddTwoStates(58, 56); + } break; case 58: - if ((0xfffffbffffffffffL & l) != 0L) + if ((0xfffffbffffffffffL & l) != 0L) { jjCheckNAddTwoStates(58, 56); + } break; case 59: - if (curChar == 47 && kind > 7) + if (curChar == 47 && kind > 7) { kind = 7; + } break; case 60: - if (curChar == 42) + if (curChar == 42) { jjstateSet[jjnewStateCnt++] = 54; + } break; case 61: - if (curChar == 42) + if (curChar == 42) { jjCheckNAddTwoStates(62, 63); + } break; case 62: - if ((0xfffffbffffffffffL & l) != 0L) + if ((0xfffffbffffffffffL & l) != 0L) { jjCheckNAddTwoStates(62, 63); + } break; case 63: - if (curChar == 42) + if (curChar == 42) { jjCheckNAddStates(37, 39); + } break; case 64: - if ((0xffff7bffffffffffL & l) != 0L) + if ((0xffff7bffffffffffL & l) != 0L) { jjCheckNAddTwoStates(65, 63); + } break; case 65: - if ((0xfffffbffffffffffL & l) != 0L) + if ((0xfffffbffffffffffL & l) != 0L) { jjCheckNAddTwoStates(65, 63); + } break; case 66: - if (curChar == 47 && kind > 8) + if (curChar == 47 && kind > 8) { kind = 8; + } break; default : break; } @@ -1213,75 +1348,93 @@ private final int jjMoveNfa_0(int startState, int curPos) else if (curChar < 128) { long l = 1L << (curChar & 077); - MatchLoop: do + //MatchLoop + do { switch(jjstateSet[--i]) { case 0: case 28: - if ((0x7fffffe87fffffeL & l) == 0L) + if ((0x7fffffe87fffffeL & l) == 0L) { break; - if (kind > 67) + } + if (kind > 67) { kind = 67; + } jjCheckNAdd(28); break; case 2: - if ((0x100000001000L & l) != 0L && kind > 59) + if ((0x100000001000L & l) != 0L && kind > 59) { kind = 59; + } break; case 5: - if ((0x2000000020L & l) != 0L) + if ((0x2000000020L & l) != 0L) { jjAddStates(40, 41); + } break; case 8: - if ((0x5000000050L & l) != 0L && kind > 63) + if ((0x5000000050L & l) != 0L && kind > 63) { kind = 63; + } break; case 10: - if ((0xffffffffefffffffL & l) != 0L) + if ((0xffffffffefffffffL & l) != 0L) { jjCheckNAdd(11); + } break; case 12: - if (curChar == 92) + if (curChar == 92) { jjAddStates(42, 44); + } break; case 13: - if ((0x14404410000000L & l) != 0L) + if ((0x14404410000000L & l) != 0L) { jjCheckNAdd(11); + } break; case 19: - if ((0xffffffffefffffffL & l) != 0L) + if ((0xffffffffefffffffL & l) != 0L) { jjCheckNAddStates(10, 12); + } break; case 20: - if (curChar == 92) + if (curChar == 92) { jjAddStates(45, 47); + } break; case 21: - if ((0x14404410000000L & l) != 0L) + if ((0x14404410000000L & l) != 0L) { jjCheckNAddStates(10, 12); + } break; case 33: - if ((0x2000000020L & l) != 0L) + if ((0x2000000020L & l) != 0L) { jjAddStates(48, 49); + } break; case 37: - if ((0x2000000020L & l) != 0L) + if ((0x2000000020L & l) != 0L) { jjAddStates(50, 51); + } break; case 41: - if ((0x2000000020L & l) != 0L) + if ((0x2000000020L & l) != 0L) { jjAddStates(52, 53); + } break; case 45: - if ((0x100000001000000L & l) != 0L) + if ((0x100000001000000L & l) != 0L) { jjCheckNAdd(46); + } break; case 46: - if ((0x7e0000007eL & l) == 0L) + if ((0x7e0000007eL & l) == 0L) { break; - if (kind > 59) + } + if (kind > 59) { kind = 59; + } jjCheckNAddTwoStates(46, 2); break; case 50: @@ -1312,47 +1465,57 @@ private final int jjMoveNfa_0(int startState, int curPos) long l1 = 1L << (hiByte & 077); int i2 = (curChar & 0xff) >> 6; long l2 = 1L << (curChar & 077); - MatchLoop: do + //MatchLoop + do { switch(jjstateSet[--i]) { case 0: case 28: - if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) + if (!jjCanMove_1(hiByte, i1, i2, l1, l2)) { break; - if (kind > 67) + } + if (kind > 67) { kind = 67; + } jjCheckNAdd(28); break; case 10: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjstateSet[jjnewStateCnt++] = 11; + } break; case 19: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjAddStates(10, 12); + } break; case 50: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjAddStates(18, 20); + } break; case 55: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjCheckNAddTwoStates(55, 56); + } break; case 57: case 58: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjCheckNAddTwoStates(58, 56); + } break; case 62: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjCheckNAddTwoStates(62, 63); + } break; case 64: case 65: - if (jjCanMove_0(hiByte, i1, i2, l1, l2)) + if (jjCanMove_0(hiByte, i1, i2, l1, l2)) { jjCheckNAddTwoStates(65, 63); + } break; default : break; } @@ -1365,8 +1528,9 @@ private final int jjMoveNfa_0(int startState, int curPos) kind = 0x7fffffff; } ++curPos; - if ((i = jjnewStateCnt) == (startsAt = 67 - (jjnewStateCnt = startsAt))) + if ((i = jjnewStateCnt) == (startsAt = 67 - (jjnewStateCnt = startsAt))) { return curPos; + } try { curChar = input_stream.readChar(); } catch(java.io.IOException e) { return curPos; } } @@ -1384,8 +1548,9 @@ private static final boolean jjCanMove_0(int hiByte, int i1, int i2, long l1, lo case 0: return ((jjbitVec2[i2] & l2) != 0L); default : - if ((jjbitVec0[i1] & l1) != 0L) + if ((jjbitVec0[i1] & l1) != 0L) { return true; + } return false; } } @@ -1404,8 +1569,9 @@ private static final boolean jjCanMove_1(int hiByte, int i1, int i2, long l1, lo case 61: return ((jjbitVec8[i2] & l2) != 0L); default : - if ((jjbitVec3[i1] & l1) != 0L) + if ((jjbitVec3[i1] & l1) != 0L) { return true; + } return false; } } @@ -1449,8 +1615,9 @@ private final int[] jjstateSet = new int[134]; protected char curChar; public ExpressionParserTokenManager(ASCII_UCodeESC_CharStream stream) { - if (ASCII_UCodeESC_CharStream.staticFlag) + if (ASCII_UCodeESC_CharStream.staticFlag) { throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer."); + } input_stream = stream; } public ExpressionParserTokenManager(ASCII_UCodeESC_CharStream stream, int lexState) @@ -1469,9 +1636,10 @@ private final void ReInitRounds() { int i; jjround = 0x80000001; - for (i = 67; i-- > 0;) + for (i = 67; i-- > 0;) { jjrounds[i] = 0x80000000; } +} public void ReInit(ASCII_UCodeESC_CharStream stream, int lexState) { ReInit(stream); @@ -1479,11 +1647,12 @@ public void ReInit(ASCII_UCodeESC_CharStream stream, int lexState) } public void SwitchTo(int lexState) { - if (lexState >= 1 || lexState < 0) + if (lexState >= 1 || lexState < 0) { throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE); - else + } else { curLexState = lexState; } +} private final Token jjFillToken() { @@ -1507,7 +1676,6 @@ int jjmatchedKind; public final Token getNextToken() { - int kind; Token specialToken = null; Token matchedToken; int curPos = 0; @@ -1528,17 +1696,19 @@ public final Token getNextToken() } try { - while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L) + while (curChar <= 32 && (0x100003600L & (1L << curChar)) != 0L) { curChar = input_stream.BeginToken(); } + } catch (java.io.IOException e1) { continue EOFLoop; } jjmatchedKind = 0x7fffffff; jjmatchedPos = 0; curPos = jjMoveStringLiteralDfa0_0(); if (jjmatchedKind != 0x7fffffff) { - if (jjmatchedPos + 1 < curPos) + if (jjmatchedPos + 1 < curPos) { input_stream.backup(curPos - jjmatchedPos - 1); + } if ((jjtoToken[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) { matchedToken = jjFillToken(); @@ -1550,9 +1720,9 @@ public final Token getNextToken() if ((jjtoSpecial[jjmatchedKind >> 6] & (1L << (jjmatchedKind & 077))) != 0L) { matchedToken = jjFillToken(); - if (specialToken == null) + if (specialToken == null) { specialToken = matchedToken; - else + } else { matchedToken.specialToken = specialToken; specialToken = (specialToken.next = matchedToken); @@ -1572,9 +1742,9 @@ public final Token getNextToken() if (curChar == '\n' || curChar == '\r') { error_line++; error_column = 0; - } - else + } else { error_column++; + } } if (!EOFSeen) { input_stream.backup(1); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java index 5dd8cf43d10..42ef2963e0b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/LValue.java @@ -156,6 +156,7 @@ abstract class LValue { return new LValueArrayElement(interiorGetValue(), index); } + @Override public String toString() { try { return interiorGetValue().toString(); @@ -419,6 +420,7 @@ abstract class LValue { this.var = var; } + @Override Value getValue() { if (jdiValue == null) { jdiValue = frame.getValue(var); @@ -426,12 +428,14 @@ abstract class LValue { return jdiValue; } + @Override void setValue0(Value val) throws InvalidTypeException, ClassNotLoadedException { frame.setValue(var, val); jdiValue = val; } + @Override void invokeWith(List<Value> arguments) throws ParseException { throw new ParseException(var.name() + " is not a method"); } @@ -469,6 +473,7 @@ abstract class LValue { } } + @Override Value getValue() throws InvocationException, InvalidTypeException, ClassNotLoadedException, IncompatibleThreadStateException, ParseException { @@ -485,6 +490,7 @@ abstract class LValue { } } + @Override void setValue0(Value val) throws ParseException, InvalidTypeException, ClassNotLoadedException { @@ -495,6 +501,7 @@ abstract class LValue { jdiValue = val; } + @Override void invokeWith(List<Value> arguments) throws ParseException { if (matchingMethod != null) { throw new ParseException("Invalid consecutive invocations"); @@ -531,6 +538,7 @@ abstract class LValue { } } + @Override Value getValue() throws InvocationException, InvalidTypeException, ClassNotLoadedException, IncompatibleThreadStateException, ParseException { @@ -548,6 +556,7 @@ abstract class LValue { } } + @Override void setValue0(Value val) throws ParseException, InvalidTypeException, ClassNotLoadedException { @@ -562,6 +571,7 @@ abstract class LValue { jdiValue = val; } + @Override void invokeWith(List<Value> arguments) throws ParseException { if (matchingMethod != null) { throw new ParseException("Invalid consecutive invocations"); @@ -589,6 +599,7 @@ abstract class LValue { this.arrayRef = value; } + @Override Value getValue() { if (jdiValue == null) { jdiValue = arrayRef.virtualMachine().mirrorOf(arrayRef.length()); @@ -596,10 +607,12 @@ abstract class LValue { return jdiValue; } + @Override void setValue0(Value value) throws ParseException { throw new ParseException("Cannot set constant: " + value); } + @Override void invokeWith(List<Value> arguments) throws ParseException { throw new ParseException("Array element is not a method"); } @@ -618,6 +631,7 @@ abstract class LValue { this.index = index; } + @Override Value getValue() { if (jdiValue == null) { jdiValue = array.getValue(index); @@ -625,12 +639,14 @@ abstract class LValue { return jdiValue; } + @Override void setValue0(Value val) throws InvalidTypeException, ClassNotLoadedException { array.setValue(index, val); jdiValue = val; } + @Override void invokeWith(List<Value> arguments) throws ParseException { throw new ParseException("Array element is not a method"); } @@ -643,6 +659,7 @@ abstract class LValue { this.value = value; } + @Override Value getValue() { if (jdiValue == null) { jdiValue = value; @@ -650,10 +667,12 @@ abstract class LValue { return jdiValue; } + @Override void setValue0(Value val) throws ParseException { throw new ParseException("Cannot set constant: " + value); } + @Override void invokeWith(List<Value> arguments) throws ParseException { throw new ParseException("Constant is not a method"); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java index bf615935604..8ee53728f02 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ParseException.java @@ -37,6 +37,8 @@ package com.sun.tools.example.debug.expr; */ public class ParseException extends Exception { + private static final long serialVersionUID = 7978489144303647901L; + /** * This constructor is used by the method "generateParseException" * in the generated parser. Calling this constructor generates @@ -119,20 +121,21 @@ public class ParseException extends Exception { * of the final stack trace, and hence the correct error message * gets displayed. */ + @Override public String getMessage() { if (!specialConstructor) { return super.getMessage(); } String expected = ""; int maxSize = 0; - for (int i = 0; i < expectedTokenSequences.length; i++) { - if (maxSize < expectedTokenSequences[i].length) { - maxSize = expectedTokenSequences[i].length; + for (int[] expectedTokenSequence : expectedTokenSequences) { + if (maxSize < expectedTokenSequence.length) { + maxSize = expectedTokenSequence.length; } - for (int j = 0; j < expectedTokenSequences[i].length; j++) { - expected += tokenImage[expectedTokenSequences[i][j]] + " "; + for (int j = 0; j < expectedTokenSequence.length; j++) { + expected += tokenImage[expectedTokenSequence[j]] + " "; } - if (expectedTokenSequences[i][expectedTokenSequences[i].length - 1] != 0) { + if (expectedTokenSequence[expectedTokenSequence.length - 1] != 0) { expected += "..."; } expected += eol + " "; @@ -140,7 +143,9 @@ public class ParseException extends Exception { String retval = "Encountered \""; Token tok = currentToken.next; for (int i = 0; i < maxSize; i++) { - if (i != 0) retval += " "; + if (i != 0) { + retval += " "; + } if (tok.kind == 0) { retval += tokenImage[0]; break; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java index ea0a9ef33d7..534120014f3 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/Token.java @@ -78,6 +78,7 @@ public class Token { /** * Returns the image. */ + @Override public final String toString() { return image; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java index 2f4365018fe..16a40df286e 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/TokenMgrError.java @@ -32,6 +32,8 @@ public class TokenMgrError extends Error * Ordinals for various reasons why an Error of this type can be thrown. */ + private static final long serialVersionUID = -6236440836177601522L; + /** * Lexical error occured. */ @@ -136,6 +138,7 @@ public class TokenMgrError extends Error * * from this method for such cases in the release version of your parser. */ + @Override public String getMessage() { return super.getMessage(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java index 8eee7c76418..e9a4c0b7808 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ApplicationTool.java @@ -29,12 +29,12 @@ import javax.swing.*; import java.awt.*; import java.awt.event.*; -import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; public class ApplicationTool extends JPanel { - private Environment env; + private static final long serialVersionUID = 310966063293205714L; + private ExecutionManager runtime; private TypeScript script; @@ -45,13 +45,13 @@ public class ApplicationTool extends JPanel { super(new BorderLayout()); - this.env = env; this.runtime = env.getExecutionManager(); this.script = new TypeScript(PROMPT, false); // No implicit echo. this.add(script); script.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { runtime.sendLineToApplication(script.readln()); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java index abfc86a810b..945243458bf 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ClassTreeTool.java @@ -25,12 +25,10 @@ package com.sun.tools.example.debug.gui; -import java.io.*; import java.util.*; import javax.swing.*; import javax.swing.tree.*; -import javax.swing.event.*; import java.awt.*; import java.awt.event.*; @@ -40,6 +38,8 @@ import com.sun.tools.example.debug.bdi.*; public class ClassTreeTool extends JPanel { + private static final long serialVersionUID = 526178912591739259L; + private Environment env; private ExecutionManager runtime; @@ -49,7 +49,7 @@ public class ClassTreeTool extends JPanel { private JTree tree; private DefaultTreeModel treeModel; private ClassTreeNode root; - private SearchPath sourcePath; +// private SearchPath sourcePath; private CommandInterpreter interpreter; @@ -87,6 +87,7 @@ public class ClassTreeTool extends JPanel { ******/ MouseListener ml = new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { int selRow = tree.getRowForLocation(e.getX(), e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(), e.getY()); @@ -121,6 +122,7 @@ public class ClassTreeTool extends JPanel { // SessionListener + @Override public void sessionStart(EventObject e) { // Get system classes and any others loaded before attaching. try { @@ -134,19 +136,24 @@ public class ClassTreeTool extends JPanel { } } + @Override public void sessionInterrupt(EventObject e) {} + @Override public void sessionContinue(EventObject e) {} // JDIListener + @Override public void classPrepare(ClassPrepareEventSet e) { root.addClass(e.getReferenceType()); } + @Override public void classUnload(ClassUnloadEventSet e) { root.removeClass(e.getClassName()); } + @Override public void vmDisconnect(VMDisconnectEventSet e) { // Clear contents of this view. root = createClassTree(HEADING); @@ -169,6 +176,7 @@ public class ClassTreeTool extends JPanel { this.refTy = refTy; } + @Override public String toString() { return name; } @@ -185,6 +193,7 @@ public class ClassTreeTool extends JPanel { return (refTy == null); } + @Override public boolean isLeaf() { return !isPackage(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java index 1ff8163b683..97ab320bf8b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandInterpreter.java @@ -29,8 +29,6 @@ import java.io.*; import java.util.*; import com.sun.jdi.*; -import com.sun.jdi.request.*; - import com.sun.tools.example.debug.bdi.*; public class CommandInterpreter { @@ -93,9 +91,9 @@ public class CommandInterpreter { try { ThreadReference[] threads = threads(); long threadID = Long.parseLong(id, 16); - for (int i = 0; i < threads.length; i++) { - if (threads[i].uniqueID() == threadID) { - thread = threads[i]; + for (ThreadReference thread2 : threads) { + if (thread2.uniqueID() == threadID) { + thread = thread2; break; } } @@ -239,16 +237,18 @@ public class CommandInterpreter { for (int i = 0 ; i < tlist.size() ; i++) { ThreadReference thr = tlist.get(i); int len = Utils.description(thr).length(); - if (len > maxId) + if (len > maxId) { maxId = len; + } String name = thr.name(); int iDot = name.lastIndexOf('.'); if (iDot >= 0 && name.length() > iDot) { name = name.substring(iDot + 1); } - if (name.length() > maxName) + if (name.length() > maxName) { maxName = name.length(); } + } String maxNumString = String.valueOf(iThread + tlist.size()); int maxNumDigits = maxNumString.length(); for (int i = 0 ; i < tlist.size() ; i++) { @@ -616,7 +616,6 @@ public class CommandInterpreter { int cnt = 1; if (t.hasMoreTokens()) { String idToken = t.nextToken(); - int n; try { cnt = Integer.valueOf(idToken).intValue(); } catch (NumberFormatException e) { @@ -885,7 +884,6 @@ public class CommandInterpreter { } private void commandStop(StringTokenizer t) throws NoSessionException { - Location bploc; String token; if (!t.hasMoreTokens()) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java index 1f47adfcf97..42157e4423e 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CommandTool.java @@ -40,6 +40,8 @@ import com.sun.tools.example.debug.event.*; public class CommandTool extends JPanel { + private static final long serialVersionUID = 8613516856378346415L; + private Environment env; private ContextManager context; @@ -68,6 +70,7 @@ public class CommandTool extends JPanel { // Establish handler for incoming commands. script.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { interpreter.executeCommand(script.readln()); } @@ -107,15 +110,17 @@ public class CommandTool extends JPanel { // JDIListener + @Override public void accessWatchpoint(AccessWatchpointEventSet e) { setThread(e); for (EventIterator it = e.eventIterator(); it.hasNext(); ) { - Event evt = it.nextEvent(); + it.nextEvent(); diagnostics.putString("Watchpoint hit: " + locationString(e)); } } + @Override public void classPrepare(ClassPrepareEventSet e) { if (context.getVerboseFlag()) { String name = e.getReferenceType().name(); @@ -123,6 +128,7 @@ public class CommandTool extends JPanel { } } + @Override public void classUnload(ClassUnloadEventSet e) { if (context.getVerboseFlag()) { diagnostics.putString("Class " + e.getClassName() + @@ -130,12 +136,14 @@ public class CommandTool extends JPanel { } } + @Override public void exception(ExceptionEventSet e) { setThread(e); String name = e.getException().referenceType().name(); diagnostics.putString("Exception: " + name); } + @Override public void locationTrigger(LocationTriggerEventSet e) { String locString = locationString(e); setThread(e); @@ -155,15 +163,17 @@ public class CommandTool extends JPanel { } } + @Override public void modificationWatchpoint(ModificationWatchpointEventSet e) { setThread(e); for (EventIterator it = e.eventIterator(); it.hasNext(); ) { - Event evt = it.nextEvent(); + it.nextEvent(); diagnostics.putString("Watchpoint hit: " + locationString(e)); } } + @Override public void threadDeath(ThreadDeathEventSet e) { if (context.getVerboseFlag()) { diagnostics.putString("Thread " + e.getThread() + @@ -171,6 +181,7 @@ public class CommandTool extends JPanel { } } + @Override public void threadStart(ThreadStartEventSet e) { if (context.getVerboseFlag()) { diagnostics.putString("Thread " + e.getThread() + @@ -178,16 +189,19 @@ public class CommandTool extends JPanel { } } + @Override public void vmDeath(VMDeathEventSet e) { script.setPrompt(DEFAULT_CMD_PROMPT); diagnostics.putString("VM exited"); } + @Override public void vmDisconnect(VMDisconnectEventSet e) { script.setPrompt(DEFAULT_CMD_PROMPT); diagnostics.putString("Disconnected from VM"); } + @Override public void vmStart(VMStartEventSet e) { script.setPrompt(DEFAULT_CMD_PROMPT); diagnostics.putString("VM started"); @@ -195,14 +209,17 @@ public class CommandTool extends JPanel { // SessionListener + @Override public void sessionStart(EventObject e) {} + @Override public void sessionInterrupt(EventObject e) { Thread.yield(); // fetch output diagnostics.putString("VM interrupted by user."); script.setPrompt(DEFAULT_CMD_PROMPT); } + @Override public void sessionContinue(EventObject e) { diagnostics.putString("Execution resumed."); script.setPrompt(DEFAULT_CMD_PROMPT); @@ -210,23 +227,28 @@ public class CommandTool extends JPanel { // SpecListener + @Override public void breakpointSet(SpecEvent e) { EventRequestSpec spec = e.getEventRequestSpec(); diagnostics.putString("Breakpoint set at " + spec + "."); } + @Override public void breakpointDeferred(SpecEvent e) { EventRequestSpec spec = e.getEventRequestSpec(); diagnostics.putString("Breakpoint will be set at " + spec + " when its class is loaded."); } + @Override public void breakpointDeleted(SpecEvent e) { EventRequestSpec spec = e.getEventRequestSpec(); diagnostics.putString("Breakpoint at " + spec.toString() + " deleted."); } + @Override public void breakpointResolved(SpecEvent e) { EventRequestSpec spec = e.getEventRequestSpec(); diagnostics.putString("Breakpoint resolved to " + spec.toString() + "."); } + @Override public void breakpointError(SpecErrorEvent e) { EventRequestSpec spec = e.getEventRequestSpec(); diagnostics.putString("Deferred breakpoint at " + @@ -236,25 +258,35 @@ public class CommandTool extends JPanel { //### Add info for watchpoints and exceptions + @Override public void watchpointSet(SpecEvent e) { } + @Override public void watchpointDeferred(SpecEvent e) { } + @Override public void watchpointDeleted(SpecEvent e) { } + @Override public void watchpointResolved(SpecEvent e) { } + @Override public void watchpointError(SpecErrorEvent e) { } + @Override public void exceptionInterceptSet(SpecEvent e) { } + @Override public void exceptionInterceptDeferred(SpecEvent e) { } + @Override public void exceptionInterceptDeleted(SpecEvent e) { } + @Override public void exceptionInterceptResolved(SpecEvent e) { } + @Override public void exceptionInterceptError(SpecErrorEvent e) { } @@ -263,6 +295,7 @@ public class CommandTool extends JPanel { // If the user selects a new current thread or frame, update prompt. + @Override public void currentFrameChanged(CurrentFrameChangedEvent e) { // Update prompt only if affect thread is current. ThreadReference thread = e.getThread(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java index 3765cd76969..2ce04907ab2 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ContextManager.java @@ -46,7 +46,7 @@ public class ContextManager { private boolean verbose; - private Vector<ContextListener> contextListeners = new Vector<ContextListener>(); + private ArrayList<ContextListener> contextListeners = new ArrayList<ContextListener>(); public ContextManager(Environment env) { classManager = env.getClassManager(); @@ -264,11 +264,11 @@ public class ContextManager { private void notifyCurrentFrameChanged(ThreadInfo tinfo, int index, boolean invalidate) { - Vector l = (Vector)contextListeners.clone(); + ArrayList<ContextListener> l = new ArrayList<ContextListener>(contextListeners); CurrentFrameChangedEvent evt = new CurrentFrameChangedEvent(this, tinfo, index, invalidate); for (int i = 0; i < l.size(); i++) { - ((ContextListener)l.elementAt(i)).currentFrameChanged(evt); + l.get(i).currentFrameChanged(evt); } } @@ -277,28 +277,34 @@ public class ContextManager { // SessionListener + @Override public void sessionStart(EventObject e) { invalidateCurrentThread(); } + @Override public void sessionInterrupt(EventObject e) { setCurrentThreadInvalidate(currentThread); } + @Override public void sessionContinue(EventObject e) { invalidateCurrentThread(); } // JDIListener + @Override public void locationTrigger(LocationTriggerEventSet e) { setCurrentThreadInvalidate(e.getThread()); } + @Override public void exception(ExceptionEventSet e) { setCurrentThreadInvalidate(e.getThread()); } + @Override public void vmDisconnect(VMDisconnectEventSet e) { invalidateCurrentThread(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java index 5470d0b8e73..00c827fd3c9 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/CurrentFrameChangedEvent.java @@ -31,6 +31,7 @@ import java.util.EventObject; public class CurrentFrameChangedEvent extends EventObject { + private static final long serialVersionUID = 4214479486546762179L; private ThreadInfo tinfo; private int index; private boolean invalidate; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java index d82c4999721..f9884c7d53d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/Environment.java @@ -26,8 +26,6 @@ package com.sun.tools.example.debug.gui; import java.io.*; -import java.util.*; - import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java index 5744c5b9d0b..1fa88bb28a9 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/GUI.java @@ -26,8 +26,6 @@ package com.sun.tools.example.debug.gui; import java.io.*; -import java.util.*; - import javax.swing.*; import javax.swing.border.*; import java.awt.*; @@ -38,6 +36,7 @@ import com.sun.tools.example.debug.bdi.*; public class GUI extends JPanel { + private static final long serialVersionUID = 3292463234530679091L; private CommandTool cmdTool; private ApplicationTool appTool; //###HACK## @@ -87,7 +86,7 @@ public class GUI extends JPanel { threadTreeTool = new ThreadTreeTool(env); threadTreeTool.setPreferredSize(new java.awt.Dimension(200, 450)); - JTabbedPane treePane = new JTabbedPane(JTabbedPane.BOTTOM); + JTabbedPane treePane = new JTabbedPane(SwingConstants.BOTTOM); treePane.addTab("Source", null, sourceTreeTool); treePane.addTab("Classes", null, classTreeTool); treePane.addTab("Threads", null, threadTreeTool); @@ -139,12 +138,9 @@ public class GUI extends JPanel { } public static void main(String argv[]) { - String remote = null; String clsName = ""; String progArgs = ""; String javaArgs = ""; - boolean verbose = false; //### Not implemented. - final Environment env = new Environment(); JPanel mainPanel = new GUI(env); @@ -246,13 +242,14 @@ public class GUI extends JPanel { frame.setContentPane(mainPanel); frame.addWindowListener(new WindowAdapter() { + @Override public void windowClosing(WindowEvent e) { env.terminate(); } }); frame.pack(); - frame.show(); + frame.setVisible(true); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java index 577f8d8b1f9..3a6f107bbbc 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBFileFilter.java @@ -28,7 +28,6 @@ package com.sun.tools.example.debug.gui; import java.io.File; import java.util.Hashtable; import java.util.Enumeration; -import javax.swing.*; import javax.swing.filechooser.*; //### Renamed from 'ExampleFileFilter.java' provided with Swing demos. @@ -93,8 +92,12 @@ public class JDBFileFilter extends FileFilter { */ public JDBFileFilter(String extension, String description) { this(); - if(extension!=null) addExtension(extension); - if(description!=null) setDescription(description); + if(extension!=null) { + addExtension(extension); + } + if(description!=null) { + setDescription(description); + } } /** @@ -120,11 +123,13 @@ public class JDBFileFilter extends FileFilter { */ public JDBFileFilter(String[] filters, String description) { this(); - for (int i = 0; i < filters.length; i++) { + for (String filter : filters) { // add filters one by one - addExtension(filters[i]); + addExtension(filter); } - if(description!=null) setDescription(description); + if(description!=null) { + setDescription(description); + } } /** @@ -136,6 +141,7 @@ public class JDBFileFilter extends FileFilter { * @see #getExtension * @see FileFilter#accepts */ + @Override public boolean accept(File f) { if(f != null) { if(f.isDirectory()) { @@ -196,6 +202,7 @@ public class JDBFileFilter extends FileFilter { * @see isExtensionListInDescription * @see FileFilter#getDescription */ + @Override public String getDescription() { if(fullDescription == null) { if(description == null || isExtensionListInDescription()) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java index ee8378386b8..c224b57c4f8 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBMenuBar.java @@ -31,7 +31,6 @@ import java.awt.event.*; import java.util.Vector; import java.util.List; -import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; //### This is currently just a placeholder! @@ -57,6 +56,7 @@ class JDBMenuBar extends JMenuBar { JMenuItem openItem = new JMenuItem("Open...", 'O'); openItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { openCommand(); } @@ -93,6 +93,7 @@ class JDBMenuBar extends JMenuBar { JMenuItem monitorItem = new JMenuItem("Monitor Expression...", 'M'); monitorItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { monitorCommand(); } @@ -101,6 +102,7 @@ class JDBMenuBar extends JMenuBar { JMenuItem unmonitorItem = new JMenuItem("Unmonitor Expression..."); unmonitorItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { unmonitorCommand(); } @@ -110,6 +112,7 @@ class JDBMenuBar extends JMenuBar { JMenu breakpointMenu = new JMenu("Breakpoint"); JMenuItem stopItem = new JMenuItem("Stop in...", 'S'); stopItem.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { buildBreakpoint(); } @@ -176,6 +179,7 @@ class JDBMenuBar extends JMenuBar { mi.setToolTipText(toolTip); final String cmd = command; mi.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { interpreter.executeCommand(cmd); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java index f73a12d081d..02982b9f70b 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/JDBToolBar.java @@ -26,10 +26,8 @@ package com.sun.tools.example.debug.gui; import javax.swing.*; -import java.awt.*; import java.awt.event.*; -import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; class JDBToolBar extends JToolBar { @@ -92,6 +90,7 @@ class JDBToolBar extends JToolBar { button.setToolTipText(toolTip); final String cmd = command; button.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { interpreter.executeCommand(cmd); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java index f6456a44960..cb1d77b22fe 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/LaunchTool.java @@ -29,18 +29,10 @@ import java.util.List; import java.util.ArrayList; import java.util.Map; import java.util.HashMap; -import java.util.Iterator; - -import java.io.IOException; - import java.awt.BorderLayout; -import java.awt.Color; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; - import javax.swing.*; import javax.swing.border.Border; import javax.swing.border.TitledBorder; @@ -98,6 +90,7 @@ class LaunchTool { comp.add(panel); } + @Override String getText() { return textField.getText(); } @@ -114,6 +107,7 @@ class LaunchTool { comp.add(panel); } + @Override String getText() { return ((Connector.BooleanArgument)arg) .stringValueOf(check.getModel().isSelected()); @@ -147,6 +141,7 @@ class LaunchTool { final boolean[] oked = {false}; JPanel buttonPanel = okCancel( dialog, new ActionListener() { + @Override public void actionPerformed(ActionEvent event) { if (radioGroup.getSelection() == null) { JOptionPane.showMessageDialog(dialog, @@ -162,7 +157,7 @@ class LaunchTool { } ); content.add(BorderLayout.SOUTH, buttonPanel); dialog.pack(); - dialog.show(); + dialog.setVisible(true); return oked[0] ? modelToConnector.get(radioGroup.getSelection()) : @@ -178,7 +173,7 @@ class LaunchTool { Container content = dialog.getContentPane(); JPanel guts = new JPanel(); Border etched = BorderFactory.createEtchedBorder(); - Border titled = BorderFactory.createTitledBorder(etched, + BorderFactory.createTitledBorder(etched, connector.description(), TitledBorder.LEFT, TitledBorder.TOP); guts.setBorder(etched); @@ -199,6 +194,7 @@ class LaunchTool { content.add(guts); JPanel buttonPanel = okCancel( dialog, new ActionListener() { + @Override public void actionPerformed(ActionEvent event) { for (ArgRep ar : argReps) { if (!ar.isSpecified()) { @@ -236,7 +232,7 @@ class LaunchTool { } ); content.add(BorderLayout.SOUTH, buttonPanel); dialog.pack(); - dialog.show(); + dialog.setVisible(true); } private JPanel okCancel(final JDialog dialog, ActionListener okListener) { @@ -247,6 +243,7 @@ class LaunchTool { buttonPanel.add(cancel); ok.addActionListener(okListener); cancel.addActionListener( new ActionListener() { + @Override public void actionPerformed(ActionEvent event) { dialog.setVisible(false); dialog.dispose(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java index 91c87a4d74c..c46219f4720 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorListModel.java @@ -42,10 +42,12 @@ public class MonitorListModel extends AbstractListModel { //### remove listeners on exit! } + @Override public Object getElementAt(int index) { return monitors.get(index); } + @Override public int getSize() { return monitors.size(); } @@ -70,7 +72,7 @@ public class MonitorListModel extends AbstractListModel { return Collections.unmodifiableList(monitors); } - public Iterator iterator() { + public Iterator<?> iterator() { return monitors().iterator(); } @@ -80,7 +82,8 @@ public class MonitorListModel extends AbstractListModel { private class MonitorListListener implements ContextListener { - public void currentFrameChanged(CurrentFrameChangedEvent e) { + @Override + public void currentFrameChanged(final CurrentFrameChangedEvent e) { invalidate(); } } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java index 21d0fc19bbd..cf7c10c51c2 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/MonitorTool.java @@ -25,15 +25,9 @@ package com.sun.tools.example.debug.gui; -import java.io.*; -import java.util.*; - import javax.swing.*; -import javax.swing.tree.*; import javax.swing.event.*; import java.awt.*; -import java.awt.event.*; - import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; import com.sun.tools.example.debug.expr.ExpressionParser; @@ -41,6 +35,7 @@ import com.sun.tools.example.debug.expr.ParseException; public class MonitorTool extends JPanel { + private static final long serialVersionUID = -645235951031726647L; private ExecutionManager runtime; private ContextManager context; @@ -64,6 +59,7 @@ public class MonitorTool extends JPanel { } private class MonitorToolListener implements ListSelectionListener { + @Override public void valueChanged(ListSelectionEvent e) { int index = list.getSelectedIndex(); if (index != -1) { @@ -78,6 +74,7 @@ public class MonitorTool extends JPanel { IncompatibleThreadStateException { ExpressionParser.GetFrame frameGetter = new ExpressionParser.GetFrame() { + @Override public StackFrame get() throws IncompatibleThreadStateException { @@ -93,6 +90,7 @@ public class MonitorTool extends JPanel { private class MonitorRenderer extends DefaultListCellRenderer { + @Override public Component getListCellRendererComponent(JList list, Object value, int index, diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java index e02b8400276..30905696660 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SearchPath.java @@ -58,8 +58,8 @@ public class SearchPath { } public File resolve(String relativeFileName) { - for (int i = 0; i < pathArray.length; i++) { - File path = new File(pathArray[i], relativeFileName); + for (String element : pathArray) { + File path = new File(element, relativeFileName); if (path.exists()) { return path; } @@ -76,8 +76,8 @@ public class SearchPath { // classpath is retained. This is the one that will be // found if we later do a 'resolve'. SortedSet<String> s = new TreeSet<String>(); // sorted, no duplicates - for (int i = 0; i < pathArray.length; i++) { - File path = new File(pathArray[i], relativeDirName); + for (String element : pathArray) { + File path = new File(element, relativeDirName); if (path.exists()) { String[] childArray = path.list(filter); if (childArray != null) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java index 2d1b2aa07a8..47df28d1168 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SingleLeafTreeSelectionModel.java @@ -25,22 +25,25 @@ package com.sun.tools.example.debug.gui; -import javax.swing.*; import javax.swing.tree.*; public class SingleLeafTreeSelectionModel extends DefaultTreeSelectionModel { + private static final long serialVersionUID = -7849105107888117679L; + SingleLeafTreeSelectionModel() { super(); selectionMode = SINGLE_TREE_SELECTION; } + @Override public void setSelectionPath(TreePath path) { if(((TreeNode)(path.getLastPathComponent())).isLeaf()) { super.setSelectionPath(path); } } + @Override public void setSelectionPaths(TreePath[] paths) { // Only look at first path, as all others will be // ignored anyway in single tree selection mode. @@ -49,12 +52,14 @@ public class SingleLeafTreeSelectionModel extends DefaultTreeSelectionModel { } } + @Override public void addSelectionPath(TreePath path) { if(((TreeNode)(path.getLastPathComponent())).isLeaf()) { super.setSelectionPath(path); } } + @Override public void addSelectionPaths(TreePath[] paths) { // Only look at first path, as all others will be // ignored anyway in single tree selection mode. diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java index 6e8ae7a292e..eda83460e83 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceManager.java @@ -31,7 +31,6 @@ import java.util.*; import com.sun.jdi.*; import com.sun.tools.example.debug.event.*; -import com.sun.tools.example.debug.bdi.*; /** * Manage the list of source files. @@ -45,7 +44,7 @@ public class SourceManager { private List<SourceModel> sourceList; private SearchPath sourcePath; - private Vector<SourceListener> sourceListeners = new Vector<SourceListener>(); + private ArrayList<SourceListener> sourceListeners = new ArrayList<SourceListener>(); private Map<ReferenceType, SourceModel> classToSource = new HashMap<ReferenceType, SourceModel>(); @@ -79,18 +78,18 @@ public class SourceManager { } public void addSourceListener(SourceListener l) { - sourceListeners.addElement(l); + sourceListeners.add(l); } public void removeSourceListener(SourceListener l) { - sourceListeners.removeElement(l); + sourceListeners.remove(l); } private void notifySourcepathChanged() { - Vector l = (Vector)sourceListeners.clone(); + ArrayList<SourceListener> l = new ArrayList<SourceListener>(sourceListeners); SourcepathChangedEvent evt = new SourcepathChangedEvent(this); for (int i = 0; i < l.size(); i++) { - ((SourceListener)l.elementAt(i)).sourcepathChanged(evt); + l.get(i).sourcepathChanged(evt); } } @@ -163,6 +162,7 @@ public class SourceManager { private class SMClassListener extends JDIAdapter implements JDIListener { + @Override public void classPrepare(ClassPrepareEventSet e) { ReferenceType refType = e.getReferenceType(); SourceModel sm = sourceForClass(refType); @@ -171,6 +171,7 @@ public class SourceManager { } } + @Override public void classUnload(ClassUnloadEventSet e) { //### iterate through looking for (e.getTypeName()). //### then remove it. diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java index 4ad47069589..b65be0b5a2d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceModel.java @@ -31,8 +31,6 @@ import java.util.*; import com.sun.jdi.*; import com.sun.jdi.request.*; -import com.sun.tools.example.debug.bdi.*; - import javax.swing.*; /** @@ -101,6 +99,7 @@ public class SourceModel extends AbstractListModel { // **** Implement ListModel ***** + @Override public Object getElementAt(int index) { if (sourceLines == null) { initialize(); @@ -108,6 +107,7 @@ public class SourceModel extends AbstractListModel { return sourceLines.get(index); } + @Override public int getSize() { if (sourceLines == null) { initialize(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java index 0f0c24d83e5..cecbeaf2479 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTool.java @@ -26,8 +26,6 @@ package com.sun.tools.example.debug.gui; import java.io.*; -import java.util.*; - import java.awt.*; import java.awt.event.*; import javax.swing.*; @@ -35,13 +33,12 @@ import javax.swing.*; import com.sun.jdi.*; import com.sun.jdi.request.*; -import com.sun.tools.example.debug.event.*; import com.sun.tools.example.debug.bdi.*; -import java.util.List; - public class SourceTool extends JPanel { + private static final long serialVersionUID = -5461299294186395257L; + private Environment env; private ExecutionManager runtime; @@ -99,6 +96,7 @@ public class SourceTool extends JPanel { // ContextListener + @Override public void currentFrameChanged(CurrentFrameChangedEvent e) { showSourceContext(e.getThread(), e.getIndex()); } @@ -108,6 +106,7 @@ public class SourceTool extends JPanel { // SourceListener + @Override public void sourcepathChanged(SourcepathChangedEvent e) { // Reload source view if its contents depend // on the source path. @@ -120,12 +119,15 @@ public class SourceTool extends JPanel { // SpecListener + @Override public void breakpointSet(SpecEvent e) { breakpointResolved(e); } + @Override public void breakpointDeferred(SpecEvent e) { } + @Override public void breakpointDeleted(SpecEvent e) { BreakpointRequest req = (BreakpointRequest)e.getEventRequest(); Location loc = req.location(); @@ -139,6 +141,7 @@ public class SourceTool extends JPanel { } } + @Override public void breakpointResolved(SpecEvent e) { BreakpointRequest req = (BreakpointRequest)e.getEventRequest(); Location loc = req.location(); @@ -150,29 +153,40 @@ public class SourceTool extends JPanel { } } + @Override public void breakpointError(SpecErrorEvent e) { breakpointDeleted(e); } + @Override public void watchpointSet(SpecEvent e) { } + @Override public void watchpointDeferred(SpecEvent e) { } + @Override public void watchpointDeleted(SpecEvent e) { } + @Override public void watchpointResolved(SpecEvent e) { } + @Override public void watchpointError(SpecErrorEvent e) { } + @Override public void exceptionInterceptSet(SpecEvent e) { } + @Override public void exceptionInterceptDeferred(SpecEvent e) { } + @Override public void exceptionInterceptDeleted(SpecEvent e) { } + @Override public void exceptionInterceptResolved(SpecEvent e) { } + @Override public void exceptionInterceptError(SpecErrorEvent e) { } } @@ -269,6 +283,7 @@ public class SourceTool extends JPanel { private class SourceLineRenderer extends DefaultListCellRenderer { + @Override public Component getListCellRendererComponent(JList list, Object value, int index, @@ -301,6 +316,7 @@ public class SourceTool extends JPanel { return this; } + @Override public Dimension getPreferredSize() { Dimension dim = super.getPreferredSize(); return new Dimension(dim.width, dim.height-5); @@ -309,6 +325,7 @@ public class SourceTool extends JPanel { } private class STMouseListener extends MouseAdapter implements MouseListener { + @Override public void mousePressed(MouseEvent e) { if (e.isPopupTrigger()) { showPopupMenu((Component)e.getSource(), @@ -316,6 +333,7 @@ public class SourceTool extends JPanel { } } + @Override public void mouseReleased(MouseEvent e) { if (e.isPopupTrigger()) { showPopupMenu((Component)e.getSource(), @@ -354,6 +372,7 @@ public class SourceTool extends JPanel { private JMenuItem commandItem(String label, final String cmd) { JMenuItem item = new JMenuItem(label); item.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { interpreter.executeCommand(cmd); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java index e6837e29d5e..5f572c70896 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourceTreeTool.java @@ -30,15 +30,15 @@ import java.util.*; import javax.swing.*; import javax.swing.tree.*; -import javax.swing.event.*; import java.awt.*; import java.awt.event.*; -import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; public class SourceTreeTool extends JPanel { + private static final long serialVersionUID = 3336680912107956419L; + private Environment env; private ExecutionManager runtime; @@ -81,6 +81,7 @@ public class SourceTreeTool extends JPanel { ******/ MouseListener ml = new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { int selRow = tree.getRowForLocation(e.getX(), e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(), e.getY()); @@ -112,6 +113,7 @@ public class SourceTreeTool extends JPanel { private class SourceTreeToolListener implements SourceListener { + @Override public void sourcepathChanged(SourcepathChangedEvent e) { sourcePath = sourceManager.getSourcePath(); root = createDirectoryTree(HEADING); @@ -121,6 +123,7 @@ public class SourceTreeTool extends JPanel { } private static class SourceOrDirectoryFilter implements FilenameFilter { + @Override public boolean accept(File dir, String name) { return (name.endsWith(".java") || new File(dir, name).isDirectory()); @@ -158,6 +161,7 @@ public class SourceTreeTool extends JPanel { this.isDirectory = isDirectory; } + @Override public String toString() { return name; } @@ -195,6 +199,7 @@ public class SourceTreeTool extends JPanel { * Returns the child <code>TreeNode</code> at index * <code>childIndex</code>. */ + @Override public TreeNode getChildAt(int childIndex) { expandIfNeeded(); return children[childIndex]; @@ -204,6 +209,7 @@ public class SourceTreeTool extends JPanel { * Returns the number of children <code>TreeNode</code>s the receiver * contains. */ + @Override public int getChildCount() { expandIfNeeded(); return children.length; @@ -212,6 +218,7 @@ public class SourceTreeTool extends JPanel { /** * Returns the parent <code>TreeNode</code> of the receiver. */ + @Override public TreeNode getParent() { return parent; } @@ -221,18 +228,21 @@ public class SourceTreeTool extends JPanel { * If the receiver does not contain <code>node</code>, -1 will be * returned. */ + @Override public int getIndex(TreeNode node) { expandIfNeeded(); for (int i = 0; i < children.length; i++) { - if (children[i] == node) + if (children[i] == node) { return i; } + } return -1; } /** * Returns true if the receiver allows children. */ + @Override public boolean getAllowsChildren() { return isDirectory; } @@ -240,6 +250,7 @@ public class SourceTreeTool extends JPanel { /** * Returns true if the receiver is a leaf. */ + @Override public boolean isLeaf() { expandIfNeeded(); return !isDirectory; @@ -248,13 +259,16 @@ public class SourceTreeTool extends JPanel { /** * Returns the children of the receiver as an Enumeration. */ + @Override public Enumeration children() { expandIfNeeded(); return new Enumeration() { int i = 0; + @Override public boolean hasMoreElements() { return (i < children.length); } + @Override public Object nextElement() throws NoSuchElementException { if (i >= children.length) { throw new NoSuchElementException(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java index 53b3f0382f2..975571b0dad 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/SourcepathChangedEvent.java @@ -29,6 +29,8 @@ import java.util.EventObject; public class SourcepathChangedEvent extends EventObject { + private static final long serialVersionUID = 8762169481005804121L; + public SourcepathChangedEvent(Object source) { super(source); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java index 8d287557783..1e3b68eabc6 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/StackTraceTool.java @@ -25,21 +25,16 @@ package com.sun.tools.example.debug.gui; -import java.io.*; -import java.util.*; -import java.util.List; // Must import explicitly due to conflict with javax.awt.List - import javax.swing.*; -import javax.swing.tree.*; import javax.swing.event.*; import java.awt.*; -import java.awt.event.*; - import com.sun.jdi.*; import com.sun.tools.example.debug.bdi.*; public class StackTraceTool extends JPanel { + private static final long serialVersionUID = 9140041989427965718L; + private Environment env; private ExecutionManager runtime; @@ -85,6 +80,7 @@ public class StackTraceTool extends JPanel { //### I suspect we handle the case badly that the VM is not interrupted. + @Override public void currentFrameChanged(CurrentFrameChangedEvent e) { // If the current frame of the thread appearing in this // view is changed, move the selection to track it. @@ -103,6 +99,7 @@ public class StackTraceTool extends JPanel { // ListSelectionListener + @Override public void valueChanged(ListSelectionEvent e) { int index = list.getSelectedIndex(); if (index != -1) { @@ -117,6 +114,7 @@ public class StackTraceTool extends JPanel { private class StackFrameRenderer extends DefaultListCellRenderer { + @Override public Component getListCellRendererComponent(JList list, Object value, int index, @@ -174,6 +172,7 @@ public class StackTraceTool extends JPanel { this.tinfo = tinfo; } + @Override public Object getElementAt(int index) { try { return tinfo == null? null : tinfo.getFrame(index); @@ -186,6 +185,7 @@ public class StackTraceTool extends JPanel { } } + @Override public int getSize() { try { return tinfo == null? 1 : tinfo.getFrameCount(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java index 2aefdc309e6..02cf374f027 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/ThreadTreeTool.java @@ -25,13 +25,11 @@ package com.sun.tools.example.debug.gui; -import java.io.*; import java.util.*; import java.util.List; // Must import explicitly due to conflict with javax.awt.List import javax.swing.*; import javax.swing.tree.*; -import javax.swing.event.*; import java.awt.*; import java.awt.event.*; @@ -45,6 +43,8 @@ import com.sun.tools.example.debug.bdi.*; public class ThreadTreeTool extends JPanel { + private static final long serialVersionUID = 4168599992853038878L; + private Environment env; private ExecutionManager runtime; @@ -79,6 +79,7 @@ public class ThreadTreeTool extends JPanel { tree.setSelectionModel(new SingleLeafTreeSelectionModel()); MouseListener ml = new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { int selRow = tree.getRowForLocation(e.getX(), e.getY()); TreePath selPath = tree.getPathForLocation(e.getX(), e.getY()); @@ -131,6 +132,7 @@ public class ThreadTreeTool extends JPanel { // SessionListener + @Override public void sessionStart(EventObject e) { try { for (ThreadReference thread : runtime.allThreads()) { @@ -143,20 +145,25 @@ public class ThreadTreeTool extends JPanel { } } + @Override public void sessionInterrupt(EventObject e) {} + @Override public void sessionContinue(EventObject e) {} // JDIListener + @Override public void threadStart(ThreadStartEventSet e) { root.addThread(e.getThread()); } + @Override public void threadDeath(ThreadDeathEventSet e) { root.removeThread(e.getThread()); } + @Override public void vmDisconnect(VMDisconnectEventSet e) { // Clear the contents of this view. root = createThreadTree(HEADING); @@ -193,6 +200,7 @@ public class ThreadTreeTool extends JPanel { } } + @Override public String toString() { return description; } @@ -213,6 +221,7 @@ public class ThreadTreeTool extends JPanel { return (thread == null); } + @Override public boolean isLeaf() { return !isThreadGroup(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java index 84c3262e25e..c99a4cd9e27 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScript.java @@ -28,10 +28,10 @@ package com.sun.tools.example.debug.gui; import java.awt.*; import java.awt.event.*; import javax.swing.*; -import javax.swing.border.*; public class TypeScript extends JPanel { + private static final long serialVersionUID = -983704841363534885L; private JTextArea history; private JTextField entry; @@ -41,7 +41,6 @@ public class TypeScript extends JPanel { private JScrollBar historyHScrollBar; private boolean echoInput = false; - private boolean nlPending = false; private static String newline = System.getProperty("line.separator"); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java index 6731023760d..bb3cda6921d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptOutputListener.java @@ -25,7 +25,6 @@ package com.sun.tools.example.debug.gui; -import javax.swing.*; import com.sun.tools.example.debug.bdi.OutputListener; public class TypeScriptOutputListener implements OutputListener { @@ -42,10 +41,12 @@ public class TypeScriptOutputListener implements OutputListener { this.appendNewline = appendNewline; } + @Override public void putString(String s) { script.append(s); - if (appendNewline) + if (appendNewline) { script.newline(); } + } } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java index 89ca4c32aac..64b5ec2b443 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/gui/TypeScriptWriter.java @@ -35,14 +35,17 @@ public class TypeScriptWriter extends Writer { this.script = script; } + @Override public void write(char[] cbuf, int off, int len) throws IOException { script.append(String.valueOf(cbuf, off, len)); } + @Override public void flush() { script.flush(); } + @Override public void close() { script.flush(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java index 1eedd7af593..1b83363d171 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AccessWatchpointSpec.java @@ -38,6 +38,7 @@ class AccessWatchpointSpec extends WatchpointSpec { /** * The 'refType' is known to match, return the EventRequest. */ + @Override EventRequest resolveEventRequest(ReferenceType refType) throws NoSuchFieldException { Field field = refType.fieldByName(fieldId); @@ -48,6 +49,7 @@ class AccessWatchpointSpec extends WatchpointSpec { return wp; } + @Override public String toString() { return MessageOutput.format("watch accesses of", new Object [] {refSpec.toString(), diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java index 9975fa54e61..eb210dd4588 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/AmbiguousMethodException.java @@ -27,6 +27,8 @@ package com.sun.tools.example.debug.tty; public class AmbiguousMethodException extends Exception { + private static final long serialVersionUID = -5372629264936918654L; + public AmbiguousMethodException() { super(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java index 1105c9e6d37..ed6c2a10fc5 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/BreakpointSpec.java @@ -30,7 +30,6 @@ import com.sun.jdi.request.*; import java.util.ArrayList; import java.util.List; -import java.util.Iterator; class BreakpointSpec extends EventRequestSpec { String methodId; @@ -58,6 +57,7 @@ class BreakpointSpec extends EventRequestSpec { /** * The 'refType' is known to match, return the EventRequest. */ + @Override EventRequest resolveEventRequest(ReferenceType refType) throws AmbiguousMethodException, AbsentInformationException, @@ -91,12 +91,14 @@ class BreakpointSpec extends EventRequestSpec { return (methodId != null); } + @Override public int hashCode() { return refSpec.hashCode() + lineNumber + ((methodId != null) ? methodId.hashCode() : 0) + ((methodArgs != null) ? methodArgs.hashCode() : 0); } + @Override public boolean equals(Object obj) { if (obj instanceof BreakpointSpec) { BreakpointSpec breakpoint = (BreakpointSpec)obj; @@ -114,6 +116,7 @@ class BreakpointSpec extends EventRequestSpec { } } + @Override String errorMessageFor(Exception e) { if (e instanceof AmbiguousMethodException) { return (MessageOutput.format("Method is overloaded; specify arguments", @@ -140,6 +143,7 @@ class BreakpointSpec extends EventRequestSpec { } } + @Override public String toString() { StringBuffer buffer = new StringBuffer(refSpec.toString()); if (isMethodBreakpoint()) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java index 48436c9cc96..14a88267fe6 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Commands.java @@ -51,6 +51,7 @@ class Commands { final ThreadInfo threadInfo = ThreadInfo.getCurrentThreadInfo(); final int stackFrame = threadInfo == null? 0 : threadInfo.getCurrentFrameIndex(); Thread thread = new Thread("asynchronous jdb command") { + @Override public void run() { try { action(); @@ -95,6 +96,7 @@ class Commands { final ThreadInfo threadInfo = ThreadInfo.getCurrentThreadInfo(); if ((threadInfo != null) && (threadInfo.getCurrentFrame() != null)) { frameGetter = new ExpressionParser.GetFrame() { + @Override public StackFrame get() throws IncompatibleThreadStateException { return threadInfo.getCurrentFrame(); } @@ -224,7 +226,6 @@ class Commands { } void commandClass(StringTokenizer t) { - List<ReferenceType> list = Env.vm().allClasses(); if (!t.hasMoreTokens()) { MessageOutput.println("No class specified."); @@ -709,6 +710,7 @@ class Commands { void doKillThread(final ThreadReference threadToKill, final StringTokenizer tokenizer) { new AsyncExecution() { + @Override void action() { doKill(threadToKill, tokenizer); } @@ -1118,7 +1120,6 @@ class Commands { } void commandStop(StringTokenizer t) { - Location bploc; String atIn; byte suspendPolicy = EventRequest.SUSPEND_ALL; @@ -1665,6 +1666,7 @@ class Commands { void commandPrint(final StringTokenizer t, final boolean dumpObject) { new AsyncExecution() { + @Override void action() { doPrint(t, dumpObject); } @@ -1734,6 +1736,7 @@ class Commands { void commandLock(final StringTokenizer t) { new AsyncExecution() { + @Override void action() { doLock(t); } @@ -1809,6 +1812,7 @@ class Commands { void commandDisableGC(final StringTokenizer t) { new AsyncExecution() { + @Override void action() { doDisableGC(t); } @@ -1837,6 +1841,7 @@ class Commands { void commandEnableGC(final StringTokenizer t) { new AsyncExecution() { + @Override void action() { doEnableGC(t); } @@ -1892,6 +1897,7 @@ class Commands { } } else { new AsyncExecution() { + @Override void action() { doSave(t); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java index b664d094dd6..e39732692cc 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/Env.java @@ -29,7 +29,6 @@ import com.sun.jdi.*; import com.sun.jdi.request.StepRequest; import com.sun.jdi.request.MethodEntryRequest; import com.sun.jdi.request.MethodExitRequest; -import com.sun.tools.jdi.*; import java.util.*; import java.io.*; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java index 0147666d9be..31e5035fe8e 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventHandler.java @@ -27,14 +27,8 @@ package com.sun.tools.example.debug.tty; import com.sun.jdi.*; import com.sun.jdi.event.*; -import com.sun.jdi.request.EventRequestManager; import com.sun.jdi.request.EventRequest; -import java.io.PrintStream; -import java.util.StringTokenizer; -import java.util.Collection; -import java.util.Iterator; - public class EventHandler implements Runnable { EventNotifier notifier; @@ -59,6 +53,7 @@ public class EventHandler implements Runnable { } } + @Override public void run() { EventQueue queue = Env.vm().eventQueue(); while (connected) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java index 47ae8b4667a..5c0177b4548 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpec.java @@ -30,9 +30,7 @@ import com.sun.jdi.request.EventRequest; import com.sun.jdi.request.ExceptionRequest; import com.sun.jdi.request.ClassPrepareRequest; import com.sun.jdi.event.ClassPrepareEvent; -import java.util.List; import java.util.ArrayList; -import java.util.Iterator; abstract class EventRequestSpec { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java index 0816b74a0ce..58dc664f0ed 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/EventRequestSpecList.java @@ -25,15 +25,12 @@ package com.sun.tools.example.debug.tty; -import com.sun.jdi.*; import com.sun.jdi.request.EventRequest; import com.sun.jdi.event.ClassPrepareEvent; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; import java.util.List; -import java.util.StringTokenizer; class EventRequestSpecList { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java index b0075061e3d..f1a3c272724 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ExceptionSpec.java @@ -28,10 +28,6 @@ package com.sun.tools.example.debug.tty; import com.sun.jdi.ReferenceType; import com.sun.jdi.request.*; -import java.util.ArrayList; -import java.util.List; -import java.util.Iterator; - class ExceptionSpec extends EventRequestSpec { private boolean notifyCaught; private boolean notifyUncaught; @@ -51,6 +47,7 @@ class ExceptionSpec extends EventRequestSpec { /** * The 'refType' is known to match, return the EventRequest. */ + @Override EventRequest resolveEventRequest(ReferenceType refType) { EventRequestManager em = refType.virtualMachine().eventRequestManager(); ExceptionRequest excReq = em.createExceptionRequest(refType, @@ -68,6 +65,7 @@ class ExceptionSpec extends EventRequestSpec { return notifyUncaught; } + @Override public int hashCode() { //Reference: Effective Java[tm] (Bloch, 2001), Item 8 int result = 17; @@ -77,6 +75,7 @@ class ExceptionSpec extends EventRequestSpec { return result; } + @Override public boolean equals(Object obj) { if (obj instanceof ExceptionSpec) { ExceptionSpec es = (ExceptionSpec)obj; @@ -90,6 +89,7 @@ class ExceptionSpec extends EventRequestSpec { return false; } + @Override public String toString() { String s; if (notifyCaught && !notifyUncaught) { diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java index 5fb6a0ea5fa..442b798aaae 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/LineNotFoundException.java @@ -27,6 +27,8 @@ package com.sun.tools.example.debug.tty; public class LineNotFoundException extends Exception { + private static final long serialVersionUID = 3748297722519448995L; + public LineNotFoundException() { super(); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java index dacf7aca78a..3f2bf46c627 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/MalformedMemberNameException.java @@ -26,6 +26,8 @@ package com.sun.tools.example.debug.tty; class MalformedMemberNameException extends Exception { + private static final long serialVersionUID = 7759071468833196630L; + public MalformedMemberNameException() { super(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java index 05436c7a614..ee3a63e9694 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ModificationWatchpointSpec.java @@ -38,6 +38,7 @@ class ModificationWatchpointSpec extends WatchpointSpec { /** * The 'refType' is known to match, return the EventRequest. */ + @Override EventRequest resolveEventRequest(ReferenceType refType) throws NoSuchFieldException { Field field = refType.fieldByName(fieldId); @@ -48,6 +49,7 @@ class ModificationWatchpointSpec extends WatchpointSpec { return wp; } + @Override public String toString() { return MessageOutput.format("watch modification of", new Object [] {refSpec.toString(), diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java index b6c01774df4..cc4473cefd8 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/PatternReferenceTypeSpec.java @@ -55,6 +55,7 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { /** * Does the specified ReferenceType match this spec. */ + @Override public boolean matches(ReferenceType refType) { if (classId.startsWith("*")) { return refType.name().endsWith(stem); @@ -65,6 +66,7 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { } } + @Override public ClassPrepareRequest createPrepareRequest() { ClassPrepareRequest request = Env.vm().eventRequestManager().createClassPrepareRequest(); @@ -73,10 +75,12 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { return request; } + @Override public int hashCode() { return classId.hashCode(); } + @Override public boolean equals(Object obj) { if (obj instanceof PatternReferenceTypeSpec) { PatternReferenceTypeSpec spec = (PatternReferenceTypeSpec)obj; @@ -125,6 +129,7 @@ class PatternReferenceTypeSpec implements ReferenceTypeSpec { return true; } + @Override public String toString() { return classId; } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java index 6f085b93d1b..0e76be0cb4c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ReferenceTypeSpec.java @@ -35,7 +35,9 @@ interface ReferenceTypeSpec { boolean matches(ReferenceType refType); ClassPrepareRequest createPrepareRequest(); + @Override int hashCode(); + @Override boolean equals(Object obj); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java index 95f82b53956..941f6c24722 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/SourceMapper.java @@ -27,11 +27,8 @@ package com.sun.tools.example.debug.tty; import com.sun.jdi.Location; import com.sun.jdi.AbsentInformationException; -import java.util.Map; -import java.util.HashMap; import java.util.List; import java.util.ArrayList; -import java.util.Iterator; import java.util.StringTokenizer; import java.io.*; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java index c717b6ca4b7..6514592d67d 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTY.java @@ -47,34 +47,43 @@ public class TTY implements EventNotifier { */ private static final String progname = "jdb"; + @Override public void vmStartEvent(VMStartEvent se) { Thread.yield(); // fetch output MessageOutput.lnprint("VM Started:"); } + @Override public void vmDeathEvent(VMDeathEvent e) { } + @Override public void vmDisconnectEvent(VMDisconnectEvent e) { } + @Override public void threadStartEvent(ThreadStartEvent e) { } + @Override public void threadDeathEvent(ThreadDeathEvent e) { } + @Override public void classPrepareEvent(ClassPrepareEvent e) { } + @Override public void classUnloadEvent(ClassUnloadEvent e) { } + @Override public void breakpointEvent(BreakpointEvent be) { Thread.yield(); // fetch output MessageOutput.lnprint("Breakpoint hit:"); } + @Override public void fieldWatchEvent(WatchpointEvent fwe) { Field field = fwe.field(); ObjectReference obj = fwe.object(); @@ -90,11 +99,13 @@ public class TTY implements EventNotifier { } } + @Override public void stepEvent(StepEvent se) { Thread.yield(); // fetch output MessageOutput.lnprint("Step completed:"); } + @Override public void exceptionEvent(ExceptionEvent ee) { Thread.yield(); // fetch output Location catchLocation = ee.catchLocation(); @@ -108,6 +119,7 @@ public class TTY implements EventNotifier { } } + @Override public void methodEntryEvent(MethodEntryEvent me) { Thread.yield(); // fetch output /* @@ -125,6 +137,7 @@ public class TTY implements EventNotifier { } } + @Override public boolean methodExitEvent(MethodExitEvent me) { Thread.yield(); // fetch output /* @@ -173,6 +186,7 @@ public class TTY implements EventNotifier { return false; } + @Override public void vmInterrupted() { Thread.yield(); // fetch output printCurrentLocation(); @@ -184,6 +198,7 @@ public class TTY implements EventNotifier { MessageOutput.printPrompt(); } + @Override public void receivedEvent(Event event) { } @@ -317,18 +332,19 @@ public class TTY implements EventNotifier { // Adapted for use with String[][0]. int low = 0; int high = commandList.length - 1; - long i = 0; while (low <= high) { int mid = (low + high) >>> 1; String midVal = commandList[mid][0]; int compare = midVal.compareTo(key); - if (compare < 0) + if (compare < 0) { low = mid + 1; - else if (compare > 0) + } else if (compare > 0) { high = mid - 1; - else + } + else { return mid; // key found } + } return -(low + 1); // key not found. }; @@ -336,7 +352,9 @@ public class TTY implements EventNotifier { * Return true if the command is OK when disconnected. */ private boolean isDisconnectCmd(int ii) { - if (ii < 0 || ii >= commandList.length) return false; + if (ii < 0 || ii >= commandList.length) { + return false; + } return (commandList[ii][1].equals("y")); } @@ -344,7 +362,9 @@ public class TTY implements EventNotifier { * Return true if the command is OK when readonly. */ private boolean isReadOnlyCmd(int ii) { - if (ii < 0 || ii >= commandList.length) return false; + if (ii < 0 || ii >= commandList.length) { + return false; + } return (commandList[ii][2].equals("y")); }; diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java index 6193d9ba4c8..f6ba9d74ca7 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources.java @@ -44,6 +44,7 @@ public class TTYResources extends java.util.ListResourceBundle { * * @return the contents of this <code>ResourceBundle</code>. */ + @Override public Object[][] getContents() { Object[][] temp = new Object[][] { // NOTE: The value strings in this file containing "{0}" are diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java index 55441459815..2dcace1c486 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_ja.java @@ -44,6 +44,7 @@ public class TTYResources_ja extends java.util.ListResourceBundle { * * @return the contents of this <code>ResourceBundle</code>. */ + @Override public Object[][] getContents() { Object[][] temp = new Object[][] { // NOTE: The value strings in this file containing "{0}" are diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java index ac948fb9950..dc84bdf4f9c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/TTYResources_zh_CN.java @@ -44,6 +44,7 @@ public class TTYResources_zh_CN extends java.util.ListResourceBundle { * * @return the contents of this <code>ResourceBundle</code>. */ + @Override public Object[][] getContents() { Object[][] temp = new Object[][] { // NOTE: The value strings in this file containing "{0}" are diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java index 1190c33b423..dd3ad08106c 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadGroupIterator.java @@ -26,7 +26,6 @@ package com.sun.tools.example.debug.tty; import com.sun.jdi.ThreadGroupReference; -import com.sun.jdi.ThreadReference; import java.util.List; import java.util.Stack; import java.util.ArrayList; @@ -70,10 +69,12 @@ class ThreadGroupIterator implements Iterator<ThreadGroupReference> { } } + @Override public boolean hasNext() { return !stack.isEmpty(); } + @Override public ThreadGroupReference next() { return nextThreadGroup(); } @@ -84,6 +85,7 @@ class ThreadGroupIterator implements Iterator<ThreadGroupReference> { return tg; } + @Override public void remove() { throw new UnsupportedOperationException(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java index 1432239f648..8ac294fbcaf 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadInfo.java @@ -32,8 +32,6 @@ import com.sun.jdi.StackFrame; import java.util.List; import java.util.ArrayList; import java.util.Collections; -import java.util.Iterator; -import java.io.*; class ThreadInfo { // This is a list of all known ThreadInfo objects. It survives diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java index 58ec98495e0..6acb2ea9d09 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/ThreadIterator.java @@ -46,6 +46,7 @@ class ThreadIterator implements Iterator<ThreadReference> { tgi = new ThreadGroupIterator(); } + @Override public boolean hasNext() { while (it == null || !it.hasNext()) { if (!tgi.hasNext()) { @@ -56,6 +57,7 @@ class ThreadIterator implements Iterator<ThreadReference> { return true; } + @Override public ThreadReference next() { return it.next(); } @@ -64,6 +66,7 @@ class ThreadIterator implements Iterator<ThreadReference> { return next(); } + @Override public void remove() { throw new UnsupportedOperationException(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java index fead3f79788..0b77f9824a2 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMConnection.java @@ -28,7 +28,6 @@ package com.sun.tools.example.debug.tty; import com.sun.jdi.*; import com.sun.jdi.connect.*; import com.sun.jdi.request.EventRequestManager; -import com.sun.jdi.request.ExceptionRequest; import com.sun.jdi.request.ThreadStartRequest; import com.sun.jdi.request.ThreadDeathRequest; @@ -292,6 +291,7 @@ class VMConnection { */ private void displayRemoteOutput(final InputStream stream) { Thread thr = new Thread("output reader") { + @Override public void run() { try { dumpStream(stream); diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java index 448561d04d5..780301ca607 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/VMNotConnectedException.java @@ -27,6 +27,8 @@ package com.sun.tools.example.debug.tty; public class VMNotConnectedException extends RuntimeException { + private static final long serialVersionUID = -7433430494903950165L; + public VMNotConnectedException() { super(); } diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java b/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java index e424c40d62a..6c7da78f485 100644 --- a/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java +++ b/jdk/src/share/classes/com/sun/tools/example/debug/tty/WatchpointSpec.java @@ -25,8 +25,6 @@ package com.sun.tools.example.debug.tty; -import com.sun.jdi.*; - abstract class WatchpointSpec extends EventRequestSpec { final String fieldId; @@ -39,11 +37,13 @@ abstract class WatchpointSpec extends EventRequestSpec { } } + @Override public int hashCode() { return refSpec.hashCode() + fieldId.hashCode() + getClass().hashCode(); } + @Override public boolean equals(Object obj) { if (obj instanceof WatchpointSpec) { WatchpointSpec watchpoint = (WatchpointSpec)obj; @@ -56,6 +56,7 @@ abstract class WatchpointSpec extends EventRequestSpec { } } + @Override String errorMessageFor(Exception e) { if (e instanceof NoSuchFieldException) { return (MessageOutput.format("No field in", diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java b/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java index 7e729a16b07..229a4168989 100644 --- a/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java +++ b/jdk/src/share/classes/com/sun/tools/example/trace/EventThread.java @@ -49,7 +49,8 @@ public class EventThread extends Thread { private boolean vmDied = true; // VMDeath occurred // Maps ThreadReference to ThreadTrace instances - private Map traceMap = new HashMap(); + private Map<ThreadReference, ThreadTrace> traceMap = + new HashMap<>(); EventThread(VirtualMachine vm, String[] excludes, PrintWriter writer) { super("event-handler"); @@ -63,6 +64,7 @@ public class EventThread extends Thread { * As long as we are connected, get event sets off * the queue and dispatch the events within them. */ + @Override public void run() { EventQueue queue = vm.eventQueue(); while (connected) { @@ -208,7 +210,7 @@ public class EventThread extends Thread { * creating one if needed. */ ThreadTrace threadTrace(ThreadReference thread) { - ThreadTrace trace = (ThreadTrace)traceMap.get(thread); + ThreadTrace trace = traceMap.get(thread); if (trace == null) { trace = new ThreadTrace(thread); traceMap.put(thread, trace); @@ -297,7 +299,7 @@ public class EventThread extends Thread { } void threadDeathEvent(ThreadDeathEvent event) { - ThreadTrace trace = (ThreadTrace)traceMap.get(event.thread()); + ThreadTrace trace = traceMap.get(event.thread()); if (trace != null) { // only want threads we care about trace.threadDeathEvent(event); // Forward event } @@ -309,9 +311,8 @@ public class EventThread extends Thread { */ private void classPrepareEvent(ClassPrepareEvent event) { EventRequestManager mgr = vm.eventRequestManager(); - List fields = event.referenceType().visibleFields(); - for (Iterator it = fields.iterator(); it.hasNext(); ) { - Field field = (Field)it.next(); + List<Field> fields = event.referenceType().visibleFields(); + for (Field field : fields) { ModificationWatchpointRequest req = mgr.createModificationWatchpointRequest(field); for (int i=0; i<excludes.length; ++i) { @@ -323,7 +324,7 @@ public class EventThread extends Thread { } private void exceptionEvent(ExceptionEvent event) { - ThreadTrace trace = (ThreadTrace)traceMap.get(event.thread()); + ThreadTrace trace = traceMap.get(event.thread()); if (trace != null) { // only want threads we care about trace.exceptionEvent(event); // Forward event } diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java b/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java index 4b9455f3c31..b6e6e59c917 100644 --- a/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java +++ b/jdk/src/share/classes/com/sun/tools/example/trace/StreamRedirectThread.java @@ -56,6 +56,7 @@ class StreamRedirectThread extends Thread { /** * Copy. */ + @Override public void run() { try { char[] cbuf = new char[BUFFER_SIZE]; diff --git a/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java b/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java index dfc463b12d4..2e1b961dde6 100644 --- a/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java +++ b/jdk/src/share/classes/com/sun/tools/example/trace/Trace.java @@ -31,7 +31,6 @@ import com.sun.jdi.connect.*; import java.util.Map; import java.util.List; -import java.util.Iterator; import java.io.PrintWriter; import java.io.FileWriter; @@ -155,7 +154,8 @@ public class Trace { */ VirtualMachine launchTarget(String mainArgs) { LaunchingConnector connector = findLaunchingConnector(); - Map arguments = connectorArguments(connector, mainArgs); + Map<String, Connector.Argument> arguments = + connectorArguments(connector, mainArgs); try { return connector.launch(arguments); } catch (IOException exc) { @@ -186,10 +186,8 @@ public class Trace { * Find a com.sun.jdi.CommandLineLaunch connector */ LaunchingConnector findLaunchingConnector() { - List connectors = Bootstrap.virtualMachineManager().allConnectors(); - Iterator iter = connectors.iterator(); - while (iter.hasNext()) { - Connector connector = (Connector)iter.next(); + List<Connector> connectors = Bootstrap.virtualMachineManager().allConnectors(); + for (Connector connector : connectors) { if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) { return (LaunchingConnector)connector; } @@ -200,8 +198,8 @@ public class Trace { /** * Return the launching connector's arguments. */ - Map connectorArguments(LaunchingConnector connector, String mainArgs) { - Map arguments = connector.defaultArguments(); + Map<String, Connector.Argument> connectorArguments(LaunchingConnector connector, String mainArgs) { + Map<String, Connector.Argument> arguments = connector.defaultArguments(); Connector.Argument mainArg = (Connector.Argument)arguments.get("main"); if (mainArg == null) { diff --git a/jdk/src/share/demo/jvmti/minst/Minst.java b/jdk/src/share/demo/jvmti/minst/Minst.java index 6e21926f7d8..04504c79f66 100644 --- a/jdk/src/share/demo/jvmti/minst/Minst.java +++ b/jdk/src/share/demo/jvmti/minst/Minst.java @@ -45,7 +45,7 @@ public class Minst { */ public static void method_entry(int cnum, int mnum) { - Class x = Minst.class; + Class<Minst> x = Minst.class; synchronized ( x ) { if ( engaged > 0 ) { engaged = 0; diff --git a/jdk/src/share/demo/management/FullThreadDump/Deadlock.java b/jdk/src/share/demo/management/FullThreadDump/Deadlock.java index 0a92427f3bb..2cc2d3e518d 100644 --- a/jdk/src/share/demo/management/FullThreadDump/Deadlock.java +++ b/jdk/src/share/demo/management/FullThreadDump/Deadlock.java @@ -48,7 +48,7 @@ import java.io.IOException; */ public class Deadlock { public static void main(String[] argv) { - Deadlock dl = new Deadlock(); + new Deadlock(); // Now find deadlock ThreadMonitor monitor = new ThreadMonitor(); @@ -112,6 +112,7 @@ public class Deadlock { this.mon2 = mon2; this.useSync = false; } + @Override public void run() { if (useSync) { syncLock(); diff --git a/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java b/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java index 8b9360c81c7..eb4ed7803d2 100644 --- a/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java +++ b/jdk/src/share/demo/management/FullThreadDump/ThreadMonitor.java @@ -39,7 +39,6 @@ import java.lang.management.LockInfo; import java.lang.management.MonitorInfo; import javax.management.*; import java.io.*; -import java.util.*; /** * Example of using the java.lang.management API to dump stack trace @@ -167,7 +166,8 @@ public class ThreadMonitor { } } - private void printMonitorInfo(ThreadInfo ti, MonitorInfo[] monitors) { + private void printMonitorInfo(ThreadInfo ti) { + MonitorInfo[] monitors = ti.getLockedMonitors(); System.out.println(INDENT + "Locked monitors: count = " + monitors.length); for (MonitorInfo mi : monitors) { System.out.println(INDENT + " - " + mi + " locked at "); @@ -201,6 +201,7 @@ public class ThreadMonitor { ThreadInfo[] infos = tmbean.getThreadInfo(tids, true, true); for (ThreadInfo ti : infos) { printThreadInfo(ti); + printMonitorInfo(ti); printLockInfo(ti.getLockedSynchronizers()); System.out.println(); } diff --git a/jdk/src/share/demo/management/JTop/JTop.java b/jdk/src/share/demo/management/JTop/JTop.java index 3ec7eedbfd1..39f4cab133a 100644 --- a/jdk/src/share/demo/management/JTop/JTop.java +++ b/jdk/src/share/demo/management/JTop/JTop.java @@ -57,7 +57,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Map.Entry; import java.util.Set; import java.util.SortedMap; import java.util.Timer; @@ -69,10 +68,8 @@ import java.net.MalformedURLException; import static java.lang.management.ManagementFactory.*; import java.awt.*; -import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; -import javax.swing.event.*; import javax.swing.table.*; /** @@ -80,6 +77,8 @@ import javax.swing.table.*; * in a table. */ public class JTop extends JPanel { + + private static final long serialVersionUID = -1499762160973870696L; private MBeanServerConnection server; private ThreadMXBean tmbean; private MyTableModel tmodel; @@ -122,29 +121,34 @@ public class JTop extends JPanel { } class MyTableModel extends AbstractTableModel { + private static final long serialVersionUID = -7877310288576779514L; private String[] columnNames = {"ThreadName", "CPU(sec)", "State"}; // List of all threads. The key of each entry is the CPU time // and its value is the ThreadInfo object with no stack trace. private List<Map.Entry<Long, ThreadInfo>> threadList = - Collections.EMPTY_LIST; + Collections.emptyList(); public MyTableModel() { } + @Override public int getColumnCount() { return columnNames.length; } + @Override public int getRowCount() { return threadList.size(); } + @Override public String getColumnName(int col) { return columnNames[col]; } + @Override public Object getValueAt(int row, int col) { Map.Entry<Long, ThreadInfo> me = threadList.get(row); switch (col) { @@ -164,7 +168,8 @@ public class JTop extends JPanel { } } - public Class getColumnClass(int c) { + @Override + public Class<?> getColumnClass(int c) { return getValueAt(0, c).getClass(); } @@ -207,12 +212,14 @@ public class JTop extends JPanel { * Format Double with 4 fraction digits */ class DoubleRenderer extends DefaultTableCellRenderer { + private static final long serialVersionUID = 1704639497162584382L; NumberFormat formatter; public DoubleRenderer() { super(); setHorizontalAlignment(JLabel.RIGHT); } + @Override public void setValue(Object value) { if (formatter==null) { formatter = NumberFormat.getInstance(); @@ -238,12 +245,14 @@ public class JTop extends JPanel { } // Get the current thread info and CPU time + @Override public List<Map.Entry<Long, ThreadInfo>> doInBackground() { return getThreadList(); } // fire table data changed to trigger GUI update // when doInBackground() is finished + @Override protected void done() { try { // Set table model with the new thread list @@ -290,6 +299,7 @@ public class JTop extends JPanel { // A timer task to update GUI per each interval TimerTask timerTask = new TimerTask() { + @Override public void run() { // Schedule the SwingWorker to update the GUI jtop.newSwingWorker().execute(); @@ -299,6 +309,7 @@ public class JTop extends JPanel { // Create the standalone window with JTop panel // by the event dispatcher thread SwingUtilities.invokeAndWait(new Runnable() { + @Override public void run() { createAndShowGUI(jtop); } diff --git a/jdk/src/share/demo/management/JTop/JTopPlugin.java b/jdk/src/share/demo/management/JTop/JTopPlugin.java index 03352f5d90b..9586f9ad48d 100644 --- a/jdk/src/share/demo/management/JTop/JTopPlugin.java +++ b/jdk/src/share/demo/management/JTop/JTopPlugin.java @@ -40,13 +40,13 @@ import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.util.LinkedHashMap; import java.util.Map; -import javax.management.MBeanServerConnection; + import javax.swing.JPanel; import javax.swing.SwingWorker; -import com.sun.tools.jconsole.JConsolePlugin; import com.sun.tools.jconsole.JConsoleContext; import com.sun.tools.jconsole.JConsoleContext.ConnectionState; +import com.sun.tools.jconsole.JConsolePlugin; /** * JTopPlugin is a subclass to com.sun.tools.jconsole.JConsolePlugin @@ -70,6 +70,7 @@ public class JTopPlugin extends JConsolePlugin implements PropertyChangeListener /* * Returns a JTop tab to be added in JConsole. */ + @Override public synchronized Map<String, JPanel> getTabs() { if (tabs == null) { jtop = new JTop(); @@ -86,6 +87,7 @@ public class JTopPlugin extends JConsolePlugin implements PropertyChangeListener /* * Returns a SwingWorker which is responsible for updating the JTop tab. */ + @Override public SwingWorker<?,?> newSwingWorker() { return jtop.newSwingWorker(); } @@ -101,10 +103,10 @@ public class JTopPlugin extends JConsolePlugin implements PropertyChangeListener * Property listener to reset the MBeanServerConnection * at reconnection time. */ + @Override public void propertyChange(PropertyChangeEvent ev) { String prop = ev.getPropertyName(); if (prop == JConsoleContext.CONNECTION_STATE_PROPERTY) { - ConnectionState oldState = (ConnectionState)ev.getOldValue(); ConnectionState newState = (ConnectionState)ev.getNewValue(); // JConsole supports disconnection and reconnection // The MBeanServerConnection will become invalid when diff --git a/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java b/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java index d43c4a7f3dd..676b698f3fb 100644 --- a/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java +++ b/jdk/src/share/demo/management/MemoryMonitor/MemoryMonitor.java @@ -42,9 +42,6 @@ import javax.swing.*; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; import java.lang.management.*; -import java.util.*; - - /** * Demo code which plots the memory usage by all memory pools. * The memory usage is sampled at some time interval using @@ -53,6 +50,7 @@ import java.util.*; */ public class MemoryMonitor extends JPanel { + private static final long serialVersionUID = -3463003810776195761L; static JCheckBox dateStampCB = new JCheckBox("Output Date Stamp"); public Surface surf; JPanel controls; @@ -84,6 +82,7 @@ public class MemoryMonitor extends JPanel { controls.add(dateStampCB); dateStampCB.setFont(font); addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { removeAll(); if ((doControls = !doControls)) { @@ -128,28 +127,32 @@ public class MemoryMonitor extends JPanel { public Surface() { setBackground(Color.black); addMouseListener(new MouseAdapter() { + @Override public void mouseClicked(MouseEvent e) { if (thread == null) start(); else stop(); } }); - int i = 0; usedMem = new float[numPools][]; ptNum = new int[numPools]; } + @Override public Dimension getMinimumSize() { return getPreferredSize(); } + @Override public Dimension getMaximumSize() { return getPreferredSize(); } + @Override public Dimension getPreferredSize() { return new Dimension(135,80); } + @Override public void paint(Graphics g) { if (big == null) { @@ -315,13 +318,14 @@ public class MemoryMonitor extends JPanel { notify(); } + @Override public void run() { Thread me = Thread.currentThread(); while (thread == me && !isShowing() || getSize().width == 0) { try { - thread.sleep(500); + Thread.sleep(500); } catch (InterruptedException e) { return; } } @@ -339,7 +343,7 @@ public class MemoryMonitor extends JPanel { } repaint(); try { - thread.sleep(sleepAmount); + Thread.sleep(sleepAmount); } catch (InterruptedException e) { break; } if (MemoryMonitor.dateStampCB.isSelected()) { System.out.println(new Date().toString() + " " + usedStr); @@ -354,6 +358,7 @@ public class MemoryMonitor extends JPanel { static class Memeater extends ClassLoader implements Runnable { Object y[]; public Memeater() {} + @Override public void run() { y = new Object[10000000]; int k =0; @@ -378,7 +383,7 @@ public class MemoryMonitor extends JPanel { } - Class loadNext() throws ClassNotFoundException { + Class<?> loadNext() throws ClassNotFoundException { // public class TestNNNNNN extends java.lang.Object{ // public TestNNNNNN(); @@ -424,15 +429,15 @@ public class MemoryMonitor extends JPanel { int len = begin.length + value.length + end.length; byte b[] = new byte[len]; - int i, pos=0; - for (i=0; i<begin.length; i++) { - b[pos++] = (byte)begin[i]; + int pos=0; + for (int i: begin) { + b[pos++] = (byte) i; } - for (i=0; i<value.length; i++) { - b[pos++] = value[i]; + for (byte v: value) { + b[pos++] = v; } - for (i=0; i<end.length; i++) { - b[pos++] = (byte)end[i]; + for (int e: end) { + b[pos++] = (byte) e; } return defineClass(name, b, 0, b.length); @@ -445,8 +450,11 @@ public class MemoryMonitor extends JPanel { public static void main(String s[]) { final MemoryMonitor demo = new MemoryMonitor(); WindowListener l = new WindowAdapter() { + @Override public void windowClosing(WindowEvent e) {System.exit(0);} + @Override public void windowDeiconified(WindowEvent e) { demo.surf.start(); } + @Override public void windowIconified(WindowEvent e) { demo.surf.stop(); } }; JFrame f = new JFrame("MemoryMonitor"); diff --git a/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java b/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java index 3f2596f468b..d4485043a27 100644 --- a/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java +++ b/jdk/src/share/demo/management/VerboseGC/PrintGCStat.java @@ -71,12 +71,10 @@ public class PrintGCStat { assert(false); } - Set mbeans = server.queryNames(poolName, null); + Set<ObjectName> mbeans = server.queryNames(poolName, null); if (mbeans != null) { pools = new ArrayList<MemoryPoolMXBean>(); - Iterator iterator = mbeans.iterator(); - while (iterator.hasNext()) { - ObjectName objName = (ObjectName) iterator.next(); + for (ObjectName objName : mbeans) { MemoryPoolMXBean p = newPlatformMXBeanProxy(server, objName.getCanonicalName(), @@ -88,9 +86,7 @@ public class PrintGCStat { mbeans = server.queryNames(gcName, null); if (mbeans != null) { gcmbeans = new ArrayList<GarbageCollectorMXBean>(); - Iterator iterator = mbeans.iterator(); - while (iterator.hasNext()) { - ObjectName objName = (ObjectName) iterator.next(); + for (ObjectName objName : mbeans) { GarbageCollectorMXBean gc = newPlatformMXBeanProxy(server, objName.getCanonicalName(), @@ -116,7 +112,9 @@ public class PrintGCStat { * of all memory pools as well as the GC statistics. */ public void printVerboseGc() { - System.out.print("Uptime: " + formatMillis(rmbean.getUptime())); + System.out.println("Uptime: " + formatMillis(rmbean.getUptime())); + System.out.println("Heap usage: " + mmbean.getHeapMemoryUsage()); + System.out.println("Non-Heap memory usage: " + mmbean.getNonHeapMemoryUsage()); for (GarbageCollectorMXBean gc : gcmbeans) { System.out.print(" [" + gc.getName() + ": "); System.out.print("Count=" + gc.getCollectionCount()); diff --git a/jdk/src/share/demo/management/VerboseGC/VerboseGC.java b/jdk/src/share/demo/management/VerboseGC/VerboseGC.java index 9ba2415e7fb..963389423ba 100644 --- a/jdk/src/share/demo/management/VerboseGC/VerboseGC.java +++ b/jdk/src/share/demo/management/VerboseGC/VerboseGC.java @@ -95,9 +95,8 @@ public class VerboseGC { int port = -1; long interval = 5000; // default is 5 second interval long mins = 5; - for (int argIndex = 0; argIndex < args.length; argIndex++) { - String arg = args[argIndex]; - if (args[argIndex].startsWith("-")) { + for (String arg: args) { + if (arg.startsWith("-")) { if (arg.equals("-h") || arg.equals("-help") || arg.equals("-?")) { diff --git a/jdk/src/share/demo/nio/zipfs/Demo.java b/jdk/src/share/demo/nio/zipfs/Demo.java index dfe77b877ed..394a5f7d013 100644 --- a/jdk/src/share/demo/nio/zipfs/Demo.java +++ b/jdk/src/share/demo/nio/zipfs/Demo.java @@ -42,7 +42,6 @@ import java.util.*; import static java.nio.file.StandardOpenOption.*; import static java.nio.file.StandardCopyOption.*; - /* * ZipFileSystem usage demo * @@ -157,7 +156,6 @@ public class Demo { env.put("create", "true"); try (FileSystem fs = provider.newFileSystem(Paths.get(args[1]), env)) { Path path, src, dst; - boolean isRename = false; switch (action) { case rename: src = fs.getPath(args[2]); @@ -303,6 +301,7 @@ public class Demo { final String fStr = (args.length > 3)?args[3]:""; try (DirectoryStream<Path> ds = Files.newDirectoryStream(path, new DirectoryStream.Filter<Path>() { + @Override public boolean accept(Path path) { return path.toString().contains(fStr); } @@ -358,10 +357,18 @@ public class Demo { return null; } + @SuppressWarnings("unused") + /** + * Not used in demo, but included for demonstrational purposes. + */ private static byte[] getBytes(String name) { return name.getBytes(); } + @SuppressWarnings("unused") + /** + * Not used in demo, but included for demonstrational purposes. + */ private static String getString(byte[] name) { return new String(name); } @@ -534,6 +541,10 @@ public class Demo { Files.createDirectory(path); } + @SuppressWarnings("unused") + /** + * Not used in demo, but included for demonstrational purposes. + */ private static void rmdirs(Path path) throws IOException { while (path != null && path.getNameCount() != 0) { Files.delete(path); @@ -557,7 +568,11 @@ public class Demo { } } - // check the content of two paths are equal + @SuppressWarnings("unused") + /** + * Checks that the content of two paths are equal. + * Not used in demo, but included for demonstrational purposes. + */ private static void checkEqual(Path src, Path dst) throws IOException { //System.out.printf("checking <%s> vs <%s>...%n", diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java index 8ed93f7900e..fa9bf1d5480 100644 --- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java +++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/EditableAtEndDocument.java @@ -38,14 +38,18 @@ import javax.swing.text.*; * document. This is used in ScriptShellPanel class as document for editor. */ public class EditableAtEndDocument extends PlainDocument { + + private static final long serialVersionUID = 5358116444851502167L; private int mark; + @Override public void insertString(int offset, String text, AttributeSet a) throws BadLocationException { int len = getLength(); super.insertString(len, text, a); } + @Override public void remove(int offs, int len) throws BadLocationException { int start = offs; int end = offs + len; diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java index bcc6f77dd5a..6bae2c80f8b 100644 --- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java +++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptJConsolePlugin.java @@ -32,14 +32,10 @@ package com.sun.demo.scripting.jconsole; import com.sun.tools.jconsole.*; -import java.awt.*; -import java.awt.event.*; import java.io.*; -import java.lang.reflect.*; import java.util.concurrent.CountDownLatch; import javax.script.*; import javax.swing.*; -import javax.swing.event.*; import java.util.*; /** @@ -86,6 +82,7 @@ public class ScriptJConsolePlugin extends JConsolePlugin tabs.put("Script Shell", window); new Thread(new Runnable() { + @Override public void run() { // initialize the script engine initScriptEngine(); @@ -103,10 +100,12 @@ public class ScriptJConsolePlugin extends JConsolePlugin window.dispose(); } + @Override public String getPrompt() { return prompt; } + @Override public String executeCommand(String cmd) { String res; try { @@ -176,7 +175,7 @@ public class ScriptJConsolePlugin extends JConsolePlugin String oldFilename = (String) engine.get(ScriptEngine.FILENAME); engine.put(ScriptEngine.FILENAME, "<built-in jconsole." + extension + ">"); try { - Class myClass = this.getClass(); + Class<? extends ScriptJConsolePlugin> myClass = this.getClass(); InputStream stream = myClass.getResourceAsStream("/resources/jconsole." + extension); if (stream != null) { diff --git a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java index b36c679c516..54731af539f 100644 --- a/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java +++ b/jdk/src/share/demo/scripting/jconsole-plugin/src/com/sun/demo/scripting/jconsole/ScriptShellPanel.java @@ -44,8 +44,11 @@ import javax.swing.text.*; * A JPanel subclass containing a scrollable text area displaying the * jconsole's script console. */ + class ScriptShellPanel extends JPanel { + private static final long serialVersionUID = 4116273141148726319L; + // interface to evaluate script command and script prompt interface CommandProcessor { // execute given String as script and return the result @@ -75,9 +78,11 @@ class ScriptShellPanel extends JPanel { add(scroller, BorderLayout.CENTER); editor.getDocument().addDocumentListener(new DocumentListener() { + @Override public void changedUpdate(DocumentEvent e) { } + @Override public void insertUpdate(DocumentEvent e) { if (updating) return; beginUpdate(); @@ -90,10 +95,12 @@ class ScriptShellPanel extends JPanel { // Trim "\\n" combinations final String cmd1 = trimContinuations(cmd); commandExecutor.execute(new Runnable() { + @Override public void run() { final String result = executeCommand(cmd1); SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { if (result != null) { print(result + "\n"); @@ -113,6 +120,7 @@ class ScriptShellPanel extends JPanel { } } + @Override public void removeUpdate(DocumentEvent e) { } }); @@ -121,6 +129,7 @@ class ScriptShellPanel extends JPanel { // the JEditorPane to update the caret's position precisely the // size of the insertion editor.addCaretListener(new CaretListener() { + @Override public void caretUpdate(CaretEvent e) { int len = editor.getDocument().getLength(); if (e.getDot() > len) { @@ -133,6 +142,7 @@ class ScriptShellPanel extends JPanel { hbox.add(Box.createGlue()); JButton button = new JButton("Clear"); // FIXME: i18n? button.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { clear(); } @@ -148,6 +158,7 @@ class ScriptShellPanel extends JPanel { commandExecutor.shutdown(); } + @Override public void requestFocus() { editor.requestFocus(); } From 30bdc40c81916863c217b1675837c1427d755178 Mon Sep 17 00:00:00 2001 From: Joe Darcy <darcy@openjdk.org> Date: Tue, 26 Apr 2011 10:35:06 -0700 Subject: [PATCH 039/147] 7039369: Limit range of strictfp in FloatingDecimal Additional reviews by sergey.kuksenko@oracle.com Reviewed-by: alanb --- jdk/src/share/classes/sun/misc/FloatingDecimal.java | 11 ++++------- .../classes/sun/misc/FormattedFloatingDecimal.java | 11 ++++------- jdk/test/java/lang/Double/ParseDouble.java | 2 +- 3 files changed, 9 insertions(+), 15 deletions(-) diff --git a/jdk/src/share/classes/sun/misc/FloatingDecimal.java b/jdk/src/share/classes/sun/misc/FloatingDecimal.java index 7c621f91a97..1e3a25e84af 100644 --- a/jdk/src/share/classes/sun/misc/FloatingDecimal.java +++ b/jdk/src/share/classes/sun/misc/FloatingDecimal.java @@ -30,7 +30,7 @@ import sun.misc.DoubleConsts; import sun.misc.FloatConsts; import java.util.regex.*; -public strictfp class FloatingDecimal{ +public class FloatingDecimal{ boolean isExceptional; boolean isNegative; int decExponent; @@ -239,8 +239,7 @@ public strictfp class FloatingDecimal{ * More difficult if subtracting and the argument * is a normalized a power of 2, as the ULP changes at these points. */ - private static double - ulp( double dval, boolean subtracting ){ + private static double ulp( double dval, boolean subtracting ){ long lbits = Double.doubleToLongBits( dval ) & ~signMask; int binexp = (int)(lbits >>> expShift); double ulpval; @@ -1251,8 +1250,7 @@ public strictfp class FloatingDecimal{ * for a single-precision float. */ - public double - doubleValue(){ + public strictfp double doubleValue(){ int kDigits = Math.min( nDigits, maxDecimalDigits+1 ); long lValue; double dValue; @@ -1611,8 +1609,7 @@ public strictfp class FloatingDecimal{ * ( because of the preference to a zero low-order bit ). */ - public float - floatValue(){ + public strictfp float floatValue(){ int kDigits = Math.min( nDigits, singleMaxDecimalDigits+1 ); int iValue; float fValue; diff --git a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java index 9d54b098252..0b6dd85051f 100644 --- a/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java +++ b/jdk/src/share/classes/sun/misc/FormattedFloatingDecimal.java @@ -30,7 +30,7 @@ import sun.misc.DoubleConsts; import sun.misc.FloatConsts; import java.util.regex.*; -public strictfp class FormattedFloatingDecimal{ +public class FormattedFloatingDecimal{ boolean isExceptional; boolean isNegative; int decExponent; // value set at construction, then immutable @@ -247,8 +247,7 @@ public strictfp class FormattedFloatingDecimal{ * More difficult if subtracting and the argument * is a normalized a power of 2, as the ULP changes at these points. */ - private static double - ulp( double dval, boolean subtracting ){ + private static double ulp( double dval, boolean subtracting ){ long lbits = Double.doubleToLongBits( dval ) & ~signMask; int binexp = (int)(lbits >>> expShift); double ulpval; @@ -1157,8 +1156,7 @@ public strictfp class FormattedFloatingDecimal{ * for a single-precision float. */ - public double - doubleValue(){ + public strictfp double doubleValue(){ int kDigits = Math.min( nDigits, maxDecimalDigits+1 ); long lValue; double dValue; @@ -1517,8 +1515,7 @@ public strictfp class FormattedFloatingDecimal{ * ( because of the preference to a zero low-order bit ). */ - public float - floatValue(){ + public strictfp float floatValue(){ int kDigits = Math.min( nDigits, singleMaxDecimalDigits+1 ); int iValue; float fValue; diff --git a/jdk/test/java/lang/Double/ParseDouble.java b/jdk/test/java/lang/Double/ParseDouble.java index e67c3d86bea..504f5bc3dc0 100644 --- a/jdk/test/java/lang/Double/ParseDouble.java +++ b/jdk/test/java/lang/Double/ParseDouble.java @@ -23,7 +23,7 @@ /* * @test - * @bug 4160406 4705734 4707389 4826774 4895911 4421494 7021568 + * @bug 4160406 4705734 4707389 4826774 4895911 4421494 7021568 7039369 * @summary Test for Double.parseDouble method and acceptance regex */ From a5e37c937740e4918e1bbe85bd78c8bcc8a52a89 Mon Sep 17 00:00:00 2001 From: Mike Duigou <mduigou@openjdk.org> Date: Tue, 26 Apr 2011 14:25:42 -0700 Subject: [PATCH 040/147] 4884238: Adds java.nio.charset.StandardCharset to provide static final constants for the standard charsets Reviewed-by: alanb, sherman, darcy --- .../classes/java/nio/charset/Charset.java | 4 + .../java/nio/charset/StandardCharset.java | 66 ++++++++++++++ jdk/src/share/classes/java/nio/file/Path.java | 2 +- .../share/classes/java/util/zip/ZipCoder.java | 7 +- .../share/classes/java/util/zip/ZipFile.java | 3 +- .../classes/java/util/zip/ZipInputStream.java | 3 +- .../java/util/zip/ZipOutputStream.java | 3 +- .../share/classes/sun/awt/FontDescriptor.java | 5 +- .../nio/charset/StandardCharset/Standard.java | 91 +++++++++++++++++++ 9 files changed, 175 insertions(+), 9 deletions(-) create mode 100644 jdk/src/share/classes/java/nio/charset/StandardCharset.java create mode 100644 jdk/test/java/nio/charset/StandardCharset/Standard.java diff --git a/jdk/src/share/classes/java/nio/charset/Charset.java b/jdk/src/share/classes/java/nio/charset/Charset.java index 51e21c39b6b..51dbe1504dc 100644 --- a/jdk/src/share/classes/java/nio/charset/Charset.java +++ b/jdk/src/share/classes/java/nio/charset/Charset.java @@ -143,6 +143,8 @@ import sun.security.action.GetPropertyAction; * * <h4>Standard charsets</h4> * + * <a name="standard"> + * * <p> Every implementation of the Java platform is required to support the * following standard charsets. Consult the release documentation for your * implementation to see if any other charsets are supported. The behavior @@ -213,6 +215,8 @@ import sun.security.action.GetPropertyAction; * determined during virtual-machine startup and typically depends upon the * locale and charset being used by the underlying operating system. </p> * + * <p>The {@link StandardCharset} class defines constants for each of the + * standard charsets. * * <h4>Terminology</h4> * diff --git a/jdk/src/share/classes/java/nio/charset/StandardCharset.java b/jdk/src/share/classes/java/nio/charset/StandardCharset.java new file mode 100644 index 00000000000..edec058bc45 --- /dev/null +++ b/jdk/src/share/classes/java/nio/charset/StandardCharset.java @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package java.nio.charset; + +/** + * Constant definitions for the standard {@link Charset Charsets}. These + * charsets are guaranteed to be available on every implementation of the Java + * platform. + * + * @see <a href="Charset#standard">Standard Charsets</a> + * @since 1.7 + */ +public final class StandardCharset { + + private StandardCharset() { + throw new AssertionError("No java.nio.charset.StandardCharset instances for you!"); + } + /** + * Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the + * Unicode character set + */ + public static final Charset US_ASCII = Charset.forName("US-ASCII"); + /** + * ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1 + */ + public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1"); + /** + * Eight-bit UCS Transformation Format + */ + public static final Charset UTF_8 = Charset.forName("UTF-8"); + /** + * Sixteen-bit UCS Transformation Format, big-endian byte order + */ + public static final Charset UTF_16BE = Charset.forName("UTF-16BE"); + /** + * Sixteen-bit UCS Transformation Format, little-endian byte order + */ + public static final Charset UTF_16LE = Charset.forName("UTF-16LE"); + /** + * Sixteen-bit UCS Transformation Format, byte order identified by an + * optional byte-order mark + */ + public static final Charset UTF_16 = Charset.forName("UTF-16"); +} diff --git a/jdk/src/share/classes/java/nio/file/Path.java b/jdk/src/share/classes/java/nio/file/Path.java index ccf0c808d61..2d2e977d49d 100644 --- a/jdk/src/share/classes/java/nio/file/Path.java +++ b/jdk/src/share/classes/java/nio/file/Path.java @@ -72,7 +72,7 @@ import java.util.Iterator; * directory and is UTF-8 encoded. * <pre> * Path path = FileSystems.getDefault().getPath("logs", "access.log"); - * BufferReader reader = Files.newBufferedReader(path, Charset.forName("UTF-8")); + * BufferReader reader = Files.newBufferedReader(path, StandardCharset.UTF_8); * </pre> * * <a name="interop"><h4>Interoperability</h4></a> diff --git a/jdk/src/share/classes/java/util/zip/ZipCoder.java b/jdk/src/share/classes/java/util/zip/ZipCoder.java index 8e30fe5c8d7..a649c7056a3 100644 --- a/jdk/src/share/classes/java/util/zip/ZipCoder.java +++ b/jdk/src/share/classes/java/util/zip/ZipCoder.java @@ -28,6 +28,7 @@ package java.util.zip; import java.nio.ByteBuffer; import java.nio.CharBuffer; import java.nio.charset.Charset; +import java.nio.charset.StandardCharset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; @@ -87,7 +88,7 @@ final class ZipCoder { if (isutf8) return getBytes(s); if (utf8 == null) - utf8 = new ZipCoder(Charset.forName("UTF-8")); + utf8 = new ZipCoder(StandardCharset.UTF_8); return utf8.getBytes(s); } @@ -96,7 +97,7 @@ final class ZipCoder { if (isutf8) return toString(ba, len); if (utf8 == null) - utf8 = new ZipCoder(Charset.forName("UTF-8")); + utf8 = new ZipCoder(StandardCharset.UTF_8); return utf8.toString(ba, len); } @@ -112,7 +113,7 @@ final class ZipCoder { private ZipCoder(Charset cs) { this.cs = cs; - this.isutf8 = cs.name().equals("UTF-8"); + this.isutf8 = cs.name().equals(StandardCharset.UTF_8.name()); } static ZipCoder get(Charset charset) { diff --git a/jdk/src/share/classes/java/util/zip/ZipFile.java b/jdk/src/share/classes/java/util/zip/ZipFile.java index 9cfbe826629..d1861ad732c 100644 --- a/jdk/src/share/classes/java/util/zip/ZipFile.java +++ b/jdk/src/share/classes/java/util/zip/ZipFile.java @@ -31,6 +31,7 @@ import java.io.IOException; import java.io.EOFException; import java.io.File; import java.nio.charset.Charset; +import java.nio.charset.StandardCharset; import java.util.ArrayDeque; import java.util.Deque; import java.util.Enumeration; @@ -140,7 +141,7 @@ class ZipFile implements ZipConstants, Closeable { * @since 1.3 */ public ZipFile(File file, int mode) throws IOException { - this(file, mode, Charset.forName("UTF-8")); + this(file, mode, StandardCharset.UTF_8); } /** diff --git a/jdk/src/share/classes/java/util/zip/ZipInputStream.java b/jdk/src/share/classes/java/util/zip/ZipInputStream.java index 77d353a9a7a..ebfcce146cc 100644 --- a/jdk/src/share/classes/java/util/zip/ZipInputStream.java +++ b/jdk/src/share/classes/java/util/zip/ZipInputStream.java @@ -30,6 +30,7 @@ import java.io.IOException; import java.io.EOFException; import java.io.PushbackInputStream; import java.nio.charset.Charset; +import java.nio.charset.StandardCharset; import static java.util.zip.ZipConstants64.*; /** @@ -75,7 +76,7 @@ class ZipInputStream extends InflaterInputStream implements ZipConstants { * @param in the actual input stream */ public ZipInputStream(InputStream in) { - this(in, Charset.forName("UTF-8")); + this(in, StandardCharset.UTF_8); } /** diff --git a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java index fa7b96d9e1c..c0b59488002 100644 --- a/jdk/src/share/classes/java/util/zip/ZipOutputStream.java +++ b/jdk/src/share/classes/java/util/zip/ZipOutputStream.java @@ -28,6 +28,7 @@ package java.util.zip; import java.io.OutputStream; import java.io.IOException; import java.nio.charset.Charset; +import java.nio.charset.StandardCharset; import java.util.Vector; import java.util.HashSet; import static java.util.zip.ZipConstants64.*; @@ -100,7 +101,7 @@ class ZipOutputStream extends DeflaterOutputStream implements ZipConstants { * @param out the actual output stream */ public ZipOutputStream(OutputStream out) { - this(out, Charset.forName("UTF-8")); + this(out, StandardCharset.UTF_8); } /** diff --git a/jdk/src/share/classes/sun/awt/FontDescriptor.java b/jdk/src/share/classes/sun/awt/FontDescriptor.java index 704fbecb8ee..e98ec65e029 100644 --- a/jdk/src/share/classes/sun/awt/FontDescriptor.java +++ b/jdk/src/share/classes/sun/awt/FontDescriptor.java @@ -26,6 +26,7 @@ package sun.awt; import java.nio.charset.Charset; import java.nio.charset.CharsetEncoder; +import java.nio.charset.StandardCharset; import sun.nio.cs.HistoricallyNamedCharset; public class FontDescriptor implements Cloneable { @@ -104,8 +105,8 @@ public class FontDescriptor implements Cloneable { if (useUnicode && unicodeEncoder == null) { try { this.unicodeEncoder = isLE? - Charset.forName("UTF_16LE").newEncoder(): - Charset.forName("UTF_16BE").newEncoder(); + StandardCharset.UTF_16LE.newEncoder(): + StandardCharset.UTF_16BE.newEncoder(); } catch (IllegalArgumentException x) {} } return useUnicode; diff --git a/jdk/test/java/nio/charset/StandardCharset/Standard.java b/jdk/test/java/nio/charset/StandardCharset/Standard.java new file mode 100644 index 00000000000..a1b71a39c90 --- /dev/null +++ b/jdk/test/java/nio/charset/StandardCharset/Standard.java @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 4884238 + * @summary Test standard charset name constants. + * @author Mike Duigou + * @run main Standard + */ + +import java.nio.charset.*; + +public class Standard { + + public static void realMain(String[] args) { + check(StandardCharset.US_ASCII instanceof Charset); + check(StandardCharset.ISO_8859_1 instanceof Charset); + check(StandardCharset.UTF_8 instanceof Charset); + check(StandardCharset.UTF_16BE instanceof Charset); + check(StandardCharset.UTF_16LE instanceof Charset); + check(StandardCharset.UTF_16 instanceof Charset); + + check("US-ASCII".equals(StandardCharset.US_ASCII.name()); + check("ISO-8859-1".equals(StandardCharset.ISO_8859_1.name()); + check("UTF-8".equals(StandardCharset.UTF_8.name()); + check("UTF-16BE".equals(StandardCharset.UTF_16BE.name()); + check("UTF-16LE".equals(StandardCharset.UTF_16LE.name()); + check("UTF-16".equals(StandardCharset.UTF_16.name()); + } + + //--------------------- Infrastructure --------------------------- + static volatile int passed = 0, failed = 0; + static void pass() { passed++; } + static void fail() { failed++; Thread.dumpStack(); } + static void fail(String msg) { System.out.println(msg); fail(); } + static void unexpected(Throwable t) { failed++; t.printStackTrace(); } + static void check(boolean cond) { if (cond) pass(); else fail(); } + static void equal(Object x, Object y) { + if (x == null ? y == null : x.equals(y)) pass(); + else {System.out.println(x + " not equal to " + y); fail();}} + static void equal2(Object x, Object y) {equal(x, y); equal(y, x);} + public static void main(String[] args) throws Throwable { + try { realMain(args); } catch (Throwable t) { unexpected(t); } + + System.out.printf("%nPassed = %d, failed = %d%n%n", passed, failed); + if (failed > 0) throw new Exception("Some tests failed"); + } + private static abstract class Fun {abstract void f() throws Throwable;} + private static void THROWS(Class<? extends Throwable> k, Fun... fs) { + for (Fun f : fs) + try { f.f(); fail("Expected " + k.getName() + " not thrown"); } + catch (Throwable t) { + if (k.isAssignableFrom(t.getClass())) pass(); + else unexpected(t);}} + static byte[] serializedForm(Object obj) { + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + new ObjectOutputStream(baos).writeObject(obj); + return baos.toByteArray(); + } catch (IOException e) { throw new Error(e); }} + static Object readObject(byte[] bytes) + throws IOException, ClassNotFoundException { + InputStream is = new ByteArrayInputStream(bytes); + return new ObjectInputStream(is).readObject();} + @SuppressWarnings("unchecked") + static <T> T serialClone(T obj) { + try { return (T) readObject(serializedForm(obj)); } + catch (Exception e) { throw new Error(e); }} + +} From c2bdfcee053972c4255c9eb8f6163651d928afa6 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:22:41 -0700 Subject: [PATCH 041/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- langtools/.hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgignore b/langtools/.hgignore index 0092bd4ff5a..83cef213d48 100644 --- a/langtools/.hgignore +++ b/langtools/.hgignore @@ -1,3 +1,4 @@ ^build/ ^dist/ /nbproject/private/ +^.hgtip From bb6082b053d501e89d8113bc8fa677c21e0fdd6a Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:27:40 -0700 Subject: [PATCH 042/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- jdk/.hgignore | 1 + jdk/make/common/Release.gmk | 6 +++++ jdk/make/common/shared/Defs-utils.gmk | 1 + jdk/make/common/shared/Defs.gmk | 38 +++++++++++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/jdk/.hgignore b/jdk/.hgignore index 52a5512a408..67c84657748 100644 --- a/jdk/.hgignore +++ b/jdk/.hgignore @@ -3,3 +3,4 @@ /nbproject/private/ ^make/netbeans/.*/build/ ^make/netbeans/.*/dist/ +^.hgtip diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index ccf566562ec..a97c6487869 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -1118,6 +1118,10 @@ endef MINIMUM_OS_NAME := $(REQUIRED_OS_NAME) MINIMUM_OS_VERSION := $(REQUIRED_OS_VERSION) MINIMUM_OS_ARCH := $(ARCH) +ALL_SOURCE_TIPS = $(shell \ + if [ -f $(SOURCE_TIPS) ] ; then \ + $(CAT) $(SOURCE_TIPS) ; \ + fi) $(JDK_INFO_FILE): FRC $(prep-target) @@ -1125,6 +1129,7 @@ $(JDK_INFO_FILE): FRC $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") + $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") # Create release file to identify this image identify-image-jdk:: $(JDK_INFO_FILE) @@ -1135,6 +1140,7 @@ $(JRE_INFO_FILE): FRC $(call info-file-item, "OS_NAME", "$(MINIMUM_OS_NAME)") $(call info-file-item, "OS_VERSION", "$(MINIMUM_OS_VERSION)") $(call info-file-item, "OS_ARCH", "$(MINIMUM_OS_ARCH)") + $(call info-file-item, "SOURCE", "$(ALL_SOURCE_TIPS)") # Create release file to identify this image identify-image-jre:: $(JRE_INFO_FILE) diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk index 674330146fb..a5b1802c46b 100644 --- a/jdk/make/common/shared/Defs-utils.gmk +++ b/jdk/make/common/shared/Defs-utils.gmk @@ -110,6 +110,7 @@ GDB = $(UTILS_USR_BIN_PATH)gdb GREP = $(UTILS_COMMAND_PATH)grep GUNZIP = $(UTILS_COMMAND_PATH)gunzip HEAD = $(UTILS_USR_BIN_PATH)head +HG = hg ID = $(UTILS_COMMAND_PATH)id ISAINFO = $(UTILS_COMMAND_PATH)isainfo KSH = $(UTILS_COMMAND_PATH)ksh diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index 44767648b88..600421732d0 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -612,6 +612,44 @@ else COPYRIGHT_YEAR = $(shell $(DATE) '+%Y') endif +# Create file with source information +SOURCE_TIPS=$(ABS_OUTPUTDIR)/source_tips + +# The source tips can come from the Mercurial repository, or in the files +# $(HGTIP_FILENAME) which contains the tip but is also positioned in the same +# directory as the original $(HGDIR) directory. +# These should not be := assignments, only used from the root Makefile. +HG_VERSION = $(shell $(HG) version 2> $(DEV_NULL)) +HG_DIRECTORY=.hg +HGTIP_FILENAME=.hgtip +HG_SEARCH = ./REPO ./*/REPO ./*/*/REPO ./*/*/*/REPO +REPO_LIST = $(patsubst ./%,%,$(patsubst %/,%,$(sort $(dir \ + $(shell ( $(LS) -d $(HG_SEARCH:%/REPO=%/$(HG_DIRECTORY)) ; \ + $(LS) $(HG_SEARCH:%/REPO=%/$(HGTIP_FILENAME)) ) \ + 2> $(DEV_NULL)))))) + +# Emit the repo:tip pairs to $@ +define GetSourceTips +for i in $(REPO_LIST) IGNORE ; do \ + if [ "$${i}" = "IGNORE" ] ; then \ + continue; \ + elif [ -d $${i}/$(HG_DIRECTORY) -a "$(HG_VERSION)" != "" ] ; then \ + $(PRINTF) " %s:%s" \ + "$${i}" `$(HG) tip --repository $${i} --template '{node|short}\n'` ; \ + elif [ -f $${i}/$(HGTIP_FILENAME) ] ; then \ + $(PRINTF) " %s:%s" \ + "$${i}" `$(CAT) $${i}/$(HGTIP_FILENAME)` ; \ + fi; \ +done >> $@ +$(PRINTF) "\n" >> $@ +endef + +# Create the HGTIP_FILENAME file +define CreateHgTip +$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME) +$(ECHO) $1/$(HGTIP_FILENAME) +endef + # Get the compiler specific settings (will run the compiler to find out) # NOTE: COMPILER_PATH must be set by this time. # Up until we include this file, we don't know what specific compiler From 5c45b515379778f70fca3088f3d33c1a52c3a703 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:28:05 -0700 Subject: [PATCH 043/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- jaxws/.hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgignore b/jaxws/.hgignore index 32df842b67c..970fc82946b 100644 --- a/jaxws/.hgignore +++ b/jaxws/.hgignore @@ -4,3 +4,4 @@ ^drop_included/ ^webrev/ /nbproject/private/ +^.hgtip From a6c3e8087800a58415b027d3261077aa72e9483b Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:28:22 -0700 Subject: [PATCH 044/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- jaxp/.hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgignore b/jaxp/.hgignore index 32df842b67c..970fc82946b 100644 --- a/jaxp/.hgignore +++ b/jaxp/.hgignore @@ -4,3 +4,4 @@ ^drop_included/ ^webrev/ /nbproject/private/ +^.hgtip From d2dbecb06ba630ec1886f93e0c63225c562b584c Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:29:35 -0700 Subject: [PATCH 045/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- corba/.hgignore | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgignore b/corba/.hgignore index 0092bd4ff5a..83cef213d48 100644 --- a/corba/.hgignore +++ b/corba/.hgignore @@ -1,3 +1,4 @@ ^build/ ^dist/ /nbproject/private/ +^.hgtip From 4231fbb3e6cc58de5fa54e0b085e5e37b4198529 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Tue, 26 Apr 2011 16:30:00 -0700 Subject: [PATCH 046/147] 6631003: Add hg tip changeset to build image Reviewed-by: mduigou --- .hgignore | 1 + Makefile | 10 +++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.hgignore b/.hgignore index 2d339f9988c..8fde2caf08d 100644 --- a/.hgignore +++ b/.hgignore @@ -2,3 +2,4 @@ ^dist/ /nbproject/private/ ^webrev +^.hgtip diff --git a/Makefile b/Makefile index 1d20f79bf83..c8598161cec 100644 --- a/Makefile +++ b/Makefile @@ -97,7 +97,7 @@ define StopTimer endef # Generic build of basic repo series -generic_build_repo_series:: +generic_build_repo_series:: $(SOURCE_TIPS) $(MKDIR) -p $(OUTPUTDIR) $(MKDIR) -p $(OUTPUTDIR)/j2sdk-image @$(call StartTimer) @@ -243,6 +243,14 @@ product_build:: build_product_image debug_build:: build_debug_image fastdebug_build:: build_fastdebug_image +# The source tips are stored with the relative path to the repo. +# This file will be used when constructing the jdk image. +source_tips: $(SOURCE_TIPS) + $(CAT) $< +$(SOURCE_TIPS): FRC + @$(prep-target) + @$(call GetSourceTips) + clobber:: REPORT_BUILD_TIMES= clobber:: $(RM) -r $(OUTPUTDIR)/* From 1037728a0377bb71fe0fc6e96374004c34527271 Mon Sep 17 00:00:00 2001 From: Shinya Ogino <ogino@openjdk.org> Date: Tue, 26 Apr 2011 21:46:20 -0700 Subject: [PATCH 047/147] 7036955: Japanese man pages in linux should be in utf-8 encoding Reviewed-by: ohair, mfang --- jdk/make/common/Defs-linux.gmk | 2 +- jdk/make/common/Release.gmk | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/jdk/make/common/Defs-linux.gmk b/jdk/make/common/Defs-linux.gmk index fcaad70af32..ee2f8ca43a4 100644 --- a/jdk/make/common/Defs-linux.gmk +++ b/jdk/make/common/Defs-linux.gmk @@ -355,7 +355,7 @@ HAVE_DPS = no # Japanese manpages # JA_SOURCE_ENCODING = eucJP -JA_TARGET_ENCODINGS = eucJP +JA_TARGET_ENCODINGS = UTF-8 # Settings for the JDI - Serviceability Agent binding. HOTSPOT_SALIB_PATH = $(HOTSPOT_IMPORT_PATH)/jre/lib/$(LIBARCH) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index 17297d573b0..defc1453018 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -164,7 +164,7 @@ endif # solaris ifeq ($(PLATFORM), linux) MANBASEDIRS=$(JDK_TOPDIR)/src/linux/doc $(IMPORTDOCDIR) MAN1SUBDIR=man - JA_DIRNAME=ja_JP.$(JA_SOURCE_ENCODING) + JA_DIRNAME=ja_JP.UTF-8 endif # linux define copy-man-pages @@ -190,8 +190,7 @@ for manbase in $(MANBASEDIRS:%=%/$(MAN1SUBDIR)) ; do \ done $(java-vm-cleanup) if [ "$(JA_DIRNAME)" != "" ] ; then \ - $(MV) $1/man/ja $1/man/$(JA_DIRNAME); \ - $(CD) $1/man && $(LN) -s $(JA_DIRNAME) ja; \ + $(CD) $1/man && $(RM) ja && $(LN) -s $(JA_DIRNAME) ja; \ fi endef From d21b9aa7bfc5ac29b551a95466d4e8576f9703e2 Mon Sep 17 00:00:00 2001 From: Andrew Brygin <bae@openjdk.org> Date: Wed, 27 Apr 2011 12:15:34 +0400 Subject: [PATCH 048/147] 7037091: sun/java2d/pipe/Test7027667.java test is not executed Reviewed-by: prr --- jdk/test/sun/java2d/pipe/Test7027667.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/test/sun/java2d/pipe/Test7027667.java b/jdk/test/sun/java2d/pipe/Test7027667.java index 08f478f60b1..e30c72c0504 100644 --- a/jdk/test/sun/java2d/pipe/Test7027667.java +++ b/jdk/test/sun/java2d/pipe/Test7027667.java @@ -23,7 +23,7 @@ /** * @test - * @bug 7027667, 7023591 + * @bug 7027667 7023591 7037091 * * @summary Verifies that aa clipped rectangles are drawn, not filled. * From a9a765fdfc0e0db1da7669b03b795acb7475ee84 Mon Sep 17 00:00:00 2001 From: Weijun Wang <weijun@openjdk.org> Date: Wed, 27 Apr 2011 17:11:06 +0800 Subject: [PATCH 049/147] 6950929: Failures on Solaris sparc 64bit sun/security/krb5/auto/BadKdc4.java (and linux?) Reviewed-by: xuelei --- jdk/test/sun/security/krb5/auto/BadKdc.java | 80 +++++++++++++++++++-- 1 file changed, 74 insertions(+), 6 deletions(-) diff --git a/jdk/test/sun/security/krb5/auto/BadKdc.java b/jdk/test/sun/security/krb5/auto/BadKdc.java index 0b175129d1f..55a4d9926f2 100644 --- a/jdk/test/sun/security/krb5/auto/BadKdc.java +++ b/jdk/test/sun/security/krb5/auto/BadKdc.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2009, 2011, 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 @@ -22,8 +22,14 @@ */ import java.io.*; +import java.net.BindException; +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; import java.util.regex.Matcher; import java.util.regex.Pattern; +import javax.security.auth.login.LoginException; +import sun.security.krb5.Asn1Exception; import sun.security.krb5.Config; public class BadKdc { @@ -34,8 +40,51 @@ public class BadKdc { static final Pattern re = Pattern.compile( ">>> KDCCommunication: kdc=kdc.rabbit.hole UDP:(\\d)...., " + "timeout=(\\d)000,"); + + /* + * There are several cases this test fails: + * + * 1. The random selected port is used by another process. No good way to + * prevent this happening, coz krb5.conf must be written before KDC starts. + * There are two different outcomes: + * + * a. Cannot start the KDC. A BindException thrown. + * b. When trying to access a non-existing KDC, a response is received! + * Most likely a Asn1Exception thrown + * + * 2. Even if a KDC is started, and more than 20 seconds pass by, a timeout + * can still happens for the first UDP request. In fact, the KDC did not + * received it at all. This happens on almost all platforms, especially + * solaris-i586 and solaris-x64. + * + * To avoid them: + * + * 1. Catch those exceptions and ignore + * + * 2. a. Make the timeout longer? useless + * b. Read the output carefully, if there is a timeout, it's OK. + * Just make sure the retries times and KDCs are correct. + * This is tough. + * c. Feed the KDC a UDP packet first. The current "solution". + */ public static void go(int[]... expected) throws Exception { + try { + go0(expected); + } catch (BindException be) { + System.out.println("The random port is used by another process"); + } catch (LoginException le) { + Throwable cause = le.getCause(); + if (cause instanceof Asn1Exception) { + System.out.println("Bad packet possibly from another process"); + return; + } + throw le; + } + } + + public static void go0(int[]... expected) + throws Exception { System.setProperty("sun.security.krb5.debug", "true"); // Make sure KDCs' ports starts with 1 and 2 and 3, @@ -78,20 +127,39 @@ public class BadKdc { KDC k = new KDC(OneKDC.REALM, OneKDC.KDCHOST, p, true); k.addPrincipal(OneKDC.USER, OneKDC.PASS); k.addPrincipalRandKey("krbtgt/" + OneKDC.REALM); + // Feed a packet to newly started KDC to warm it up + System.err.println("-------- IGNORE THIS ERROR MESSAGE --------"); + new DatagramSocket().send( + new DatagramPacket("Hello".getBytes(), 5, + InetAddress.getByName(OneKDC.KDCHOST), p)); return k; } + private static void test(int... expected) throws Exception { + ByteArrayOutputStream bo = new ByteArrayOutputStream(); + try { + test0(bo, expected); + } catch (Exception e) { + System.out.println("----------------- ERROR -----------------"); + System.out.println(new String(bo.toByteArray())); + System.out.println("--------------- ERROR END ---------------"); + throw e; + } + } + /** * One round of test for max_retries and timeout. - * @param timeout the expected timeout * @param expected the expected kdc# timeout kdc# timeout... */ - private static void test(int... expected) throws Exception { - ByteArrayOutputStream bo = new ByteArrayOutputStream(); + private static void test0(ByteArrayOutputStream bo, int... expected) + throws Exception { PrintStream oldout = System.out; System.setOut(new PrintStream(bo)); - Context c = Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); - System.setOut(oldout); + try { + Context.fromUserPass(OneKDC.USER, OneKDC.PASS, false); + } finally { + System.setOut(oldout); + } String[] lines = new String(bo.toByteArray()).split("\n"); System.out.println("----------------- TEST -----------------"); From aa161ffe8d9b643893b13bed12468f399f71e66d Mon Sep 17 00:00:00 2001 From: Pavel Porvatov <rupashka@openjdk.org> Date: Wed, 27 Apr 2011 13:43:22 +0400 Subject: [PATCH 050/147] 7039403: Could not compile test/javax/swing/JLabel/6596966/bug6596966.java Reviewed-by: malenkov --- jdk/test/javax/swing/JLabel/6596966/bug6596966.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/jdk/test/javax/swing/JLabel/6596966/bug6596966.java b/jdk/test/javax/swing/JLabel/6596966/bug6596966.java index 5cf0110f700..5e94459bcb7 100644 --- a/jdk/test/javax/swing/JLabel/6596966/bug6596966.java +++ b/jdk/test/javax/swing/JLabel/6596966/bug6596966.java @@ -24,13 +24,13 @@ /* @test @bug 6596966 @summary Some JFileChooser mnemonics do not work with sticky keys - * @library ../../regtesthelpers - * @build Util @run main bug6596966 @author Pavel Porvatov */ +import sun.awt.SunToolkit; + import javax.swing.*; import java.awt.*; import java.awt.event.KeyEvent; @@ -44,6 +44,7 @@ public class bug6596966 { public static void main(String[] args) throws Exception { Robot robot = new Robot(); + SunToolkit toolkit = (SunToolkit) SunToolkit.getDefaultToolkit(); SwingUtilities.invokeAndWait(new Runnable() { public void run() { @@ -68,17 +69,17 @@ public class bug6596966 { } }); - Util.blockTillDisplayed(frame); + toolkit.realSync(); robot.keyPress(KeyEvent.VK_ALT); robot.keyPress(KeyEvent.VK_L); - robot.waitForIdle(); + toolkit.realSync(); - Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(new KeyEvent(label, KeyEvent.KEY_RELEASED, + toolkit.getSystemEventQueue().postEvent(new KeyEvent(label, KeyEvent.KEY_RELEASED, EventQueue.getMostRecentEventTime(), 0, KeyEvent.VK_L, 'L')); - robot.waitForIdle(); + toolkit.realSync(); try { SwingUtilities.invokeAndWait(new Runnable() { From f5afc05e608009a6805b59072f44a983c1b81350 Mon Sep 17 00:00:00 2001 From: Denis Fokin <denis@openjdk.org> Date: Wed, 27 Apr 2011 14:58:40 +0400 Subject: [PATCH 051/147] 7020922: java.awt.Toolkit.getPropertyChangeListeners() should mention that it returns proxies Reviewed-by: malenkov --- jdk/src/share/classes/java/awt/Toolkit.java | 40 ++++++++++++++------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/jdk/src/share/classes/java/awt/Toolkit.java b/jdk/src/share/classes/java/awt/Toolkit.java index 58a4ddc7b4f..6e00e6afdbf 100644 --- a/jdk/src/share/classes/java/awt/Toolkit.java +++ b/jdk/src/share/classes/java/awt/Toolkit.java @@ -1870,11 +1870,15 @@ public abstract class Toolkit { /** * Adds the specified property change listener for the named desktop - * property. - * If pcl is null, no exception is thrown and no action is performed. + * property. When a {@link PropertyChangeListenerProxy} object is added, + * its property name is ignored, and the wrapped listener is added. + * If {@code name} is {@code null} or {@code pcl} is {@code null}, + * no exception is thrown and no action is performed. * * @param name The name of the property to listen for * @param pcl The property change listener + * @see PropertyChangeSupport#addPropertyChangeListener(String, + PropertyChangeListener) * @since 1.2 */ public void addPropertyChangeListener(String name, PropertyChangeListener pcl) { @@ -1883,11 +1887,16 @@ public abstract class Toolkit { /** * Removes the specified property change listener for the named - * desktop property. - * If pcl is null, no exception is thrown and no action is performed. + * desktop property. When a {@link PropertyChangeListenerProxy} object + * is removed, its property name is ignored, and + * the wrapped listener is removed. + * If {@code name} is {@code null} or {@code pcl} is {@code null}, + * no exception is thrown and no action is performed. * * @param name The name of the property to remove * @param pcl The property change listener + * @see PropertyChangeSupport#removePropertyChangeListener(String, + PropertyChangeListener) * @since 1.2 */ public void removePropertyChangeListener(String name, PropertyChangeListener pcl) { @@ -1896,12 +1905,15 @@ public abstract class Toolkit { /** * Returns an array of all the property change listeners - * registered on this toolkit. + * registered on this toolkit. The returned array + * contains {@code PropertyChangeListenerProxy} objects + * that associate listeners with the names of desktop properties. * - * @return all of this toolkit's <code>PropertyChangeListener</code>s - * or an empty array if no property change - * listeners are currently registered + * @return all of this toolkit's {@ code PropertyChangeListener} + * objects wrapped in {@code PropertyChangeListenerProxy} objects + * or an empty array if no listeners are added * + * @see PropertyChangeSupport#getPropertyChangeListeners() * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners() { @@ -1909,13 +1921,15 @@ public abstract class Toolkit { } /** - * Returns an array of all the <code>PropertyChangeListener</code>s - * associated with the named property. + * Returns an array of all property change listeners + * associated with the specified name of a desktop property. * * @param propertyName the named property - * @return all of the <code>PropertyChangeListener</code>s associated with - * the named property or an empty array if no such listeners have - * been added + * @return all of the {@code PropertyChangeListener} objects + * associated with the specified name of a desktop property + * or an empty array if no such listeners are added + * + * @see PropertyChangeSupport#getPropertyChangeListeners(String) * @since 1.4 */ public PropertyChangeListener[] getPropertyChangeListeners(String propertyName) { From 57f34d2482bcdc2c4636cc64b5072af3e03e930f Mon Sep 17 00:00:00 2001 From: Oleg Pekhovskiy <bagiras@openjdk.org> Date: Wed, 27 Apr 2011 15:26:38 +0400 Subject: [PATCH 052/147] 7035209: 6u26 ea b01 - running an applet with old plugin crashes in awt.dll Reviewed-by: art, amenkov --- jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp b/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp index a7da3f3b38c..a563c78802b 100644 --- a/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp +++ b/jdk/src/windows/native/sun/java2d/d3d/D3DPipelineManager.cpp @@ -187,6 +187,7 @@ void D3DPipelineManager::NotifyAdapterEventListeners(UINT adapter, } JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); + RETURN_IF_NULL(env); pMgr = D3DPipelineManager::GetInstance(); RETURN_IF_NULL(pMgr); From bbadc1bb04c299aa5a6a7d94f615069c532b0a41 Mon Sep 17 00:00:00 2001 From: Alan Bateman <alanb@openjdk.org> Date: Wed, 27 Apr 2011 13:46:22 +0100 Subject: [PATCH 053/147] 7039186: (ch) EPoll based asynchronous I/O implementation should be portable to linux-arm and linux-ppc Reviewed-by: dholmes --- jdk/make/java/nio/mapfile-linux | 2 - jdk/src/solaris/classes/sun/nio/ch/EPoll.java | 3 - .../classes/sun/nio/fs/LinuxWatchService.java | 3 - jdk/src/solaris/native/sun/nio/ch/EPoll.c | 56 ++----------------- .../native/sun/nio/fs/LinuxWatchService.c | 50 ++--------------- 5 files changed, 8 insertions(+), 106 deletions(-) diff --git a/jdk/make/java/nio/mapfile-linux b/jdk/make/java/nio/mapfile-linux index 7af5388de96..d72244170b9 100644 --- a/jdk/make/java/nio/mapfile-linux +++ b/jdk/make/java/nio/mapfile-linux @@ -44,7 +44,6 @@ SUNWprivate_1.1 { Java_sun_nio_ch_EPollArrayWrapper_interrupt; Java_sun_nio_ch_EPollArrayWrapper_offsetofData; Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent; - Java_sun_nio_ch_EPoll_init; Java_sun_nio_ch_EPoll_eventSize; Java_sun_nio_ch_EPoll_eventsOffset; Java_sun_nio_ch_EPoll_dataOffset; @@ -129,7 +128,6 @@ SUNWprivate_1.1 { Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio; Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs; Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs; - Java_sun_nio_fs_LinuxWatchService_init; Java_sun_nio_fs_LinuxWatchService_eventSize; Java_sun_nio_fs_LinuxWatchService_eventOffsets; Java_sun_nio_fs_LinuxWatchService_inotifyInit; diff --git a/jdk/src/solaris/classes/sun/nio/ch/EPoll.java b/jdk/src/solaris/classes/sun/nio/ch/EPoll.java index 8af24f8c793..78bc83c8549 100644 --- a/jdk/src/solaris/classes/sun/nio/ch/EPoll.java +++ b/jdk/src/solaris/classes/sun/nio/ch/EPoll.java @@ -99,8 +99,6 @@ class EPoll { // -- Native methods -- - private static native void init(); - private static native int eventSize(); private static native int eventsOffset(); @@ -116,6 +114,5 @@ class EPoll { static { Util.load(); - init(); } } diff --git a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java index 31d3bf0770f..5726fe317ab 100644 --- a/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java +++ b/jdk/src/solaris/classes/sun/nio/fs/LinuxWatchService.java @@ -432,8 +432,6 @@ class LinuxWatchService // -- native methods -- - private static native void init(); - // sizeof inotify_event private static native int eventSize(); @@ -461,6 +459,5 @@ class LinuxWatchService System.loadLibrary("nio"); return null; }}); - init(); } } diff --git a/jdk/src/solaris/native/sun/nio/ch/EPoll.c b/jdk/src/solaris/native/sun/nio/ch/EPoll.c index 43efe372ad0..667270491c4 100644 --- a/jdk/src/solaris/native/sun/nio/ch/EPoll.c +++ b/jdk/src/solaris/native/sun/nio/ch/EPoll.c @@ -34,55 +34,7 @@ #include <dlfcn.h> #include <unistd.h> #include <sys/types.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* epoll_wait(2) man page */ - -typedef union epoll_data { - void *ptr; - int fd; - __uint32_t u32; - __uint64_t u64; -} epoll_data_t; - -struct epoll_event { - __uint32_t events; /* Epoll events */ - epoll_data_t data; /* User data variable */ -} __attribute__ ((__packed__)); - -#ifdef __cplusplus -} -#endif - -/* - * epoll event notification is new in 2.6 kernel. As the offical build - * platform for the JDK is on a 2.4-based distribution then we must - * obtain the addresses of the epoll functions dynamically. - */ -typedef int (*epoll_create_t)(int size); -typedef int (*epoll_ctl_t) (int epfd, int op, int fd, struct epoll_event *event); -typedef int (*epoll_wait_t) (int epfd, struct epoll_event *events, int maxevents, int timeout); - -static epoll_create_t epoll_create_func; -static epoll_ctl_t epoll_ctl_func; -static epoll_wait_t epoll_wait_func; - - -JNIEXPORT void JNICALL -Java_sun_nio_ch_EPoll_init(JNIEnv *env, jclass this) -{ - epoll_create_func = (epoll_create_t) dlsym(RTLD_DEFAULT, "epoll_create"); - epoll_ctl_func = (epoll_ctl_t) dlsym(RTLD_DEFAULT, "epoll_ctl"); - epoll_wait_func = (epoll_wait_t) dlsym(RTLD_DEFAULT, "epoll_wait"); - - if ((epoll_create_func == NULL) || (epoll_ctl_func == NULL) || - (epoll_wait_func == NULL)) { - JNU_ThrowInternalError(env, "unable to get address of epoll functions, pre-2.6 kernel?"); - } -} +#include <sys/epoll.h> JNIEXPORT jint JNICALL Java_sun_nio_ch_EPoll_eventSize(JNIEnv* env, jclass this) @@ -108,7 +60,7 @@ Java_sun_nio_ch_EPoll_epollCreate(JNIEnv *env, jclass c) { * epoll_create expects a size as a hint to the kernel about how to * dimension internal structures. We can't predict the size in advance. */ - int epfd = (*epoll_create_func)(256); + int epfd = epoll_create(256); if (epfd < 0) { JNU_ThrowIOExceptionWithLastError(env, "epoll_create failed"); } @@ -125,7 +77,7 @@ Java_sun_nio_ch_EPoll_epollCtl(JNIEnv *env, jclass c, jint epfd, event.events = events; event.data.fd = fd; - RESTARTABLE((*epoll_ctl_func)(epfd, (int)opcode, (int)fd, &event), res); + RESTARTABLE(epoll_ctl(epfd, (int)opcode, (int)fd, &event), res); return (res == 0) ? 0 : errno; } @@ -137,7 +89,7 @@ Java_sun_nio_ch_EPoll_epollWait(JNIEnv *env, jclass c, struct epoll_event *events = jlong_to_ptr(address); int res; - RESTARTABLE((*epoll_wait_func)(epfd, events, numfds, -1), res); + RESTARTABLE(epoll_wait(epfd, events, numfds, -1), res); if (res < 0) { JNU_ThrowIOExceptionWithLastError(env, "epoll_wait failed"); } diff --git a/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c b/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c index 0b48180cd70..ca4ce5e6f62 100644 --- a/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c +++ b/jdk/src/solaris/native/sun/nio/fs/LinuxWatchService.c @@ -33,33 +33,10 @@ #include <sys/types.h> #include <sys/socket.h> #include <sys/poll.h> +#include <sys/inotify.h> #include "sun_nio_fs_LinuxWatchService.h" -/* inotify.h may not be available at build time */ -#ifdef __cplusplus -extern "C" { -#endif -struct inotify_event -{ - int wd; - uint32_t mask; - uint32_t cookie; - uint32_t len; - char name __flexarr; -}; -#ifdef __cplusplus -} -#endif - -typedef int inotify_init_func(void); -typedef int inotify_add_watch_func(int fd, const char* path, uint32_t mask); -typedef int inotify_rm_watch_func(int fd, uint32_t wd); - -inotify_init_func* my_inotify_init_func = NULL; -inotify_add_watch_func* my_inotify_add_watch_func = NULL; -inotify_rm_watch_func* my_inotify_rm_watch_func = NULL; - static void throwUnixException(JNIEnv* env, int errnum) { jobject x = JNU_NewObjectByName(env, "sun/nio/fs/UnixException", "(I)V", errnum); @@ -68,22 +45,6 @@ static void throwUnixException(JNIEnv* env, int errnum) { } } -JNIEXPORT void JNICALL -Java_sun_nio_fs_LinuxWatchService_init(JNIEnv *env, jclass clazz) -{ - my_inotify_init_func = (inotify_init_func*) - dlsym(RTLD_DEFAULT, "inotify_init"); - my_inotify_add_watch_func = - (inotify_add_watch_func*) dlsym(RTLD_DEFAULT, "inotify_add_watch"); - my_inotify_rm_watch_func = - (inotify_rm_watch_func*) dlsym(RTLD_DEFAULT, "inotify_rm_watch"); - - if ((my_inotify_init_func == NULL) || (my_inotify_add_watch_func == NULL) || - (my_inotify_rm_watch_func == NULL)) { - JNU_ThrowInternalError(env, "unable to get address of inotify functions"); - } -} - JNIEXPORT jint JNICALL Java_sun_nio_fs_LinuxWatchService_eventSize(JNIEnv *env, jclass clazz) { @@ -111,7 +72,7 @@ JNIEXPORT jint JNICALL Java_sun_nio_fs_LinuxWatchService_inotifyInit (JNIEnv* env, jclass clazz) { - int ifd = (*my_inotify_init_func)(); + int ifd = inotify_init(); if (ifd == -1) { throwUnixException(env, errno); } @@ -125,7 +86,7 @@ Java_sun_nio_fs_LinuxWatchService_inotifyAddWatch int wfd = -1; const char* path = (const char*)jlong_to_ptr(address); - wfd = (*my_inotify_add_watch_func)((int)fd, path, mask); + wfd = inotify_add_watch((int)fd, path, mask); if (wfd == -1) { throwUnixException(env, errno); } @@ -136,7 +97,7 @@ JNIEXPORT void JNICALL Java_sun_nio_fs_LinuxWatchService_inotifyRmWatch (JNIEnv* env, jclass clazz, jint fd, jint wd) { - int err = (*my_inotify_rm_watch_func)((int)fd, (int)wd); + int err = inotify_rm_watch((int)fd, (int)wd); if (err == -1) throwUnixException(env, errno); } @@ -166,7 +127,6 @@ Java_sun_nio_fs_LinuxWatchService_socketpair res[1] = (jint)sp[1]; (*env)->SetIntArrayRegion(env, sv, 0, 2, &res[0]); } - } JNIEXPORT jint JNICALL @@ -190,6 +150,4 @@ Java_sun_nio_fs_LinuxWatchService_poll } } return (jint)n; - - } From ed12b2ab1870adf1e80c6c9d03b6ce77f29b2f4d Mon Sep 17 00:00:00 2001 From: Denis Fokin <denis@openjdk.org> Date: Wed, 27 Apr 2011 17:18:38 +0400 Subject: [PATCH 054/147] 6998716: client vm crashes making browser fails to respond under some scenarios Reviewed-by: art, denis, uta --- .../windows/native/sun/windows/ObjectList.cpp | 7 +++-- .../windows/native/sun/windows/ObjectList.h | 2 +- .../native/sun/windows/awt_Component.cpp | 7 ++--- .../native/sun/windows/awt_MenuItem.cpp | 3 +-- .../windows/native/sun/windows/awt_Object.cpp | 19 +++++++++----- .../windows/native/sun/windows/awt_Object.h | 4 +++ .../windows/native/sun/windows/awt_Robot.cpp | 3 +-- .../native/sun/windows/awt_Toolkit.cpp | 26 +++++++++++++++---- .../native/sun/windows/awt_TrayIcon.cpp | 3 +-- jdk/src/windows/native/sun/windows/awtmsg.h | 1 + 10 files changed, 51 insertions(+), 24 deletions(-) diff --git a/jdk/src/windows/native/sun/windows/ObjectList.cpp b/jdk/src/windows/native/sun/windows/ObjectList.cpp index b0614e6b97f..601c42ce2e3 100644 --- a/jdk/src/windows/native/sun/windows/ObjectList.cpp +++ b/jdk/src/windows/native/sun/windows/ObjectList.cpp @@ -48,7 +48,7 @@ void AwtObjectList::Add(AwtObject* obj) m_head = item; } -void AwtObjectList::Remove(AwtObject* obj) +BOOL AwtObjectList::Remove(AwtObject* obj) { CriticalSection::Lock l(m_lock); @@ -64,11 +64,14 @@ void AwtObjectList::Remove(AwtObject* obj) } DASSERT(item != NULL); delete item; - return; + return TRUE; } lastItem = item; item = item->next; } + + return FALSE; + // DASSERT(FALSE); // should never get here... // even if it does it shouldn't be fatal. } diff --git a/jdk/src/windows/native/sun/windows/ObjectList.h b/jdk/src/windows/native/sun/windows/ObjectList.h index 9775d0c9f1e..1e80732ca39 100644 --- a/jdk/src/windows/native/sun/windows/ObjectList.h +++ b/jdk/src/windows/native/sun/windows/ObjectList.h @@ -46,7 +46,7 @@ public: AwtObjectList(); void Add(AwtObject* obj); - void Remove(AwtObject* obj); + BOOL Remove(AwtObject* obj); #ifdef DEBUG /* Used for sanity checks only. */ AwtObject* LookUp(AwtObject* obj); diff --git a/jdk/src/windows/native/sun/windows/awt_Component.cpp b/jdk/src/windows/native/sun/windows/awt_Component.cpp index fd75b8d52ee..592a9b434b2 100644 --- a/jdk/src/windows/native/sun/windows/awt_Component.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp @@ -1969,7 +1969,9 @@ MsgRouting AwtComponent::WmDestroy() { // fix for 6259348: we should enter the SyncCall critical section before // disposing the native object, that is value 1 of lParam is intended for - AwtToolkit::GetInstance().SendMessage(WM_AWT_DISPOSE, (WPARAM)this, (LPARAM)1); + if(m_peerObject != NULL) { // is not being terminating + AwtToolkit::GetInstance().SendMessage(WM_AWT_DISPOSE, (WPARAM)m_peerObject, (LPARAM)1); + } return mrConsume; } @@ -6534,8 +6536,7 @@ Java_sun_awt_windows_WComponentPeer__1dispose(JNIEnv *env, jobject self) { TRY_NO_HANG; - PDATA pData = JNI_GET_PDATA(self); - AwtObject::_Dispose(pData); + AwtObject::_Dispose(self); CATCH_BAD_ALLOC; } diff --git a/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp index aeb1021262a..97f3e2a7a21 100644 --- a/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp +++ b/jdk/src/windows/native/sun/windows/awt_MenuItem.cpp @@ -974,8 +974,7 @@ Java_sun_awt_windows_WMenuItemPeer__1dispose(JNIEnv *env, jobject self) { TRY_NO_HANG; - PDATA pData = JNI_GET_PDATA(self); - AwtObject::_Dispose(pData); + AwtObject::_Dispose(self); CATCH_BAD_ALLOC; } diff --git a/jdk/src/windows/native/sun/windows/awt_Object.cpp b/jdk/src/windows/native/sun/windows/awt_Object.cpp index b7afe1aa510..54ec69a9a19 100644 --- a/jdk/src/windows/native/sun/windows/awt_Object.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Object.cpp @@ -60,11 +60,20 @@ AwtObject::~AwtObject() void AwtObject::Dispose() { - theAwtObjectList.Remove(this); + AwtToolkit::GetInstance().PostMessage(WM_AWT_DELETEOBJECT, (WPARAM)this, (LPARAM)0); +} + +void AwtObject::_Dispose(jobject self) +{ + TRY_NO_VERIFY; + + CriticalSection::Lock l(AwtToolkit::GetInstance().GetSyncCS()); // value 0 of lParam means that we should not attempt to enter the // SyncCall critical section, as it was entered someshere earlier - AwtToolkit::GetInstance().PostMessage(WM_AWT_DELETEOBJECT, (WPARAM)this, (LPARAM)0); + AwtToolkit::GetInstance().SendMessage(WM_AWT_DISPOSE, (WPARAM)self, (LPARAM)0); + + CATCH_BAD_ALLOC; } void AwtObject::_Dispose(PDATA pData) @@ -73,14 +82,10 @@ void AwtObject::_Dispose(PDATA pData) CriticalSection::Lock l(AwtToolkit::GetInstance().GetSyncCS()); - if (pData != NULL) { - AwtObject *o = (AwtObject *)pData; - AwtToolkit::GetInstance().SendMessage(WM_AWT_DISPOSE, (WPARAM)o, (LPARAM)0); - } + AwtToolkit::GetInstance().SendMessage(WM_AWT_DISPOSEPDATA, (WPARAM)pData, (LPARAM)0); CATCH_BAD_ALLOC; } - /* * Return the peer associated with some target. This information is * maintained in a hashtable at the java level. diff --git a/jdk/src/windows/native/sun/windows/awt_Object.h b/jdk/src/windows/native/sun/windows/awt_Object.h index 6cfb83ebcc5..918e95d1c18 100644 --- a/jdk/src/windows/native/sun/windows/awt_Object.h +++ b/jdk/src/windows/native/sun/windows/awt_Object.h @@ -66,6 +66,10 @@ public: // After this method has been called, this object must not be used in any way. virtual void Dispose(); + // Static method to be called from JNI methods to dispose AwtObject + // specified by jobject + static void _Dispose(jobject self); + // Static method to be called from JNI methods to dispose AwtObject // specified by pData static void _Dispose(PDATA pData); diff --git a/jdk/src/windows/native/sun/windows/awt_Robot.cpp b/jdk/src/windows/native/sun/windows/awt_Robot.cpp index cdee9cf6001..09e12debf38 100644 --- a/jdk/src/windows/native/sun/windows/awt_Robot.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Robot.cpp @@ -353,8 +353,7 @@ JNIEXPORT void JNICALL Java_sun_awt_windows_WRobotPeer__1dispose( { TRY_NO_VERIFY; - PDATA pData = JNI_GET_PDATA(self); - AwtObject::_Dispose(pData); + AwtObject::_Dispose(self); CATCH_BAD_ALLOC; } diff --git a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp index ca2bae8325a..d010d6b130c 100644 --- a/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Toolkit.cpp @@ -740,18 +740,34 @@ LRESULT CALLBACK AwtToolkit::WndProc(HWND hWnd, UINT message, canDispose = syncCS.TryEnter(); } if (canDispose) { - AwtObject *o = (AwtObject *)wParam; - o->Dispose(); - if (shouldEnterCriticalSection) { - syncCS.Leave(); + if(wParam != NULL) { + AwtObject *o = (AwtObject *) JNI_GET_PDATA((jobject)wParam); + if(o != NULL && theAwtObjectList.Remove(o)) { + o->Dispose(); + } + if (shouldEnterCriticalSection) { + syncCS.Leave(); + } } } else { AwtToolkit::GetInstance().PostMessage(WM_AWT_DISPOSE, wParam, lParam); } return 0; } + case WM_AWT_DISPOSEPDATA: { + /* + * NOTE: synchronization routine (like in WM_AWT_DISPOSE) was omitted because + * this handler is called ONLY while disposing Cursor and Font objects where + * synchronization takes place. + */ + AwtObject *o = (AwtObject *) wParam; + if(o != NULL && theAwtObjectList.Remove(o)) { + o->Dispose(); + } + return 0; + } case WM_AWT_DELETEOBJECT: { - AwtObject *p = (AwtObject *)wParam; + AwtObject *p = (AwtObject *) wParam; if (p->CanBeDeleted()) { // all the messages for this component are processed, so // it can be deleted diff --git a/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp b/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp index 4156c9cfec1..c2682b3b113 100644 --- a/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp +++ b/jdk/src/windows/native/sun/windows/awt_TrayIcon.cpp @@ -926,8 +926,7 @@ Java_sun_awt_windows_WTrayIconPeer__1dispose(JNIEnv *env, jobject self) { TRY; - PDATA pData = JNI_GET_PDATA(self); - AwtObject::_Dispose(pData); + AwtObject::_Dispose(self); CATCH_BAD_ALLOC; } diff --git a/jdk/src/windows/native/sun/windows/awtmsg.h b/jdk/src/windows/native/sun/windows/awtmsg.h index 898471b4923..05733c7a6f0 100644 --- a/jdk/src/windows/native/sun/windows/awtmsg.h +++ b/jdk/src/windows/native/sun/windows/awtmsg.h @@ -219,6 +219,7 @@ enum { WM_AWT_ENDCOMPOSITION, WM_AWT_DISPOSE, + WM_AWT_DISPOSEPDATA, WM_AWT_DELETEOBJECT, WM_AWT_SETCONVERSIONSTATUS, WM_AWT_GETCONVERSIONSTATUS, From 1f4f92b81d50cfdd03dbfa9263ad55808a547139 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev <dav@openjdk.org> Date: Wed, 27 Apr 2011 17:46:59 +0400 Subject: [PATCH 055/147] 6888633: test/closed/javax/swing/JPopupMenu/4786415/bug4786415.java fails Reviewed-by: rupashka, alexp --- jdk/src/share/classes/javax/swing/JPopupMenu.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/javax/swing/JPopupMenu.java b/jdk/src/share/classes/javax/swing/JPopupMenu.java index 24a9d4cf6c5..53926e4a744 100644 --- a/jdk/src/share/classes/javax/swing/JPopupMenu.java +++ b/jdk/src/share/classes/javax/swing/JPopupMenu.java @@ -342,8 +342,8 @@ public class JPopupMenu extends JComponent implements Accessible,MenuElement { // Calculate the screen size that popup should fit Dimension popupSize = JPopupMenu.this.getPreferredSize(); - int popupRightX = popupLocation.x + popupSize.width; - int popupBottomY = popupLocation.y + popupSize.height; + long popupRightX = (long)popupLocation.x + (long)popupSize.width; + long popupBottomY = (long)popupLocation.y + (long)popupSize.height; int scrWidth = scrBounds.width; int scrHeight = scrBounds.height; if (!canPopupOverlapTaskBar()) { @@ -358,13 +358,13 @@ public class JPopupMenu extends JComponent implements Accessible,MenuElement { int scrBottomY = scrBounds.y + scrHeight; // Ensure that popup menu fits the screen - if (popupRightX > scrRightX) { + if (popupRightX > (long)scrRightX) { popupLocation.x = scrRightX - popupSize.width; if( popupLocation.x < scrBounds.x ) { popupLocation.x = scrBounds.x ; } } - if (popupBottomY > scrBottomY) { + if (popupBottomY > (long)scrBottomY) { popupLocation.y = scrBottomY - popupSize.height; if( popupLocation.y < scrBounds.y ) { popupLocation.y = scrBounds.y; From b44f91dc52db004e35fcce686f8c45181220b5cc Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev <dav@openjdk.org> Date: Wed, 27 Apr 2011 18:15:27 +0400 Subject: [PATCH 056/147] 6979551: closed/javax/swing/plaf/basic/BasicLabelUI/4798542/bug4798542.java fails Reviewed-by: art, yan, alexp --- .../classes/sun/awt/ExtendedKeyCodes.java | 17 +++++- .../keyboard/EqualKeyCode/EqualKeyCode.java | 61 +++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 jdk/test/java/awt/keyboard/EqualKeyCode/EqualKeyCode.java diff --git a/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java b/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java index d6d72ac4ad7..fc004ba2a28 100644 --- a/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java +++ b/jdk/src/share/classes/sun/awt/ExtendedKeyCodes.java @@ -13,7 +13,7 @@ public class ExtendedKeyCodes { */ // Keycodes declared in KeyEvent.java with corresponding Unicode values. private final static HashMap<Integer, Integer> regularKeyCodesMap = - new HashMap<Integer,Integer>(83, 1.0f); + new HashMap<Integer,Integer>(98, 1.0f); // Keycodes derived from Unicode values. Here should be collected codes // for characters appearing on the primary layer of at least one @@ -108,6 +108,21 @@ public class ExtendedKeyCodes { regularKeyCodesMap.put(0x5E, KeyEvent.VK_CIRCUMFLEX); regularKeyCodesMap.put(0x5F, KeyEvent.VK_UNDERSCORE); regularKeyCodesMap.put(0x60, KeyEvent.VK_BACK_QUOTE); + regularKeyCodesMap.put(0x61, KeyEvent.VK_A); + regularKeyCodesMap.put(0x62, KeyEvent.VK_B); + regularKeyCodesMap.put(0x63, KeyEvent.VK_C); + regularKeyCodesMap.put(0x64, KeyEvent.VK_D); + regularKeyCodesMap.put(0x65, KeyEvent.VK_E); + regularKeyCodesMap.put(0x66, KeyEvent.VK_F); + regularKeyCodesMap.put(0x67, KeyEvent.VK_G); + regularKeyCodesMap.put(0x68, KeyEvent.VK_H); + regularKeyCodesMap.put(0x69, KeyEvent.VK_I); + regularKeyCodesMap.put(0x6A, KeyEvent.VK_J); + regularKeyCodesMap.put(0x6B, KeyEvent.VK_K); + regularKeyCodesMap.put(0x6C, KeyEvent.VK_L); + regularKeyCodesMap.put(0x6D, KeyEvent.VK_M); + regularKeyCodesMap.put(0x6E, KeyEvent.VK_N); + regularKeyCodesMap.put(0x6F, KeyEvent.VK_O); regularKeyCodesMap.put(0x70, KeyEvent.VK_P); regularKeyCodesMap.put(0x71, KeyEvent.VK_Q); regularKeyCodesMap.put(0x72, KeyEvent.VK_R); diff --git a/jdk/test/java/awt/keyboard/EqualKeyCode/EqualKeyCode.java b/jdk/test/java/awt/keyboard/EqualKeyCode/EqualKeyCode.java new file mode 100644 index 00000000000..d4acc95ef2b --- /dev/null +++ b/jdk/test/java/awt/keyboard/EqualKeyCode/EqualKeyCode.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + @test + @bug 6799551 + @library ../../regtesthelpers + @build Util Sysout + @summary Extended key codes for small letters undefined + @author Andrei Dmitriev: area=awt.keyboard + @run main EqualKeyCode +*/ + + +import sun.awt.*; +import java.awt.*; +import test.java.awt.regtesthelpers.Util; +import test.java.awt.regtesthelpers.Sysout; + +public class EqualKeyCode { + + final static String LETTERS = "abcdefghijklmnopqrstuvwxyz"; + + public static void main(String []s) { + for (int i = 0; i < LETTERS.length(); i++){ + char cSmall = LETTERS.charAt(i); + char cLarge = Character.toUpperCase(cSmall); + + int iSmall = ExtendedKeyCodes.getExtendedKeyCodeForChar(cSmall); + int iLarge = ExtendedKeyCodes.getExtendedKeyCodeForChar(cLarge); + + System.out.print(" " + cSmall + ":" + iSmall + " ---- "); + System.out.println(" " + cLarge + " : " + iLarge); + if (ExtendedKeyCodes.getExtendedKeyCodeForChar(cSmall) != + ExtendedKeyCodes.getExtendedKeyCodeForChar(cLarge)) + { + throw new RuntimeException("ExtendedKeyCode doesn't exist or doesn't match between capital and small letters."); + } + } + } +} From 8c88165312e2bd5497f5f3489173300a3a6362f2 Mon Sep 17 00:00:00 2001 From: Vinnie Ryan <vinnie@openjdk.org> Date: Wed, 27 Apr 2011 20:21:32 +0100 Subject: [PATCH 057/147] 6753664: Support SHA256 (and higher) in SunMSCAPI Reviewed-by: mullan --- .../sun/security/mscapi/RSASignature.java | 85 ++++++---- .../sun/security/mscapi/SunMSCAPI.java | 16 +- .../native/sun/security/mscapi/security.cpp | 100 ++++++++++-- .../security/mscapi/SignUsingSHA2withRSA.java | 153 ++++++++++++++++++ .../security/mscapi/SignUsingSHA2withRSA.sh | 83 ++++++++++ 5 files changed, 391 insertions(+), 46 deletions(-) create mode 100644 jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.java create mode 100644 jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.sh diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java index 7e80490e652..9a735d5fd89 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java @@ -50,6 +50,9 @@ import sun.security.rsa.RSAKeyFactory; * following algorithm names: * * . "SHA1withRSA" + * . "SHA256withRSA" + * . "SHA384withRSA" + * . "SHA512withRSA" * . "MD5withRSA" * . "MD2withRSA" * @@ -63,7 +66,10 @@ abstract class RSASignature extends java.security.SignatureSpi // message digest implementation we use private final MessageDigest messageDigest; - // flag indicating whether the digest is reset + // message digest name + private final String messageDigestAlgorithm; + + // flag indicating whether the digest has been reset private boolean needsReset; // the signing key @@ -73,10 +79,15 @@ abstract class RSASignature extends java.security.SignatureSpi private Key publicKey = null; + /** + * Constructs a new RSASignature. Used by subclasses. + */ RSASignature(String digestName) { try { messageDigest = MessageDigest.getInstance(digestName); + // Get the digest's canonical name + messageDigestAlgorithm = messageDigest.getAlgorithm(); } catch (NoSuchAlgorithmException e) { throw new ProviderException(e); @@ -91,6 +102,24 @@ abstract class RSASignature extends java.security.SignatureSpi } } + public static final class SHA256 extends RSASignature { + public SHA256() { + super("SHA-256"); + } + } + + public static final class SHA384 extends RSASignature { + public SHA384() { + super("SHA-384"); + } + } + + public static final class SHA512 extends RSASignature { + public SHA512() { + super("SHA-512"); + } + } + public static final class MD5 extends RSASignature { public MD5() { super("MD5"); @@ -103,16 +132,7 @@ abstract class RSASignature extends java.security.SignatureSpi } } - /** - * Initializes this signature object with the specified - * public key for verification operations. - * - * @param publicKey the public key of the identity whose signature is - * going to be verified. - * - * @exception InvalidKeyException if the key is improperly - * encoded, parameters are missing, and so on. - */ + // initialize for signing. See JCA doc protected void engineInitVerify(PublicKey key) throws InvalidKeyException { @@ -158,24 +178,12 @@ abstract class RSASignature extends java.security.SignatureSpi publicKey = (sun.security.mscapi.RSAPublicKey) key; } - if (needsReset) { - messageDigest.reset(); - needsReset = false; - } + this.privateKey = null; + resetDigest(); } - /** - * Initializes this signature object with the specified - * private key for signing operations. - * - * @param privateKey the private key of the identity whose signature - * will be generated. - * - * @exception InvalidKeyException if the key is improperly - * encoded, parameters are missing, and so on. - */ - protected void engineInitSign(PrivateKey key) - throws InvalidKeyException + // initialize for signing. See JCA doc + protected void engineInitSign(PrivateKey key) throws InvalidKeyException { // This signature accepts only RSAPrivateKey if ((key instanceof sun.security.mscapi.RSAPrivateKey) == false) { @@ -189,12 +197,25 @@ abstract class RSASignature extends java.security.SignatureSpi null, RSAKeyPairGenerator.KEY_SIZE_MIN, RSAKeyPairGenerator.KEY_SIZE_MAX); + this.publicKey = null; + resetDigest(); + } + + /** + * Resets the message digest if needed. + */ + private void resetDigest() { if (needsReset) { messageDigest.reset(); needsReset = false; } } + private byte[] getDigestValue() { + needsReset = false; + return messageDigest.digest(); + } + /** * Updates the data to be signed or verified * using the specified byte. @@ -254,13 +275,12 @@ abstract class RSASignature extends java.security.SignatureSpi */ protected byte[] engineSign() throws SignatureException { - byte[] hash = messageDigest.digest(); - needsReset = false; + byte[] hash = getDigestValue(); // Sign hash using MS Crypto APIs byte[] result = signHash(hash, hash.length, - messageDigest.getAlgorithm(), privateKey.getHCryptProvider(), + messageDigestAlgorithm, privateKey.getHCryptProvider(), privateKey.getHCryptKey()); // Convert signature array from little endian to big endian @@ -314,11 +334,10 @@ abstract class RSASignature extends java.security.SignatureSpi protected boolean engineVerify(byte[] sigBytes) throws SignatureException { - byte[] hash = messageDigest.digest(); - needsReset = false; + byte[] hash = getDigestValue(); return verifySignedHash(hash, hash.length, - messageDigest.getAlgorithm(), convertEndianArray(sigBytes), + messageDigestAlgorithm, convertEndianArray(sigBytes), sigBytes.length, publicKey.getHCryptProvider(), publicKey.getHCryptKey()); } diff --git a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java index 55feb7e1d84..b101e5b09a5 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java +++ b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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,6 +81,12 @@ public final class SunMSCAPI extends Provider { */ map.put("Signature.SHA1withRSA", "sun.security.mscapi.RSASignature$SHA1"); + map.put("Signature.SHA256withRSA", + "sun.security.mscapi.RSASignature$SHA256"); + map.put("Signature.SHA384withRSA", + "sun.security.mscapi.RSASignature$SHA384"); + map.put("Signature.SHA512withRSA", + "sun.security.mscapi.RSASignature$SHA512"); map.put("Signature.MD5withRSA", "sun.security.mscapi.RSASignature$MD5"); map.put("Signature.MD2withRSA", @@ -89,12 +95,16 @@ public final class SunMSCAPI extends Provider { // supported key classes map.put("Signature.SHA1withRSA SupportedKeyClasses", "sun.security.mscapi.Key"); + map.put("Signature.SHA256withRSA SupportedKeyClasses", + "sun.security.mscapi.Key"); + map.put("Signature.SHA384withRSA SupportedKeyClasses", + "sun.security.mscapi.Key"); + map.put("Signature.SHA512withRSA SupportedKeyClasses", + "sun.security.mscapi.Key"); map.put("Signature.MD5withRSA SupportedKeyClasses", "sun.security.mscapi.Key"); map.put("Signature.MD2withRSA SupportedKeyClasses", "sun.security.mscapi.Key"); - map.put("Signature.NONEwithRSA SupportedKeyClasses", - "sun.security.mscapi.Key"); /* * Key Pair Generator engines diff --git a/jdk/src/windows/native/sun/security/mscapi/security.cpp b/jdk/src/windows/native/sun/security/mscapi/security.cpp index f92cc9a9e9e..3b0421576c9 100644 --- a/jdk/src/windows/native/sun/security/mscapi/security.cpp +++ b/jdk/src/windows/native/sun/security/mscapi/security.cpp @@ -483,6 +483,7 @@ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSASignature_signHash jbyte* pHashBuffer = NULL; jbyte* pSignedHashBuffer = NULL; jbyteArray jSignedHash = NULL; + HCRYPTPROV hCryptProvAlt = NULL; __try { @@ -492,8 +493,32 @@ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSASignature_signHash // Acquire a hash object handle. if (::CryptCreateHash(HCRYPTPROV(hCryptProv), algId, 0, 0, &hHash) == FALSE) { - ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); - __leave; + // Failover to using the PROV_RSA_AES CSP + + DWORD cbData = 256; + BYTE pbData[256]; + pbData[0] = '\0'; + + // Get name of the key container + ::CryptGetProvParam((HCRYPTPROV)hCryptProv, PP_CONTAINER, + (BYTE *)pbData, &cbData, 0); + + // Acquire an alternative CSP handle + if (::CryptAcquireContext(&hCryptProvAlt, LPCSTR(pbData), NULL, + PROV_RSA_AES, 0) == FALSE) + { + + ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); + __leave; + } + + // Acquire a hash object handle. + if (::CryptCreateHash(HCRYPTPROV(hCryptProvAlt), algId, 0, 0, + &hHash) == FALSE) + { + ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); + __leave; + } } // Copy hash from Java to native buffer @@ -546,6 +571,9 @@ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSASignature_signHash } __finally { + if (hCryptProvAlt) + ::CryptReleaseContext(hCryptProvAlt, 0); + if (pSignedHashBuffer) delete [] pSignedHashBuffer; @@ -574,6 +602,7 @@ JNIEXPORT jboolean JNICALL Java_sun_security_mscapi_RSASignature_verifySignedHas jbyte* pSignedHashBuffer = NULL; DWORD dwSignedHashBufferLen = jSignedHashSize; jboolean result = JNI_FALSE; + HCRYPTPROV hCryptProvAlt = NULL; __try { @@ -584,8 +613,32 @@ JNIEXPORT jboolean JNICALL Java_sun_security_mscapi_RSASignature_verifySignedHas if (::CryptCreateHash(HCRYPTPROV(hCryptProv), algId, 0, 0, &hHash) == FALSE) { - ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); - __leave; + // Failover to using the PROV_RSA_AES CSP + + DWORD cbData = 256; + BYTE pbData[256]; + pbData[0] = '\0'; + + // Get name of the key container + ::CryptGetProvParam((HCRYPTPROV)hCryptProv, PP_CONTAINER, + (BYTE *)pbData, &cbData, 0); + + // Acquire an alternative CSP handle + if (::CryptAcquireContext(&hCryptProvAlt, LPCSTR(pbData), NULL, + PROV_RSA_AES, 0) == FALSE) + { + + ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); + __leave; + } + + // Acquire a hash object handle. + if (::CryptCreateHash(HCRYPTPROV(hCryptProvAlt), algId, 0, 0, + &hHash) == FALSE) + { + ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); + __leave; + } } // Copy hash and signedHash from Java to native buffer @@ -616,6 +669,9 @@ JNIEXPORT jboolean JNICALL Java_sun_security_mscapi_RSASignature_verifySignedHas __finally { + if (hCryptProvAlt) + ::CryptReleaseContext(hCryptProvAlt, 0); + if (pSignedHashBuffer) delete [] pSignedHashBuffer; @@ -648,15 +704,27 @@ JNIEXPORT jobject JNICALL Java_sun_security_mscapi_RSAKeyPairGenerator_generateR pszKeyContainerName = env->GetStringUTFChars(keyContainerName, NULL); // Acquire a CSP context (create a new key container). + // Prefer a PROV_RSA_AES CSP, when available, due to its support + // for SHA-2-based signatures. if (::CryptAcquireContext( &hCryptProv, pszKeyContainerName, NULL, - PROV_RSA_FULL, + PROV_RSA_AES, CRYPT_NEWKEYSET) == FALSE) { - ThrowException(env, KEY_EXCEPTION, GetLastError()); - __leave; + // Failover to using the default CSP (PROV_RSA_FULL) + + if (::CryptAcquireContext( + &hCryptProv, + pszKeyContainerName, + NULL, + PROV_RSA_FULL, + CRYPT_NEWKEYSET) == FALSE) + { + ThrowException(env, KEY_EXCEPTION, GetLastError()); + __leave; + } } // Generate an RSA keypair @@ -1849,15 +1917,27 @@ JNIEXPORT jobject JNICALL Java_sun_security_mscapi_RSASignature_importPublicKey pbKeyBlob = (BYTE *) env->GetByteArrayElements(keyBlob, 0); // Acquire a CSP context (create a new key container). + // Prefer a PROV_RSA_AES CSP, when available, due to its support + // for SHA-2-based signatures. if (::CryptAcquireContext( &hCryptProv, NULL, NULL, - PROV_RSA_FULL, + PROV_RSA_AES, CRYPT_VERIFYCONTEXT) == FALSE) { - ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); - __leave; + // Failover to using the default CSP (PROV_RSA_FULL) + + if (::CryptAcquireContext( + &hCryptProv, + NULL, + NULL, + PROV_RSA_FULL, + CRYPT_VERIFYCONTEXT) == FALSE) + { + ThrowException(env, KEYSTORE_EXCEPTION, GetLastError()); + __leave; + } } // Import the public key diff --git a/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.java b/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.java new file mode 100644 index 00000000000..e2bd06b1905 --- /dev/null +++ b/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.java @@ -0,0 +1,153 @@ +/* + * Copyright (c) 2011, 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. + */ + +/** + * @see SignUsingSHA2withRSA.sh + */ + +import java.security.*; +import java.util.*; + +public class SignUsingSHA2withRSA { + + private static final byte[] toBeSigned = new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10 + }; + + private static List<byte[]> generatedSignatures = new ArrayList<>(); + + public static void main(String[] args) throws Exception { + + Provider[] providers = Security.getProviders("Signature.SHA256withRSA"); + if (providers == null) { + System.out.println("No JCE providers support the " + + "'Signature.SHA256withRSA' algorithm"); + System.out.println("Skipping this test..."); + return; + + } else { + System.out.println("The following JCE providers support the " + + "'Signature.SHA256withRSA' algorithm: "); + for (Provider provider : providers) { + System.out.println(" " + provider.getName()); + } + } + System.out.println("-------------------------------------------------"); + + KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI"); + ks.load(null, null); + System.out.println("Loaded keystore: Windows-MY"); + + Enumeration e = ks.aliases(); + PrivateKey privateKey = null; + PublicKey publicKey = null; + + while (e.hasMoreElements()) { + String alias = (String) e.nextElement(); + if (alias.equals("6753664")) { + System.out.println("Loaded entry: " + alias); + privateKey = (PrivateKey) ks.getKey(alias, null); + publicKey = (PublicKey) ks.getCertificate(alias).getPublicKey(); + } + } + if (privateKey == null || publicKey == null) { + throw new Exception("Cannot load the keys need to run this test"); + } + System.out.println("-------------------------------------------------"); + + generatedSignatures.add(signUsing("SHA256withRSA", privateKey)); + generatedSignatures.add(signUsing("SHA384withRSA", privateKey)); + generatedSignatures.add(signUsing("SHA512withRSA", privateKey)); + + System.out.println("-------------------------------------------------"); + + verifyUsing("SHA256withRSA", publicKey, generatedSignatures.get(0)); + verifyUsing("SHA384withRSA", publicKey, generatedSignatures.get(1)); + verifyUsing("SHA512withRSA", publicKey, generatedSignatures.get(2)); + + System.out.println("-------------------------------------------------"); + } + + private static byte[] signUsing(String signAlgorithm, + PrivateKey privateKey) throws Exception { + + // Must explicitly specify the SunMSCAPI JCE provider + // (otherwise SunJCE is chosen because it appears earlier in the list) + Signature sig1 = Signature.getInstance(signAlgorithm, "SunMSCAPI"); + if (sig1 == null) { + throw new Exception("'" + signAlgorithm + "' is not supported"); + } + System.out.println("Using " + signAlgorithm + " signer from the " + + sig1.getProvider().getName() + " JCE provider"); + + System.out.println("Using key: " + privateKey); + sig1.initSign(privateKey); + sig1.update(toBeSigned); + byte [] sigBytes = null; + + try { + sigBytes = sig1.sign(); + System.out.println("Generated RSA signature over a " + + toBeSigned.length + "-byte data (signature length: " + + sigBytes.length * 8 + " bits)"); + System.out.println(String.format("0x%0" + + (sigBytes.length * 2) + "x", + new java.math.BigInteger(1, sigBytes))); + + } catch (SignatureException se) { + System.out.println("Error generating RSA signature: " + se); + } + + return sigBytes; + } + + private static void verifyUsing(String signAlgorithm, PublicKey publicKey, + byte[] signature) throws Exception { + + // Must explicitly specify the SunMSCAPI JCE provider + // (otherwise SunJCE is chosen because it appears earlier in the list) + Signature sig1 = Signature.getInstance(signAlgorithm, "SunMSCAPI"); + if (sig1 == null) { + throw new Exception("'" + signAlgorithm + "' is not supported"); + } + System.out.println("Using " + signAlgorithm + " verifier from the " + + sig1.getProvider().getName() + " JCE provider"); + + System.out.println("Using key: " + publicKey); + + System.out.println("\nVerifying RSA Signature over a " + + toBeSigned.length + "-byte data (signature length: " + + signature.length * 8 + " bits)"); + System.out.println(String.format("0x%0" + (signature.length * 2) + + "x", new java.math.BigInteger(1, signature))); + + sig1.initVerify(publicKey); + sig1.update(toBeSigned); + + if (sig1.verify(signature)) { + System.out.println("Verify PASSED\n"); + } else { + throw new Exception("Verify FAILED"); + } + } +} diff --git a/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.sh b/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.sh new file mode 100644 index 00000000000..c939fb39e3f --- /dev/null +++ b/jdk/test/sun/security/mscapi/SignUsingSHA2withRSA.sh @@ -0,0 +1,83 @@ +#!/bin/sh + +# +# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + + +# @test +# @bug 6753664 +# @run shell SignUsingSHA2withRSA.sh +# @summary Support SHA256 (and higher) in SunMSCAPI + +# set a few environment variables so that the shell-script can run stand-alone +# in the source directory +if [ "${TESTSRC}" = "" ] ; then + TESTSRC="." +fi + +if [ "${TESTCLASSES}" = "" ] ; then + TESTCLASSES="." +fi + +if [ "${TESTJAVA}" = "" ] ; then + echo "TESTJAVA not set. Test cannot execute." + echo "FAILED!!!" + exit 1 +fi + +OS=`uname -s` +case "$OS" in + Windows* | CYGWIN* ) + + echo "Creating a temporary RSA keypair in the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -genkeypair \ + -storetype Windows-My \ + -keyalg RSA \ + -alias 6753664 \ + -dname "cn=6753664,c=US" \ + -noprompt + + echo + echo "Running the test..." + ${TESTJAVA}/bin/javac -d . ${TESTSRC}\\SignUsingSHA2withRSA.java + ${TESTJAVA}/bin/java SignUsingSHA2withRSA + + rc=$? + + echo + echo "Removing the temporary RSA keypair from the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -delete \ + -storetype Windows-My \ + -alias 6753664 + + echo done. + exit $rc + ;; + + * ) + echo "This test is not intended for '$OS' - passing test" + exit 0 + ;; +esac From ca53ccfc326c884239cdcb9a610c1dd1f6b16286 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Wed, 27 Apr 2011 14:02:01 -0700 Subject: [PATCH 058/147] 7040096: Fix broken hg tip for 'make source' Reviewed-by: katleman --- jdk/make/common/shared/Defs.gmk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/make/common/shared/Defs.gmk b/jdk/make/common/shared/Defs.gmk index 600421732d0..87a3ec3b266 100644 --- a/jdk/make/common/shared/Defs.gmk +++ b/jdk/make/common/shared/Defs.gmk @@ -646,7 +646,7 @@ endef # Create the HGTIP_FILENAME file define CreateHgTip -$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME) +$(HG) tip --repository $1 --template '{node|short}\n' > $1/$(HGTIP_FILENAME);\ $(ECHO) $1/$(HGTIP_FILENAME) endef From 90c0a645c275fae107b465783d85078a62c4d5a6 Mon Sep 17 00:00:00 2001 From: Joe Darcy <darcy@openjdk.org> Date: Wed, 27 Apr 2011 17:03:24 -0700 Subject: [PATCH 059/147] 7039822: Project Coin: add explicit tests for the lub of an exception parameter Reviewed-by: mcimadamore, jjg --- .../test/tools/javac/multicatch/Neg07.java | 50 +++++++++ .../test/tools/javac/multicatch/Neg07.out | 2 + .../test/tools/javac/multicatch/Pos10.java | 103 ++++++++++++++++++ 3 files changed, 155 insertions(+) create mode 100644 langtools/test/tools/javac/multicatch/Neg07.java create mode 100644 langtools/test/tools/javac/multicatch/Neg07.out create mode 100644 langtools/test/tools/javac/multicatch/Pos10.java diff --git a/langtools/test/tools/javac/multicatch/Neg07.java b/langtools/test/tools/javac/multicatch/Neg07.java new file mode 100644 index 00000000000..e5869e6a2cc --- /dev/null +++ b/langtools/test/tools/javac/multicatch/Neg07.java @@ -0,0 +1,50 @@ +/* + * @test /nodynamiccopyright/ + * @bug 7039822 + * @summary Verify typing of lub of exception parameter w.r.t getClass + * @author Joseph D. Darcy + * @compile/fail/ref=Neg07.out -XDrawDiagnostics Neg07.java + */ + +public class Neg07 { + private static void test(int i) { + try { + thrower(i); + } catch (SonException | DaughterException e) { + Class<? extends HasFoo> clazz2 = e.getClass(); // Rejected! + HasFoo m = e; + e.foo(); + } + } + + private static interface HasFoo { + void foo(); + } + + static void thrower(int i) throws SonException, DaughterException { + if (i == 0) + throw new SonException(); + else + throw new DaughterException(); + } + + private static class ParentException extends RuntimeException {} + + private static class SonException + extends ParentException + implements HasFoo { + + public void foo() { + System.out.println("SonException.foo"); + } + } + + private static class DaughterException + extends ParentException + implements HasFoo { + + public void foo() { + System.out.println("DaughterException.foo"); + } + } +} diff --git a/langtools/test/tools/javac/multicatch/Neg07.out b/langtools/test/tools/javac/multicatch/Neg07.out new file mode 100644 index 00000000000..f4712ba55df --- /dev/null +++ b/langtools/test/tools/javac/multicatch/Neg07.out @@ -0,0 +1,2 @@ +Neg07.java:14:56: compiler.err.prob.found.req: (compiler.misc.incompatible.types), java.lang.Class<compiler.misc.type.captureof: 1, ? extends Neg07.ParentException>, java.lang.Class<? extends Neg07.HasFoo> +1 error diff --git a/langtools/test/tools/javac/multicatch/Pos10.java b/langtools/test/tools/javac/multicatch/Pos10.java new file mode 100644 index 00000000000..c66fa5334cd --- /dev/null +++ b/langtools/test/tools/javac/multicatch/Pos10.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7039822 + * @summary Verify lub of an exception parameter can be an intersection type + * @author Joseph D. Darcy + */ + +public class Pos10 { + public static void main(String... args) { + test(0); + test(1); + + if (record != 0b11) + throw new RuntimeException("Unexpected exception execution: " + + record); + if (closeRecord != 0b11) + throw new RuntimeException("Unexpected close execution: " + + closeRecord); + } + + private static int record = 0; + private static int closeRecord = 0; + + private static void test(int i) { + try { + thrower(i); + } catch (SonException | DaughterException e) { + Class<? extends ParentException> clazz = e.getClass(); + HasFoo m = e; + e.foo(); + + try (AutoCloseable ac = e) { + e.toString(); + } catch(Exception except) { + throw new RuntimeException(except); + } + } + } + + private static interface HasFoo { + void foo(); + } + + private static void thrower(int i) throws SonException, DaughterException { + if (i == 0) + throw new SonException(); + else + throw new DaughterException(); + } + + private static class ParentException extends RuntimeException {} + + private static class SonException + extends ParentException + implements HasFoo, AutoCloseable { + + public void foo() { + record |= 0b01; + } + + @Override + public void close() { + closeRecord |= 0b01; + } + } + + private static class DaughterException + extends ParentException + implements HasFoo, AutoCloseable { + + public void foo() { + record |= 0b10; + } + + @Override + public void close() { + closeRecord |= 0b10; + } + } +} From ff31734237277b56f81f90d0fac0d3a7f10bea0f Mon Sep 17 00:00:00 2001 From: Bhavesh Patel <bpatel@openjdk.org> Date: Wed, 27 Apr 2011 17:13:54 -0700 Subject: [PATCH 060/147] 7028815: Missing styles for some bulleted items in the new stylesheet Reviewed-by: jjg --- .../internal/toolkit/resources/stylesheet.css | 106 ++++++++---------- .../testStylesheet/TestStylesheet.java | 18 +-- 2 files changed, 54 insertions(+), 70 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css index 25522187542..7d208ba782b 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css @@ -2,17 +2,10 @@ /* Overall document style */ -* { - margin:0; - padding:0; -} body { font-family:Helvetica, Arial, sans-serif; color:#000000; } -p { - margin:20px 0; -} pre { font-size:1.0em; } @@ -30,35 +23,18 @@ h4 { } ul { margin:10px 0 10px 20px; -} -li { - list-style:disc; -} -dl dt { - font-size:0.95em; - font-weight:bold; - margin:10px 0 0 0; -} -dl dd { - margin:10px 0 10px 20px; -} -dl dd ul { - margin-left:0; -} -dl dd ul li { - list-style:none; - margin:10px 0 10px 0; + list-style-type:disc; } caption { background: #CCCCFF; color:#000000; - text-align: left; - font-size: 150%; - font-weight: bold; - border-left: 2px ridge; - border-right: 2px ridge; - border-top: 2px ridge; - padding-left: 5px; + text-align:left; + font-size:150%; + font-weight:bold; + border-left:2px ridge; + border-right:2px ridge; + border-top:2px ridge; + padding-left:5px; width:auto; } /* @@ -70,11 +46,11 @@ Document title and Copyright styles color:#000000; } .legalCopy { - margin:7px; + margin:7px 0; } .bar { font-size:1em; - margin:10px 0 0 10px; + margin:10px 0 0 2px; } .bar a { font-weight:normal; @@ -84,24 +60,21 @@ Navigation bar styles */ .topNav { border-top:2px solid #C0C0C0; - margin:7px; padding:7px 0; height:2.8em; - width:99%; + width:100%; min-width:600px; } .bottomNav { border-top:2px solid #C0C0C0; - margin:7px; padding:7px 0; height:2.8em; - width:99%; + width:100%; } .subNav { border-bottom:2px solid #C0C0C0; float:left; - width:99%; - margin:7px; + width:100%; min-width:600px; } .subNav div { @@ -120,7 +93,7 @@ Navigation bar styles /* Navigation bar list styles */ .topNav ul.navList, .bottomNav ul.navList { background-color:#EEEEFF; - padding:7px 5px; + padding:4px 4px; margin:0; float:left; width:80%; @@ -128,7 +101,7 @@ Navigation bar styles ul.navList li{ list-style:none; float:left; - padding:3px 4px; + padding:0 4px; color:#000000; font-size:0.98em; } @@ -142,14 +115,16 @@ ul.navList li.navBarCell1Rev { .subNav ul.navList { float:left; margin:0; + padding:0; font-size:0.8em; width:350px; } ul.subNavList { float:left; - margin:0; font-size:0.8em; width:350px; + margin:0; + padding:0; } ul.subNavList li{ list-style:none; @@ -161,16 +136,16 @@ Page header and footer styles */ .header, .footer { clear:both; - margin:0 7px; + padding:10px 0; } .indexHeader { font-size:0.9em; - margin:10px 0 7px 10px; + margin:10px 0 0 2px; } .header ul { padding-left:20px; } -/* Header and footer title styles */ +/* Header and footer title styles */ .header h1.title { font-size:1.4em; text-align:center; @@ -181,7 +156,6 @@ Page header and footer styles margin:0; } .subTitle { - margin:0; padding-top:10px; } /* @@ -190,11 +164,11 @@ Page layout container styles .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { clear:both; - padding:10px 10px; position:relative; + padding-bottom:20px; } .indexContainer { - padding:0 0 10px 10px; + padding:0 0 0 2px; font-size:0.9em; } /* @@ -221,7 +195,8 @@ Heading styles .indexContainer h2 { font-weight:normal; font-size:1.0em; - padding:10px 0 0 0; + padding:5px 0 0 0; + margin:10px 0 0 0; } .contentContainer h2 { margin:10px 0; @@ -263,7 +238,7 @@ div.summary ul.blockList ul.blockList li.blockList h3 { background:#CCCCFF; border:0; border:2px ridge; - padding-left:5px; + margin:0; } div.summary ul.blockList ul.blockList ul.blockList li.blockList h3 { background:#EEEEFF; @@ -274,23 +249,22 @@ div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { font-size:1.15em; font-weight:bold; - padding:0 0 10px 0; + padding:0 0 5px 0; + margin:0; } /* Table styles */ .contentContainer table { - border-collapse: collapse ; + border-collapse:collapse ; width:100%; } .contentContainer table td, .contentContainer table th { border:2px ridge; - padding:3px; } /* Constant values page table styles */ .constantValuesContainer table { - border-collapse: collapse ; - margin:0 0 10px 0; + border-collapse:collapse; } .constantValuesContainer table caption{ font-size:0.95em; @@ -303,12 +277,9 @@ Table styles } /* Class-use/Package-use page table styles */ .classUseContainer table { - border-collapse: collapse ; + border-collapse:collapse ; width:100%; - margin:0 0 15px 0; -} -.classUseContainer ul li ul li table { - margin-bottom:30px; + margin:0 0 10px 0; } .classUseContainer ul li ul li table caption{ font-size:0.95em; @@ -365,6 +336,7 @@ ul.horizontal li { /* Container specific list styles */ .indexContainer ul { margin:0; + padding:0; } .indexContainer ul li { list-style:none; @@ -376,6 +348,7 @@ ul.horizontal li { list-style:none; border:0; border-bottom:2px ridge; + height:1%; } .serializedFormContainer ul.blockList li.blockList ul.blockList li.blockList ul.blockList li.blockList ul.blockList li.blockListLast { list-style:none; @@ -395,6 +368,7 @@ ul.blockList ul.blockList ul.blockList li.blockList { div.details ul.blockList ul.blockList ul.blockList li.blockList { border:0; border-bottom:2px ridge; + height:1%; } /* Definition list styles */ ul.blockList li.blockList dl{ @@ -413,9 +387,17 @@ dl.nameValue dt, dl.nameValue dd{ ul.blockList li.blockList pre{ margin:0 0 15px 0; } +.description dl dt { + font-size:0.95em; + font-weight:bold; + margin:5px 0 0 0; +} +.description dl dd { + margin:10px 0 10px 20px; +} /* List content styles */ ul.blockList li.blockList ul.blockList li.blockList pre{ - margin:10px 0 15px 0; + margin:10px 0 10px 0; } ul.blockList li.blockList ul.blockList li.blockList ul.blockList li.blockList pre, ul.blockList li.blockList ul.blockList li.blockList ul.blockListLast li.blockList pre{ diff --git a/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java b/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java index 572c4ef1e29..564a687c927 100644 --- a/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java +++ b/langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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,19 +23,18 @@ /* * @test - * @bug 4494033 + * @bug 4494033 7028815 * @summary Run tests on doclet stylesheet. * @author jamieh * @library ../lib/ - * @build JavadocTester - * @build TestStylesheet + * @build JavadocTester TestStylesheet * @run main TestStylesheet */ public class TestStylesheet extends JavadocTester { //Test information. - private static final String BUG_ID = "4494033"; + private static final String BUG_ID = "4494033-7028815"; //Javadoc arguments. private static final String[] ARGS = new String[] { @@ -56,15 +55,18 @@ public class TestStylesheet extends JavadocTester { "body {" + NL + " font-family:Helvetica, Arial, sans-serif;" + NL + " color:#000000;" + NL + "}"}, {BUG_ID + FS + "stylesheet.css", - "dl dd ul li {" + NL + " list-style:none;" + NL + - " margin:10px 0 10px 0;" + NL + "}"}, + "ul {" + NL + " margin:10px 0 10px 20px;" + NL + + " list-style-type:disc;" + NL + "}"}, // Test whether a link to the stylesheet file is inserted properly // in the class documentation. {BUG_ID + FS + "pkg" + FS + "A.html", "<link rel=\"stylesheet\" type=\"text/css\" " + "href=\"../stylesheet.css\" title=\"Style\">"} }; - private static final String[][] NEGATED_TEST = NO_TEST; + private static final String[][] NEGATED_TEST = { + {BUG_ID + FS + "stylesheet.css", + "* {" + NL + " margin:0;" + NL + " padding:0;" + NL + "}"} + }; /** * The entry point of the test. From 00ac2f30b88a8376835135beae6bf1d9ab6ce46d Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 27 Apr 2011 23:11:48 -0700 Subject: [PATCH 061/147] 6501385: ColorChooser demo - two elemets have same mnemonic in it locale, GTK L&F Reviewed-by: yhuang --- .../com/sun/java/swing/plaf/gtk/resources/gtk_de.properties | 2 +- .../com/sun/java/swing/plaf/gtk/resources/gtk_es.properties | 2 +- .../com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties | 2 +- .../com/sun/java/swing/plaf/gtk/resources/gtk_it.properties | 2 +- .../com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties | 2 +- .../com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties | 2 +- .../sun/swing/internal/plaf/basic/resources/basic_sv.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties index 571bc0afae3..3edb256c427 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_de.properties @@ -24,7 +24,7 @@ GTKColorChooserPanel.hueText=Farbton: GTKColorChooserPanel.hueMnemonic=70 GTKColorChooserPanel.redText=Rot: -GTKColorChooserPanel.redMnemonic=79 +GTKColorChooserPanel.redMnemonic=82 GTKColorChooserPanel.saturationText=S\u00E4ttigung: GTKColorChooserPanel.saturationMnemonic=83 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties index 6daa4d9b441..4766de9167e 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_es.properties @@ -30,7 +30,7 @@ GTKColorChooserPanel.saturationText=Saturaci\u00F3n: GTKColorChooserPanel.saturationMnemonic=83 GTKColorChooserPanel.greenText=Verde: -GTKColorChooserPanel.greenMnemonic=86 +GTKColorChooserPanel.greenMnemonic=69 GTKColorChooserPanel.valueText=Valor: GTKColorChooserPanel.valueMnemonic=86 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties index 9f4e0e559f7..68f07d2e469 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_fr.properties @@ -30,7 +30,7 @@ GTKColorChooserPanel.saturationText=Saturation : GTKColorChooserPanel.saturationMnemonic=83 GTKColorChooserPanel.greenText=Vert : -GTKColorChooserPanel.greenMnemonic=86 +GTKColorChooserPanel.greenMnemonic=69 GTKColorChooserPanel.valueText=Valeur : GTKColorChooserPanel.valueMnemonic=86 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties index 21cd8f77826..70146898dac 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_it.properties @@ -30,7 +30,7 @@ GTKColorChooserPanel.saturationText=Saturazione: GTKColorChooserPanel.saturationMnemonic=83 GTKColorChooserPanel.greenText=Verde: -GTKColorChooserPanel.greenMnemonic=86 +GTKColorChooserPanel.greenMnemonic=69 GTKColorChooserPanel.valueText=Valore: GTKColorChooserPanel.valueMnemonic=86 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties index 6fb63b6764f..35a510d9947 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_pt_BR.properties @@ -30,7 +30,7 @@ GTKColorChooserPanel.saturationText=Satura\u00E7\u00E3o: GTKColorChooserPanel.saturationMnemonic=83 GTKColorChooserPanel.greenText=Verde: -GTKColorChooserPanel.greenMnemonic=86 +GTKColorChooserPanel.greenMnemonic=68 GTKColorChooserPanel.valueText=Valor: GTKColorChooserPanel.valueMnemonic=86 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties index cfde4686b9b..9dda1e0a50f 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_sv.properties @@ -39,7 +39,7 @@ GTKColorChooserPanel.blueText=Bl\u00E5: GTKColorChooserPanel.blueMnemonic=66 GTKColorChooserPanel.colorNameText=F\u00E4rgnamn: -GTKColorChooserPanel.colorNameMnemonic=78 +GTKColorChooserPanel.colorNameMnemonic=70 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties index fef16139cf4..c28dfbd7ca8 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_sv.properties @@ -96,7 +96,7 @@ ColorChooser.okText=OK ColorChooser.cancelText=Avbryt ColorChooser.resetText=\u00C5terst\u00E4ll # VK_XXX constant for 'ColorChooser.resetText' button to make mnemonic -ColorChooser.resetMnemonic=82 +ColorChooser.resetMnemonic=84 ColorChooser.sampleText=Exempeltext Exempeltext ColorChooser.swatchesNameText=Prov ColorChooser.swatchesMnemonic=80 From 7d2260eaa5bd1b081046617687ad4a56ed218dd7 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 27 Apr 2011 23:18:20 -0700 Subject: [PATCH 062/147] 7038803: [CCJK] Incorrect mnemonic key (0) is displayed on cancel button on messagedialog of JOptionPane Reviewed-by: yhuang --- .../sun/swing/internal/plaf/basic/resources/basic.properties | 4 ++-- .../swing/internal/plaf/basic/resources/basic_ja.properties | 2 +- .../swing/internal/plaf/basic/resources/basic_ko.properties | 2 +- .../internal/plaf/basic/resources/basic_zh_CN.properties | 2 +- .../internal/plaf/basic/resources/basic_zh_TW.properties | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties index 87e3bde708e..549e5cfc853 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties @@ -146,9 +146,9 @@ OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=No OptionPane.noButtonMnemonic=78 OptionPane.okButtonText=OK -OptionPane.okButtonMnemonic=0 +#OptionPane.okButtonMnemonic=0 OptionPane.cancelButtonText=Cancel -OptionPane.cancelButtonMnemonic=0 +#OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=Select an Option # Title for the dialog for the showInputDialog methods. Only used if # the developer uses one of the variants that doesn't take a title. diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties index 9382e0abc04..6a01a4ae528 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties @@ -146,7 +146,7 @@ OptionPane.noButtonText=\u3044\u3044\u3048(N) OptionPane.noButtonMnemonic=78 OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=O -OptionPane.cancelButtonText=\u53D6\u6D88(0) +OptionPane.cancelButtonText=\u53D6\u6D88 OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u30AA\u30D7\u30B7\u30E7\u30F3\u306E\u9078\u629E # Title for the dialog for the showInputDialog methods. Only used if diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties index b8f70de37ff..970e57bf375 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties @@ -146,7 +146,7 @@ OptionPane.noButtonText=\uC544\uB2C8\uC624(N) OptionPane.noButtonMnemonic=78 OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=O -OptionPane.cancelButtonText=\uCDE8\uC18C(0) +OptionPane.cancelButtonText=\uCDE8\uC18C OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\uC635\uC158 \uC120\uD0DD # Title for the dialog for the showInputDialog methods. Only used if diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties index 212b1753539..0714ac53c35 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties @@ -146,7 +146,7 @@ OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=O -OptionPane.cancelButtonText=\u53D6\u6D88(0) +OptionPane.cancelButtonText=\u53D6\u6D88 OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9009\u62E9\u4E00\u4E2A\u9009\u9879 # Title for the dialog for the showInputDialog methods. Only used if diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties index ef267aaf8c5..141938565c9 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties @@ -146,7 +146,7 @@ OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 OptionPane.okButtonText=OK OptionPane.okButtonMnemonic=O -OptionPane.cancelButtonText=\u53D6\u6D88(0) +OptionPane.cancelButtonText=\u53D6\u6D88 OptionPane.cancelButtonMnemonic=0 OptionPane.titleText=\u9078\u53D6\u4E00\u500B\u9078\u9805 # Title for the dialog for the showInputDialog methods. Only used if From 88ddcf5e65d080f143e57965f8171241db96624d Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov <dcherepanov@openjdk.org> Date: Thu, 28 Apr 2011 13:26:18 +0400 Subject: [PATCH 063/147] 7032830: GraphicsDevice.setFullScreenWindow() works strange for decorated windows on OEL 7016382: GraphicsDevice.setFullScreenWindow() - spec clarification for exclusive mode for dec/undec Frames Reviewed-by: art --- jdk/src/share/classes/java/awt/GraphicsDevice.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/jdk/src/share/classes/java/awt/GraphicsDevice.java b/jdk/src/share/classes/java/awt/GraphicsDevice.java index f3b7cd390a6..b99d7ef8def 100644 --- a/jdk/src/share/classes/java/awt/GraphicsDevice.java +++ b/jdk/src/share/classes/java/awt/GraphicsDevice.java @@ -257,6 +257,11 @@ public abstract class GraphicsDevice { * 1.0f, and the background color alpha is set to 255 (completely opaque). * These values are not restored when returning to windowed mode. * <p> + * It is unspecified and platform-dependent how decorated windows operate + * in full-screen mode. For this reason, it is recommended to turn off + * the decorations in a {@code Frame} or {@code Dialog} object by using the + * {@code setUndecorated} method. + * <p> * When returning to windowed mode from an exclusive full-screen window, * any display changes made by calling {@code setDisplayMode} are * automatically restored to their original state. @@ -272,6 +277,8 @@ public abstract class GraphicsDevice { * @see #setDisplayMode * @see Component#enableInputMethods * @see Component#setVisible + * @see Frame#setUndecorated + * @see Dialog#setUndecorated * * @since 1.4 */ From f32a89adb040b4a8912a21861a4fdec104867c0e Mon Sep 17 00:00:00 2001 From: Weijun Wang <weijun@openjdk.org> Date: Thu, 28 Apr 2011 20:34:53 +0800 Subject: [PATCH 064/147] 7037201: regression: invalid signed jar file not detected Reviewed-by: mullan --- .../share/classes/java/util/jar/JarFile.java | 22 +- .../classes/java/util/jar/JarInputStream.java | 2 +- .../classes/java/util/jar/JarVerifier.java | 224 ++++++++++++---- .../classes/sun/security/pkcs/PKCS7.java | 176 +----------- .../classes/sun/security/pkcs/SignerInfo.java | 136 +++++++++- .../security/util/ManifestEntryVerifier.java | 4 +- .../security/util/SignatureFileManifest.java | 251 ------------------ .../security/util/SignatureFileVerifier.java | 172 ++++-------- .../jar/JarInputStream/ScanSignedJar.java | 7 +- .../TestIndexedJarWithBadSignature.java | 4 +- 10 files changed, 377 insertions(+), 621 deletions(-) delete mode 100644 jdk/src/share/classes/sun/security/util/SignatureFileManifest.java diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java index 20d0363f57a..79d0f84b7e1 100644 --- a/jdk/src/share/classes/java/util/jar/JarFile.java +++ b/jdk/src/share/classes/java/util/jar/JarFile.java @@ -37,7 +37,6 @@ import java.security.CodeSource; import sun.security.action.GetPropertyAction; import sun.security.util.ManifestEntryVerifier; import sun.misc.SharedSecrets; -import sun.security.util.SignatureFileVerifier; /** * The <code>JarFile</code> class is used to read the contents of a jar file @@ -179,7 +178,7 @@ class JarFile extends ZipFile { byte[] b = getBytes(manEntry); man = new Manifest(new ByteArrayInputStream(b)); if (!jvInitialized) { - jv = new JarVerifier(b, man); + jv = new JarVerifier(b); } } else { man = new Manifest(super.getInputStream(manEntry)); @@ -298,7 +297,10 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { String name = names[i].toUpperCase(Locale.ENGLISH); - if (SignatureFileVerifier.isBlockOrSF(name)) { + if (name.endsWith(".DSA") || + name.endsWith(".RSA") || + name.endsWith(".EC") || + name.endsWith(".SF")) { // Assume since we found a signature-related file // that the jar is signed and that we therefore // need a JarVerifier and Manifest @@ -327,17 +329,17 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { JarEntry e = getJarEntry(names[i]); - if (!e.isDirectory() && - SignatureFileVerifier.isBlock(names[i])) { + if (!e.isDirectory()) { if (mev == null) { mev = new ManifestEntryVerifier (getManifestFromReference()); } - String key = names[i].substring( - 0, names[i].lastIndexOf(".")); - jv.verifyBlock(names[i], - getBytes(e), - super.getInputStream(getJarEntry(key + ".SF"))); + byte[] b = getBytes(e); + if (b != null && b.length > 0) { + jv.beginEntry(e, mev); + jv.update(b.length, b, 0, b.length, mev); + jv.update(-1, null, 0, 0, mev); + } } } } diff --git a/jdk/src/share/classes/java/util/jar/JarInputStream.java b/jdk/src/share/classes/java/util/jar/JarInputStream.java index b84219ea87a..67f27be2975 100644 --- a/jdk/src/share/classes/java/util/jar/JarInputStream.java +++ b/jdk/src/share/classes/java/util/jar/JarInputStream.java @@ -95,7 +95,7 @@ class JarInputStream extends ZipInputStream { man.read(new ByteArrayInputStream(bytes)); closeEntry(); if (doVerify) { - jv = new JarVerifier(bytes, man); + jv = new JarVerifier(bytes); mev = new ManifestEntryVerifier(man); } return (JarEntry)super.getNextEntry(); diff --git a/jdk/src/share/classes/java/util/jar/JarVerifier.java b/jdk/src/share/classes/java/util/jar/JarVerifier.java index 8c69ff5c583..4f84ac28eff 100644 --- a/jdk/src/share/classes/java/util/jar/JarVerifier.java +++ b/jdk/src/share/classes/java/util/jar/JarVerifier.java @@ -48,18 +48,35 @@ class JarVerifier { /* a table mapping names to code signers, for jar entries that have had their actual hashes verified */ - private Map verifiedSigners; + private Hashtable verifiedSigners; /* a table mapping names to code signers, for jar entries that have passed the .SF/.DSA/.EC -> MANIFEST check */ - private Map sigFileSigners; + private Hashtable sigFileSigners; + + /* a hash table to hold .SF bytes */ + private Hashtable sigFileData; + + /** "queue" of pending PKCS7 blocks that we couldn't parse + * until we parsed the .SF file */ + private ArrayList pendingBlocks; /* cache of CodeSigner objects */ private ArrayList signerCache; + /* Are we parsing a block? */ + private boolean parsingBlockOrSF = false; + + /* Are we done parsing META-INF entries? */ + private boolean parsingMeta = true; + /* Are there are files to verify? */ private boolean anyToVerify = true; + /* The output stream to use when keeping track of files we are interested + in */ + private ByteArrayOutputStream baos; + /** The ManifestDigester object */ private volatile ManifestDigester manDig; @@ -75,20 +92,20 @@ class JarVerifier { /** collect -DIGEST-MANIFEST values for blacklist */ private List manifestDigests; - /** The manifest object */ - Manifest man = null; - - public JarVerifier(byte rawBytes[], Manifest man) { - this.man = man; + public JarVerifier(byte rawBytes[]) { manifestRawBytes = rawBytes; - sigFileSigners = new HashMap(); - verifiedSigners = new HashMap(); + sigFileSigners = new Hashtable(); + verifiedSigners = new Hashtable(); + sigFileData = new Hashtable(11); + pendingBlocks = new ArrayList(); + baos = new ByteArrayOutputStream(); manifestDigests = new ArrayList(); } /** - * This method scans to see which entry we're parsing and keeps - * various state information depending on the file being parsed. + * This method scans to see which entry we're parsing and + * keeps various state information depending on what type of + * file is being parsed. */ public void beginEntry(JarEntry je, ManifestEntryVerifier mev) throws IOException @@ -112,6 +129,30 @@ class JarVerifier { * b. digest mismatch between the actual jar entry and the manifest */ + if (parsingMeta) { + String uname = name.toUpperCase(Locale.ENGLISH); + if ((uname.startsWith("META-INF/") || + uname.startsWith("/META-INF/"))) { + + if (je.isDirectory()) { + mev.setEntry(null, je); + return; + } + + if (SignatureFileVerifier.isBlockOrSF(uname)) { + /* We parse only DSA, RSA or EC PKCS7 blocks. */ + parsingBlockOrSF = true; + baos.reset(); + mev.setEntry(null, je); + } + return; + } + } + + if (parsingMeta) { + doneWithMeta(); + } + if (je.isDirectory()) { mev.setEntry(null, je); return; @@ -147,7 +188,11 @@ class JarVerifier { throws IOException { if (b != -1) { - mev.update((byte)b); + if (parsingBlockOrSF) { + baos.write(b); + } else { + mev.update((byte)b); + } } else { processEntry(mev); } @@ -162,7 +207,11 @@ class JarVerifier { throws IOException { if (n != -1) { - mev.update(b, off, n); + if (parsingBlockOrSF) { + baos.write(b, off, n); + } else { + mev.update(b, off, n); + } } else { processEntry(mev); } @@ -174,10 +223,101 @@ class JarVerifier { private void processEntry(ManifestEntryVerifier mev) throws IOException { - JarEntry je = mev.getEntry(); - if ((je != null) && (je.signers == null)) { - je.signers = mev.verify(verifiedSigners, sigFileSigners); - je.certs = mapSignersToCertArray(je.signers); + if (!parsingBlockOrSF) { + JarEntry je = mev.getEntry(); + if ((je != null) && (je.signers == null)) { + je.signers = mev.verify(verifiedSigners, sigFileSigners); + je.certs = mapSignersToCertArray(je.signers); + } + } else { + + try { + parsingBlockOrSF = false; + + if (debug != null) { + debug.println("processEntry: processing block"); + } + + String uname = mev.getEntry().getName() + .toUpperCase(Locale.ENGLISH); + + if (uname.endsWith(".SF")) { + String key = uname.substring(0, uname.length()-3); + byte bytes[] = baos.toByteArray(); + // add to sigFileData in case future blocks need it + sigFileData.put(key, bytes); + // check pending blocks, we can now process + // anyone waiting for this .SF file + Iterator it = pendingBlocks.iterator(); + while (it.hasNext()) { + SignatureFileVerifier sfv = + (SignatureFileVerifier) it.next(); + if (sfv.needSignatureFile(key)) { + if (debug != null) { + debug.println( + "processEntry: processing pending block"); + } + + sfv.setSignatureFile(bytes); + sfv.process(sigFileSigners, manifestDigests); + } + } + return; + } + + // now we are parsing a signature block file + + String key = uname.substring(0, uname.lastIndexOf(".")); + + if (signerCache == null) + signerCache = new ArrayList(); + + if (manDig == null) { + synchronized(manifestRawBytes) { + if (manDig == null) { + manDig = new ManifestDigester(manifestRawBytes); + manifestRawBytes = null; + } + } + } + + SignatureFileVerifier sfv = + new SignatureFileVerifier(signerCache, + manDig, uname, baos.toByteArray()); + + if (sfv.needSignatureFileBytes()) { + // see if we have already parsed an external .SF file + byte[] bytes = (byte[]) sigFileData.get(key); + + if (bytes == null) { + // put this block on queue for later processing + // since we don't have the .SF bytes yet + // (uname, block); + if (debug != null) { + debug.println("adding pending block"); + } + pendingBlocks.add(sfv); + return; + } else { + sfv.setSignatureFile(bytes); + } + } + sfv.process(sigFileSigners, manifestDigests); + + } catch (IOException ioe) { + // e.g. sun.security.pkcs.ParsingException + if (debug != null) debug.println("processEntry caught: "+ioe); + // ignore and treat as unsigned + } catch (SignatureException se) { + if (debug != null) debug.println("processEntry caught: "+se); + // ignore and treat as unsigned + } catch (NoSuchAlgorithmException nsae) { + if (debug != null) debug.println("processEntry caught: "+nsae); + // ignore and treat as unsigned + } catch (CertificateException ce) { + if (debug != null) debug.println("processEntry caught: "+ce); + // ignore and treat as unsigned + } } } @@ -214,15 +354,15 @@ class JarVerifier { * Force a read of the entry data to generate the * verification hash. */ - try (InputStream s = jar.getInputStream(entry)) { + try { + InputStream s = jar.getInputStream(entry); byte[] buffer = new byte[1024]; int n = buffer.length; while (n != -1) { n = s.read(buffer, 0, buffer.length); } + s.close(); } catch (IOException e) { - // Ignore. When an exception is thrown, code signer - // will not be assigned. } } return getCodeSigners(name); @@ -268,7 +408,11 @@ class JarVerifier { */ void doneWithMeta() { + parsingMeta = false; anyToVerify = !sigFileSigners.isEmpty(); + baos = null; + sigFileData = null; + pendingBlocks = null; signerCache = null; manDig = null; // MANIFEST.MF is always treated as signed and verified, @@ -279,41 +423,6 @@ class JarVerifier { } } - /** - * Verifies a PKCS7 SignedData block - * @param key name of block - * @param block the pkcs7 file - * @param ins the clear data - */ - void verifyBlock(String key, byte[] block, InputStream ins) { - try { - if (signerCache == null) - signerCache = new ArrayList(); - - if (manDig == null) { - synchronized(manifestRawBytes) { - if (manDig == null) { - manDig = new ManifestDigester(manifestRawBytes); - manifestRawBytes = null; - } - } - } - SignatureFileVerifier sfv = - new SignatureFileVerifier(signerCache, man, - manDig, key, block); - - if (sfv.needSignatureFile()) { - // see if we have already parsed an external .SF file - sfv.setSignatureFile(ins); - } - sfv.process(sigFileSigners, manifestDigests); - } catch (Exception e) { - if (debug != null) { - e.printStackTrace(); - } - } - } - static class VerifierStream extends java.io.InputStream { private InputStream is; @@ -444,7 +553,10 @@ class JarVerifier { * but this handles a CodeSource of any type, just in case. */ CodeSource[] sources = mapSignersToCodeSources(cs.getLocation(), getJarCodeSigners(), true); - List sourceList = Arrays.asList(sources); + List sourceList = new ArrayList(); + for (int i = 0; i < sources.length; i++) { + sourceList.add(sources[i]); + } int j = sourceList.indexOf(cs); if (j != -1) { CodeSigner[] match; diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java index 72a2e5f9f3e..54e52151256 100644 --- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java @@ -38,7 +38,6 @@ import java.security.*; import sun.security.util.*; import sun.security.x509.AlgorithmId; import sun.security.x509.CertificateIssuerName; -import sun.security.x509.KeyUsageExtension; import sun.security.x509.X509CertImpl; import sun.security.x509.X509CertInfo; import sun.security.x509.X509CRLImpl; @@ -493,7 +492,7 @@ public class PKCS7 { // CRLs (optional) if (crls != null && crls.length != 0) { // cast to X509CRLImpl[] since X509CRLImpl implements DerEncoder - Set<X509CRLImpl> implCRLs = new HashSet<>(crls.length); + Set<X509CRLImpl> implCRLs = new HashSet<X509CRLImpl>(crls.length); for (X509CRL crl: crls) { if (crl instanceof X509CRLImpl) implCRLs.add((X509CRLImpl) crl); @@ -530,168 +529,6 @@ public class PKCS7 { block.encode(out); } - /** - * Verifying signed data using an external chunked data source. - */ - public static class PKCS7Verifier { - - private final SignerInfo si; // Signer to verify - private final MessageDigest md; // MessageDigest object for chunks - private final Signature sig; // Signature object for chunks - - private PKCS7Verifier(SignerInfo si, MessageDigest md, Signature sig) { - this.si = si; - this.md = md; - this.sig = sig; - } - - public static PKCS7Verifier from(PKCS7 block, SignerInfo si) throws - SignatureException, NoSuchAlgorithmException { - - try { - MessageDigest md = null; - Signature sig; - - ContentInfo content = block.getContentInfo(); - String digestAlgname = si.getDigestAlgorithmId().getName(); - - // if there are authenticate attributes, feed data chunks to - // the message digest. In this case, pv.md is not null - if (si.authenticatedAttributes != null) { - // first, check content type - ObjectIdentifier contentType = (ObjectIdentifier) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.CONTENT_TYPE_OID); - if (contentType == null || - !contentType.equals(content.contentType)) - return null; // contentType does not match, bad SignerInfo - - // now, check message digest - byte[] messageDigest = (byte[]) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.MESSAGE_DIGEST_OID); - - if (messageDigest == null) // fail if there is no message digest - return null; - - md = MessageDigest.getInstance(digestAlgname); - } - - // put together digest algorithm and encryption algorithm - // to form signing algorithm - String encryptionAlgname = - si.getDigestEncryptionAlgorithmId().getName(); - - // Workaround: sometimes the encryptionAlgname is actually - // a signature name - String tmp = AlgorithmId.getEncAlgFromSigAlg(encryptionAlgname); - if (tmp != null) encryptionAlgname = tmp; - String algname = AlgorithmId.makeSigAlg( - digestAlgname, encryptionAlgname); - - sig = Signature.getInstance(algname); - X509Certificate cert = si.getCertificate(block); - - if (cert == null) { - return null; - } - if (cert.hasUnsupportedCriticalExtension()) { - throw new SignatureException("Certificate has unsupported " - + "critical extension(s)"); - } - - // Make sure that if the usage of the key in the certificate is - // restricted, it can be used for digital signatures. - // XXX We may want to check for additional extensions in the - // future. - boolean[] keyUsageBits = cert.getKeyUsage(); - if (keyUsageBits != null) { - KeyUsageExtension keyUsage; - try { - // We don't care whether or not this extension was marked - // critical in the certificate. - // We're interested only in its value (i.e., the bits set) - // and treat the extension as critical. - keyUsage = new KeyUsageExtension(keyUsageBits); - } catch (IOException ioe) { - throw new SignatureException("Failed to parse keyUsage " - + "extension"); - } - - boolean digSigAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue(); - - boolean nonRepuAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.NON_REPUDIATION)).booleanValue(); - - if (!digSigAllowed && !nonRepuAllowed) { - throw new SignatureException("Key usage restricted: " - + "cannot be used for " - + "digital signatures"); - } - } - - PublicKey key = cert.getPublicKey(); - sig.initVerify(key); - return new PKCS7Verifier(si, md, sig); - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); - - } catch (InvalidKeyException e) { - throw new SignatureException("InvalidKey: " + e.getMessage()); - - } - } - - public void update(byte[] data, int off, int end) - throws SignatureException { - if (md != null) { - md.update(data, off, end-off); - } else { - sig.update(data, off, end-off); - } - } - - public SignerInfo verify() throws SignatureException { - try { - // if there are authenticate attributes, get the message - // digest and compare it with the digest of data - if (md != null) { - // now, check message digest - byte[] messageDigest = (byte[]) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.MESSAGE_DIGEST_OID); - - byte[] computedMessageDigest = md.digest(); - - if (!MessageDigest.isEqual( - messageDigest, computedMessageDigest)) { - return null; - } - - // message digest attribute matched - // digest of original data - - // the data actually signed is the DER encoding of - // the authenticated attributes (tagged with - // the "SET OF" tag, not 0xA0). - byte[] dataSigned = si.authenticatedAttributes.getDerEncoding(); - sig.update(dataSigned); - } - - if (sig.verify(si.getEncryptedDigest())) { - return si; - } - - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); - } - return null; - } - } - /** * This verifies a given SignerInfo. * @@ -717,16 +554,19 @@ public class PKCS7 { public SignerInfo[] verify(byte[] bytes) throws NoSuchAlgorithmException, SignatureException { - List<SignerInfo> intResult = new ArrayList<>(); + Vector<SignerInfo> intResult = new Vector<SignerInfo>(); for (int i = 0; i < signerInfos.length; i++) { SignerInfo signerInfo = verify(signerInfos[i], bytes); if (signerInfo != null) { - intResult.add(signerInfo); + intResult.addElement(signerInfo); } } - if (!intResult.isEmpty()) { - return intResult.toArray(new SignerInfo[intResult.size()]); + if (intResult.size() != 0) { + + SignerInfo[] result = new SignerInfo[intResult.size()]; + intResult.copyInto(result); + return result; } return null; } diff --git a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java index 6addf69e416..93fab9df4e0 100644 --- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java +++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java @@ -230,7 +230,7 @@ public class SignerInfo implements DerEncoder { if (userCert == null) return null; - ArrayList<X509Certificate> certList = new ArrayList<>(); + ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>(); certList.add(userCert); X509Certificate[] pkcsCerts = block.getCertificates(); @@ -276,20 +276,132 @@ public class SignerInfo implements DerEncoder { /* Returns null if verify fails, this signerInfo if verify succeeds. */ SignerInfo verify(PKCS7 block, byte[] data) - throws NoSuchAlgorithmException, SignatureException { + throws NoSuchAlgorithmException, SignatureException { - PKCS7.PKCS7Verifier p7v = PKCS7.PKCS7Verifier.from(block, this); - if (p7v == null) return null; - if (data == null) { - try { - data = block.getContentInfo().getContentBytes(); - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); + try { + + ContentInfo content = block.getContentInfo(); + if (data == null) { + data = content.getContentBytes(); } + + String digestAlgname = getDigestAlgorithmId().getName(); + + byte[] dataSigned; + + // if there are authenticate attributes, get the message + // digest and compare it with the digest of data + if (authenticatedAttributes == null) { + dataSigned = data; + } else { + + // first, check content type + ObjectIdentifier contentType = (ObjectIdentifier) + authenticatedAttributes.getAttributeValue( + PKCS9Attribute.CONTENT_TYPE_OID); + if (contentType == null || + !contentType.equals(content.contentType)) + return null; // contentType does not match, bad SignerInfo + + // now, check message digest + byte[] messageDigest = (byte[]) + authenticatedAttributes.getAttributeValue( + PKCS9Attribute.MESSAGE_DIGEST_OID); + + if (messageDigest == null) // fail if there is no message digest + return null; + + MessageDigest md = MessageDigest.getInstance(digestAlgname); + byte[] computedMessageDigest = md.digest(data); + + if (messageDigest.length != computedMessageDigest.length) + return null; + for (int i = 0; i < messageDigest.length; i++) { + if (messageDigest[i] != computedMessageDigest[i]) + return null; + } + + // message digest attribute matched + // digest of original data + + // the data actually signed is the DER encoding of + // the authenticated attributes (tagged with + // the "SET OF" tag, not 0xA0). + dataSigned = authenticatedAttributes.getDerEncoding(); + } + + // put together digest algorithm and encryption algorithm + // to form signing algorithm + String encryptionAlgname = + getDigestEncryptionAlgorithmId().getName(); + + // Workaround: sometimes the encryptionAlgname is actually + // a signature name + String tmp = AlgorithmId.getEncAlgFromSigAlg(encryptionAlgname); + if (tmp != null) encryptionAlgname = tmp; + String algname = AlgorithmId.makeSigAlg( + digestAlgname, encryptionAlgname); + + Signature sig = Signature.getInstance(algname); + X509Certificate cert = getCertificate(block); + + if (cert == null) { + return null; + } + if (cert.hasUnsupportedCriticalExtension()) { + throw new SignatureException("Certificate has unsupported " + + "critical extension(s)"); + } + + // Make sure that if the usage of the key in the certificate is + // restricted, it can be used for digital signatures. + // XXX We may want to check for additional extensions in the + // future. + boolean[] keyUsageBits = cert.getKeyUsage(); + if (keyUsageBits != null) { + KeyUsageExtension keyUsage; + try { + // We don't care whether or not this extension was marked + // critical in the certificate. + // We're interested only in its value (i.e., the bits set) + // and treat the extension as critical. + keyUsage = new KeyUsageExtension(keyUsageBits); + } catch (IOException ioe) { + throw new SignatureException("Failed to parse keyUsage " + + "extension"); + } + + boolean digSigAllowed = ((Boolean)keyUsage.get( + KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue(); + + boolean nonRepuAllowed = ((Boolean)keyUsage.get( + KeyUsageExtension.NON_REPUDIATION)).booleanValue(); + + if (!digSigAllowed && !nonRepuAllowed) { + throw new SignatureException("Key usage restricted: " + + "cannot be used for " + + "digital signatures"); + } + } + + PublicKey key = cert.getPublicKey(); + sig.initVerify(key); + + sig.update(dataSigned); + + if (sig.verify(encryptedDigest)) { + return this; + } + + } catch (IOException e) { + throw new SignatureException("IO error verifying signature:\n" + + e.getMessage()); + + } catch (InvalidKeyException e) { + throw new SignatureException("InvalidKey: " + e.getMessage()); + } - p7v.update(data, 0, data.length); - return p7v.verify(); + return null; } /* Verify the content of the pkcs7 block. */ diff --git a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java index 4fa1826cb37..3d1b4733c30 100644 --- a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java +++ b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java @@ -191,8 +191,8 @@ public class ManifestEntryVerifier { * * */ - public CodeSigner[] verify(Map<String, CodeSigner[]> verifiedSigners, - Map<String, CodeSigner[]> sigFileSigners) + public CodeSigner[] verify(Hashtable<String, CodeSigner[]> verifiedSigners, + Hashtable<String, CodeSigner[]> sigFileSigners) throws JarException { if (skip) { diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java b/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java deleted file mode 100644 index fd00c1299a3..00000000000 --- a/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package sun.security.util; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.jar.Attributes; -import java.util.jar.Manifest; - -/** - * This class provides streaming mode reading of manifest files. - * Used by {@link SignatureFileVerifier}. - */ -class SignatureFileManifest extends Manifest { - - /* - * Reading a manifest into this object by calling update(byte[]) on chunks. - * During the reading, the bytes are saved in (@code current} until a line - * is complete and the key-value pair is saved in {@code currentAttr}. When - * a section is complete, {@code consumeAttr} is called to merge - * {@code currentAttr} into main attributes or a named entry. - */ - - // Internal state during update() style reading - // 0. not in update mode - // 1, in update mode but main attributes not completed yet - // 2. main attributes completed, still reading the entries - private int state = 0; - - // The partial line read - private byte[] current; - - // Number of bytes in current - private int currentPos = 0; - - // The current Attribute - private Attributes currentAttr; - - /** - * Reads a manifest in chunks. - * <p> - * This method must be called in a row, reading chunks from a single - * manifest file by order. After all chunks are read, caller must call - * {@code update(null)} to fully consume the manifest. - * <p> - * The entry names and attributes read will be merged in with the current - * manifest entries. The {@link #read} method cannot be called inside a - * row of update calls. - * <p> - * Along with the calls, caller can call {@link #getMainAttributes()}, - * {@link #getAttributes(java.lang.String)} or {@link #getEntries()} - * to get already available contents. However, in order not to return - * partial result, when the main attributes in the new manifest is not - * consumed completely, {@link #getMainAttributes()} throws an - * {@code IllegalStateException}. When a certain named entry is not - * consumed completely, {@link #getAttributes(java.lang.String)} - * returns the old {@code Attributes} for the name (if it exists). - * - * @param data null for last call, otherwise, feeding chunks - * @param offset offset into data to begin read - * @param length length of data after offset to read - * @exception IOException if an I/O error has occurred - * @exception IllegalStateException if {@code update(null)} is called - * without any previous {@code update(non-null)} call - */ - public void update(byte[] data, int offset, int length) throws IOException { - - // The last call - if (data == null) { - if (state == 0) { - throw new IllegalStateException("No data to update"); - } - // We accept manifest not ended with \n or \n\n - if (hasLastByte()) { - consumeCurrent(); - } - // We accept empty lines at the end - if (!currentAttr.isEmpty()) { - consumeAttr(); - } - state = 0; // back to non-update state - current = null; - currentAttr = null; - return; - } - - // The first call - if (state == 0) { - current = new byte[1024]; - currentAttr = super.getMainAttributes(); // the main attribute - state = 1; - } - - int end = offset + length; - - while (offset < end) { - switch (data[offset]) { - case '\r': - break; // always skip - case '\n': - if (hasLastByte() && lastByte() == '\n') { // new section - consumeCurrent(); - consumeAttr(); - if (state == 1) { - state = 2; - } - currentAttr = new Attributes(2); - } else { - if (hasLastByte()) { - // save \n into current but do not parse, - // there might be a continuation later - ensureCapacity(); - current[currentPos++] = data[offset]; - } else if (state == 1) { - // there can be multiple empty lines between - // sections, but cannot be at the beginning - throw new IOException("invalid manifest format"); - } - } - break; - case ' ': - if (!hasLastByte()) { - throw new IOException("invalid manifest format"); - } else if (lastByte() == '\n') { - currentPos--; // continuation, remove last \n - } else { // a very normal ' ' - ensureCapacity(); - current[currentPos++] = data[offset]; - } - break; - default: - if (hasLastByte() && lastByte() == '\n') { - // The start of a new pair, not continuation - consumeCurrent(); // the last line read - } - ensureCapacity(); - current[currentPos++] = data[offset]; - break; - } - offset++; - } - } - - /** - * Returns the main Attributes for the Manifest. - * @exception IllegalStateException the main attributes is being read - * @return the main Attributes for the Manifest - */ - public Attributes getMainAttributes() { - if (state == 1) { - throw new IllegalStateException(); - } - return super.getMainAttributes(); - } - - /** - * Reads the Manifest from the specified InputStream. The entry - * names and attributes read will be merged in with the current - * manifest entries. - * - * @param is the input stream - * @exception IOException if an I/O error has occurred - * @exception IllegalStateException if called between two {@link #update} - * calls - */ - public void read(InputStream is) throws IOException { - if (state != 0) { - throw new IllegalStateException("Cannot call read between updates"); - } - super.read(is); - } - - /* - * ---------- Helper methods ----------------- - */ - - private void ensureCapacity() { - if (currentPos >= current.length-1) { - current = Arrays.copyOf(current, current.length*2); - } - } - - private boolean hasLastByte() { - return currentPos > 0; - } - - private byte lastByte() { - return current[currentPos-1]; - } - - // Parse current as key:value and save into currentAttr. - // There MUST be something inside current. - private void consumeCurrent() throws IOException { - // current normally has a \n end, except for the last line - if (current[currentPos-1] == '\n') currentPos--; - for (int i=0; i<currentPos; i++) { - if (current[i] == ':') { - String key = new String(current, 0, 0, i); - i++; - while (i < currentPos && current[i] == ' ') { i++; } - String value = new String(current, i, currentPos-i, "UTF-8"); - currentAttr.putValue(key, value); - currentPos = 0; - return; - } - } - throw new IOException("invalid header field"); - } - - // Merge currentAttr into Manifest - private void consumeAttr() throws IOException { - // Only needed for named entries. For the main attribute, key/value - // is added into attr directly, but since getMainAttributes() throws - // an exception, the partial data is not leaked. - if (state != 1) { - String name = currentAttr.getValue("Name"); - if (name != null) { - currentAttr.remove(new Attributes.Name("Name")); - Attributes old = getAttributes(name); - if (old != null) old.putAll(currentAttr); - else getEntries().put(name, currentAttr); - } else { - throw new IOException("invalid manifest format"); - } - } - } -} diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java index 6c4439d4c1a..96f425a46b5 100644 --- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java +++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java @@ -55,8 +55,8 @@ public class SignatureFileVerifier { /** the PKCS7 block for this .DSA/.RSA/.EC file */ private PKCS7 block; - // the content of the raw .SF file as an InputStream - private InputStream sfStream; + /** the raw bytes of the .SF file */ + private byte sfBytes[]; /** the name of the signature block file, uppercased and without * the extension (.DSA/.RSA/.EC) @@ -66,9 +66,6 @@ public class SignatureFileVerifier { /** the ManifestDigester */ private ManifestDigester md; - /** The MANIFEST.MF */ - private Manifest man; - /** cache of created MessageDigest objects */ private HashMap<String, MessageDigest> createdDigests; @@ -86,7 +83,6 @@ public class SignatureFileVerifier { * @param rawBytes the raw bytes of the signature block file */ public SignatureFileVerifier(ArrayList<CodeSigner[]> signerCache, - Manifest man, ManifestDigester md, String name, byte rawBytes[]) @@ -98,18 +94,13 @@ public class SignatureFileVerifier { try { obj = Providers.startJarVerification(); block = new PKCS7(rawBytes); - byte[] contentData = block.getContentInfo().getData(); - if (contentData != null) { - sfStream = new ByteArrayInputStream(contentData); - } + sfBytes = block.getContentInfo().getData(); certificateFactory = CertificateFactory.getInstance("X509"); } finally { Providers.stopJarVerification(obj); } this.name = name.substring(0, name.lastIndexOf(".")) .toUpperCase(Locale.ENGLISH); - - this.man = man; this.md = md; this.signerCache = signerCache; } @@ -117,13 +108,31 @@ public class SignatureFileVerifier { /** * returns true if we need the .SF file */ - public boolean needSignatureFile() + public boolean needSignatureFileBytes() { - return sfStream == null; + + return sfBytes == null; } - public void setSignatureFile(InputStream ins) { - this.sfStream = ins; + + /** + * returns true if we need this .SF file. + * + * @param name the name of the .SF file without the extension + * + */ + public boolean needSignatureFile(String name) + { + return this.name.equalsIgnoreCase(name); + } + + /** + * used to set the raw bytes of the .SF file when it + * is external to the signature block file. + */ + public void setSignatureFile(byte sfBytes[]) + { + this.sfBytes = sfBytes; } /** @@ -136,18 +145,12 @@ public class SignatureFileVerifier { * Signature File or PKCS7 block file name */ public static boolean isBlockOrSF(String s) { - return s.endsWith(".SF") || isBlock(s); - } - - /** - * Utility method used by JarVerifier to determine PKCS7 block - * files names that are supported - * - * @param s file name - * @return true if the input file name is a PKCS7 block file name - */ - public static boolean isBlock(String s) { - return s.endsWith(".DSA") || s.endsWith(".RSA") || s.endsWith(".EC"); + // we currently only support DSA and RSA PKCS7 blocks + if (s.endsWith(".SF") || s.endsWith(".DSA") || + s.endsWith(".RSA") || s.endsWith(".EC")) { + return true; + } + return false; } /** get digest from cache */ @@ -177,7 +180,7 @@ public class SignatureFileVerifier { * * */ - public void process(Map<String, CodeSigner[]> signers, + public void process(Hashtable<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException @@ -194,86 +197,31 @@ public class SignatureFileVerifier { } - private void processImpl(Map<String, CodeSigner[]> signers, + private void processImpl(Hashtable<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException { - SignatureFileManifest sf = new SignatureFileManifest(); - InputStream ins = sfStream; + Manifest sf = new Manifest(); + sf.read(new ByteArrayInputStream(sfBytes)); - byte[] buffer = new byte[4096]; - int sLen = block.getSignerInfos().length; - boolean mainOK = false; // main attributes of SF is available... - boolean manifestSigned = false; // and it matches MANIFEST.MF - BASE64Decoder decoder = new BASE64Decoder(); + String version = + sf.getMainAttributes().getValue(Attributes.Name.SIGNATURE_VERSION); - PKCS7.PKCS7Verifier[] pvs = new PKCS7.PKCS7Verifier[sLen]; - for (int i=0; i<sLen; i++) { - pvs[i] = PKCS7.PKCS7Verifier.from(block, block.getSignerInfos()[i]); + if ((version == null) || !(version.equalsIgnoreCase("1.0"))) { + // XXX: should this be an exception? + // for now we just ignore this signature file + return; } - /* - * Verify SF in streaming mode. The chunks of the file are fed into - * the Manifest object sf and all PKCS7Verifiers. As soon as the main - * attributes is available, we'll check if manifestSigned is true. If - * yes, there is no need to fill in sf's entries field, since it should - * be identical to entries in man. - */ - while (true) { - int len = ins.read(buffer); - if (len < 0) { - if (!manifestSigned) { - sf.update(null, 0, 0); - } - break; - } else { - for (int i=0; i<sLen; i++) { - if (pvs[i] != null) pvs[i].update(buffer, 0, len); - } - // Continue reading if verifyManifestHash fails (or, the - // main attributes is not available yet) - if (!manifestSigned) { - sf.update(buffer, 0, len); - if (!mainOK) { - try { - Attributes attr = sf.getMainAttributes(); - String version = attr.getValue( - Attributes.Name.SIGNATURE_VERSION); + SignerInfo[] infos = block.verify(sfBytes); - if ((version == null) || - !(version.equalsIgnoreCase("1.0"))) { - // XXX: should this be an exception? - // for now we just ignore this signature file - return; - } - - mainOK = true; - manifestSigned = verifyManifestHash( - sf, md, decoder, manifestDigests); - } catch (IllegalStateException ise) { - // main attributes not available yet - } - } - } - } - } - List<SignerInfo> intResult = new ArrayList<>(sLen); - for (int i = 0; i < sLen; i++) { - if (pvs[i] != null) { - SignerInfo signerInfo = pvs[i].verify(); - if (signerInfo != null) { - intResult.add(signerInfo); - } - } - } - if (intResult.isEmpty()) { + if (infos == null) { throw new SecurityException("cannot verify signature block file " + name); } - SignerInfo[] infos = - intResult.toArray(new SignerInfo[intResult.size()]); + BASE64Decoder decoder = new BASE64Decoder(); CodeSigner[] newSigners = getSigners(infos, block); @@ -281,37 +229,26 @@ public class SignatureFileVerifier { if (newSigners == null) return; + Iterator<Map.Entry<String,Attributes>> entries = + sf.getEntries().entrySet().iterator(); + + // see if we can verify the whole manifest first + boolean manifestSigned = verifyManifestHash(sf, md, decoder, manifestDigests); + // verify manifest main attributes if (!manifestSigned && !verifyManifestMainAttrs(sf, md, decoder)) { throw new SecurityException ("Invalid signature file digest for Manifest main attributes"); } - Iterator<Map.Entry<String,Attributes>> entries; - - if (manifestSigned) { - if (debug != null) { - debug.println("full manifest signature match, " - + "update signer info from MANIFEST.MF"); - } - entries = man.getEntries().entrySet().iterator(); - } else { - if (debug != null) { - debug.println("full manifest signature unmatch, " - + "update signer info from SF file"); - } - entries = sf.getEntries().entrySet().iterator(); - } - - // go through each section - + // go through each section in the signature file while(entries.hasNext()) { Map.Entry<String,Attributes> e = entries.next(); String name = e.getKey(); if (manifestSigned || - (verifySection(e.getValue(), name, md, decoder))) { + (verifySection(e.getValue(), name, md, decoder))) { if (name.startsWith("./")) name = name.substring(2); @@ -656,6 +593,7 @@ public class SignatureFileVerifier { if (set == subset) return true; + boolean match; for (int i = 0; i < subset.length; i++) { if (!contains(set, subset[i])) return false; @@ -675,6 +613,8 @@ public class SignatureFileVerifier { if ((oldSigners == null) && (signers == newSigners)) return true; + boolean match; + // make sure all oldSigners are in signers if ((oldSigners != null) && !isSubSet(oldSigners, signers)) return false; @@ -698,7 +638,7 @@ public class SignatureFileVerifier { } void updateSigners(CodeSigner[] newSigners, - Map<String, CodeSigner[]> signers, String name) { + Hashtable<String, CodeSigner[]> signers, String name) { CodeSigner[] oldSigners = signers.get(name); diff --git a/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java b/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java index 425e5659715..86dbf793e74 100644 --- a/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java +++ b/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -27,11 +27,9 @@ * @summary Confirm that JarEntry.getCertificates identifies signed entries. */ -import java.io.*; import java.net.URL; import java.security.CodeSigner; import java.security.cert.Certificate; -import java.util.Enumeration; import java.util.jar.*; /* @@ -72,6 +70,9 @@ public class ScanSignedJar { if (signers == null && certificates == null) { System.out.println("[unsigned]\t" + name + "\t(" + size + " bytes)"); + if (name.equals("Count.class")) { + throw new Exception("Count.class should be signed"); + } } else if (signers != null && certificates != null) { System.out.println("[" + signers.length + (signers.length == 1 ? " signer" : " signers") + "]\t" + diff --git a/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java b/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java index 977c10121da..2e74eb10069 100644 --- a/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java +++ b/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class TestIndexedJarWithBadSignature { public static void main(String...args) throws Throwable { try (JarInputStream jis = new JarInputStream( - new FileInputStream(System.getProperty("tst.src", ".") + + new FileInputStream(System.getProperty("test.src", ".") + System.getProperty("file.separator") + "BadSignedJar.jar"))) { From cf97b67aa29b33791b466ba7bbdce81cb14d512d Mon Sep 17 00:00:00 2001 From: Denis Lila <dlila@openjdk.org> Date: Thu, 28 Apr 2011 08:55:19 -0400 Subject: [PATCH 065/147] 7036754: NaNs in stroked quadratics Check for them and remove them. Reviewed-by: flar --- .../classes/sun/java2d/pisces/Stroker.java | 252 +++++++++--------- jdk/test/sun/java2d/pisces/Test7036754.java | 58 ++++ 2 files changed, 185 insertions(+), 125 deletions(-) create mode 100644 jdk/test/sun/java2d/pisces/Test7036754.java diff --git a/jdk/src/share/classes/sun/java2d/pisces/Stroker.java b/jdk/src/share/classes/sun/java2d/pisces/Stroker.java index dc270c194c8..6d4a4c75ac5 100644 --- a/jdk/src/share/classes/sun/java2d/pisces/Stroker.java +++ b/jdk/src/share/classes/sun/java2d/pisces/Stroker.java @@ -27,6 +27,8 @@ package sun.java2d.pisces; import java.util.Arrays; import java.util.Iterator; +import static java.lang.Math.ulp; +import static java.lang.Math.sqrt; import sun.awt.geom.PathConsumer2D; @@ -130,7 +132,7 @@ final class Stroker implements PathConsumer2D { private static void computeOffset(final float lx, final float ly, final float w, final float[] m) { - final float len = (float)Math.sqrt(lx*lx + ly*ly); + final float len = (float) sqrt(lx*lx + ly*ly); if (len == 0) { m[0] = m[1] = 0; } else { @@ -217,7 +219,7 @@ final class Stroker implements PathConsumer2D { // this normal's length is at least 0.5 and at most sqrt(2)/2 (because // we know the angle of the arc is > 90 degrees). float nx = my - omy, ny = omx - mx; - float nlen = (float)Math.sqrt(nx*nx + ny*ny); + float nlen = (float) sqrt(nx*nx + ny*ny); float scale = lineWidth2/nlen; float mmx = nx * scale, mmy = ny * scale; @@ -246,8 +248,8 @@ final class Stroker implements PathConsumer2D { // define the bezier curve we're computing. // It is computed using the constraints that P1-P0 and P3-P2 are parallel // to the arc tangents at the endpoints, and that |P1-P0|=|P3-P2|. - float cv = (float)((4.0 / 3.0) * Math.sqrt(0.5-cosext2) / - (1.0 + Math.sqrt(cosext2+0.5))); + float cv = (float) ((4.0 / 3.0) * sqrt(0.5-cosext2) / + (1.0 + sqrt(cosext2+0.5))); // if clockwise, we need to negate cv. if (rev) { // rev is equivalent to isCW(omx, omy, mx, my) cv = -cv; @@ -284,28 +286,20 @@ final class Stroker implements PathConsumer2D { false); } - // Return the intersection point of the lines (x0, y0) -> (x1, y1) - // and (x0p, y0p) -> (x1p, y1p) in m[0] and m[1] - private void computeMiter(final float x0, final float y0, - final float x1, final float y1, - final float x0p, final float y0p, - final float x1p, final float y1p, - final float[] m, int off) + // Put the intersection point of the lines (x0, y0) -> (x1, y1) + // and (x0p, y0p) -> (x1p, y1p) in m[off] and m[off+1]. + // If the lines are parallel, it will put a non finite number in m. + private void computeIntersection(final float x0, final float y0, + final float x1, final float y1, + final float x0p, final float y0p, + final float x1p, final float y1p, + final float[] m, int off) { float x10 = x1 - x0; float y10 = y1 - y0; float x10p = x1p - x0p; float y10p = y1p - y0p; - // if this is 0, the lines are parallel. If they go in the - // same direction, there is no intersection so m[off] and - // m[off+1] will contain infinity, so no miter will be drawn. - // If they go in the same direction that means that the start of the - // current segment and the end of the previous segment have the same - // tangent, in which case this method won't even be involved in - // miter drawing because it won't be called by drawMiter (because - // (mx == omx && my == omy) will be true, and drawMiter will return - // immediately). float den = x10*y10p - x10p*y10; float t = x10p*(y0-y0p) - y10p*(x0-x0p); t /= den; @@ -321,7 +315,8 @@ final class Stroker implements PathConsumer2D { { if ((mx == omx && my == omy) || (pdx == 0 && pdy == 0) || - (dx == 0 && dy == 0)) { + (dx == 0 && dy == 0)) + { return; } @@ -332,12 +327,17 @@ final class Stroker implements PathConsumer2D { my = -my; } - computeMiter((x0 - pdx) + omx, (y0 - pdy) + omy, x0 + omx, y0 + omy, - (dx + x0) + mx, (dy + y0) + my, x0 + mx, y0 + my, - miter, 0); + computeIntersection((x0 - pdx) + omx, (y0 - pdy) + omy, x0 + omx, y0 + omy, + (dx + x0) + mx, (dy + y0) + my, x0 + mx, y0 + my, + miter, 0); float lenSq = (miter[0]-x0)*(miter[0]-x0) + (miter[1]-y0)*(miter[1]-y0); + // If the lines are parallel, lenSq will be either NaN or +inf + // (actually, I'm not sure if the latter is possible. The important + // thing is that -inf is not possible, because lenSq is a square). + // For both of those values, the comparison below will fail and + // no miter will be drawn, which is correct. if (lenSq < miterLimitSq) { emitLineTo(miter[0], miter[1], rev); } @@ -566,8 +566,8 @@ final class Stroker implements PathConsumer2D { // if p1 == p2 && p3 == p4: draw line from p1->p4, unless p1 == p4, // in which case ignore if p1 == p2 - final boolean p1eqp2 = within(x1,y1,x2,y2, 6 * Math.ulp(y2)); - final boolean p3eqp4 = within(x3,y3,x4,y4, 6 * Math.ulp(y4)); + final boolean p1eqp2 = within(x1,y1,x2,y2, 6 * ulp(y2)); + final boolean p3eqp4 = within(x3,y3,x4,y4, 6 * ulp(y4)); if (p1eqp2 && p3eqp4) { getLineOffsets(x1, y1, x4, y4, leftOff, rightOff); return 4; @@ -583,7 +583,7 @@ final class Stroker implements PathConsumer2D { float dotsq = (dx1 * dx4 + dy1 * dy4); dotsq = dotsq * dotsq; float l1sq = dx1 * dx1 + dy1 * dy1, l4sq = dx4 * dx4 + dy4 * dy4; - if (Helpers.within(dotsq, l1sq * l4sq, 4 * Math.ulp(dotsq))) { + if (Helpers.within(dotsq, l1sq * l4sq, 4 * ulp(dotsq))) { getLineOffsets(x1, y1, x4, y4, leftOff, rightOff); return 4; } @@ -693,8 +693,6 @@ final class Stroker implements PathConsumer2D { return 8; } - // compute offset curves using bezier spline through t=0.5 (i.e. - // ComputedCurve(0.5) == IdealParallelCurve(0.5)) // return the kind of curve in the right and left arrays. private int computeOffsetQuad(float[] pts, final int off, float[] leftOff, float[] rightOff) @@ -703,58 +701,69 @@ final class Stroker implements PathConsumer2D { final float x2 = pts[off + 2], y2 = pts[off + 3]; final float x3 = pts[off + 4], y3 = pts[off + 5]; - float dx3 = x3 - x2; - float dy3 = y3 - y2; - float dx1 = x2 - x1; - float dy1 = y2 - y1; + final float dx3 = x3 - x2; + final float dy3 = y3 - y2; + final float dx1 = x2 - x1; + final float dy1 = y2 - y1; - // if p1=p2 or p3=p4 it means that the derivative at the endpoint - // vanishes, which creates problems with computeOffset. Usually - // this happens when this stroker object is trying to winden - // a curve with a cusp. What happens is that curveTo splits - // the input curve at the cusp, and passes it to this function. - // because of inaccuracies in the splitting, we consider points - // equal if they're very close to each other. - - // if p1 == p2 && p3 == p4: draw line from p1->p4, unless p1 == p4, - // in which case ignore. - final boolean p1eqp2 = within(x1,y1,x2,y2, 6 * Math.ulp(y2)); - final boolean p2eqp3 = within(x2,y2,x3,y3, 6 * Math.ulp(y3)); - if (p1eqp2 || p2eqp3) { - getLineOffsets(x1, y1, x3, y3, leftOff, rightOff); - return 4; - } - - // if p2-p1 and p4-p3 are parallel, that must mean this curve is a line - float dotsq = (dx1 * dx3 + dy1 * dy3); - dotsq = dotsq * dotsq; - float l1sq = dx1 * dx1 + dy1 * dy1, l3sq = dx3 * dx3 + dy3 * dy3; - if (Helpers.within(dotsq, l1sq * l3sq, 4 * Math.ulp(dotsq))) { - getLineOffsets(x1, y1, x3, y3, leftOff, rightOff); - return 4; - } - - // this computes the offsets at t=0, 0.5, 1, using the property that - // for any bezier curve the vectors p2-p1 and p4-p3 are parallel to - // the (dx/dt, dy/dt) vectors at the endpoints. + // this computes the offsets at t = 0, 1 computeOffset(dx1, dy1, lineWidth2, offset[0]); computeOffset(dx3, dy3, lineWidth2, offset[1]); - float x1p = x1 + offset[0][0]; // start - float y1p = y1 + offset[0][1]; // point - float x3p = x3 + offset[1][0]; // end - float y3p = y3 + offset[1][1]; // point - computeMiter(x1p, y1p, x1p+dx1, y1p+dy1, x3p, y3p, x3p-dx3, y3p-dy3, leftOff, 2); - leftOff[0] = x1p; leftOff[1] = y1p; - leftOff[4] = x3p; leftOff[5] = y3p; - x1p = x1 - offset[0][0]; y1p = y1 - offset[0][1]; - x3p = x3 - offset[1][0]; y3p = y3 - offset[1][1]; - computeMiter(x1p, y1p, x1p+dx1, y1p+dy1, x3p, y3p, x3p-dx3, y3p-dy3, rightOff, 2); - rightOff[0] = x1p; rightOff[1] = y1p; - rightOff[4] = x3p; rightOff[5] = y3p; + leftOff[0] = x1 + offset[0][0]; leftOff[1] = y1 + offset[0][1]; + leftOff[4] = x3 + offset[1][0]; leftOff[5] = y3 + offset[1][1]; + rightOff[0] = x1 - offset[0][0]; rightOff[1] = y1 - offset[0][1]; + rightOff[4] = x3 - offset[1][0]; rightOff[5] = y3 - offset[1][1]; + + float x1p = leftOff[0]; // start + float y1p = leftOff[1]; // point + float x3p = leftOff[4]; // end + float y3p = leftOff[5]; // point + + // Corner cases: + // 1. If the two control vectors are parallel, we'll end up with NaN's + // in leftOff (and rightOff in the body of the if below), so we'll + // do getLineOffsets, which is right. + // 2. If the first or second two points are equal, then (dx1,dy1)==(0,0) + // or (dx3,dy3)==(0,0), so (x1p, y1p)==(x1p+dx1, y1p+dy1) + // or (x3p, y3p)==(x3p-dx3, y3p-dy3), which means that + // computeIntersection will put NaN's in leftOff and right off, and + // we will do getLineOffsets, which is right. + computeIntersection(x1p, y1p, x1p+dx1, y1p+dy1, x3p, y3p, x3p-dx3, y3p-dy3, leftOff, 2); + float cx = leftOff[2]; + float cy = leftOff[3]; + + if (!(isFinite(cx) && isFinite(cy))) { + // maybe the right path is not degenerate. + x1p = rightOff[0]; + y1p = rightOff[1]; + x3p = rightOff[4]; + y3p = rightOff[5]; + computeIntersection(x1p, y1p, x1p+dx1, y1p+dy1, x3p, y3p, x3p-dx3, y3p-dy3, rightOff, 2); + cx = rightOff[2]; + cy = rightOff[3]; + if (!(isFinite(cx) && isFinite(cy))) { + // both are degenerate. This curve is a line. + getLineOffsets(x1, y1, x3, y3, leftOff, rightOff); + return 4; + } + // {left,right}Off[0,1,4,5] are already set to the correct values. + leftOff[2] = 2*x2 - cx; + leftOff[3] = 2*y2 - cy; + return 6; + } + + // rightOff[2,3] = (x2,y2) - ((left_x2, left_y2) - (x2, y2)) + // == 2*(x2, y2) - (left_x2, left_y2) + rightOff[2] = 2*x2 - cx; + rightOff[3] = 2*y2 - cy; return 6; } + private static boolean isFinite(float x) { + return (Float.NEGATIVE_INFINITY < x && x < Float.POSITIVE_INFINITY); + } + // This is where the curve to be processed is put. We give it // enough room to store 2 curves: one for the current subdivision, the // other for the rest of the curve. @@ -812,12 +821,12 @@ final class Stroker implements PathConsumer2D { // if these vectors are too small, normalize them, to avoid future // precision problems. if (Math.abs(dxs) < 0.1f && Math.abs(dys) < 0.1f) { - float len = (float)Math.sqrt(dxs*dxs + dys*dys); + float len = (float) sqrt(dxs*dxs + dys*dys); dxs /= len; dys /= len; } if (Math.abs(dxf) < 0.1f && Math.abs(dyf) < 0.1f) { - float len = (float)Math.sqrt(dxf*dxf + dyf*dyf); + float len = (float) sqrt(dxf*dxf + dyf*dyf); dxf /= len; dyf /= len; } @@ -834,7 +843,6 @@ final class Stroker implements PathConsumer2D { while(it.hasNext()) { int curCurveOff = it.next(); - kind = 0; switch (type) { case 8: kind = computeOffsetCubic(middle, curCurveOff, lp, rp); @@ -843,24 +851,22 @@ final class Stroker implements PathConsumer2D { kind = computeOffsetQuad(middle, curCurveOff, lp, rp); break; } - if (kind != 0) { - emitLineTo(lp[0], lp[1]); - switch(kind) { - case 8: - emitCurveTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], lp[6], lp[7], false); - emitCurveTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7], true); - break; - case 6: - emitQuadTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], false); - emitQuadTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], true); - break; - case 4: - emitLineTo(lp[2], lp[3]); - emitLineTo(rp[0], rp[1], true); - break; - } - emitLineTo(rp[kind - 2], rp[kind - 1], true); + emitLineTo(lp[0], lp[1]); + switch(kind) { + case 8: + emitCurveTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], lp[6], lp[7], false); + emitCurveTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7], true); + break; + case 6: + emitQuadTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], false); + emitQuadTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], true); + break; + case 4: + emitLineTo(lp[2], lp[3]); + emitLineTo(rp[0], rp[1], true); + break; } + emitLineTo(rp[kind - 2], rp[kind - 1], true); } this.cmx = (lp[kind - 2] - rp[kind - 2]) / 2; @@ -887,7 +893,7 @@ final class Stroker implements PathConsumer2D { // we rotate it so that the first vector in the control polygon is // parallel to the x-axis. This will ensure that rotated quarter // circles won't be subdivided. - final float hypot = (float)Math.sqrt(x12 * x12 + y12 * y12); + final float hypot = (float) sqrt(x12 * x12 + y12 * y12); final float cos = x12 / hypot; final float sin = y12 / hypot; final float x1 = cos * pts[0] + sin * pts[1]; @@ -976,12 +982,12 @@ final class Stroker implements PathConsumer2D { // if these vectors are too small, normalize them, to avoid future // precision problems. if (Math.abs(dxs) < 0.1f && Math.abs(dys) < 0.1f) { - float len = (float)Math.sqrt(dxs*dxs + dys*dys); + float len = (float) sqrt(dxs*dxs + dys*dys); dxs /= len; dys /= len; } if (Math.abs(dxf) < 0.1f && Math.abs(dyf) < 0.1f) { - float len = (float)Math.sqrt(dxf*dxf + dyf*dyf); + float len = (float) sqrt(dxf*dxf + dyf*dyf); dxf /= len; dyf /= len; } @@ -999,20 +1005,18 @@ final class Stroker implements PathConsumer2D { int curCurveOff = it.next(); kind = computeOffsetCubic(middle, curCurveOff, lp, rp); - if (kind != 0) { - emitLineTo(lp[0], lp[1]); - switch(kind) { - case 8: - emitCurveTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], lp[6], lp[7], false); - emitCurveTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7], true); - break; - case 4: - emitLineTo(lp[2], lp[3]); - emitLineTo(rp[0], rp[1], true); - break; - } - emitLineTo(rp[kind - 2], rp[kind - 1], true); + emitLineTo(lp[0], lp[1]); + switch(kind) { + case 8: + emitCurveTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], lp[6], lp[7], false); + emitCurveTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], rp[6], rp[7], true); + break; + case 4: + emitLineTo(lp[2], lp[3]); + emitLineTo(rp[0], rp[1], true); + break; } + emitLineTo(rp[kind - 2], rp[kind - 1], true); } this.cmx = (lp[kind - 2] - rp[kind - 2]) / 2; @@ -1050,12 +1054,12 @@ final class Stroker implements PathConsumer2D { // if these vectors are too small, normalize them, to avoid future // precision problems. if (Math.abs(dxs) < 0.1f && Math.abs(dys) < 0.1f) { - float len = (float)Math.sqrt(dxs*dxs + dys*dys); + float len = (float) sqrt(dxs*dxs + dys*dys); dxs /= len; dys /= len; } if (Math.abs(dxf) < 0.1f && Math.abs(dyf) < 0.1f) { - float len = (float)Math.sqrt(dxf*dxf + dyf*dyf); + float len = (float) sqrt(dxf*dxf + dyf*dyf); dxf /= len; dyf /= len; } @@ -1073,20 +1077,18 @@ final class Stroker implements PathConsumer2D { int curCurveOff = it.next(); kind = computeOffsetQuad(middle, curCurveOff, lp, rp); - if (kind != 0) { - emitLineTo(lp[0], lp[1]); - switch(kind) { - case 6: - emitQuadTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], false); - emitQuadTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], true); - break; - case 4: - emitLineTo(lp[2], lp[3]); - emitLineTo(rp[0], rp[1], true); - break; - } - emitLineTo(rp[kind - 2], rp[kind - 1], true); + emitLineTo(lp[0], lp[1]); + switch(kind) { + case 6: + emitQuadTo(lp[0], lp[1], lp[2], lp[3], lp[4], lp[5], false); + emitQuadTo(rp[0], rp[1], rp[2], rp[3], rp[4], rp[5], true); + break; + case 4: + emitLineTo(lp[2], lp[3]); + emitLineTo(rp[0], rp[1], true); + break; } + emitLineTo(rp[kind - 2], rp[kind - 1], true); } this.cmx = (lp[kind - 2] - rp[kind - 2]) / 2; diff --git a/jdk/test/sun/java2d/pisces/Test7036754.java b/jdk/test/sun/java2d/pisces/Test7036754.java new file mode 100644 index 00000000000..1dd39ddc8b9 --- /dev/null +++ b/jdk/test/sun/java2d/pisces/Test7036754.java @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 7036754 + * + * @summary Verifies that there are no non-finite numbers when stroking + * certain quadratic curves. + * + * @author Jim Graham + * @run main Test7036754 + */ + +import java.awt.*; +import java.awt.geom.*; + +public class Test7036754 { + public static void main(String argv[]) { + Shape s = new QuadCurve2D.Float(839.24677f, 508.97888f, + 839.2953f, 508.97122f, + 839.3438f, 508.96353f); + s = new BasicStroke(10f).createStrokedShape(s); + float nsegs[] = {2, 2, 4, 6, 0}; + float coords[] = new float[6]; + PathIterator pi = s.getPathIterator(null); + while (!pi.isDone()) { + int type = pi.currentSegment(coords); + for (int i = 0; i < nsegs[type]; i++) { + float c = coords[i]; + if (Float.isNaN(c) || Float.isInfinite(c)) { + throw new RuntimeException("bad value in stroke"); + } + } + pi.next(); + } + } +} From 6ab11e169ddeb6da803cb589a8b77fa49ca97df7 Mon Sep 17 00:00:00 2001 From: Lance Andersen <lancea@openjdk.org> Date: Thu, 28 Apr 2011 09:46:12 -0400 Subject: [PATCH 066/147] 7038565: address Findbugs issue in BatchUpdateException Reviewed-by: alanb, forax --- .../java/sql/BatchUpdateException.java | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/jdk/src/share/classes/java/sql/BatchUpdateException.java b/jdk/src/share/classes/java/sql/BatchUpdateException.java index a95e2bfa419..4fa6241169f 100644 --- a/jdk/src/share/classes/java/sql/BatchUpdateException.java +++ b/jdk/src/share/classes/java/sql/BatchUpdateException.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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,6 +25,8 @@ package java.sql; +import java.util.Arrays; + /** * The subclass of {@link SQLException} thrown when an error * occurs during a batch update operation. In addition to the @@ -77,8 +79,7 @@ public class BatchUpdateException extends SQLException { */ public BatchUpdateException( String reason, String SQLState, int vendorCode, int[] updateCounts ) { - super(reason, SQLState, vendorCode); - this.updateCounts = updateCounts; + this(reason, SQLState, vendorCode, updateCounts, null); } /** @@ -105,8 +106,7 @@ public class BatchUpdateException extends SQLException { */ public BatchUpdateException(String reason, String SQLState, int[] updateCounts) { - super(reason, SQLState); - this.updateCounts = updateCounts; + this(reason, SQLState, 0, updateCounts, null); } /** @@ -132,8 +132,7 @@ public class BatchUpdateException extends SQLException { * @since 1.2 */ public BatchUpdateException(String reason, int[] updateCounts) { - super(reason); - this.updateCounts = updateCounts; + this(reason, null, 0, updateCounts, null); } /** @@ -156,8 +155,7 @@ public class BatchUpdateException extends SQLException { * @since 1.2 */ public BatchUpdateException(int[] updateCounts) { - super(); - this.updateCounts = updateCounts; + this(null, null, 0, updateCounts, null); } /** @@ -172,8 +170,7 @@ public class BatchUpdateException extends SQLException { * @since 1.2 */ public BatchUpdateException() { - super(); - this.updateCounts = null; + this(null, null, 0, null, null); } /** @@ -191,8 +188,7 @@ public class BatchUpdateException extends SQLException { * @since 1.6 */ public BatchUpdateException(Throwable cause) { - super(cause); - this.updateCounts = null; + this(null, null, 0, null, cause); } /** @@ -218,8 +214,7 @@ public class BatchUpdateException extends SQLException { * @since 1.6 */ public BatchUpdateException(int []updateCounts , Throwable cause) { - super(cause); - this.updateCounts = updateCounts; + this(null, null, 0, updateCounts, cause); } /** @@ -243,8 +238,7 @@ public class BatchUpdateException extends SQLException { * @since 1.6 */ public BatchUpdateException(String reason, int []updateCounts, Throwable cause) { - super(reason,cause); - this.updateCounts = updateCounts; + this(reason, null, 0, updateCounts, cause); } /** @@ -269,8 +263,7 @@ public class BatchUpdateException extends SQLException { */ public BatchUpdateException(String reason, String SQLState, int []updateCounts, Throwable cause) { - super(reason,SQLState,cause); - this.updateCounts = updateCounts; + this(reason, SQLState, 0, updateCounts, cause); } /** @@ -297,8 +290,8 @@ public class BatchUpdateException extends SQLException { */ public BatchUpdateException(String reason, String SQLState, int vendorCode, int []updateCounts,Throwable cause) { - super(reason,SQLState,vendorCode,cause); - this.updateCounts = updateCounts; + super(reason, SQLState, vendorCode, cause); + this.updateCounts = (updateCounts == null) ? null : Arrays.copyOf(updateCounts, updateCounts.length); } /** @@ -332,7 +325,7 @@ public class BatchUpdateException extends SQLException { * @since 1.3 */ public int[] getUpdateCounts() { - return updateCounts; + return (updateCounts == null) ? null : Arrays.copyOf(updateCounts, updateCounts.length); } /** @@ -340,7 +333,7 @@ public class BatchUpdateException extends SQLException { * @serial * @since 1.2 */ - private int[] updateCounts; + private final int[] updateCounts; private static final long serialVersionUID = 5977529877145521757L; } From c9f3d958ec3d62c02f19ec1e34c601c276fe7f25 Mon Sep 17 00:00:00 2001 From: Andrei Dmitriev <dav@openjdk.org> Date: Thu, 28 Apr 2011 20:14:30 +0400 Subject: [PATCH 067/147] 6956646: Test: MouseWheelEvent/InfiniteRecursion test receives more MouseWheelEvents than expected Reviewed-by: serb, dcherepanov --- .../InfiniteRecursion/InfiniteRecursion.java | 13 ++++++++++--- .../InfiniteRecursion/InfiniteRecursion_1.java | 11 ++++++++--- .../InfiniteRecursion/InfiniteRecursion_2.java | 11 ++++++++--- .../InfiniteRecursion/InfiniteRecursion_3.java | 11 ++++++++--- .../InfiniteRecursion/InfiniteRecursion_4.java | 10 +++++++--- 5 files changed, 41 insertions(+), 15 deletions(-) diff --git a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java index 6ec02ffbf45..e5533b41891 100644 --- a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java +++ b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011 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 @@ -50,6 +50,11 @@ import test.java.awt.regtesthelpers.Sysout; public class InfiniteRecursion { final static Robot robot = Util.createRobot(); final static int MOVE_COUNT = 5; + + //*2 for both rotation directions, + //*2 as Java sends the wheel event to every for nested component in hierarchy under cursor + final static int EXPECTED_COUNT = MOVE_COUNT * 2 * 2; + static int actualEvents = 0; public static void main(String []s) @@ -96,8 +101,10 @@ public class InfiniteRecursion { Util.waitForIdle(robot); - if (actualEvents != MOVE_COUNT * 2) { - AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents); + //Not fair to check for multiplier 4 as it's not specified actual number of WheelEvents + //result in a single wheel rotation. + if (actualEvents != EXPECTED_COUNT) { + AbstractTest.fail("Expected events count: "+ EXPECTED_COUNT+" Actual events count: "+ actualEvents); } } } diff --git a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java index 3ed18f0e4a2..733af38731d 100644 --- a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java +++ b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_1.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011 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 @@ -50,6 +50,9 @@ import test.java.awt.regtesthelpers.Sysout; public class InfiniteRecursion_1 { final static Robot robot = Util.createRobot(); final static int MOVE_COUNT = 5; + //*2 for both rotation directions, + //*2 as Java sends the wheel event to every for nested component in hierarchy under cursor + final static int EXPECTED_COUNT = MOVE_COUNT * 2 * 2; static int actualEvents = 0; public static void main(String []s) @@ -95,8 +98,10 @@ public class InfiniteRecursion_1 { } Util.waitForIdle(robot); - if (actualEvents != MOVE_COUNT * 2) { - AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents); + //Not fair to check for multiplier 4 as it's not specified actual number of WheelEvents + //result in a single wheel rotation. + if (actualEvents != EXPECTED_COUNT) { + AbstractTest.fail("Expected events count: "+ EXPECTED_COUNT+" Actual events count: "+ actualEvents); } } } diff --git a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java index 4aecedeb833..94444088671 100644 --- a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java +++ b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_2.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011 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 @@ -56,6 +56,9 @@ import java.applet.Applet; public class InfiniteRecursion_2 extends Applet { final static Robot robot = Util.createRobot(); final static int MOVE_COUNT = 5; + //*2 for both rotation directions, + //*2 as Java sends the wheel event to every for nested component in hierarchy under cursor + final static int EXPECTED_COUNT = MOVE_COUNT * 2 * 2; static int actualEvents = 0; public void init() @@ -107,8 +110,10 @@ public class InfiniteRecursion_2 extends Applet { } Util.waitForIdle(robot); - if (actualEvents != MOVE_COUNT * 2) { - AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents); + //Not fair to check for multiplier 4 as it's not specified actual number of WheelEvents + //result in a single wheel rotation. + if (actualEvents != EXPECTED_COUNT) { + AbstractTest.fail("Expected events count: "+ EXPECTED_COUNT+" Actual events count: "+ actualEvents); } }// start() } diff --git a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java index 2804b14ce7e..c12636acdc5 100644 --- a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java +++ b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_3.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011 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 @@ -50,6 +50,9 @@ import java.applet.Applet; public class InfiniteRecursion_3 extends Applet { final static Robot robot = Util.createRobot(); final static int MOVE_COUNT = 5; + //*2 for both rotation directions, + //*2 as Java sends the wheel event to every for nested component in hierarchy under cursor + final static int EXPECTED_COUNT = MOVE_COUNT * 2 * 2; static int actualEvents = 0; public void init() @@ -91,8 +94,10 @@ public class InfiniteRecursion_3 extends Applet { } Util.waitForIdle(robot); - if (actualEvents != MOVE_COUNT * 2) { - AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents); + //Not fair to check for multiplier 4 as it's not specified actual number of WheelEvents + //result in a single wheel rotation. + if (actualEvents != EXPECTED_COUNT) { + AbstractTest.fail("Expected events count: "+ EXPECTED_COUNT+" Actual events count: "+ actualEvents); } }// start() } diff --git a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java index 600e0fa5af3..2fbb3d2e2b0 100644 --- a/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java +++ b/jdk/test/java/awt/event/MouseWheelEvent/InfiniteRecursion/InfiniteRecursion_4.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2007, 2011 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 @@ -47,6 +47,8 @@ import test.java.awt.regtesthelpers.Sysout; public class InfiniteRecursion_4 { final static Robot robot = Util.createRobot(); final static int MOVE_COUNT = 5; + //*2 for both rotation directions over a single frame without any siblings + final static int EXPECTED_COUNT = MOVE_COUNT * 2; static int actualEvents = 0; public static void main(String []s) @@ -80,8 +82,10 @@ public class InfiniteRecursion_4 { } Util.waitForIdle(robot); - if (actualEvents != MOVE_COUNT * 2) { - AbstractTest.fail("Expected events count: "+ MOVE_COUNT+" Actual events count: "+ actualEvents); + //Not fair to check for multiplier 4 as it's not specified actual number of WheelEvents + //result in a single wheel rotation. + if (actualEvents != EXPECTED_COUNT) { + AbstractTest.fail("Expected events count: "+ EXPECTED_COUNT+" Actual events count: "+ actualEvents); } } } From 1e3fce0242fc651d74d060f0817f2761a862aae9 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov <dcherepanov@openjdk.org> Date: Thu, 28 Apr 2011 19:23:44 +0400 Subject: [PATCH 068/147] 6853146: Regression: on-the-spot input is broken in AWT Peered components Reviewed-by: art, ant, naoto --- jdk/src/windows/native/sun/windows/awt_TextComponent.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp b/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp index c1fc17826b0..5e9a08f46ee 100644 --- a/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp +++ b/jdk/src/windows/native/sun/windows/awt_TextComponent.cpp @@ -191,8 +191,11 @@ void AwtTextComponent::SetCompositionWindow(RECT& rc) { HIMC hIMC = ImmGetContext(); // rc is not used for text component. - COMPOSITIONFORM cf = { CFS_POINT, {0,0}, {0,0,0,0} }; + COMPOSITIONFORM cf = { CFS_FORCE_POSITION, {0,0}, {0,0,0,0} }; GetCaretPos(&(cf.ptCurrentPos)); + // the proxy is the native focus owner and it contains the composition window + // let's convert the position to a coordinate space relative to proxy + ::MapWindowPoints(GetHWnd(), GetProxyFocusOwner(), (LPPOINT)&cf.ptCurrentPos, 1); ImmSetCompositionWindow(hIMC, &cf); LOGFONT lf; From ac156aab263ec8a9597dcc20807b27776ad18ccd Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov <dcherepanov@openjdk.org> Date: Thu, 28 Apr 2011 19:39:47 +0400 Subject: [PATCH 069/147] 7034766: closed/java/awt/EmbeddedFrame/EmbeddedFrameGrabTest/EmbeddedFrameGrabTest.java failed on jdk7 b134 Reviewed-by: art, ant --- jdk/src/windows/native/sun/windows/awt_Frame.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/jdk/src/windows/native/sun/windows/awt_Frame.cpp b/jdk/src/windows/native/sun/windows/awt_Frame.cpp index 4d3374e5734..398aea6db67 100644 --- a/jdk/src/windows/native/sun/windows/awt_Frame.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Frame.cpp @@ -340,12 +340,16 @@ LRESULT AwtFrame::ProxyWindowProc(UINT message, WPARAM wParam, LPARAM lParam, Ms } break; case WM_SETFOCUS: + if (sm_inSynthesizeFocus) break; // pass it up the WindowProc chain + if (!sm_suppressFocusAndActivation && IsEmbeddedFrame()) { AwtSetActiveWindow(); } mr = mrConsume; break; case WM_KILLFOCUS: + if (sm_inSynthesizeFocus) break; // pass it up the WindowProc chain + if (!sm_suppressFocusAndActivation && IsEmbeddedFrame()) { AwtWindow::SynthesizeWmActivate(FALSE, GetHWnd(), NULL); From 2999ef704df4154b9fd0e6485c81c0e052ac41ea Mon Sep 17 00:00:00 2001 From: Mandy Chung <mchung@openjdk.org> Date: Thu, 28 Apr 2011 08:46:06 -0700 Subject: [PATCH 070/147] 7037081: Remove com.sun.tracing from NON_CORE_PKGS Reviewed-by: ohair, jjg, jmasa --- .../classes/com/sun/tools/javac/resources/legacy.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/legacy.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/legacy.properties index ad795be7fb1..2504451a37e 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/legacy.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/legacy.properties @@ -266,6 +266,8 @@ com.sun.security.sasl.util = tiger legacy com.sun.swing.internal.plaf.basic.resources = tiger legacy com.sun.swing.internal.plaf.metal.resources = tiger legacy com.sun.swing.internal.plaf.synth.resources = tiger legacy +com.sun.tracing = tiger legacy +com.sun.tracing.dtrace = tiger legacy java.applet = tiger legacy java.awt = tiger legacy java.awt.color = tiger legacy From d97d48b225b1282a9fef99c1c41e96791c7ef62a Mon Sep 17 00:00:00 2001 From: Mandy Chung <mchung@openjdk.org> Date: Thu, 28 Apr 2011 08:51:43 -0700 Subject: [PATCH 071/147] 7037081: Remove com.sun.tracing from NON_CORE_PKGS Reviewed-by: ohair, jjg, jmasa --- jdk/make/docs/Makefile | 50 --------------------------------- jdk/make/docs/NON_CORE_PKGS.gmk | 4 --- 2 files changed, 54 deletions(-) diff --git a/jdk/make/docs/Makefile b/jdk/make/docs/Makefile index 567f796bbce..f2ed1a8fae1 100644 --- a/jdk/make/docs/Makefile +++ b/jdk/make/docs/Makefile @@ -1142,56 +1142,6 @@ $(SCTPAPI_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(SCTPAP $(prep-target) $(call PackageFilter,$(SCTPAPI_PKGS)) -############################################################# -# -# tracingdocs -# - -ALL_OTHER_TARGETS += tracingdocs - -TRACING_DOCDIR := $(JRE_API_DOCSDIR)/tracing -TRACING2COREAPI := ../$(JDKJRE2COREAPI) -TRACING_DOCTITLE := Java$(TRADEMARK) Platform Tracing -TRACING_WINDOWTITLE := Platform Tracing -TRACING_HEADER := <strong>Platform Tracing</strong> -TRACING_BOTTOM := $(call CommonBottom,$(TRACING_FIRST_COPYRIGHT_YEAR)) -# TRACING_PKGS is located in NON_CORE_PKGS.gmk - -TRACING_INDEX_HTML = $(TRACING_DOCDIR)/index.html -TRACING_OPTIONS_FILE = $(DOCSTMPDIR)/tracing.options -TRACING_PACKAGES_FILE = $(DOCSTMPDIR)/tracing.packages - -tracingdocs: $(TRACING_INDEX_HTML) - -# Set relative location to core api document root -$(TRACING_INDEX_HTML): GET2DOCSDIR=$(TRACING2COREAPI)/.. - -# Run javadoc if the index file is out of date or missing -$(TRACING_INDEX_HTML): $(TRACING_OPTIONS_FILE) $(TRACING_PACKAGES_FILE) - $(prep-javadoc) - $(call JavadocSummary,$(TRACING_OPTIONS_FILE),$(TRACING_PACKAGES_FILE)) - $(JAVADOC_CMD) $(JAVADOC_VM_MEMORY_FLAGS) -d $(@D) \ - @$(TRACING_OPTIONS_FILE) @$(TRACING_PACKAGES_FILE) - -# Create file with javadoc options in it -$(TRACING_OPTIONS_FILE): - $(prep-target) - @($(call OptionOnly,$(COMMON_JAVADOCFLAGS)) ; \ - $(call OptionPair,-sourcepath,$(RELEASEDOCS_SOURCEPATH)) ; \ - $(call OptionPair,-encoding,ascii) ; \ - $(call OptionOnly,-nodeprecatedlist) ; \ - $(call OptionPair,-doctitle,$(TRACING_DOCTITLE)) ; \ - $(call OptionPair,-windowtitle,$(TRACING_WINDOWTITLE) $(DRAFT_WINTITLE));\ - $(call OptionPair,-header,$(TRACING_HEADER)$(DRAFT_HEADER)) ; \ - $(call OptionPair,-bottom,$(TRACING_BOTTOM)$(DRAFT_BOTTOM)) ; \ - $(call OptionTrip,-linkoffline,$(TRACING2COREAPI),$(COREAPI_DOCSDIR)/); \ - ) >> $@ - -# Create a file with the package names in it -$(TRACING_PACKAGES_FILE): $(DIRECTORY_CACHE) $(call PackageDependencies,$(TRACING_PKGS)) - $(prep-target) - $(call PackageFilter,$(TRACING_PKGS)) - ############################################################# # # Get a cache of all the directories diff --git a/jdk/make/docs/NON_CORE_PKGS.gmk b/jdk/make/docs/NON_CORE_PKGS.gmk index 25c79408bdb..e8eda9dfd92 100644 --- a/jdk/make/docs/NON_CORE_PKGS.gmk +++ b/jdk/make/docs/NON_CORE_PKGS.gmk @@ -88,9 +88,6 @@ SMARTCARDIO_PKGS = javax.smartcardio SCTPAPI_PKGS = com.sun.nio.sctp -TRACING_PKGS = com.sun.tracing \ - com.sun.tracing.dtrace - # non-core packages in rt.jar NON_CORE_PKGS = $(DOMAPI_PKGS) \ $(MGMT_PKGS) \ @@ -100,6 +97,5 @@ NON_CORE_PKGS = $(DOMAPI_PKGS) \ $(OLD_JSSE_PKGS) \ $(HTTPSERVER_PKGS) \ $(SMARTCARDIO_PKGS) \ - $(TRACING_PKGS) \ $(SCTPAPI_PKGS) From 972c4e25d6753470ef4c021f9ec0d4a0cac5b321 Mon Sep 17 00:00:00 2001 From: Mike Duigou <mduigou@openjdk.org> Date: Thu, 28 Apr 2011 10:12:02 -0700 Subject: [PATCH 072/147] 7040381: Add StandardCharset.java to FILES_java.gmk Reviewed-by: alanb --- jdk/make/java/nio/FILES_java.gmk | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/make/java/nio/FILES_java.gmk b/jdk/make/java/nio/FILES_java.gmk index 34b41d5db38..d09a966db38 100644 --- a/jdk/make/java/nio/FILES_java.gmk +++ b/jdk/make/java/nio/FILES_java.gmk @@ -71,6 +71,7 @@ FILES_src = \ java/nio/charset/CoderMalfunctionError.java \ java/nio/charset/CodingErrorAction.java \ java/nio/charset/MalformedInputException.java \ + java/nio/charset/StandardCharset.java \ java/nio/charset/UnmappableCharacterException.java \ \ java/nio/charset/spi/CharsetProvider.java \ From e29746adb0fc5704c10008fa72c9c89424547a07 Mon Sep 17 00:00:00 2001 From: Jonathan Gibbons <jjg@openjdk.org> Date: Thu, 28 Apr 2011 15:05:36 -0700 Subject: [PATCH 073/147] 7029150: Project Coin: present union types from the tree API through to javax.lang.model Reviewed-by: mcimadamore --- .../classes/com/sun/source/util/Trees.java | 10 +- .../com/sun/tools/javac/api/JavacTrees.java | 18 +- .../com/sun/tools/javac/code/Type.java | 34 +++ .../com/sun/tools/javac/comp/Attr.java | 17 +- .../com/sun/tools/javac/model/JavacTypes.java | 10 +- .../tools/javac/multicatch/model/Model01.java | 4 +- .../javac/multicatch/model/ModelChecker.java | 59 ++++- .../javac/multicatch/model/UnionTypeInfo.java | 29 +++ .../processing/model/type/TestUnionType.java | 208 ++++++++++++++++++ 9 files changed, 371 insertions(+), 18 deletions(-) create mode 100644 langtools/test/tools/javac/multicatch/model/UnionTypeInfo.java create mode 100644 langtools/test/tools/javac/processing/model/type/TestUnionType.java diff --git a/langtools/src/share/classes/com/sun/source/util/Trees.java b/langtools/src/share/classes/com/sun/source/util/Trees.java index 50f5f714007..a787061f495 100644 --- a/langtools/src/share/classes/com/sun/source/util/Trees.java +++ b/langtools/src/share/classes/com/sun/source/util/Trees.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -38,6 +38,7 @@ import javax.lang.model.type.TypeMirror; import javax.tools.Diagnostic; import javax.tools.JavaCompiler.CompilationTask; +import com.sun.source.tree.CatchTree; import com.sun.source.tree.ClassTree; import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.MethodTree; @@ -207,4 +208,11 @@ public abstract class Trees { public abstract void printMessage(Diagnostic.Kind kind, CharSequence msg, com.sun.source.tree.Tree t, com.sun.source.tree.CompilationUnitTree root); + + /** + * Gets the lub of an exception parameter declared in a catch clause. + * @param tree the tree for the catch clause + * @return The lub of the exception parameter + */ + public abstract TypeMirror getLub(CatchTree tree); } diff --git a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java index 453fe52397c..b684d29ce64 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java +++ b/langtools/src/share/classes/com/sun/tools/javac/api/JavacTrees.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,11 +34,13 @@ import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.type.DeclaredType; +import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; import javax.tools.Diagnostic; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; +import com.sun.source.tree.CatchTree; import com.sun.source.tree.CompilationUnitTree; import com.sun.source.tree.Scope; import com.sun.source.tree.Tree; @@ -49,7 +51,7 @@ import com.sun.tools.javac.code.Flags; import com.sun.tools.javac.code.Symbol.ClassSymbol; import com.sun.tools.javac.code.Symbol.TypeSymbol; import com.sun.tools.javac.code.Symbol; -import com.sun.tools.javac.code.Type; +import com.sun.tools.javac.code.Type.UnionClassType; import com.sun.tools.javac.comp.Attr; import com.sun.tools.javac.comp.AttrContext; import com.sun.tools.javac.comp.Enter; @@ -430,4 +432,16 @@ public class JavacTrees extends Trees { log.useSource(oldSource); } } + + @Override + public TypeMirror getLub(CatchTree tree) { + JCCatch ct = (JCCatch) tree; + JCVariableDecl v = ct.param; + if (v.type != null && v.type.getKind() == TypeKind.UNION) { + UnionClassType ut = (UnionClassType) v.type; + return ut.getLub(); + } else { + return v.type; + } + } } diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java index 8cad907e5f6..448834c0ba9 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Type.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Type.java @@ -25,6 +25,8 @@ package com.sun.tools.javac.code; +import java.util.Collections; + import com.sun.tools.javac.util.*; import com.sun.tools.javac.code.Symbol.*; @@ -741,6 +743,38 @@ public class Type implements PrimitiveType { } } + // a clone of a ClassType that knows about the alternatives of a union type. + public static class UnionClassType extends ClassType implements UnionType { + final List<? extends Type> alternatives_field; + + public UnionClassType(ClassType ct, List<? extends Type> alternatives) { + super(ct.outer_field, ct.typarams_field, ct.tsym); + allparams_field = ct.allparams_field; + supertype_field = ct.supertype_field; + interfaces_field = ct.interfaces_field; + all_interfaces_field = ct.interfaces_field; + alternatives_field = alternatives; + } + + public Type getLub() { + return tsym.type; + } + + public java.util.List<? extends TypeMirror> getAlternatives() { + return Collections.unmodifiableList(alternatives_field); + } + + @Override + public TypeKind getKind() { + return TypeKind.UNION; + } + + @Override + public <R, P> R accept(TypeVisitor<R, P> v, P p) { + return v.visitUnion(this, p); + } + } + public static class ArrayType extends Type implements javax.lang.model.type.ArrayType { diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java index ad075a04c2e..d8fb9587586 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java @@ -2910,6 +2910,7 @@ public class Attr extends JCTree.Visitor { public void visitTypeUnion(JCTypeUnion tree) { ListBuffer<Type> multicatchTypes = ListBuffer.lb(); + ListBuffer<Type> all_multicatchTypes = null; // lazy, only if needed for (JCExpression typeTree : tree.alternatives) { Type ctype = attribType(typeTree, env); ctype = chk.checkType(typeTree.pos(), @@ -2931,9 +2932,23 @@ public class Attr extends JCTree.Visitor { } } multicatchTypes.append(ctype); + if (all_multicatchTypes != null) + all_multicatchTypes.append(ctype); + } else { + if (all_multicatchTypes == null) { + all_multicatchTypes = ListBuffer.lb(); + all_multicatchTypes.appendList(multicatchTypes); + } + all_multicatchTypes.append(ctype); } } - tree.type = result = check(tree, types.lub(multicatchTypes.toList()), TYP, pkind, pt); + Type t = check(tree, types.lub(multicatchTypes.toList()), TYP, pkind, pt); + if (t.tag == CLASS) { + List<Type> alternatives = + ((all_multicatchTypes == null) ? multicatchTypes : all_multicatchTypes).toList(); + t = new UnionClassType((ClassType) t, alternatives); + } + tree.type = result = t; } public void visitTypeParameter(JCTypeParameter tree) { diff --git a/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java b/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java index 5e34ee484fa..88406c3fdf1 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java +++ b/langtools/src/share/classes/com/sun/tools/javac/model/JavacTypes.java @@ -72,11 +72,11 @@ public class JavacTypes implements javax.lang.model.util.Types { } public Element asElement(TypeMirror t) { - Type type = cast(Type.class, t); - switch (type.tag) { - case TypeTags.CLASS: - case TypeTags.ERROR: - case TypeTags.TYPEVAR: + switch (t.getKind()) { + case DECLARED: + case ERROR: + case TYPEVAR: + Type type = cast(Type.class, t); return type.asElement(); default: return null; diff --git a/langtools/test/tools/javac/multicatch/model/Model01.java b/langtools/test/tools/javac/multicatch/model/Model01.java index 4a734ef9355..aa99557cb4b 100644 --- a/langtools/test/tools/javac/multicatch/model/Model01.java +++ b/langtools/test/tools/javac/multicatch/model/Model01.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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,6 +43,6 @@ class Test { else throw new B2(); } - catch(B1 | B2 ex) { } + catch(@UnionTypeInfo({"Test.B1", "Test.B2"}) B1 | B2 ex) { } } } diff --git a/langtools/test/tools/javac/multicatch/model/ModelChecker.java b/langtools/test/tools/javac/multicatch/model/ModelChecker.java index 2d1423c9437..97ccca1679f 100644 --- a/langtools/test/tools/javac/multicatch/model/ModelChecker.java +++ b/langtools/test/tools/javac/multicatch/model/ModelChecker.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011 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 @@ -30,7 +30,7 @@ * @compile -processor ModelChecker Model01.java */ -import com.sun.source.tree.VariableTree; +import com.sun.source.tree.CatchTree; import com.sun.source.util.TreePathScanner; import com.sun.source.util.Trees; import com.sun.source.util.TreePath; @@ -41,6 +41,12 @@ import javax.annotation.processing.SupportedAnnotationTypes; import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.TypeElement; +import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeKind; +import javax.lang.model.type.UnionType; +import javax.lang.model.type.UnknownTypeException; +import javax.lang.model.util.SimpleTypeVisitor6; +import javax.lang.model.util.SimpleTypeVisitor7; @SupportedAnnotationTypes("Check") public class ModelChecker extends JavacTestingAbstractProcessor { @@ -69,22 +75,61 @@ public class ModelChecker extends JavacTestingAbstractProcessor { } @Override - public Void visitVariable(VariableTree node, Void p) { - Element ex = trees.getElement(getCurrentPath()); + public Void visitCatch(CatchTree node, Void p) { + TreePath param = new TreePath(getCurrentPath(), node.getParameter()); + Element ex = trees.getElement(param); + validateUnionTypeInfo(ex); if (ex.getSimpleName().contentEquals("ex")) { assertTrue(ex.getKind() == ElementKind.EXCEPTION_PARAMETER, "Expected EXCEPTION_PARAMETER - found " + ex.getKind()); - for (Element e : types.asElement(ex.asType()).getEnclosedElements()) { + for (Element e : types.asElement(trees.getLub(node)).getEnclosedElements()) { Member m = e.getAnnotation(Member.class); if (m != null) { assertTrue(e.getKind() == m.value(), "Expected " + m.value() + " - found " + e.getKind()); } } - assertTrue(assertionCount == 3, "Expected 3 assertions - found " + assertionCount); + assertTrue(assertionCount == 9, "Expected 9 assertions - found " + assertionCount); } - return super.visitVariable(node, p); + return super.visitCatch(node, p); } } + private void validateUnionTypeInfo(Element ex) { + UnionTypeInfo ut = ex.getAnnotation(UnionTypeInfo.class); + assertTrue(ut != null, "UnionType annotation must be present"); + + TypeMirror expectedUnionType = ex.asType(); + assertTrue(expectedUnionType.getKind() == TypeKind.UNION, "UNION kind expected"); + + try { + new SimpleTypeVisitor6<Void, Void>(){}.visit(expectedUnionType); + throw new RuntimeException("Expected UnknownTypeException not thrown."); + } catch (UnknownTypeException ute) { + ; // Expected + } + + UnionType unionType = new SimpleTypeVisitor7<UnionType, Void>(){ + @Override + protected UnionType defaultAction(TypeMirror e, Void p) {return null;} + + @Override + public UnionType visitUnion(UnionType t, Void p) {return t;} + }.visit(expectedUnionType); + assertTrue(unionType != null, "Must get a non-null union type."); + + assertTrue(ut.value().length == unionType.getAlternatives().size(), "Cardinalities do not match"); + + String[] typeNames = ut.value(); + for(int i = 0; i < typeNames.length; i++) { + TypeMirror typeFromAnnotation = nameToType(typeNames[i]); + assertTrue(types.isSameType(typeFromAnnotation, unionType.getAlternatives().get(i)), + "Types were not equal."); + } + } + + private TypeMirror nameToType(String name) { + return elements.getTypeElement(name).asType(); + } + private static void assertTrue(boolean cond, String msg) { assertionCount++; if (!cond) diff --git a/langtools/test/tools/javac/multicatch/model/UnionTypeInfo.java b/langtools/test/tools/javac/multicatch/model/UnionTypeInfo.java new file mode 100644 index 00000000000..fba33c86a49 --- /dev/null +++ b/langtools/test/tools/javac/multicatch/model/UnionTypeInfo.java @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2011, 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. + */ + +/** + * Used by ModelChecker to validate the modeling information of a union type. + */ +@interface UnionTypeInfo { + String[] value(); +} diff --git a/langtools/test/tools/javac/processing/model/type/TestUnionType.java b/langtools/test/tools/javac/processing/model/type/TestUnionType.java new file mode 100644 index 00000000000..01260575998 --- /dev/null +++ b/langtools/test/tools/javac/processing/model/type/TestUnionType.java @@ -0,0 +1,208 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7029150 + * @summary Test support for union types + * @library ../../../lib + */ + +import java.net.URI; +import java.util.*; +import javax.annotation.processing.*; +import javax.lang.model.element.*; +import javax.lang.model.type.*; +import javax.lang.model.util.*; +import javax.tools.*; + +import com.sun.source.tree.*; +import com.sun.source.util.*; + + +public class TestUnionType extends JavacTestingAbstractProcessor { + enum TestKind { + SingleType("E1", "E1", + "VariableTree: E1 e", + "VariableTree: elem EXCEPTION_PARAMETER e", + "VariableTree: elem.type DECLARED", + "VariableTree: elem.type.elem CLASS E1", + "VariableTree: type DECLARED", + "VariableTree: type.elem CLASS E1", + "VariableTree: type.elem.type DECLARED"), + + ValidTypes("E1, E2", "E1 | E2", + "VariableTree: E1 | E2 e", + "VariableTree: elem EXCEPTION_PARAMETER e", + "VariableTree: elem.type UNION Test.E1,Test.E2", + "VariableTree: elem.type.elem null", + "VariableTree: type UNION Test.E1,Test.E2", + "VariableTree: type.elem null"), + + InvalidTypes("E1, E2", "E1 | EMissing", + "VariableTree: E1 | EMissing e", + "VariableTree: elem EXCEPTION_PARAMETER e", + "VariableTree: elem.type UNION Test.E1,EMissing", + "VariableTree: elem.type.elem null", + "VariableTree: type UNION Test.E1,EMissing", + "VariableTree: type.elem null"), + + Uncaught("E1", "E1 | E2", + "VariableTree: E1 | E2 e", + "VariableTree: elem EXCEPTION_PARAMETER e", + "VariableTree: elem.type UNION Test.E1,Test.E2", + "VariableTree: elem.type.elem null", + "VariableTree: type UNION Test.E1,Test.E2", + "VariableTree: type.elem null"); + + TestKind(String throwsTypes, String catchTypes, String... gold) { + this.throwsTypes = throwsTypes; + this.catchTypes = catchTypes; + this.gold = Arrays.asList(gold); + } + + final String throwsTypes; + final String catchTypes; + final List<String> gold; + } + + static class TestFileObject extends SimpleJavaFileObject { + public static final String template = + "class Test {\n" + + " class E1 extends Exception { }\n" + + " class E2 extends Exception { }\n" + + " void doSomething() throws #T { }\n" + + " void test() {\n" + + " try {\n" + + " doSomething();\n" + + " } catch (#C e) {\n" + + " }\n" + + " }\n" + + "}\n"; + + public TestFileObject(TestKind tk) { + super(URI.create("myfo:/Test.java"), JavaFileObject.Kind.SOURCE); + this.tk = tk; + } + + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return template + .replace("#T", tk.throwsTypes) + .replace("#C", tk.catchTypes); + } + final TestKind tk; + } + + public static void main(String... args) throws Exception { + JavaCompiler comp = ToolProvider.getSystemJavaCompiler(); + List<String> options = Arrays.asList("-proc:only"); + for (TestKind tk: TestKind.values()) { + System.err.println("Test: " + tk); + TestUnionType p = new TestUnionType(); + JavaFileObject fo = new TestFileObject(tk); + JavaCompiler.CompilationTask task = comp.getTask(null, null, null, options, null, Arrays.asList(fo)); + task.setProcessors(Arrays.asList(p)); + boolean ok = task.call(); + System.err.println("compilation " + (ok ? "passed" : "failed")); + if (!ok) + throw new Exception("compilation failed unexpectedly"); + if (!p.log.equals(tk.gold)) { + System.err.println("Expected output:"); + for (String g: tk.gold) + System.err.println(g); + throw new Exception("unexpected output from test"); + } + System.err.println(); + } + } + + Trees trees; + List<String> log; + + @Override + public void init(ProcessingEnvironment env) { + super.init(env); + trees = Trees.instance(env); + log = new ArrayList<String>(); + } + + @Override + public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { + if (!roundEnv.processingOver()) { + for (Element e: roundEnv.getRootElements()) { + scan(trees.getPath(e)); + } + } + return true; + } + + void scan(TreePath path) { + new Scanner().scan(path, null); + } + + class Scanner extends TreePathScanner<Void,Void> { + @Override + public Void visitVariable(VariableTree tree, Void ignore) { + TreePath p = getCurrentPath(); + Element e = trees.getElement(p); + if (e.getKind() == ElementKind.EXCEPTION_PARAMETER) { + log("VariableTree: " + tree); + log("VariableTree: elem " + print(e)); + log("VariableTree: elem.type " + print(e.asType())); + log("VariableTree: elem.type.elem " + print(types.asElement(e.asType()))); + TypeMirror tm = trees.getTypeMirror(p); + log("VariableTree: type " + print(tm)); + log("VariableTree: type.elem " + print(types.asElement(tm))); + if (types.asElement(tm) != null) + log("VariableTree: type.elem.type " + print(types.asElement(tm).asType())); + } + return super.visitVariable(tree, null); + } + + String print(TypeMirror tm) { + return (tm == null) ? null : new TypePrinter().visit(tm); + } + + String print(Element e) { + return (e == null) ? null : (e.getKind() + " " + e.getSimpleName()); + } + + void log(String msg) { + System.err.println(msg); + log.add(msg); + } + } + + class TypePrinter extends SimpleTypeVisitor7<String, Void> { + @Override + protected String defaultAction(TypeMirror tm, Void ignore) { + return String.valueOf(tm.getKind()); + } + + @Override + public String visitUnion(UnionType t, Void ignore) { + return (t.getKind() + " " + t.getAlternatives()); + } + } +} From f20239694406a9b44ee7d0f1ed85f85fba79bc82 Mon Sep 17 00:00:00 2001 From: Vinnie Ryan <vinnie@openjdk.org> Date: Fri, 29 Apr 2011 00:21:54 +0100 Subject: [PATCH 074/147] 6578658: Request for raw RSA (NONEwithRSA) Signature support in SunMSCAPI Reviewed-by: wetmore --- .../sun/security/mscapi/RSASignature.java | 122 +++++++++- .../sun/security/mscapi/SunMSCAPI.java | 8 + .../native/sun/security/mscapi/security.cpp | 19 +- .../security/mscapi/SignUsingNONEwithRSA.java | 225 ++++++++++++++++++ .../security/mscapi/SignUsingNONEwithRSA.sh | 83 +++++++ 5 files changed, 445 insertions(+), 12 deletions(-) create mode 100644 jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.java create mode 100644 jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.sh diff --git a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java index 9a735d5fd89..f9419f9ccfc 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java +++ b/jdk/src/windows/classes/sun/security/mscapi/RSASignature.java @@ -49,6 +49,7 @@ import sun.security.rsa.RSAKeyFactory; * Objects should be instantiated by calling Signature.getInstance() using the * following algorithm names: * + * . "NONEwithRSA" * . "SHA1withRSA" * . "SHA256withRSA" * . "SHA384withRSA" @@ -56,7 +57,12 @@ import sun.security.rsa.RSAKeyFactory; * . "MD5withRSA" * . "MD2withRSA" * - * Note: RSA keys must be at least 512 bits long + * NOTE: RSA keys must be at least 512 bits long. + * + * NOTE: NONEwithRSA must be supplied with a pre-computed message digest. + * Only the following digest algorithms are supported: MD5, SHA-1, + * SHA-256, SHA-384, SHA-512 and a special-purpose digest algorithm + * which is a concatenation of SHA-1 and MD5 digests. * * @since 1.6 * @author Stanley Man-Kit Ho @@ -67,7 +73,7 @@ abstract class RSASignature extends java.security.SignatureSpi private final MessageDigest messageDigest; // message digest name - private final String messageDigestAlgorithm; + private String messageDigestAlgorithm; // flag indicating whether the digest has been reset private boolean needsReset; @@ -78,6 +84,13 @@ abstract class RSASignature extends java.security.SignatureSpi // the verification key private Key publicKey = null; + /** + * Constructs a new RSASignature. Used by Raw subclass. + */ + RSASignature() { + messageDigest = null; + messageDigestAlgorithm = null; + } /** * Constructs a new RSASignature. Used by subclasses. @@ -96,6 +109,94 @@ abstract class RSASignature extends java.security.SignatureSpi needsReset = false; } + // Nested class for NONEwithRSA signatures + public static final class Raw extends RSASignature { + + // the longest supported digest is 512 bits (SHA-512) + private static final int RAW_RSA_MAX = 64; + + private final byte[] precomputedDigest; + private int offset = 0; + + public Raw() { + precomputedDigest = new byte[RAW_RSA_MAX]; + } + + // Stores the precomputed message digest value. + @Override + protected void engineUpdate(byte b) throws SignatureException { + if (offset >= precomputedDigest.length) { + offset = RAW_RSA_MAX + 1; + return; + } + precomputedDigest[offset++] = b; + } + + // Stores the precomputed message digest value. + @Override + protected void engineUpdate(byte[] b, int off, int len) + throws SignatureException { + if (offset + len > precomputedDigest.length) { + offset = RAW_RSA_MAX + 1; + return; + } + System.arraycopy(b, off, precomputedDigest, offset, len); + offset += len; + } + + // Stores the precomputed message digest value. + @Override + protected void engineUpdate(ByteBuffer byteBuffer) { + int len = byteBuffer.remaining(); + if (len <= 0) { + return; + } + if (offset + len > precomputedDigest.length) { + offset = RAW_RSA_MAX + 1; + return; + } + byteBuffer.get(precomputedDigest, offset, len); + offset += len; + } + + @Override + protected void resetDigest(){ + offset = 0; + } + + // Returns the precomputed message digest value. + @Override + protected byte[] getDigestValue() throws SignatureException { + if (offset > RAW_RSA_MAX) { + throw new SignatureException("Message digest is too long"); + } + + // Determine the digest algorithm from the digest length + if (offset == 20) { + setDigestName("SHA1"); + } else if (offset == 36) { + setDigestName("SHA1+MD5"); + } else if (offset == 32) { + setDigestName("SHA-256"); + } else if (offset == 48) { + setDigestName("SHA-384"); + } else if (offset == 64) { + setDigestName("SHA-512"); + } else if (offset == 16) { + setDigestName("MD5"); + } else { + throw new SignatureException( + "Message digest length is not supported"); + } + + byte[] result = new byte[offset]; + System.arraycopy(precomputedDigest, 0, result, 0, offset); + offset = 0; + + return result; + } + } + public static final class SHA1 extends RSASignature { public SHA1() { super("SHA1"); @@ -204,18 +305,22 @@ abstract class RSASignature extends java.security.SignatureSpi /** * Resets the message digest if needed. */ - private void resetDigest() { + protected void resetDigest() { if (needsReset) { messageDigest.reset(); needsReset = false; } } - private byte[] getDigestValue() { + protected byte[] getDigestValue() throws SignatureException { needsReset = false; return messageDigest.digest(); } + protected void setDigestName(String name) { + messageDigestAlgorithm = name; + } + /** * Updates the data to be signed or verified * using the specified byte. @@ -277,9 +382,12 @@ abstract class RSASignature extends java.security.SignatureSpi byte[] hash = getDigestValue(); + // Omit the hash OID when generating a Raw signature + boolean noHashOID = this instanceof Raw; + // Sign hash using MS Crypto APIs - byte[] result = signHash(hash, hash.length, + byte[] result = signHash(noHashOID, hash, hash.length, messageDigestAlgorithm, privateKey.getHCryptProvider(), privateKey.getHCryptKey()); @@ -308,8 +416,8 @@ abstract class RSASignature extends java.security.SignatureSpi * Sign hash using Microsoft Crypto API with HCRYPTKEY. * The returned data is in little-endian. */ - private native static byte[] signHash(byte[] hash, int hashSize, - String hashAlgorithm, long hCryptProv, long hCryptKey) + private native static byte[] signHash(boolean noHashOID, byte[] hash, + int hashSize, String hashAlgorithm, long hCryptProv, long hCryptKey) throws SignatureException; /** diff --git a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java index b101e5b09a5..db8b3175c01 100644 --- a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java +++ b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java @@ -79,6 +79,12 @@ public final class SunMSCAPI extends Provider { /* * Signature engines */ + // NONEwithRSA must be supplied with a pre-computed message digest. + // Only the following digest algorithms are supported: MD5, SHA-1, + // SHA-256, SHA-384, SHA-512 and a special-purpose digest algorithm + // which is a concatenation of SHA-1 and MD5 digests. + map.put("Signature.NONEwithRSA", + "sun.security.mscapi.RSASignature$Raw"); map.put("Signature.SHA1withRSA", "sun.security.mscapi.RSASignature$SHA1"); map.put("Signature.SHA256withRSA", @@ -93,6 +99,8 @@ public final class SunMSCAPI extends Provider { "sun.security.mscapi.RSASignature$MD2"); // supported key classes + map.put("Signature.NONEwithRSA SupportedKeyClasses", + "sun.security.mscapi.Key"); map.put("Signature.SHA1withRSA SupportedKeyClasses", "sun.security.mscapi.Key"); map.put("Signature.SHA256withRSA SupportedKeyClasses", diff --git a/jdk/src/windows/native/sun/security/mscapi/security.cpp b/jdk/src/windows/native/sun/security/mscapi/security.cpp index 3b0421576c9..1a489d70eca 100644 --- a/jdk/src/windows/native/sun/security/mscapi/security.cpp +++ b/jdk/src/windows/native/sun/security/mscapi/security.cpp @@ -81,6 +81,8 @@ ALG_ID MapHashAlgorithm(JNIEnv *env, jstring jHashAlgorithm) { (strcmp("SHA-1", pszHashAlgorithm) == 0)) { algId = CALG_SHA1; + } else if (strcmp("SHA1+MD5", pszHashAlgorithm) == 0) { + algId = CALG_SSL3_SHAMD5; // a 36-byte concatenation of SHA-1 and MD5 } else if (strcmp("SHA-256", pszHashAlgorithm) == 0) { algId = CALG_SHA_256; } else if (strcmp("SHA-384", pszHashAlgorithm) == 0) { @@ -473,11 +475,12 @@ JNIEXPORT void JNICALL Java_sun_security_mscapi_Key_cleanUp /* * Class: sun_security_mscapi_RSASignature * Method: signHash - * Signature: ([BILjava/lang/String;JJ)[B + * Signature: (Z[BILjava/lang/String;JJ)[B */ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSASignature_signHash - (JNIEnv *env, jclass clazz, jbyteArray jHash, jint jHashSize, - jstring jHashAlgorithm, jlong hCryptProv, jlong hCryptKey) + (JNIEnv *env, jclass clazz, jboolean noHashOID, jbyteArray jHash, + jint jHashSize, jstring jHashAlgorithm, jlong hCryptProv, + jlong hCryptKey) { HCRYPTHASH hHash = NULL; jbyte* pHashBuffer = NULL; @@ -548,14 +551,20 @@ JNIEXPORT jbyteArray JNICALL Java_sun_security_mscapi_RSASignature_signHash // Determine size of buffer DWORD dwBufLen = 0; - if (::CryptSignHash(hHash, dwKeySpec, NULL, NULL, NULL, &dwBufLen) == FALSE) + DWORD dwFlags = 0; + + if (noHashOID == JNI_TRUE) { + dwFlags = CRYPT_NOHASHOID; // omit hash OID in NONEwithRSA signature + } + + if (::CryptSignHash(hHash, dwKeySpec, NULL, dwFlags, NULL, &dwBufLen) == FALSE) { ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); __leave; } pSignedHashBuffer = new jbyte[dwBufLen]; - if (::CryptSignHash(hHash, dwKeySpec, NULL, NULL, (BYTE*)pSignedHashBuffer, &dwBufLen) == FALSE) + if (::CryptSignHash(hHash, dwKeySpec, NULL, dwFlags, (BYTE*)pSignedHashBuffer, &dwBufLen) == FALSE) { ThrowException(env, SIGNATURE_EXCEPTION, GetLastError()); __leave; diff --git a/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.java b/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.java new file mode 100644 index 00000000000..58934767cd8 --- /dev/null +++ b/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.java @@ -0,0 +1,225 @@ +/* + * Copyright (c) 2011, 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. + */ + +/** + * @see SignUsingNONEwithRSA.sh + */ + +import java.security.*; +import java.util.*; + +public class SignUsingNONEwithRSA { + + private static final List<byte[]> precomputedHashes = Arrays.asList( + // A MD5 hash + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 + }, + // A SHA-1 hash + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20 + }, + // A concatenation of SHA-1 and MD5 hashes (used during SSL handshake) + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36 + }, + // A SHA-256 hash + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, + 0x31, 0x32 + }, + // A SHA-384 hash + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48 + }, + // A SHA-512 hash + new byte[] { + 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x10, + 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x20, + 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x30, + 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x40, + 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x50, + 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x60, + 0x61, 0x62, 0x63, 0x64 + }); + + private static List<byte[]> generatedSignatures = new ArrayList<>(); + + public static void main(String[] args) throws Exception { + + Provider[] providers = Security.getProviders("Signature.NONEwithRSA"); + if (providers == null) { + System.out.println("No JCE providers support the " + + "'Signature.NONEwithRSA' algorithm"); + System.out.println("Skipping this test..."); + return; + + } else { + System.out.println("The following JCE providers support the " + + "'Signature.NONEwithRSA' algorithm: "); + for (Provider provider : providers) { + System.out.println(" " + provider.getName()); + } + } + System.out.println("-------------------------------------------------"); + + KeyPair keys = getKeysFromKeyStore(); + signAllUsing("SunMSCAPI", keys.getPrivate()); + System.out.println("-------------------------------------------------"); + + verifyAllUsing("SunMSCAPI", keys.getPublic()); + System.out.println("-------------------------------------------------"); + + verifyAllUsing("SunJCE", keys.getPublic()); + System.out.println("-------------------------------------------------"); + + keys = generateKeys(); + signAllUsing("SunJCE", keys.getPrivate()); + System.out.println("-------------------------------------------------"); + + verifyAllUsing("SunMSCAPI", keys.getPublic()); + System.out.println("-------------------------------------------------"); + + } + + private static KeyPair getKeysFromKeyStore() throws Exception { + KeyStore ks = KeyStore.getInstance("Windows-MY", "SunMSCAPI"); + ks.load(null, null); + System.out.println("Loaded keystore: Windows-MY"); + + Enumeration e = ks.aliases(); + PrivateKey privateKey = null; + PublicKey publicKey = null; + + while (e.hasMoreElements()) { + String alias = (String) e.nextElement(); + if (alias.equals("6578658")) { + System.out.println("Loaded entry: " + alias); + privateKey = (PrivateKey) ks.getKey(alias, null); + publicKey = (PublicKey) ks.getCertificate(alias).getPublicKey(); + } + } + if (privateKey == null || publicKey == null) { + throw new Exception("Cannot load the keys need to run this test"); + } + + return new KeyPair(publicKey, privateKey); + } + + + private static KeyPair generateKeys() throws Exception { + KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); + keyGen.initialize(1024, null); + KeyPair pair = keyGen.generateKeyPair(); + PrivateKey privateKey = pair.getPrivate(); + PublicKey publicKey = pair.getPublic(); + + if (privateKey == null || publicKey == null) { + throw new Exception("Cannot load the keys need to run this test"); + } + + return new KeyPair(publicKey, privateKey); + } + + private static void signAllUsing(String providerName, PrivateKey privateKey) + throws Exception { + Signature sig1 = Signature.getInstance("NONEwithRSA", providerName); + if (sig1 == null) { + throw new Exception("'NONEwithRSA' is not supported"); + } + if (sig1.getProvider() != null) { + System.out.println("Using NONEwithRSA signer from the " + + sig1.getProvider().getName() + " JCE provider"); + } else { + System.out.println( + "Using NONEwithRSA signer from the internal JCE provider"); + } + + System.out.println("Using key: " + privateKey); + generatedSignatures.clear(); + for (byte[] hash : precomputedHashes) { + sig1.initSign(privateKey); + sig1.update(hash); + + try { + + byte [] sigBytes = sig1.sign(); + System.out.println("\nGenerated RSA signature over a " + + hash.length + "-byte hash (signature length: " + + sigBytes.length * 8 + " bits)"); + System.out.println(String.format("0x%0" + + (sigBytes.length * 2) + "x", + new java.math.BigInteger(1, sigBytes))); + generatedSignatures.add(sigBytes); + + } catch (SignatureException se) { + System.out.println("Error generating RSA signature: " + se); + } + } + } + + private static void verifyAllUsing(String providerName, PublicKey publicKey) + throws Exception { + Signature sig1 = Signature.getInstance("NONEwithRSA", providerName); + if (sig1.getProvider() != null) { + System.out.println("\nUsing NONEwithRSA verifier from the " + + sig1.getProvider().getName() + " JCE provider"); + } else { + System.out.println( + "\nUsing NONEwithRSA verifier from the internal JCE provider"); + } + + System.out.println("Using key: " + publicKey); + + int i = 0; + for (byte[] hash : precomputedHashes) { + + byte[] sigBytes = generatedSignatures.get(i++); + System.out.println("\nVerifying RSA Signature over a " + + hash.length + "-byte hash (signature length: " + + sigBytes.length * 8 + " bits)"); + System.out.println(String.format("0x%0" + + (sigBytes.length * 2) + "x", + new java.math.BigInteger(1, sigBytes))); + + sig1.initVerify(publicKey); + sig1.update(hash); + if (sig1.verify(sigBytes)) { + System.out.println("Verify PASSED"); + } else { + throw new Exception("Verify FAILED"); + } + } + } +} diff --git a/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.sh b/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.sh new file mode 100644 index 00000000000..c89a8687877 --- /dev/null +++ b/jdk/test/sun/security/mscapi/SignUsingNONEwithRSA.sh @@ -0,0 +1,83 @@ +#!/bin/sh + +# +# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# This code is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License version 2 only, as +# published by the Free Software Foundation. +# +# This code is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# version 2 for more details (a copy is included in the LICENSE file that +# accompanied this code). +# +# You should have received a copy of the GNU General Public License version +# 2 along with this work; if not, write to the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. +# +# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA +# or visit www.oracle.com if you need additional information or have any +# questions. +# + + +# @test +# @bug 6578658 +# @run shell SignUsingNONEwithRSA.sh +# @summary Sign using the NONEwithRSA signature algorithm from SunMSCAPI + +# set a few environment variables so that the shell-script can run stand-alone +# in the source directory +if [ "${TESTSRC}" = "" ] ; then + TESTSRC="." +fi + +if [ "${TESTCLASSES}" = "" ] ; then + TESTCLASSES="." +fi + +if [ "${TESTJAVA}" = "" ] ; then + echo "TESTJAVA not set. Test cannot execute." + echo "FAILED!!!" + exit 1 +fi + +OS=`uname -s` +case "$OS" in + Windows* | CYGWIN* ) + + echo "Creating a temporary RSA keypair in the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -genkeypair \ + -storetype Windows-My \ + -keyalg RSA \ + -alias 6578658 \ + -dname "cn=6578658,c=US" \ + -noprompt + + echo + echo "Running the test..." + ${TESTJAVA}/bin/javac -d . ${TESTSRC}\\SignUsingNONEwithRSA.java + ${TESTJAVA}/bin/java SignUsingNONEwithRSA + + rc=$? + + echo + echo "Removing the temporary RSA keypair from the Windows-My store..." + ${TESTJAVA}/bin/keytool \ + -delete \ + -storetype Windows-My \ + -alias 6578658 + + echo done. + exit $rc + ;; + + * ) + echo "This test is not intended for '$OS' - passing test" + exit 0 + ;; +esac From 13cf1a72777057c4043efa4c8ab714e7432db3af Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:13 -0700 Subject: [PATCH 075/147] Added tag jdk7-b140 for changeset 90e228752038 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 0c499488b3e..3bdb4f112e3 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -114,3 +114,4 @@ ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134 7654afc6a29e43cb0a1343ce7f1287bf690d5e5f jdk7-b137 fc47c97bbbd91b1f774d855c48a7e285eb1a351a jdk7-b138 7ed6d0b9aaa12320832a7ddadb88d6d8d0dda4c1 jdk7-b139 +dcfe74f1c6553c556e7d361c30b0b614eb5e40f6 jdk7-b140 From 6ae3e039ab0336fffae8501fabbc44954a4d6a81 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:18 -0700 Subject: [PATCH 076/147] Added tag jdk7-b140 for changeset 837037533544 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 4e2aad7b7fe..0cc360827c3 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -114,3 +114,4 @@ e0b72ae5dc5e824b342801c8d1d336a55eb54e2c jdk7-b135 a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137 78d8cf04697e9df54f7f11e195b7da29b8e345a2 jdk7-b138 60b074ec6fcf5cdf9efce22fdfb02326ed8fa2d3 jdk7-b139 +cdf5d19ec142424489549025e9c42e51f32cf688 jdk7-b140 From 874944e5bc5615b73ce05869589a60daa3e17a20 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:24 -0700 Subject: [PATCH 077/147] Added tag jdk7-b140 for changeset 33e592b5ff17 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 145ab668bff..5478ecfeaf9 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -166,3 +166,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 0930dc920c185afbf40fed9a655290b8e5b16783 hs21-b08 611e19a16519d6fb5deea9ab565336e6e6ee475d jdk7-b139 611e19a16519d6fb5deea9ab565336e6e6ee475d hs21-b09 +d283b82966712b353fa307845a1316da42a355f4 jdk7-b140 From 36230d8a9031d03e9233f41a19f0f9852db1a5ce Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:28 -0700 Subject: [PATCH 078/147] Added tag jdk7-b140 for changeset 2c31217f748a --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index b8136de0b51..78d0d9f5a94 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -114,3 +114,4 @@ d56b326ae0544fc16c3e0d0285876f3c82054db2 jdk7-b134 1d87f7460cde7f8f30af668490f82b52b879bfd8 jdk7-b137 be3758943770a0a3dd4be6a1cb4063507c4d7062 jdk7-b138 28c7c0ed2444607829ba11ad827f8d52197a2830 jdk7-b139 +c8136fd161c83917f87e93b14fa2ba3483f9be83 jdk7-b140 From 12324e11fb1e0c0dec6746877b486bda31ad54e1 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:29 -0700 Subject: [PATCH 079/147] Added tag jdk7-b140 for changeset 3202e475f9d9 --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 0ef77285c96..2cfc85038bf 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -114,3 +114,4 @@ c81d289c9a532d6e94af3c09d856a2a20529040f jdk7-b136 ccea3282991ce8b678e188cf32a8239f76ff3bfa jdk7-b137 cc956c8a8255583535597e9a63db23c510e9a063 jdk7-b138 c025078c8362076503bb83b8e4da14ba7b347940 jdk7-b139 +82a9022c4f21b1313023c8303b557a17c4106701 jdk7-b140 From bf38109be47b9acb0eb7ec1006c9a6a655958b7d Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:34 -0700 Subject: [PATCH 080/147] Added tag jdk7-b140 for changeset adbb12180d75 --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index c3032b54af6..68e25fecbb6 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -114,3 +114,4 @@ aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136 29296ea6529a418037ccce95903249665ef31c11 jdk7-b137 60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138 d80954a89b49fda47c0c5cace65a17f5a758b8bd jdk7-b139 +9315c733fb17ddfb9fb44be7e0ffea37bf3c727d jdk7-b140 From a4dd2f32d7913230248862ba031d798bbbeb7ce9 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Thu, 28 Apr 2011 17:44:47 -0700 Subject: [PATCH 081/147] Added tag jdk7-b140 for changeset c0c0f0374f67 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 8ea0912e659..2ce033497a0 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -114,3 +114,4 @@ ed0f7f1f9511db4f9615b1426d22f8b961629275 jdk7-b136 a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137 53f212bed4f4304dce7f0bf0fa01c998c65bacd6 jdk7-b138 853b6bb99f9b58eb7cf8211c67d3b6e4f1228a3e jdk7-b139 +258e6654aba25aab91c9ba3b4c53d05bc895a86c jdk7-b140 From faa5e45f7a62b013c7b56e105333dff64a306f01 Mon Sep 17 00:00:00 2001 From: Joe Darcy <darcy@openjdk.org> Date: Thu, 28 Apr 2011 17:51:25 -0700 Subject: [PATCH 082/147] 7038843: IIOP serialization fails with NullPointerException when serializing Throwable Reviewed-by: dholmes, mchung --- .../share/classes/java/lang/Throwable.java | 24 ++++++++----------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/jdk/src/share/classes/java/lang/Throwable.java b/jdk/src/share/classes/java/lang/Throwable.java index fdfa2525b5f..d70fe26841a 100644 --- a/jdk/src/share/classes/java/lang/Throwable.java +++ b/jdk/src/share/classes/java/lang/Throwable.java @@ -848,10 +848,9 @@ public class Throwable implements Serializable { throw new NullPointerException("stackTrace[" + i + "]"); } - if (this.stackTrace == null) // Immutable stack - return; - synchronized (this) { + if (this.stackTrace == null) // Immutable stack + return; this.stackTrace = defensiveCopy; } } @@ -958,18 +957,15 @@ public class Throwable implements Serializable { // trace field is a valid value indicating the stack trace // should not be set. getOurStackTrace(); - ObjectOutputStream.PutField fields = s.putFields(); - fields.put("detailMessage", detailMessage); - fields.put("cause", cause); - // Serialize a null stacktrace using the stack trace sentinel. - if (stackTrace == null) - fields.put("stackTrace", SentinelHolder.STACK_TRACE_SENTINEL); - else - fields.put("stackTrace", stackTrace); - fields.put("suppressedExceptions", suppressedExceptions); - - s.writeFields(); + StackTraceElement[] oldStackTrace = stackTrace; + try { + if (stackTrace == null) + stackTrace = SentinelHolder.STACK_TRACE_SENTINEL; + s.defaultWriteObject(); + } finally { + stackTrace = oldStackTrace; + } } /** From ce5fc02a16957194b2658206746c922990bb2859 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Thu, 28 Apr 2011 20:15:11 -0700 Subject: [PATCH 083/147] 7040228: [zh_TW] extra (C) on cancel button on File Chooser dialog Reviewed-by: yhuang --- .../java/swing/plaf/gtk/resources/gtk.properties | 12 ++++-------- .../swing/plaf/gtk/resources/gtk_ja.properties | 14 +++++--------- .../swing/plaf/gtk/resources/gtk_ko.properties | 14 +++++--------- .../swing/plaf/gtk/resources/gtk_zh_CN.properties | 14 +++++--------- .../swing/plaf/gtk/resources/gtk_zh_TW.properties | 14 +++++--------- .../internal/plaf/basic/resources/basic.properties | 2 +- .../plaf/basic/resources/basic_ja.properties | 2 +- .../plaf/basic/resources/basic_ko.properties | 2 +- .../plaf/basic/resources/basic_zh_CN.properties | 2 +- .../plaf/basic/resources/basic_zh_TW.properties | 2 +- 10 files changed, 29 insertions(+), 49 deletions(-) diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties index 904a49352eb..45f4a4dc7a6 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk.properties @@ -56,9 +56,9 @@ FileChooser.deleteFileButtonMnemonic=76 FileChooser.renameFileButtonText=Rename File FileChooser.renameFileButtonMnemonic=82 FileChooser.cancelButtonText=Cancel -FileChooser.cancelButtonMnemonic=67 +#FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=OK -FileChooser.saveButtonMnemonic=79 +#FileChooser.saveButtonMnemonic=79 FileChooser.openButtonText=OK FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=Save @@ -79,9 +79,5 @@ FileChooser.renameFileDialogText=Rename file "{0}" to FileChooser.renameFileErrorTitle=Error FileChooser.renameFileErrorText=Error renaming file "{0}" to "{1}" -# dummy resource added for translation automation -OptionPane.okButtonText=OK -OptionPane.okButtonMnemonic=79 -# dummy resource added for translation automation -OptionPane.cancelButtonText=Cancel -OptionPane.cancelButtonMnemonic=67 +#OptionPane.okButtonMnemonic=79 +#OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties index c7ff0bb97a2..30560e91620 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ja.properties @@ -55,11 +55,11 @@ FileChooser.deleteFileButtonText=\u30D5\u30A1\u30A4\u30EB\u306E\u524A\u9664(L) FileChooser.deleteFileButtonMnemonic=76 FileChooser.renameFileButtonText=\u30D5\u30A1\u30A4\u30EB\u306E\u540D\u524D\u5909\u66F4(R) FileChooser.renameFileButtonMnemonic=82 -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=OK(O) +FileChooser.saveButtonText=OK FileChooser.saveButtonMnemonic=79 -FileChooser.openButtonText=OK(O) +FileChooser.openButtonText=OK FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u958B\u304F @@ -79,10 +79,6 @@ FileChooser.renameFileDialogText=\u30D5\u30A1\u30A4\u30EB"{0}"\u3092\u6B21\u306E FileChooser.renameFileErrorTitle=\u30A8\u30E9\u30FC FileChooser.renameFileErrorText=\u30D5\u30A1\u30A4\u30EB"{0}"\u306E"{1}"\u3078\u306E\u5909\u66F4\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -# dummy resource added for translation automation -OptionPane.okButtonText=OK(O) -OptionPane.okButtonMnemonic=79 -# dummy resource added for translation automation -OptionPane.cancelButtonText=\u53D6\u6D88(C) -OptionPane.cancelButtonMnemonic=67 +#OptionPane.okButtonMnemonic=79 +#OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties index cb029e7b025..27802636b7c 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_ko.properties @@ -55,11 +55,11 @@ FileChooser.deleteFileButtonText=\uD30C\uC77C \uC0AD\uC81C(L) FileChooser.deleteFileButtonMnemonic=76 FileChooser.renameFileButtonText=\uD30C\uC77C \uC774\uB984 \uBC14\uAFB8\uAE30(R) FileChooser.renameFileButtonMnemonic=82 -FileChooser.cancelButtonText=\uCDE8\uC18C(C) +FileChooser.cancelButtonText=\uCDE8\uC18C FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\uD655\uC778(O) +FileChooser.saveButtonText=\uD655\uC778 FileChooser.saveButtonMnemonic=79 -FileChooser.openButtonText=\uD655\uC778(O) +FileChooser.openButtonText=\uD655\uC778 FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\uC800\uC7A5 FileChooser.openDialogTitleText=\uC5F4\uAE30 @@ -79,10 +79,6 @@ FileChooser.renameFileDialogText="{0}" \uD30C\uC77C\uC758 \uC774\uB984 \uBC14\uA FileChooser.renameFileErrorTitle=\uC624\uB958 FileChooser.renameFileErrorText="{0}" \uD30C\uC77C\uC758 \uC774\uB984\uC744 "{1}"(\uC73C)\uB85C \uBC14\uAFB8\uB294 \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4. -# dummy resource added for translation automation -OptionPane.okButtonText=\uD655\uC778(O) -OptionPane.okButtonMnemonic=79 -# dummy resource added for translation automation -OptionPane.cancelButtonText=\uCDE8\uC18C(C) -OptionPane.cancelButtonMnemonic=67 +#OptionPane.okButtonMnemonic=79 +#OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties index 58506b0107d..9c7793c62ff 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_CN.properties @@ -55,11 +55,11 @@ FileChooser.deleteFileButtonText=\u5220\u9664\u6587\u4EF6(L) FileChooser.deleteFileButtonMnemonic=76 FileChooser.renameFileButtonText=\u91CD\u547D\u540D\u6587\u4EF6(R) FileChooser.renameFileButtonMnemonic=82 -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u786E\u5B9A(O) +FileChooser.saveButtonText=\u786E\u5B9A FileChooser.saveButtonMnemonic=79 -FileChooser.openButtonText=\u786E\u5B9A(O) +FileChooser.openButtonText=\u786E\u5B9A FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u4FDD\u5B58 FileChooser.openDialogTitleText=\u6253\u5F00 @@ -79,10 +79,6 @@ FileChooser.renameFileDialogText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E FileChooser.renameFileErrorTitle=\u9519\u8BEF FileChooser.renameFileErrorText=\u5C06\u6587\u4EF6 "{0}" \u91CD\u547D\u540D\u4E3A "{1}" \u65F6\u51FA\u9519 -# dummy resource added for translation automation -OptionPane.okButtonText=\u786E\u5B9A(O) -OptionPane.okButtonMnemonic=79 -# dummy resource added for translation automation -OptionPane.cancelButtonText=\u53D6\u6D88(C) -OptionPane.cancelButtonMnemonic=67 +#OptionPane.okButtonMnemonic=79 +#OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties index ac8c732dc6d..68fdd917034 100644 --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/resources/gtk_zh_TW.properties @@ -55,11 +55,11 @@ FileChooser.deleteFileButtonText=\u522A\u9664\u6A94\u6848(L) FileChooser.deleteFileButtonMnemonic=76 FileChooser.renameFileButtonText=\u91CD\u65B0\u547D\u540D\u6A94\u6848(R) FileChooser.renameFileButtonMnemonic=82 -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 -FileChooser.saveButtonText=\u78BA\u5B9A(O) +FileChooser.saveButtonText=\u78BA\u5B9A FileChooser.saveButtonMnemonic=79 -FileChooser.openButtonText=\u78BA\u5B9A(O) +FileChooser.openButtonText=\u78BA\u5B9A FileChooser.openButtonMnemonic=79 FileChooser.saveDialogTitleText=\u5132\u5B58 FileChooser.openDialogTitleText=\u958B\u555F @@ -79,10 +79,6 @@ FileChooser.renameFileDialogText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u54 FileChooser.renameFileErrorTitle=\u932F\u8AA4 FileChooser.renameFileErrorText=\u5C07\u6A94\u6848 "{0}" \u91CD\u65B0\u547D\u540D\u70BA "{1}" \u6642\u51FA\u73FE\u932F\u8AA4 -# dummy resource added for translation automation -OptionPane.okButtonText=\u78BA\u5B9A(O) -OptionPane.okButtonMnemonic=79 -# dummy resource added for translation automation -OptionPane.cancelButtonText=\u53D6\u6D88(C) -OptionPane.cancelButtonMnemonic=67 +#OptionPane.okButtonMnemonic=79 +#OptionPane.cancelButtonMnemonic=67 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties index 549e5cfc853..109538ac90e 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic.properties @@ -57,7 +57,7 @@ FileChooser.renameErrorFileExistsText=Cannot rename {0}: A file with the name yo Specify a different file name. FileChooser.acceptAllFileFilterText=All Files FileChooser.cancelButtonText=Cancel -FileChooser.cancelButtonMnemonic=67 +#FileChooser.cancelButtonMnemonic=67 // not needed? FileChooser.saveButtonText=Save FileChooser.saveButtonMnemonic=83 // not needed? FileChooser.openButtonText=Open diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties index 6a01a4ae528..7b946411855 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ja.properties @@ -55,7 +55,7 @@ FileChooser.renameErrorTitleText=\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30D FileChooser.renameErrorText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093 FileChooser.renameErrorFileExistsText={0}\u306E\u540D\u524D\u3092\u5909\u66F4\u3067\u304D\u307E\u305B\u3093: \u6307\u5B9A\u3057\u305F\u540D\u524D\u306E\u30D5\u30A1\u30A4\u30EB\u306F\u3059\u3067\u306B\u5B58\u5728\u3057\u307E\u3059\u3002\u5225\u306E\u30D5\u30A1\u30A4\u30EB\u540D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 FileChooser.acceptAllFileFilterText=\u3059\u3079\u3066\u306E\u30D5\u30A1\u30A4\u30EB -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties index 970e57bf375..592d4672442 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties @@ -55,7 +55,7 @@ FileChooser.renameErrorTitleText=\uD30C\uC77C \uB610\uB294 \uD3F4\uB354 \uC774\u FileChooser.renameErrorText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. FileChooser.renameErrorFileExistsText={0}\uC758 \uC774\uB984\uC744 \uBC14\uAFC0 \uC218 \uC5C6\uC74C: \uC9C0\uC815\uD55C \uC774\uB984\uC744 \uC0AC\uC6A9\uD558\uB294 \uD30C\uC77C\uC774 \uC874\uC7AC\uD569\uB2C8\uB2E4. \uB2E4\uB978 \uD30C\uC77C \uC774\uB984\uC744 \uC9C0\uC815\uD558\uC2ED\uC2DC\uC624. FileChooser.acceptAllFileFilterText=\uBAA8\uB4E0 \uD30C\uC77C -FileChooser.cancelButtonText=\uCDE8\uC18C(C) +FileChooser.cancelButtonText=\uCDE8\uC18C FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=\uC800\uC7A5 FileChooser.saveButtonMnemonic=83 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties index 0714ac53c35..10cecd846d9 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties @@ -55,7 +55,7 @@ FileChooser.renameErrorTitleText=\u91CD\u547D\u540D\u6587\u4EF6\u6216\u6587\u4EF FileChooser.renameErrorText=\u65E0\u6CD5\u91CD\u547D\u540D{0} FileChooser.renameErrorFileExistsText=\u65E0\u6CD5\u91CD\u547D\u540D{0}: \u5DF2\u5B58\u5728\u5177\u6709\u6240\u6307\u5B9A\u540D\u79F0\u7684\u6587\u4EF6\u3002\u8BF7\u6307\u5B9A\u5176\u4ED6\u6587\u4EF6\u540D\u3002 FileChooser.acceptAllFileFilterText=\u6240\u6709\u6587\u4EF6 -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=\u4FDD\u5B58 FileChooser.saveButtonMnemonic=83 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties index 141938565c9..53a4bfb989b 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties @@ -55,7 +55,7 @@ FileChooser.renameErrorTitleText=\u91CD\u65B0\u547D\u540D\u6A94\u6848\u6216\u8CC FileChooser.renameErrorText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0} FileChooser.renameErrorFileExistsText=\u7121\u6CD5\u91CD\u65B0\u547D\u540D {0}: \u5DF2\u7D93\u5B58\u5728\u60A8\u6240\u6307\u5B9A\u540D\u7A31\u7684\u6A94\u6848\u3002\u8ACB\u6307\u5B9A\u4E0D\u540C\u7684\u540D\u7A31\u3002 FileChooser.acceptAllFileFilterText=\u6240\u6709\u6A94\u6848 -FileChooser.cancelButtonText=\u53D6\u6D88(C) +FileChooser.cancelButtonText=\u53D6\u6D88 FileChooser.cancelButtonMnemonic=67 FileChooser.saveButtonText=\u5132\u5B58 FileChooser.saveButtonMnemonic=83 From 4463efaf617b30eb9ac7e4a121c3876db3c30fd4 Mon Sep 17 00:00:00 2001 From: Xueming Shen <sherman@openjdk.org> Date: Thu, 28 Apr 2011 20:18:57 -0700 Subject: [PATCH 084/147] 7037261: j.l.Character.isLowerCase/isUpperCase need to match the Unicode Standard Updated j.l.c.lsLowerCase/isUpperCase Reviewed-by: okutsu --- jdk/make/java/java/FILES_java.gmk | 1 + jdk/make/java/java/Makefile | 5 + .../CharacterData00.java.template | 26 + .../CharacterData01.java.template | 26 + .../CharacterData02.java.template | 28 +- .../CharacterData0E.java.template | 28 +- .../CharacterDataLatin1.java.template | 28 +- jdk/make/tools/UnicodeData/PropList.txt | 1296 +++++++++++++++++ .../generatecharacter/GenerateCharacter.java | 166 ++- .../tools/generatecharacter/PropList.java | 102 ++ .../share/classes/java/lang/Character.java | 74 +- .../classes/java/lang/CharacterData.java | 17 + jdk/test/java/lang/Character/CheckProp.java | 117 ++ jdk/test/java/lang/Character/PropList.txt | 1296 +++++++++++++++++ 14 files changed, 3147 insertions(+), 63 deletions(-) create mode 100644 jdk/make/tools/UnicodeData/PropList.txt create mode 100644 jdk/make/tools/src/build/tools/generatecharacter/PropList.java create mode 100644 jdk/test/java/lang/Character/CheckProp.java create mode 100644 jdk/test/java/lang/Character/PropList.txt diff --git a/jdk/make/java/java/FILES_java.gmk b/jdk/make/java/java/FILES_java.gmk index d07efda0aa1..abb63cec2e6 100644 --- a/jdk/make/java/java/FILES_java.gmk +++ b/jdk/make/java/java/FILES_java.gmk @@ -356,6 +356,7 @@ JAVA_JAVA_java = \ java/util/regex/Matcher.java \ java/util/regex/MatchResult.java \ java/util/regex/ASCII.java \ + java/util/regex/UnicodeProp.java \ java/util/regex/PatternSyntaxException.java \ java/util/prefs/Preferences.java \ java/util/prefs/AbstractPreferences.java \ diff --git a/jdk/make/java/java/Makefile b/jdk/make/java/java/Makefile index a51082614d3..787d881b6ee 100644 --- a/jdk/make/java/java/Makefile +++ b/jdk/make/java/java/Makefile @@ -345,30 +345,35 @@ $(GENSRCDIR)/java/lang/CharacterDataLatin1.java \ -template $(CHARACTERDATA)/CharacterDataLatin1.java.template \ -spec $(UNICODEDATA)/UnicodeData.txt \ -specialcasing $(UNICODEDATA)/SpecialCasing.txt \ + -proplist $(UNICODEDATA)/PropList.txt \ -o $(GENSRCDIR)/java/lang/CharacterDataLatin1.java -string \ -usecharforbyte -latin1 8 $(BOOT_JAVA_CMD) -jar $(GENERATECHARACTER_JARFILE) -plane 0 \ -template $(CHARACTERDATA)/CharacterData00.java.template \ -spec $(UNICODEDATA)/UnicodeData.txt \ -specialcasing $(UNICODEDATA)/SpecialCasing.txt \ + -proplist $(UNICODEDATA)/PropList.txt \ -o $(GENSRCDIR)/java/lang/CharacterData00.java -string \ -usecharforbyte 11 4 1 $(BOOT_JAVA_CMD) -jar $(GENERATECHARACTER_JARFILE) -plane 1 \ -template $(CHARACTERDATA)/CharacterData01.java.template \ -spec $(UNICODEDATA)/UnicodeData.txt \ -specialcasing $(UNICODEDATA)/SpecialCasing.txt \ + -proplist $(UNICODEDATA)/PropList.txt \ -o $(GENSRCDIR)/java/lang/CharacterData01.java -string \ -usecharforbyte 11 4 1 $(BOOT_JAVA_CMD) -jar $(GENERATECHARACTER_JARFILE) -plane 2 \ -template $(CHARACTERDATA)/CharacterData02.java.template \ -spec $(UNICODEDATA)/UnicodeData.txt \ -specialcasing $(UNICODEDATA)/SpecialCasing.txt \ + -proplist $(UNICODEDATA)/PropList.txt \ -o $(GENSRCDIR)/java/lang/CharacterData02.java -string \ -usecharforbyte 11 4 1 $(BOOT_JAVA_CMD) -jar $(GENERATECHARACTER_JARFILE) -plane 14 \ -template $(CHARACTERDATA)/CharacterData0E.java.template \ -spec $(UNICODEDATA)/UnicodeData.txt \ -specialcasing $(UNICODEDATA)/SpecialCasing.txt \ + -proplist $(UNICODEDATA)/PropList.txt \ -o $(GENSRCDIR)/java/lang/CharacterData0E.java -string \ -usecharforbyte 11 4 1 diff --git a/jdk/make/tools/GenerateCharacter/CharacterData00.java.template b/jdk/make/tools/GenerateCharacter/CharacterData00.java.template index 5a1fd5a6364..8de328869af 100644 --- a/jdk/make/tools/GenerateCharacter/CharacterData00.java.template +++ b/jdk/make/tools/GenerateCharacter/CharacterData00.java.template @@ -73,11 +73,37 @@ class CharacterData00 extends CharacterData { return props; } + int getPropertiesEx(int ch) { + char offset = (char)ch; + int props = $$LookupEx(offset); + return props; + } + int getType(int ch) { int props = getProperties(ch); return (props & $$maskType); } + boolean isOtherLowercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherLowercase) != 0; + } + + boolean isOtherUppercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherUppercase) != 0; + } + + boolean isOtherAlphabetic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherAlphabetic) != 0; + } + + boolean isIdeographic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskIdeographic) != 0; + } + boolean isJavaIdentifierStart(int ch) { int props = getProperties(ch); return ((props & $$maskIdentifierInfo) >= $$lowJavaStart); diff --git a/jdk/make/tools/GenerateCharacter/CharacterData01.java.template b/jdk/make/tools/GenerateCharacter/CharacterData01.java.template index fef710002ca..1245eb13c07 100644 --- a/jdk/make/tools/GenerateCharacter/CharacterData01.java.template +++ b/jdk/make/tools/GenerateCharacter/CharacterData01.java.template @@ -72,11 +72,37 @@ class CharacterData01 extends CharacterData { return props; } + int getPropertiesEx(int ch) { + char offset = (char)ch; + int props = $$LookupEx(offset); + return props; + } + int getType(int ch) { int props = getProperties(ch); return (props & $$maskType); } + boolean isOtherLowercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherLowercase) != 0; + } + + boolean isOtherUppercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherUppercase) != 0; + } + + boolean isOtherAlphabetic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherAlphabetic) != 0; + } + + boolean isIdeographic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskIdeographic) != 0; + } + boolean isJavaIdentifierStart(int ch) { int props = getProperties(ch); return ((props & $$maskIdentifierInfo) >= $$lowJavaStart); diff --git a/jdk/make/tools/GenerateCharacter/CharacterData02.java.template b/jdk/make/tools/GenerateCharacter/CharacterData02.java.template index 845decc3d1a..7719e4a6295 100644 --- a/jdk/make/tools/GenerateCharacter/CharacterData02.java.template +++ b/jdk/make/tools/GenerateCharacter/CharacterData02.java.template @@ -66,11 +66,37 @@ class CharacterData02 extends CharacterData { */ int getProperties(int ch) { - char offset = (char)ch; + char offset = (char)ch; int props = $$Lookup(offset); return props; } + int getPropertiesEx(int ch) { + char offset = (char)ch; + int props = $$LookupEx(offset); + return props; + } + + boolean isOtherLowercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherLowercase) != 0; + } + + boolean isOtherUppercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherUppercase) != 0; + } + + boolean isOtherAlphabetic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherAlphabetic) != 0; + } + + boolean isIdeographic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskIdeographic) != 0; + } + int getType(int ch) { int props = getProperties(ch); return (props & $$maskType); diff --git a/jdk/make/tools/GenerateCharacter/CharacterData0E.java.template b/jdk/make/tools/GenerateCharacter/CharacterData0E.java.template index 12abce182d2..15416ffc7ad 100644 --- a/jdk/make/tools/GenerateCharacter/CharacterData0E.java.template +++ b/jdk/make/tools/GenerateCharacter/CharacterData0E.java.template @@ -66,11 +66,37 @@ class CharacterData0E extends CharacterData { */ int getProperties(int ch) { - char offset = (char)ch; + char offset = (char)ch; int props = $$Lookup(offset); return props; } + int getPropertiesEx(int ch) { + char offset = (char)ch; + int props = $$LookupEx(offset); + return props; + } + + boolean isOtherLowercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherLowercase) != 0; + } + + boolean isOtherUppercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherUppercase) != 0; + } + + boolean isOtherAlphabetic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherAlphabetic) != 0; + } + + boolean isIdeographic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskIdeographic) != 0; + } + int getType(int ch) { int props = getProperties(ch); return (props & $$maskType); diff --git a/jdk/make/tools/GenerateCharacter/CharacterDataLatin1.java.template b/jdk/make/tools/GenerateCharacter/CharacterDataLatin1.java.template index e4646d16bbe..ed2e38e6aa6 100644 --- a/jdk/make/tools/GenerateCharacter/CharacterDataLatin1.java.template +++ b/jdk/make/tools/GenerateCharacter/CharacterDataLatin1.java.template @@ -67,11 +67,37 @@ class CharacterDataLatin1 extends CharacterData { */ int getProperties(int ch) { - char offset = (char)ch; + char offset = (char)ch; int props = $$Lookup(offset); return props; } + int getPropertiesEx(int ch) { + char offset = (char)ch; + int props = $$LookupEx(offset); + return props; + } + + boolean isOtherLowercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherLowercase) != 0; + } + + boolean isOtherUppercase(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherUppercase) != 0; + } + + boolean isOtherAlphabetic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskOtherAlphabetic) != 0; + } + + boolean isIdeographic(int ch) { + int props = getPropertiesEx(ch); + return (props & $$maskIdeographic) != 0; + } + int getType(int ch) { int props = getProperties(ch); return (props & $$maskType); diff --git a/jdk/make/tools/UnicodeData/PropList.txt b/jdk/make/tools/UnicodeData/PropList.txt new file mode 100644 index 00000000000..eeeb81845e3 --- /dev/null +++ b/jdk/make/tools/UnicodeData/PropList.txt @@ -0,0 +1,1296 @@ +# PropList-6.0.0.txt +# Date: 2010-08-19, 00:48:28 GMT [MD] +# +# Unicode Character Database +# Copyright (c) 1991-2010 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ + +# ================================================ + +0009..000D ; White_Space # Cc [5] <control-0009>..<control-000D> +0020 ; White_Space # Zs SPACE +0085 ; White_Space # Cc <control-0085> +00A0 ; White_Space # Zs NO-BREAK SPACE +1680 ; White_Space # Zs OGHAM SPACE MARK +180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR +2000..200A ; White_Space # Zs [11] EN QUAD..HAIR SPACE +2028 ; White_Space # Zl LINE SEPARATOR +2029 ; White_Space # Zp PARAGRAPH SEPARATOR +202F ; White_Space # Zs NARROW NO-BREAK SPACE +205F ; White_Space # Zs MEDIUM MATHEMATICAL SPACE +3000 ; White_Space # Zs IDEOGRAPHIC SPACE + +# Total code points: 26 + +# ================================================ + +200E..200F ; Bidi_Control # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +202A..202E ; Bidi_Control # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + +# Total code points: 7 + +# ================================================ + +200C..200D ; Join_Control # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER + +# Total code points: 2 + +# ================================================ + +002D ; Dash # Pd HYPHEN-MINUS +058A ; Dash # Pd ARMENIAN HYPHEN +05BE ; Dash # Pd HEBREW PUNCTUATION MAQAF +1400 ; Dash # Pd CANADIAN SYLLABICS HYPHEN +1806 ; Dash # Pd MONGOLIAN TODO SOFT HYPHEN +2010..2015 ; Dash # Pd [6] HYPHEN..HORIZONTAL BAR +2053 ; Dash # Po SWUNG DASH +207B ; Dash # Sm SUPERSCRIPT MINUS +208B ; Dash # Sm SUBSCRIPT MINUS +2212 ; Dash # Sm MINUS SIGN +2E17 ; Dash # Pd DOUBLE OBLIQUE HYPHEN +2E1A ; Dash # Pd HYPHEN WITH DIAERESIS +301C ; Dash # Pd WAVE DASH +3030 ; Dash # Pd WAVY DASH +30A0 ; Dash # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN +FE31..FE32 ; Dash # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH +FE58 ; Dash # Pd SMALL EM DASH +FE63 ; Dash # Pd SMALL HYPHEN-MINUS +FF0D ; Dash # Pd FULLWIDTH HYPHEN-MINUS + +# Total code points: 25 + +# ================================================ + +002D ; Hyphen # Pd HYPHEN-MINUS +00AD ; Hyphen # Cf SOFT HYPHEN +058A ; Hyphen # Pd ARMENIAN HYPHEN +1806 ; Hyphen # Pd MONGOLIAN TODO SOFT HYPHEN +2010..2011 ; Hyphen # Pd [2] HYPHEN..NON-BREAKING HYPHEN +2E17 ; Hyphen # Pd DOUBLE OBLIQUE HYPHEN +30FB ; Hyphen # Po KATAKANA MIDDLE DOT +FE63 ; Hyphen # Pd SMALL HYPHEN-MINUS +FF0D ; Hyphen # Pd FULLWIDTH HYPHEN-MINUS +FF65 ; Hyphen # Po HALFWIDTH KATAKANA MIDDLE DOT + +# Total code points: 11 + +# ================================================ + +0022 ; Quotation_Mark # Po QUOTATION MARK +0027 ; Quotation_Mark # Po APOSTROPHE +00AB ; Quotation_Mark # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00BB ; Quotation_Mark # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +2018 ; Quotation_Mark # Pi LEFT SINGLE QUOTATION MARK +2019 ; Quotation_Mark # Pf RIGHT SINGLE QUOTATION MARK +201A ; Quotation_Mark # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Quotation_Mark # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Quotation_Mark # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Quotation_Mark # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Quotation_Mark # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2039 ; Quotation_Mark # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Quotation_Mark # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +300C ; Quotation_Mark # Ps LEFT CORNER BRACKET +300D ; Quotation_Mark # Pe RIGHT CORNER BRACKET +300E ; Quotation_Mark # Ps LEFT WHITE CORNER BRACKET +300F ; Quotation_Mark # Pe RIGHT WHITE CORNER BRACKET +301D ; Quotation_Mark # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Quotation_Mark # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +FE41 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +FE42 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +FE43 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +FE44 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +FF02 ; Quotation_Mark # Po FULLWIDTH QUOTATION MARK +FF07 ; Quotation_Mark # Po FULLWIDTH APOSTROPHE +FF62 ; Quotation_Mark # Ps HALFWIDTH LEFT CORNER BRACKET +FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET + +# Total code points: 29 + +# ================================================ + +0021 ; Terminal_Punctuation # Po EXCLAMATION MARK +002C ; Terminal_Punctuation # Po COMMA +002E ; Terminal_Punctuation # Po FULL STOP +003A..003B ; Terminal_Punctuation # Po [2] COLON..SEMICOLON +003F ; Terminal_Punctuation # Po QUESTION MARK +037E ; Terminal_Punctuation # Po GREEK QUESTION MARK +0387 ; Terminal_Punctuation # Po GREEK ANO TELEIA +0589 ; Terminal_Punctuation # Po ARMENIAN FULL STOP +05C3 ; Terminal_Punctuation # Po HEBREW PUNCTUATION SOF PASUQ +060C ; Terminal_Punctuation # Po ARABIC COMMA +061B ; Terminal_Punctuation # Po ARABIC SEMICOLON +061F ; Terminal_Punctuation # Po ARABIC QUESTION MARK +06D4 ; Terminal_Punctuation # Po ARABIC FULL STOP +0700..070A ; Terminal_Punctuation # Po [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION +070C ; Terminal_Punctuation # Po SYRIAC HARKLEAN METOBELUS +07F8..07F9 ; Terminal_Punctuation # Po [2] NKO COMMA..NKO EXCLAMATION MARK +0830..083E ; Terminal_Punctuation # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU +085E ; Terminal_Punctuation # Po MANDAIC PUNCTUATION +0964..0965 ; Terminal_Punctuation # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +0E5A..0E5B ; Terminal_Punctuation # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT +0F08 ; Terminal_Punctuation # Po TIBETAN MARK SBRUL SHAD +0F0D..0F12 ; Terminal_Punctuation # Po [6] TIBETAN MARK SHAD..TIBETAN MARK RGYA GRAM SHAD +104A..104B ; Terminal_Punctuation # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION +1361..1368 ; Terminal_Punctuation # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR +166D..166E ; Terminal_Punctuation # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP +16EB..16ED ; Terminal_Punctuation # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION +17D4..17D6 ; Terminal_Punctuation # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH +17DA ; Terminal_Punctuation # Po KHMER SIGN KOOMUUT +1802..1805 ; Terminal_Punctuation # Po [4] MONGOLIAN COMMA..MONGOLIAN FOUR DOTS +1808..1809 ; Terminal_Punctuation # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP +1944..1945 ; Terminal_Punctuation # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1AA8..1AAB ; Terminal_Punctuation # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU +1B5A..1B5B ; Terminal_Punctuation # Po [2] BALINESE PANTI..BALINESE PAMADA +1B5D..1B5F ; Terminal_Punctuation # Po [3] BALINESE CARIK PAMUNGKAH..BALINESE CARIK PAREREN +1C3B..1C3F ; Terminal_Punctuation # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK +1C7E..1C7F ; Terminal_Punctuation # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +203C..203D ; Terminal_Punctuation # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG +2047..2049 ; Terminal_Punctuation # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK +2E2E ; Terminal_Punctuation # Po REVERSED QUESTION MARK +3001..3002 ; Terminal_Punctuation # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP +A4FE..A4FF ; Terminal_Punctuation # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP +A60D..A60F ; Terminal_Punctuation # Po [3] VAI COMMA..VAI QUESTION MARK +A6F3..A6F7 ; Terminal_Punctuation # Po [5] BAMUM FULL STOP..BAMUM QUESTION MARK +A876..A877 ; Terminal_Punctuation # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD +A8CE..A8CF ; Terminal_Punctuation # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A92F ; Terminal_Punctuation # Po KAYAH LI SIGN SHYA +A9C7..A9C9 ; Terminal_Punctuation # Po [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI +AA5D..AA5F ; Terminal_Punctuation # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA +AADF ; Terminal_Punctuation # Po TAI VIET SYMBOL KOI KOI +ABEB ; Terminal_Punctuation # Po MEETEI MAYEK CHEIKHEI +FE50..FE52 ; Terminal_Punctuation # Po [3] SMALL COMMA..SMALL FULL STOP +FE54..FE57 ; Terminal_Punctuation # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK +FF01 ; Terminal_Punctuation # Po FULLWIDTH EXCLAMATION MARK +FF0C ; Terminal_Punctuation # Po FULLWIDTH COMMA +FF0E ; Terminal_Punctuation # Po FULLWIDTH FULL STOP +FF1A..FF1B ; Terminal_Punctuation # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON +FF1F ; Terminal_Punctuation # Po FULLWIDTH QUESTION MARK +FF61 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC FULL STOP +FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA +1039F ; Terminal_Punctuation # Po UGARITIC WORD DIVIDER +103D0 ; Terminal_Punctuation # Po OLD PERSIAN WORD DIVIDER +10857 ; Terminal_Punctuation # Po IMPERIAL ARAMAIC SECTION SIGN +1091F ; Terminal_Punctuation # Po PHOENICIAN WORD SEPARATOR +10B3A..10B3F ; Terminal_Punctuation # Po [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION +11047..1104D ; Terminal_Punctuation # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS +110BE..110C1 ; Terminal_Punctuation # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA +12470..12473 ; Terminal_Punctuation # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON + +# Total code points: 169 + +# ================================================ + +005E ; Other_Math # Sk CIRCUMFLEX ACCENT +03D0..03D2 ; Other_Math # L& [3] GREEK BETA SYMBOL..GREEK UPSILON WITH HOOK SYMBOL +03D5 ; Other_Math # L& GREEK PHI SYMBOL +03F0..03F1 ; Other_Math # L& [2] GREEK KAPPA SYMBOL..GREEK RHO SYMBOL +03F4..03F5 ; Other_Math # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL +2016 ; Other_Math # Po DOUBLE VERTICAL LINE +2032..2034 ; Other_Math # Po [3] PRIME..TRIPLE PRIME +2040 ; Other_Math # Pc CHARACTER TIE +2061..2064 ; Other_Math # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS +207D ; Other_Math # Ps SUPERSCRIPT LEFT PARENTHESIS +207E ; Other_Math # Pe SUPERSCRIPT RIGHT PARENTHESIS +208D ; Other_Math # Ps SUBSCRIPT LEFT PARENTHESIS +208E ; Other_Math # Pe SUBSCRIPT RIGHT PARENTHESIS +20D0..20DC ; Other_Math # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20E1 ; Other_Math # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E5..20E6 ; Other_Math # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY +20EB..20EF ; Other_Math # Mn [5] COMBINING LONG DOUBLE SOLIDUS OVERLAY..COMBINING RIGHT ARROW BELOW +2102 ; Other_Math # L& DOUBLE-STRUCK CAPITAL C +2107 ; Other_Math # L& EULER CONSTANT +210A..2113 ; Other_Math # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; Other_Math # L& DOUBLE-STRUCK CAPITAL N +2119..211D ; Other_Math # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Other_Math # L& DOUBLE-STRUCK CAPITAL Z +2128 ; Other_Math # L& BLACK-LETTER CAPITAL Z +2129 ; Other_Math # So TURNED GREEK SMALL LETTER IOTA +212C..212D ; Other_Math # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C +212F..2131 ; Other_Math # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F +2133..2134 ; Other_Math # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O +2135..2138 ; Other_Math # Lo [4] ALEF SYMBOL..DALET SYMBOL +213C..213F ; Other_Math # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; Other_Math # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +2195..2199 ; Other_Math # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219C..219F ; Other_Math # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A1..21A2 ; Other_Math # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A4..21A5 ; Other_Math # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A7 ; Other_Math # So DOWNWARDS ARROW FROM BAR +21A9..21AD ; Other_Math # So [5] LEFTWARDS ARROW WITH HOOK..LEFT RIGHT WAVE ARROW +21B0..21B1 ; Other_Math # So [2] UPWARDS ARROW WITH TIP LEFTWARDS..UPWARDS ARROW WITH TIP RIGHTWARDS +21B6..21B7 ; Other_Math # So [2] ANTICLOCKWISE TOP SEMICIRCLE ARROW..CLOCKWISE TOP SEMICIRCLE ARROW +21BC..21CD ; Other_Math # So [18] LEFTWARDS HARPOON WITH BARB UPWARDS..LEFTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Other_Math # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D3 ; Other_Math # So DOWNWARDS DOUBLE ARROW +21D5..21DB ; Other_Math # So [7] UP DOWN DOUBLE ARROW..RIGHTWARDS TRIPLE ARROW +21DD ; Other_Math # So RIGHTWARDS SQUIGGLE ARROW +21E4..21E5 ; Other_Math # So [2] LEFTWARDS ARROW TO BAR..RIGHTWARDS ARROW TO BAR +23B4..23B5 ; Other_Math # So [2] TOP SQUARE BRACKET..BOTTOM SQUARE BRACKET +23B7 ; Other_Math # So RADICAL SYMBOL BOTTOM +23D0 ; Other_Math # So VERTICAL LINE EXTENSION +23E2 ; Other_Math # So WHITE TRAPEZIUM +25A0..25A1 ; Other_Math # So [2] BLACK SQUARE..WHITE SQUARE +25AE..25B6 ; Other_Math # So [9] BLACK VERTICAL RECTANGLE..BLACK RIGHT-POINTING TRIANGLE +25BC..25C0 ; Other_Math # So [5] BLACK DOWN-POINTING TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C6..25C7 ; Other_Math # So [2] BLACK DIAMOND..WHITE DIAMOND +25CA..25CB ; Other_Math # So [2] LOZENGE..WHITE CIRCLE +25CF..25D3 ; Other_Math # So [5] BLACK CIRCLE..CIRCLE WITH UPPER HALF BLACK +25E2 ; Other_Math # So BLACK LOWER RIGHT TRIANGLE +25E4 ; Other_Math # So BLACK UPPER LEFT TRIANGLE +25E7..25EC ; Other_Math # So [6] SQUARE WITH LEFT HALF BLACK..WHITE UP-POINTING TRIANGLE WITH DOT +2605..2606 ; Other_Math # So [2] BLACK STAR..WHITE STAR +2640 ; Other_Math # So FEMALE SIGN +2642 ; Other_Math # So MALE SIGN +2660..2663 ; Other_Math # So [4] BLACK SPADE SUIT..BLACK CLUB SUIT +266D..266E ; Other_Math # So [2] MUSIC FLAT SIGN..MUSIC NATURAL SIGN +27C5 ; Other_Math # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Other_Math # Pe RIGHT S-SHAPED BAG DELIMITER +27E6 ; Other_Math # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Other_Math # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Other_Math # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Other_Math # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Other_Math # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Other_Math # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Other_Math # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Other_Math # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Other_Math # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Other_Math # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +2983 ; Other_Math # Ps LEFT WHITE CURLY BRACKET +2984 ; Other_Math # Pe RIGHT WHITE CURLY BRACKET +2985 ; Other_Math # Ps LEFT WHITE PARENTHESIS +2986 ; Other_Math # Pe RIGHT WHITE PARENTHESIS +2987 ; Other_Math # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Other_Math # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Other_Math # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Other_Math # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Other_Math # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Other_Math # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Other_Math # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Other_Math # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Other_Math # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Other_Math # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Other_Math # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Other_Math # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Other_Math # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Other_Math # Pe RIGHT BLACK TORTOISE SHELL BRACKET +29D8 ; Other_Math # Ps LEFT WIGGLY FENCE +29D9 ; Other_Math # Pe RIGHT WIGGLY FENCE +29DA ; Other_Math # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Other_Math # Pe RIGHT DOUBLE WIGGLY FENCE +29FC ; Other_Math # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Other_Math # Pe RIGHT-POINTING CURVED ANGLE BRACKET +FE61 ; Other_Math # Po SMALL ASTERISK +FE63 ; Other_Math # Pd SMALL HYPHEN-MINUS +FE68 ; Other_Math # Po SMALL REVERSE SOLIDUS +FF3C ; Other_Math # Po FULLWIDTH REVERSE SOLIDUS +FF3E ; Other_Math # Sk FULLWIDTH CIRCUMFLEX ACCENT +1D400..1D454 ; Other_Math # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Other_Math # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Other_Math # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Other_Math # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Other_Math # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Other_Math # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Other_Math # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Other_Math # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Other_Math # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Other_Math # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Other_Math # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Other_Math # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Other_Math # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Other_Math # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Other_Math # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Other_Math # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Other_Math # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Other_Math # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; Other_Math # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; Other_Math # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; Other_Math # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; Other_Math # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; Other_Math # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; Other_Math # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; Other_Math # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; Other_Math # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; Other_Math # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE + +# Total code points: 1217 + +# ================================================ + +0030..0039 ; Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE +0041..0046 ; Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F +0061..0066 ; Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F +FF10..FF19 ; Hex_Digit # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF21..FF26 ; Hex_Digit # L& [6] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER F +FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER F + +# Total code points: 44 + +# ================================================ + +0030..0039 ; ASCII_Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE +0041..0046 ; ASCII_Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F +0061..0066 ; ASCII_Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F + +# Total code points: 22 + +# ================================================ + +0345 ; Other_Alphabetic # Mn COMBINING GREEK YPOGEGRAMMENI +05B0..05BD ; Other_Alphabetic # Mn [14] HEBREW POINT SHEVA..HEBREW POINT METEG +05BF ; Other_Alphabetic # Mn HEBREW POINT RAFE +05C1..05C2 ; Other_Alphabetic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; Other_Alphabetic # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Other_Alphabetic # Mn HEBREW POINT QAMATS QATAN +0610..061A ; Other_Alphabetic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +064B..0657 ; Other_Alphabetic # Mn [13] ARABIC FATHATAN..ARABIC INVERTED DAMMA +0659..065F ; Other_Alphabetic # Mn [7] ARABIC ZWARAKAY..ARABIC WAVY HAMZA BELOW +0670 ; Other_Alphabetic # Mn ARABIC LETTER SUPERSCRIPT ALEF +06D6..06DC ; Other_Alphabetic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06E1..06E4 ; Other_Alphabetic # Mn [4] ARABIC SMALL HIGH DOTLESS HEAD OF KHAH..ARABIC SMALL HIGH MADDA +06E7..06E8 ; Other_Alphabetic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06ED ; Other_Alphabetic # Mn ARABIC SMALL LOW MEEM +0711 ; Other_Alphabetic # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0730..073F ; Other_Alphabetic # Mn [16] SYRIAC PTHAHA ABOVE..SYRIAC RWAHA +07A6..07B0 ; Other_Alphabetic # Mn [11] THAANA ABAFILI..THAANA SUKUN +0816..0817 ; Other_Alphabetic # Mn [2] SAMARITAN MARK IN..SAMARITAN MARK IN-ALAF +081B..0823 ; Other_Alphabetic # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0825..0827 ; Other_Alphabetic # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0829..082C ; Other_Alphabetic # Mn [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN +0900..0902 ; Other_Alphabetic # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; Other_Alphabetic # Mc DEVANAGARI SIGN VISARGA +093A ; Other_Alphabetic # Mn DEVANAGARI VOWEL SIGN OE +093B ; Other_Alphabetic # Mc DEVANAGARI VOWEL SIGN OOE +093E..0940 ; Other_Alphabetic # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; Other_Alphabetic # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; Other_Alphabetic # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094E..094F ; Other_Alphabetic # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0955..0957 ; Other_Alphabetic # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG E..DEVANAGARI VOWEL SIGN UUE +0962..0963 ; Other_Alphabetic # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0981 ; Other_Alphabetic # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; Other_Alphabetic # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +09BE..09C0 ; Other_Alphabetic # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; Other_Alphabetic # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09D7 ; Other_Alphabetic # Mc BENGALI AU LENGTH MARK +09E2..09E3 ; Other_Alphabetic # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A01..0A02 ; Other_Alphabetic # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; Other_Alphabetic # Mc GURMUKHI SIGN VISARGA +0A3E..0A40 ; Other_Alphabetic # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4C ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU +0A51 ; Other_Alphabetic # Mn GURMUKHI SIGN UDAAT +0A70..0A71 ; Other_Alphabetic # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A75 ; Other_Alphabetic # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; Other_Alphabetic # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; Other_Alphabetic # Mc GUJARATI SIGN VISARGA +0ABE..0AC0 ; Other_Alphabetic # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; Other_Alphabetic # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; Other_Alphabetic # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Other_Alphabetic # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0AE2..0AE3 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B01 ; Other_Alphabetic # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; Other_Alphabetic # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B3E ; Other_Alphabetic # Mc ORIYA VOWEL SIGN AA +0B3F ; Other_Alphabetic # Mn ORIYA VOWEL SIGN I +0B40 ; Other_Alphabetic # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; Other_Alphabetic # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B56 ; Other_Alphabetic # Mn ORIYA AI LENGTH MARK +0B57 ; Other_Alphabetic # Mc ORIYA AU LENGTH MARK +0B62..0B63 ; Other_Alphabetic # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B82 ; Other_Alphabetic # Mn TAMIL SIGN ANUSVARA +0BBE..0BBF ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; Other_Alphabetic # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BD7 ; Other_Alphabetic # Mc TAMIL AU LENGTH MARK +0C01..0C03 ; Other_Alphabetic # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C3E..0C40 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; Other_Alphabetic # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4C ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU +0C55..0C56 ; Other_Alphabetic # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C62..0C63 ; Other_Alphabetic # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C82..0C83 ; Other_Alphabetic # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0CBE ; Other_Alphabetic # Mc KANNADA VOWEL SIGN AA +0CBF ; Other_Alphabetic # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; Other_Alphabetic # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; Other_Alphabetic # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC ; Other_Alphabetic # Mn KANNADA VOWEL SIGN AU +0CD5..0CD6 ; Other_Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CE2..0CE3 ; Other_Alphabetic # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0D02..0D03 ; Other_Alphabetic # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D3E..0D40 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; Other_Alphabetic # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D57 ; Other_Alphabetic # Mc MALAYALAM AU LENGTH MARK +0D62..0D63 ; Other_Alphabetic # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D82..0D83 ; Other_Alphabetic # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0DCF..0DD1 ; Other_Alphabetic # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; Other_Alphabetic # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Other_Alphabetic # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; Other_Alphabetic # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; Other_Alphabetic # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E31 ; Other_Alphabetic # Mn THAI CHARACTER MAI HAN-AKAT +0E34..0E3A ; Other_Alphabetic # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E4D ; Other_Alphabetic # Mn THAI CHARACTER NIKHAHIT +0EB1 ; Other_Alphabetic # Mn LAO VOWEL SIGN MAI KAN +0EB4..0EB9 ; Other_Alphabetic # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; Other_Alphabetic # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0ECD ; Other_Alphabetic # Mn LAO NIGGAHITA +0F71..0F7E ; Other_Alphabetic # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; Other_Alphabetic # Mc TIBETAN SIGN RNAM BCAD +0F80..0F81 ; Other_Alphabetic # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II +0F8D..0F97 ; Other_Alphabetic # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Other_Alphabetic # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +102B..102C ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN E +1032..1036 ; Other_Alphabetic # Mn [5] MYANMAR VOWEL SIGN AI..MYANMAR SIGN ANUSVARA +1038 ; Other_Alphabetic # Mc MYANMAR SIGN VISARGA +103B..103C ; Other_Alphabetic # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; Other_Alphabetic # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +1056..1057 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105E..1060 ; Other_Alphabetic # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1062 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN SGAW KAREN EU +1067..1068 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE +1071..1074 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1082 ; Other_Alphabetic # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +109C ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN AITON A +109D ; Other_Alphabetic # Mn MYANMAR VOWEL SIGN AITON AI +135F ; Other_Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK +1712..1713 ; Other_Alphabetic # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U +1732..1733 ; Other_Alphabetic # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U +1752..1753 ; Other_Alphabetic # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1772..1773 ; Other_Alphabetic # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +17B6 ; Other_Alphabetic # Mc KHMER VOWEL SIGN AA +17B7..17BD ; Other_Alphabetic # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; Other_Alphabetic # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; Other_Alphabetic # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; Other_Alphabetic # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +18A9 ; Other_Alphabetic # Mn MONGOLIAN LETTER ALI GALI DAGALGA +1920..1922 ; Other_Alphabetic # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; Other_Alphabetic # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; Other_Alphabetic # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; Other_Alphabetic # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; Other_Alphabetic # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; Other_Alphabetic # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; Other_Alphabetic # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +19B0..19C0 ; Other_Alphabetic # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C8..19C9 ; Other_Alphabetic # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +1A17..1A18 ; Other_Alphabetic # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1B ; Other_Alphabetic # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A55 ; Other_Alphabetic # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; Other_Alphabetic # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; Other_Alphabetic # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; Other_Alphabetic # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A61 ; Other_Alphabetic # Mc TAI THAM VOWEL SIGN A +1A62 ; Other_Alphabetic # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; Other_Alphabetic # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; Other_Alphabetic # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; Other_Alphabetic # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A74 ; Other_Alphabetic # Mn [2] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN MAI KANG +1B00..1B03 ; Other_Alphabetic # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; Other_Alphabetic # Mc BALINESE SIGN BISAH +1B35 ; Other_Alphabetic # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; Other_Alphabetic # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; Other_Alphabetic # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; Other_Alphabetic # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; Other_Alphabetic # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; Other_Alphabetic # Mn BALINESE VOWEL SIGN PEPET +1B43 ; Other_Alphabetic # Mc BALINESE VOWEL SIGN PEPET TEDUNG +1B80..1B81 ; Other_Alphabetic # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; Other_Alphabetic # Mc SUNDANESE SIGN PANGWISAD +1BA1 ; Other_Alphabetic # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; Other_Alphabetic # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; Other_Alphabetic # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; Other_Alphabetic # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BE7 ; Other_Alphabetic # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; Other_Alphabetic # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; Other_Alphabetic # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; Other_Alphabetic # Mn BATAK VOWEL SIGN KARO O +1BEE ; Other_Alphabetic # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; Other_Alphabetic # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1C24..1C2B ; Other_Alphabetic # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; Other_Alphabetic # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; Other_Alphabetic # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1CF2 ; Other_Alphabetic # Mc VEDIC SIGN ARDHAVISARGA +24B6..24E9 ; Other_Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z +2DE0..2DFF ; Other_Alphabetic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +A823..A824 ; Other_Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; Other_Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; Other_Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO +A880..A881 ; Other_Alphabetic # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A8B4..A8C3 ; Other_Alphabetic # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A926..A92A ; Other_Alphabetic # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O +A947..A951 ; Other_Alphabetic # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952 ; Other_Alphabetic # Mc REJANG CONSONANT SIGN H +A980..A982 ; Other_Alphabetic # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; Other_Alphabetic # Mc JAVANESE SIGN WIGNYAN +A9B4..A9B5 ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; Other_Alphabetic # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; Other_Alphabetic # Mn JAVANESE VOWEL SIGN PEPET +A9BD..A9BF ; Other_Alphabetic # Mc [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA +AA29..AA2E ; Other_Alphabetic # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; Other_Alphabetic # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; Other_Alphabetic # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; Other_Alphabetic # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; Other_Alphabetic # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA43 ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL NG +AA4C ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; Other_Alphabetic # Mc CHAM CONSONANT SIGN FINAL H +AAB0 ; Other_Alphabetic # Mn TAI VIET MAI KANG +AAB2..AAB4 ; Other_Alphabetic # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB7..AAB8 ; Other_Alphabetic # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AABE ; Other_Alphabetic # Mn TAI VIET VOWEL AM +ABE3..ABE4 ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; Other_Alphabetic # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; Other_Alphabetic # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA +10A01..10A03 ; Other_Alphabetic # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Other_Alphabetic # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Other_Alphabetic # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +11000 ; Other_Alphabetic # Mc BRAHMI SIGN CANDRABINDU +11001 ; Other_Alphabetic # Mn BRAHMI SIGN ANUSVARA +11002 ; Other_Alphabetic # Mc BRAHMI SIGN VISARGA +11038..11045 ; Other_Alphabetic # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU +11082 ; Other_Alphabetic # Mc KAITHI SIGN VISARGA +110B0..110B2 ; Other_Alphabetic # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; Other_Alphabetic # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; Other_Alphabetic # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU + +# Total code points: 795 + +# ================================================ + +3006 ; Ideographic # Lo IDEOGRAPHIC CLOSING MARK +3007 ; Ideographic # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; Ideographic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3038..303A ; Ideographic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +3400..4DB5 ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCB ; Ideographic # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB +F900..FA2D ; Ideographic # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D +FA30..FA6D ; Ideographic # Lo [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +20000..2A6D6 ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 75630 + +# ================================================ + +005E ; Diacritic # Sk CIRCUMFLEX ACCENT +0060 ; Diacritic # Sk GRAVE ACCENT +00A8 ; Diacritic # Sk DIAERESIS +00AF ; Diacritic # Sk MACRON +00B4 ; Diacritic # Sk ACUTE ACCENT +00B7 ; Diacritic # Po MIDDLE DOT +00B8 ; Diacritic # Sk CEDILLA +02B0..02C1 ; Diacritic # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; Diacritic # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; Diacritic # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02DF ; Diacritic # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT +02E0..02E4 ; Diacritic # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02E5..02EB ; Diacritic # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK +02EC ; Diacritic # Lm MODIFIER LETTER VOICING +02ED ; Diacritic # Sk MODIFIER LETTER UNASPIRATED +02EE ; Diacritic # Lm MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; Diacritic # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0300..034E ; Diacritic # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW +0350..0357 ; Diacritic # Mn [8] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE +035D..0362 ; Diacritic # Mn [6] COMBINING DOUBLE BREVE..COMBINING DOUBLE RIGHTWARDS ARROW BELOW +0374 ; Diacritic # Lm GREEK NUMERAL SIGN +0375 ; Diacritic # Sk GREEK LOWER NUMERAL SIGN +037A ; Diacritic # Lm GREEK YPOGEGRAMMENI +0384..0385 ; Diacritic # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS +0483..0487 ; Diacritic # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +0559 ; Diacritic # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0591..05A1 ; Diacritic # Mn [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER +05A3..05BD ; Diacritic # Mn [27] HEBREW ACCENT MUNAH..HEBREW POINT METEG +05BF ; Diacritic # Mn HEBREW POINT RAFE +05C1..05C2 ; Diacritic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4 ; Diacritic # Mn HEBREW MARK UPPER DOT +064B..0652 ; Diacritic # Mn [8] ARABIC FATHATAN..ARABIC SUKUN +0657..0658 ; Diacritic # Mn [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA +06DF..06E0 ; Diacritic # Mn [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO +06E5..06E6 ; Diacritic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06EA..06EC ; Diacritic # Mn [3] ARABIC EMPTY CENTRE LOW STOP..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE +0730..074A ; Diacritic # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +07A6..07B0 ; Diacritic # Mn [11] THAANA ABAFILI..THAANA SUKUN +07EB..07F3 ; Diacritic # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; Diacritic # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +0818..0819 ; Diacritic # Mn [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH +093C ; Diacritic # Mn DEVANAGARI SIGN NUKTA +094D ; Diacritic # Mn DEVANAGARI SIGN VIRAMA +0951..0954 ; Diacritic # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT +0971 ; Diacritic # Lm DEVANAGARI SIGN HIGH SPACING DOT +09BC ; Diacritic # Mn BENGALI SIGN NUKTA +09CD ; Diacritic # Mn BENGALI SIGN VIRAMA +0A3C ; Diacritic # Mn GURMUKHI SIGN NUKTA +0A4D ; Diacritic # Mn GURMUKHI SIGN VIRAMA +0ABC ; Diacritic # Mn GUJARATI SIGN NUKTA +0ACD ; Diacritic # Mn GUJARATI SIGN VIRAMA +0B3C ; Diacritic # Mn ORIYA SIGN NUKTA +0B4D ; Diacritic # Mn ORIYA SIGN VIRAMA +0BCD ; Diacritic # Mn TAMIL SIGN VIRAMA +0C4D ; Diacritic # Mn TELUGU SIGN VIRAMA +0CBC ; Diacritic # Mn KANNADA SIGN NUKTA +0CCD ; Diacritic # Mn KANNADA SIGN VIRAMA +0D4D ; Diacritic # Mn MALAYALAM SIGN VIRAMA +0DCA ; Diacritic # Mn SINHALA SIGN AL-LAKUNA +0E47..0E4C ; Diacritic # Mn [6] THAI CHARACTER MAITAIKHU..THAI CHARACTER THANTHAKHAT +0E4E ; Diacritic # Mn THAI CHARACTER YAMAKKAN +0EC8..0ECC ; Diacritic # Mn [5] LAO TONE MAI EK..LAO CANCELLATION MARK +0F18..0F19 ; Diacritic # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F35 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; Diacritic # Mn TIBETAN MARK TSA -PHRU +0F3E..0F3F ; Diacritic # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F82..0F84 ; Diacritic # Mn [3] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA +0F86..0F87 ; Diacritic # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0FC6 ; Diacritic # Mn TIBETAN SYMBOL PADMA GDAN +1037 ; Diacritic # Mn MYANMAR SIGN DOT BELOW +1039..103A ; Diacritic # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +1087..108C ; Diacritic # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; Diacritic # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108F ; Diacritic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +109A..109B ; Diacritic # Mc [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3 +17C9..17D3 ; Diacritic # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17DD ; Diacritic # Mn KHMER SIGN ATTHACAN +1939..193B ; Diacritic # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1A75..1A7C ; Diacritic # Mn [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Diacritic # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1B34 ; Diacritic # Mn BALINESE SIGN REREKAN +1B44 ; Diacritic # Mc BALINESE ADEG ADEG +1B6B..1B73 ; Diacritic # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1BAA ; Diacritic # Mc SUNDANESE SIGN PAMAAEH +1C36..1C37 ; Diacritic # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C78..1C7D ; Diacritic # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CD0..1CD2 ; Diacritic # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD3 ; Diacritic # Po VEDIC SIGN NIHSHVASA +1CD4..1CE0 ; Diacritic # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE1 ; Diacritic # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE2..1CE8 ; Diacritic # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CED ; Diacritic # Mn VEDIC SIGN TIRYAK +1D2C..1D61 ; Diacritic # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI +1D62..1D6A ; Diacritic # L& [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI +1DC4..1DCF ; Diacritic # Mn [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW +1DFD..1DFF ; Diacritic # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1FBD ; Diacritic # Sk GREEK KORONIS +1FBF..1FC1 ; Diacritic # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI +1FCD..1FCF ; Diacritic # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +1FDD..1FDF ; Diacritic # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI +1FED..1FEF ; Diacritic # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA +1FFD..1FFE ; Diacritic # Sk [2] GREEK OXIA..GREEK DASIA +2CEF..2CF1 ; Diacritic # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2E2F ; Diacritic # Lm VERTICAL TILDE +302A..302F ; Diacritic # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK +3099..309A ; Diacritic # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B..309C ; Diacritic # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +30FC ; Diacritic # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK +A66F ; Diacritic # Mn COMBINING CYRILLIC VZMET +A67C..A67D ; Diacritic # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK +A67F ; Diacritic # Lm CYRILLIC PAYEROK +A6F0..A6F1 ; Diacritic # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A717..A71F ; Diacritic # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; Diacritic # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A788 ; Diacritic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A8C4 ; Diacritic # Mn SAURASHTRA SIGN VIRAMA +A8E0..A8F1 ; Diacritic # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A92B..A92D ; Diacritic # Mn [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU +A92E ; Diacritic # Po KAYAH LI SIGN CWI +A953 ; Diacritic # Mc REJANG VIRAMA +A9B3 ; Diacritic # Mn JAVANESE SIGN CECAK TELU +A9C0 ; Diacritic # Mc JAVANESE PANGKON +AA7B ; Diacritic # Mc MYANMAR SIGN PAO KAREN TONE +AABF ; Diacritic # Mn TAI VIET TONE MAI EK +AAC0 ; Diacritic # Lo TAI VIET TONE MAI NUENG +AAC1 ; Diacritic # Mn TAI VIET TONE MAI THO +AAC2 ; Diacritic # Lo TAI VIET TONE MAI SONG +ABEC ; Diacritic # Mc MEETEI MAYEK LUM IYEK +ABED ; Diacritic # Mn MEETEI MAYEK APUN IYEK +FB1E ; Diacritic # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FE20..FE26 ; Diacritic # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FF3E ; Diacritic # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF40 ; Diacritic # Sk FULLWIDTH GRAVE ACCENT +FF70 ; Diacritic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF9E..FF9F ; Diacritic # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFE3 ; Diacritic # Sk FULLWIDTH MACRON +110B9..110BA ; Diacritic # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +1D167..1D169 ; Diacritic # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D16D..1D172 ; Diacritic # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 +1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO + +# Total code points: 639 + +# ================================================ + +00B7 ; Extender # Po MIDDLE DOT +02D0..02D1 ; Extender # Lm [2] MODIFIER LETTER TRIANGULAR COLON..MODIFIER LETTER HALF TRIANGULAR COLON +0640 ; Extender # Lm ARABIC TATWEEL +07FA ; Extender # Lm NKO LAJANYALAN +0E46 ; Extender # Lm THAI CHARACTER MAIYAMOK +0EC6 ; Extender # Lm LAO KO LA +1843 ; Extender # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1AA7 ; Extender # Lm TAI THAM SIGN MAI YAMOK +1C36 ; Extender # Mn LEPCHA SIGN RAN +1C7B ; Extender # Lm OL CHIKI RELAA +3005 ; Extender # Lm IDEOGRAPHIC ITERATION MARK +3031..3035 ; Extender # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +309D..309E ; Extender # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +30FC..30FE ; Extender # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +A015 ; Extender # Lm YI SYLLABLE WU +A60C ; Extender # Lm VAI SYLLABLE LENGTHENER +A9CF ; Extender # Lm JAVANESE PANGRANGKEP +AA70 ; Extender # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AADD ; Extender # Lm TAI VIET SYMBOL SAM +FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK + +# Total code points: 28 + +# ================================================ + +02B0..02B8 ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y +02C0..02C1 ; Other_Lowercase # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP +02E0..02E4 ; Other_Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +0345 ; Other_Lowercase # Mn COMBINING GREEK YPOGEGRAMMENI +037A ; Other_Lowercase # Lm GREEK YPOGEGRAMMENI +1D2C..1D61 ; Other_Lowercase # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI +1D78 ; Other_Lowercase # Lm MODIFIER LETTER CYRILLIC EN +1D9B..1DBF ; Other_Lowercase # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +2090..2094 ; Other_Lowercase # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA +2170..217F ; Other_Lowercase # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +24D0..24E9 ; Other_Lowercase # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C7D ; Other_Lowercase # Lm MODIFIER LETTER CAPITAL V +A770 ; Other_Lowercase # Lm MODIFIER LETTER US + +# Total code points: 159 + +# ================================================ + +2160..216F ; Other_Uppercase # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND +24B6..24CF ; Other_Uppercase # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z + +# Total code points: 42 + +# ================================================ + +FDD0..FDEF ; Noncharacter_Code_Point # Cn [32] <noncharacter-FDD0>..<noncharacter-FDEF> +FFFE..FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFE>..<noncharacter-FFFF> +1FFFE..1FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-1FFFE>..<noncharacter-1FFFF> +2FFFE..2FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-2FFFE>..<noncharacter-2FFFF> +3FFFE..3FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-3FFFE>..<noncharacter-3FFFF> +4FFFE..4FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-4FFFE>..<noncharacter-4FFFF> +5FFFE..5FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-5FFFE>..<noncharacter-5FFFF> +6FFFE..6FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-6FFFE>..<noncharacter-6FFFF> +7FFFE..7FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-7FFFE>..<noncharacter-7FFFF> +8FFFE..8FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-8FFFE>..<noncharacter-8FFFF> +9FFFE..9FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-9FFFE>..<noncharacter-9FFFF> +AFFFE..AFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-AFFFE>..<noncharacter-AFFFF> +BFFFE..BFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-BFFFE>..<noncharacter-BFFFF> +CFFFE..CFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-CFFFE>..<noncharacter-CFFFF> +DFFFE..DFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-DFFFE>..<noncharacter-DFFFF> +EFFFE..EFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-EFFFE>..<noncharacter-EFFFF> +FFFFE..FFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF> +10FFFE..10FFFF; Noncharacter_Code_Point # Cn [2] <noncharacter-10FFFE>..<noncharacter-10FFFF> + +# Total code points: 66 + +# ================================================ + +09BE ; Other_Grapheme_Extend # Mc BENGALI VOWEL SIGN AA +09D7 ; Other_Grapheme_Extend # Mc BENGALI AU LENGTH MARK +0B3E ; Other_Grapheme_Extend # Mc ORIYA VOWEL SIGN AA +0B57 ; Other_Grapheme_Extend # Mc ORIYA AU LENGTH MARK +0BBE ; Other_Grapheme_Extend # Mc TAMIL VOWEL SIGN AA +0BD7 ; Other_Grapheme_Extend # Mc TAMIL AU LENGTH MARK +0CC2 ; Other_Grapheme_Extend # Mc KANNADA VOWEL SIGN UU +0CD5..0CD6 ; Other_Grapheme_Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0D3E ; Other_Grapheme_Extend # Mc MALAYALAM VOWEL SIGN AA +0D57 ; Other_Grapheme_Extend # Mc MALAYALAM AU LENGTH MARK +0DCF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN AELA-PILLA +0DDF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA +200C..200D ; Other_Grapheme_Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER +FF9E..FF9F ; Other_Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +1D165 ; Other_Grapheme_Extend # Mc MUSICAL SYMBOL COMBINING STEM +1D16E..1D172 ; Other_Grapheme_Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 + +# Total code points: 23 + +# ================================================ + +2FF0..2FF1 ; IDS_Binary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW +2FF4..2FFB ; IDS_Binary_Operator # So [8] IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID + +# Total code points: 10 + +# ================================================ + +2FF2..2FF3 ; IDS_Trinary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW + +# Total code points: 2 + +# ================================================ + +2E80..2E99 ; Radical # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP +2E9B..2EF3 ; Radical # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE +2F00..2FD5 ; Radical # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE + +# Total code points: 329 + +# ================================================ + +3400..4DB5 ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCB ; Unified_Ideograph # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB +FA0E..FA0F ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F +FA11 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA11 +FA13..FA14 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14 +FA1F ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA1F +FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21 +FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24 +FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29 +20000..2A6D6 ; Unified_Ideograph # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D + +# Total code points: 74616 + +# ================================================ + +034F ; Other_Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER +115F..1160 ; Other_Default_Ignorable_Code_Point # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER +2065..2069 ; Other_Default_Ignorable_Code_Point # Cn [5] <reserved-2065>..<reserved-2069> +3164 ; Other_Default_Ignorable_Code_Point # Lo HANGUL FILLER +FFA0 ; Other_Default_Ignorable_Code_Point # Lo HALFWIDTH HANGUL FILLER +FFF0..FFF8 ; Other_Default_Ignorable_Code_Point # Cn [9] <reserved-FFF0>..<reserved-FFF8> +E0000 ; Other_Default_Ignorable_Code_Point # Cn <reserved-E0000> +E0002..E001F ; Other_Default_Ignorable_Code_Point # Cn [30] <reserved-E0002>..<reserved-E001F> +E0080..E00FF ; Other_Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF> +E01F0..E0FFF ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF> + +# Total code points: 3778 + +# ================================================ + +0149 ; Deprecated # L& LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +0673 ; Deprecated # Lo ARABIC LETTER ALEF WITH WAVY HAMZA BELOW +0F77 ; Deprecated # Mn TIBETAN VOWEL SIGN VOCALIC RR +0F79 ; Deprecated # Mn TIBETAN VOWEL SIGN VOCALIC LL +17A3..17A4 ; Deprecated # Lo [2] KHMER INDEPENDENT VOWEL QAQ..KHMER INDEPENDENT VOWEL QAA +206A..206F ; Deprecated # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES +2329 ; Deprecated # Ps LEFT-POINTING ANGLE BRACKET +232A ; Deprecated # Pe RIGHT-POINTING ANGLE BRACKET +E0001 ; Deprecated # Cf LANGUAGE TAG +E0020..E007F ; Deprecated # Cf [96] TAG SPACE..CANCEL TAG + +# Total code points: 111 + +# ================================================ + +0069..006A ; Soft_Dotted # L& [2] LATIN SMALL LETTER I..LATIN SMALL LETTER J +012F ; Soft_Dotted # L& LATIN SMALL LETTER I WITH OGONEK +0249 ; Soft_Dotted # L& LATIN SMALL LETTER J WITH STROKE +0268 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH STROKE +029D ; Soft_Dotted # L& LATIN SMALL LETTER J WITH CROSSED-TAIL +02B2 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J +03F3 ; Soft_Dotted # L& GREEK LETTER YOT +0456 ; Soft_Dotted # L& CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0458 ; Soft_Dotted # L& CYRILLIC SMALL LETTER JE +1D62 ; Soft_Dotted # L& LATIN SUBSCRIPT SMALL LETTER I +1D96 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH RETROFLEX HOOK +1DA4 ; Soft_Dotted # Lm MODIFIER LETTER SMALL I WITH STROKE +1DA8 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J WITH CROSSED-TAIL +1E2D ; Soft_Dotted # L& LATIN SMALL LETTER I WITH TILDE BELOW +1ECB ; Soft_Dotted # L& LATIN SMALL LETTER I WITH DOT BELOW +2071 ; Soft_Dotted # Lm SUPERSCRIPT LATIN SMALL LETTER I +2148..2149 ; Soft_Dotted # L& [2] DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J +2C7C ; Soft_Dotted # L& LATIN SUBSCRIPT SMALL LETTER J +1D422..1D423 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J +1D456..1D457 ; Soft_Dotted # L& [2] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J +1D48A..1D48B ; Soft_Dotted # L& [2] MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J +1D4BE..1D4BF ; Soft_Dotted # L& [2] MATHEMATICAL SCRIPT SMALL I..MATHEMATICAL SCRIPT SMALL J +1D4F2..1D4F3 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SCRIPT SMALL I..MATHEMATICAL BOLD SCRIPT SMALL J +1D526..1D527 ; Soft_Dotted # L& [2] MATHEMATICAL FRAKTUR SMALL I..MATHEMATICAL FRAKTUR SMALL J +1D55A..1D55B ; Soft_Dotted # L& [2] MATHEMATICAL DOUBLE-STRUCK SMALL I..MATHEMATICAL DOUBLE-STRUCK SMALL J +1D58E..1D58F ; Soft_Dotted # L& [2] MATHEMATICAL BOLD FRAKTUR SMALL I..MATHEMATICAL BOLD FRAKTUR SMALL J +1D5C2..1D5C3 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF SMALL I..MATHEMATICAL SANS-SERIF SMALL J +1D5F6..1D5F7 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD SMALL I..MATHEMATICAL SANS-SERIF BOLD SMALL J +1D62A..1D62B ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF ITALIC SMALL I..MATHEMATICAL SANS-SERIF ITALIC SMALL J +1D65E..1D65F ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J +1D692..1D693 ; Soft_Dotted # L& [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J + +# Total code points: 46 + +# ================================================ + +0E40..0E44 ; Logical_Order_Exception # Lo [5] THAI CHARACTER SARA E..THAI CHARACTER SARA AI MAIMALAI +0EC0..0EC4 ; Logical_Order_Exception # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +AAB5..AAB6 ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB9 ; Logical_Order_Exception # Lo TAI VIET VOWEL UEA +AABB..AABC ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL AUE..TAI VIET VOWEL AY + +# Total code points: 15 + +# ================================================ + +2118 ; Other_ID_Start # Sm SCRIPT CAPITAL P +212E ; Other_ID_Start # So ESTIMATED SYMBOL +309B..309C ; Other_ID_Start # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + +# Total code points: 4 + +# ================================================ + +00B7 ; Other_ID_Continue # Po MIDDLE DOT +0387 ; Other_ID_Continue # Po GREEK ANO TELEIA +1369..1371 ; Other_ID_Continue # No [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE +19DA ; Other_ID_Continue # No NEW TAI LUE THAM DIGIT ONE + +# Total code points: 12 + +# ================================================ + +0021 ; STerm # Po EXCLAMATION MARK +002E ; STerm # Po FULL STOP +003F ; STerm # Po QUESTION MARK +055C ; STerm # Po ARMENIAN EXCLAMATION MARK +055E ; STerm # Po ARMENIAN QUESTION MARK +0589 ; STerm # Po ARMENIAN FULL STOP +061F ; STerm # Po ARABIC QUESTION MARK +06D4 ; STerm # Po ARABIC FULL STOP +0700..0702 ; STerm # Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP +07F9 ; STerm # Po NKO EXCLAMATION MARK +0964..0965 ; STerm # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +104A..104B ; STerm # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION +1362 ; STerm # Po ETHIOPIC FULL STOP +1367..1368 ; STerm # Po [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR +166E ; STerm # Po CANADIAN SYLLABICS FULL STOP +1735..1736 ; STerm # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION +1803 ; STerm # Po MONGOLIAN FULL STOP +1809 ; STerm # Po MONGOLIAN MANCHU FULL STOP +1944..1945 ; STerm # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1AA8..1AAB ; STerm # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU +1B5A..1B5B ; STerm # Po [2] BALINESE PANTI..BALINESE PAMADA +1B5E..1B5F ; STerm # Po [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN +1C3B..1C3C ; STerm # Po [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL +1C7E..1C7F ; STerm # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +203C..203D ; STerm # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG +2047..2049 ; STerm # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK +2E2E ; STerm # Po REVERSED QUESTION MARK +3002 ; STerm # Po IDEOGRAPHIC FULL STOP +A4FF ; STerm # Po LISU PUNCTUATION FULL STOP +A60E..A60F ; STerm # Po [2] VAI FULL STOP..VAI QUESTION MARK +A6F3 ; STerm # Po BAMUM FULL STOP +A6F7 ; STerm # Po BAMUM QUESTION MARK +A876..A877 ; STerm # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD +A8CE..A8CF ; STerm # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A92F ; STerm # Po KAYAH LI SIGN SHYA +A9C8..A9C9 ; STerm # Po [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI +AA5D..AA5F ; STerm # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA +ABEB ; STerm # Po MEETEI MAYEK CHEIKHEI +FE52 ; STerm # Po SMALL FULL STOP +FE56..FE57 ; STerm # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK +FF01 ; STerm # Po FULLWIDTH EXCLAMATION MARK +FF0E ; STerm # Po FULLWIDTH FULL STOP +FF1F ; STerm # Po FULLWIDTH QUESTION MARK +FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP +10A56..10A57 ; STerm # Po [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA +11047..11048 ; STerm # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA +110BE..110C1 ; STerm # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA + +# Total code points: 76 + +# ================================================ + +180B..180D ; Variation_Selector # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +FE00..FE0F ; Variation_Selector # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 259 + +# ================================================ + +0009..000D ; Pattern_White_Space # Cc [5] <control-0009>..<control-000D> +0020 ; Pattern_White_Space # Zs SPACE +0085 ; Pattern_White_Space # Cc <control-0085> +200E..200F ; Pattern_White_Space # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +2028 ; Pattern_White_Space # Zl LINE SEPARATOR +2029 ; Pattern_White_Space # Zp PARAGRAPH SEPARATOR + +# Total code points: 11 + +# ================================================ + +0021..0023 ; Pattern_Syntax # Po [3] EXCLAMATION MARK..NUMBER SIGN +0024 ; Pattern_Syntax # Sc DOLLAR SIGN +0025..0027 ; Pattern_Syntax # Po [3] PERCENT SIGN..APOSTROPHE +0028 ; Pattern_Syntax # Ps LEFT PARENTHESIS +0029 ; Pattern_Syntax # Pe RIGHT PARENTHESIS +002A ; Pattern_Syntax # Po ASTERISK +002B ; Pattern_Syntax # Sm PLUS SIGN +002C ; Pattern_Syntax # Po COMMA +002D ; Pattern_Syntax # Pd HYPHEN-MINUS +002E..002F ; Pattern_Syntax # Po [2] FULL STOP..SOLIDUS +003A..003B ; Pattern_Syntax # Po [2] COLON..SEMICOLON +003C..003E ; Pattern_Syntax # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN +003F..0040 ; Pattern_Syntax # Po [2] QUESTION MARK..COMMERCIAL AT +005B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET +005C ; Pattern_Syntax # Po REVERSE SOLIDUS +005D ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET +005E ; Pattern_Syntax # Sk CIRCUMFLEX ACCENT +0060 ; Pattern_Syntax # Sk GRAVE ACCENT +007B ; Pattern_Syntax # Ps LEFT CURLY BRACKET +007C ; Pattern_Syntax # Sm VERTICAL LINE +007D ; Pattern_Syntax # Pe RIGHT CURLY BRACKET +007E ; Pattern_Syntax # Sm TILDE +00A1 ; Pattern_Syntax # Po INVERTED EXCLAMATION MARK +00A2..00A5 ; Pattern_Syntax # Sc [4] CENT SIGN..YEN SIGN +00A6..00A7 ; Pattern_Syntax # So [2] BROKEN BAR..SECTION SIGN +00A9 ; Pattern_Syntax # So COPYRIGHT SIGN +00AB ; Pattern_Syntax # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00AC ; Pattern_Syntax # Sm NOT SIGN +00AE ; Pattern_Syntax # So REGISTERED SIGN +00B0 ; Pattern_Syntax # So DEGREE SIGN +00B1 ; Pattern_Syntax # Sm PLUS-MINUS SIGN +00B6 ; Pattern_Syntax # So PILCROW SIGN +00BB ; Pattern_Syntax # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BF ; Pattern_Syntax # Po INVERTED QUESTION MARK +00D7 ; Pattern_Syntax # Sm MULTIPLICATION SIGN +00F7 ; Pattern_Syntax # Sm DIVISION SIGN +2010..2015 ; Pattern_Syntax # Pd [6] HYPHEN..HORIZONTAL BAR +2016..2017 ; Pattern_Syntax # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE +2018 ; Pattern_Syntax # Pi LEFT SINGLE QUOTATION MARK +2019 ; Pattern_Syntax # Pf RIGHT SINGLE QUOTATION MARK +201A ; Pattern_Syntax # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Pattern_Syntax # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Pattern_Syntax # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Pattern_Syntax # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Pattern_Syntax # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2020..2027 ; Pattern_Syntax # Po [8] DAGGER..HYPHENATION POINT +2030..2038 ; Pattern_Syntax # Po [9] PER MILLE SIGN..CARET +2039 ; Pattern_Syntax # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Pattern_Syntax # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +203B..203E ; Pattern_Syntax # Po [4] REFERENCE MARK..OVERLINE +2041..2043 ; Pattern_Syntax # Po [3] CARET INSERTION POINT..HYPHEN BULLET +2044 ; Pattern_Syntax # Sm FRACTION SLASH +2045 ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH QUILL +2046 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH QUILL +2047..2051 ; Pattern_Syntax # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY +2052 ; Pattern_Syntax # Sm COMMERCIAL MINUS SIGN +2053 ; Pattern_Syntax # Po SWUNG DASH +2055..205E ; Pattern_Syntax # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS +2190..2194 ; Pattern_Syntax # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW +2195..2199 ; Pattern_Syntax # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219A..219B ; Pattern_Syntax # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE +219C..219F ; Pattern_Syntax # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A0 ; Pattern_Syntax # Sm RIGHTWARDS TWO HEADED ARROW +21A1..21A2 ; Pattern_Syntax # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A3 ; Pattern_Syntax # Sm RIGHTWARDS ARROW WITH TAIL +21A4..21A5 ; Pattern_Syntax # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A6 ; Pattern_Syntax # Sm RIGHTWARDS ARROW FROM BAR +21A7..21AD ; Pattern_Syntax # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW +21AE ; Pattern_Syntax # Sm LEFT RIGHT ARROW WITH STROKE +21AF..21CD ; Pattern_Syntax # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE +21CE..21CF ; Pattern_Syntax # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Pattern_Syntax # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D2 ; Pattern_Syntax # Sm RIGHTWARDS DOUBLE ARROW +21D3 ; Pattern_Syntax # So DOWNWARDS DOUBLE ARROW +21D4 ; Pattern_Syntax # Sm LEFT RIGHT DOUBLE ARROW +21D5..21F3 ; Pattern_Syntax # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW +21F4..22FF ; Pattern_Syntax # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP +2300..2307 ; Pattern_Syntax # So [8] DIAMETER SIGN..WAVY LINE +2308..230B ; Pattern_Syntax # Sm [4] LEFT CEILING..RIGHT FLOOR +230C..231F ; Pattern_Syntax # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER +2320..2321 ; Pattern_Syntax # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL +2322..2328 ; Pattern_Syntax # So [7] FROWN..KEYBOARD +2329 ; Pattern_Syntax # Ps LEFT-POINTING ANGLE BRACKET +232A ; Pattern_Syntax # Pe RIGHT-POINTING ANGLE BRACKET +232B..237B ; Pattern_Syntax # So [81] ERASE TO THE LEFT..NOT CHECK MARK +237C ; Pattern_Syntax # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +237D..239A ; Pattern_Syntax # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL +239B..23B3 ; Pattern_Syntax # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM +23B4..23DB ; Pattern_Syntax # So [40] TOP SQUARE BRACKET..FUSE +23DC..23E1 ; Pattern_Syntax # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET +23E2..23F3 ; Pattern_Syntax # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND +23F4..23FF ; Pattern_Syntax # Cn [12] <reserved-23F4>..<reserved-23FF> +2400..2426 ; Pattern_Syntax # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO +2427..243F ; Pattern_Syntax # Cn [25] <reserved-2427>..<reserved-243F> +2440..244A ; Pattern_Syntax # So [11] OCR HOOK..OCR DOUBLE BACKSLASH +244B..245F ; Pattern_Syntax # Cn [21] <reserved-244B>..<reserved-245F> +2500..25B6 ; Pattern_Syntax # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE +25B7 ; Pattern_Syntax # Sm WHITE RIGHT-POINTING TRIANGLE +25B8..25C0 ; Pattern_Syntax # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C1 ; Pattern_Syntax # Sm WHITE LEFT-POINTING TRIANGLE +25C2..25F7 ; Pattern_Syntax # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT +25F8..25FF ; Pattern_Syntax # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2600..266E ; Pattern_Syntax # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN +266F ; Pattern_Syntax # Sm MUSIC SHARP SIGN +2670..26FF ; Pattern_Syntax # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE +2700 ; Pattern_Syntax # Cn <reserved-2700> +2701..2767 ; Pattern_Syntax # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET +2768 ; Pattern_Syntax # Ps MEDIUM LEFT PARENTHESIS ORNAMENT +2769 ; Pattern_Syntax # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT +276A ; Pattern_Syntax # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +276B ; Pattern_Syntax # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +276C ; Pattern_Syntax # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +276D ; Pattern_Syntax # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +276E ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT +276F ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT +2770 ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +2771 ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +2772 ; Pattern_Syntax # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +2773 ; Pattern_Syntax # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +2774 ; Pattern_Syntax # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT +2775 ; Pattern_Syntax # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT +2794..27BF ; Pattern_Syntax # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP +27C0..27C4 ; Pattern_Syntax # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET +27C5 ; Pattern_Syntax # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Pattern_Syntax # Pe RIGHT S-SHAPED BAG DELIMITER +27C7..27CA ; Pattern_Syntax # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE +27CB ; Pattern_Syntax # Cn <reserved-27CB> +27CC ; Pattern_Syntax # Sm LONG DIVISION +27CD ; Pattern_Syntax # Cn <reserved-27CD> +27CE..27E5 ; Pattern_Syntax # Sm [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK +27E6 ; Pattern_Syntax # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Pattern_Syntax # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Pattern_Syntax # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Pattern_Syntax # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Pattern_Syntax # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Pattern_Syntax # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Pattern_Syntax # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Pattern_Syntax # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; Pattern_Syntax # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2800..28FF ; Pattern_Syntax # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 +2900..2982 ; Pattern_Syntax # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON +2983 ; Pattern_Syntax # Ps LEFT WHITE CURLY BRACKET +2984 ; Pattern_Syntax # Pe RIGHT WHITE CURLY BRACKET +2985 ; Pattern_Syntax # Ps LEFT WHITE PARENTHESIS +2986 ; Pattern_Syntax # Pe RIGHT WHITE PARENTHESIS +2987 ; Pattern_Syntax # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Pattern_Syntax # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Pattern_Syntax # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Pattern_Syntax # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Pattern_Syntax # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Pattern_Syntax # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Pattern_Syntax # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Pattern_Syntax # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Pattern_Syntax # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Pattern_Syntax # Pe RIGHT BLACK TORTOISE SHELL BRACKET +2999..29D7 ; Pattern_Syntax # Sm [63] DOTTED FENCE..BLACK HOURGLASS +29D8 ; Pattern_Syntax # Ps LEFT WIGGLY FENCE +29D9 ; Pattern_Syntax # Pe RIGHT WIGGLY FENCE +29DA ; Pattern_Syntax # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Pattern_Syntax # Pe RIGHT DOUBLE WIGGLY FENCE +29DC..29FB ; Pattern_Syntax # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS +29FC ; Pattern_Syntax # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Pattern_Syntax # Pe RIGHT-POINTING CURVED ANGLE BRACKET +29FE..2AFF ; Pattern_Syntax # Sm [258] TINY..N-ARY WHITE VERTICAL BAR +2B00..2B2F ; Pattern_Syntax # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE +2B30..2B44 ; Pattern_Syntax # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET +2B45..2B46 ; Pattern_Syntax # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW +2B47..2B4C ; Pattern_Syntax # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +2B4D..2B4F ; Pattern_Syntax # Cn [3] <reserved-2B4D>..<reserved-2B4F> +2B50..2B59 ; Pattern_Syntax # So [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE +2B5A..2BFF ; Pattern_Syntax # Cn [166] <reserved-2B5A>..<reserved-2BFF> +2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER +2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET +2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET +2E04 ; Pattern_Syntax # Pi LEFT DOTTED SUBSTITUTION BRACKET +2E05 ; Pattern_Syntax # Pf RIGHT DOTTED SUBSTITUTION BRACKET +2E06..2E08 ; Pattern_Syntax # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER +2E09 ; Pattern_Syntax # Pi LEFT TRANSPOSITION BRACKET +2E0A ; Pattern_Syntax # Pf RIGHT TRANSPOSITION BRACKET +2E0B ; Pattern_Syntax # Po RAISED SQUARE +2E0C ; Pattern_Syntax # Pi LEFT RAISED OMISSION BRACKET +2E0D ; Pattern_Syntax # Pf RIGHT RAISED OMISSION BRACKET +2E0E..2E16 ; Pattern_Syntax # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE +2E17 ; Pattern_Syntax # Pd DOUBLE OBLIQUE HYPHEN +2E18..2E19 ; Pattern_Syntax # Po [2] INVERTED INTERROBANG..PALM BRANCH +2E1A ; Pattern_Syntax # Pd HYPHEN WITH DIAERESIS +2E1B ; Pattern_Syntax # Po TILDE WITH RING ABOVE +2E1C ; Pattern_Syntax # Pi LEFT LOW PARAPHRASE BRACKET +2E1D ; Pattern_Syntax # Pf RIGHT LOW PARAPHRASE BRACKET +2E1E..2E1F ; Pattern_Syntax # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW +2E20 ; Pattern_Syntax # Pi LEFT VERTICAL BAR WITH QUILL +2E21 ; Pattern_Syntax # Pf RIGHT VERTICAL BAR WITH QUILL +2E22 ; Pattern_Syntax # Ps TOP LEFT HALF BRACKET +2E23 ; Pattern_Syntax # Pe TOP RIGHT HALF BRACKET +2E24 ; Pattern_Syntax # Ps BOTTOM LEFT HALF BRACKET +2E25 ; Pattern_Syntax # Pe BOTTOM RIGHT HALF BRACKET +2E26 ; Pattern_Syntax # Ps LEFT SIDEWAYS U BRACKET +2E27 ; Pattern_Syntax # Pe RIGHT SIDEWAYS U BRACKET +2E28 ; Pattern_Syntax # Ps LEFT DOUBLE PARENTHESIS +2E29 ; Pattern_Syntax # Pe RIGHT DOUBLE PARENTHESIS +2E2A..2E2E ; Pattern_Syntax # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK +2E2F ; Pattern_Syntax # Lm VERTICAL TILDE +2E30..2E31 ; Pattern_Syntax # Po [2] RING POINT..WORD SEPARATOR MIDDLE DOT +2E32..2E7F ; Pattern_Syntax # Cn [78] <reserved-2E32>..<reserved-2E7F> +3001..3003 ; Pattern_Syntax # Po [3] IDEOGRAPHIC COMMA..DITTO MARK +3008 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET +3009 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET +300A ; Pattern_Syntax # Ps LEFT DOUBLE ANGLE BRACKET +300B ; Pattern_Syntax # Pe RIGHT DOUBLE ANGLE BRACKET +300C ; Pattern_Syntax # Ps LEFT CORNER BRACKET +300D ; Pattern_Syntax # Pe RIGHT CORNER BRACKET +300E ; Pattern_Syntax # Ps LEFT WHITE CORNER BRACKET +300F ; Pattern_Syntax # Pe RIGHT WHITE CORNER BRACKET +3010 ; Pattern_Syntax # Ps LEFT BLACK LENTICULAR BRACKET +3011 ; Pattern_Syntax # Pe RIGHT BLACK LENTICULAR BRACKET +3012..3013 ; Pattern_Syntax # So [2] POSTAL MARK..GETA MARK +3014 ; Pattern_Syntax # Ps LEFT TORTOISE SHELL BRACKET +3015 ; Pattern_Syntax # Pe RIGHT TORTOISE SHELL BRACKET +3016 ; Pattern_Syntax # Ps LEFT WHITE LENTICULAR BRACKET +3017 ; Pattern_Syntax # Pe RIGHT WHITE LENTICULAR BRACKET +3018 ; Pattern_Syntax # Ps LEFT WHITE TORTOISE SHELL BRACKET +3019 ; Pattern_Syntax # Pe RIGHT WHITE TORTOISE SHELL BRACKET +301A ; Pattern_Syntax # Ps LEFT WHITE SQUARE BRACKET +301B ; Pattern_Syntax # Pe RIGHT WHITE SQUARE BRACKET +301C ; Pattern_Syntax # Pd WAVE DASH +301D ; Pattern_Syntax # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Pattern_Syntax # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +3020 ; Pattern_Syntax # So POSTAL MARK FACE +3030 ; Pattern_Syntax # Pd WAVY DASH +FD3E ; Pattern_Syntax # Ps ORNATE LEFT PARENTHESIS +FD3F ; Pattern_Syntax # Pe ORNATE RIGHT PARENTHESIS +FE45..FE46 ; Pattern_Syntax # Po [2] SESAME DOT..WHITE SESAME DOT + +# Total code points: 2760 + +# EOF diff --git a/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java b/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java index c898259925b..2f7828b6c10 100644 --- a/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java +++ b/jdk/make/tools/src/build/tools/generatecharacter/GenerateCharacter.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -34,6 +33,7 @@ import java.io.PrintWriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.File; +import java.util.List; import build.tools.generatecharacter.CharacterName; @@ -68,18 +68,17 @@ public class GenerateCharacter { final static boolean DEBUG = false; - final static int MAX_UNICODE_VALUE = 0xFFFF; final static String commandMarker = "$$"; static String ROOT = ""; static String DefaultUnicodeSpecFileName = ROOT + "UnicodeData.txt"; static String DefaultSpecialCasingFileName = ROOT + "SpecialCasing.txt"; + static String DefaultPropListFileName = ROOT + "PropList.txt"; static String DefaultJavaTemplateFileName = ROOT + "Character.java.template"; static String DefaultJavaOutputFileName = ROOT + "Character.java"; static String DefaultCTemplateFileName = ROOT + "Character.c.template"; static String DefaultCOutputFileName = ROOT + "Character.c"; - static String CharacterDataClassName = "CharacterData"; - static int plane = 0; + static int plane = 0; /* The overall idea is that, in the generated Character class source code, most character property data is stored in a special multi-level table whose @@ -105,7 +104,11 @@ public class GenerateCharacter { entries are short rather than byte). */ - /* The character properties are currently encoded into 32 bits in the following manner: + /* The character properties are currently encoded into A (32 bits)and B (16 bits) + two parts. + + A: the low 32 bits are defined in the following manner: + 1 bit Mirrored property. 4 bits Bidirectional category (see below) (unused if -nobidi switch specified) 9 bits A signed offset used for converting case . @@ -148,6 +151,14 @@ public class GenerateCharacter { will produce the desired numeric value. 5 bits The digit offset (see description of previous field) 5 bits Character type (see below) + + B: the high 16 bits are defined as: + 1 bit Other_Lowercase property + 1 bit Other_Uppercase property + 1 bit Other_Alphabetic property + 1 bit Other_Math property + 1 bit Ideographic property + 1 bit Noncharacter codepoint property */ @@ -173,9 +184,22 @@ public class GenerateCharacter { // case offset are 9 bits maskCase = 0x01FF, shiftBidi = 27, maskBidi = 0x78000000, - shiftMirrored = 31, maskMirrored = 0x80000000, + shiftMirrored = 31, //maskMirrored = 0x80000000, shiftPlane = 16, maskPlane = 0xFF0000; + // maskMirrored needs to be long, if up 16-bit + private static final long maskMirrored = 0x80000000L; + + // bit masks identify the 16-bit priperty field described above, in B + // table + private static final long + maskOtherLowercase = 0x100000000L, + maskOtherUppercase = 0x200000000L, + maskOtherAlphabetic = 0x400000000L, + maskOtherMath = 0x800000000L, + maskIdeographic = 0x1000000000L, + maskNoncharacterCP = 0x2000000000L; + // Can compare masked values with these to determine // numeric or lexical types. public static int @@ -258,7 +282,7 @@ public class GenerateCharacter { * The specification file is assumed to contain its data in sorted order by * character code; as a result, the array passed as an argument to this method * has its components in the same sorted order, with one entry for each defined - * Unicode character or character range. (A range is indicated by two consecutive + * Unicode character or character range. (A range is indicated by two consecutive * entries, such that the name of the first entry begins with "<" and ends with * "First>" and the second entry begins with "<" and ends with "Last>".) This is * therefore a sparse representation of the character property data. @@ -282,7 +306,8 @@ public class GenerateCharacter { * @see GenerateCharacter#buildOne */ - static long[] buildMap(UnicodeSpec[] data, SpecialCaseMap[] specialMaps) { + static long[] buildMap(UnicodeSpec[] data, SpecialCaseMap[] specialMaps, PropList propList) + { long[] result; if (bLatin1 == true) { result = new long[256]; @@ -290,13 +315,13 @@ public class GenerateCharacter { result = new long[1<<16]; } int k=0; - int codePoint = plane<<16; + int codePoint = plane<<16; UnicodeSpec nonCharSpec = new UnicodeSpec(); for (int j = 0; j < data.length && k < result.length; j++) { if (data[j].codePoint == codePoint) { result[k] = buildOne(codePoint, data[j], specialMaps); ++k; - ++codePoint; + ++codePoint; } else if(data[j].codePoint > codePoint) { if (data[j].name.endsWith("Last>")) { @@ -304,7 +329,7 @@ public class GenerateCharacter { while (codePoint < data[j].codePoint && k < result.length) { result[k] = buildOne(codePoint, data[j], specialMaps); ++k; - ++codePoint; + ++codePoint; } } else { @@ -312,15 +337,14 @@ public class GenerateCharacter { while (codePoint < data[j].codePoint && k < result.length) { result[k] = buildOne(codePoint, nonCharSpec, specialMaps); ++k; - ++codePoint; + ++codePoint; } } k = data[j].codePoint & 0xFFFF; - codePoint = data[j].codePoint; + codePoint = data[j].codePoint; result[k] = buildOne(codePoint, data[j], specialMaps); ++k; - ++codePoint; - + ++codePoint; } else { System.out.println("An error has occured during spec mapping."); @@ -333,8 +357,17 @@ public class GenerateCharacter { while (k < result.length) { result[k] = buildOne(codePoint, nonCharSpec, specialMaps); ++k; - ++codePoint; + ++codePoint; } + // now add all extra supported properties from PropList, to the + // upper 16-bit + addExProp(result, propList, "Other_Lowercase", maskOtherLowercase); + addExProp(result, propList, "Other_Uppercase", maskOtherUppercase); + addExProp(result, propList, "Other_Alphabetic", maskOtherAlphabetic); + addExProp(result, propList, "Ideographic", maskIdeographic); + //addExProp(result, propList, "Other_Math", maskOtherMath); + //addExProp(result, propList, "Noncharacter_CodePoint", maskNoncharacterCP); + return result; } @@ -381,15 +414,15 @@ public class GenerateCharacter { // record the general category resultA |= us.generalCategory; - // record the numeric properties - NUMERIC: { + // record the numeric properties + NUMERIC: { STRANGE: { int val = 0; - // c is A-Z + // c is A-Z if ((c >= 0x0041) && (c <= 0x005A)) { val = c - 0x0041; resultA |= valueJavaSupradecimal; - // c is a-z + // c is a-z } else if ((c >= 0x0061) && (c <= 0x007A)) { val = c - 0x0061; resultA |= valueJavaSupradecimal; @@ -428,7 +461,7 @@ public class GenerateCharacter { resultA |= valueStrangeNumeric; } // end NUMERIC - // record case mapping + // record case mapping int offset = 0; // might have a 1:M mapping int specialMap = SpecialCaseMap.find(c, specialCaseMaps); @@ -458,12 +491,12 @@ public class GenerateCharacter { } } if ((us.hasTitleMap() && us.titleMap != us.upperMap) || - (bHasUpper && us.hasLowerMap())) { + (bHasUpper && us.hasLowerMap())) { resultA |= maskTitleCase; } if (bHasUpper && !us.hasLowerMap() && !us.hasTitleMap() && verbose) { - System.out.println("Warning: Character " + hex4(c) + " has upper but " + - "no title case; Java won't know this"); + System.out.println("Warning: Character " + hex4(c) + " has upper but " + + "no title case; Java won't know this"); } if (offset < minOffsetSeen) minOffsetSeen = offset; if (offset > maxOffsetSeen) maxOffsetSeen = offset; @@ -475,8 +508,7 @@ public class GenerateCharacter { } resultA |= ((offset & maskCase) << shiftCaseOffset); - - // record lexical info about this character + // record lexical info about this character if (us.generalCategory == UnicodeSpec.LOWERCASE_LETTER || us.generalCategory == UnicodeSpec.UPPERCASE_LETTER || us.generalCategory == UnicodeSpec.TITLECASE_LETTER @@ -539,6 +571,16 @@ public class GenerateCharacter { return resultA; } + static void addExProp(long[] map, PropList propList, String prop, long mask) { + List<Integer> cps = propList.codepoints(prop); + if (cps != null) { + for (Integer cp : cps) { + if (cp < map.length) + map[cp] |= mask; + } + } + } + /** * This is the heart of the table compression strategy. The inputs are a map * and a number of bits (size). The map is simply an array of long integer values; @@ -645,8 +687,8 @@ OUTER: for (int i = 0; i < n; i += m) { */ static void generateCharacterClass(String theTemplateFileName, - String theOutputFileName) - throws FileNotFoundException, IOException { + String theOutputFileName) + throws FileNotFoundException, IOException { BufferedReader in = new BufferedReader(new FileReader(theTemplateFileName)); PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(theOutputFileName))); out.println(commentStart + @@ -719,6 +761,9 @@ OUTER: for (int i = 0; i < n; i += m) { if (x.length() >= 9 && x.substring(0, 7).equals("Lookup(") && x.substring(x.length()-1).equals(")") ) return genAccess("A", x.substring(7, x.length()-1), (identifiers ? 2 : 32)); + if (x.length() >= 11 && x.substring(0, 9).equals("LookupEx(") && + x.substring(x.length()-1).equals(")") ) + return genAccess("B", x.substring(9, x.length()-1), 16); if (x.equals("shiftType")) return Long.toString(shiftType); if (x.equals("shiftIdentifierInfo")) return Long.toString(shiftIdentifierInfo); if (x.equals("maskIdentifierInfo")) return "0x" + hex8(maskIdentifierInfo); @@ -731,6 +776,10 @@ OUTER: for (int i = 0; i < n; i += m) { if (x.equals("maskLowerCase")) return "0x" + hex8(maskLowerCase); if (x.equals("maskUpperCase")) return "0x" + hex8(maskUpperCase); if (x.equals("maskTitleCase")) return "0x" + hex8(maskTitleCase); + if (x.equals("maskOtherLowercase")) return "0x" + hex4(maskOtherLowercase >> 32); + if (x.equals("maskOtherUppercase")) return "0x" + hex4(maskOtherUppercase >> 32); + if (x.equals("maskOtherAlphabetic")) return "0x" + hex4(maskOtherAlphabetic >> 32); + if (x.equals("maskIdeographic")) return "0x" + hex4(maskIdeographic >> 32); if (x.equals("valueIgnorable")) return "0x" + hex8(valueIgnorable); if (x.equals("valueJavaUnicodeStart")) return "0x" + hex8(valueJavaUnicodeStart); if (x.equals("valueJavaOnlyStart")) return "0x" + hex8(valueJavaOnlyStart); @@ -899,7 +948,7 @@ OUTER: for (int i = 0; i < n; i += m) { // If we ever need more than 32 bits to represent the character properties, // then a table "B" may be needed as well. - // genTable(result, "B", tables[n - 1], 32, 16, sizes[n - 1], false, 0, true, true, false); + genTable(result, "B", tables[n - 1], 32, 16, sizes[n - 1], false, 0, true, true, false); totalBytes += ((((tables[n - 1].length * (identifiers ? 2 : 32)) + 31) >> 5) << 2); result.append(commentStart); @@ -1080,9 +1129,9 @@ OUTER: for (int i = 0; i < n; i += m) { */ static void genTable(StringBuffer result, String name, - long[] table, int extract, int bits, int size, - boolean preshifted, int shift, boolean hexFormat, - boolean properties, boolean hexComment) { + long[] table, int extract, int bits, int size, + boolean preshifted, int shift, boolean hexFormat, + boolean properties, boolean hexComment) { String atype = bits == 1 ? (Csyntax ? "unsigned long" : "int") : bits == 2 ? (Csyntax ? "unsigned long" : "int") : @@ -1137,7 +1186,12 @@ OUTER: for (int i = 0; i < n; i += m) { char ch = '\u0000'; int charsPerEntry = -entriesPerChar; for (int j=0; j<table.length; ++j) { - long entry = table[j] >> extract; + //long entry = table[j] >> extract; + long entry; + if ("A".equals(name)) + entry = (table[j] & 0xffffffffL) >> extract; + else + entry = (table[j] >> extract); if (shiftEntries) entry <<= shift; if (entry >= (1L << bits)) { FAIL("Entry too big"); @@ -1549,6 +1603,7 @@ OUTER: for (int i = 0; i < n; i += m) { static String OutputFileName = null; static String UnicodeSpecFileName = null; // liu static String SpecialCasingFileName = null; + static String PropListFileName = null; static boolean useCharForByte = false; static int[] sizes; static int bins = 0; // liu; if > 0, then perform search @@ -1668,20 +1723,28 @@ OUTER: for (int i = 0; i < n; i += m) { SpecialCasingFileName = args[++j]; } } - else if (args[j].equals("-plane")) { - if (j == args.length -1) { - FAIL("Plane number missing after -plane"); - } - else { - plane = Integer.parseInt(args[++j]); - } - if (plane > 0) { - bLatin1 = false; - } - } - else if ("-usecharforbyte".equals(args[j])) { - useCharForByte = true; - } + else if (args[j].equals("-proplist")) { + if (j == args.length -1) { + FAIL("File name missing after -proplist"); + } + else { + PropListFileName = args[++j]; + } + } + else if (args[j].equals("-plane")) { + if (j == args.length -1) { + FAIL("Plane number missing after -plane"); + } + else { + plane = Integer.parseInt(args[++j]); + } + if (plane > 0) { + bLatin1 = false; + } + } + else if ("-usecharforbyte".equals(args[j])) { + useCharForByte = true; + } else if (args[j].equals("-latin1")) { bLatin1 = true; plane = 0; @@ -1728,6 +1791,10 @@ OUTER: for (int i = 0; i < n; i += m) { SpecialCasingFileName = DefaultSpecialCasingFileName; desc.append(" [-specialcasing " + SpecialCasingFileName + ']'); } + if (PropListFileName == null) { + PropListFileName = DefaultPropListFileName; + desc.append(" [-proplist " + PropListFileName + ']'); + } if (TemplateFileName == null) { TemplateFileName = (Csyntax ? DefaultCTemplateFileName : DefaultJavaTemplateFileName); @@ -1877,12 +1944,13 @@ OUTER: for (int i = 0; i < n; i += m) { try { UnicodeSpec[] data = UnicodeSpec.readSpecFile(new File(UnicodeSpecFileName), plane); - specialCaseMaps = SpecialCaseMap.readSpecFile(new File(SpecialCasingFileName), plane); + PropList propList = PropList.readSpecFile(new File(PropListFileName), plane); + if (verbose) { System.out.println(data.length + " items read from Unicode spec file " + UnicodeSpecFileName); // liu } - long[] map = buildMap(data, specialCaseMaps); + long[] map = buildMap(data, specialCaseMaps, propList); if (verbose) { System.err.println("Completed building of initial map"); } diff --git a/jdk/make/tools/src/build/tools/generatecharacter/PropList.java b/jdk/make/tools/src/build/tools/generatecharacter/PropList.java new file mode 100644 index 00000000000..4591d5d6678 --- /dev/null +++ b/jdk/make/tools/src/build/tools/generatecharacter/PropList.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package build.tools.generatecharacter; + +import java.util.regex.*; +import java.util.*; +import java.io.*; + +/** + * A PropList object contains the lists of code points that have + * the same Unicode property defined in PropList.txt + * + * @author Xueming Shen + */ +public class PropList { + + public static PropList readSpecFile(File file, int plane) + throws IOException + { + return new PropList(file, plane); + } + + public List<Integer> codepoints(String name) { + return propMap.get(name); + } + + public Set<String> names() { + return propMap.keySet(); + } + + private Map<String, ArrayList<Integer>> propMap = + new LinkedHashMap<String, ArrayList<Integer>>(); + + private PropList(File file, int plane) throws IOException { + + int i, j; + BufferedReader sbfr = new BufferedReader(new FileReader(file)); + Matcher m = Pattern.compile("(\\p{XDigit}+)(?:\\.{2}(\\p{XDigit}+))?\\s*;\\s+(\\w+)\\s+#.*").matcher(""); + String line = null; + int lineNo = 0; + while ((line = sbfr.readLine()) != null) { + lineNo++; + if (line.length() <= 1 || line.charAt(0) == '#') { + continue; + } + m.reset(line); + if (m.matches()) { + int start = Integer.parseInt(m.group(1), 16); + if ((start >> 16) != plane) + continue; + int end = (m.group(2)==null)?start + :Integer.parseInt(m.group(2), 16); + String name = m.group(3); + + start &= 0xffff; + end &= 0xffff; + + ArrayList<Integer> list = propMap.get(name); + if (list == null) { + list = new ArrayList<Integer>(); + propMap.put(name, list); + } + while (start <= end) + list.add(start++); + } else { + System.out.printf("Warning: Unrecognized line %d <%s>%n", lineNo, line); + } + } + sbfr.close(); + + //for (String name: propMap.keySet()) { + // System.out.printf("%s %d%n", name, propMap.get(name).size()); + //} + } + + public static void main(String[] args) throws IOException { + readSpecFile(new File(args[0]), Integer.decode(args[1])); + } +} diff --git a/jdk/src/share/classes/java/lang/Character.java b/jdk/src/share/classes/java/lang/Character.java index e52a83a84b1..216098bd533 100644 --- a/jdk/src/share/classes/java/lang/Character.java +++ b/jdk/src/share/classes/java/lang/Character.java @@ -59,14 +59,14 @@ import java.util.Locale; * <p>The {@code char} data type (and therefore the value that a * {@code Character} object encapsulates) are based on the * original Unicode specification, which defined characters as - * fixed-width 16-bit entities. The Unicode standard has since been + * fixed-width 16-bit entities. The Unicode Standard has since been * changed to allow for characters whose representation requires more * than 16 bits. The range of legal <em>code point</em>s is now * U+0000 to U+10FFFF, known as <em>Unicode scalar value</em>. * (Refer to the <a * href="http://www.unicode.org/reports/tr27/#notation"><i> * definition</i></a> of the U+<i>n</i> notation in the Unicode - * standard.) + * Standard.) * * <p><a name="BMP">The set of characters from U+0000 to U+FFFF is * sometimes referred to as the <em>Basic Multilingual Plane (BMP)</em>. @@ -5200,7 +5200,8 @@ class Character implements java.io.Serializable, Comparable<Character> { * <p> * A character is lowercase if its general category type, provided * by {@code Character.getType(ch)}, is - * {@code LOWERCASE_LETTER}. + * {@code LOWERCASE_LETTER}, or it has contributory property + * Other_Lowercase as defined by the Unicode Standard. * <p> * The following are examples of lowercase characters: * <p><blockquote><pre> @@ -5235,7 +5236,8 @@ class Character implements java.io.Serializable, Comparable<Character> { * <p> * A character is lowercase if its general category type, provided * by {@link Character#getType getType(codePoint)}, is - * {@code LOWERCASE_LETTER}. + * {@code LOWERCASE_LETTER}, or it has contributory property + * Other_Lowercase as defined by the Unicode Standard. * <p> * The following are examples of lowercase characters: * <p><blockquote><pre> @@ -5257,7 +5259,8 @@ class Character implements java.io.Serializable, Comparable<Character> { * @since 1.5 */ public static boolean isLowerCase(int codePoint) { - return getType(codePoint) == Character.LOWERCASE_LETTER; + return getType(codePoint) == Character.LOWERCASE_LETTER || + CharacterData.of(codePoint).isOtherLowercase(codePoint); } /** @@ -5265,6 +5268,7 @@ class Character implements java.io.Serializable, Comparable<Character> { * <p> * A character is uppercase if its general category type, provided by * {@code Character.getType(ch)}, is {@code UPPERCASE_LETTER}. + * or it has contributory property Other_Uppercase as defined by the Unicode Standard. * <p> * The following are examples of uppercase characters: * <p><blockquote><pre> @@ -5298,7 +5302,8 @@ class Character implements java.io.Serializable, Comparable<Character> { * Determines if the specified character (Unicode code point) is an uppercase character. * <p> * A character is uppercase if its general category type, provided by - * {@link Character#getType(int) getType(codePoint)}, is {@code UPPERCASE_LETTER}. + * {@link Character#getType(int) getType(codePoint)}, is {@code UPPERCASE_LETTER}, + * or it has contributory property Other_Uppercase as defined by the Unicode Standard. * <p> * The following are examples of uppercase characters: * <p><blockquote><pre> @@ -5320,7 +5325,8 @@ class Character implements java.io.Serializable, Comparable<Character> { * @since 1.5 */ public static boolean isUpperCase(int codePoint) { - return getType(codePoint) == Character.UPPERCASE_LETTER; + return getType(codePoint) == Character.UPPERCASE_LETTER || + CharacterData.of(codePoint).isOtherUppercase(codePoint); } /** @@ -5724,6 +5730,52 @@ class Character implements java.io.Serializable, Comparable<Character> { return isJavaIdentifierPart(ch); } + /** + * Determines if the specified character (Unicode code point) is an alphabet. + * <p> + * A character is considered to be alphabetic if its general category type, + * provided by {@link Character#getType(int) getType(codePoint)}, is any of + * the following: + * <ul> + * <li> <code>UPPERCASE_LETTER</code> + * <li> <code>LOWERCASE_LETTER</code> + * <li> <code>TITLECASE_LETTER</code> + * <li> <code>MODIFIER_LETTER</code> + * <li> <code>OTHER_LETTER</code> + * <li> <code>LETTER_NUMBER</code> + * </ul> + * or it has contributory property Other_Alphabetic as defined by the + * Unicode Standard. + * + * @param codePoint the character (Unicode code point) to be tested. + * @return <code>true</code> if the character is a Unicode alphabet + * character, <code>false</code> otherwise. + * @since 1.7 + */ + public static boolean isAlphabetic(int codePoint) { + return (((((1 << Character.UPPERCASE_LETTER) | + (1 << Character.LOWERCASE_LETTER) | + (1 << Character.TITLECASE_LETTER) | + (1 << Character.MODIFIER_LETTER) | + (1 << Character.OTHER_LETTER) | + (1 << Character.LETTER_NUMBER)) >> getType(codePoint)) & 1) != 0) || + CharacterData.of(codePoint).isOtherAlphabetic(codePoint); + } + + /** + * Determines if the specified character (Unicode code point) is a CJKV + * (Chinese, Japanese, Korean and Vietnamese) ideograph, as defined by + * the Unicode Standard. + * + * @param codePoint the character (Unicode code point) to be tested. + * @return <code>true</code> if the character is a Unicode ideograph + * character, <code>false</code> otherwise. + * @since 1.7 + */ + public static boolean isIdeographic(int codePoint) { + return CharacterData.of(codePoint).isIdeographic(codePoint); + } + /** * Determines if the specified character is * permissible as the first character in a Java identifier. @@ -6430,7 +6482,7 @@ class Character implements java.io.Serializable, Comparable<Character> { /** * Determines if the specified character is a Unicode space character. * A character is considered to be a space character if and only if - * it is specified to be a space character by the Unicode standard. This + * it is specified to be a space character by the Unicode Standard. This * method returns true if the character's general category type is any of * the following: * <ul> @@ -6458,7 +6510,7 @@ class Character implements java.io.Serializable, Comparable<Character> { * Determines if the specified character (Unicode code point) is a * Unicode space character. A character is considered to be a * space character if and only if it is specified to be a space - * character by the Unicode standard. This method returns true if + * character by the Unicode Standard. This method returns true if * the character's general category type is any of the following: * * <ul> @@ -6908,7 +6960,7 @@ class Character implements java.io.Serializable, Comparable<Character> { * @since 1.4 */ static char[] toUpperCaseCharArray(int codePoint) { - // As of Unicode 4.0, 1:M uppercasings only happen in the BMP. + // As of Unicode 6.0, 1:M uppercasings only happen in the BMP. assert isBmpCodePoint(codePoint); return CharacterData.of(codePoint).toUpperCaseCharArray(codePoint); } @@ -6941,7 +6993,7 @@ class Character implements java.io.Serializable, Comparable<Character> { * Note: if the specified character is not assigned a name by * the <i>UnicodeData</i> file (part of the Unicode Character * Database maintained by the Unicode Consortium), the returned - * name is the same as the result of expression + * name is the same as the result of expression. * * <blockquote>{@code * Character.UnicodeBlock.of(codePoint).toString().replace('_', ' ') diff --git a/jdk/src/share/classes/java/lang/CharacterData.java b/jdk/src/share/classes/java/lang/CharacterData.java index af86462b071..597f98c443a 100644 --- a/jdk/src/share/classes/java/lang/CharacterData.java +++ b/jdk/src/share/classes/java/lang/CharacterData.java @@ -46,10 +46,27 @@ abstract class CharacterData { int toUpperCaseEx(int ch) { return toUpperCase(ch); } + char[] toUpperCaseCharArray(int ch) { return null; } + boolean isOtherLowercase(int ch) { + return false; + } + + boolean isOtherUppercase(int ch) { + return false; + } + + boolean isOtherAlphabetic(int ch) { + return false; + } + + boolean isIdeographic(int ch) { + return false; + } + // Character <= 0xff (basic latin) is handled by internal fast-path // to avoid initializing large tables. // Note: performance of this "fast-path" code may be sub-optimal diff --git a/jdk/test/java/lang/Character/CheckProp.java b/jdk/test/java/lang/Character/CheckProp.java new file mode 100644 index 00000000000..92da9d3ef1b --- /dev/null +++ b/jdk/test/java/lang/Character/CheckProp.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + + +/** + * @test + * @bug 7037261 + * @summary Check j.l.Character.isLowerCase/isUppercase/isAlphabetic/isIdeographic + */ + +import java.util.regex.*; +import java.util.*; +import java.io.*; +import static java.lang.Character.*; + +public class CheckProp { + + public static void main(String[] args) throws IOException { + File fPropList = new File(System.getProperty("test.src", "."), "PropList.txt"); + int i, j; + BufferedReader sbfr = new BufferedReader(new FileReader(fPropList)); + Matcher m = Pattern.compile("(\\p{XDigit}+)(?:\\.{2}(\\p{XDigit}+))?\\s*;\\s+(\\w+)\\s+#.*").matcher(""); + Map<String, ArrayList<Integer>> propMap = new LinkedHashMap<>(); + + String line = null; + int lineNo = 0; + while ((line = sbfr.readLine()) != null) { + lineNo++; + if (line.length() <= 1 || line.charAt(0) == '#') { + continue; + } + m.reset(line); + if (m.matches()) { + int start = Integer.parseInt(m.group(1), 16); + int end = (m.group(2)==null)?start + :Integer.parseInt(m.group(2), 16); + String name = m.group(3); + + ArrayList<Integer> list = propMap.get(name); + if (list == null) { + list = new ArrayList<Integer>(); + propMap.put(name, list); + } + while (start <= end) + list.add(start++); + } else { + System.out.printf("Warning: Unrecognized line %d <%s>%n", lineNo, line); + } + } + sbfr.close(); + //for (String name: propMap.keySet()) { + // System.out.printf("%s %d%n", name, propMap.get(name).size()); + //} + + Integer[] otherLowercase = propMap.get("Other_Lowercase").toArray(new Integer[0]); + Integer[] otherUppercase = propMap.get("Other_Uppercase").toArray(new Integer[0]); + Integer[] otherAlphabetic = propMap.get("Other_Alphabetic").toArray(new Integer[0]); + Integer[] ideographic = propMap.get("Ideographic").toArray(new Integer[0]); + + int fails = 0; + for (int cp = MIN_CODE_POINT; cp < MAX_CODE_POINT; cp++) { + int type = getType(cp); + if (isLowerCase(cp) != + (type == LOWERCASE_LETTER || + Arrays.binarySearch(otherLowercase, cp) >= 0)) + { + fails++; + System.err.printf("Wrong isLowerCase(U+%04x)\n", cp); + } + if (isUpperCase(cp) != + (type == UPPERCASE_LETTER || + Arrays.binarySearch(otherUppercase, cp) >= 0)) + { + fails++; + System.err.printf("Wrong isUpperCase(U+%04x)\n", cp); + } + if (isAlphabetic(cp) != + (type == UPPERCASE_LETTER || type == LOWERCASE_LETTER || + type == TITLECASE_LETTER || type == MODIFIER_LETTER || + type == OTHER_LETTER || type == OTHER_LETTER || + type == LETTER_NUMBER || + Arrays.binarySearch(otherAlphabetic, cp) >=0)) + { + fails++; + System.err.printf("Wrong isAlphabetic(U+%04x)\n", cp); + } + if (isIdeographic(cp) != + (Arrays.binarySearch(ideographic, cp) >= 0)) + { + fails++; + System.err.printf("Wrong isIdeographic(U+%04x)\n", cp); + } + } + if (fails != 0) + throw new RuntimeException("CheckProp failed=" + fails); + } +} diff --git a/jdk/test/java/lang/Character/PropList.txt b/jdk/test/java/lang/Character/PropList.txt new file mode 100644 index 00000000000..eeeb81845e3 --- /dev/null +++ b/jdk/test/java/lang/Character/PropList.txt @@ -0,0 +1,1296 @@ +# PropList-6.0.0.txt +# Date: 2010-08-19, 00:48:28 GMT [MD] +# +# Unicode Character Database +# Copyright (c) 1991-2010 Unicode, Inc. +# For terms of use, see http://www.unicode.org/terms_of_use.html +# For documentation, see http://www.unicode.org/reports/tr44/ + +# ================================================ + +0009..000D ; White_Space # Cc [5] <control-0009>..<control-000D> +0020 ; White_Space # Zs SPACE +0085 ; White_Space # Cc <control-0085> +00A0 ; White_Space # Zs NO-BREAK SPACE +1680 ; White_Space # Zs OGHAM SPACE MARK +180E ; White_Space # Zs MONGOLIAN VOWEL SEPARATOR +2000..200A ; White_Space # Zs [11] EN QUAD..HAIR SPACE +2028 ; White_Space # Zl LINE SEPARATOR +2029 ; White_Space # Zp PARAGRAPH SEPARATOR +202F ; White_Space # Zs NARROW NO-BREAK SPACE +205F ; White_Space # Zs MEDIUM MATHEMATICAL SPACE +3000 ; White_Space # Zs IDEOGRAPHIC SPACE + +# Total code points: 26 + +# ================================================ + +200E..200F ; Bidi_Control # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +202A..202E ; Bidi_Control # Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE + +# Total code points: 7 + +# ================================================ + +200C..200D ; Join_Control # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER + +# Total code points: 2 + +# ================================================ + +002D ; Dash # Pd HYPHEN-MINUS +058A ; Dash # Pd ARMENIAN HYPHEN +05BE ; Dash # Pd HEBREW PUNCTUATION MAQAF +1400 ; Dash # Pd CANADIAN SYLLABICS HYPHEN +1806 ; Dash # Pd MONGOLIAN TODO SOFT HYPHEN +2010..2015 ; Dash # Pd [6] HYPHEN..HORIZONTAL BAR +2053 ; Dash # Po SWUNG DASH +207B ; Dash # Sm SUPERSCRIPT MINUS +208B ; Dash # Sm SUBSCRIPT MINUS +2212 ; Dash # Sm MINUS SIGN +2E17 ; Dash # Pd DOUBLE OBLIQUE HYPHEN +2E1A ; Dash # Pd HYPHEN WITH DIAERESIS +301C ; Dash # Pd WAVE DASH +3030 ; Dash # Pd WAVY DASH +30A0 ; Dash # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN +FE31..FE32 ; Dash # Pd [2] PRESENTATION FORM FOR VERTICAL EM DASH..PRESENTATION FORM FOR VERTICAL EN DASH +FE58 ; Dash # Pd SMALL EM DASH +FE63 ; Dash # Pd SMALL HYPHEN-MINUS +FF0D ; Dash # Pd FULLWIDTH HYPHEN-MINUS + +# Total code points: 25 + +# ================================================ + +002D ; Hyphen # Pd HYPHEN-MINUS +00AD ; Hyphen # Cf SOFT HYPHEN +058A ; Hyphen # Pd ARMENIAN HYPHEN +1806 ; Hyphen # Pd MONGOLIAN TODO SOFT HYPHEN +2010..2011 ; Hyphen # Pd [2] HYPHEN..NON-BREAKING HYPHEN +2E17 ; Hyphen # Pd DOUBLE OBLIQUE HYPHEN +30FB ; Hyphen # Po KATAKANA MIDDLE DOT +FE63 ; Hyphen # Pd SMALL HYPHEN-MINUS +FF0D ; Hyphen # Pd FULLWIDTH HYPHEN-MINUS +FF65 ; Hyphen # Po HALFWIDTH KATAKANA MIDDLE DOT + +# Total code points: 11 + +# ================================================ + +0022 ; Quotation_Mark # Po QUOTATION MARK +0027 ; Quotation_Mark # Po APOSTROPHE +00AB ; Quotation_Mark # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00BB ; Quotation_Mark # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +2018 ; Quotation_Mark # Pi LEFT SINGLE QUOTATION MARK +2019 ; Quotation_Mark # Pf RIGHT SINGLE QUOTATION MARK +201A ; Quotation_Mark # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Quotation_Mark # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Quotation_Mark # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Quotation_Mark # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Quotation_Mark # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2039 ; Quotation_Mark # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Quotation_Mark # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +300C ; Quotation_Mark # Ps LEFT CORNER BRACKET +300D ; Quotation_Mark # Pe RIGHT CORNER BRACKET +300E ; Quotation_Mark # Ps LEFT WHITE CORNER BRACKET +300F ; Quotation_Mark # Pe RIGHT WHITE CORNER BRACKET +301D ; Quotation_Mark # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Quotation_Mark # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +FE41 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT CORNER BRACKET +FE42 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT CORNER BRACKET +FE43 ; Quotation_Mark # Ps PRESENTATION FORM FOR VERTICAL LEFT WHITE CORNER BRACKET +FE44 ; Quotation_Mark # Pe PRESENTATION FORM FOR VERTICAL RIGHT WHITE CORNER BRACKET +FF02 ; Quotation_Mark # Po FULLWIDTH QUOTATION MARK +FF07 ; Quotation_Mark # Po FULLWIDTH APOSTROPHE +FF62 ; Quotation_Mark # Ps HALFWIDTH LEFT CORNER BRACKET +FF63 ; Quotation_Mark # Pe HALFWIDTH RIGHT CORNER BRACKET + +# Total code points: 29 + +# ================================================ + +0021 ; Terminal_Punctuation # Po EXCLAMATION MARK +002C ; Terminal_Punctuation # Po COMMA +002E ; Terminal_Punctuation # Po FULL STOP +003A..003B ; Terminal_Punctuation # Po [2] COLON..SEMICOLON +003F ; Terminal_Punctuation # Po QUESTION MARK +037E ; Terminal_Punctuation # Po GREEK QUESTION MARK +0387 ; Terminal_Punctuation # Po GREEK ANO TELEIA +0589 ; Terminal_Punctuation # Po ARMENIAN FULL STOP +05C3 ; Terminal_Punctuation # Po HEBREW PUNCTUATION SOF PASUQ +060C ; Terminal_Punctuation # Po ARABIC COMMA +061B ; Terminal_Punctuation # Po ARABIC SEMICOLON +061F ; Terminal_Punctuation # Po ARABIC QUESTION MARK +06D4 ; Terminal_Punctuation # Po ARABIC FULL STOP +0700..070A ; Terminal_Punctuation # Po [11] SYRIAC END OF PARAGRAPH..SYRIAC CONTRACTION +070C ; Terminal_Punctuation # Po SYRIAC HARKLEAN METOBELUS +07F8..07F9 ; Terminal_Punctuation # Po [2] NKO COMMA..NKO EXCLAMATION MARK +0830..083E ; Terminal_Punctuation # Po [15] SAMARITAN PUNCTUATION NEQUDAA..SAMARITAN PUNCTUATION ANNAAU +085E ; Terminal_Punctuation # Po MANDAIC PUNCTUATION +0964..0965 ; Terminal_Punctuation # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +0E5A..0E5B ; Terminal_Punctuation # Po [2] THAI CHARACTER ANGKHANKHU..THAI CHARACTER KHOMUT +0F08 ; Terminal_Punctuation # Po TIBETAN MARK SBRUL SHAD +0F0D..0F12 ; Terminal_Punctuation # Po [6] TIBETAN MARK SHAD..TIBETAN MARK RGYA GRAM SHAD +104A..104B ; Terminal_Punctuation # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION +1361..1368 ; Terminal_Punctuation # Po [8] ETHIOPIC WORDSPACE..ETHIOPIC PARAGRAPH SEPARATOR +166D..166E ; Terminal_Punctuation # Po [2] CANADIAN SYLLABICS CHI SIGN..CANADIAN SYLLABICS FULL STOP +16EB..16ED ; Terminal_Punctuation # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION +17D4..17D6 ; Terminal_Punctuation # Po [3] KHMER SIGN KHAN..KHMER SIGN CAMNUC PII KUUH +17DA ; Terminal_Punctuation # Po KHMER SIGN KOOMUUT +1802..1805 ; Terminal_Punctuation # Po [4] MONGOLIAN COMMA..MONGOLIAN FOUR DOTS +1808..1809 ; Terminal_Punctuation # Po [2] MONGOLIAN MANCHU COMMA..MONGOLIAN MANCHU FULL STOP +1944..1945 ; Terminal_Punctuation # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1AA8..1AAB ; Terminal_Punctuation # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU +1B5A..1B5B ; Terminal_Punctuation # Po [2] BALINESE PANTI..BALINESE PAMADA +1B5D..1B5F ; Terminal_Punctuation # Po [3] BALINESE CARIK PAMUNGKAH..BALINESE CARIK PAREREN +1C3B..1C3F ; Terminal_Punctuation # Po [5] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION TSHOOK +1C7E..1C7F ; Terminal_Punctuation # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +203C..203D ; Terminal_Punctuation # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG +2047..2049 ; Terminal_Punctuation # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK +2E2E ; Terminal_Punctuation # Po REVERSED QUESTION MARK +3001..3002 ; Terminal_Punctuation # Po [2] IDEOGRAPHIC COMMA..IDEOGRAPHIC FULL STOP +A4FE..A4FF ; Terminal_Punctuation # Po [2] LISU PUNCTUATION COMMA..LISU PUNCTUATION FULL STOP +A60D..A60F ; Terminal_Punctuation # Po [3] VAI COMMA..VAI QUESTION MARK +A6F3..A6F7 ; Terminal_Punctuation # Po [5] BAMUM FULL STOP..BAMUM QUESTION MARK +A876..A877 ; Terminal_Punctuation # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD +A8CE..A8CF ; Terminal_Punctuation # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A92F ; Terminal_Punctuation # Po KAYAH LI SIGN SHYA +A9C7..A9C9 ; Terminal_Punctuation # Po [3] JAVANESE PADA PANGKAT..JAVANESE PADA LUNGSI +AA5D..AA5F ; Terminal_Punctuation # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA +AADF ; Terminal_Punctuation # Po TAI VIET SYMBOL KOI KOI +ABEB ; Terminal_Punctuation # Po MEETEI MAYEK CHEIKHEI +FE50..FE52 ; Terminal_Punctuation # Po [3] SMALL COMMA..SMALL FULL STOP +FE54..FE57 ; Terminal_Punctuation # Po [4] SMALL SEMICOLON..SMALL EXCLAMATION MARK +FF01 ; Terminal_Punctuation # Po FULLWIDTH EXCLAMATION MARK +FF0C ; Terminal_Punctuation # Po FULLWIDTH COMMA +FF0E ; Terminal_Punctuation # Po FULLWIDTH FULL STOP +FF1A..FF1B ; Terminal_Punctuation # Po [2] FULLWIDTH COLON..FULLWIDTH SEMICOLON +FF1F ; Terminal_Punctuation # Po FULLWIDTH QUESTION MARK +FF61 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC FULL STOP +FF64 ; Terminal_Punctuation # Po HALFWIDTH IDEOGRAPHIC COMMA +1039F ; Terminal_Punctuation # Po UGARITIC WORD DIVIDER +103D0 ; Terminal_Punctuation # Po OLD PERSIAN WORD DIVIDER +10857 ; Terminal_Punctuation # Po IMPERIAL ARAMAIC SECTION SIGN +1091F ; Terminal_Punctuation # Po PHOENICIAN WORD SEPARATOR +10B3A..10B3F ; Terminal_Punctuation # Po [6] TINY TWO DOTS OVER ONE DOT PUNCTUATION..LARGE ONE RING OVER TWO RINGS PUNCTUATION +11047..1104D ; Terminal_Punctuation # Po [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS +110BE..110C1 ; Terminal_Punctuation # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA +12470..12473 ; Terminal_Punctuation # Po [4] CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER..CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON + +# Total code points: 169 + +# ================================================ + +005E ; Other_Math # Sk CIRCUMFLEX ACCENT +03D0..03D2 ; Other_Math # L& [3] GREEK BETA SYMBOL..GREEK UPSILON WITH HOOK SYMBOL +03D5 ; Other_Math # L& GREEK PHI SYMBOL +03F0..03F1 ; Other_Math # L& [2] GREEK KAPPA SYMBOL..GREEK RHO SYMBOL +03F4..03F5 ; Other_Math # L& [2] GREEK CAPITAL THETA SYMBOL..GREEK LUNATE EPSILON SYMBOL +2016 ; Other_Math # Po DOUBLE VERTICAL LINE +2032..2034 ; Other_Math # Po [3] PRIME..TRIPLE PRIME +2040 ; Other_Math # Pc CHARACTER TIE +2061..2064 ; Other_Math # Cf [4] FUNCTION APPLICATION..INVISIBLE PLUS +207D ; Other_Math # Ps SUPERSCRIPT LEFT PARENTHESIS +207E ; Other_Math # Pe SUPERSCRIPT RIGHT PARENTHESIS +208D ; Other_Math # Ps SUBSCRIPT LEFT PARENTHESIS +208E ; Other_Math # Pe SUBSCRIPT RIGHT PARENTHESIS +20D0..20DC ; Other_Math # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE +20E1 ; Other_Math # Mn COMBINING LEFT RIGHT ARROW ABOVE +20E5..20E6 ; Other_Math # Mn [2] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING DOUBLE VERTICAL STROKE OVERLAY +20EB..20EF ; Other_Math # Mn [5] COMBINING LONG DOUBLE SOLIDUS OVERLAY..COMBINING RIGHT ARROW BELOW +2102 ; Other_Math # L& DOUBLE-STRUCK CAPITAL C +2107 ; Other_Math # L& EULER CONSTANT +210A..2113 ; Other_Math # L& [10] SCRIPT SMALL G..SCRIPT SMALL L +2115 ; Other_Math # L& DOUBLE-STRUCK CAPITAL N +2119..211D ; Other_Math # L& [5] DOUBLE-STRUCK CAPITAL P..DOUBLE-STRUCK CAPITAL R +2124 ; Other_Math # L& DOUBLE-STRUCK CAPITAL Z +2128 ; Other_Math # L& BLACK-LETTER CAPITAL Z +2129 ; Other_Math # So TURNED GREEK SMALL LETTER IOTA +212C..212D ; Other_Math # L& [2] SCRIPT CAPITAL B..BLACK-LETTER CAPITAL C +212F..2131 ; Other_Math # L& [3] SCRIPT SMALL E..SCRIPT CAPITAL F +2133..2134 ; Other_Math # L& [2] SCRIPT CAPITAL M..SCRIPT SMALL O +2135..2138 ; Other_Math # Lo [4] ALEF SYMBOL..DALET SYMBOL +213C..213F ; Other_Math # L& [4] DOUBLE-STRUCK SMALL PI..DOUBLE-STRUCK CAPITAL PI +2145..2149 ; Other_Math # L& [5] DOUBLE-STRUCK ITALIC CAPITAL D..DOUBLE-STRUCK ITALIC SMALL J +2195..2199 ; Other_Math # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219C..219F ; Other_Math # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A1..21A2 ; Other_Math # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A4..21A5 ; Other_Math # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A7 ; Other_Math # So DOWNWARDS ARROW FROM BAR +21A9..21AD ; Other_Math # So [5] LEFTWARDS ARROW WITH HOOK..LEFT RIGHT WAVE ARROW +21B0..21B1 ; Other_Math # So [2] UPWARDS ARROW WITH TIP LEFTWARDS..UPWARDS ARROW WITH TIP RIGHTWARDS +21B6..21B7 ; Other_Math # So [2] ANTICLOCKWISE TOP SEMICIRCLE ARROW..CLOCKWISE TOP SEMICIRCLE ARROW +21BC..21CD ; Other_Math # So [18] LEFTWARDS HARPOON WITH BARB UPWARDS..LEFTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Other_Math # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D3 ; Other_Math # So DOWNWARDS DOUBLE ARROW +21D5..21DB ; Other_Math # So [7] UP DOWN DOUBLE ARROW..RIGHTWARDS TRIPLE ARROW +21DD ; Other_Math # So RIGHTWARDS SQUIGGLE ARROW +21E4..21E5 ; Other_Math # So [2] LEFTWARDS ARROW TO BAR..RIGHTWARDS ARROW TO BAR +23B4..23B5 ; Other_Math # So [2] TOP SQUARE BRACKET..BOTTOM SQUARE BRACKET +23B7 ; Other_Math # So RADICAL SYMBOL BOTTOM +23D0 ; Other_Math # So VERTICAL LINE EXTENSION +23E2 ; Other_Math # So WHITE TRAPEZIUM +25A0..25A1 ; Other_Math # So [2] BLACK SQUARE..WHITE SQUARE +25AE..25B6 ; Other_Math # So [9] BLACK VERTICAL RECTANGLE..BLACK RIGHT-POINTING TRIANGLE +25BC..25C0 ; Other_Math # So [5] BLACK DOWN-POINTING TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C6..25C7 ; Other_Math # So [2] BLACK DIAMOND..WHITE DIAMOND +25CA..25CB ; Other_Math # So [2] LOZENGE..WHITE CIRCLE +25CF..25D3 ; Other_Math # So [5] BLACK CIRCLE..CIRCLE WITH UPPER HALF BLACK +25E2 ; Other_Math # So BLACK LOWER RIGHT TRIANGLE +25E4 ; Other_Math # So BLACK UPPER LEFT TRIANGLE +25E7..25EC ; Other_Math # So [6] SQUARE WITH LEFT HALF BLACK..WHITE UP-POINTING TRIANGLE WITH DOT +2605..2606 ; Other_Math # So [2] BLACK STAR..WHITE STAR +2640 ; Other_Math # So FEMALE SIGN +2642 ; Other_Math # So MALE SIGN +2660..2663 ; Other_Math # So [4] BLACK SPADE SUIT..BLACK CLUB SUIT +266D..266E ; Other_Math # So [2] MUSIC FLAT SIGN..MUSIC NATURAL SIGN +27C5 ; Other_Math # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Other_Math # Pe RIGHT S-SHAPED BAG DELIMITER +27E6 ; Other_Math # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Other_Math # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Other_Math # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Other_Math # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Other_Math # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Other_Math # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Other_Math # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Other_Math # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Other_Math # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Other_Math # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +2983 ; Other_Math # Ps LEFT WHITE CURLY BRACKET +2984 ; Other_Math # Pe RIGHT WHITE CURLY BRACKET +2985 ; Other_Math # Ps LEFT WHITE PARENTHESIS +2986 ; Other_Math # Pe RIGHT WHITE PARENTHESIS +2987 ; Other_Math # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Other_Math # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Other_Math # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Other_Math # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Other_Math # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Other_Math # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Other_Math # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Other_Math # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Other_Math # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Other_Math # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Other_Math # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Other_Math # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Other_Math # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Other_Math # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Other_Math # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Other_Math # Pe RIGHT BLACK TORTOISE SHELL BRACKET +29D8 ; Other_Math # Ps LEFT WIGGLY FENCE +29D9 ; Other_Math # Pe RIGHT WIGGLY FENCE +29DA ; Other_Math # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Other_Math # Pe RIGHT DOUBLE WIGGLY FENCE +29FC ; Other_Math # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Other_Math # Pe RIGHT-POINTING CURVED ANGLE BRACKET +FE61 ; Other_Math # Po SMALL ASTERISK +FE63 ; Other_Math # Pd SMALL HYPHEN-MINUS +FE68 ; Other_Math # Po SMALL REVERSE SOLIDUS +FF3C ; Other_Math # Po FULLWIDTH REVERSE SOLIDUS +FF3E ; Other_Math # Sk FULLWIDTH CIRCUMFLEX ACCENT +1D400..1D454 ; Other_Math # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G +1D456..1D49C ; Other_Math # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A +1D49E..1D49F ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D +1D4A2 ; Other_Math # L& MATHEMATICAL SCRIPT CAPITAL G +1D4A5..1D4A6 ; Other_Math # L& [2] MATHEMATICAL SCRIPT CAPITAL J..MATHEMATICAL SCRIPT CAPITAL K +1D4A9..1D4AC ; Other_Math # L& [4] MATHEMATICAL SCRIPT CAPITAL N..MATHEMATICAL SCRIPT CAPITAL Q +1D4AE..1D4B9 ; Other_Math # L& [12] MATHEMATICAL SCRIPT CAPITAL S..MATHEMATICAL SCRIPT SMALL D +1D4BB ; Other_Math # L& MATHEMATICAL SCRIPT SMALL F +1D4BD..1D4C3 ; Other_Math # L& [7] MATHEMATICAL SCRIPT SMALL H..MATHEMATICAL SCRIPT SMALL N +1D4C5..1D505 ; Other_Math # L& [65] MATHEMATICAL SCRIPT SMALL P..MATHEMATICAL FRAKTUR CAPITAL B +1D507..1D50A ; Other_Math # L& [4] MATHEMATICAL FRAKTUR CAPITAL D..MATHEMATICAL FRAKTUR CAPITAL G +1D50D..1D514 ; Other_Math # L& [8] MATHEMATICAL FRAKTUR CAPITAL J..MATHEMATICAL FRAKTUR CAPITAL Q +1D516..1D51C ; Other_Math # L& [7] MATHEMATICAL FRAKTUR CAPITAL S..MATHEMATICAL FRAKTUR CAPITAL Y +1D51E..1D539 ; Other_Math # L& [28] MATHEMATICAL FRAKTUR SMALL A..MATHEMATICAL DOUBLE-STRUCK CAPITAL B +1D53B..1D53E ; Other_Math # L& [4] MATHEMATICAL DOUBLE-STRUCK CAPITAL D..MATHEMATICAL DOUBLE-STRUCK CAPITAL G +1D540..1D544 ; Other_Math # L& [5] MATHEMATICAL DOUBLE-STRUCK CAPITAL I..MATHEMATICAL DOUBLE-STRUCK CAPITAL M +1D546 ; Other_Math # L& MATHEMATICAL DOUBLE-STRUCK CAPITAL O +1D54A..1D550 ; Other_Math # L& [7] MATHEMATICAL DOUBLE-STRUCK CAPITAL S..MATHEMATICAL DOUBLE-STRUCK CAPITAL Y +1D552..1D6A5 ; Other_Math # L& [340] MATHEMATICAL DOUBLE-STRUCK SMALL A..MATHEMATICAL ITALIC SMALL DOTLESS J +1D6A8..1D6C0 ; Other_Math # L& [25] MATHEMATICAL BOLD CAPITAL ALPHA..MATHEMATICAL BOLD CAPITAL OMEGA +1D6C2..1D6DA ; Other_Math # L& [25] MATHEMATICAL BOLD SMALL ALPHA..MATHEMATICAL BOLD SMALL OMEGA +1D6DC..1D6FA ; Other_Math # L& [31] MATHEMATICAL BOLD EPSILON SYMBOL..MATHEMATICAL ITALIC CAPITAL OMEGA +1D6FC..1D714 ; Other_Math # L& [25] MATHEMATICAL ITALIC SMALL ALPHA..MATHEMATICAL ITALIC SMALL OMEGA +1D716..1D734 ; Other_Math # L& [31] MATHEMATICAL ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD ITALIC CAPITAL OMEGA +1D736..1D74E ; Other_Math # L& [25] MATHEMATICAL BOLD ITALIC SMALL ALPHA..MATHEMATICAL BOLD ITALIC SMALL OMEGA +1D750..1D76E ; Other_Math # L& [31] MATHEMATICAL BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD CAPITAL OMEGA +1D770..1D788 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD SMALL OMEGA +1D78A..1D7A8 ; Other_Math # L& [31] MATHEMATICAL SANS-SERIF BOLD EPSILON SYMBOL..MATHEMATICAL SANS-SERIF BOLD ITALIC CAPITAL OMEGA +1D7AA..1D7C2 ; Other_Math # L& [25] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL ALPHA..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL OMEGA +1D7C4..1D7CB ; Other_Math # L& [8] MATHEMATICAL SANS-SERIF BOLD ITALIC EPSILON SYMBOL..MATHEMATICAL BOLD SMALL DIGAMMA +1D7CE..1D7FF ; Other_Math # Nd [50] MATHEMATICAL BOLD DIGIT ZERO..MATHEMATICAL MONOSPACE DIGIT NINE + +# Total code points: 1217 + +# ================================================ + +0030..0039 ; Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE +0041..0046 ; Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F +0061..0066 ; Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F +FF10..FF19 ; Hex_Digit # Nd [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE +FF21..FF26 ; Hex_Digit # L& [6] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAPITAL LETTER F +FF41..FF46 ; Hex_Digit # L& [6] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL LETTER F + +# Total code points: 44 + +# ================================================ + +0030..0039 ; ASCII_Hex_Digit # Nd [10] DIGIT ZERO..DIGIT NINE +0041..0046 ; ASCII_Hex_Digit # L& [6] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER F +0061..0066 ; ASCII_Hex_Digit # L& [6] LATIN SMALL LETTER A..LATIN SMALL LETTER F + +# Total code points: 22 + +# ================================================ + +0345 ; Other_Alphabetic # Mn COMBINING GREEK YPOGEGRAMMENI +05B0..05BD ; Other_Alphabetic # Mn [14] HEBREW POINT SHEVA..HEBREW POINT METEG +05BF ; Other_Alphabetic # Mn HEBREW POINT RAFE +05C1..05C2 ; Other_Alphabetic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4..05C5 ; Other_Alphabetic # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Other_Alphabetic # Mn HEBREW POINT QAMATS QATAN +0610..061A ; Other_Alphabetic # Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA +064B..0657 ; Other_Alphabetic # Mn [13] ARABIC FATHATAN..ARABIC INVERTED DAMMA +0659..065F ; Other_Alphabetic # Mn [7] ARABIC ZWARAKAY..ARABIC WAVY HAMZA BELOW +0670 ; Other_Alphabetic # Mn ARABIC LETTER SUPERSCRIPT ALEF +06D6..06DC ; Other_Alphabetic # Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN +06E1..06E4 ; Other_Alphabetic # Mn [4] ARABIC SMALL HIGH DOTLESS HEAD OF KHAH..ARABIC SMALL HIGH MADDA +06E7..06E8 ; Other_Alphabetic # Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON +06ED ; Other_Alphabetic # Mn ARABIC SMALL LOW MEEM +0711 ; Other_Alphabetic # Mn SYRIAC LETTER SUPERSCRIPT ALAPH +0730..073F ; Other_Alphabetic # Mn [16] SYRIAC PTHAHA ABOVE..SYRIAC RWAHA +07A6..07B0 ; Other_Alphabetic # Mn [11] THAANA ABAFILI..THAANA SUKUN +0816..0817 ; Other_Alphabetic # Mn [2] SAMARITAN MARK IN..SAMARITAN MARK IN-ALAF +081B..0823 ; Other_Alphabetic # Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A +0825..0827 ; Other_Alphabetic # Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U +0829..082C ; Other_Alphabetic # Mn [4] SAMARITAN VOWEL SIGN LONG I..SAMARITAN VOWEL SIGN SUKUN +0900..0902 ; Other_Alphabetic # Mn [3] DEVANAGARI SIGN INVERTED CANDRABINDU..DEVANAGARI SIGN ANUSVARA +0903 ; Other_Alphabetic # Mc DEVANAGARI SIGN VISARGA +093A ; Other_Alphabetic # Mn DEVANAGARI VOWEL SIGN OE +093B ; Other_Alphabetic # Mc DEVANAGARI VOWEL SIGN OOE +093E..0940 ; Other_Alphabetic # Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II +0941..0948 ; Other_Alphabetic # Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI +0949..094C ; Other_Alphabetic # Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU +094E..094F ; Other_Alphabetic # Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW +0955..0957 ; Other_Alphabetic # Mn [3] DEVANAGARI VOWEL SIGN CANDRA LONG E..DEVANAGARI VOWEL SIGN UUE +0962..0963 ; Other_Alphabetic # Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL +0981 ; Other_Alphabetic # Mn BENGALI SIGN CANDRABINDU +0982..0983 ; Other_Alphabetic # Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA +09BE..09C0 ; Other_Alphabetic # Mc [3] BENGALI VOWEL SIGN AA..BENGALI VOWEL SIGN II +09C1..09C4 ; Other_Alphabetic # Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR +09C7..09C8 ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI +09CB..09CC ; Other_Alphabetic # Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU +09D7 ; Other_Alphabetic # Mc BENGALI AU LENGTH MARK +09E2..09E3 ; Other_Alphabetic # Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL +0A01..0A02 ; Other_Alphabetic # Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI +0A03 ; Other_Alphabetic # Mc GURMUKHI SIGN VISARGA +0A3E..0A40 ; Other_Alphabetic # Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II +0A41..0A42 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU +0A47..0A48 ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI +0A4B..0A4C ; Other_Alphabetic # Mn [2] GURMUKHI VOWEL SIGN OO..GURMUKHI VOWEL SIGN AU +0A51 ; Other_Alphabetic # Mn GURMUKHI SIGN UDAAT +0A70..0A71 ; Other_Alphabetic # Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK +0A75 ; Other_Alphabetic # Mn GURMUKHI SIGN YAKASH +0A81..0A82 ; Other_Alphabetic # Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA +0A83 ; Other_Alphabetic # Mc GUJARATI SIGN VISARGA +0ABE..0AC0 ; Other_Alphabetic # Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II +0AC1..0AC5 ; Other_Alphabetic # Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E +0AC7..0AC8 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI +0AC9 ; Other_Alphabetic # Mc GUJARATI VOWEL SIGN CANDRA O +0ACB..0ACC ; Other_Alphabetic # Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU +0AE2..0AE3 ; Other_Alphabetic # Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL +0B01 ; Other_Alphabetic # Mn ORIYA SIGN CANDRABINDU +0B02..0B03 ; Other_Alphabetic # Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA +0B3E ; Other_Alphabetic # Mc ORIYA VOWEL SIGN AA +0B3F ; Other_Alphabetic # Mn ORIYA VOWEL SIGN I +0B40 ; Other_Alphabetic # Mc ORIYA VOWEL SIGN II +0B41..0B44 ; Other_Alphabetic # Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR +0B47..0B48 ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI +0B4B..0B4C ; Other_Alphabetic # Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU +0B56 ; Other_Alphabetic # Mn ORIYA AI LENGTH MARK +0B57 ; Other_Alphabetic # Mc ORIYA AU LENGTH MARK +0B62..0B63 ; Other_Alphabetic # Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL +0B82 ; Other_Alphabetic # Mn TAMIL SIGN ANUSVARA +0BBE..0BBF ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN AA..TAMIL VOWEL SIGN I +0BC0 ; Other_Alphabetic # Mn TAMIL VOWEL SIGN II +0BC1..0BC2 ; Other_Alphabetic # Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU +0BC6..0BC8 ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI +0BCA..0BCC ; Other_Alphabetic # Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU +0BD7 ; Other_Alphabetic # Mc TAMIL AU LENGTH MARK +0C01..0C03 ; Other_Alphabetic # Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA +0C3E..0C40 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II +0C41..0C44 ; Other_Alphabetic # Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR +0C46..0C48 ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI +0C4A..0C4C ; Other_Alphabetic # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU +0C55..0C56 ; Other_Alphabetic # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK +0C62..0C63 ; Other_Alphabetic # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL +0C82..0C83 ; Other_Alphabetic # Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA +0CBE ; Other_Alphabetic # Mc KANNADA VOWEL SIGN AA +0CBF ; Other_Alphabetic # Mn KANNADA VOWEL SIGN I +0CC0..0CC4 ; Other_Alphabetic # Mc [5] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN VOCALIC RR +0CC6 ; Other_Alphabetic # Mn KANNADA VOWEL SIGN E +0CC7..0CC8 ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI +0CCA..0CCB ; Other_Alphabetic # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO +0CCC ; Other_Alphabetic # Mn KANNADA VOWEL SIGN AU +0CD5..0CD6 ; Other_Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0CE2..0CE3 ; Other_Alphabetic # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL +0D02..0D03 ; Other_Alphabetic # Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA +0D3E..0D40 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN AA..MALAYALAM VOWEL SIGN II +0D41..0D44 ; Other_Alphabetic # Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR +0D46..0D48 ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI +0D4A..0D4C ; Other_Alphabetic # Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU +0D57 ; Other_Alphabetic # Mc MALAYALAM AU LENGTH MARK +0D62..0D63 ; Other_Alphabetic # Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL +0D82..0D83 ; Other_Alphabetic # Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA +0DCF..0DD1 ; Other_Alphabetic # Mc [3] SINHALA VOWEL SIGN AELA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA +0DD2..0DD4 ; Other_Alphabetic # Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA +0DD6 ; Other_Alphabetic # Mn SINHALA VOWEL SIGN DIGA PAA-PILLA +0DD8..0DDF ; Other_Alphabetic # Mc [8] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN GAYANUKITTA +0DF2..0DF3 ; Other_Alphabetic # Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA +0E31 ; Other_Alphabetic # Mn THAI CHARACTER MAI HAN-AKAT +0E34..0E3A ; Other_Alphabetic # Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU +0E4D ; Other_Alphabetic # Mn THAI CHARACTER NIKHAHIT +0EB1 ; Other_Alphabetic # Mn LAO VOWEL SIGN MAI KAN +0EB4..0EB9 ; Other_Alphabetic # Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU +0EBB..0EBC ; Other_Alphabetic # Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO +0ECD ; Other_Alphabetic # Mn LAO NIGGAHITA +0F71..0F7E ; Other_Alphabetic # Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO +0F7F ; Other_Alphabetic # Mc TIBETAN SIGN RNAM BCAD +0F80..0F81 ; Other_Alphabetic # Mn [2] TIBETAN VOWEL SIGN REVERSED I..TIBETAN VOWEL SIGN REVERSED II +0F8D..0F97 ; Other_Alphabetic # Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA +0F99..0FBC ; Other_Alphabetic # Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA +102B..102C ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN TALL AA..MYANMAR VOWEL SIGN AA +102D..1030 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU +1031 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN E +1032..1036 ; Other_Alphabetic # Mn [5] MYANMAR VOWEL SIGN AI..MYANMAR SIGN ANUSVARA +1038 ; Other_Alphabetic # Mc MYANMAR SIGN VISARGA +103B..103C ; Other_Alphabetic # Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA +103D..103E ; Other_Alphabetic # Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA +1056..1057 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR +1058..1059 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL +105E..1060 ; Other_Alphabetic # Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA +1062 ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN SGAW KAREN EU +1067..1068 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN WESTERN PWO KAREN EU..MYANMAR VOWEL SIGN WESTERN PWO KAREN UE +1071..1074 ; Other_Alphabetic # Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE +1082 ; Other_Alphabetic # Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA +1083..1084 ; Other_Alphabetic # Mc [2] MYANMAR VOWEL SIGN SHAN AA..MYANMAR VOWEL SIGN SHAN E +1085..1086 ; Other_Alphabetic # Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y +109C ; Other_Alphabetic # Mc MYANMAR VOWEL SIGN AITON A +109D ; Other_Alphabetic # Mn MYANMAR VOWEL SIGN AITON AI +135F ; Other_Alphabetic # Mn ETHIOPIC COMBINING GEMINATION MARK +1712..1713 ; Other_Alphabetic # Mn [2] TAGALOG VOWEL SIGN I..TAGALOG VOWEL SIGN U +1732..1733 ; Other_Alphabetic # Mn [2] HANUNOO VOWEL SIGN I..HANUNOO VOWEL SIGN U +1752..1753 ; Other_Alphabetic # Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U +1772..1773 ; Other_Alphabetic # Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U +17B6 ; Other_Alphabetic # Mc KHMER VOWEL SIGN AA +17B7..17BD ; Other_Alphabetic # Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA +17BE..17C5 ; Other_Alphabetic # Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU +17C6 ; Other_Alphabetic # Mn KHMER SIGN NIKAHIT +17C7..17C8 ; Other_Alphabetic # Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU +18A9 ; Other_Alphabetic # Mn MONGOLIAN LETTER ALI GALI DAGALGA +1920..1922 ; Other_Alphabetic # Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U +1923..1926 ; Other_Alphabetic # Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU +1927..1928 ; Other_Alphabetic # Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O +1929..192B ; Other_Alphabetic # Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA +1930..1931 ; Other_Alphabetic # Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA +1932 ; Other_Alphabetic # Mn LIMBU SMALL LETTER ANUSVARA +1933..1938 ; Other_Alphabetic # Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA +19B0..19C0 ; Other_Alphabetic # Mc [17] NEW TAI LUE VOWEL SIGN VOWEL SHORTENER..NEW TAI LUE VOWEL SIGN IY +19C8..19C9 ; Other_Alphabetic # Mc [2] NEW TAI LUE TONE MARK-1..NEW TAI LUE TONE MARK-2 +1A17..1A18 ; Other_Alphabetic # Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U +1A19..1A1B ; Other_Alphabetic # Mc [3] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN AE +1A55 ; Other_Alphabetic # Mc TAI THAM CONSONANT SIGN MEDIAL RA +1A56 ; Other_Alphabetic # Mn TAI THAM CONSONANT SIGN MEDIAL LA +1A57 ; Other_Alphabetic # Mc TAI THAM CONSONANT SIGN LA TANG LAI +1A58..1A5E ; Other_Alphabetic # Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA +1A61 ; Other_Alphabetic # Mc TAI THAM VOWEL SIGN A +1A62 ; Other_Alphabetic # Mn TAI THAM VOWEL SIGN MAI SAT +1A63..1A64 ; Other_Alphabetic # Mc [2] TAI THAM VOWEL SIGN AA..TAI THAM VOWEL SIGN TALL AA +1A65..1A6C ; Other_Alphabetic # Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW +1A6D..1A72 ; Other_Alphabetic # Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI +1A73..1A74 ; Other_Alphabetic # Mn [2] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN MAI KANG +1B00..1B03 ; Other_Alphabetic # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG +1B04 ; Other_Alphabetic # Mc BALINESE SIGN BISAH +1B35 ; Other_Alphabetic # Mc BALINESE VOWEL SIGN TEDUNG +1B36..1B3A ; Other_Alphabetic # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA +1B3B ; Other_Alphabetic # Mc BALINESE VOWEL SIGN RA REPA TEDUNG +1B3C ; Other_Alphabetic # Mn BALINESE VOWEL SIGN LA LENGA +1B3D..1B41 ; Other_Alphabetic # Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG +1B42 ; Other_Alphabetic # Mn BALINESE VOWEL SIGN PEPET +1B43 ; Other_Alphabetic # Mc BALINESE VOWEL SIGN PEPET TEDUNG +1B80..1B81 ; Other_Alphabetic # Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR +1B82 ; Other_Alphabetic # Mc SUNDANESE SIGN PANGWISAD +1BA1 ; Other_Alphabetic # Mc SUNDANESE CONSONANT SIGN PAMINGKAL +1BA2..1BA5 ; Other_Alphabetic # Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU +1BA6..1BA7 ; Other_Alphabetic # Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG +1BA8..1BA9 ; Other_Alphabetic # Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG +1BE7 ; Other_Alphabetic # Mc BATAK VOWEL SIGN E +1BE8..1BE9 ; Other_Alphabetic # Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE +1BEA..1BEC ; Other_Alphabetic # Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O +1BED ; Other_Alphabetic # Mn BATAK VOWEL SIGN KARO O +1BEE ; Other_Alphabetic # Mc BATAK VOWEL SIGN U +1BEF..1BF1 ; Other_Alphabetic # Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H +1C24..1C2B ; Other_Alphabetic # Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU +1C2C..1C33 ; Other_Alphabetic # Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T +1C34..1C35 ; Other_Alphabetic # Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG +1CF2 ; Other_Alphabetic # Mc VEDIC SIGN ARDHAVISARGA +24B6..24E9 ; Other_Alphabetic # So [52] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN SMALL LETTER Z +2DE0..2DFF ; Other_Alphabetic # Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS +A823..A824 ; Other_Alphabetic # Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I +A825..A826 ; Other_Alphabetic # Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E +A827 ; Other_Alphabetic # Mc SYLOTI NAGRI VOWEL SIGN OO +A880..A881 ; Other_Alphabetic # Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA +A8B4..A8C3 ; Other_Alphabetic # Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU +A926..A92A ; Other_Alphabetic # Mn [5] KAYAH LI VOWEL UE..KAYAH LI VOWEL O +A947..A951 ; Other_Alphabetic # Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R +A952 ; Other_Alphabetic # Mc REJANG CONSONANT SIGN H +A980..A982 ; Other_Alphabetic # Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR +A983 ; Other_Alphabetic # Mc JAVANESE SIGN WIGNYAN +A9B4..A9B5 ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG +A9B6..A9B9 ; Other_Alphabetic # Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT +A9BA..A9BB ; Other_Alphabetic # Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE +A9BC ; Other_Alphabetic # Mn JAVANESE VOWEL SIGN PEPET +A9BD..A9BF ; Other_Alphabetic # Mc [3] JAVANESE CONSONANT SIGN KERET..JAVANESE CONSONANT SIGN CAKRA +AA29..AA2E ; Other_Alphabetic # Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE +AA2F..AA30 ; Other_Alphabetic # Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI +AA31..AA32 ; Other_Alphabetic # Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE +AA33..AA34 ; Other_Alphabetic # Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA +AA35..AA36 ; Other_Alphabetic # Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA +AA43 ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL NG +AA4C ; Other_Alphabetic # Mn CHAM CONSONANT SIGN FINAL M +AA4D ; Other_Alphabetic # Mc CHAM CONSONANT SIGN FINAL H +AAB0 ; Other_Alphabetic # Mn TAI VIET MAI KANG +AAB2..AAB4 ; Other_Alphabetic # Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U +AAB7..AAB8 ; Other_Alphabetic # Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA +AABE ; Other_Alphabetic # Mn TAI VIET VOWEL AM +ABE3..ABE4 ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP +ABE5 ; Other_Alphabetic # Mn MEETEI MAYEK VOWEL SIGN ANAP +ABE6..ABE7 ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP +ABE8 ; Other_Alphabetic # Mn MEETEI MAYEK VOWEL SIGN UNAP +ABE9..ABEA ; Other_Alphabetic # Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG +FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA +10A01..10A03 ; Other_Alphabetic # Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R +10A05..10A06 ; Other_Alphabetic # Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O +10A0C..10A0F ; Other_Alphabetic # Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA +11000 ; Other_Alphabetic # Mc BRAHMI SIGN CANDRABINDU +11001 ; Other_Alphabetic # Mn BRAHMI SIGN ANUSVARA +11002 ; Other_Alphabetic # Mc BRAHMI SIGN VISARGA +11038..11045 ; Other_Alphabetic # Mn [14] BRAHMI VOWEL SIGN AA..BRAHMI VOWEL SIGN AU +11082 ; Other_Alphabetic # Mc KAITHI SIGN VISARGA +110B0..110B2 ; Other_Alphabetic # Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II +110B3..110B6 ; Other_Alphabetic # Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI +110B7..110B8 ; Other_Alphabetic # Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU + +# Total code points: 795 + +# ================================================ + +3006 ; Ideographic # Lo IDEOGRAPHIC CLOSING MARK +3007 ; Ideographic # Nl IDEOGRAPHIC NUMBER ZERO +3021..3029 ; Ideographic # Nl [9] HANGZHOU NUMERAL ONE..HANGZHOU NUMERAL NINE +3038..303A ; Ideographic # Nl [3] HANGZHOU NUMERAL TEN..HANGZHOU NUMERAL THIRTY +3400..4DB5 ; Ideographic # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCB ; Ideographic # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB +F900..FA2D ; Ideographic # Lo [302] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA2D +FA30..FA6D ; Ideographic # Lo [62] CJK COMPATIBILITY IDEOGRAPH-FA30..CJK COMPATIBILITY IDEOGRAPH-FA6D +FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 +20000..2A6D6 ; Ideographic # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Ideographic # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D + +# Total code points: 75630 + +# ================================================ + +005E ; Diacritic # Sk CIRCUMFLEX ACCENT +0060 ; Diacritic # Sk GRAVE ACCENT +00A8 ; Diacritic # Sk DIAERESIS +00AF ; Diacritic # Sk MACRON +00B4 ; Diacritic # Sk ACUTE ACCENT +00B7 ; Diacritic # Po MIDDLE DOT +00B8 ; Diacritic # Sk CEDILLA +02B0..02C1 ; Diacritic # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP +02C2..02C5 ; Diacritic # Sk [4] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER DOWN ARROWHEAD +02C6..02D1 ; Diacritic # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON +02D2..02DF ; Diacritic # Sk [14] MODIFIER LETTER CENTRED RIGHT HALF RING..MODIFIER LETTER CROSS ACCENT +02E0..02E4 ; Diacritic # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +02E5..02EB ; Diacritic # Sk [7] MODIFIER LETTER EXTRA-HIGH TONE BAR..MODIFIER LETTER YANG DEPARTING TONE MARK +02EC ; Diacritic # Lm MODIFIER LETTER VOICING +02ED ; Diacritic # Sk MODIFIER LETTER UNASPIRATED +02EE ; Diacritic # Lm MODIFIER LETTER DOUBLE APOSTROPHE +02EF..02FF ; Diacritic # Sk [17] MODIFIER LETTER LOW DOWN ARROWHEAD..MODIFIER LETTER LOW LEFT ARROW +0300..034E ; Diacritic # Mn [79] COMBINING GRAVE ACCENT..COMBINING UPWARDS ARROW BELOW +0350..0357 ; Diacritic # Mn [8] COMBINING RIGHT ARROWHEAD ABOVE..COMBINING RIGHT HALF RING ABOVE +035D..0362 ; Diacritic # Mn [6] COMBINING DOUBLE BREVE..COMBINING DOUBLE RIGHTWARDS ARROW BELOW +0374 ; Diacritic # Lm GREEK NUMERAL SIGN +0375 ; Diacritic # Sk GREEK LOWER NUMERAL SIGN +037A ; Diacritic # Lm GREEK YPOGEGRAMMENI +0384..0385 ; Diacritic # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS +0483..0487 ; Diacritic # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE +0559 ; Diacritic # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING +0591..05A1 ; Diacritic # Mn [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER +05A3..05BD ; Diacritic # Mn [27] HEBREW ACCENT MUNAH..HEBREW POINT METEG +05BF ; Diacritic # Mn HEBREW POINT RAFE +05C1..05C2 ; Diacritic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT +05C4 ; Diacritic # Mn HEBREW MARK UPPER DOT +064B..0652 ; Diacritic # Mn [8] ARABIC FATHATAN..ARABIC SUKUN +0657..0658 ; Diacritic # Mn [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA +06DF..06E0 ; Diacritic # Mn [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO +06E5..06E6 ; Diacritic # Lm [2] ARABIC SMALL WAW..ARABIC SMALL YEH +06EA..06EC ; Diacritic # Mn [3] ARABIC EMPTY CENTRE LOW STOP..ARABIC ROUNDED HIGH STOP WITH FILLED CENTRE +0730..074A ; Diacritic # Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH +07A6..07B0 ; Diacritic # Mn [11] THAANA ABAFILI..THAANA SUKUN +07EB..07F3 ; Diacritic # Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE +07F4..07F5 ; Diacritic # Lm [2] NKO HIGH TONE APOSTROPHE..NKO LOW TONE APOSTROPHE +0818..0819 ; Diacritic # Mn [2] SAMARITAN MARK OCCLUSION..SAMARITAN MARK DAGESH +093C ; Diacritic # Mn DEVANAGARI SIGN NUKTA +094D ; Diacritic # Mn DEVANAGARI SIGN VIRAMA +0951..0954 ; Diacritic # Mn [4] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI ACUTE ACCENT +0971 ; Diacritic # Lm DEVANAGARI SIGN HIGH SPACING DOT +09BC ; Diacritic # Mn BENGALI SIGN NUKTA +09CD ; Diacritic # Mn BENGALI SIGN VIRAMA +0A3C ; Diacritic # Mn GURMUKHI SIGN NUKTA +0A4D ; Diacritic # Mn GURMUKHI SIGN VIRAMA +0ABC ; Diacritic # Mn GUJARATI SIGN NUKTA +0ACD ; Diacritic # Mn GUJARATI SIGN VIRAMA +0B3C ; Diacritic # Mn ORIYA SIGN NUKTA +0B4D ; Diacritic # Mn ORIYA SIGN VIRAMA +0BCD ; Diacritic # Mn TAMIL SIGN VIRAMA +0C4D ; Diacritic # Mn TELUGU SIGN VIRAMA +0CBC ; Diacritic # Mn KANNADA SIGN NUKTA +0CCD ; Diacritic # Mn KANNADA SIGN VIRAMA +0D4D ; Diacritic # Mn MALAYALAM SIGN VIRAMA +0DCA ; Diacritic # Mn SINHALA SIGN AL-LAKUNA +0E47..0E4C ; Diacritic # Mn [6] THAI CHARACTER MAITAIKHU..THAI CHARACTER THANTHAKHAT +0E4E ; Diacritic # Mn THAI CHARACTER YAMAKKAN +0EC8..0ECC ; Diacritic # Mn [5] LAO TONE MAI EK..LAO CANCELLATION MARK +0F18..0F19 ; Diacritic # Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS +0F35 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG NYI ZLA +0F37 ; Diacritic # Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS +0F39 ; Diacritic # Mn TIBETAN MARK TSA -PHRU +0F3E..0F3F ; Diacritic # Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES +0F82..0F84 ; Diacritic # Mn [3] TIBETAN SIGN NYI ZLA NAA DA..TIBETAN MARK HALANTA +0F86..0F87 ; Diacritic # Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS +0FC6 ; Diacritic # Mn TIBETAN SYMBOL PADMA GDAN +1037 ; Diacritic # Mn MYANMAR SIGN DOT BELOW +1039..103A ; Diacritic # Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT +1087..108C ; Diacritic # Mc [6] MYANMAR SIGN SHAN TONE-2..MYANMAR SIGN SHAN COUNCIL TONE-3 +108D ; Diacritic # Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE +108F ; Diacritic # Mc MYANMAR SIGN RUMAI PALAUNG TONE-5 +109A..109B ; Diacritic # Mc [2] MYANMAR SIGN KHAMTI TONE-1..MYANMAR SIGN KHAMTI TONE-3 +17C9..17D3 ; Diacritic # Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT +17DD ; Diacritic # Mn KHMER SIGN ATTHACAN +1939..193B ; Diacritic # Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I +1A75..1A7C ; Diacritic # Mn [8] TAI THAM SIGN TONE-1..TAI THAM SIGN KHUEN-LUE KARAN +1A7F ; Diacritic # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT +1B34 ; Diacritic # Mn BALINESE SIGN REREKAN +1B44 ; Diacritic # Mc BALINESE ADEG ADEG +1B6B..1B73 ; Diacritic # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG +1BAA ; Diacritic # Mc SUNDANESE SIGN PAMAAEH +1C36..1C37 ; Diacritic # Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA +1C78..1C7D ; Diacritic # Lm [6] OL CHIKI MU TTUDDAG..OL CHIKI AHAD +1CD0..1CD2 ; Diacritic # Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA +1CD3 ; Diacritic # Po VEDIC SIGN NIHSHVASA +1CD4..1CE0 ; Diacritic # Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA +1CE1 ; Diacritic # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA +1CE2..1CE8 ; Diacritic # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL +1CED ; Diacritic # Mn VEDIC SIGN TIRYAK +1D2C..1D61 ; Diacritic # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI +1D62..1D6A ; Diacritic # L& [9] LATIN SUBSCRIPT SMALL LETTER I..GREEK SUBSCRIPT SMALL LETTER CHI +1DC4..1DCF ; Diacritic # Mn [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW +1DFD..1DFF ; Diacritic # Mn [3] COMBINING ALMOST EQUAL TO BELOW..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW +1FBD ; Diacritic # Sk GREEK KORONIS +1FBF..1FC1 ; Diacritic # Sk [3] GREEK PSILI..GREEK DIALYTIKA AND PERISPOMENI +1FCD..1FCF ; Diacritic # Sk [3] GREEK PSILI AND VARIA..GREEK PSILI AND PERISPOMENI +1FDD..1FDF ; Diacritic # Sk [3] GREEK DASIA AND VARIA..GREEK DASIA AND PERISPOMENI +1FED..1FEF ; Diacritic # Sk [3] GREEK DIALYTIKA AND VARIA..GREEK VARIA +1FFD..1FFE ; Diacritic # Sk [2] GREEK OXIA..GREEK DASIA +2CEF..2CF1 ; Diacritic # Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS +2E2F ; Diacritic # Lm VERTICAL TILDE +302A..302F ; Diacritic # Mn [6] IDEOGRAPHIC LEVEL TONE MARK..HANGUL DOUBLE DOT TONE MARK +3099..309A ; Diacritic # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +309B..309C ; Diacritic # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK +30FC ; Diacritic # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK +A66F ; Diacritic # Mn COMBINING CYRILLIC VZMET +A67C..A67D ; Diacritic # Mn [2] COMBINING CYRILLIC KAVYKA..COMBINING CYRILLIC PAYEROK +A67F ; Diacritic # Lm CYRILLIC PAYEROK +A6F0..A6F1 ; Diacritic # Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS +A717..A71F ; Diacritic # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK +A720..A721 ; Diacritic # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE +A788 ; Diacritic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT +A8C4 ; Diacritic # Mn SAURASHTRA SIGN VIRAMA +A8E0..A8F1 ; Diacritic # Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA +A92B..A92D ; Diacritic # Mn [3] KAYAH LI TONE PLOPHU..KAYAH LI TONE CALYA PLOPHU +A92E ; Diacritic # Po KAYAH LI SIGN CWI +A953 ; Diacritic # Mc REJANG VIRAMA +A9B3 ; Diacritic # Mn JAVANESE SIGN CECAK TELU +A9C0 ; Diacritic # Mc JAVANESE PANGKON +AA7B ; Diacritic # Mc MYANMAR SIGN PAO KAREN TONE +AABF ; Diacritic # Mn TAI VIET TONE MAI EK +AAC0 ; Diacritic # Lo TAI VIET TONE MAI NUENG +AAC1 ; Diacritic # Mn TAI VIET TONE MAI THO +AAC2 ; Diacritic # Lo TAI VIET TONE MAI SONG +ABEC ; Diacritic # Mc MEETEI MAYEK LUM IYEK +ABED ; Diacritic # Mn MEETEI MAYEK APUN IYEK +FB1E ; Diacritic # Mn HEBREW POINT JUDEO-SPANISH VARIKA +FE20..FE26 ; Diacritic # Mn [7] COMBINING LIGATURE LEFT HALF..COMBINING CONJOINING MACRON +FF3E ; Diacritic # Sk FULLWIDTH CIRCUMFLEX ACCENT +FF40 ; Diacritic # Sk FULLWIDTH GRAVE ACCENT +FF70 ; Diacritic # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK +FF9E..FF9F ; Diacritic # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +FFE3 ; Diacritic # Sk FULLWIDTH MACRON +110B9..110BA ; Diacritic # Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA +1D167..1D169 ; Diacritic # Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3 +1D16D..1D172 ; Diacritic # Mc [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 +1D17B..1D182 ; Diacritic # Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE +1D185..1D18B ; Diacritic # Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE +1D1AA..1D1AD ; Diacritic # Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO + +# Total code points: 639 + +# ================================================ + +00B7 ; Extender # Po MIDDLE DOT +02D0..02D1 ; Extender # Lm [2] MODIFIER LETTER TRIANGULAR COLON..MODIFIER LETTER HALF TRIANGULAR COLON +0640 ; Extender # Lm ARABIC TATWEEL +07FA ; Extender # Lm NKO LAJANYALAN +0E46 ; Extender # Lm THAI CHARACTER MAIYAMOK +0EC6 ; Extender # Lm LAO KO LA +1843 ; Extender # Lm MONGOLIAN LETTER TODO LONG VOWEL SIGN +1AA7 ; Extender # Lm TAI THAM SIGN MAI YAMOK +1C36 ; Extender # Mn LEPCHA SIGN RAN +1C7B ; Extender # Lm OL CHIKI RELAA +3005 ; Extender # Lm IDEOGRAPHIC ITERATION MARK +3031..3035 ; Extender # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF +309D..309E ; Extender # Lm [2] HIRAGANA ITERATION MARK..HIRAGANA VOICED ITERATION MARK +30FC..30FE ; Extender # Lm [3] KATAKANA-HIRAGANA PROLONGED SOUND MARK..KATAKANA VOICED ITERATION MARK +A015 ; Extender # Lm YI SYLLABLE WU +A60C ; Extender # Lm VAI SYLLABLE LENGTHENER +A9CF ; Extender # Lm JAVANESE PANGRANGKEP +AA70 ; Extender # Lm MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION +AADD ; Extender # Lm TAI VIET SYMBOL SAM +FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK + +# Total code points: 28 + +# ================================================ + +02B0..02B8 ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y +02C0..02C1 ; Other_Lowercase # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP +02E0..02E4 ; Other_Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP +0345 ; Other_Lowercase # Mn COMBINING GREEK YPOGEGRAMMENI +037A ; Other_Lowercase # Lm GREEK YPOGEGRAMMENI +1D2C..1D61 ; Other_Lowercase # Lm [54] MODIFIER LETTER CAPITAL A..MODIFIER LETTER SMALL CHI +1D78 ; Other_Lowercase # Lm MODIFIER LETTER CYRILLIC EN +1D9B..1DBF ; Other_Lowercase # Lm [37] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL THETA +2090..2094 ; Other_Lowercase # Lm [5] LATIN SUBSCRIPT SMALL LETTER A..LATIN SUBSCRIPT SMALL LETTER SCHWA +2170..217F ; Other_Lowercase # Nl [16] SMALL ROMAN NUMERAL ONE..SMALL ROMAN NUMERAL ONE THOUSAND +24D0..24E9 ; Other_Lowercase # So [26] CIRCLED LATIN SMALL LETTER A..CIRCLED LATIN SMALL LETTER Z +2C7D ; Other_Lowercase # Lm MODIFIER LETTER CAPITAL V +A770 ; Other_Lowercase # Lm MODIFIER LETTER US + +# Total code points: 159 + +# ================================================ + +2160..216F ; Other_Uppercase # Nl [16] ROMAN NUMERAL ONE..ROMAN NUMERAL ONE THOUSAND +24B6..24CF ; Other_Uppercase # So [26] CIRCLED LATIN CAPITAL LETTER A..CIRCLED LATIN CAPITAL LETTER Z + +# Total code points: 42 + +# ================================================ + +FDD0..FDEF ; Noncharacter_Code_Point # Cn [32] <noncharacter-FDD0>..<noncharacter-FDEF> +FFFE..FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFE>..<noncharacter-FFFF> +1FFFE..1FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-1FFFE>..<noncharacter-1FFFF> +2FFFE..2FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-2FFFE>..<noncharacter-2FFFF> +3FFFE..3FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-3FFFE>..<noncharacter-3FFFF> +4FFFE..4FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-4FFFE>..<noncharacter-4FFFF> +5FFFE..5FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-5FFFE>..<noncharacter-5FFFF> +6FFFE..6FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-6FFFE>..<noncharacter-6FFFF> +7FFFE..7FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-7FFFE>..<noncharacter-7FFFF> +8FFFE..8FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-8FFFE>..<noncharacter-8FFFF> +9FFFE..9FFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-9FFFE>..<noncharacter-9FFFF> +AFFFE..AFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-AFFFE>..<noncharacter-AFFFF> +BFFFE..BFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-BFFFE>..<noncharacter-BFFFF> +CFFFE..CFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-CFFFE>..<noncharacter-CFFFF> +DFFFE..DFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-DFFFE>..<noncharacter-DFFFF> +EFFFE..EFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-EFFFE>..<noncharacter-EFFFF> +FFFFE..FFFFF ; Noncharacter_Code_Point # Cn [2] <noncharacter-FFFFE>..<noncharacter-FFFFF> +10FFFE..10FFFF; Noncharacter_Code_Point # Cn [2] <noncharacter-10FFFE>..<noncharacter-10FFFF> + +# Total code points: 66 + +# ================================================ + +09BE ; Other_Grapheme_Extend # Mc BENGALI VOWEL SIGN AA +09D7 ; Other_Grapheme_Extend # Mc BENGALI AU LENGTH MARK +0B3E ; Other_Grapheme_Extend # Mc ORIYA VOWEL SIGN AA +0B57 ; Other_Grapheme_Extend # Mc ORIYA AU LENGTH MARK +0BBE ; Other_Grapheme_Extend # Mc TAMIL VOWEL SIGN AA +0BD7 ; Other_Grapheme_Extend # Mc TAMIL AU LENGTH MARK +0CC2 ; Other_Grapheme_Extend # Mc KANNADA VOWEL SIGN UU +0CD5..0CD6 ; Other_Grapheme_Extend # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK +0D3E ; Other_Grapheme_Extend # Mc MALAYALAM VOWEL SIGN AA +0D57 ; Other_Grapheme_Extend # Mc MALAYALAM AU LENGTH MARK +0DCF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN AELA-PILLA +0DDF ; Other_Grapheme_Extend # Mc SINHALA VOWEL SIGN GAYANUKITTA +200C..200D ; Other_Grapheme_Extend # Cf [2] ZERO WIDTH NON-JOINER..ZERO WIDTH JOINER +FF9E..FF9F ; Other_Grapheme_Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK +1D165 ; Other_Grapheme_Extend # Mc MUSICAL SYMBOL COMBINING STEM +1D16E..1D172 ; Other_Grapheme_Extend # Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5 + +# Total code points: 23 + +# ================================================ + +2FF0..2FF1 ; IDS_Binary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO BELOW +2FF4..2FFB ; IDS_Binary_Operator # So [8] IDEOGRAPHIC DESCRIPTION CHARACTER FULL SURROUND..IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID + +# Total code points: 10 + +# ================================================ + +2FF2..2FF3 ; IDS_Trinary_Operator # So [2] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO MIDDLE AND RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ABOVE TO MIDDLE AND BELOW + +# Total code points: 2 + +# ================================================ + +2E80..2E99 ; Radical # So [26] CJK RADICAL REPEAT..CJK RADICAL RAP +2E9B..2EF3 ; Radical # So [89] CJK RADICAL CHOKE..CJK RADICAL C-SIMPLIFIED TURTLE +2F00..2FD5 ; Radical # So [214] KANGXI RADICAL ONE..KANGXI RADICAL FLUTE + +# Total code points: 329 + +# ================================================ + +3400..4DB5 ; Unified_Ideograph # Lo [6582] CJK UNIFIED IDEOGRAPH-3400..CJK UNIFIED IDEOGRAPH-4DB5 +4E00..9FCB ; Unified_Ideograph # Lo [20940] CJK UNIFIED IDEOGRAPH-4E00..CJK UNIFIED IDEOGRAPH-9FCB +FA0E..FA0F ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA0E..CJK COMPATIBILITY IDEOGRAPH-FA0F +FA11 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA11 +FA13..FA14 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA13..CJK COMPATIBILITY IDEOGRAPH-FA14 +FA1F ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA1F +FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21 +FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24 +FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29 +20000..2A6D6 ; Unified_Ideograph # Lo [42711] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6D6 +2A700..2B734 ; Unified_Ideograph # Lo [4149] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B734 +2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D + +# Total code points: 74616 + +# ================================================ + +034F ; Other_Default_Ignorable_Code_Point # Mn COMBINING GRAPHEME JOINER +115F..1160 ; Other_Default_Ignorable_Code_Point # Lo [2] HANGUL CHOSEONG FILLER..HANGUL JUNGSEONG FILLER +2065..2069 ; Other_Default_Ignorable_Code_Point # Cn [5] <reserved-2065>..<reserved-2069> +3164 ; Other_Default_Ignorable_Code_Point # Lo HANGUL FILLER +FFA0 ; Other_Default_Ignorable_Code_Point # Lo HALFWIDTH HANGUL FILLER +FFF0..FFF8 ; Other_Default_Ignorable_Code_Point # Cn [9] <reserved-FFF0>..<reserved-FFF8> +E0000 ; Other_Default_Ignorable_Code_Point # Cn <reserved-E0000> +E0002..E001F ; Other_Default_Ignorable_Code_Point # Cn [30] <reserved-E0002>..<reserved-E001F> +E0080..E00FF ; Other_Default_Ignorable_Code_Point # Cn [128] <reserved-E0080>..<reserved-E00FF> +E01F0..E0FFF ; Other_Default_Ignorable_Code_Point # Cn [3600] <reserved-E01F0>..<reserved-E0FFF> + +# Total code points: 3778 + +# ================================================ + +0149 ; Deprecated # L& LATIN SMALL LETTER N PRECEDED BY APOSTROPHE +0673 ; Deprecated # Lo ARABIC LETTER ALEF WITH WAVY HAMZA BELOW +0F77 ; Deprecated # Mn TIBETAN VOWEL SIGN VOCALIC RR +0F79 ; Deprecated # Mn TIBETAN VOWEL SIGN VOCALIC LL +17A3..17A4 ; Deprecated # Lo [2] KHMER INDEPENDENT VOWEL QAQ..KHMER INDEPENDENT VOWEL QAA +206A..206F ; Deprecated # Cf [6] INHIBIT SYMMETRIC SWAPPING..NOMINAL DIGIT SHAPES +2329 ; Deprecated # Ps LEFT-POINTING ANGLE BRACKET +232A ; Deprecated # Pe RIGHT-POINTING ANGLE BRACKET +E0001 ; Deprecated # Cf LANGUAGE TAG +E0020..E007F ; Deprecated # Cf [96] TAG SPACE..CANCEL TAG + +# Total code points: 111 + +# ================================================ + +0069..006A ; Soft_Dotted # L& [2] LATIN SMALL LETTER I..LATIN SMALL LETTER J +012F ; Soft_Dotted # L& LATIN SMALL LETTER I WITH OGONEK +0249 ; Soft_Dotted # L& LATIN SMALL LETTER J WITH STROKE +0268 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH STROKE +029D ; Soft_Dotted # L& LATIN SMALL LETTER J WITH CROSSED-TAIL +02B2 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J +03F3 ; Soft_Dotted # L& GREEK LETTER YOT +0456 ; Soft_Dotted # L& CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +0458 ; Soft_Dotted # L& CYRILLIC SMALL LETTER JE +1D62 ; Soft_Dotted # L& LATIN SUBSCRIPT SMALL LETTER I +1D96 ; Soft_Dotted # L& LATIN SMALL LETTER I WITH RETROFLEX HOOK +1DA4 ; Soft_Dotted # Lm MODIFIER LETTER SMALL I WITH STROKE +1DA8 ; Soft_Dotted # Lm MODIFIER LETTER SMALL J WITH CROSSED-TAIL +1E2D ; Soft_Dotted # L& LATIN SMALL LETTER I WITH TILDE BELOW +1ECB ; Soft_Dotted # L& LATIN SMALL LETTER I WITH DOT BELOW +2071 ; Soft_Dotted # Lm SUPERSCRIPT LATIN SMALL LETTER I +2148..2149 ; Soft_Dotted # L& [2] DOUBLE-STRUCK ITALIC SMALL I..DOUBLE-STRUCK ITALIC SMALL J +2C7C ; Soft_Dotted # L& LATIN SUBSCRIPT SMALL LETTER J +1D422..1D423 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SMALL I..MATHEMATICAL BOLD SMALL J +1D456..1D457 ; Soft_Dotted # L& [2] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL J +1D48A..1D48B ; Soft_Dotted # L& [2] MATHEMATICAL BOLD ITALIC SMALL I..MATHEMATICAL BOLD ITALIC SMALL J +1D4BE..1D4BF ; Soft_Dotted # L& [2] MATHEMATICAL SCRIPT SMALL I..MATHEMATICAL SCRIPT SMALL J +1D4F2..1D4F3 ; Soft_Dotted # L& [2] MATHEMATICAL BOLD SCRIPT SMALL I..MATHEMATICAL BOLD SCRIPT SMALL J +1D526..1D527 ; Soft_Dotted # L& [2] MATHEMATICAL FRAKTUR SMALL I..MATHEMATICAL FRAKTUR SMALL J +1D55A..1D55B ; Soft_Dotted # L& [2] MATHEMATICAL DOUBLE-STRUCK SMALL I..MATHEMATICAL DOUBLE-STRUCK SMALL J +1D58E..1D58F ; Soft_Dotted # L& [2] MATHEMATICAL BOLD FRAKTUR SMALL I..MATHEMATICAL BOLD FRAKTUR SMALL J +1D5C2..1D5C3 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF SMALL I..MATHEMATICAL SANS-SERIF SMALL J +1D5F6..1D5F7 ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD SMALL I..MATHEMATICAL SANS-SERIF BOLD SMALL J +1D62A..1D62B ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF ITALIC SMALL I..MATHEMATICAL SANS-SERIF ITALIC SMALL J +1D65E..1D65F ; Soft_Dotted # L& [2] MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL I..MATHEMATICAL SANS-SERIF BOLD ITALIC SMALL J +1D692..1D693 ; Soft_Dotted # L& [2] MATHEMATICAL MONOSPACE SMALL I..MATHEMATICAL MONOSPACE SMALL J + +# Total code points: 46 + +# ================================================ + +0E40..0E44 ; Logical_Order_Exception # Lo [5] THAI CHARACTER SARA E..THAI CHARACTER SARA AI MAIMALAI +0EC0..0EC4 ; Logical_Order_Exception # Lo [5] LAO VOWEL SIGN E..LAO VOWEL SIGN AI +AAB5..AAB6 ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL E..TAI VIET VOWEL O +AAB9 ; Logical_Order_Exception # Lo TAI VIET VOWEL UEA +AABB..AABC ; Logical_Order_Exception # Lo [2] TAI VIET VOWEL AUE..TAI VIET VOWEL AY + +# Total code points: 15 + +# ================================================ + +2118 ; Other_ID_Start # Sm SCRIPT CAPITAL P +212E ; Other_ID_Start # So ESTIMATED SYMBOL +309B..309C ; Other_ID_Start # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK + +# Total code points: 4 + +# ================================================ + +00B7 ; Other_ID_Continue # Po MIDDLE DOT +0387 ; Other_ID_Continue # Po GREEK ANO TELEIA +1369..1371 ; Other_ID_Continue # No [9] ETHIOPIC DIGIT ONE..ETHIOPIC DIGIT NINE +19DA ; Other_ID_Continue # No NEW TAI LUE THAM DIGIT ONE + +# Total code points: 12 + +# ================================================ + +0021 ; STerm # Po EXCLAMATION MARK +002E ; STerm # Po FULL STOP +003F ; STerm # Po QUESTION MARK +055C ; STerm # Po ARMENIAN EXCLAMATION MARK +055E ; STerm # Po ARMENIAN QUESTION MARK +0589 ; STerm # Po ARMENIAN FULL STOP +061F ; STerm # Po ARABIC QUESTION MARK +06D4 ; STerm # Po ARABIC FULL STOP +0700..0702 ; STerm # Po [3] SYRIAC END OF PARAGRAPH..SYRIAC SUBLINEAR FULL STOP +07F9 ; STerm # Po NKO EXCLAMATION MARK +0964..0965 ; STerm # Po [2] DEVANAGARI DANDA..DEVANAGARI DOUBLE DANDA +104A..104B ; STerm # Po [2] MYANMAR SIGN LITTLE SECTION..MYANMAR SIGN SECTION +1362 ; STerm # Po ETHIOPIC FULL STOP +1367..1368 ; STerm # Po [2] ETHIOPIC QUESTION MARK..ETHIOPIC PARAGRAPH SEPARATOR +166E ; STerm # Po CANADIAN SYLLABICS FULL STOP +1735..1736 ; STerm # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION +1803 ; STerm # Po MONGOLIAN FULL STOP +1809 ; STerm # Po MONGOLIAN MANCHU FULL STOP +1944..1945 ; STerm # Po [2] LIMBU EXCLAMATION MARK..LIMBU QUESTION MARK +1AA8..1AAB ; STerm # Po [4] TAI THAM SIGN KAAN..TAI THAM SIGN SATKAANKUU +1B5A..1B5B ; STerm # Po [2] BALINESE PANTI..BALINESE PAMADA +1B5E..1B5F ; STerm # Po [2] BALINESE CARIK SIKI..BALINESE CARIK PAREREN +1C3B..1C3C ; STerm # Po [2] LEPCHA PUNCTUATION TA-ROL..LEPCHA PUNCTUATION NYET THYOOM TA-ROL +1C7E..1C7F ; STerm # Po [2] OL CHIKI PUNCTUATION MUCAAD..OL CHIKI PUNCTUATION DOUBLE MUCAAD +203C..203D ; STerm # Po [2] DOUBLE EXCLAMATION MARK..INTERROBANG +2047..2049 ; STerm # Po [3] DOUBLE QUESTION MARK..EXCLAMATION QUESTION MARK +2E2E ; STerm # Po REVERSED QUESTION MARK +3002 ; STerm # Po IDEOGRAPHIC FULL STOP +A4FF ; STerm # Po LISU PUNCTUATION FULL STOP +A60E..A60F ; STerm # Po [2] VAI FULL STOP..VAI QUESTION MARK +A6F3 ; STerm # Po BAMUM FULL STOP +A6F7 ; STerm # Po BAMUM QUESTION MARK +A876..A877 ; STerm # Po [2] PHAGS-PA MARK SHAD..PHAGS-PA MARK DOUBLE SHAD +A8CE..A8CF ; STerm # Po [2] SAURASHTRA DANDA..SAURASHTRA DOUBLE DANDA +A92F ; STerm # Po KAYAH LI SIGN SHYA +A9C8..A9C9 ; STerm # Po [2] JAVANESE PADA LINGSA..JAVANESE PADA LUNGSI +AA5D..AA5F ; STerm # Po [3] CHAM PUNCTUATION DANDA..CHAM PUNCTUATION TRIPLE DANDA +ABEB ; STerm # Po MEETEI MAYEK CHEIKHEI +FE52 ; STerm # Po SMALL FULL STOP +FE56..FE57 ; STerm # Po [2] SMALL QUESTION MARK..SMALL EXCLAMATION MARK +FF01 ; STerm # Po FULLWIDTH EXCLAMATION MARK +FF0E ; STerm # Po FULLWIDTH FULL STOP +FF1F ; STerm # Po FULLWIDTH QUESTION MARK +FF61 ; STerm # Po HALFWIDTH IDEOGRAPHIC FULL STOP +10A56..10A57 ; STerm # Po [2] KHAROSHTHI PUNCTUATION DANDA..KHAROSHTHI PUNCTUATION DOUBLE DANDA +11047..11048 ; STerm # Po [2] BRAHMI DANDA..BRAHMI DOUBLE DANDA +110BE..110C1 ; STerm # Po [4] KAITHI SECTION MARK..KAITHI DOUBLE DANDA + +# Total code points: 76 + +# ================================================ + +180B..180D ; Variation_Selector # Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE +FE00..FE0F ; Variation_Selector # Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16 +E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 + +# Total code points: 259 + +# ================================================ + +0009..000D ; Pattern_White_Space # Cc [5] <control-0009>..<control-000D> +0020 ; Pattern_White_Space # Zs SPACE +0085 ; Pattern_White_Space # Cc <control-0085> +200E..200F ; Pattern_White_Space # Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK +2028 ; Pattern_White_Space # Zl LINE SEPARATOR +2029 ; Pattern_White_Space # Zp PARAGRAPH SEPARATOR + +# Total code points: 11 + +# ================================================ + +0021..0023 ; Pattern_Syntax # Po [3] EXCLAMATION MARK..NUMBER SIGN +0024 ; Pattern_Syntax # Sc DOLLAR SIGN +0025..0027 ; Pattern_Syntax # Po [3] PERCENT SIGN..APOSTROPHE +0028 ; Pattern_Syntax # Ps LEFT PARENTHESIS +0029 ; Pattern_Syntax # Pe RIGHT PARENTHESIS +002A ; Pattern_Syntax # Po ASTERISK +002B ; Pattern_Syntax # Sm PLUS SIGN +002C ; Pattern_Syntax # Po COMMA +002D ; Pattern_Syntax # Pd HYPHEN-MINUS +002E..002F ; Pattern_Syntax # Po [2] FULL STOP..SOLIDUS +003A..003B ; Pattern_Syntax # Po [2] COLON..SEMICOLON +003C..003E ; Pattern_Syntax # Sm [3] LESS-THAN SIGN..GREATER-THAN SIGN +003F..0040 ; Pattern_Syntax # Po [2] QUESTION MARK..COMMERCIAL AT +005B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET +005C ; Pattern_Syntax # Po REVERSE SOLIDUS +005D ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET +005E ; Pattern_Syntax # Sk CIRCUMFLEX ACCENT +0060 ; Pattern_Syntax # Sk GRAVE ACCENT +007B ; Pattern_Syntax # Ps LEFT CURLY BRACKET +007C ; Pattern_Syntax # Sm VERTICAL LINE +007D ; Pattern_Syntax # Pe RIGHT CURLY BRACKET +007E ; Pattern_Syntax # Sm TILDE +00A1 ; Pattern_Syntax # Po INVERTED EXCLAMATION MARK +00A2..00A5 ; Pattern_Syntax # Sc [4] CENT SIGN..YEN SIGN +00A6..00A7 ; Pattern_Syntax # So [2] BROKEN BAR..SECTION SIGN +00A9 ; Pattern_Syntax # So COPYRIGHT SIGN +00AB ; Pattern_Syntax # Pi LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +00AC ; Pattern_Syntax # Sm NOT SIGN +00AE ; Pattern_Syntax # So REGISTERED SIGN +00B0 ; Pattern_Syntax # So DEGREE SIGN +00B1 ; Pattern_Syntax # Sm PLUS-MINUS SIGN +00B6 ; Pattern_Syntax # So PILCROW SIGN +00BB ; Pattern_Syntax # Pf RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +00BF ; Pattern_Syntax # Po INVERTED QUESTION MARK +00D7 ; Pattern_Syntax # Sm MULTIPLICATION SIGN +00F7 ; Pattern_Syntax # Sm DIVISION SIGN +2010..2015 ; Pattern_Syntax # Pd [6] HYPHEN..HORIZONTAL BAR +2016..2017 ; Pattern_Syntax # Po [2] DOUBLE VERTICAL LINE..DOUBLE LOW LINE +2018 ; Pattern_Syntax # Pi LEFT SINGLE QUOTATION MARK +2019 ; Pattern_Syntax # Pf RIGHT SINGLE QUOTATION MARK +201A ; Pattern_Syntax # Ps SINGLE LOW-9 QUOTATION MARK +201B..201C ; Pattern_Syntax # Pi [2] SINGLE HIGH-REVERSED-9 QUOTATION MARK..LEFT DOUBLE QUOTATION MARK +201D ; Pattern_Syntax # Pf RIGHT DOUBLE QUOTATION MARK +201E ; Pattern_Syntax # Ps DOUBLE LOW-9 QUOTATION MARK +201F ; Pattern_Syntax # Pi DOUBLE HIGH-REVERSED-9 QUOTATION MARK +2020..2027 ; Pattern_Syntax # Po [8] DAGGER..HYPHENATION POINT +2030..2038 ; Pattern_Syntax # Po [9] PER MILLE SIGN..CARET +2039 ; Pattern_Syntax # Pi SINGLE LEFT-POINTING ANGLE QUOTATION MARK +203A ; Pattern_Syntax # Pf SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +203B..203E ; Pattern_Syntax # Po [4] REFERENCE MARK..OVERLINE +2041..2043 ; Pattern_Syntax # Po [3] CARET INSERTION POINT..HYPHEN BULLET +2044 ; Pattern_Syntax # Sm FRACTION SLASH +2045 ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH QUILL +2046 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH QUILL +2047..2051 ; Pattern_Syntax # Po [11] DOUBLE QUESTION MARK..TWO ASTERISKS ALIGNED VERTICALLY +2052 ; Pattern_Syntax # Sm COMMERCIAL MINUS SIGN +2053 ; Pattern_Syntax # Po SWUNG DASH +2055..205E ; Pattern_Syntax # Po [10] FLOWER PUNCTUATION MARK..VERTICAL FOUR DOTS +2190..2194 ; Pattern_Syntax # Sm [5] LEFTWARDS ARROW..LEFT RIGHT ARROW +2195..2199 ; Pattern_Syntax # So [5] UP DOWN ARROW..SOUTH WEST ARROW +219A..219B ; Pattern_Syntax # Sm [2] LEFTWARDS ARROW WITH STROKE..RIGHTWARDS ARROW WITH STROKE +219C..219F ; Pattern_Syntax # So [4] LEFTWARDS WAVE ARROW..UPWARDS TWO HEADED ARROW +21A0 ; Pattern_Syntax # Sm RIGHTWARDS TWO HEADED ARROW +21A1..21A2 ; Pattern_Syntax # So [2] DOWNWARDS TWO HEADED ARROW..LEFTWARDS ARROW WITH TAIL +21A3 ; Pattern_Syntax # Sm RIGHTWARDS ARROW WITH TAIL +21A4..21A5 ; Pattern_Syntax # So [2] LEFTWARDS ARROW FROM BAR..UPWARDS ARROW FROM BAR +21A6 ; Pattern_Syntax # Sm RIGHTWARDS ARROW FROM BAR +21A7..21AD ; Pattern_Syntax # So [7] DOWNWARDS ARROW FROM BAR..LEFT RIGHT WAVE ARROW +21AE ; Pattern_Syntax # Sm LEFT RIGHT ARROW WITH STROKE +21AF..21CD ; Pattern_Syntax # So [31] DOWNWARDS ZIGZAG ARROW..LEFTWARDS DOUBLE ARROW WITH STROKE +21CE..21CF ; Pattern_Syntax # Sm [2] LEFT RIGHT DOUBLE ARROW WITH STROKE..RIGHTWARDS DOUBLE ARROW WITH STROKE +21D0..21D1 ; Pattern_Syntax # So [2] LEFTWARDS DOUBLE ARROW..UPWARDS DOUBLE ARROW +21D2 ; Pattern_Syntax # Sm RIGHTWARDS DOUBLE ARROW +21D3 ; Pattern_Syntax # So DOWNWARDS DOUBLE ARROW +21D4 ; Pattern_Syntax # Sm LEFT RIGHT DOUBLE ARROW +21D5..21F3 ; Pattern_Syntax # So [31] UP DOWN DOUBLE ARROW..UP DOWN WHITE ARROW +21F4..22FF ; Pattern_Syntax # Sm [268] RIGHT ARROW WITH SMALL CIRCLE..Z NOTATION BAG MEMBERSHIP +2300..2307 ; Pattern_Syntax # So [8] DIAMETER SIGN..WAVY LINE +2308..230B ; Pattern_Syntax # Sm [4] LEFT CEILING..RIGHT FLOOR +230C..231F ; Pattern_Syntax # So [20] BOTTOM RIGHT CROP..BOTTOM RIGHT CORNER +2320..2321 ; Pattern_Syntax # Sm [2] TOP HALF INTEGRAL..BOTTOM HALF INTEGRAL +2322..2328 ; Pattern_Syntax # So [7] FROWN..KEYBOARD +2329 ; Pattern_Syntax # Ps LEFT-POINTING ANGLE BRACKET +232A ; Pattern_Syntax # Pe RIGHT-POINTING ANGLE BRACKET +232B..237B ; Pattern_Syntax # So [81] ERASE TO THE LEFT..NOT CHECK MARK +237C ; Pattern_Syntax # Sm RIGHT ANGLE WITH DOWNWARDS ZIGZAG ARROW +237D..239A ; Pattern_Syntax # So [30] SHOULDERED OPEN BOX..CLEAR SCREEN SYMBOL +239B..23B3 ; Pattern_Syntax # Sm [25] LEFT PARENTHESIS UPPER HOOK..SUMMATION BOTTOM +23B4..23DB ; Pattern_Syntax # So [40] TOP SQUARE BRACKET..FUSE +23DC..23E1 ; Pattern_Syntax # Sm [6] TOP PARENTHESIS..BOTTOM TORTOISE SHELL BRACKET +23E2..23F3 ; Pattern_Syntax # So [18] WHITE TRAPEZIUM..HOURGLASS WITH FLOWING SAND +23F4..23FF ; Pattern_Syntax # Cn [12] <reserved-23F4>..<reserved-23FF> +2400..2426 ; Pattern_Syntax # So [39] SYMBOL FOR NULL..SYMBOL FOR SUBSTITUTE FORM TWO +2427..243F ; Pattern_Syntax # Cn [25] <reserved-2427>..<reserved-243F> +2440..244A ; Pattern_Syntax # So [11] OCR HOOK..OCR DOUBLE BACKSLASH +244B..245F ; Pattern_Syntax # Cn [21] <reserved-244B>..<reserved-245F> +2500..25B6 ; Pattern_Syntax # So [183] BOX DRAWINGS LIGHT HORIZONTAL..BLACK RIGHT-POINTING TRIANGLE +25B7 ; Pattern_Syntax # Sm WHITE RIGHT-POINTING TRIANGLE +25B8..25C0 ; Pattern_Syntax # So [9] BLACK RIGHT-POINTING SMALL TRIANGLE..BLACK LEFT-POINTING TRIANGLE +25C1 ; Pattern_Syntax # Sm WHITE LEFT-POINTING TRIANGLE +25C2..25F7 ; Pattern_Syntax # So [54] BLACK LEFT-POINTING SMALL TRIANGLE..WHITE CIRCLE WITH UPPER RIGHT QUADRANT +25F8..25FF ; Pattern_Syntax # Sm [8] UPPER LEFT TRIANGLE..LOWER RIGHT TRIANGLE +2600..266E ; Pattern_Syntax # So [111] BLACK SUN WITH RAYS..MUSIC NATURAL SIGN +266F ; Pattern_Syntax # Sm MUSIC SHARP SIGN +2670..26FF ; Pattern_Syntax # So [144] WEST SYRIAC CROSS..WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE +2700 ; Pattern_Syntax # Cn <reserved-2700> +2701..2767 ; Pattern_Syntax # So [103] UPPER BLADE SCISSORS..ROTATED FLORAL HEART BULLET +2768 ; Pattern_Syntax # Ps MEDIUM LEFT PARENTHESIS ORNAMENT +2769 ; Pattern_Syntax # Pe MEDIUM RIGHT PARENTHESIS ORNAMENT +276A ; Pattern_Syntax # Ps MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +276B ; Pattern_Syntax # Pe MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +276C ; Pattern_Syntax # Ps MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +276D ; Pattern_Syntax # Pe MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +276E ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT +276F ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT +2770 ; Pattern_Syntax # Ps HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +2771 ; Pattern_Syntax # Pe HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +2772 ; Pattern_Syntax # Ps LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +2773 ; Pattern_Syntax # Pe LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +2774 ; Pattern_Syntax # Ps MEDIUM LEFT CURLY BRACKET ORNAMENT +2775 ; Pattern_Syntax # Pe MEDIUM RIGHT CURLY BRACKET ORNAMENT +2794..27BF ; Pattern_Syntax # So [44] HEAVY WIDE-HEADED RIGHTWARDS ARROW..DOUBLE CURLY LOOP +27C0..27C4 ; Pattern_Syntax # Sm [5] THREE DIMENSIONAL ANGLE..OPEN SUPERSET +27C5 ; Pattern_Syntax # Ps LEFT S-SHAPED BAG DELIMITER +27C6 ; Pattern_Syntax # Pe RIGHT S-SHAPED BAG DELIMITER +27C7..27CA ; Pattern_Syntax # Sm [4] OR WITH DOT INSIDE..VERTICAL BAR WITH HORIZONTAL STROKE +27CB ; Pattern_Syntax # Cn <reserved-27CB> +27CC ; Pattern_Syntax # Sm LONG DIVISION +27CD ; Pattern_Syntax # Cn <reserved-27CD> +27CE..27E5 ; Pattern_Syntax # Sm [24] SQUARED LOGICAL AND..WHITE SQUARE WITH RIGHTWARDS TICK +27E6 ; Pattern_Syntax # Ps MATHEMATICAL LEFT WHITE SQUARE BRACKET +27E7 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT WHITE SQUARE BRACKET +27E8 ; Pattern_Syntax # Ps MATHEMATICAL LEFT ANGLE BRACKET +27E9 ; Pattern_Syntax # Pe MATHEMATICAL RIGHT ANGLE BRACKET +27EA ; Pattern_Syntax # Ps MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +27EB ; Pattern_Syntax # Pe MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +27EC ; Pattern_Syntax # Ps MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +27ED ; Pattern_Syntax # Pe MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +27EE ; Pattern_Syntax # Ps MATHEMATICAL LEFT FLATTENED PARENTHESIS +27EF ; Pattern_Syntax # Pe MATHEMATICAL RIGHT FLATTENED PARENTHESIS +27F0..27FF ; Pattern_Syntax # Sm [16] UPWARDS QUADRUPLE ARROW..LONG RIGHTWARDS SQUIGGLE ARROW +2800..28FF ; Pattern_Syntax # So [256] BRAILLE PATTERN BLANK..BRAILLE PATTERN DOTS-12345678 +2900..2982 ; Pattern_Syntax # Sm [131] RIGHTWARDS TWO-HEADED ARROW WITH VERTICAL STROKE..Z NOTATION TYPE COLON +2983 ; Pattern_Syntax # Ps LEFT WHITE CURLY BRACKET +2984 ; Pattern_Syntax # Pe RIGHT WHITE CURLY BRACKET +2985 ; Pattern_Syntax # Ps LEFT WHITE PARENTHESIS +2986 ; Pattern_Syntax # Pe RIGHT WHITE PARENTHESIS +2987 ; Pattern_Syntax # Ps Z NOTATION LEFT IMAGE BRACKET +2988 ; Pattern_Syntax # Pe Z NOTATION RIGHT IMAGE BRACKET +2989 ; Pattern_Syntax # Ps Z NOTATION LEFT BINDING BRACKET +298A ; Pattern_Syntax # Pe Z NOTATION RIGHT BINDING BRACKET +298B ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH UNDERBAR +298C ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH UNDERBAR +298D ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN TOP CORNER +298E ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +298F ; Pattern_Syntax # Ps LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER +2990 ; Pattern_Syntax # Pe RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER +2991 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET WITH DOT +2992 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET WITH DOT +2993 ; Pattern_Syntax # Ps LEFT ARC LESS-THAN BRACKET +2994 ; Pattern_Syntax # Pe RIGHT ARC GREATER-THAN BRACKET +2995 ; Pattern_Syntax # Ps DOUBLE LEFT ARC GREATER-THAN BRACKET +2996 ; Pattern_Syntax # Pe DOUBLE RIGHT ARC LESS-THAN BRACKET +2997 ; Pattern_Syntax # Ps LEFT BLACK TORTOISE SHELL BRACKET +2998 ; Pattern_Syntax # Pe RIGHT BLACK TORTOISE SHELL BRACKET +2999..29D7 ; Pattern_Syntax # Sm [63] DOTTED FENCE..BLACK HOURGLASS +29D8 ; Pattern_Syntax # Ps LEFT WIGGLY FENCE +29D9 ; Pattern_Syntax # Pe RIGHT WIGGLY FENCE +29DA ; Pattern_Syntax # Ps LEFT DOUBLE WIGGLY FENCE +29DB ; Pattern_Syntax # Pe RIGHT DOUBLE WIGGLY FENCE +29DC..29FB ; Pattern_Syntax # Sm [32] INCOMPLETE INFINITY..TRIPLE PLUS +29FC ; Pattern_Syntax # Ps LEFT-POINTING CURVED ANGLE BRACKET +29FD ; Pattern_Syntax # Pe RIGHT-POINTING CURVED ANGLE BRACKET +29FE..2AFF ; Pattern_Syntax # Sm [258] TINY..N-ARY WHITE VERTICAL BAR +2B00..2B2F ; Pattern_Syntax # So [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE +2B30..2B44 ; Pattern_Syntax # Sm [21] LEFT ARROW WITH SMALL CIRCLE..RIGHTWARDS ARROW THROUGH SUPERSET +2B45..2B46 ; Pattern_Syntax # So [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW +2B47..2B4C ; Pattern_Syntax # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR +2B4D..2B4F ; Pattern_Syntax # Cn [3] <reserved-2B4D>..<reserved-2B4F> +2B50..2B59 ; Pattern_Syntax # So [10] WHITE MEDIUM STAR..HEAVY CIRCLED SALTIRE +2B5A..2BFF ; Pattern_Syntax # Cn [166] <reserved-2B5A>..<reserved-2BFF> +2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER +2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET +2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET +2E04 ; Pattern_Syntax # Pi LEFT DOTTED SUBSTITUTION BRACKET +2E05 ; Pattern_Syntax # Pf RIGHT DOTTED SUBSTITUTION BRACKET +2E06..2E08 ; Pattern_Syntax # Po [3] RAISED INTERPOLATION MARKER..DOTTED TRANSPOSITION MARKER +2E09 ; Pattern_Syntax # Pi LEFT TRANSPOSITION BRACKET +2E0A ; Pattern_Syntax # Pf RIGHT TRANSPOSITION BRACKET +2E0B ; Pattern_Syntax # Po RAISED SQUARE +2E0C ; Pattern_Syntax # Pi LEFT RAISED OMISSION BRACKET +2E0D ; Pattern_Syntax # Pf RIGHT RAISED OMISSION BRACKET +2E0E..2E16 ; Pattern_Syntax # Po [9] EDITORIAL CORONIS..DOTTED RIGHT-POINTING ANGLE +2E17 ; Pattern_Syntax # Pd DOUBLE OBLIQUE HYPHEN +2E18..2E19 ; Pattern_Syntax # Po [2] INVERTED INTERROBANG..PALM BRANCH +2E1A ; Pattern_Syntax # Pd HYPHEN WITH DIAERESIS +2E1B ; Pattern_Syntax # Po TILDE WITH RING ABOVE +2E1C ; Pattern_Syntax # Pi LEFT LOW PARAPHRASE BRACKET +2E1D ; Pattern_Syntax # Pf RIGHT LOW PARAPHRASE BRACKET +2E1E..2E1F ; Pattern_Syntax # Po [2] TILDE WITH DOT ABOVE..TILDE WITH DOT BELOW +2E20 ; Pattern_Syntax # Pi LEFT VERTICAL BAR WITH QUILL +2E21 ; Pattern_Syntax # Pf RIGHT VERTICAL BAR WITH QUILL +2E22 ; Pattern_Syntax # Ps TOP LEFT HALF BRACKET +2E23 ; Pattern_Syntax # Pe TOP RIGHT HALF BRACKET +2E24 ; Pattern_Syntax # Ps BOTTOM LEFT HALF BRACKET +2E25 ; Pattern_Syntax # Pe BOTTOM RIGHT HALF BRACKET +2E26 ; Pattern_Syntax # Ps LEFT SIDEWAYS U BRACKET +2E27 ; Pattern_Syntax # Pe RIGHT SIDEWAYS U BRACKET +2E28 ; Pattern_Syntax # Ps LEFT DOUBLE PARENTHESIS +2E29 ; Pattern_Syntax # Pe RIGHT DOUBLE PARENTHESIS +2E2A..2E2E ; Pattern_Syntax # Po [5] TWO DOTS OVER ONE DOT PUNCTUATION..REVERSED QUESTION MARK +2E2F ; Pattern_Syntax # Lm VERTICAL TILDE +2E30..2E31 ; Pattern_Syntax # Po [2] RING POINT..WORD SEPARATOR MIDDLE DOT +2E32..2E7F ; Pattern_Syntax # Cn [78] <reserved-2E32>..<reserved-2E7F> +3001..3003 ; Pattern_Syntax # Po [3] IDEOGRAPHIC COMMA..DITTO MARK +3008 ; Pattern_Syntax # Ps LEFT ANGLE BRACKET +3009 ; Pattern_Syntax # Pe RIGHT ANGLE BRACKET +300A ; Pattern_Syntax # Ps LEFT DOUBLE ANGLE BRACKET +300B ; Pattern_Syntax # Pe RIGHT DOUBLE ANGLE BRACKET +300C ; Pattern_Syntax # Ps LEFT CORNER BRACKET +300D ; Pattern_Syntax # Pe RIGHT CORNER BRACKET +300E ; Pattern_Syntax # Ps LEFT WHITE CORNER BRACKET +300F ; Pattern_Syntax # Pe RIGHT WHITE CORNER BRACKET +3010 ; Pattern_Syntax # Ps LEFT BLACK LENTICULAR BRACKET +3011 ; Pattern_Syntax # Pe RIGHT BLACK LENTICULAR BRACKET +3012..3013 ; Pattern_Syntax # So [2] POSTAL MARK..GETA MARK +3014 ; Pattern_Syntax # Ps LEFT TORTOISE SHELL BRACKET +3015 ; Pattern_Syntax # Pe RIGHT TORTOISE SHELL BRACKET +3016 ; Pattern_Syntax # Ps LEFT WHITE LENTICULAR BRACKET +3017 ; Pattern_Syntax # Pe RIGHT WHITE LENTICULAR BRACKET +3018 ; Pattern_Syntax # Ps LEFT WHITE TORTOISE SHELL BRACKET +3019 ; Pattern_Syntax # Pe RIGHT WHITE TORTOISE SHELL BRACKET +301A ; Pattern_Syntax # Ps LEFT WHITE SQUARE BRACKET +301B ; Pattern_Syntax # Pe RIGHT WHITE SQUARE BRACKET +301C ; Pattern_Syntax # Pd WAVE DASH +301D ; Pattern_Syntax # Ps REVERSED DOUBLE PRIME QUOTATION MARK +301E..301F ; Pattern_Syntax # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK +3020 ; Pattern_Syntax # So POSTAL MARK FACE +3030 ; Pattern_Syntax # Pd WAVY DASH +FD3E ; Pattern_Syntax # Ps ORNATE LEFT PARENTHESIS +FD3F ; Pattern_Syntax # Pe ORNATE RIGHT PARENTHESIS +FE45..FE46 ; Pattern_Syntax # Po [2] SESAME DOT..WHITE SESAME DOT + +# Total code points: 2760 + +# EOF From df7a03a4c343ffb7aa38733dc6e4a72960b670b8 Mon Sep 17 00:00:00 2001 From: Xueming Shen <sherman@openjdk.org> Date: Thu, 28 Apr 2011 20:48:36 -0700 Subject: [PATCH 085/147] 7039066: j.u.rgex does not match TR18 RL1.4 Simple Word Boundaries and RL1.2 Properties Updated the regex Unicode property support Reviewed-by: alanb --- .../classes/java/util/regex/Pattern.java | 262 ++++++++++++++---- .../classes/java/util/regex/UnicodeProp.java | 236 ++++++++++++++++ jdk/test/java/util/regex/POSIX_ASCII.java | 247 +++++++++++++++++ jdk/test/java/util/regex/POSIX_Unicode.java | 141 ++++++++++ jdk/test/java/util/regex/RegExTest.java | 146 +++++++++- 5 files changed, 980 insertions(+), 52 deletions(-) create mode 100644 jdk/src/share/classes/java/util/regex/UnicodeProp.java create mode 100644 jdk/test/java/util/regex/POSIX_ASCII.java create mode 100644 jdk/test/java/util/regex/POSIX_Unicode.java diff --git a/jdk/src/share/classes/java/util/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index 332590a00e4..b02d68b73e4 100644 --- a/jdk/src/share/classes/java/util/regex/Pattern.java +++ b/jdk/src/share/classes/java/util/regex/Pattern.java @@ -206,13 +206,15 @@ import java.util.Arrays; * <td>Equivalent to java.lang.Character.isMirrored()</td></tr> * * <tr><th> </th></tr> - * <tr align="left"><th colspan="2" id="unicode">Classes for Unicode scripts, blocks and categories</th></tr> + * <tr align="left"><th colspan="2" id="unicode">Classes for Unicode scripts, blocks, categories and binary properties</th></tr> * * <tr><td valign="top" headers="construct unicode"><tt>\p{IsLatin}</tt></td> - * <td headers="matches">A Latin script character (simple <a href="#ubc">script</a>)</td></tr> + * <td headers="matches">A Latin script character (<a href="#usc">script</a>)</td></tr> * <tr><td valign="top" headers="construct unicode"><tt>\p{InGreek}</tt></td> - * <td headers="matches">A character in the Greek block (simple <a href="#ubc">block</a>)</td></tr> + * <td headers="matches">A character in the Greek block (<a href="#ubc">block</a>)</td></tr> * <tr><td valign="top" headers="construct unicode"><tt>\p{Lu}</tt></td> - * <td headers="matches">An uppercase letter (simple <a href="#ubc">category</a>)</td></tr> + * <td headers="matches">An uppercase letter (<a href="#ucc">category</a>)</td></tr> + * <tr><td valign="top" headers="construct unicode"><tt>\p{isAlphabetic}</tt></td> + * <td headers="matches">An alphabetic character (<a href="#ubpc">binary property</a>)</td></tr> * <tr><td valign="top" headers="construct unicode"><tt>\p{Sc}</tt></td> * <td headers="matches">A currency symbol</td></tr> * <tr><td valign="top" headers="construct unicode"><tt>\P{InGreek}</tt></td> @@ -328,10 +330,11 @@ import java.util.Arrays; * <td headers="matches"><i>X</i>, as a named-capturing group</td></tr> * <tr><td valign="top" headers="construct special"><tt>(?:</tt><i>X</i><tt>)</tt></td> * <td headers="matches"><i>X</i>, as a non-capturing group</td></tr> - * <tr><td valign="top" headers="construct special"><tt>(?idmsux-idmsux) </tt></td> + * <tr><td valign="top" headers="construct special"><tt>(?idmsuxU-idmsuxU) </tt></td> * <td headers="matches">Nothing, but turns match flags <a href="#CASE_INSENSITIVE">i</a> * <a href="#UNIX_LINES">d</a> <a href="#MULTILINE">m</a> <a href="#DOTALL">s</a> - * <a href="#UNICODE_CASE">u</a> <a href="#COMMENTS">x</a> on - off</td></tr> + * <a href="#UNICODE_CASE">u</a> <a href="#COMMENTS">x</a> <a href="#UNICODE_CHARACTER_CLASS">U</a> + * on - off</td></tr> * <tr><td valign="top" headers="construct special"><tt>(?idmsux-idmsux:</tt><i>X</i><tt>)</tt>  </td> * <td headers="matches"><i>X</i>, as a <a href="#cg">non-capturing group</a> with the * given flags <a href="#CASE_INSENSITIVE">i</a> <a href="#UNIX_LINES">d</a> @@ -518,61 +521,140 @@ import java.util.Arrays; * * <p> This class is in conformance with Level 1 of <a * href="http://www.unicode.org/reports/tr18/"><i>Unicode Technical - * Standard #18: Unicode Regular Expression Guidelines</i></a>, plus RL2.1 + * Standard #18: Unicode Regular Expression</i></a>, plus RL2.1 * Canonical Equivalents. - * - * <p> Unicode escape sequences such as <tt>\u2014</tt> in Java source code + * <p> + * <b>Unicode escape sequences</b> such as <tt>\u2014</tt> in Java source code * are processed as described in section 3.3 of * <cite>The Java™ Language Specification</cite>. - * Such escape sequences are also - * implemented directly by the regular-expression parser so that Unicode - * escapes can be used in expressions that are read from files or from the - * keyboard. Thus the strings <tt>"\u2014"</tt> and <tt>"\\u2014"</tt>, - * while not equal, compile into the same pattern, which matches the character - * with hexadecimal value <tt>0x2014</tt>. - * - * <p> A Unicode character can also be represented in a regular-expression by - * using its hexadecimal code point value directly as described in construct + * Such escape sequences are also implemented directly by the regular-expression + * parser so that Unicode escapes can be used in expressions that are read from + * files or from the keyboard. Thus the strings <tt>"\u2014"</tt> and + * <tt>"\\u2014"</tt>, while not equal, compile into the same pattern, which + * matches the character with hexadecimal value <tt>0x2014</tt>. + * <p> + * A Unicode character can also be represented in a regular-expression by + * using its <b>Hex notation</b>(hexadecimal code point value) directly as described in construct * <tt>\x{...}</tt>, for example a supplementary character U+2011F * can be specified as <tt>\x{2011F}</tt>, instead of two consecutive * Unicode escape sequences of the surrogate pair * <tt>\uD840</tt><tt>\uDD1F</tt>. - * - * <a name="ubc"> - * <p>Unicode scripts, blocks and categories are written with the <tt>\p</tt> and - * <tt>\P</tt> constructs as in Perl. <tt>\p{</tt><i>prop</i><tt>}</tt> matches if + * <p> + * Unicode scripts, blocks, categories and binary properties are written with + * the <tt>\p</tt> and <tt>\P</tt> constructs as in Perl. + * <tt>\p{</tt><i>prop</i><tt>}</tt> matches if * the input has the property <i>prop</i>, while <tt>\P{</tt><i>prop</i><tt>}</tt> * does not match if the input has that property. * <p> - * Scripts are specified either with the prefix {@code Is}, as in + * Scripts, blocks, categories and binary properties can be used both inside + * and outside of a character class. + * <a name="usc"> + * <p> + * <b>Scripts</b> are specified either with the prefix {@code Is}, as in * {@code IsHiragana}, or by using the {@code script} keyword (or its short * form {@code sc})as in {@code script=Hiragana} or {@code sc=Hiragana}. * <p> - * Blocks are specified with the prefix {@code In}, as in + * The script names supported by <code>Pattern</code> are the valid script names + * accepted and defined by + * {@link java.lang.Character.UnicodeScript#forName(String) UnicodeScript.forName}. + * <a name="ubc"> + * <p> + * <b>Blocks</b> are specified with the prefix {@code In}, as in * {@code InMongolian}, or by using the keyword {@code block} (or its short * form {@code blk}) as in {@code block=Mongolian} or {@code blk=Mongolian}. * <p> - * Categories may be specified with the optional prefix {@code Is}: + * The block names supported by <code>Pattern</code> are the valid block names + * accepted and defined by + * {@link java.lang.Character.UnicodeBlock#forName(String) UnicodeBlock.forName}. + * <p> + * <a name="ucc"> + * <b>Categories</b> may be specified with the optional prefix {@code Is}: * Both {@code \p{L}} and {@code \p{IsL}} denote the category of Unicode * letters. Same as scripts and blocks, categories can also be specified * by using the keyword {@code general_category} (or its short form * {@code gc}) as in {@code general_category=Lu} or {@code gc=Lu}. * <p> - * Scripts, blocks and categories can be used both inside and outside of a - * character class. - * <p> The supported categories are those of + * The supported categories are those of * <a href="http://www.unicode.org/unicode/standard/standard.html"> * <i>The Unicode Standard</i></a> in the version specified by the * {@link java.lang.Character Character} class. The category names are those * defined in the Standard, both normative and informative. - * The script names supported by <code>Pattern</code> are the valid script names - * accepted and defined by - * {@link java.lang.Character.UnicodeScript#forName(String) UnicodeScript.forName}. - * The block names supported by <code>Pattern</code> are the valid block names - * accepted and defined by - * {@link java.lang.Character.UnicodeBlock#forName(String) UnicodeBlock.forName}. * <p> - * <a name="jcc"> <p>Categories that behave like the java.lang.Character + * <a name="ubpc"> + * <b>Binary properties</b> are specified with the prefix {@code Is}, as in + * {@code IsAlphabetic}. The supported binary properties by <code>Pattern</code> + * are + * <ul> + * <li> Alphabetic + * <li> Ideographic + * <li> Letter + * <li> Lowercase + * <li> Uppercase + * <li> Titlecase + * <li> Punctuation + * <Li> Control + * <li> White_Space + * <li> Digit + * <li> Hex_Digit + * <li> Noncharacter_Code_Point + * <li> Assigned + * </ul> + + + * <p> + * <b>Predefined Character classes</b> and <b>POSIX character classes</b> are in + * conformance with the recommendation of <i>Annex C: Compatibility Properties</i> + * of <a href="http://www.unicode.org/reports/tr18/"><i>Unicode Regular Expression + * </i></a>, when {@link #UNICODE_CHARACTER_CLASS} flag is specified. + * <p> + * <table border="0" cellpadding="1" cellspacing="0" + * summary="predefined and posix character classes in Unicode mode"> + * <tr align="left"> + * <th bgcolor="#CCCCFF" align="left" id="classes">Classes</th> + * <th bgcolor="#CCCCFF" align="left" id="matches">Matches</th> + *</tr> + * <tr><td><tt>\p{Lower}</tt></td> + * <td>A lowercase character:<tt>\p{IsLowercase}</tt></td></tr> + * <tr><td><tt>\p{Upper}</tt></td> + * <td>An uppercase character:<tt>\p{IsUppercase}</tt></td></tr> + * <tr><td><tt>\p{ASCII}</tt></td> + * <td>All ASCII:<tt>[\x00-\x7F]</tt></td></tr> + * <tr><td><tt>\p{Alpha}</tt></td> + * <td>An alphabetic character:<tt>\p{IsAlphabetic}</tt></td></tr> + * <tr><td><tt>\p{Digit}</tt></td> + * <td>A decimal digit character:<tt>p{IsDigit}</tt></td></tr> + * <tr><td><tt>\p{Alnum}</tt></td> + * <td>An alphanumeric character:<tt>[\p{IsAlphabetic}\p{IsDigit}]</tt></td></tr> + * <tr><td><tt>\p{Punct}</tt></td> + * <td>A punctuation character:<tt>p{IsPunctuation}</tt></td></tr> + * <tr><td><tt>\p{Graph}</tt></td> + * <td>A visible character: <tt>[^\p{IsWhite_Space}\p{gc=Cc}\p{gc=Cs}\p{gc=Cn}]</tt></td></tr> + * <tr><td><tt>\p{Print}</tt></td> + * <td>A printable character: <tt>[\p{Graph}\p{Blank}&&[^\p{Cntrl}]]</tt></td></tr> + * <tr><td><tt>\p{Blank}</tt></td> + * <td>A space or a tab: <tt>[\p{IsWhite_Space}&&[^\p{gc=Zl}\p{gc=Zp}\x0a\x0b\x0c\x0d\x85]]</tt></td></tr> + * <tr><td><tt>\p{Cntrl}</tt></td> + * <td>A control character: <tt>\p{gc=Cc}</tt></td></tr> + * <tr><td><tt>\p{XDigit}</tt></td> + * <td>A hexadecimal digit: <tt>[\p{gc=Nd}\p{IsHex_Digit}]</tt></td></tr> + * <tr><td><tt>\p{Space}</tt></td> + * <td>A whitespace character:<tt>\p{IsWhite_Space}</tt></td></tr> + * <tr><td><tt>\d</tt></td> + * <td>A digit: <tt>\p{IsDigit}</tt></td></tr> + * <tr><td><tt>\D</tt></td> + * <td>A non-digit: <tt>[^\d]</tt></td></tr> + * <tr><td><tt>\s</tt></td> + * <td>A whitespace character: <tt>\p{IsWhite_Space}</tt></td></tr> + * <tr><td><tt>\S</tt></td> + * <td>A non-whitespace character: <tt>[^\s]</tt></td></tr> + * <tr><td><tt>\w</tt></td> + * <td>A word character: <tt>[\p{Alpha}\p{gc=Mn}\p{gc=Me}\p{gc=Mc}\p{Digit}\p{gc=Pc}]</tt></td></tr> + * <tr><td><tt>\W</tt></td> + * <td>A non-word character: <tt>[^\w]</tt></td></tr> + * </table> + * <p> + * <a name="jcc"> + * Categories that behave like the java.lang.Character * boolean is<i>methodname</i> methods (except for the deprecated ones) are * available through the same <tt>\p{</tt><i>prop</i><tt>}</tt> syntax where * the specified property has the name <tt>java<i>methodname</i></tt>. @@ -796,6 +878,28 @@ public final class Pattern */ public static final int CANON_EQ = 0x80; + /** + * Enables the Unicode version of <i>Predefined character classes</i> and + * <i>POSIX character classes</i>. + * + * <p> When this flag is specified then the (US-ASCII only) + * <i>Predefined character classes</i> and <i>POSIX character classes</i> + * are in conformance with + * <a href="http://www.unicode.org/reports/tr18/"><i>Unicode Technical + * Standard #18: Unicode Regular Expression</i></a> + * <i>Annex C: Compatibility Properties</i>. + * <p> + * The UNICODE_CHARACTER_CLASS mode can also be enabled via the embedded + * flag expression <tt>(?U)</tt>. + * <p> + * The flag implies UNICODE_CASE, that is, it enables Unicode-aware case + * folding. + * <p> + * Specifying this flag may impose a performance penalty. </p> + * @since 1.7 + */ + public static final int UNICODE_CHARACTER_CLASS = 0x100; + /* Pattern has only two serialized components: The pattern string * and the flags, which are all that is needed to recompile the pattern * when it is deserialized. @@ -918,7 +1022,8 @@ public final class Pattern * Match flags, a bit mask that may include * {@link #CASE_INSENSITIVE}, {@link #MULTILINE}, {@link #DOTALL}, * {@link #UNICODE_CASE}, {@link #CANON_EQ}, {@link #UNIX_LINES}, - * {@link #LITERAL} and {@link #COMMENTS} + * {@link #LITERAL}, {@link #UNICODE_CHARACTER_CLASS} + * and {@link #COMMENTS} * * @throws IllegalArgumentException * If bit values other than those corresponding to the defined @@ -1209,6 +1314,10 @@ public final class Pattern pattern = p; flags = f; + // to use UNICODE_CASE if UNICODE_CHARACTER_CLASS present + if ((flags & UNICODE_CHARACTER_CLASS) != 0) + flags |= UNICODE_CASE; + // Reset group index count capturingGroupCount = 1; localCount = 0; @@ -2164,12 +2273,14 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { return -1; case 'B': if (inclass) break; - if (create) root = new Bound(Bound.NONE); + if (create) root = new Bound(Bound.NONE, has(UNICODE_CHARACTER_CLASS)); return -1; case 'C': break; case 'D': - if (create) root = new Ctype(ASCII.DIGIT).complement(); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.DIGIT).complement() + : new Ctype(ASCII.DIGIT).complement(); return -1; case 'E': case 'F': @@ -2191,14 +2302,18 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { case 'R': break; case 'S': - if (create) root = new Ctype(ASCII.SPACE).complement(); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WHITE_SPACE).complement() + : new Ctype(ASCII.SPACE).complement(); return -1; case 'T': case 'U': case 'V': break; case 'W': - if (create) root = new Ctype(ASCII.WORD).complement(); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WORD).complement() + : new Ctype(ASCII.WORD).complement(); return -1; case 'X': case 'Y': @@ -2216,12 +2331,14 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { return '\007'; case 'b': if (inclass) break; - if (create) root = new Bound(Bound.BOTH); + if (create) root = new Bound(Bound.BOTH, has(UNICODE_CHARACTER_CLASS)); return -1; case 'c': return c(); case 'd': - if (create) root = new Ctype(ASCII.DIGIT); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.DIGIT) + : new Ctype(ASCII.DIGIT); return -1; case 'e': return '\033'; @@ -2259,7 +2376,9 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { case 'r': return '\r'; case 's': - if (create) root = new Ctype(ASCII.SPACE); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WHITE_SPACE) + : new Ctype(ASCII.SPACE); return -1; case 't': return '\t'; @@ -2268,7 +2387,9 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { case 'v': return '\013'; case 'w': - if (create) root = new Ctype(ASCII.WORD); + if (create) root = has(UNICODE_CHARACTER_CLASS) + ? new Utype(UnicodeProp.WORD) + : new Ctype(ASCII.WORD); return -1; case 'x': return x(); @@ -2490,7 +2611,7 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { { next(); String name; - CharProperty node; + CharProperty node = null; if (singleLetter) { int c = temp[cursor]; @@ -2536,11 +2657,21 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { } else if (name.startsWith("Is")) { // \p{isGeneralCategory} and \p{isScriptName} name = name.substring(2); - node = CharPropertyNames.charPropertyFor(name); + UnicodeProp uprop = UnicodeProp.forName(name); + if (uprop != null) + node = new Utype(uprop); + if (node == null) + node = CharPropertyNames.charPropertyFor(name); if (node == null) node = unicodeScriptPropertyFor(name); } else { - node = charPropertyNodeFor(name); + if (has(UNICODE_CHARACTER_CLASS)) { + UnicodeProp uprop = UnicodeProp.forPOSIXName(name); + if (uprop != null) + node = new Utype(uprop); + } + if (node == null) + node = charPropertyNodeFor(name); } } if (maybeComplement) { @@ -2822,6 +2953,9 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { case 'x': flags |= COMMENTS; break; + case 'U': + flags |= (UNICODE_CHARACTER_CLASS | UNICODE_CASE); + break; case '-': // subFlag then fall through ch = next(); subFlag(); @@ -2861,6 +2995,8 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { case 'x': flags &= ~COMMENTS; break; + case 'U': + flags &= ~(UNICODE_CHARACTER_CLASS | UNICODE_CASE); default: return; } @@ -3663,6 +3799,18 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { } } + /** + * Node class that matches a Unicode "type" + */ + static final class Utype extends CharProperty { + final UnicodeProp uprop; + Utype(UnicodeProp uprop) { this.uprop = uprop; } + boolean isSatisfiedBy(int ch) { + return uprop.is(ch); + } + } + + /** * Node class that matches a POSIX type. */ @@ -5025,9 +5173,17 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { static int BOTH = 0x3; static int NONE = 0x4; int type; - Bound(int n) { + boolean useUWORD; + Bound(int n, boolean useUWORD) { type = n; + this.useUWORD = useUWORD; } + + boolean isWord(int ch) { + return useUWORD ? UnicodeProp.WORD.is(ch) + : (ch == '_' || Character.isLetterOrDigit(ch)); + } + int check(Matcher matcher, int i, CharSequence seq) { int ch; boolean left = false; @@ -5039,14 +5195,14 @@ loop: for(int x=0, offset=0; x<nCodePoints; x++, offset+=len) { } if (i > startIndex) { ch = Character.codePointBefore(seq, i); - left = (ch == '_' || Character.isLetterOrDigit(ch) || + left = (isWord(ch) || ((Character.getType(ch) == Character.NON_SPACING_MARK) && hasBaseCharacter(matcher, i-1, seq))); } boolean right = false; if (i < endIndex) { ch = Character.codePointAt(seq, i); - right = (ch == '_' || Character.isLetterOrDigit(ch) || + right = (isWord(ch) || ((Character.getType(ch) == Character.NON_SPACING_MARK) && hasBaseCharacter(matcher, i, seq))); } else { @@ -5428,6 +5584,12 @@ NEXT: while (i <= last) { defClone("javaUpperCase", new CloneableProperty() { boolean isSatisfiedBy(int ch) { return Character.isUpperCase(ch);}}); + defClone("javaAlphabetic", new CloneableProperty() { + boolean isSatisfiedBy(int ch) { + return Character.isAlphabetic(ch);}}); + defClone("javaIdeographic", new CloneableProperty() { + boolean isSatisfiedBy(int ch) { + return Character.isIdeographic(ch);}}); defClone("javaTitleCase", new CloneableProperty() { boolean isSatisfiedBy(int ch) { return Character.isTitleCase(ch);}}); diff --git a/jdk/src/share/classes/java/util/regex/UnicodeProp.java b/jdk/src/share/classes/java/util/regex/UnicodeProp.java new file mode 100644 index 00000000000..d1a68c08fa1 --- /dev/null +++ b/jdk/src/share/classes/java/util/regex/UnicodeProp.java @@ -0,0 +1,236 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.util.regex; + +import java.util.HashMap; +import java.util.Locale; + +enum UnicodeProp { + + ALPHABETIC { + public boolean is(int ch) { + return Character.isAlphabetic(ch); + } + }, + + LETTER { + public boolean is(int ch) { + return Character.isLetter(ch); + } + }, + + IDEOGRAPHIC { + public boolean is(int ch) { + return Character.isIdeographic(ch); + } + }, + + LOWERCASE { + public boolean is(int ch) { + return Character.isLowerCase(ch); + } + }, + + UPPERCASE { + public boolean is(int ch) { + return Character.isUpperCase(ch); + } + }, + + TITLECASE { + public boolean is(int ch) { + return Character.isTitleCase(ch); + } + }, + + WHITE_SPACE { + // \p{Whitespace} + public boolean is(int ch) { + return ((((1 << Character.SPACE_SEPARATOR) | + (1 << Character.LINE_SEPARATOR) | + (1 << Character.PARAGRAPH_SEPARATOR)) >> Character.getType(ch)) & 1) + != 0 || (ch >= 0x9 && ch <= 0xd) || (ch == 0x85); + } + }, + + CONTROL { + // \p{gc=Control} + public boolean is(int ch) { + return Character.getType(ch) == Character.CONTROL; + } + }, + + PUNCTUATION { + // \p{gc=Punctuation} + public boolean is(int ch) { + return ((((1 << Character.CONNECTOR_PUNCTUATION) | + (1 << Character.DASH_PUNCTUATION) | + (1 << Character.START_PUNCTUATION) | + (1 << Character.END_PUNCTUATION) | + (1 << Character.OTHER_PUNCTUATION) | + (1 << Character.INITIAL_QUOTE_PUNCTUATION) | + (1 << Character.FINAL_QUOTE_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0; + } + }, + + HEX_DIGIT { + // \p{gc=Decimal_Number} + // \p{Hex_Digit} -> PropList.txt: Hex_Digit + public boolean is(int ch) { + return DIGIT.is(ch) || + (ch >= 0x0030 && ch <= 0x0039) || + (ch >= 0x0041 && ch <= 0x0046) || + (ch >= 0x0061 && ch <= 0x0066) || + (ch >= 0xFF10 && ch <= 0xFF19) || + (ch >= 0xFF21 && ch <= 0xFF26) || + (ch >= 0xFF41 && ch <= 0xFF46); + } + }, + + ASSIGNED { + public boolean is(int ch) { + return Character.getType(ch) != Character.UNASSIGNED; + } + }, + + NONCHARACTER_CODE_POINT { + // PropList.txt:Noncharacter_Code_Point + public boolean is(int ch) { + return (ch & 0xfffe) == 0xfffe || (ch >= 0xfdd0 && ch <= 0xfdef); + } + }, + + DIGIT { + // \p{gc=Decimal_Number} + public boolean is(int ch) { + return Character.isDigit(ch); + } + }, + + ALNUM { + // \p{alpha} + // \p{digit} + public boolean is(int ch) { + return ALPHABETIC.is(ch) || DIGIT.is(ch); + } + }, + + BLANK { + // \p{Whitespace} -- + // [\N{LF} \N{VT} \N{FF} \N{CR} \N{NEL} -> 0xa, 0xb, 0xc, 0xd, 0x85 + // \p{gc=Line_Separator} + // \p{gc=Paragraph_Separator}] + public boolean is(int ch) { + return Character.getType(ch) == Character.SPACE_SEPARATOR || + ch == 0x9; // \N{HT} + } + }, + + GRAPH { + // [^ + // \p{space} + // \p{gc=Control} + // \p{gc=Surrogate} + // \p{gc=Unassigned}] + public boolean is(int ch) { + return ((((1 << Character.SPACE_SEPARATOR) | + (1 << Character.LINE_SEPARATOR) | + (1 << Character.PARAGRAPH_SEPARATOR) | + (1 << Character.CONTROL) | + (1 << Character.SURROGATE) | + (1 << Character.UNASSIGNED)) >> Character.getType(ch)) & 1) + == 0; + } + }, + + PRINT { + // \p{graph} + // \p{blank} + // -- \p{cntrl} + public boolean is(int ch) { + return (GRAPH.is(ch) || BLANK.is(ch)) && !CONTROL.is(ch); + } + }, + + WORD { + // \p{alpha} + // \p{gc=Mark} + // \p{digit} + // \p{gc=Connector_Punctuation} + + public boolean is(int ch) { + return ALPHABETIC.is(ch) || + ((((1 << Character.NON_SPACING_MARK) | + (1 << Character.ENCLOSING_MARK) | + (1 << Character.COMBINING_SPACING_MARK) | + (1 << Character.DECIMAL_DIGIT_NUMBER) | + (1 << Character.CONNECTOR_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0; + } + }; + + private final static HashMap<String, String> posix = new HashMap<>(); + private final static HashMap<String, String> aliases = new HashMap<>(); + static { + posix.put("ALPHA", "ALPHABETIC"); + posix.put("LOWER", "LOWERCASE"); + posix.put("UPPER", "UPPERCASE"); + posix.put("SPACE", "WHITE_SPACE"); + posix.put("PUNCT", "PUNCTUATION"); + posix.put("XDIGIT","HEX_DIGIT"); + posix.put("ALNUM", "ALNUM"); + posix.put("CNTRL", "CONTROL"); + posix.put("DIGIT", "DIGIT"); + posix.put("BLANK", "BLANK"); + posix.put("GRAPH", "GRAPH"); + posix.put("PRINT", "PRINT"); + + aliases.put("WHITESPACE", "WHITE_SPACE"); + aliases.put("HEXDIGIT","HEX_DIGIT"); + aliases.put("NONCHARACTERCODEPOINT", "NONCHARACTER_CODE_POINT"); + } + + public static UnicodeProp forName(String propName) { + propName = propName.toUpperCase(Locale.ENGLISH); + String alias = aliases.get(propName); + if (alias != null) + propName = alias; + try { + return valueOf (propName); + } catch (IllegalArgumentException x) {} + return null; + } + + public static UnicodeProp forPOSIXName(String propName) { + propName = posix.get(propName.toUpperCase(Locale.ENGLISH)); + if (propName == null) + return null; + return valueOf (propName); + } + + public abstract boolean is(int ch); +} diff --git a/jdk/test/java/util/regex/POSIX_ASCII.java b/jdk/test/java/util/regex/POSIX_ASCII.java new file mode 100644 index 00000000000..07d3fcd7010 --- /dev/null +++ b/jdk/test/java/util/regex/POSIX_ASCII.java @@ -0,0 +1,247 @@ +/* + * Copyright (c) 2011, 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. + */ + + +final class POSIX_ASCII { + + static final int UPPER = 0x00000100; + + static final int LOWER = 0x00000200; + + static final int DIGIT = 0x00000400; + + static final int SPACE = 0x00000800; + + static final int PUNCT = 0x00001000; + + static final int CNTRL = 0x00002000; + + static final int BLANK = 0x00004000; + + static final int HEX = 0x00008000; + + static final int UNDER = 0x00010000; + + static final int ASCII = 0x0000FF00; + + static final int ALPHA = (UPPER|LOWER); + + static final int ALNUM = (UPPER|LOWER|DIGIT); + + static final int GRAPH = (PUNCT|UPPER|LOWER|DIGIT); + + static final int WORD = (UPPER|LOWER|UNDER|DIGIT); + + static final int XDIGIT = (HEX); + + private static final int[] ctype = new int[] { + CNTRL, /* 00 (NUL) */ + CNTRL, /* 01 (SOH) */ + CNTRL, /* 02 (STX) */ + CNTRL, /* 03 (ETX) */ + CNTRL, /* 04 (EOT) */ + CNTRL, /* 05 (ENQ) */ + CNTRL, /* 06 (ACK) */ + CNTRL, /* 07 (BEL) */ + CNTRL, /* 08 (BS) */ + SPACE+CNTRL+BLANK, /* 09 (HT) */ + SPACE+CNTRL, /* 0A (LF) */ + SPACE+CNTRL, /* 0B (VT) */ + SPACE+CNTRL, /* 0C (FF) */ + SPACE+CNTRL, /* 0D (CR) */ + CNTRL, /* 0E (SI) */ + CNTRL, /* 0F (SO) */ + CNTRL, /* 10 (DLE) */ + CNTRL, /* 11 (DC1) */ + CNTRL, /* 12 (DC2) */ + CNTRL, /* 13 (DC3) */ + CNTRL, /* 14 (DC4) */ + CNTRL, /* 15 (NAK) */ + CNTRL, /* 16 (SYN) */ + CNTRL, /* 17 (ETB) */ + CNTRL, /* 18 (CAN) */ + CNTRL, /* 19 (EM) */ + CNTRL, /* 1A (SUB) */ + CNTRL, /* 1B (ESC) */ + CNTRL, /* 1C (FS) */ + CNTRL, /* 1D (GS) */ + CNTRL, /* 1E (RS) */ + CNTRL, /* 1F (US) */ + SPACE+BLANK, /* 20 SPACE */ + PUNCT, /* 21 ! */ + PUNCT, /* 22 " */ + PUNCT, /* 23 # */ + PUNCT, /* 24 $ */ + PUNCT, /* 25 % */ + PUNCT, /* 26 & */ + PUNCT, /* 27 ' */ + PUNCT, /* 28 ( */ + PUNCT, /* 29 ) */ + PUNCT, /* 2A * */ + PUNCT, /* 2B + */ + PUNCT, /* 2C , */ + PUNCT, /* 2D - */ + PUNCT, /* 2E . */ + PUNCT, /* 2F / */ + DIGIT+HEX+0, /* 30 0 */ + DIGIT+HEX+1, /* 31 1 */ + DIGIT+HEX+2, /* 32 2 */ + DIGIT+HEX+3, /* 33 3 */ + DIGIT+HEX+4, /* 34 4 */ + DIGIT+HEX+5, /* 35 5 */ + DIGIT+HEX+6, /* 36 6 */ + DIGIT+HEX+7, /* 37 7 */ + DIGIT+HEX+8, /* 38 8 */ + DIGIT+HEX+9, /* 39 9 */ + PUNCT, /* 3A : */ + PUNCT, /* 3B ; */ + PUNCT, /* 3C < */ + PUNCT, /* 3D = */ + PUNCT, /* 3E > */ + PUNCT, /* 3F ? */ + PUNCT, /* 40 @ */ + UPPER+HEX+10, /* 41 A */ + UPPER+HEX+11, /* 42 B */ + UPPER+HEX+12, /* 43 C */ + UPPER+HEX+13, /* 44 D */ + UPPER+HEX+14, /* 45 E */ + UPPER+HEX+15, /* 46 F */ + UPPER+16, /* 47 G */ + UPPER+17, /* 48 H */ + UPPER+18, /* 49 I */ + UPPER+19, /* 4A J */ + UPPER+20, /* 4B K */ + UPPER+21, /* 4C L */ + UPPER+22, /* 4D M */ + UPPER+23, /* 4E N */ + UPPER+24, /* 4F O */ + UPPER+25, /* 50 P */ + UPPER+26, /* 51 Q */ + UPPER+27, /* 52 R */ + UPPER+28, /* 53 S */ + UPPER+29, /* 54 T */ + UPPER+30, /* 55 U */ + UPPER+31, /* 56 V */ + UPPER+32, /* 57 W */ + UPPER+33, /* 58 X */ + UPPER+34, /* 59 Y */ + UPPER+35, /* 5A Z */ + PUNCT, /* 5B [ */ + PUNCT, /* 5C \ */ + PUNCT, /* 5D ] */ + PUNCT, /* 5E ^ */ + PUNCT|UNDER, /* 5F _ */ + PUNCT, /* 60 ` */ + LOWER+HEX+10, /* 61 a */ + LOWER+HEX+11, /* 62 b */ + LOWER+HEX+12, /* 63 c */ + LOWER+HEX+13, /* 64 d */ + LOWER+HEX+14, /* 65 e */ + LOWER+HEX+15, /* 66 f */ + LOWER+16, /* 67 g */ + LOWER+17, /* 68 h */ + LOWER+18, /* 69 i */ + LOWER+19, /* 6A j */ + LOWER+20, /* 6B k */ + LOWER+21, /* 6C l */ + LOWER+22, /* 6D m */ + LOWER+23, /* 6E n */ + LOWER+24, /* 6F o */ + LOWER+25, /* 70 p */ + LOWER+26, /* 71 q */ + LOWER+27, /* 72 r */ + LOWER+28, /* 73 s */ + LOWER+29, /* 74 t */ + LOWER+30, /* 75 u */ + LOWER+31, /* 76 v */ + LOWER+32, /* 77 w */ + LOWER+33, /* 78 x */ + LOWER+34, /* 79 y */ + LOWER+35, /* 7A z */ + PUNCT, /* 7B { */ + PUNCT, /* 7C | */ + PUNCT, /* 7D } */ + PUNCT, /* 7E ~ */ + CNTRL, /* 7F (DEL) */ + }; + + static int getType(int ch) { + return ((ch & 0xFFFFFF80) == 0 ? ctype[ch] : 0); + } + + static boolean isType(int ch, int type) { + return (getType(ch) & type) != 0; + } + + static boolean isAscii(int ch) { + return ((ch & 0xFFFFFF80) == 0); + } + + static boolean isAlpha(int ch) { + return isType(ch, ALPHA); + } + + static boolean isDigit(int ch) { + return ((ch-'0')|('9'-ch)) >= 0; + } + + static boolean isAlnum(int ch) { + return isType(ch, ALNUM); + } + + static boolean isGraph(int ch) { + return isType(ch, GRAPH); + } + + static boolean isPrint(int ch) { + return ((ch-0x20)|(0x7E-ch)) >= 0; + } + + static boolean isPunct(int ch) { + return isType(ch, PUNCT); + } + + static boolean isSpace(int ch) { + return isType(ch, SPACE); + } + + static boolean isHexDigit(int ch) { + return isType(ch, HEX); + } + + static boolean isCntrl(int ch) { + return isType(ch, CNTRL); + } + + static boolean isLower(int ch) { + return ((ch-'a')|('z'-ch)) >= 0; + } + + static boolean isUpper(int ch) { + return ((ch-'A')|('Z'-ch)) >= 0; + } + + static boolean isWord(int ch) { + return isType(ch, WORD); + } +} diff --git a/jdk/test/java/util/regex/POSIX_Unicode.java b/jdk/test/java/util/regex/POSIX_Unicode.java new file mode 100644 index 00000000000..da691fe6b57 --- /dev/null +++ b/jdk/test/java/util/regex/POSIX_Unicode.java @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.HashMap; +import java.util.Locale; + +final public class POSIX_Unicode { + + public static boolean isAlpha(int ch) { + return Character.isAlphabetic(ch); + } + + public static boolean isLower(int ch) { + return Character.isLowerCase(ch); + } + + public static boolean isUpper(int ch) { + return Character.isUpperCase(ch); + } + + // \p{Whitespace} + public static boolean isSpace(int ch) { + return ((((1 << Character.SPACE_SEPARATOR) | + (1 << Character.LINE_SEPARATOR) | + (1 << Character.PARAGRAPH_SEPARATOR)) >> Character.getType(ch)) & 1) + != 0 || + (ch >= 0x9 && ch <= 0xd) || + (ch == 0x85); + } + + // \p{gc=Control} + public static boolean isCntrl(int ch) { + return Character.getType(ch) == Character.CONTROL; + } + + // \p{gc=Punctuation} + public static boolean isPunct(int ch) { + return ((((1 << Character.CONNECTOR_PUNCTUATION) | + (1 << Character.DASH_PUNCTUATION) | + (1 << Character.START_PUNCTUATION) | + (1 << Character.END_PUNCTUATION) | + (1 << Character.OTHER_PUNCTUATION) | + (1 << Character.INITIAL_QUOTE_PUNCTUATION) | + (1 << Character.FINAL_QUOTE_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0; + } + + // \p{gc=Decimal_Number} + // \p{Hex_Digit} -> PropList.txt: Hex_Digit + public static boolean isHexDigit(int ch) { + return Character.isDigit(ch) || + (ch >= 0x0030 && ch <= 0x0039) || + (ch >= 0x0041 && ch <= 0x0046) || + (ch >= 0x0061 && ch <= 0x0066) || + (ch >= 0xFF10 && ch <= 0xFF19) || + (ch >= 0xFF21 && ch <= 0xFF26) || + (ch >= 0xFF41 && ch <= 0xFF46); + } + + // \p{gc=Decimal_Number} + public static boolean isDigit(int ch) { + return Character.isDigit(ch); + }; + + // \p{alpha} + // \p{digit} + public static boolean isAlnum(int ch) { + return Character.isAlphabetic(ch) || Character.isDigit(ch); + } + + // \p{Whitespace} -- + // [\N{LF} \N{VT} \N{FF} \N{CR} \N{NEL} -> 0xa, 0xb, 0xc, 0xd, 0x85 + // \p{gc=Line_Separator} + // \p{gc=Paragraph_Separator}] + public static boolean isBlank(int ch) { + int type = Character.getType(ch); + return isSpace(ch) && + ch != 0xa & ch != 0xb && ch !=0xc && ch != 0xd && ch != 0x85 && + type != Character.LINE_SEPARATOR && + type != Character.PARAGRAPH_SEPARATOR; + } + + // [^ + // \p{space} + // \p{gc=Control} + // \p{gc=Surrogate} + // \p{gc=Unassigned}] + public static boolean isGraph(int ch) { + int type = Character.getType(ch); + return !(isSpace(ch) || + Character.CONTROL == type || + Character.SURROGATE == type || + Character.UNASSIGNED == type); + } + + // \p{graph} + // \p{blank} + // -- \p{cntrl} + public static boolean isPrint(int ch) { + return (isGraph(ch) || isBlank(ch)) && !isCntrl(ch); + } + + // PropList.txt:Noncharacter_Code_Point + public static boolean isNoncharacterCodePoint(int ch) { + return (ch & 0xfffe) == 0xfffe || (ch >= 0xfdd0 && ch <= 0xfdef); + } + + // \p{alpha} + // \p{gc=Mark} + // \p{digit} + // \p{gc=Connector_Punctuation} + public static boolean isWord(int ch) { + return isAlpha(ch) || + ((((1 << Character.NON_SPACING_MARK) | + (1 << Character.ENCLOSING_MARK) | + (1 << Character.COMBINING_SPACING_MARK) | + (1 << Character.CONNECTOR_PUNCTUATION)) >> Character.getType(ch)) & 1) + != 0 || + isDigit(ch); + } +} diff --git a/jdk/test/java/util/regex/RegExTest.java b/jdk/test/java/util/regex/RegExTest.java index b444ab4816c..10644e491aa 100644 --- a/jdk/test/java/util/regex/RegExTest.java +++ b/jdk/test/java/util/regex/RegExTest.java @@ -32,7 +32,7 @@ * 4872664 4803179 4892980 4900747 4945394 4938995 4979006 4994840 4997476 * 5013885 5003322 4988891 5098443 5110268 6173522 4829857 5027748 6376940 * 6358731 6178785 6284152 6231989 6497148 6486934 6233084 6504326 6635133 - * 6350801 6676425 6878475 6919132 6931676 6948903 7014645 + * 6350801 6676425 6878475 6919132 6931676 6948903 7014645 7039066 */ import java.util.regex.*; @@ -137,6 +137,7 @@ public class RegExTest { nonBmpClassComplementTest(); unicodePropertiesTest(); unicodeHexNotationTest(); + unicodeClassesTest(); if (failure) throw new RuntimeException("Failure in the RE handling."); else @@ -3656,5 +3657,146 @@ public class RegExTest { failCount++; } report("unicodeHexNotation"); - } + } + + private static void unicodeClassesTest() throws Exception { + + Matcher lower = Pattern.compile("\\p{Lower}").matcher(""); + Matcher upper = Pattern.compile("\\p{Upper}").matcher(""); + Matcher ASCII = Pattern.compile("\\p{ASCII}").matcher(""); + Matcher alpha = Pattern.compile("\\p{Alpha}").matcher(""); + Matcher digit = Pattern.compile("\\p{Digit}").matcher(""); + Matcher alnum = Pattern.compile("\\p{Alnum}").matcher(""); + Matcher punct = Pattern.compile("\\p{Punct}").matcher(""); + Matcher graph = Pattern.compile("\\p{Graph}").matcher(""); + Matcher print = Pattern.compile("\\p{Print}").matcher(""); + Matcher blank = Pattern.compile("\\p{Blank}").matcher(""); + Matcher cntrl = Pattern.compile("\\p{Cntrl}").matcher(""); + Matcher xdigit = Pattern.compile("\\p{XDigit}").matcher(""); + Matcher space = Pattern.compile("\\p{Space}").matcher(""); + Matcher bound = Pattern.compile("\\b").matcher(""); + Matcher word = Pattern.compile("\\w++").matcher(""); + // UNICODE_CHARACTER_CLASS + Matcher lowerU = Pattern.compile("\\p{Lower}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher upperU = Pattern.compile("\\p{Upper}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher ASCIIU = Pattern.compile("\\p{ASCII}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher alphaU = Pattern.compile("\\p{Alpha}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher digitU = Pattern.compile("\\p{Digit}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher alnumU = Pattern.compile("\\p{Alnum}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher punctU = Pattern.compile("\\p{Punct}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher graphU = Pattern.compile("\\p{Graph}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher printU = Pattern.compile("\\p{Print}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher blankU = Pattern.compile("\\p{Blank}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher cntrlU = Pattern.compile("\\p{Cntrl}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher xdigitU = Pattern.compile("\\p{XDigit}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher spaceU = Pattern.compile("\\p{Space}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher boundU = Pattern.compile("\\b", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher wordU = Pattern.compile("\\w", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + // embedded flag (?U) + Matcher lowerEU = Pattern.compile("(?U)\\p{Lower}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher graphEU = Pattern.compile("(?U)\\p{Graph}", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher wordEU = Pattern.compile("(?U)\\w", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + + Matcher bwb = Pattern.compile("\\b\\w\\b").matcher(""); + Matcher bwbU = Pattern.compile("\\b\\w++\\b", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + Matcher bwbEU = Pattern.compile("(?U)\\b\\w++\\b", Pattern.UNICODE_CHARACTER_CLASS).matcher(""); + // properties + Matcher lowerP = Pattern.compile("\\p{IsLowerCase}").matcher(""); + Matcher upperP = Pattern.compile("\\p{IsUpperCase}").matcher(""); + Matcher titleP = Pattern.compile("\\p{IsTitleCase}").matcher(""); + Matcher letterP = Pattern.compile("\\p{IsLetter}").matcher(""); + Matcher alphaP = Pattern.compile("\\p{IsAlphabetic}").matcher(""); + Matcher ideogP = Pattern.compile("\\p{IsIdeographic}").matcher(""); + Matcher cntrlP = Pattern.compile("\\p{IsControl}").matcher(""); + Matcher spaceP = Pattern.compile("\\p{IsWhiteSpace}").matcher(""); + Matcher definedP = Pattern.compile("\\p{IsAssigned}").matcher(""); + Matcher nonCCPP = Pattern.compile("\\p{IsNoncharacterCodePoint}").matcher(""); + + // javaMethod + Matcher lowerJ = Pattern.compile("\\p{javaLowerCase}").matcher(""); + Matcher upperJ = Pattern.compile("\\p{javaUpperCase}").matcher(""); + Matcher alphaJ = Pattern.compile("\\p{javaAlphabetic}").matcher(""); + Matcher ideogJ = Pattern.compile("\\p{javaIdeographic}").matcher(""); + + for (int cp = 1; cp < 0x30000; cp++) { + String str = new String(Character.toChars(cp)); + int type = Character.getType(cp); + if (// lower + POSIX_ASCII.isLower(cp) != lower.reset(str).matches() || + Character.isLowerCase(cp) != lowerU.reset(str).matches() || + Character.isLowerCase(cp) != lowerP.reset(str).matches() || + Character.isLowerCase(cp) != lowerEU.reset(str).matches()|| + Character.isLowerCase(cp) != lowerJ.reset(str).matches()|| + // upper + POSIX_ASCII.isUpper(cp) != upper.reset(str).matches() || + POSIX_Unicode.isUpper(cp) != upperU.reset(str).matches() || + Character.isUpperCase(cp) != upperP.reset(str).matches() || + Character.isUpperCase(cp) != upperJ.reset(str).matches() || + // alpha + POSIX_ASCII.isAlpha(cp) != alpha.reset(str).matches() || + POSIX_Unicode.isAlpha(cp) != alphaU.reset(str).matches() || + Character.isAlphabetic(cp)!= alphaP.reset(str).matches() || + Character.isAlphabetic(cp)!= alphaJ.reset(str).matches() || + // digit + POSIX_ASCII.isDigit(cp) != digit.reset(str).matches() || + Character.isDigit(cp) != digitU.reset(str).matches() || + // alnum + POSIX_ASCII.isAlnum(cp) != alnum.reset(str).matches() || + POSIX_Unicode.isAlnum(cp) != alnumU.reset(str).matches() || + // punct + POSIX_ASCII.isPunct(cp) != punct.reset(str).matches() || + POSIX_Unicode.isPunct(cp) != punctU.reset(str).matches() || + // graph + POSIX_ASCII.isGraph(cp) != graph.reset(str).matches() || + POSIX_Unicode.isGraph(cp) != graphU.reset(str).matches() || + POSIX_Unicode.isGraph(cp) != graphEU.reset(str).matches()|| + // blank + POSIX_ASCII.isType(cp, POSIX_ASCII.BLANK) + != blank.reset(str).matches() || + POSIX_Unicode.isBlank(cp) != blankU.reset(str).matches() || + // print + POSIX_ASCII.isPrint(cp) != print.reset(str).matches() || + POSIX_Unicode.isPrint(cp) != printU.reset(str).matches() || + // cntrl + POSIX_ASCII.isCntrl(cp) != cntrl.reset(str).matches() || + POSIX_Unicode.isCntrl(cp) != cntrlU.reset(str).matches() || + (Character.CONTROL == type) != cntrlP.reset(str).matches() || + // hexdigit + POSIX_ASCII.isHexDigit(cp) != xdigit.reset(str).matches() || + POSIX_Unicode.isHexDigit(cp) != xdigitU.reset(str).matches() || + // space + POSIX_ASCII.isSpace(cp) != space.reset(str).matches() || + POSIX_Unicode.isSpace(cp) != spaceU.reset(str).matches() || + POSIX_Unicode.isSpace(cp) != spaceP.reset(str).matches() || + // word + POSIX_ASCII.isWord(cp) != word.reset(str).matches() || + POSIX_Unicode.isWord(cp) != wordU.reset(str).matches() || + POSIX_Unicode.isWord(cp) != wordEU.reset(str).matches()|| + // bwordb + POSIX_ASCII.isWord(cp) != bwb.reset(str).matches() || + POSIX_Unicode.isWord(cp) != bwbU.reset(str).matches() || + // properties + Character.isTitleCase(cp) != titleP.reset(str).matches() || + Character.isLetter(cp) != letterP.reset(str).matches()|| + Character.isIdeographic(cp) != ideogP.reset(str).matches() || + Character.isIdeographic(cp) != ideogJ.reset(str).matches() || + (Character.UNASSIGNED == type) == definedP.reset(str).matches() || + POSIX_Unicode.isNoncharacterCodePoint(cp) != nonCCPP.reset(str).matches()) + failCount++; + } + + // bounds/word align + twoFindIndexes(" \u0180sherman\u0400 ", bound, 1, 10); + if (!bwbU.reset("\u0180sherman\u0400").matches()) + failCount++; + twoFindIndexes(" \u0180sh\u0345erman\u0400 ", bound, 1, 11); + if (!bwbU.reset("\u0180sh\u0345erman\u0400").matches()) + failCount++; + twoFindIndexes(" \u0724\u0739\u0724 ", bound, 1, 4); + if (!bwbU.reset("\u0724\u0739\u0724").matches()) + failCount++; + if (!bwbEU.reset("\u0724\u0739\u0724").matches()) + failCount++; + report("unicodePredefinedClasses"); + } } From 8b55d3b5017730974b7c47ec4d98487713fc8cd8 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Thu, 28 Apr 2011 21:43:40 -0700 Subject: [PATCH 086/147] 7040257: [pt_BR,fr] Print dialog has duplicate mnemonic key Reviewed-by: psun --- .../sun/print/resources/serviceui_fr.properties | 6 +++--- .../print/resources/serviceui_pt_BR.properties | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties b/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties index 7c64e8a4138..a74d5677454 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_fr.properties @@ -49,7 +49,7 @@ label.source=Source : label.source.mnemonic=C label.status=Statut : label.username=Nom utilisateur : -label.username.mnemonic=U +label.username.mnemonic=O label.millimetres=(mm) label.inches=(po) label.topmargin=haut @@ -62,7 +62,7 @@ label.rightmargin=droite label.rightmargin.mnemonic=D # radiobutton.color=Couleur -radiobutton.color.mnemonic=U +radiobutton.color.mnemonic=C radiobutton.draftq=Brouillon radiobutton.draftq.mnemonic=L radiobutton.duplex=Duplex @@ -70,7 +70,7 @@ radiobutton.duplex.mnemonic=D radiobutton.highq=Max. radiobutton.highq.mnemonic=X radiobutton.landscape=Paysage -radiobutton.landscape.mnemonic=S +radiobutton.landscape.mnemonic=Y radiobutton.monochrome=Monochrome radiobutton.monochrome.mnemonic=M radiobutton.normalq=Normal diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties b/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties index 7797a2a9c06..d82178f3a4e 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_pt_BR.properties @@ -15,10 +15,10 @@ button.cancel=Cancelar button.ok=OK button.print=Imprimir button.properties=Propriedades... -button.properties.mnemonic=R +button.properties.mnemonic=D # checkbox.collate=Agrupar -checkbox.collate.mnemonic=A +checkbox.collate.mnemonic=R checkbox.jobsheets=P\u00E1gina com Banner checkbox.jobsheets.mnemonic=B checkbox.printtofile=Imprimir em Arquivo @@ -38,7 +38,7 @@ label.jobname.mnemonic=J label.numcopies=N\u00FAmero de c\u00F3pias: label.numcopies.mnemonic=O label.priority=Prioridade: -label.priority.mnemonic=R +label.priority.mnemonic=P label.psname=Nome: label.psname.mnemonic=N label.pstype=Tipo: @@ -59,7 +59,7 @@ label.bottommargin.mnemonic=I label.leftmargin=esquerda: label.leftmargin.mnemonic=Q label.rightmargin=direita -label.rightmargin.mnemonic=R +label.rightmargin.mnemonic=D # radiobutton.color=Cor radiobutton.color.mnemonic=O @@ -68,7 +68,7 @@ radiobutton.draftq.mnemonic=R radiobutton.duplex=Duplex radiobutton.duplex.mnemonic=D radiobutton.highq=Alta -radiobutton.highq.mnemonic=A +radiobutton.highq.mnemonic=T radiobutton.landscape=Paisagem radiobutton.landscape.mnemonic=P radiobutton.monochrome=Monocrom\u00E1tico @@ -76,7 +76,7 @@ radiobutton.monochrome.mnemonic=M radiobutton.normalq=Normal radiobutton.normalq.mnemonic=N radiobutton.oneside=Um Lado -radiobutton.oneside.mnemonic=O +radiobutton.oneside.mnemonic=L radiobutton.portrait=Retrato radiobutton.portrait.mnemonic=R radiobutton.rangeall=Tudo @@ -86,7 +86,7 @@ radiobutton.rangepages.mnemonic=P radiobutton.revlandscape=Paisagem Invertida radiobutton.revlandscape.mnemonic=N radiobutton.revportrait=Retrato Invertido -radiobutton.revportrait.mnemonic=I +radiobutton.revportrait.mnemonic=E radiobutton.tumble=Virar radiobutton.tumble.mnemonic=V # The vkMnemonics correspond with the constants defined in KeyEvent, eg @@ -96,7 +96,7 @@ tab.appearance.vkMnemonic=65 tab.general=Geral tab.general.vkMnemonic=71 tab.pagesetup=Configura\u00E7\u00E3o de P\u00E1gina -tab.pagesetup.vkMnemonic=80 +tab.pagesetup.vkMnemonic=67 # error.pagerange=Faixa de p\u00E1ginas inv\u00E1lida; insira novamente os valores (por exemplo, 1-3,5,7-10) error.destination=Nome de arquivo inv\u00E1lido; tente novamente From e8ad64314e5b39588ffdcb613a4b421aca2d4841 Mon Sep 17 00:00:00 2001 From: Jim Graham <flar@openjdk.org> Date: Fri, 29 Apr 2011 01:40:11 -0700 Subject: [PATCH 087/147] 7020955: No focus point adjustment for RadialGradientPaint Reviewed-by: prr --- .../share/classes/java/awt/RadialGradientPaint.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/jdk/src/share/classes/java/awt/RadialGradientPaint.java b/jdk/src/share/classes/java/awt/RadialGradientPaint.java index d2ba4be3ece..c9cc43a8e32 100644 --- a/jdk/src/share/classes/java/awt/RadialGradientPaint.java +++ b/jdk/src/share/classes/java/awt/RadialGradientPaint.java @@ -49,9 +49,11 @@ import java.beans.ConstructorProperties; * from the focus point to the circumference will thus span all the gradient * colors. * <p> - * Specifying a focus point outside of the circle's radius will result in the - * focus being set to the intersection point of the focus-center line and the - * perimeter of the circle. + * Specifying a focus point outside of the radius of the circle will cause + * the rings of the gradient pattern to be centered on the point just inside + * the edge of the circle in the direction of the focus point. + * The rendering will internally use this modified location as if it were + * the specified focus point. * <p> * The user must provide an array of floats specifying how to distribute the * colors along the gradient. These values should range from 0.0 to 1.0 and @@ -621,6 +623,11 @@ public final class RadialGradientPaint extends MultipleGradientPaint { /** * Returns a copy of the focus point of the radial gradient. + * Note that if the focus point specified when the radial gradient + * was constructed lies outside of the radius of the circle, this + * method will still return the original focus point even though + * the rendering may center the rings of color on a different + * point that lies inside the radius. * * @return a {@code Point2D} object that is a copy of the focus point */ From 2ab6e13a2190b421760e1571bb8c396fc561e562 Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov <dcherepanov@openjdk.org> Date: Fri, 29 Apr 2011 16:02:05 +0400 Subject: [PATCH 088/147] 7034291: Regression : Preedit String on active client is committed into unexpected component Reviewed-by: art, naoto --- .../native/sun/windows/awt_Component.cpp | 8 ++----- .../windows/native/sun/windows/awt_Frame.cpp | 22 ++++++++++++++++--- .../windows/native/sun/windows/awt_Frame.h | 9 ++++---- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/jdk/src/windows/native/sun/windows/awt_Component.cpp b/jdk/src/windows/native/sun/windows/awt_Component.cpp index 592a9b434b2..45236e6ffcd 100644 --- a/jdk/src/windows/native/sun/windows/awt_Component.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp @@ -1203,7 +1203,7 @@ void SpyWinMessage(HWND hwnd, UINT message, LPCTSTR szComment) { WIN_MSG(WM_IME_COMPOSITIONFULL) WIN_MSG(WM_IME_SELECT) WIN_MSG(WM_IME_CHAR) - FMT_MSG(0x0288, "WM_IME_REQUEST") + FMT_MSG(WM_IME_REQUEST) WIN_MSG(WM_IME_KEYDOWN) WIN_MSG(WM_IME_KEYUP) FMT_MSG(0x02A1, "WM_MOUSEHOVER") @@ -1733,7 +1733,7 @@ LRESULT AwtComponent::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) case WM_IME_SELECT: case WM_IME_KEYUP: case WM_IME_KEYDOWN: - case 0x0288: // WM_IME_REQUEST + case WM_IME_REQUEST: CallProxyDefWindowProc(message, wParam, lParam, retValue, mr); break; case WM_CHAR: @@ -4657,10 +4657,6 @@ void* AwtComponent::SetNativeFocusOwner(void *self) { ret: if (c && ::IsWindow(c->GetHWnd())) { sm_focusOwner = c->GetHWnd(); - AwtFrame *owner = (AwtFrame*)GetComponent(c->GetProxyToplevelContainer()); - if (owner) { - owner->SetLastProxiedFocusOwner(sm_focusOwner); - } } else { sm_focusOwner = NULL; } diff --git a/jdk/src/windows/native/sun/windows/awt_Frame.cpp b/jdk/src/windows/native/sun/windows/awt_Frame.cpp index 398aea6db67..6662d6d54c2 100644 --- a/jdk/src/windows/native/sun/windows/awt_Frame.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Frame.cpp @@ -109,7 +109,7 @@ AwtFrame::AwtFrame() { m_isMenuDropped = FALSE; m_isInputMethodWindow = FALSE; m_isUndecorated = FALSE; - m_lastProxiedFocusOwner = NULL; + m_imeTargetComponent = NULL; m_actualFocusedWindow = NULL; m_iconic = FALSE; m_zoomed = FALSE; @@ -311,6 +311,8 @@ LRESULT AwtFrame::ProxyWindowProc(UINT message, WPARAM wParam, LPARAM lParam, Ms LRESULT retValue = 0L; AwtComponent *focusOwner = NULL; + AwtComponent *imeTargetComponent = NULL; + // IME and input language related messages need to be sent to a window // which has the Java input focus switch (message) { @@ -323,15 +325,29 @@ LRESULT AwtFrame::ProxyWindowProc(UINT message, WPARAM wParam, LPARAM lParam, Ms case WM_IME_COMPOSITIONFULL: case WM_IME_SELECT: case WM_IME_CHAR: - case 0x0288: // WM_IME_REQUEST + case WM_IME_REQUEST: case WM_IME_KEYDOWN: case WM_IME_KEYUP: case WM_INPUTLANGCHANGEREQUEST: case WM_INPUTLANGCHANGE: + if (message == WM_IME_STARTCOMPOSITION) { + SetImeTargetComponent(sm_focusOwner); + } + imeTargetComponent = AwtComponent::GetComponent(GetImeTargetComponent()); + if (imeTargetComponent != NULL && + imeTargetComponent != this) // avoid recursive calls + { + retValue = imeTargetComponent->WindowProc(message, wParam, lParam); + mr = mrConsume; + } + if (message == WM_IME_ENDCOMPOSITION) { + SetImeTargetComponent(NULL); + } + break; // TODO: when a Choice's list is dropped down and we're scrolling in // the list WM_MOUSEWHEEL messages come to the poxy, not to the list. Why? case WM_MOUSEWHEEL: - focusOwner = AwtComponent::GetComponent(GetLastProxiedFocusOwner()); + focusOwner = AwtComponent::GetComponent(sm_focusOwner); if (focusOwner != NULL && focusOwner != this) // avoid recursive calls { diff --git a/jdk/src/windows/native/sun/windows/awt_Frame.h b/jdk/src/windows/native/sun/windows/awt_Frame.h index 1adca139bf9..f6d692b87eb 100644 --- a/jdk/src/windows/native/sun/windows/awt_Frame.h +++ b/jdk/src/windows/native/sun/windows/awt_Frame.h @@ -150,8 +150,8 @@ public: void CheckRetainActualFocusedWindow(HWND activatedOpositeHWnd); BOOL CheckActivateActualFocusedWindow(HWND deactivatedOpositeHWnd); - INLINE HWND GetLastProxiedFocusOwner() { return m_lastProxiedFocusOwner; } - INLINE void SetLastProxiedFocusOwner(HWND hwnd) { m_lastProxiedFocusOwner = hwnd; } + INLINE HWND GetImeTargetComponent() { return m_imeTargetComponent; } + INLINE void SetImeTargetComponent(HWND hwnd) { m_imeTargetComponent = hwnd; } protected: /* The frame is undecorated. */ @@ -179,9 +179,8 @@ private: /* The frame is an InputMethodWindow */ BOOL m_isInputMethodWindow; - /* Retains the last/current sm_focusOwner proxied. Actually, it should be - * a component of an owned window last/currently active. */ - HWND m_lastProxiedFocusOwner; + // retains the target component for the IME messages + HWND m_imeTargetComponent; /* * Fix for 4823903. From 202b18b4f568e73a1eef78094f9ff5ce7d6e2c3c Mon Sep 17 00:00:00 2001 From: Dmitry Cherepanov <dcherepanov@openjdk.org> Date: Fri, 29 Apr 2011 16:16:25 +0400 Subject: [PATCH 089/147] 7026055: Regression : Cannot use IME on JComboBox Japanese Reviewed-by: art, ant, naoto --- .../native/sun/windows/awt_Component.cpp | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/jdk/src/windows/native/sun/windows/awt_Component.cpp b/jdk/src/windows/native/sun/windows/awt_Component.cpp index 45236e6ffcd..024915fcffc 100644 --- a/jdk/src/windows/native/sun/windows/awt_Component.cpp +++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp @@ -549,8 +549,6 @@ AwtComponent::CreateHWnd(JNIEnv *env, LPCWSTR title, m_hwnd = hwnd; - ImmAssociateContext(NULL); - SetDrawState((jint)JAWT_LOCK_SURFACE_CHANGED | (jint)JAWT_LOCK_BOUNDS_CHANGED | (jint)JAWT_LOCK_CLIP_CHANGED); @@ -2022,25 +2020,6 @@ MsgRouting AwtComponent::WmExitMenuLoop(BOOL isTrackPopupMenu) MsgRouting AwtComponent::WmShowWindow(BOOL show, UINT status) { - // NULL-InputContext is associated to all window just after they created. - // ( see CreateHWnd() ) - // But to TextField and TextArea on Win95, valid InputContext is associated - // by system after that. This is not happen on NT4.0 - // For workaround, force context to NULL here. - - // Fix for 4730228 - // Check if we already have Java-associated input method - HIMC context = 0; - if (m_InputMethod != NULL) { - // If so get the appropriate context from it and use it instead of empty context - JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2); - context = (HIMC)(UINT_PTR)(JNU_GetFieldByName(env, NULL, m_InputMethod, "context", "I").i); - } - - if (ImmGetContext() != 0 && ImmGetContext() != context) { - ImmAssociateContext(context); - } - return mrDoDefault; } From 4e98f838c84862f9f7ac7184b2087f1bdf0e4fd6 Mon Sep 17 00:00:00 2001 From: Lance Andersen <lancea@openjdk.org> Date: Fri, 29 Apr 2011 09:04:03 -0400 Subject: [PATCH 090/147] 7040150: Indexing Error in CachedRowSetImpl.removeCurrentRow Reviewed-by: smarks --- jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java index 74ac1b2bf23..8008049a751 100644 --- a/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java +++ b/jdk/src/share/classes/com/sun/rowset/CachedRowSetImpl.java @@ -1666,7 +1666,7 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern */ protected void removeCurrentRow() { ((Row)getCurrentRow()).setDeleted(); - rvh.remove(cursorPos); + rvh.remove(cursorPos - 1); --numRows; } @@ -6349,7 +6349,6 @@ public class CachedRowSetImpl extends BaseRowSet implements RowSet, RowSetIntern // this can happen if deleted rows are being shown if (row.getDeleted() == true) { removeCurrentRow(); - --numRows; } } From f7618cbf971bc8599f00482e7a26a5f4d373b5b4 Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Fri, 29 Apr 2011 16:05:02 +0100 Subject: [PATCH 091/147] 7040104: javac NPE on Object a[]; Object o = (a=null)[0]; When a null literal is found on top of stack, if expected type is 1-dimension array no checkcast is emitted Reviewed-by: jjg --- .../classes/com/sun/tools/javac/jvm/Code.java | 7 +- langtools/test/tools/javac/T7040104.java | 72 +++++++++++++++++++ 2 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 langtools/test/tools/javac/T7040104.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java index 84ae10c36e9..ec080df41e7 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Code.java @@ -479,7 +479,12 @@ public class Code { state.pop(1);// index Type a = state.stack[state.stacksize-1]; state.pop(1); - state.push(types.erasure(types.elemtype(a))); } + //sometimes 'null type' is treated as a one-dimensional array type + //see Gen.visitLiteral - we should handle this case accordingly + Type stackType = a.tag == BOT ? + syms.objectType : + types.erasure(types.elemtype(a)); + state.push(stackType); } break; case goto_: markDead(); diff --git a/langtools/test/tools/javac/T7040104.java b/langtools/test/tools/javac/T7040104.java new file mode 100644 index 00000000000..e89a7f8fac6 --- /dev/null +++ b/langtools/test/tools/javac/T7040104.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7040104 + * @summary javac NPE on Object a[]; Object o = (a=null)[0]; + */ + +public class T7040104 { + public static void main(String[] args) { + T7040104 t = new T7040104(); + t.test1(); + t.test2(); + t.test3(); + if (t.npeCount != 3) { + throw new AssertionError(); + } + } + + int npeCount = 0; + + void test1() { + Object a[]; + try { + Object o = (a = null)[0]; + } + catch (NullPointerException npe) { + npeCount++; + } + } + + void test2() { + Object a[][]; + try { + Object o = (a = null)[0][0]; + } + catch (NullPointerException npe) { + npeCount++; + } + } + + void test3() { + Object a[][][]; + try { + Object o = (a = null)[0][0][0]; + } + catch (NullPointerException npe) { + npeCount++; + } + } +} From e7081dbf6aafd7da48c3e3af7f80cb23b67ccceb Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Fri, 29 Apr 2011 16:05:29 +0100 Subject: [PATCH 092/147] 7039937: Improved catch analysis fails to handle a common idiom in the libraries Disable generation of 'unreachable catch' warnings for catch statements catching Exception/Throwable Reviewed-by: jjg --- .../com/sun/tools/javac/comp/Flow.java | 12 +++-- .../test/tools/javac/6558548/T6558548.java | 51 +++++++++++-------- .../test/tools/javac/6558548/T6558548_6.out | 12 ++--- .../tools/javac/6558548/T6558548_latest.out | 26 +++------- .../diags/examples/UnreachableCatch1.java | 15 ++++-- 5 files changed, 61 insertions(+), 55 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java index d58106e3089..0c685f932e4 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Flow.java @@ -1153,8 +1153,7 @@ public class Flow extends TreeScanner { if (chk.subset(exc, caughtInTry)) { log.error(pos, "except.already.caught", exc); } else if (!chk.isUnchecked(pos, exc) && - exc.tsym != syms.throwableType.tsym && - exc.tsym != syms.exceptionType.tsym && + !isExceptionOrThrowable(exc) && !chk.intersects(exc, thrownInTry)) { log.error(pos, "except.never.thrown.in.try", exc); } else if (allowImprovedCatchAnalysis) { @@ -1163,7 +1162,8 @@ public class Flow extends TreeScanner { // unchecked exception, the result list would not be empty, as the augmented // thrown set includes { RuntimeException, Error }; if 'exc' was a checked // exception, that would have been covered in the branch above - if (chk.diff(catchableThrownTypes, caughtInTry).isEmpty()) { + if (chk.diff(catchableThrownTypes, caughtInTry).isEmpty() && + !isExceptionOrThrowable(exc)) { String key = catchableThrownTypes.length() == 1 ? "unreachable.catch" : "unreachable.catch.1"; @@ -1171,6 +1171,12 @@ public class Flow extends TreeScanner { } } } + //where + private boolean isExceptionOrThrowable(Type exc) { + return exc.tsym == syms.throwableType.tsym || + exc.tsym == syms.exceptionType.tsym; + } + public void visitConditional(JCConditional tree) { scanCond(tree.cond); diff --git a/langtools/test/tools/javac/6558548/T6558548.java b/langtools/test/tools/javac/6558548/T6558548.java index 09bbda66237..c1c3d61a80b 100644 --- a/langtools/test/tools/javac/6558548/T6558548.java +++ b/langtools/test/tools/javac/6558548/T6558548.java @@ -1,9 +1,9 @@ /* * @test /nodynamiccopyright/ - * @bug 6558548 + * @bug 6558548 7039937 * @summary The compiler needs to be aligned with clarified specification of throws * @compile/fail/ref=T6558548_latest.out -XDrawDiagnostics T6558548.java - * @compile/fail/ref=T6558548_6.out -source 6 -XDrawDiagnostics T6558548.java + * @compile/fail/ref=T6558548_6.out -source 6 -Xlint:-options -XDrawDiagnostics T6558548.java */ class T6558548 { @@ -12,7 +12,7 @@ class T6558548 { void checked() throws InterruptedException {} void runtime() throws IllegalArgumentException {} - void m1() { + void m1a() { try { throw new java.io.FileNotFoundException(); } @@ -20,7 +20,7 @@ class T6558548 { catch(java.io.IOException exc) { } // 6: ok; latest: unreachable } - void m1a() { + void m1b() { try { throw new java.io.IOException(); } @@ -28,11 +28,20 @@ class T6558548 { catch(java.io.IOException exc) { } //ok } - void m2() { + void m1c() { try { - nothing(); + throw new java.io.FileNotFoundException(); } - catch(Exception exc) { } // ok + catch(java.io.FileNotFoundException exc) { } + catch(Exception ex) { } //ok (Exception/Throwable always allowed) + } + + void m1d() { + try { + throw new java.io.FileNotFoundException(); + } + catch(java.io.FileNotFoundException exc) { } + catch(Throwable ex) { } //ok (Exception/Throwable always allowed) } void m3() { @@ -131,7 +140,7 @@ class T6558548 { runtime(); } catch(RuntimeException exc) { } - catch(Exception exc) { } //6: ok; latest: unreachable + catch(Exception exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m17() { @@ -139,7 +148,7 @@ class T6558548 { nothing(); } catch(RuntimeException exc) { } - catch(Exception exc) { } //6: ok; latest: unreachable + catch(Exception exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m18() { @@ -148,7 +157,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(InterruptedException exc) { } - catch(Exception exc) { } //6: ok; latest: unreachable + catch(Exception exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m19() { @@ -157,7 +166,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(InterruptedException exc) { } //never thrown in try - catch(Exception exc) { } //6: ok; latest: unreachable + catch(Exception exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m20() { @@ -166,7 +175,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(InterruptedException exc) { } //never thrown in try - catch(Exception exc) { } //6: ok; latest: unreachable + catch(Exception exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m21() { @@ -182,7 +191,7 @@ class T6558548 { runtime(); } catch(RuntimeException exc) { } - catch(Exception exc) { } // 6: ok; latest: unreachable + catch(Exception exc) { } // 6: ok; latest: ok (Exception/Throwable always allowed) } void m23() { @@ -190,7 +199,7 @@ class T6558548 { nothing(); } catch(RuntimeException exc) { } - catch(Exception exc) { } // 6: ok; latest: unreachable + catch(Exception exc) { } // 6: ok; latest: ok (Exception/Throwable always allowed) } void m24() { @@ -208,7 +217,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(Error exc) { } - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m26() { @@ -217,7 +226,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(Error exc) { } - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m27() { @@ -227,7 +236,7 @@ class T6558548 { catch(RuntimeException exc) { } catch(Error exc) { } catch(InterruptedException exc) { } - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m28() { @@ -237,7 +246,7 @@ class T6558548 { catch(RuntimeException exc) { } catch(Error exc) { } catch(InterruptedException exc) { } //never thrown in try - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m29() { @@ -247,7 +256,7 @@ class T6558548 { catch(RuntimeException exc) { } catch(Error exc) { } catch(InterruptedException exc) { } //never thrown in try - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m30() { @@ -265,7 +274,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(Error exc) { } - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m32() { @@ -274,7 +283,7 @@ class T6558548 { } catch(RuntimeException exc) { } catch(Error exc) { } - catch(Throwable exc) { } //6: ok; latest: unreachable + catch(Throwable exc) { } //6: ok; latest: ok (Exception/Throwable always allowed) } void m33() { diff --git a/langtools/test/tools/javac/6558548/T6558548_6.out b/langtools/test/tools/javac/6558548/T6558548_6.out index 551ed33e503..ad717deb1d1 100644 --- a/langtools/test/tools/javac/6558548/T6558548_6.out +++ b/langtools/test/tools/javac/6558548/T6558548_6.out @@ -1,9 +1,7 @@ -- compiler.warn.source.no.bootclasspath: 1.6 -T6558548.java:159:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException T6558548.java:168:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:239:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:249:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:291:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:298:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:177:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:248:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:258:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:300:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:307:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException 6 errors -1 warning diff --git a/langtools/test/tools/javac/6558548/T6558548_latest.out b/langtools/test/tools/javac/6558548/T6558548_latest.out index ee686cb4a6a..7db0262f986 100644 --- a/langtools/test/tools/javac/6558548/T6558548_latest.out +++ b/langtools/test/tools/javac/6558548/T6558548_latest.out @@ -1,23 +1,9 @@ T6558548.java:20:9: compiler.warn.unreachable.catch: java.io.FileNotFoundException -T6558548.java:134:9: compiler.warn.unreachable.catch: java.lang.RuntimeException -T6558548.java:142:9: compiler.warn.unreachable.catch: java.lang.RuntimeException -T6558548.java:151:9: compiler.warn.unreachable.catch.1: java.lang.InterruptedException,java.lang.RuntimeException -T6558548.java:159:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:160:9: compiler.warn.unreachable.catch: java.lang.RuntimeException T6558548.java:168:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:169:9: compiler.warn.unreachable.catch: java.lang.RuntimeException -T6558548.java:185:9: compiler.warn.unreachable.catch: java.lang.RuntimeException -T6558548.java:193:9: compiler.warn.unreachable.catch: java.lang.RuntimeException -T6558548.java:211:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:220:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:230:9: compiler.warn.unreachable.catch.1: java.lang.InterruptedException,java.lang.RuntimeException,java.lang.Error -T6558548.java:239:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:240:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:249:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:250:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:268:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:277:9: compiler.warn.unreachable.catch.1: java.lang.RuntimeException,java.lang.Error -T6558548.java:291:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException -T6558548.java:298:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:177:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:248:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:258:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:300:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException +T6558548.java:307:9: compiler.err.except.never.thrown.in.try: java.lang.InterruptedException 6 errors -15 warnings +1 warning diff --git a/langtools/test/tools/javac/diags/examples/UnreachableCatch1.java b/langtools/test/tools/javac/diags/examples/UnreachableCatch1.java index 3cf6ac32c7b..dc6a2d099ab 100644 --- a/langtools/test/tools/javac/diags/examples/UnreachableCatch1.java +++ b/langtools/test/tools/javac/diags/examples/UnreachableCatch1.java @@ -23,14 +23,21 @@ // key: compiler.warn.unreachable.catch.1 +import java.io.*; + class UnreachableCatch1 { void test() { try { - throw new IllegalArgumentException(); + if (true) { + throw new FileNotFoundException(); + } + else { + throw new EOFException(); + } } - catch(Error err) { } - catch(RuntimeException rex) { } - catch(Throwable t) { } //unreachable + catch(FileNotFoundException fnf) { } + catch(EOFException eof) { } + catch(IOException ex) { } //unreachable } } From 7fb85c5cef8c8f47a94a6c0a344c4788e5efba8e Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Fri, 29 Apr 2011 16:05:56 +0100 Subject: [PATCH 093/147] 7034495: Javac asserts on usage of wildcards in bounds Problem with intersection types and wildcards causing javac to crash Reviewed-by: jjg --- .../com/sun/tools/javac/code/Types.java | 1 + .../generics/wildcards/7034495/T7034495.java | 42 +++++++++++++++++++ .../generics/wildcards/7034495/T7034495.out | 2 + 3 files changed, 45 insertions(+) create mode 100644 langtools/test/tools/javac/generics/wildcards/7034495/T7034495.java create mode 100644 langtools/test/tools/javac/generics/wildcards/7034495/T7034495.out diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java index 2481d586a39..7aa624db28a 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java @@ -412,6 +412,7 @@ public class Types { return s.tag == BOT || s.tag == CLASS || s.tag == ARRAY || s.tag == TYPEVAR; + case WILDCARD: //we shouldn't be here - avoids crash (see 7034495) case NONE: return false; default: diff --git a/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.java b/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.java new file mode 100644 index 00000000000..eff792d5007 --- /dev/null +++ b/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7034495 + * @summary Javac asserts on usage of wildcards in bounds + * @compile/fail/ref=T7034495.out -XDrawDiagnostics T7034495.java + */ +class T7034495 { + + interface A<T> { + T foo(); + } + + interface B<T> { + T foo(); + } + + interface C<T extends A<?> & B<?>> { } + +} diff --git a/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.out b/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.out new file mode 100644 index 00000000000..39c6f7fa2a6 --- /dev/null +++ b/langtools/test/tools/javac/generics/wildcards/7034495/T7034495.out @@ -0,0 +1,2 @@ +T7034495.java:40:17: compiler.err.types.incompatible.diff.ret: T7034495.B<?>, T7034495.A<?>, foo() +1 error From ea2c9e0af0fdf831487e19c6065b32f80e7f590b Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Fri, 29 Apr 2011 16:06:28 +0100 Subject: [PATCH 094/147] 6550655: com.sun.tools.javac.code.Symbol$CompletionFailure Accessing a non-existing enum constant from an annotation whose class is available results in an internal error Reviewed-by: jjg --- .../com/sun/tools/javac/comp/Annotate.java | 19 +- .../com/sun/tools/javac/jvm/ClassReader.java | 31 ++- .../tools/javac/resources/compiler.properties | 12 +- .../javac/annotations/6550655/T6550655.java | 191 ++++++++++++++++++ .../tools/javac/diags/examples.not-yet.txt | 3 +- 5 files changed, 238 insertions(+), 18 deletions(-) create mode 100644 langtools/test/tools/javac/annotations/6550655/T6550655.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java index e165d214ce0..3d13527da8c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java @@ -168,11 +168,11 @@ public class Annotate { } JCIdent left = (JCIdent)assign.lhs; Symbol method = rs.resolveQualifiedMethod(left.pos(), - env, - a.type, - left.name, - List.<Type>nil(), - null); + env, + a.type, + left.name, + List.<Type>nil(), + null); left.sym = method; left.type = method.type; if (method.owner != a.type.tsym) @@ -190,6 +190,15 @@ public class Annotate { Attribute enterAttributeValue(Type expected, JCExpression tree, Env<AttrContext> env) { + //first, try completing the attribution value sym - if a completion + //error is thrown, we should recover gracefully, and display an + //ordinary resolution diagnostic. + try { + expected.tsym.complete(); + } catch(CompletionFailure e) { + log.error(tree.pos(), "cant.resolve", Kinds.kindName(e.sym), e.sym); + return new Attribute.Error(expected); + } if (expected.isPrimitive() || types.isSameType(expected, syms.stringType)) { Type result = attr.attribExpr(tree, env, expected); if (result.isErroneous()) diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java index a259929afd3..2b61afa69c8 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java +++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java @@ -1609,18 +1609,31 @@ public class ClassReader implements Completer { // type.tsym.flatName() should == proxy.enumFlatName TypeSymbol enumTypeSym = proxy.enumType.tsym; VarSymbol enumerator = null; - for (Scope.Entry e = enumTypeSym.members().lookup(proxy.enumerator); - e.scope != null; - e = e.next()) { - if (e.sym.kind == VAR) { - enumerator = (VarSymbol)e.sym; - break; + CompletionFailure failure = null; + try { + for (Scope.Entry e = enumTypeSym.members().lookup(proxy.enumerator); + e.scope != null; + e = e.next()) { + if (e.sym.kind == VAR) { + enumerator = (VarSymbol)e.sym; + break; + } } } + catch (CompletionFailure ex) { + failure = ex; + } if (enumerator == null) { - log.error("unknown.enum.constant", - currentClassFile, enumTypeSym, proxy.enumerator); - result = new Attribute.Error(enumTypeSym.type); + if (failure != null) { + log.warning("unknown.enum.constant.reason", + currentClassFile, enumTypeSym, proxy.enumerator, + failure.getDiagnostic()); + } else { + log.warning("unknown.enum.constant", + currentClassFile, enumTypeSym, proxy.enumerator); + } + result = new Attribute.Enum(enumTypeSym.type, + new VarSymbol(0, proxy.enumerator, syms.botType, enumTypeSym)); } else { result = new Attribute.Enum(enumTypeSym.type, enumerator); } diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties index 3aa5a4331cb..c309248f24a 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties @@ -762,9 +762,6 @@ compiler.err.unclosed.comment=\ compiler.err.unclosed.str.lit=\ unclosed string literal -compiler.err.unknown.enum.constant=\ - in class file {0}: unknown enum constant {1}.{2} - # 0: name compiler.err.unsupported.encoding=\ unsupported encoding: {0} @@ -1307,6 +1304,15 @@ compiler.warn.annotation.method.not.found=\ compiler.warn.annotation.method.not.found.reason=\ Cannot find annotation method ''{1}()'' in type ''{0}'': {2} +# 0: symbol, 1: name +compiler.warn.unknown.enum.constant=\ + unknown enum constant {1}.{2} + +# 0: symbol, 1: name, 2: message segment +compiler.warn.unknown.enum.constant.reason=\ + unknown enum constant {1}.{2}\n\ + reason: {3} + # 0: type, 1: type compiler.warn.raw.class.use=\ found raw type: {0}\n\ diff --git a/langtools/test/tools/javac/annotations/6550655/T6550655.java b/langtools/test/tools/javac/annotations/6550655/T6550655.java new file mode 100644 index 00000000000..2512ed240fd --- /dev/null +++ b/langtools/test/tools/javac/annotations/6550655/T6550655.java @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 6550655 + * @summary javac crashes when compiling against an annotated class + */ + +import java.io.File; +import java.net.URI; +import java.util.Arrays; + +import javax.tools.Diagnostic; +import javax.tools.DiagnosticListener; +import javax.tools.JavaCompiler; +import javax.tools.JavaCompiler.CompilationTask; +import javax.tools.JavaFileObject; +import javax.tools.SimpleJavaFileObject; +import javax.tools.ToolProvider; + +public class T6550655 { + + JavaCompiler javacTool; + File testDir; + TestKind testKind; + EnumActionKind actionKind; + + String testSource = "enum E { NORTH, SOUTH, WEST, EAST; }\n" + + "@I(val = E.NORTH)class A {}\n" + + "@interface I { E val(); }"; + + T6550655(JavaCompiler javacTool, File testDir, TestKind testKind, EnumActionKind actionKind) { + this.javacTool = javacTool; + this.testDir = testDir; + this.testKind = testKind; + this.actionKind = actionKind; + } + + void test() { + testDir.mkdirs(); + compile(null, new JavaSource("Test.java", testSource)); + actionKind.doAction(this); + compile(new DiagnosticChecker(), testKind.source); + } + + void compile(DiagnosticChecker dc, JavaSource... sources) { + try { + CompilationTask ct = javacTool.getTask(null, null, dc, + Arrays.asList("-d", testDir.getAbsolutePath(), "-cp", testDir.getAbsolutePath()), + null, Arrays.asList(sources)); + ct.call(); + } + catch (Exception e) { + error("Internal compilation error"); + } + } + + void replaceEnum(String newSource) { + compile(null, new JavaSource("Replace.java", newSource)); + }; + + void removeEnum() { + File enumClass = new File(testDir, "E.class"); + if (!enumClass.exists()) { + error("Expected file E.class does not exists in folder " + testDir); + } + enumClass.delete(); + }; + + void error(String msg) { + System.err.println(msg); + nerrors++; + } + + class DiagnosticChecker implements DiagnosticListener<JavaFileObject> { + + String[][] expectedKeys = new String[][] { + // DIRECT, INDIRECT + {/*REPLACE1*/ "compiler.err.cant.resolve.location" , "compiler.warn.unknown.enum.constant" }, + {/*REPLACE2*/ "compiler.err.cant.resolve.location.args", "compiler.warn.annotation.method.not.found" }, + {/*REMOVE*/ "compiler.err.cant.resolve" , "compiler.warn.unknown.enum.constant.reason" } }; + + String keyToIgnore = "compiler.err.attribute.value.must.be.constant"; + + public void report(Diagnostic<? extends JavaFileObject> diagnostic) { + String expectedCode = expectedKeys[actionKind.ordinal()][testKind.ordinal()]; + if (!diagnostic.getCode().equals(keyToIgnore) && + !diagnostic.getCode().equals(expectedCode)) { + error("Unexpected diagnostic" + + "\nfound " + diagnostic.getCode() + + "\nexpected " + expectedCode + + "\ntestKind " + testKind + + "\nactionKind " + actionKind); + } + } + } + + //global declarations + + enum EnumActionKind { + REPLACE1("enum E { SOUTH, WEST, EAST; }") { + @Override + void doAction(T6550655 test) { + test.replaceEnum(optionalSource); + } + }, + REPLACE2("@interface I { E valNew() default E.EAST; }") { + @Override + void doAction(T6550655 test) { + test.replaceEnum(optionalSource); + } + }, + REMOVE(null) { + @Override + void doAction(T6550655 test) { test.removeEnum(); } + }; + + String optionalSource; + + private EnumActionKind(String optionalSource) { + this.optionalSource = optionalSource; + } + + abstract void doAction(T6550655 test); + } + + enum TestKind { + DIRECT("@I(val = E.NORTH)class C1 {}"), + INDIRECT("class C2 { A a; }"); + + JavaSource source; + + private TestKind(final String code) { + this.source = new JavaSource("Test.java", code); + } + } + + public static void main(String[] args) throws Exception { + String SCRATCH_DIR = System.getProperty("user.dir"); + JavaCompiler javacTool = ToolProvider.getSystemJavaCompiler(); + int n = 0; + for (TestKind testKind : TestKind.values()) { + for (EnumActionKind actionKind : EnumActionKind.values()) { + File testDir = new File(SCRATCH_DIR, "test"+n); + new T6550655(javacTool, testDir, testKind, actionKind).test(); + n++; + } + } + if (nerrors > 0) { + throw new AssertionError("Some errors have been detected"); + } + } + + static class JavaSource extends SimpleJavaFileObject { + + String source; + + public JavaSource(String filename, String source) { + super(URI.create("myfo:/" + filename), JavaFileObject.Kind.SOURCE); + this.source = source; + } + + @Override + public CharSequence getCharContent(boolean ignoreEncodingErrors) { + return source; + } + } + + static int nerrors = 0; +} diff --git a/langtools/test/tools/javac/diags/examples.not-yet.txt b/langtools/test/tools/javac/diags/examples.not-yet.txt index 0395228f32c..199e26eae26 100644 --- a/langtools/test/tools/javac/diags/examples.not-yet.txt +++ b/langtools/test/tools/javac/diags/examples.not-yet.txt @@ -41,7 +41,6 @@ compiler.err.type.var.more.than.once # UNUSED compiler.err.type.var.more.than.once.in.result # UNUSED compiler.err.undetermined.type compiler.err.unexpected.type -compiler.err.unknown.enum.constant # in bad class file compiler.err.unsupported.cross.fp.lit # Scanner: host system dependent compiler.err.wrong.target.for.polymorphic.signature.definition # Transitional 292 compiler.misc.assignment.from.super-bound @@ -112,3 +111,5 @@ compiler.warn.proc.type.already.exists # JavacFiler: just menti compiler.warn.unchecked.assign # DEAD, replaced by compiler.misc.unchecked.assign compiler.warn.unchecked.cast.to.type # DEAD, replaced by compiler.misc.unchecked.cast.to.type compiler.warn.unexpected.archive.file # Paths: zip file with unknown extn +compiler.warn.unknown.enum.constant # in bad class file +compiler.warn.unknown.enum.constant.reason # in bad class file From be710bc66d6727dec9f2b813c28498595263052d Mon Sep 17 00:00:00 2001 From: Mandy Chung <mchung@openjdk.org> Date: Fri, 29 Apr 2011 08:51:34 -0700 Subject: [PATCH 095/147] 7039809: Remove @ConstructorProperties annotation from java.io.File class Reviewed-by: alanb, malenkov --- jdk/src/share/classes/java/io/File.java | 2 - .../java/beans/XMLEncoder/java_io_File.java | 47 ------------------- 2 files changed, 49 deletions(-) delete mode 100644 jdk/test/java/beans/XMLEncoder/java_io_File.java diff --git a/jdk/src/share/classes/java/io/File.java b/jdk/src/share/classes/java/io/File.java index 1bfc0c1837e..4b9d389a2d0 100644 --- a/jdk/src/share/classes/java/io/File.java +++ b/jdk/src/share/classes/java/io/File.java @@ -25,7 +25,6 @@ package java.io; -import java.beans.ConstructorProperties; import java.net.URI; import java.net.URL; import java.net.MalformedURLException; @@ -247,7 +246,6 @@ public class File * @throws NullPointerException * If the <code>pathname</code> argument is <code>null</code> */ - @ConstructorProperties("path") public File(String pathname) { if (pathname == null) { throw new NullPointerException(); diff --git a/jdk/test/java/beans/XMLEncoder/java_io_File.java b/jdk/test/java/beans/XMLEncoder/java_io_File.java deleted file mode 100644 index 252377bb7e2..00000000000 --- a/jdk/test/java/beans/XMLEncoder/java_io_File.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 6708550 - * @summary Tests File encoding - * @author Sergey Malenkov - */ - -import java.io.File; - -public final class java_io_File extends AbstractTest<File> { - public static void main(String[] args) { - new java_io_File().test(true); - } - - @Override - protected File getObject() { - return new File("test.txt"); // NON-NLS: local file - } - - @Override - protected File getAnotherObject() { - return new File("/pub/demo/"); // NON-NLS: path - } -} From 344a758c27c13599a971f7f1a1ccd708cd0ce721 Mon Sep 17 00:00:00 2001 From: Kelly O'Hair <ohair@openjdk.org> Date: Fri, 29 Apr 2011 10:58:15 -0700 Subject: [PATCH 096/147] 7040147: jaxp 1.4.5 jdk7 integration Reviewed-by: joehw --- jaxp/jaxp.properties | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/jaxp/jaxp.properties b/jaxp/jaxp.properties index b6df2a316b6..03f2ded487e 100644 --- a/jaxp/jaxp.properties +++ b/jaxp/jaxp.properties @@ -25,13 +25,13 @@ drops.master.copy.base=${drops.dir} -jaxp_src.bundle.name=jaxp-1_4_5-dev1.zip -jaxp_src.bundle.md5.checksum=53c95613c29852a12b93e7249f1aa227 +jaxp_src.bundle.name=jaxp-1_4_5.zip +jaxp_src.bundle.md5.checksum=485e731f26f35d4efe05a63c57104374 jaxp_src.master.bundle.dir=${drops.master.copy.base} -jaxp_src.master.bundle.url.base=http://download.java.net/jaxp/1.4.5/dev +jaxp_src.master.bundle.url.base=http://download.java.net/jaxp/1.4.5 -jaxp_tests.bundle.name=jaxp-1_4_5-dev1-unittests.zip -jaxp_tests.bundle.md5.checksum=754aaba2f4944f69bfea91dec11daf4c +jaxp_tests.bundle.name=jaxp-1_4_5-unittests.zip +jaxp_tests.bundle.md5.checksum=fda9b9ad17c459880c077df6ecc7df80 jaxp_tests.master.bundle.dir=${drops.master.copy.base} -jaxp_tests.master.bundle.url.base=http://download.java.net/jaxp/1.4.5/dev +jaxp_tests.master.bundle.url.base=http://download.java.net/jaxp/1.4.5 From 6b348af4c0a33f84fd73253bfa4efcaa78942816 Mon Sep 17 00:00:00 2001 From: Jim Graham <flar@openjdk.org> Date: Fri, 29 Apr 2011 10:58:33 -0700 Subject: [PATCH 097/147] 6522514: Extending Arc2D.Double and serializing the object causes InvalidClassException Reviewed-by: prr --- jdk/src/share/classes/java/awt/geom/Arc2D.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jdk/src/share/classes/java/awt/geom/Arc2D.java b/jdk/src/share/classes/java/awt/geom/Arc2D.java index 86653be120c..802ec5a5297 100644 --- a/jdk/src/share/classes/java/awt/geom/Arc2D.java +++ b/jdk/src/share/classes/java/awt/geom/Arc2D.java @@ -681,7 +681,7 @@ public abstract class Arc2D extends RectangularShape { * @see java.awt.geom.Arc2D.Float * @see java.awt.geom.Arc2D.Double */ - Arc2D() { + protected Arc2D() { this(OPEN); } From f1c12a7da405fd0d06e56392d23cbe23ecbdb721 Mon Sep 17 00:00:00 2001 From: Suchen Chien <schien@openjdk.org> Date: Fri, 29 Apr 2011 11:52:58 -0700 Subject: [PATCH 098/147] 6903609: Max memory of 896 may be too large for typical windows developer environment Reviewed-by: ksrini, katleman --- jdk/make/common/shared/Platform.gmk | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/jdk/make/common/shared/Platform.gmk b/jdk/make/common/shared/Platform.gmk index 3998a2a24fc..97cbc6ee785 100644 --- a/jdk/make/common/shared/Platform.gmk +++ b/jdk/make/common/shared/Platform.gmk @@ -428,8 +428,6 @@ endif # Machines with 512Mb or less of real memory are considered low memory # build machines and adjustments will be made to prevent excessing # system swapping during the build. -# If we don't know, assume 512. Subtract 128 from MB for VM MAX. -# Don't set VM max over 1024-128=896. ifeq ($(JDK_HAS_MEM_INFO),) JDK_HAS_MEM_INFO=true export JDK_HAS_MEM_INFO @@ -440,18 +438,8 @@ ifeq ($(JDK_HAS_MEM_INFO),) else \ echo "false"; \ fi) - MAX_VM_MEMORY := $(shell \ - if [ $(MB_OF_MEMORY) -le 1024 ] ; then \ - expr $(MB_OF_MEMORY) '-' 128 2> $(DEV_NULL) ; \ - else \ - echo "896"; \ - fi) - MIN_VM_MEMORY := $(shell \ - if [ $(MAX_VM_MEMORY) -le 128 ] ; then \ - expr $(MAX_VM_MEMORY) '-' 8 2> $(DEV_NULL) ; \ - else \ - echo "128"; \ - fi) + MAX_VM_MEMORY := 512 + MIN_VM_MEMORY := $(MAX_VM_MEMORY) else MB_OF_MEMORY := unknown LOW_MEMORY_MACHINE := true From c23ab1c2235c27770de901639cd3d7971201acd4 Mon Sep 17 00:00:00 2001 From: Valerie Peng <valeriep@openjdk.org> Date: Fri, 29 Apr 2011 13:31:13 -0700 Subject: [PATCH 099/147] 7036252: sunpkcs11-solaris.cfg needs a review Updated the disabled mechanisms section since Solaris bug 6306708 has been fixed. Reviewed-by: mullan --- jdk/src/share/lib/security/sunpkcs11-solaris.cfg | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/jdk/src/share/lib/security/sunpkcs11-solaris.cfg b/jdk/src/share/lib/security/sunpkcs11-solaris.cfg index d0b34ca134d..daf03a447a3 100644 --- a/jdk/src/share/lib/security/sunpkcs11-solaris.cfg +++ b/jdk/src/share/lib/security/sunpkcs11-solaris.cfg @@ -14,6 +14,8 @@ handleStartupErrors = ignoreAll attributes = compatibility disabledMechanisms = { +# the following mechanisms are disabled due to lack of digest cloning support +# need to fix 6414899 first CKM_MD2 CKM_MD5 CKM_SHA_1 @@ -21,9 +23,6 @@ disabledMechanisms = { CKM_SHA384 CKM_SHA512 CKM_DSA_KEY_PAIR_GEN -# KEY_AND_MAC_DERIVE disabled due to Solaris bug 6306708 - CKM_SSL3_KEY_AND_MAC_DERIVE - CKM_TLS_KEY_AND_MAC_DERIVE # the following mechanisms are disabled due to performance issues (Solaris bug 6337157) CKM_DSA_SHA1 CKM_MD5_RSA_PKCS From 3cb767db944363e87d664992f31f8827fd0b4454 Mon Sep 17 00:00:00 2001 From: Mike Duigou <mduigou@openjdk.org> Date: Fri, 29 Apr 2011 14:09:46 -0700 Subject: [PATCH 100/147] 7040572: Fix broken java/nio/charset/StandardCharset/Standard.java and add more tests Reviewed-by: alanb --- .../nio/charset/StandardCharset/Standard.java | 45 ++++++++++++++++--- 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/jdk/test/java/nio/charset/StandardCharset/Standard.java b/jdk/test/java/nio/charset/StandardCharset/Standard.java index a1b71a39c90..cae083ed539 100644 --- a/jdk/test/java/nio/charset/StandardCharset/Standard.java +++ b/jdk/test/java/nio/charset/StandardCharset/Standard.java @@ -29,10 +29,20 @@ * @run main Standard */ +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.io.*; import java.nio.charset.*; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; public class Standard { + private final static String standardCharsets[] = { + "US-ASCII", "ISO-8859-1", "UTF-8", + "UTF-16BE", "UTF-16LE", "UTF-16" }; + public static void realMain(String[] args) { check(StandardCharset.US_ASCII instanceof Charset); check(StandardCharset.ISO_8859_1 instanceof Charset); @@ -41,12 +51,35 @@ public class Standard { check(StandardCharset.UTF_16LE instanceof Charset); check(StandardCharset.UTF_16 instanceof Charset); - check("US-ASCII".equals(StandardCharset.US_ASCII.name()); - check("ISO-8859-1".equals(StandardCharset.ISO_8859_1.name()); - check("UTF-8".equals(StandardCharset.UTF_8.name()); - check("UTF-16BE".equals(StandardCharset.UTF_16BE.name()); - check("UTF-16LE".equals(StandardCharset.UTF_16LE.name()); - check("UTF-16".equals(StandardCharset.UTF_16.name()); + check("US-ASCII".equals(StandardCharset.US_ASCII.name())); + check("ISO-8859-1".equals(StandardCharset.ISO_8859_1.name())); + check("UTF-8".equals(StandardCharset.UTF_8.name())); + check("UTF-16BE".equals(StandardCharset.UTF_16BE.name())); + check("UTF-16LE".equals(StandardCharset.UTF_16LE.name())); + check("UTF-16".equals(StandardCharset.UTF_16.name())); + + Set<String> charsets = new HashSet<>(); + Field standardCharsetFields[] = StandardCharset.class.getFields(); + + for(Field charsetField : standardCharsetFields) { + check(StandardCharset.class == charsetField.getDeclaringClass()); + check(Modifier.isFinal(charsetField.getModifiers())); + check(Modifier.isStatic(charsetField.getModifiers())); + check(Modifier.isPublic(charsetField.getModifiers())); + Object value; + try { + value = charsetField.get(null); + } catch(IllegalAccessException failure) { + unexpected(failure); + continue; + } + check(value instanceof Charset); + charsets.add(((Charset)value).name()); + } + + check(charsets.containsAll(Arrays.asList(standardCharsets))); + charsets.removeAll(Arrays.asList(standardCharsets)); + check(charsets.isEmpty()); } //--------------------- Infrastructure --------------------------- From 589a17bd790d360f3b15edcd5ed24845a22dcebb Mon Sep 17 00:00:00 2001 From: Jim Graham <flar@openjdk.org> Date: Fri, 29 Apr 2011 16:27:34 -0700 Subject: [PATCH 101/147] 6982632: closed/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java fails Reviewed-by: prr --- .../MTGraphicsAccessTest.java | 361 ++++++++++++++++++ 1 file changed, 361 insertions(+) create mode 100644 jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java diff --git a/jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java b/jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java new file mode 100644 index 00000000000..569af1f3aaf --- /dev/null +++ b/jdk/test/java/awt/Graphics2D/MTGraphicsAccessTest/MTGraphicsAccessTest.java @@ -0,0 +1,361 @@ +/* + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + @test + @bug 5089429 6982632 + @summary Checks that we don't crash if rendering operations and state + changes are performed on a graphics context from different threads. + + @author Dmitri.Trembovetski@sun.com area=Graphics + @run main MTGraphicsAccessTest + */ + +import java.awt.*; +import java.awt.image.*; +import java.awt.geom.*; + +public class MTGraphicsAccessTest { + + // in seconds + static final long STANDALONE_RUN_TIME = 20; + static final long JTREG_RUN_TIME = 7; + + static boolean standaloneMode; + static boolean allowExceptions = true; + static long testRunTime; + + volatile boolean done; + volatile int stillRunning; + volatile int numexceptions; + + Graphics2D sharedGraphics; + BufferedImage sharedBI = + new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB); + + static final Paint colors[] = { + Color.red, + new Color(0x7f, 0xff, 0x00, 0x7f), + new GradientPaint(0, 0, Color.red, + 50, 50, new Color(0x7f, 0xff, 0x00, 0x7f)), + }; + static final Font fonts[] = { + new Font("Dialog", Font.PLAIN, 12), + new Font("Dialog", Font.BOLD, 16), + new Font("Dialog", Font.ITALIC, 18), + }; + static final AlphaComposite comps[] = { + AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0f), + AlphaComposite.Src, + AlphaComposite.Xor, + AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f), + null, + }; + static final Stroke strokes[] = { + new BasicStroke(), + new BasicStroke(0.0f), + new BasicStroke(2.0f), + new BasicStroke(2.0f, BasicStroke.CAP_ROUND, + BasicStroke.JOIN_BEVEL), + new BasicStroke(5.0f, BasicStroke.CAP_SQUARE, + BasicStroke.JOIN_ROUND), + new BasicStroke(0.0f, BasicStroke.CAP_ROUND, + BasicStroke.JOIN_ROUND, 0, + new float[]{0,6,0,6}, 0), + }; + static final AffineTransform transforms[] = { + new AffineTransform(), + AffineTransform.getRotateInstance(10.0), + AffineTransform.getShearInstance(10.0, 4.0), + AffineTransform.getScaleInstance(1.1, 1.2), + AffineTransform.getScaleInstance(3.0, 2.0), + }; + + public MTGraphicsAccessTest() { + BufferedImage bi = + new BufferedImage(50, 50, BufferedImage.TYPE_INT_RGB); + sharedGraphics = (Graphics2D)bi.getGraphics(); + + done = false; + numexceptions = 0; + + for (int i = 0; i < (standaloneMode ? stateChangers.length : 3); i++) { + (new TesterThread(stateChangers[i])).start(); + } + for (int i = 0; i < (standaloneMode ? renderTests.length : 5); i++) { + (new TesterThread(renderTests[i])).start(); + } + + mysleep(testRunTime); + done = true; + while (stillRunning > 0) { mysleep(500); } + + if (numexceptions == 0) { + System.err.println("Test passed"); + } else if (!allowExceptions) { + throw new RuntimeException("Test failed with "+ + numexceptions+" exceptions"); + } else { + System.err.println("Test finished with "+ + numexceptions+" exceptions"); + } + } + + private void mysleep(long time) { + try { + // add +/-5ms variance to increase randomness + Thread.sleep(time + (long)(5 - Math.random()*10)); + } catch (InterruptedException e) {}; + } + + public static void usage(String message) { + if (message != null) { + System.err.println(message); + } + System.err.println("Usage: MTGraphicsAccessTest [-full] "+ + "[-time N/forever] [-help]"); + System.err.println(" -full: run full suite of tests "+ + "(default: limited number of tests is run)"); + System.err.println(" -time N: test duration in seconds/forever"+ + " (default: "+JTREG_RUN_TIME+"s for the short suite, "+ + STANDALONE_RUN_TIME+"s for the full suite)"); + System.err.println(" -help: print this help page"); + System.exit(1); + } + + public static void main(String[] args) { + boolean testRunSet = false; + for (int i = 0; i < args.length; i++) { + if ("-full".equals(args[i])) { + standaloneMode = true; + System.err.println("Running complete list of tests"); + } else if ("-noexc".equals(args[i])) { + allowExceptions = false; + } else if ("-time".equals(args[i])) { + try { + String time = args[++i]; + if ("forever".equals(time)) { + testRunTime = (Long.MAX_VALUE - 20)/1000; + } else { + testRunTime = 1000*Integer.parseInt(time); + } + testRunSet = true; + } catch (NumberFormatException e) { + usage("Can't parse number of seconds: " + args[i]); + } catch (ArrayIndexOutOfBoundsException e1) { + usage("Missing the 'seconds' argument for -time parameter"); + } + } else if ("-help".equals(args[i])) { + usage(null); + } else { + usage("Unknown argument:" + args[i]); + } + } + + if (!testRunSet) { + testRunTime = 1000 * + (standaloneMode ? STANDALONE_RUN_TIME : JTREG_RUN_TIME); + } + + System.err.println("Approximate test run time: "+ + testRunTime/1000+" seconds"); + + new MTGraphicsAccessTest(); + } + + class TesterThread extends Thread { + Runnable testRunnable; + + public TesterThread(Runnable testRunnable) { + stillRunning++; + this.testRunnable = testRunnable; + } + + public void run() { + try { + while (!done) { + try { + testRunnable.run(); + yield(); + } catch (Throwable t) { + numexceptions++; + t.printStackTrace(); + } + } + } finally { + stillRunning--; + } + } + } + + final Runnable stateChangers[] = { + new Runnable() { + public void run() { + sharedGraphics.setClip(10, 10, 30, 30); + mysleep(10); + } + }, + new Runnable() { + public void run() { + sharedGraphics.setClip(10, 10, 30, 30); + mysleep(10); + } + }, + new Runnable() { + int c = 0; + public void run() { + sharedGraphics.setPaint(colors[c++ % colors.length]); + mysleep(10); + } + }, + new Runnable() { + boolean AA = false; + public void run() { + if (AA) { + sharedGraphics.setRenderingHint( + RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_ON); + } else { + sharedGraphics.setRenderingHint( + RenderingHints.KEY_ANTIALIASING, + RenderingHints.VALUE_ANTIALIAS_OFF); + } + AA = !AA; + mysleep(10); + } + }, + new Runnable() { + int t = 0; + public void run() { + sharedGraphics.setTransform( + transforms[t++ % transforms.length]); + mysleep(10); + } + }, + new Runnable() { + int c = 0; + public void run() { + AlphaComposite comp = comps[c++ % comps.length]; + if (comp == null) { + sharedGraphics.setXORMode(Color.green); + } else { + sharedGraphics.setComposite(comp); + } + mysleep(10); + } + }, + new Runnable() { + int s = 0; + public void run() { + sharedGraphics.setStroke(strokes[s++ % strokes.length]); + mysleep(10); + } + }, + new Runnable() { + int f = 0; + public void run() { + sharedGraphics.setFont(fonts[f++ % fonts.length]); + mysleep(10); + } + }, + }; + + final Runnable renderTests[] = { + new Runnable() { + public void run() { + sharedGraphics.drawLine(10, 10, 30, 30); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawLine(10, 10, 30, 30); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawRect(10, 10, 30, 30); + } + }, + new Runnable() { + public void run() { + sharedGraphics.fillRect(10, 10, 30, 30); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawString("Stuff", 10, 10); + } + }, + new Runnable() { + public void run() { + sharedGraphics.draw3DRect(10, 10, 30, 30, true); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawImage(sharedBI, 10, 10, null); + } + }, + new Runnable() { + public void run() { + sharedGraphics.fill3DRect(10, 10, 30, 30, false); + } + }, + // REMIND: copyArea doesn't work when transform is set.. + // new Runnable() { + // public void run() { + // sharedGraphics.copyArea(10, 10, 30, 30, 20, 20); + // } + // }, + new Runnable() { + public void run() { + sharedGraphics.drawRoundRect(10, 10, 30, 30, 20, 20); + } + }, + new Runnable() { + public void run() { + sharedGraphics.fillRoundRect(10, 10, 30, 30, 20, 20); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawArc(10, 10, 30, 30, 0, 90); + } + }, + new Runnable() { + public void run() { + sharedGraphics.fillArc(10, 10, 30, 30, 0, 90); + } + }, + new Runnable() { + public void run() { + sharedGraphics.drawOval(10, 10, 30, 30); + } + }, + new Runnable() { + public void run() { + sharedGraphics.fillOval(10, 10, 30, 30); + } + } + }; +} From fcbd7a77c40eec49b469a9a7d140678d5ed3076a Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Sat, 30 Apr 2011 11:57:46 +0100 Subject: [PATCH 102/147] 7039931: Project Coin: diamond inference fail with generic constructor explicit type-arguments Diamond should be disallowed in cases where explicit generic constructor parameters are specified Reviewed-by: jjg --- .../com/sun/tools/javac/comp/Check.java | 6 +++ .../tools/javac/resources/compiler.properties | 3 ++ .../examples/DiamondAndExplicitParams.java} | 22 ++++------ .../GenericConstructorAndDiamondTest.java | 36 +++++++++++---- .../javac/generics/diamond/7030150/Neg01.java | 17 ------- .../javac/generics/diamond/7030150/Neg01.out | 3 -- .../javac/generics/diamond/7030150/Neg02.java | 17 ------- .../javac/generics/diamond/7030150/Neg02.out | 3 -- .../javac/generics/diamond/7030150/Neg03.java | 17 ------- .../javac/generics/diamond/7030150/Neg03.out | 3 -- .../javac/generics/diamond/7030150/Pos01.java | 44 ------------------- 11 files changed, 45 insertions(+), 126 deletions(-) rename langtools/test/tools/javac/{generics/diamond/7030150/Pos02.java => diags/examples/DiamondAndExplicitParams.java} (77%) delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg01.java delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg01.out delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg02.java delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg02.out delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg03.java delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Neg03.out delete mode 100644 langtools/test/tools/javac/generics/diamond/7030150/Pos01.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java index c8537ef905e..fd0545604a6 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java +++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java @@ -681,6 +681,12 @@ public class Check { "cant.apply.diamond.1", t, diags.fragment("diamond.non.generic", t)); return types.createErrorType(t); + } else if (tree.typeargs != null && + tree.typeargs.nonEmpty()) { + log.error(tree.clazz.pos(), + "cant.apply.diamond.1", + t, diags.fragment("diamond.and.explicit.params", t)); + return types.createErrorType(t); } else { return t; } diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties index c309248f24a..11885d9427c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties @@ -1624,6 +1624,9 @@ compiler.misc.diamond=\ compiler.misc.diamond.non.generic=\ cannot use ''<>'' with non-generic class {0} +compiler.misc.diamond.and.explicit.params=\ + cannot use ''<>'' with explicit type parameters for constructor + # 0: type, 1: list of type compiler.misc.explicit.param.do.not.conform.to.bounds=\ explicit type argument {0} does not conform to declared bound(s) {1} diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Pos02.java b/langtools/test/tools/javac/diags/examples/DiamondAndExplicitParams.java similarity index 77% rename from langtools/test/tools/javac/generics/diamond/7030150/Pos02.java rename to langtools/test/tools/javac/diags/examples/DiamondAndExplicitParams.java index 868a51fd03f..8ab3cf5234c 100644 --- a/langtools/test/tools/javac/generics/diamond/7030150/Pos02.java +++ b/langtools/test/tools/javac/diags/examples/DiamondAndExplicitParams.java @@ -21,20 +21,14 @@ * questions. */ -/* - * @test - * @bug 7030150 - * @summary Type inference for generic instance creation failed for formal type parameter - * check that diamond in return context works w/o problems - * @compile Pos02.java - */ +// key: compiler.misc.diamond.and.explicit.params +// key: compiler.err.cant.apply.diamond.1 -class Pos02<X> { - - Pos02(X x) {} - - - Pos02<X> test(X x) { - return new Pos02<>(x); +class DiamondAndAnonClass { + static class Foo<X> { + <Z> Foo() {} + } + void m() { + Foo<String> foo = new <Integer> Foo<>(); } } diff --git a/langtools/test/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java b/langtools/test/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java index b458c26342f..13a47920edb 100644 --- a/langtools/test/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java +++ b/langtools/test/tools/javac/generics/diamond/7030150/GenericConstructorAndDiamondTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 7030150 + * @bug 7030150 7039931 * @summary Type inference for generic instance creation failed for formal type parameter */ @@ -125,6 +125,14 @@ public class GenericConstructorAndDiamondTest { default: return false; } } + + boolean matches(TypeArgumentKind other) { + switch (other) { + case STRING: return this != INTEGER; + case INTEGER: return this != STRING; + default: return true; + } + } } enum ArgumentKind { @@ -149,9 +157,11 @@ public class GenericConstructorAndDiamondTest { for (TypeArgumentKind declArgKind : TypeArgumentKind.values()) { for (TypeArgArity arity : TypeArgArity.values()) { for (TypeArgumentKind useArgKind : TypeArgumentKind.values()) { - for (ArgumentKind argKind : ArgumentKind.values()) { - new GenericConstructorAndDiamondTest(boundKind, constructorKind, - declArgKind, arity, useArgKind, argKind).run(comp, fm); + for (TypeArgumentKind diamondArgKind : TypeArgumentKind.values()) { + for (ArgumentKind argKind : ArgumentKind.values()) { + new GenericConstructorAndDiamondTest(boundKind, constructorKind, + declArgKind, arity, useArgKind, diamondArgKind, argKind).run(comp, fm); + } } } } @@ -165,18 +175,21 @@ public class GenericConstructorAndDiamondTest { TypeArgumentKind declTypeArgumentKind; TypeArgArity useTypeArgArity; TypeArgumentKind useTypeArgumentKind; + TypeArgumentKind diamondTypeArgumentKind; ArgumentKind argumentKind; JavaSource source; DiagnosticChecker diagChecker; GenericConstructorAndDiamondTest(BoundKind boundKind, ConstructorKind constructorKind, TypeArgumentKind declTypeArgumentKind, TypeArgArity useTypeArgArity, - TypeArgumentKind useTypeArgumentKind, ArgumentKind argumentKind) { + TypeArgumentKind useTypeArgumentKind, TypeArgumentKind diamondTypeArgumentKind, + ArgumentKind argumentKind) { this.boundKind = boundKind; this.constructorKind = constructorKind; this.declTypeArgumentKind = declTypeArgumentKind; this.useTypeArgArity = useTypeArgArity; this.useTypeArgumentKind = useTypeArgumentKind; + this.diamondTypeArgumentKind = diamondTypeArgumentKind; this.argumentKind = argumentKind; this.source = new JavaSource(); this.diagChecker = new DiagnosticChecker(); @@ -189,7 +202,7 @@ public class GenericConstructorAndDiamondTest { "}\n" + "class Test {\n" + "void test() {\n" + - "Foo#TA1 f = new #TA2 Foo<>(#A);\n" + + "Foo#TA1 f = new #TA2 Foo<#TA3>(#A);\n" + "}\n" + "}\n"; @@ -201,6 +214,7 @@ public class GenericConstructorAndDiamondTest { replace("#CK", constructorKind.constrStr) .replace("#TA1", declTypeArgumentKind.getArgs(TypeArgArity.ONE)) .replace("#TA2", useTypeArgumentKind.getArgs(useTypeArgArity)) + .replace("#TA3", diamondTypeArgumentKind.typeargStr) .replace("#A", argumentKind.argStr); } @@ -227,9 +241,15 @@ public class GenericConstructorAndDiamondTest { boolean badMethodTypeArg = constructorKind != ConstructorKind.NON_GENERIC && !useTypeArgumentKind.matches(argumentKind); - boolean badGenericType = !boundKind.matches(declTypeArgumentKind); + boolean badExplicitParams = (useTypeArgumentKind != TypeArgumentKind.NONE && + diamondTypeArgumentKind == TypeArgumentKind.NONE) || + !boundKind.matches(diamondTypeArgumentKind); - boolean shouldFail = badActual || badArity || badMethodTypeArg || badGenericType; + boolean badGenericType = !boundKind.matches(declTypeArgumentKind) || + !diamondTypeArgumentKind.matches(declTypeArgumentKind); + + boolean shouldFail = badActual || badArity || + badMethodTypeArg || badExplicitParams || badGenericType; if (shouldFail != diagChecker.errorFound) { throw new Error("invalid diagnostics for source:\n" + diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg01.java b/langtools/test/tools/javac/generics/diamond/7030150/Neg01.java deleted file mode 100644 index 732a4af4c60..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg01.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * @test /nodynamiccopyright/ - * @bug 7030150 - * @summary Type inference for generic instance creation failed for formal type parameter - * check that explicit type-argument that causes resolution failure is rejected - * @compile/fail/ref=Neg01.out -XDrawDiagnostics Neg01.java - */ - -class Neg01 { - - static class Foo<X> { - <T> Foo(T t) {} - } - - Foo<Integer> fi1 = new <String> Foo<>(1); - Foo<Integer> fi2 = new <String> Foo<Integer>(1); -} diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg01.out b/langtools/test/tools/javac/generics/diamond/7030150/Neg01.out deleted file mode 100644 index dec4f5e7125..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg01.out +++ /dev/null @@ -1,3 +0,0 @@ -Neg01.java:15:24: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg01.Foo), (compiler.misc.infer.no.conforming.assignment.exists: X, int, java.lang.String) -Neg01.java:16:24: compiler.err.cant.apply.symbol.1: kindname.constructor, Foo, T, int, kindname.class, Neg01.Foo<X>, (compiler.misc.no.conforming.assignment.exists: int, java.lang.String) -2 errors diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg02.java b/langtools/test/tools/javac/generics/diamond/7030150/Neg02.java deleted file mode 100644 index 96bbed3483f..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg02.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * @test /nodynamiccopyright/ - * @bug 7030150 - * @summary Type inference for generic instance creation failed for formal type parameter - * check that compiler rejects bad number of explicit type-arguments - * @compile/fail/ref=Neg02.out -XDrawDiagnostics Neg02.java - */ - -class Neg02 { - - static class Foo<X> { - <T> Foo(T t) {} - } - - Foo<Integer> fi1 = new <String, Integer> Foo<>(""); - Foo<Integer> fi2 = new <String, Integer> Foo<Integer>(""); -} diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg02.out b/langtools/test/tools/javac/generics/diamond/7030150/Neg02.out deleted file mode 100644 index fdec30372a1..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg02.out +++ /dev/null @@ -1,3 +0,0 @@ -Neg02.java:15:24: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg02.Foo), (compiler.misc.arg.length.mismatch) -Neg02.java:16:24: compiler.err.cant.apply.symbol.1: kindname.constructor, Foo, T, java.lang.String, kindname.class, Neg02.Foo<X>, (compiler.misc.arg.length.mismatch) -2 errors diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg03.java b/langtools/test/tools/javac/generics/diamond/7030150/Neg03.java deleted file mode 100644 index 75258925c13..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg03.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * @test /nodynamiccopyright/ - * @bug 7030150 - * @summary Type inference for generic instance creation failed for formal type parameter - * check that explicit type-argument that does not conform to bound is rejected - * @compile/fail/ref=Neg03.out -XDrawDiagnostics Neg03.java - */ - -class Neg03 { - - static class Foo<X> { - <T extends Integer> Foo(T t) {} - } - - Foo<Integer> fi1 = new <String> Foo<>(1); - Foo<Integer> fi2 = new <String> Foo<Integer>(1); -} diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Neg03.out b/langtools/test/tools/javac/generics/diamond/7030150/Neg03.out deleted file mode 100644 index 05624f949b8..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Neg03.out +++ /dev/null @@ -1,3 +0,0 @@ -Neg03.java:15:24: compiler.err.cant.apply.diamond.1: (compiler.misc.diamond: Neg03.Foo), (compiler.misc.explicit.param.do.not.conform.to.bounds: java.lang.String, java.lang.Integer) -Neg03.java:16:24: compiler.err.cant.apply.symbol.1: kindname.constructor, Foo, T, int, kindname.class, Neg03.Foo<X>, (compiler.misc.explicit.param.do.not.conform.to.bounds: java.lang.String, java.lang.Integer) -2 errors diff --git a/langtools/test/tools/javac/generics/diamond/7030150/Pos01.java b/langtools/test/tools/javac/generics/diamond/7030150/Pos01.java deleted file mode 100644 index e5203072ee8..00000000000 --- a/langtools/test/tools/javac/generics/diamond/7030150/Pos01.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -/* - * @test - * @bug 7030150 - * @summary Type inference for generic instance creation failed for formal type parameter - * check that redundant type-arguments on non-generic constructor are accepted - * @compile Pos01.java - */ - -class Pos01 { - - static class Foo<X> { - Foo(X t) {} - } - - Foo<Integer> fi1 = new Foo<>(1); - Foo<Integer> fi2 = new Foo<Integer>(1); - Foo<Integer> fi3 = new <String> Foo<>(1); - Foo<Integer> fi4 = new <String> Foo<Integer>(1); - Foo<Integer> fi5 = new <String, String> Foo<>(1); - Foo<Integer> fi6 = new <String, String> Foo<Integer>(1); -} From 317bcf10c2f6ac7e656a73155b6223e08a56b42e Mon Sep 17 00:00:00 2001 From: Weijun Wang <weijun@openjdk.org> Date: Sun, 1 May 2011 14:22:32 +0800 Subject: [PATCH 103/147] 7040916: DynamicKeyTab test fails on Windows Reviewed-by: xuelei --- .../security/krb5/internal/ktab/KeyTab.java | 36 +++++++++---------- .../sun/security/krb5/auto/DynamicKeytab.java | 11 +++--- 2 files changed, 25 insertions(+), 22 deletions(-) diff --git a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java index ae75641e67d..3ae4afc89a8 100644 --- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java +++ b/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java @@ -92,10 +92,10 @@ public class KeyTab implements KeyTabConstants { tabName = filename; try { lastModified = new File(tabName).lastModified(); - KeyTabInputStream kis = - new KeyTabInputStream(new FileInputStream(filename)); - load(kis); - kis.close(); + try (KeyTabInputStream kis = + new KeyTabInputStream(new FileInputStream(filename))) { + load(kis); + } } catch (FileNotFoundException e) { entries.clear(); isMissing = true; @@ -439,10 +439,10 @@ public class KeyTab implements KeyTabConstants { public synchronized static KeyTab create(String name) throws IOException, RealmException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(name)); - kos.writeVersion(KRB5_KT_VNO); - kos.close(); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(name))) { + kos.writeVersion(KRB5_KT_VNO); + } return new KeyTab(name); } @@ -450,13 +450,13 @@ public class KeyTab implements KeyTabConstants { * Saves the file at the directory. */ public synchronized void save() throws IOException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(tabName)); - kos.writeVersion(kt_vno); - for (int i = 0; i < entries.size(); i++) { - kos.writeEntry(entries.elementAt(i)); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(tabName))) { + kos.writeVersion(kt_vno); + for (int i = 0; i < entries.size(); i++) { + kos.writeEntry(entries.elementAt(i)); + } } - kos.close(); } /** @@ -519,9 +519,9 @@ public class KeyTab implements KeyTabConstants { * @exception IOException. */ public synchronized void createVersion(File file) throws IOException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(file)); - kos.write16(KRB5_KT_VNO); - kos.close(); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(file))) { + kos.write16(KRB5_KT_VNO); + } } } diff --git a/jdk/test/sun/security/krb5/auto/DynamicKeytab.java b/jdk/test/sun/security/krb5/auto/DynamicKeytab.java index 256476b0b5e..2565d61d47e 100644 --- a/jdk/test/sun/security/krb5/auto/DynamicKeytab.java +++ b/jdk/test/sun/security/krb5/auto/DynamicKeytab.java @@ -30,6 +30,8 @@ import java.io.File; import java.io.FileOutputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import org.ietf.jgss.GSSException; import sun.security.jgss.GSSUtil; import sun.security.krb5.KrbException; @@ -47,8 +49,7 @@ public class DynamicKeytab { OneKDC k = new OneKDC(null); k.writeJAASConf(); - new File(OneKDC.KTAB).delete(); - + Files.delete(Paths.get(OneKDC.KTAB)); // Starts with no keytab c = Context.fromJAAS("client"); @@ -79,11 +80,13 @@ public class DynamicKeytab { connect(); // Test 5: invalid keytab file, should ignore - new FileOutputStream(OneKDC.KTAB).write("BADBADBAD".getBytes()); + try (FileOutputStream fos = new FileOutputStream(OneKDC.KTAB)) { + fos.write("BADBADBAD".getBytes()); + } connect(); // Test 6: delete keytab file, identical to revoke all - new File(OneKDC.KTAB).delete(); + Files.delete(Paths.get(OneKDC.KTAB)); try { connect(); throw new Exception("Should not success"); From 2b924057aae6e39dcf586f2e14c0b88a14963b30 Mon Sep 17 00:00:00 2001 From: Igor Nekrestyanov <igor@openjdk.org> Date: Sun, 1 May 2011 09:14:36 -0700 Subject: [PATCH 104/147] 7040803: regression: bugster fail to start Reviewed-by: mullan, weijun, ngthomas --- .../share/classes/java/util/jar/JarFile.java | 22 +- .../classes/java/util/jar/JarInputStream.java | 2 +- .../classes/java/util/jar/JarVerifier.java | 224 ++++++++++++---- .../classes/sun/security/pkcs/PKCS7.java | 176 +----------- .../classes/sun/security/pkcs/SignerInfo.java | 136 +++++++++- .../security/util/ManifestEntryVerifier.java | 4 +- .../security/util/SignatureFileManifest.java | 251 ------------------ .../security/util/SignatureFileVerifier.java | 172 ++++-------- .../jar/JarInputStream/ScanSignedJar.java | 7 +- .../TestIndexedJarWithBadSignature.java | 4 +- 10 files changed, 377 insertions(+), 621 deletions(-) delete mode 100644 jdk/src/share/classes/sun/security/util/SignatureFileManifest.java diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java index 20d0363f57a..79d0f84b7e1 100644 --- a/jdk/src/share/classes/java/util/jar/JarFile.java +++ b/jdk/src/share/classes/java/util/jar/JarFile.java @@ -37,7 +37,6 @@ import java.security.CodeSource; import sun.security.action.GetPropertyAction; import sun.security.util.ManifestEntryVerifier; import sun.misc.SharedSecrets; -import sun.security.util.SignatureFileVerifier; /** * The <code>JarFile</code> class is used to read the contents of a jar file @@ -179,7 +178,7 @@ class JarFile extends ZipFile { byte[] b = getBytes(manEntry); man = new Manifest(new ByteArrayInputStream(b)); if (!jvInitialized) { - jv = new JarVerifier(b, man); + jv = new JarVerifier(b); } } else { man = new Manifest(super.getInputStream(manEntry)); @@ -298,7 +297,10 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { String name = names[i].toUpperCase(Locale.ENGLISH); - if (SignatureFileVerifier.isBlockOrSF(name)) { + if (name.endsWith(".DSA") || + name.endsWith(".RSA") || + name.endsWith(".EC") || + name.endsWith(".SF")) { // Assume since we found a signature-related file // that the jar is signed and that we therefore // need a JarVerifier and Manifest @@ -327,17 +329,17 @@ class JarFile extends ZipFile { if (names != null) { for (int i = 0; i < names.length; i++) { JarEntry e = getJarEntry(names[i]); - if (!e.isDirectory() && - SignatureFileVerifier.isBlock(names[i])) { + if (!e.isDirectory()) { if (mev == null) { mev = new ManifestEntryVerifier (getManifestFromReference()); } - String key = names[i].substring( - 0, names[i].lastIndexOf(".")); - jv.verifyBlock(names[i], - getBytes(e), - super.getInputStream(getJarEntry(key + ".SF"))); + byte[] b = getBytes(e); + if (b != null && b.length > 0) { + jv.beginEntry(e, mev); + jv.update(b.length, b, 0, b.length, mev); + jv.update(-1, null, 0, 0, mev); + } } } } diff --git a/jdk/src/share/classes/java/util/jar/JarInputStream.java b/jdk/src/share/classes/java/util/jar/JarInputStream.java index b84219ea87a..67f27be2975 100644 --- a/jdk/src/share/classes/java/util/jar/JarInputStream.java +++ b/jdk/src/share/classes/java/util/jar/JarInputStream.java @@ -95,7 +95,7 @@ class JarInputStream extends ZipInputStream { man.read(new ByteArrayInputStream(bytes)); closeEntry(); if (doVerify) { - jv = new JarVerifier(bytes, man); + jv = new JarVerifier(bytes); mev = new ManifestEntryVerifier(man); } return (JarEntry)super.getNextEntry(); diff --git a/jdk/src/share/classes/java/util/jar/JarVerifier.java b/jdk/src/share/classes/java/util/jar/JarVerifier.java index 8c69ff5c583..4f84ac28eff 100644 --- a/jdk/src/share/classes/java/util/jar/JarVerifier.java +++ b/jdk/src/share/classes/java/util/jar/JarVerifier.java @@ -48,18 +48,35 @@ class JarVerifier { /* a table mapping names to code signers, for jar entries that have had their actual hashes verified */ - private Map verifiedSigners; + private Hashtable verifiedSigners; /* a table mapping names to code signers, for jar entries that have passed the .SF/.DSA/.EC -> MANIFEST check */ - private Map sigFileSigners; + private Hashtable sigFileSigners; + + /* a hash table to hold .SF bytes */ + private Hashtable sigFileData; + + /** "queue" of pending PKCS7 blocks that we couldn't parse + * until we parsed the .SF file */ + private ArrayList pendingBlocks; /* cache of CodeSigner objects */ private ArrayList signerCache; + /* Are we parsing a block? */ + private boolean parsingBlockOrSF = false; + + /* Are we done parsing META-INF entries? */ + private boolean parsingMeta = true; + /* Are there are files to verify? */ private boolean anyToVerify = true; + /* The output stream to use when keeping track of files we are interested + in */ + private ByteArrayOutputStream baos; + /** The ManifestDigester object */ private volatile ManifestDigester manDig; @@ -75,20 +92,20 @@ class JarVerifier { /** collect -DIGEST-MANIFEST values for blacklist */ private List manifestDigests; - /** The manifest object */ - Manifest man = null; - - public JarVerifier(byte rawBytes[], Manifest man) { - this.man = man; + public JarVerifier(byte rawBytes[]) { manifestRawBytes = rawBytes; - sigFileSigners = new HashMap(); - verifiedSigners = new HashMap(); + sigFileSigners = new Hashtable(); + verifiedSigners = new Hashtable(); + sigFileData = new Hashtable(11); + pendingBlocks = new ArrayList(); + baos = new ByteArrayOutputStream(); manifestDigests = new ArrayList(); } /** - * This method scans to see which entry we're parsing and keeps - * various state information depending on the file being parsed. + * This method scans to see which entry we're parsing and + * keeps various state information depending on what type of + * file is being parsed. */ public void beginEntry(JarEntry je, ManifestEntryVerifier mev) throws IOException @@ -112,6 +129,30 @@ class JarVerifier { * b. digest mismatch between the actual jar entry and the manifest */ + if (parsingMeta) { + String uname = name.toUpperCase(Locale.ENGLISH); + if ((uname.startsWith("META-INF/") || + uname.startsWith("/META-INF/"))) { + + if (je.isDirectory()) { + mev.setEntry(null, je); + return; + } + + if (SignatureFileVerifier.isBlockOrSF(uname)) { + /* We parse only DSA, RSA or EC PKCS7 blocks. */ + parsingBlockOrSF = true; + baos.reset(); + mev.setEntry(null, je); + } + return; + } + } + + if (parsingMeta) { + doneWithMeta(); + } + if (je.isDirectory()) { mev.setEntry(null, je); return; @@ -147,7 +188,11 @@ class JarVerifier { throws IOException { if (b != -1) { - mev.update((byte)b); + if (parsingBlockOrSF) { + baos.write(b); + } else { + mev.update((byte)b); + } } else { processEntry(mev); } @@ -162,7 +207,11 @@ class JarVerifier { throws IOException { if (n != -1) { - mev.update(b, off, n); + if (parsingBlockOrSF) { + baos.write(b, off, n); + } else { + mev.update(b, off, n); + } } else { processEntry(mev); } @@ -174,10 +223,101 @@ class JarVerifier { private void processEntry(ManifestEntryVerifier mev) throws IOException { - JarEntry je = mev.getEntry(); - if ((je != null) && (je.signers == null)) { - je.signers = mev.verify(verifiedSigners, sigFileSigners); - je.certs = mapSignersToCertArray(je.signers); + if (!parsingBlockOrSF) { + JarEntry je = mev.getEntry(); + if ((je != null) && (je.signers == null)) { + je.signers = mev.verify(verifiedSigners, sigFileSigners); + je.certs = mapSignersToCertArray(je.signers); + } + } else { + + try { + parsingBlockOrSF = false; + + if (debug != null) { + debug.println("processEntry: processing block"); + } + + String uname = mev.getEntry().getName() + .toUpperCase(Locale.ENGLISH); + + if (uname.endsWith(".SF")) { + String key = uname.substring(0, uname.length()-3); + byte bytes[] = baos.toByteArray(); + // add to sigFileData in case future blocks need it + sigFileData.put(key, bytes); + // check pending blocks, we can now process + // anyone waiting for this .SF file + Iterator it = pendingBlocks.iterator(); + while (it.hasNext()) { + SignatureFileVerifier sfv = + (SignatureFileVerifier) it.next(); + if (sfv.needSignatureFile(key)) { + if (debug != null) { + debug.println( + "processEntry: processing pending block"); + } + + sfv.setSignatureFile(bytes); + sfv.process(sigFileSigners, manifestDigests); + } + } + return; + } + + // now we are parsing a signature block file + + String key = uname.substring(0, uname.lastIndexOf(".")); + + if (signerCache == null) + signerCache = new ArrayList(); + + if (manDig == null) { + synchronized(manifestRawBytes) { + if (manDig == null) { + manDig = new ManifestDigester(manifestRawBytes); + manifestRawBytes = null; + } + } + } + + SignatureFileVerifier sfv = + new SignatureFileVerifier(signerCache, + manDig, uname, baos.toByteArray()); + + if (sfv.needSignatureFileBytes()) { + // see if we have already parsed an external .SF file + byte[] bytes = (byte[]) sigFileData.get(key); + + if (bytes == null) { + // put this block on queue for later processing + // since we don't have the .SF bytes yet + // (uname, block); + if (debug != null) { + debug.println("adding pending block"); + } + pendingBlocks.add(sfv); + return; + } else { + sfv.setSignatureFile(bytes); + } + } + sfv.process(sigFileSigners, manifestDigests); + + } catch (IOException ioe) { + // e.g. sun.security.pkcs.ParsingException + if (debug != null) debug.println("processEntry caught: "+ioe); + // ignore and treat as unsigned + } catch (SignatureException se) { + if (debug != null) debug.println("processEntry caught: "+se); + // ignore and treat as unsigned + } catch (NoSuchAlgorithmException nsae) { + if (debug != null) debug.println("processEntry caught: "+nsae); + // ignore and treat as unsigned + } catch (CertificateException ce) { + if (debug != null) debug.println("processEntry caught: "+ce); + // ignore and treat as unsigned + } } } @@ -214,15 +354,15 @@ class JarVerifier { * Force a read of the entry data to generate the * verification hash. */ - try (InputStream s = jar.getInputStream(entry)) { + try { + InputStream s = jar.getInputStream(entry); byte[] buffer = new byte[1024]; int n = buffer.length; while (n != -1) { n = s.read(buffer, 0, buffer.length); } + s.close(); } catch (IOException e) { - // Ignore. When an exception is thrown, code signer - // will not be assigned. } } return getCodeSigners(name); @@ -268,7 +408,11 @@ class JarVerifier { */ void doneWithMeta() { + parsingMeta = false; anyToVerify = !sigFileSigners.isEmpty(); + baos = null; + sigFileData = null; + pendingBlocks = null; signerCache = null; manDig = null; // MANIFEST.MF is always treated as signed and verified, @@ -279,41 +423,6 @@ class JarVerifier { } } - /** - * Verifies a PKCS7 SignedData block - * @param key name of block - * @param block the pkcs7 file - * @param ins the clear data - */ - void verifyBlock(String key, byte[] block, InputStream ins) { - try { - if (signerCache == null) - signerCache = new ArrayList(); - - if (manDig == null) { - synchronized(manifestRawBytes) { - if (manDig == null) { - manDig = new ManifestDigester(manifestRawBytes); - manifestRawBytes = null; - } - } - } - SignatureFileVerifier sfv = - new SignatureFileVerifier(signerCache, man, - manDig, key, block); - - if (sfv.needSignatureFile()) { - // see if we have already parsed an external .SF file - sfv.setSignatureFile(ins); - } - sfv.process(sigFileSigners, manifestDigests); - } catch (Exception e) { - if (debug != null) { - e.printStackTrace(); - } - } - } - static class VerifierStream extends java.io.InputStream { private InputStream is; @@ -444,7 +553,10 @@ class JarVerifier { * but this handles a CodeSource of any type, just in case. */ CodeSource[] sources = mapSignersToCodeSources(cs.getLocation(), getJarCodeSigners(), true); - List sourceList = Arrays.asList(sources); + List sourceList = new ArrayList(); + for (int i = 0; i < sources.length; i++) { + sourceList.add(sources[i]); + } int j = sourceList.indexOf(cs); if (j != -1) { CodeSigner[] match; diff --git a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java index 72a2e5f9f3e..54e52151256 100644 --- a/jdk/src/share/classes/sun/security/pkcs/PKCS7.java +++ b/jdk/src/share/classes/sun/security/pkcs/PKCS7.java @@ -38,7 +38,6 @@ import java.security.*; import sun.security.util.*; import sun.security.x509.AlgorithmId; import sun.security.x509.CertificateIssuerName; -import sun.security.x509.KeyUsageExtension; import sun.security.x509.X509CertImpl; import sun.security.x509.X509CertInfo; import sun.security.x509.X509CRLImpl; @@ -493,7 +492,7 @@ public class PKCS7 { // CRLs (optional) if (crls != null && crls.length != 0) { // cast to X509CRLImpl[] since X509CRLImpl implements DerEncoder - Set<X509CRLImpl> implCRLs = new HashSet<>(crls.length); + Set<X509CRLImpl> implCRLs = new HashSet<X509CRLImpl>(crls.length); for (X509CRL crl: crls) { if (crl instanceof X509CRLImpl) implCRLs.add((X509CRLImpl) crl); @@ -530,168 +529,6 @@ public class PKCS7 { block.encode(out); } - /** - * Verifying signed data using an external chunked data source. - */ - public static class PKCS7Verifier { - - private final SignerInfo si; // Signer to verify - private final MessageDigest md; // MessageDigest object for chunks - private final Signature sig; // Signature object for chunks - - private PKCS7Verifier(SignerInfo si, MessageDigest md, Signature sig) { - this.si = si; - this.md = md; - this.sig = sig; - } - - public static PKCS7Verifier from(PKCS7 block, SignerInfo si) throws - SignatureException, NoSuchAlgorithmException { - - try { - MessageDigest md = null; - Signature sig; - - ContentInfo content = block.getContentInfo(); - String digestAlgname = si.getDigestAlgorithmId().getName(); - - // if there are authenticate attributes, feed data chunks to - // the message digest. In this case, pv.md is not null - if (si.authenticatedAttributes != null) { - // first, check content type - ObjectIdentifier contentType = (ObjectIdentifier) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.CONTENT_TYPE_OID); - if (contentType == null || - !contentType.equals(content.contentType)) - return null; // contentType does not match, bad SignerInfo - - // now, check message digest - byte[] messageDigest = (byte[]) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.MESSAGE_DIGEST_OID); - - if (messageDigest == null) // fail if there is no message digest - return null; - - md = MessageDigest.getInstance(digestAlgname); - } - - // put together digest algorithm and encryption algorithm - // to form signing algorithm - String encryptionAlgname = - si.getDigestEncryptionAlgorithmId().getName(); - - // Workaround: sometimes the encryptionAlgname is actually - // a signature name - String tmp = AlgorithmId.getEncAlgFromSigAlg(encryptionAlgname); - if (tmp != null) encryptionAlgname = tmp; - String algname = AlgorithmId.makeSigAlg( - digestAlgname, encryptionAlgname); - - sig = Signature.getInstance(algname); - X509Certificate cert = si.getCertificate(block); - - if (cert == null) { - return null; - } - if (cert.hasUnsupportedCriticalExtension()) { - throw new SignatureException("Certificate has unsupported " - + "critical extension(s)"); - } - - // Make sure that if the usage of the key in the certificate is - // restricted, it can be used for digital signatures. - // XXX We may want to check for additional extensions in the - // future. - boolean[] keyUsageBits = cert.getKeyUsage(); - if (keyUsageBits != null) { - KeyUsageExtension keyUsage; - try { - // We don't care whether or not this extension was marked - // critical in the certificate. - // We're interested only in its value (i.e., the bits set) - // and treat the extension as critical. - keyUsage = new KeyUsageExtension(keyUsageBits); - } catch (IOException ioe) { - throw new SignatureException("Failed to parse keyUsage " - + "extension"); - } - - boolean digSigAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue(); - - boolean nonRepuAllowed = ((Boolean)keyUsage.get( - KeyUsageExtension.NON_REPUDIATION)).booleanValue(); - - if (!digSigAllowed && !nonRepuAllowed) { - throw new SignatureException("Key usage restricted: " - + "cannot be used for " - + "digital signatures"); - } - } - - PublicKey key = cert.getPublicKey(); - sig.initVerify(key); - return new PKCS7Verifier(si, md, sig); - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); - - } catch (InvalidKeyException e) { - throw new SignatureException("InvalidKey: " + e.getMessage()); - - } - } - - public void update(byte[] data, int off, int end) - throws SignatureException { - if (md != null) { - md.update(data, off, end-off); - } else { - sig.update(data, off, end-off); - } - } - - public SignerInfo verify() throws SignatureException { - try { - // if there are authenticate attributes, get the message - // digest and compare it with the digest of data - if (md != null) { - // now, check message digest - byte[] messageDigest = (byte[]) - si.authenticatedAttributes.getAttributeValue( - PKCS9Attribute.MESSAGE_DIGEST_OID); - - byte[] computedMessageDigest = md.digest(); - - if (!MessageDigest.isEqual( - messageDigest, computedMessageDigest)) { - return null; - } - - // message digest attribute matched - // digest of original data - - // the data actually signed is the DER encoding of - // the authenticated attributes (tagged with - // the "SET OF" tag, not 0xA0). - byte[] dataSigned = si.authenticatedAttributes.getDerEncoding(); - sig.update(dataSigned); - } - - if (sig.verify(si.getEncryptedDigest())) { - return si; - } - - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); - } - return null; - } - } - /** * This verifies a given SignerInfo. * @@ -717,16 +554,19 @@ public class PKCS7 { public SignerInfo[] verify(byte[] bytes) throws NoSuchAlgorithmException, SignatureException { - List<SignerInfo> intResult = new ArrayList<>(); + Vector<SignerInfo> intResult = new Vector<SignerInfo>(); for (int i = 0; i < signerInfos.length; i++) { SignerInfo signerInfo = verify(signerInfos[i], bytes); if (signerInfo != null) { - intResult.add(signerInfo); + intResult.addElement(signerInfo); } } - if (!intResult.isEmpty()) { - return intResult.toArray(new SignerInfo[intResult.size()]); + if (intResult.size() != 0) { + + SignerInfo[] result = new SignerInfo[intResult.size()]; + intResult.copyInto(result); + return result; } return null; } diff --git a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java index 6addf69e416..93fab9df4e0 100644 --- a/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java +++ b/jdk/src/share/classes/sun/security/pkcs/SignerInfo.java @@ -230,7 +230,7 @@ public class SignerInfo implements DerEncoder { if (userCert == null) return null; - ArrayList<X509Certificate> certList = new ArrayList<>(); + ArrayList<X509Certificate> certList = new ArrayList<X509Certificate>(); certList.add(userCert); X509Certificate[] pkcsCerts = block.getCertificates(); @@ -276,20 +276,132 @@ public class SignerInfo implements DerEncoder { /* Returns null if verify fails, this signerInfo if verify succeeds. */ SignerInfo verify(PKCS7 block, byte[] data) - throws NoSuchAlgorithmException, SignatureException { + throws NoSuchAlgorithmException, SignatureException { - PKCS7.PKCS7Verifier p7v = PKCS7.PKCS7Verifier.from(block, this); - if (p7v == null) return null; - if (data == null) { - try { - data = block.getContentInfo().getContentBytes(); - } catch (IOException e) { - throw new SignatureException("IO error verifying signature:\n" + - e.getMessage()); + try { + + ContentInfo content = block.getContentInfo(); + if (data == null) { + data = content.getContentBytes(); } + + String digestAlgname = getDigestAlgorithmId().getName(); + + byte[] dataSigned; + + // if there are authenticate attributes, get the message + // digest and compare it with the digest of data + if (authenticatedAttributes == null) { + dataSigned = data; + } else { + + // first, check content type + ObjectIdentifier contentType = (ObjectIdentifier) + authenticatedAttributes.getAttributeValue( + PKCS9Attribute.CONTENT_TYPE_OID); + if (contentType == null || + !contentType.equals(content.contentType)) + return null; // contentType does not match, bad SignerInfo + + // now, check message digest + byte[] messageDigest = (byte[]) + authenticatedAttributes.getAttributeValue( + PKCS9Attribute.MESSAGE_DIGEST_OID); + + if (messageDigest == null) // fail if there is no message digest + return null; + + MessageDigest md = MessageDigest.getInstance(digestAlgname); + byte[] computedMessageDigest = md.digest(data); + + if (messageDigest.length != computedMessageDigest.length) + return null; + for (int i = 0; i < messageDigest.length; i++) { + if (messageDigest[i] != computedMessageDigest[i]) + return null; + } + + // message digest attribute matched + // digest of original data + + // the data actually signed is the DER encoding of + // the authenticated attributes (tagged with + // the "SET OF" tag, not 0xA0). + dataSigned = authenticatedAttributes.getDerEncoding(); + } + + // put together digest algorithm and encryption algorithm + // to form signing algorithm + String encryptionAlgname = + getDigestEncryptionAlgorithmId().getName(); + + // Workaround: sometimes the encryptionAlgname is actually + // a signature name + String tmp = AlgorithmId.getEncAlgFromSigAlg(encryptionAlgname); + if (tmp != null) encryptionAlgname = tmp; + String algname = AlgorithmId.makeSigAlg( + digestAlgname, encryptionAlgname); + + Signature sig = Signature.getInstance(algname); + X509Certificate cert = getCertificate(block); + + if (cert == null) { + return null; + } + if (cert.hasUnsupportedCriticalExtension()) { + throw new SignatureException("Certificate has unsupported " + + "critical extension(s)"); + } + + // Make sure that if the usage of the key in the certificate is + // restricted, it can be used for digital signatures. + // XXX We may want to check for additional extensions in the + // future. + boolean[] keyUsageBits = cert.getKeyUsage(); + if (keyUsageBits != null) { + KeyUsageExtension keyUsage; + try { + // We don't care whether or not this extension was marked + // critical in the certificate. + // We're interested only in its value (i.e., the bits set) + // and treat the extension as critical. + keyUsage = new KeyUsageExtension(keyUsageBits); + } catch (IOException ioe) { + throw new SignatureException("Failed to parse keyUsage " + + "extension"); + } + + boolean digSigAllowed = ((Boolean)keyUsage.get( + KeyUsageExtension.DIGITAL_SIGNATURE)).booleanValue(); + + boolean nonRepuAllowed = ((Boolean)keyUsage.get( + KeyUsageExtension.NON_REPUDIATION)).booleanValue(); + + if (!digSigAllowed && !nonRepuAllowed) { + throw new SignatureException("Key usage restricted: " + + "cannot be used for " + + "digital signatures"); + } + } + + PublicKey key = cert.getPublicKey(); + sig.initVerify(key); + + sig.update(dataSigned); + + if (sig.verify(encryptedDigest)) { + return this; + } + + } catch (IOException e) { + throw new SignatureException("IO error verifying signature:\n" + + e.getMessage()); + + } catch (InvalidKeyException e) { + throw new SignatureException("InvalidKey: " + e.getMessage()); + } - p7v.update(data, 0, data.length); - return p7v.verify(); + return null; } /* Verify the content of the pkcs7 block. */ diff --git a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java index 4fa1826cb37..3d1b4733c30 100644 --- a/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java +++ b/jdk/src/share/classes/sun/security/util/ManifestEntryVerifier.java @@ -191,8 +191,8 @@ public class ManifestEntryVerifier { * * */ - public CodeSigner[] verify(Map<String, CodeSigner[]> verifiedSigners, - Map<String, CodeSigner[]> sigFileSigners) + public CodeSigner[] verify(Hashtable<String, CodeSigner[]> verifiedSigners, + Hashtable<String, CodeSigner[]> sigFileSigners) throws JarException { if (skip) { diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java b/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java deleted file mode 100644 index fd00c1299a3..00000000000 --- a/jdk/src/share/classes/sun/security/util/SignatureFileManifest.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package sun.security.util; - -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.jar.Attributes; -import java.util.jar.Manifest; - -/** - * This class provides streaming mode reading of manifest files. - * Used by {@link SignatureFileVerifier}. - */ -class SignatureFileManifest extends Manifest { - - /* - * Reading a manifest into this object by calling update(byte[]) on chunks. - * During the reading, the bytes are saved in (@code current} until a line - * is complete and the key-value pair is saved in {@code currentAttr}. When - * a section is complete, {@code consumeAttr} is called to merge - * {@code currentAttr} into main attributes or a named entry. - */ - - // Internal state during update() style reading - // 0. not in update mode - // 1, in update mode but main attributes not completed yet - // 2. main attributes completed, still reading the entries - private int state = 0; - - // The partial line read - private byte[] current; - - // Number of bytes in current - private int currentPos = 0; - - // The current Attribute - private Attributes currentAttr; - - /** - * Reads a manifest in chunks. - * <p> - * This method must be called in a row, reading chunks from a single - * manifest file by order. After all chunks are read, caller must call - * {@code update(null)} to fully consume the manifest. - * <p> - * The entry names and attributes read will be merged in with the current - * manifest entries. The {@link #read} method cannot be called inside a - * row of update calls. - * <p> - * Along with the calls, caller can call {@link #getMainAttributes()}, - * {@link #getAttributes(java.lang.String)} or {@link #getEntries()} - * to get already available contents. However, in order not to return - * partial result, when the main attributes in the new manifest is not - * consumed completely, {@link #getMainAttributes()} throws an - * {@code IllegalStateException}. When a certain named entry is not - * consumed completely, {@link #getAttributes(java.lang.String)} - * returns the old {@code Attributes} for the name (if it exists). - * - * @param data null for last call, otherwise, feeding chunks - * @param offset offset into data to begin read - * @param length length of data after offset to read - * @exception IOException if an I/O error has occurred - * @exception IllegalStateException if {@code update(null)} is called - * without any previous {@code update(non-null)} call - */ - public void update(byte[] data, int offset, int length) throws IOException { - - // The last call - if (data == null) { - if (state == 0) { - throw new IllegalStateException("No data to update"); - } - // We accept manifest not ended with \n or \n\n - if (hasLastByte()) { - consumeCurrent(); - } - // We accept empty lines at the end - if (!currentAttr.isEmpty()) { - consumeAttr(); - } - state = 0; // back to non-update state - current = null; - currentAttr = null; - return; - } - - // The first call - if (state == 0) { - current = new byte[1024]; - currentAttr = super.getMainAttributes(); // the main attribute - state = 1; - } - - int end = offset + length; - - while (offset < end) { - switch (data[offset]) { - case '\r': - break; // always skip - case '\n': - if (hasLastByte() && lastByte() == '\n') { // new section - consumeCurrent(); - consumeAttr(); - if (state == 1) { - state = 2; - } - currentAttr = new Attributes(2); - } else { - if (hasLastByte()) { - // save \n into current but do not parse, - // there might be a continuation later - ensureCapacity(); - current[currentPos++] = data[offset]; - } else if (state == 1) { - // there can be multiple empty lines between - // sections, but cannot be at the beginning - throw new IOException("invalid manifest format"); - } - } - break; - case ' ': - if (!hasLastByte()) { - throw new IOException("invalid manifest format"); - } else if (lastByte() == '\n') { - currentPos--; // continuation, remove last \n - } else { // a very normal ' ' - ensureCapacity(); - current[currentPos++] = data[offset]; - } - break; - default: - if (hasLastByte() && lastByte() == '\n') { - // The start of a new pair, not continuation - consumeCurrent(); // the last line read - } - ensureCapacity(); - current[currentPos++] = data[offset]; - break; - } - offset++; - } - } - - /** - * Returns the main Attributes for the Manifest. - * @exception IllegalStateException the main attributes is being read - * @return the main Attributes for the Manifest - */ - public Attributes getMainAttributes() { - if (state == 1) { - throw new IllegalStateException(); - } - return super.getMainAttributes(); - } - - /** - * Reads the Manifest from the specified InputStream. The entry - * names and attributes read will be merged in with the current - * manifest entries. - * - * @param is the input stream - * @exception IOException if an I/O error has occurred - * @exception IllegalStateException if called between two {@link #update} - * calls - */ - public void read(InputStream is) throws IOException { - if (state != 0) { - throw new IllegalStateException("Cannot call read between updates"); - } - super.read(is); - } - - /* - * ---------- Helper methods ----------------- - */ - - private void ensureCapacity() { - if (currentPos >= current.length-1) { - current = Arrays.copyOf(current, current.length*2); - } - } - - private boolean hasLastByte() { - return currentPos > 0; - } - - private byte lastByte() { - return current[currentPos-1]; - } - - // Parse current as key:value and save into currentAttr. - // There MUST be something inside current. - private void consumeCurrent() throws IOException { - // current normally has a \n end, except for the last line - if (current[currentPos-1] == '\n') currentPos--; - for (int i=0; i<currentPos; i++) { - if (current[i] == ':') { - String key = new String(current, 0, 0, i); - i++; - while (i < currentPos && current[i] == ' ') { i++; } - String value = new String(current, i, currentPos-i, "UTF-8"); - currentAttr.putValue(key, value); - currentPos = 0; - return; - } - } - throw new IOException("invalid header field"); - } - - // Merge currentAttr into Manifest - private void consumeAttr() throws IOException { - // Only needed for named entries. For the main attribute, key/value - // is added into attr directly, but since getMainAttributes() throws - // an exception, the partial data is not leaked. - if (state != 1) { - String name = currentAttr.getValue("Name"); - if (name != null) { - currentAttr.remove(new Attributes.Name("Name")); - Attributes old = getAttributes(name); - if (old != null) old.putAll(currentAttr); - else getEntries().put(name, currentAttr); - } else { - throw new IOException("invalid manifest format"); - } - } - } -} diff --git a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java index 6c4439d4c1a..96f425a46b5 100644 --- a/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java +++ b/jdk/src/share/classes/sun/security/util/SignatureFileVerifier.java @@ -55,8 +55,8 @@ public class SignatureFileVerifier { /** the PKCS7 block for this .DSA/.RSA/.EC file */ private PKCS7 block; - // the content of the raw .SF file as an InputStream - private InputStream sfStream; + /** the raw bytes of the .SF file */ + private byte sfBytes[]; /** the name of the signature block file, uppercased and without * the extension (.DSA/.RSA/.EC) @@ -66,9 +66,6 @@ public class SignatureFileVerifier { /** the ManifestDigester */ private ManifestDigester md; - /** The MANIFEST.MF */ - private Manifest man; - /** cache of created MessageDigest objects */ private HashMap<String, MessageDigest> createdDigests; @@ -86,7 +83,6 @@ public class SignatureFileVerifier { * @param rawBytes the raw bytes of the signature block file */ public SignatureFileVerifier(ArrayList<CodeSigner[]> signerCache, - Manifest man, ManifestDigester md, String name, byte rawBytes[]) @@ -98,18 +94,13 @@ public class SignatureFileVerifier { try { obj = Providers.startJarVerification(); block = new PKCS7(rawBytes); - byte[] contentData = block.getContentInfo().getData(); - if (contentData != null) { - sfStream = new ByteArrayInputStream(contentData); - } + sfBytes = block.getContentInfo().getData(); certificateFactory = CertificateFactory.getInstance("X509"); } finally { Providers.stopJarVerification(obj); } this.name = name.substring(0, name.lastIndexOf(".")) .toUpperCase(Locale.ENGLISH); - - this.man = man; this.md = md; this.signerCache = signerCache; } @@ -117,13 +108,31 @@ public class SignatureFileVerifier { /** * returns true if we need the .SF file */ - public boolean needSignatureFile() + public boolean needSignatureFileBytes() { - return sfStream == null; + + return sfBytes == null; } - public void setSignatureFile(InputStream ins) { - this.sfStream = ins; + + /** + * returns true if we need this .SF file. + * + * @param name the name of the .SF file without the extension + * + */ + public boolean needSignatureFile(String name) + { + return this.name.equalsIgnoreCase(name); + } + + /** + * used to set the raw bytes of the .SF file when it + * is external to the signature block file. + */ + public void setSignatureFile(byte sfBytes[]) + { + this.sfBytes = sfBytes; } /** @@ -136,18 +145,12 @@ public class SignatureFileVerifier { * Signature File or PKCS7 block file name */ public static boolean isBlockOrSF(String s) { - return s.endsWith(".SF") || isBlock(s); - } - - /** - * Utility method used by JarVerifier to determine PKCS7 block - * files names that are supported - * - * @param s file name - * @return true if the input file name is a PKCS7 block file name - */ - public static boolean isBlock(String s) { - return s.endsWith(".DSA") || s.endsWith(".RSA") || s.endsWith(".EC"); + // we currently only support DSA and RSA PKCS7 blocks + if (s.endsWith(".SF") || s.endsWith(".DSA") || + s.endsWith(".RSA") || s.endsWith(".EC")) { + return true; + } + return false; } /** get digest from cache */ @@ -177,7 +180,7 @@ public class SignatureFileVerifier { * * */ - public void process(Map<String, CodeSigner[]> signers, + public void process(Hashtable<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException @@ -194,86 +197,31 @@ public class SignatureFileVerifier { } - private void processImpl(Map<String, CodeSigner[]> signers, + private void processImpl(Hashtable<String, CodeSigner[]> signers, List manifestDigests) throws IOException, SignatureException, NoSuchAlgorithmException, JarException, CertificateException { - SignatureFileManifest sf = new SignatureFileManifest(); - InputStream ins = sfStream; + Manifest sf = new Manifest(); + sf.read(new ByteArrayInputStream(sfBytes)); - byte[] buffer = new byte[4096]; - int sLen = block.getSignerInfos().length; - boolean mainOK = false; // main attributes of SF is available... - boolean manifestSigned = false; // and it matches MANIFEST.MF - BASE64Decoder decoder = new BASE64Decoder(); + String version = + sf.getMainAttributes().getValue(Attributes.Name.SIGNATURE_VERSION); - PKCS7.PKCS7Verifier[] pvs = new PKCS7.PKCS7Verifier[sLen]; - for (int i=0; i<sLen; i++) { - pvs[i] = PKCS7.PKCS7Verifier.from(block, block.getSignerInfos()[i]); + if ((version == null) || !(version.equalsIgnoreCase("1.0"))) { + // XXX: should this be an exception? + // for now we just ignore this signature file + return; } - /* - * Verify SF in streaming mode. The chunks of the file are fed into - * the Manifest object sf and all PKCS7Verifiers. As soon as the main - * attributes is available, we'll check if manifestSigned is true. If - * yes, there is no need to fill in sf's entries field, since it should - * be identical to entries in man. - */ - while (true) { - int len = ins.read(buffer); - if (len < 0) { - if (!manifestSigned) { - sf.update(null, 0, 0); - } - break; - } else { - for (int i=0; i<sLen; i++) { - if (pvs[i] != null) pvs[i].update(buffer, 0, len); - } - // Continue reading if verifyManifestHash fails (or, the - // main attributes is not available yet) - if (!manifestSigned) { - sf.update(buffer, 0, len); - if (!mainOK) { - try { - Attributes attr = sf.getMainAttributes(); - String version = attr.getValue( - Attributes.Name.SIGNATURE_VERSION); + SignerInfo[] infos = block.verify(sfBytes); - if ((version == null) || - !(version.equalsIgnoreCase("1.0"))) { - // XXX: should this be an exception? - // for now we just ignore this signature file - return; - } - - mainOK = true; - manifestSigned = verifyManifestHash( - sf, md, decoder, manifestDigests); - } catch (IllegalStateException ise) { - // main attributes not available yet - } - } - } - } - } - List<SignerInfo> intResult = new ArrayList<>(sLen); - for (int i = 0; i < sLen; i++) { - if (pvs[i] != null) { - SignerInfo signerInfo = pvs[i].verify(); - if (signerInfo != null) { - intResult.add(signerInfo); - } - } - } - if (intResult.isEmpty()) { + if (infos == null) { throw new SecurityException("cannot verify signature block file " + name); } - SignerInfo[] infos = - intResult.toArray(new SignerInfo[intResult.size()]); + BASE64Decoder decoder = new BASE64Decoder(); CodeSigner[] newSigners = getSigners(infos, block); @@ -281,37 +229,26 @@ public class SignatureFileVerifier { if (newSigners == null) return; + Iterator<Map.Entry<String,Attributes>> entries = + sf.getEntries().entrySet().iterator(); + + // see if we can verify the whole manifest first + boolean manifestSigned = verifyManifestHash(sf, md, decoder, manifestDigests); + // verify manifest main attributes if (!manifestSigned && !verifyManifestMainAttrs(sf, md, decoder)) { throw new SecurityException ("Invalid signature file digest for Manifest main attributes"); } - Iterator<Map.Entry<String,Attributes>> entries; - - if (manifestSigned) { - if (debug != null) { - debug.println("full manifest signature match, " - + "update signer info from MANIFEST.MF"); - } - entries = man.getEntries().entrySet().iterator(); - } else { - if (debug != null) { - debug.println("full manifest signature unmatch, " - + "update signer info from SF file"); - } - entries = sf.getEntries().entrySet().iterator(); - } - - // go through each section - + // go through each section in the signature file while(entries.hasNext()) { Map.Entry<String,Attributes> e = entries.next(); String name = e.getKey(); if (manifestSigned || - (verifySection(e.getValue(), name, md, decoder))) { + (verifySection(e.getValue(), name, md, decoder))) { if (name.startsWith("./")) name = name.substring(2); @@ -656,6 +593,7 @@ public class SignatureFileVerifier { if (set == subset) return true; + boolean match; for (int i = 0; i < subset.length; i++) { if (!contains(set, subset[i])) return false; @@ -675,6 +613,8 @@ public class SignatureFileVerifier { if ((oldSigners == null) && (signers == newSigners)) return true; + boolean match; + // make sure all oldSigners are in signers if ((oldSigners != null) && !isSubSet(oldSigners, signers)) return false; @@ -698,7 +638,7 @@ public class SignatureFileVerifier { } void updateSigners(CodeSigner[] newSigners, - Map<String, CodeSigner[]> signers, String name) { + Hashtable<String, CodeSigner[]> signers, String name) { CodeSigner[] oldSigners = signers.get(name); diff --git a/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java b/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java index 425e5659715..86dbf793e74 100644 --- a/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java +++ b/jdk/test/java/util/jar/JarInputStream/ScanSignedJar.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -27,11 +27,9 @@ * @summary Confirm that JarEntry.getCertificates identifies signed entries. */ -import java.io.*; import java.net.URL; import java.security.CodeSigner; import java.security.cert.Certificate; -import java.util.Enumeration; import java.util.jar.*; /* @@ -72,6 +70,9 @@ public class ScanSignedJar { if (signers == null && certificates == null) { System.out.println("[unsigned]\t" + name + "\t(" + size + " bytes)"); + if (name.equals("Count.class")) { + throw new Exception("Count.class should be signed"); + } } else if (signers != null && certificates != null) { System.out.println("[" + signers.length + (signers.length == 1 ? " signer" : " signers") + "]\t" + diff --git a/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java b/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java index 977c10121da..2e74eb10069 100644 --- a/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java +++ b/jdk/test/java/util/jar/JarInputStream/TestIndexedJarWithBadSignature.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ public class TestIndexedJarWithBadSignature { public static void main(String...args) throws Throwable { try (JarInputStream jis = new JarInputStream( - new FileInputStream(System.getProperty("tst.src", ".") + + new FileInputStream(System.getProperty("test.src", ".") + System.getProperty("file.separator") + "BadSignedJar.jar"))) { From 17bd221976b73da78a00111c417df2cb36166760 Mon Sep 17 00:00:00 2001 From: Xueming Shen <sherman@openjdk.org> Date: Sun, 1 May 2011 11:39:32 -0700 Subject: [PATCH 105/147] 7036522: j.u.r.Pattern documentation errors Updated the Perl related information Reviewed-by: alanb --- .../classes/java/util/regex/Pattern.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/jdk/src/share/classes/java/util/regex/Pattern.java b/jdk/src/share/classes/java/util/regex/Pattern.java index b02d68b73e4..fa302cfbab7 100644 --- a/jdk/src/share/classes/java/util/regex/Pattern.java +++ b/jdk/src/share/classes/java/util/regex/Pattern.java @@ -667,8 +667,30 @@ import java.util.Arrays; * <p> Perl constructs not supported by this class: </p> * * <ul> + * <li><p> Predefined character classes (Unicode character) + * <p><tt>\h    </tt>A horizontal whitespace + * <p><tt>\H    </tt>A non horizontal whitespace + * <p><tt>\v    </tt>A vertical whitespace + * <p><tt>\V    </tt>A non vertical whitespace + * <p><tt>\R    </tt>Any Unicode linebreak sequence + * <tt>\u005cu000D\u005cu000A|[\u005cu000A\u005cu000B\u005cu000C\u005cu000D\u005cu0085\u005cu2028\u005cu2029]</tt> + * <p><tt>\X    </tt>Match Unicode + * <a href="http://www.unicode.org/reports/tr18/#Default_Grapheme_Clusters"> + * <i>extended grapheme cluster</i></a> + * </p></li> * - * <li><p> The conditional constructs <tt>(?{</tt><i>X</i><tt>})</tt> and + * <li><p> The backreference constructs, <tt>\g{</tt><i>n</i><tt>}</tt> for + * the <i>n</i><sup>th</sup><a href="#cg">capturing group</a> and + * <tt>\g{</tt><i>name</i><tt>}</tt> for + * <a href="#groupname">named-capturing group</a>. + * </p></li> + * + * <li><p> The named character construct, <tt>\N{</tt><i>name</i><tt>}</tt> + * for a Unicode character by its name. + * </p></li> + * + * <li><p> The conditional constructs + * <tt>(?(</tt><i>condition</i><tt>)</tt><i>X</i><tt>)</tt> and * <tt>(?(</tt><i>condition</i><tt>)</tt><i>X</i><tt>|</tt><i>Y</i><tt>)</tt>, * </p></li> * @@ -686,10 +708,6 @@ import java.util.Arrays; * * <ul> * - * <li><p> Possessive quantifiers, which greedily match as much as they can - * and do not back off, even when doing so would allow the overall match to - * succeed. </p></li> - * * <li><p> Character-class union and intersection as described * <a href="#cc">above</a>.</p></li> * @@ -723,13 +741,6 @@ import java.util.Arrays; * within a group; in the latter case, flags are restored at the end of the * group just as in Perl. </p></li> * - * <li><p> Perl is forgiving about malformed matching constructs, as in the - * expression <tt>*a</tt>, as well as dangling brackets, as in the - * expression <tt>abc]</tt>, and treats them as literals. This - * class also accepts dangling brackets but is strict about dangling - * metacharacters like +, ? and *, and will throw a - * {@link PatternSyntaxException} if it encounters them. </p></li> - * * </ul> * * From 746cdfda772418777ab5e3120d574181a272bb43 Mon Sep 17 00:00:00 2001 From: Bhavesh Patel <bpatel@openjdk.org> Date: Mon, 2 May 2011 02:13:02 -0700 Subject: [PATCH 106/147] 6492694: @deprecated tag doesn't work in package-info files Reviewed-by: jjg --- .../doclets/formats/html/ClassUseWriter.java | 13 ++- .../formats/html/DeprecatedListWriter.java | 32 +++--- .../doclets/formats/html/HtmlDoclet.java | 38 ++++--- .../formats/html/HtmlDocletWriter.java | 38 +++++++ .../formats/html/PackageFrameWriter.java | 4 +- .../formats/html/PackageIndexFrameWriter.java | 7 +- .../formats/html/PackageIndexWriter.java | 2 + .../formats/html/PackageUseWriter.java | 9 +- .../formats/html/PackageWriterImpl.java | 31 +++++- .../formats/html/SourceToHTMLConverter.java | 21 +++- .../doclets/formats/html/TreeWriter.java | 8 +- .../formats/html/markup/HtmlStyle.java | 4 +- .../html/resources/standard.properties | 2 + .../internal/toolkit/Configuration.java | 17 +-- .../internal/toolkit/resources/stylesheet.css | 10 ++ .../toolkit/taglets/DeprecatedTaglet.java | 9 +- .../toolkit/util/ClassDocCatalog.java | 17 ++- .../internal/toolkit/util/ClassTree.java | 8 +- .../util/DeprecatedAPIListBuilder.java | 58 ++++++---- .../internal/toolkit/util/IndexBuilder.java | 14 ++- .../toolkit/util/PackageListWriter.java | 15 ++- .../doclets/internal/toolkit/util/Util.java | 8 +- .../javadoc/testPackageDeprecation/C2.java | 55 ++++++++++ .../testPackageDeprecation/FooDepr.java | 34 ++++++ .../TestPackageDeprecation.java | 103 ++++++++++++++++++ .../javadoc/testPackageDeprecation/pkg/A.java | 35 ++++++ .../pkg1/ClassUseTest1.java | 31 ++++++ .../testPackageDeprecation/pkg1/Foo.java | 36 ++++++ .../testPackageDeprecation/pkg1/Foo2.java | 26 +++++ .../pkg1/package-info.java | 28 +++++ .../javadoc/testSubTitle/TestSubTitle.java | 3 +- 31 files changed, 608 insertions(+), 108 deletions(-) create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/C2.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java create mode 100644 langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java index bbac0b65cb1..f96bd93ab42 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java @@ -149,11 +149,20 @@ public class ClassUseWriter extends SubWriterHolderWriter { ClassUseMapper mapper = new ClassUseMapper(configuration.root, classtree); ClassDoc[] classes = configuration.root.classes(); for (int i = 0; i < classes.length; i++) { - ClassUseWriter.generate(configuration, mapper, classes[i]); + // If -nodeprecated option is set and the containing package is marked + // as deprecated, do not generate the class-use page. We will still generate + // the class-use page if the class is marked as deprecated but the containing + // package is not since it could still be linked from that package-use page. + if (!(configuration.nodeprecated && + Util.isDeprecated(classes[i].containingPackage()))) + ClassUseWriter.generate(configuration, mapper, classes[i]); } PackageDoc[] pkgs = configuration.packages; for (int i = 0; i < pkgs.length; i++) { - PackageUseWriter.generate(configuration, mapper, pkgs[i]); + // If -nodeprecated option is set and the package is marked + // as deprecated, do not generate the package-use page. + if (!(configuration.nodeprecated && Util.isDeprecated(pkgs[i]))) + PackageUseWriter.generate(configuration, mapper, pkgs[i]); } } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java index 917720fac4f..ed9805b58c1 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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,15 +42,15 @@ import com.sun.tools.doclets.formats.html.markup.*; public class DeprecatedListWriter extends SubWriterHolderWriter { private static final String[] ANCHORS = new String[] { - "interface", "class", "enum", "exception", "error", "annotation_type", - "field", "method", "constructor", "enum_constant", + "package", "interface", "class", "enum", "exception", "error", + "annotation_type", "field", "method", "constructor", "enum_constant", "annotation_type_member" }; private static final String[] HEADING_KEYS = new String[] { - "doclet.Deprecated_Interfaces", "doclet.Deprecated_Classes", - "doclet.Deprecated_Enums", "doclet.Deprecated_Exceptions", - "doclet.Deprecated_Errors", + "doclet.Deprecated_Packages", "doclet.Deprecated_Interfaces", + "doclet.Deprecated_Classes", "doclet.Deprecated_Enums", + "doclet.Deprecated_Exceptions", "doclet.Deprecated_Errors", "doclet.Deprecated_Annotation_Types", "doclet.Deprecated_Fields", "doclet.Deprecated_Methods", "doclet.Deprecated_Constructors", @@ -59,9 +59,9 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { }; private static final String[] SUMMARY_KEYS = new String[] { - "doclet.deprecated_interfaces", "doclet.deprecated_classes", - "doclet.deprecated_enums", "doclet.deprecated_exceptions", - "doclet.deprecated_errors", + "doclet.deprecated_packages", "doclet.deprecated_interfaces", + "doclet.deprecated_classes", "doclet.deprecated_enums", + "doclet.deprecated_exceptions", "doclet.deprecated_errors", "doclet.deprecated_annotation_types", "doclet.deprecated_fields", "doclet.deprecated_methods", "doclet.deprecated_constructors", @@ -70,7 +70,7 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { }; private static final String[] HEADER_KEYS = new String[] { - "doclet.Interface", "doclet.Class", + "doclet.Package", "doclet.Interface", "doclet.Class", "doclet.Enum", "doclet.Exceptions", "doclet.Errors", "doclet.AnnotationType", @@ -116,7 +116,7 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { DeprecatedListWriter depr = new DeprecatedListWriter(configuration, filename); depr.generateDeprecatedListFile( - new DeprecatedAPIListBuilder(configuration.root)); + new DeprecatedAPIListBuilder(configuration)); depr.close(); } catch (IOException exc) { configuration.standardmessage.error( @@ -149,8 +149,14 @@ public class DeprecatedListWriter extends SubWriterHolderWriter { memberTableHeader[0] = configuration.getText("doclet.0_and_1", configuration.getText(HEADER_KEYS[i]), configuration.getText("doclet.Description")); - writers[i].addDeprecatedAPI(deprapi.getList(i), - HEADING_KEYS[i], memberTableSummary, memberTableHeader, div); + // DeprecatedAPIListBuilder.PACKAGE == 0, so if i == 0, it is + // a PackageDoc. + if (i == DeprecatedAPIListBuilder.PACKAGE) + addPackageDeprecatedAPI(deprapi.getList(i), + HEADING_KEYS[i], memberTableSummary, memberTableHeader, div); + else + writers[i - 1].addDeprecatedAPI(deprapi.getList(i), + HEADING_KEYS[i], memberTableSummary, memberTableHeader, div); } } body.addContent(div); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java index 8c4d1f315b4..a9e850adf97 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -198,23 +198,27 @@ public class HtmlDoclet extends AbstractDoclet { PackageIndexFrameWriter.generate(configuration); } PackageDoc prev = null, next; - for(int i = 0; i < packages.length; i++) { - PackageFrameWriter.generate(configuration, packages[i]); - next = (i + 1 < packages.length && packages[i+1].name().length() > 0) ? - packages[i+1] : null; - //If the next package is unnamed package, skip 2 ahead if possible - next = (i + 2 < packages.length && next == null) ? - packages[i+2]: next; - AbstractBuilder packageSummaryBuilder = configuration. - getBuilderFactory().getPackageSummaryBuilder( - packages[i], prev, next); - packageSummaryBuilder.build(); - if (configuration.createtree) { - PackageTreeWriter.generate(configuration, - packages[i], prev, next, - configuration.nodeprecated); + for (int i = 0; i < packages.length; i++) { + // if -nodeprecated option is set and the package is marked as + // deprecated, do not generate the package-summary.html, package-frame.html + // and package-tree.html pages for that package. + if (!(configuration.nodeprecated && Util.isDeprecated(packages[i]))) { + PackageFrameWriter.generate(configuration, packages[i]); + next = (i + 1 < packages.length && + packages[i + 1].name().length() > 0) ? packages[i + 1] : null; + //If the next package is unnamed package, skip 2 ahead if possible + next = (i + 2 < packages.length && next == null) ? packages[i + 2] : next; + AbstractBuilder packageSummaryBuilder = + configuration.getBuilderFactory().getPackageSummaryBuilder( + packages[i], prev, next); + packageSummaryBuilder.build(); + if (configuration.createtree) { + PackageTreeWriter.generate(configuration, + packages[i], prev, next, + configuration.nodeprecated); + } + prev = packages[i]; } - prev = packages[i]; } } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java index a06e75fe411..0e794bee69f 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java @@ -1394,6 +1394,44 @@ public class HtmlDocletWriter extends HtmlDocWriter { return new StringContent(packageName); } + /** + * Add package deprecation information to the documentation tree + * + * @param deprPkgs list of deprecated packages + * @param headingKey the caption for the deprecated package table + * @param tableSummary the summary for the deprecated package table + * @param tableHeader table headers for the deprecated package table + * @param contentTree the content tree to which the deprecated package table will be added + */ + protected void addPackageDeprecatedAPI(List<Doc> deprPkgs, String headingKey, + String tableSummary, String[] tableHeader, Content contentTree) { + if (deprPkgs.size() > 0) { + Content table = HtmlTree.TABLE(0, 3, 0, tableSummary, + getTableCaption(configuration().getText(headingKey))); + table.addContent(getSummaryTableHeader(tableHeader, "col")); + Content tbody = new HtmlTree(HtmlTag.TBODY); + for (int i = 0; i < deprPkgs.size(); i++) { + PackageDoc pkg = (PackageDoc) deprPkgs.get(i); + HtmlTree td = HtmlTree.TD(HtmlStyle.colOne, + getPackageLink(pkg, getPackageName(pkg))); + if (pkg.tags("deprecated").length > 0) { + addInlineDeprecatedComment(pkg, pkg.tags("deprecated")[0], td); + } + HtmlTree tr = HtmlTree.TR(td); + if (i % 2 == 0) { + tr.addStyle(HtmlStyle.altColor); + } else { + tr.addStyle(HtmlStyle.rowColor); + } + tbody.addContent(tr); + } + table.addContent(tbody); + Content li = HtmlTree.LI(HtmlStyle.blockList, table); + Content ul = HtmlTree.UL(HtmlStyle.blockList, li); + contentTree.addContent(ul); + } + } + /** * Prine table header information about color, column span and the font. * diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java index 69c04fa2bbc..27414e0a276 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -93,7 +93,7 @@ public class PackageFrameWriter extends HtmlDocletWriter { packgen = new PackageFrameWriter(configuration, packageDoc); String pkgName = Util.getPackageName(packageDoc); Content body = packgen.getBody(false, packgen.getWindowTitle(pkgName)); - Content pkgNameContent = new StringContent(pkgName); + Content pkgNameContent = new RawHtml(pkgName); Content heading = HtmlTree.HEADING(HtmlConstants.TITLE_HEADING, HtmlStyle.bar, packgen.getTargetPackageLink(packageDoc, "classFrame", pkgNameContent)); body.addContent(heading); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java index 45e58d8120c..3ac4b98fee1 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -80,7 +80,10 @@ public class PackageIndexFrameWriter extends AbstractPackageIndexWriter { HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.addAttr(HtmlAttr.TITLE, packagesLabel.toString()); for(int i = 0; i < packages.length; i++) { - if (packages[i] != null) { + // Do not list the package if -nodeprecated option is set and the + // package is marked as deprecated. + if (packages[i] != null && + (!(configuration.nodeprecated && Util.isDeprecated(packages[i])))) { ul.addContent(getPackage(packages[i])); } } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java index aad8d13595b..7b9be91ddcc 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java @@ -137,6 +137,8 @@ public class PackageIndexWriter extends AbstractPackageIndexWriter { protected void addPackagesList(PackageDoc[] packages, Content tbody) { for (int i = 0; i < packages.length; i++) { if (packages[i] != null && packages[i].name().length() > 0) { + if (configuration.nodeprecated && Util.isDeprecated(packages[i])) + continue; Content packageLinkContent = getPackageLink(packages[i], getPackageName(packages[i])); Content tdPackage = HtmlTree.TD(HtmlStyle.colFirst, packageLinkContent); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java index 4e9019a1d98..579aee25a93 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java @@ -242,11 +242,16 @@ public class PackageUseWriter extends SubWriterHolderWriter { */ protected void addPackageUse(PackageDoc pkg, Content contentTree) throws IOException { Content tdFirst = HtmlTree.TD(HtmlStyle.colFirst, - getHyperLink("", pkg.name(), new StringContent(Util.getPackageName(pkg)))); + getHyperLink("", Util.getPackageName(pkg), + new RawHtml(Util.getPackageName(pkg)))); contentTree.addContent(tdFirst); HtmlTree tdLast = new HtmlTree(HtmlTag.TD); tdLast.addStyle(HtmlStyle.colLast); - addSummaryComment(pkg, tdLast); + if (pkg != null && pkg.name().length() != 0) { + addSummaryComment(pkg, tdLast); + } else { + tdLast.addContent(getSpace()); + } contentTree.addContent(tdLast); } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java index bd56ab5764f..bc3531803b4 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java @@ -114,11 +114,12 @@ public class PackageWriterImpl extends HtmlDocletWriter Content packageHead = new RawHtml(heading); tHeading.addContent(packageHead); div.addContent(tHeading); + addDeprecationInfo(div); if (packageDoc.inlineTags().length > 0 && ! configuration.nocomment) { - HtmlTree subTitleDiv = new HtmlTree(HtmlTag.DIV); - subTitleDiv.addStyle(HtmlStyle.subTitle); - addSummaryComment(packageDoc, subTitleDiv); - div.addContent(subTitleDiv); + HtmlTree docSummaryDiv = new HtmlTree(HtmlTag.DIV); + docSummaryDiv.addStyle(HtmlStyle.docSummary); + addSummaryComment(packageDoc, docSummaryDiv); + div.addContent(docSummaryDiv); Content space = getSpace(); Content descLink = getHyperLink("", "package_description", descriptionLabel, "", ""); @@ -138,6 +139,28 @@ public class PackageWriterImpl extends HtmlDocletWriter return div; } + /** + * Add the package deprecation information to the documentation tree. + * + * @param div the content tree to which the deprecation information will be added + */ + public void addDeprecationInfo(Content div) { + Tag[] deprs = packageDoc.tags("deprecated"); + if (Util.isDeprecated(packageDoc)) { + HtmlTree deprDiv = new HtmlTree(HtmlTag.DIV); + deprDiv.addStyle(HtmlStyle.deprecatedContent); + Content deprPhrase = HtmlTree.SPAN(HtmlStyle.strong, deprecatedPhrase); + deprDiv.addContent(deprPhrase); + if (deprs.length > 0) { + Tag[] commentTags = deprs[0].inlineTags(); + if (commentTags.length > 0) { + addInlineDeprecatedComment(packageDoc, deprs[0], deprDiv); + } + } + div.addContent(deprDiv); + } + } + /** * {@inheritDoc} */ diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java index 2b75220c884..5fd7f887683 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java @@ -82,12 +82,20 @@ public class SourceToHTMLConverter { } PackageDoc[] pds = rd.specifiedPackages(); for (int i = 0; i < pds.length; i++) { - convertPackage(configuration, pds[i], outputdir); + // If -nodeprecated option is set and the package is marked as deprecated, + // do not convert the package files to HTML. + if (!(configuration.nodeprecated && Util.isDeprecated(pds[i]))) + convertPackage(configuration, pds[i], outputdir); } ClassDoc[] cds = rd.specifiedClasses(); for (int i = 0; i < cds.length; i++) { - convertClass(configuration, cds[i], - getPackageOutputDir(outputdir, cds[i].containingPackage())); + // If -nodeprecated option is set and the class is marked as deprecated + // or the containing package is deprecated, do not convert the + // package files to HTML. + if (!(configuration.nodeprecated && + (Util.isDeprecated(cds[i]) || Util.isDeprecated(cds[i].containingPackage())))) + convertClass(configuration, cds[i], + getPackageOutputDir(outputdir, cds[i].containingPackage())); } } @@ -106,7 +114,12 @@ public class SourceToHTMLConverter { String classOutputdir = getPackageOutputDir(outputdir, pd); ClassDoc[] cds = pd.allClasses(); for (int i = 0; i < cds.length; i++) { - convertClass(configuration, cds[i], classOutputdir); + // If -nodeprecated option is set and the class is marked as deprecated, + // do not convert the package files to HTML. We do not check for + // containing package deprecation since it is already check in + // the calling method above. + if (!(configuration.nodeprecated && Util.isDeprecated(cds[i]))) + convertClass(configuration, cds[i], classOutputdir); } } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java index ceb330e3d2f..e116fe4e9a7 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -132,7 +132,11 @@ public class TreeWriter extends AbstractTreeWriter { HtmlTree ul = new HtmlTree(HtmlTag.UL); ul.addStyle(HtmlStyle.horizontal); for (int i = 0; i < packages.length; i++) { - if (packages[i].name().length() == 0) { + // If the package name length is 0 or if -nodeprecated option + // is set and the package is marked as deprecated, do not include + // the page in the list of package hierarchies. + if (packages[i].name().length() == 0 || + (configuration.nodeprecated && Util.isDeprecated(packages[i]))) { continue; } String link = pathString(packages[i], "package-tree.html"); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java index 3780152d99b..8d53c464e8d 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2010, 2011, 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 @@ -46,6 +46,7 @@ public enum HtmlStyle { contentContainer, description, details, + docSummary, header, horizontal, footer, @@ -67,6 +68,7 @@ public enum HtmlStyle { subNavList, subTitle, summary, + deprecatedContent, tabEnd, title, topNav; diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties index edd3dcc1a11..508c0b23b5c 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties @@ -68,6 +68,7 @@ doclet.see.class_or_package_not_accessible=Tag {0}: reference not accessible: {1 doclet.see.malformed_tag=Tag {0}: Malformed: {1} doclet.Inherited_API_Summary=Inherited API Summary doclet.Deprecated_API=Deprecated API +doclet.Deprecated_Packages=Deprecated Packages doclet.Deprecated_Classes=Deprecated Classes doclet.Deprecated_Enums=Deprecated Enums doclet.Deprecated_Interfaces=Deprecated Interfaces @@ -79,6 +80,7 @@ doclet.Deprecated_Constructors=Deprecated Constructors doclet.Deprecated_Methods=Deprecated Methods doclet.Deprecated_Enum_Constants=Deprecated Enum Constants doclet.Deprecated_Annotation_Type_Members=Deprecated Annotation Type Elements +doclet.deprecated_packages=deprecated packages doclet.deprecated_classes=deprecated classes doclet.deprecated_enums=deprecated enums doclet.deprecated_interfaces=deprecated interfaces diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java index f5386ef320c..45e1bd1de15 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2011, 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 @@ -419,7 +419,7 @@ public abstract class Configuration { docencoding = encoding; } - classDocCatalog = new ClassDocCatalog(root.specifiedClasses()); + classDocCatalog = new ClassDocCatalog(root.specifiedClasses(), this); initTagletManager(customTagStrs); } @@ -677,15 +677,18 @@ public abstract class Configuration { } /** - * Return true if the doc element is getting documented, depending upon - * -nodeprecated option and @deprecated tag used. Return true if - * -nodeprecated is not used or @deprecated tag is not used. + * Return true if the ClassDoc element is getting documented, depending upon + * -nodeprecated option and the deprecation information. Return true if + * -nodeprecated is not used. Return false if -nodeprecated is used and if + * either ClassDoc element is deprecated or the containing package is deprecated. + * + * @param cd the ClassDoc for which the page generation is checked */ - public boolean isGeneratedDoc(Doc doc) { + public boolean isGeneratedDoc(ClassDoc cd) { if (!nodeprecated) { return true; } - return (doc.tags("deprecated")).length == 0; + return !(Util.isDeprecated(cd) || Util.isDeprecated(cd.containingPackage())); } /** diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css index 7d208ba782b..7852a52fee5 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css @@ -159,6 +159,16 @@ Page header and footer styles padding-top:10px; } /* +Content styles +*/ +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding-top:10px; +} +/* Page layout container styles */ .contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java index 80ef7e33ec2..b2035b31890 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -44,13 +44,6 @@ public class DeprecatedTaglet extends BaseTaglet{ name = "deprecated"; } - /** - * {@inheritDoc} - */ - public boolean inPackage() { - return false; - } - /** * {@inheritDoc} */ diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java index d6ae8c6c288..529d4fc4432 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2011, 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,8 +25,9 @@ package com.sun.tools.doclets.internal.toolkit.util; -import com.sun.javadoc.*; import java.util.*; +import com.sun.javadoc.*; +import com.sun.tools.doclets.internal.toolkit.Configuration; /** * This class acts as an artificial PackageDoc for classes specified @@ -88,13 +89,16 @@ import java.util.*; */ private Map<String,Set<ClassDoc>> interfaces; + private Configuration configuration; + /** * Construct a new ClassDocCatalog. * * @param classdocs the array of ClassDocs to catalog */ - public ClassDocCatalog (ClassDoc[] classdocs) { + public ClassDocCatalog (ClassDoc[] classdocs, Configuration config) { init(); + this.configuration = config; for (int i = 0; i < classdocs.length; i++) { addClassDoc(classdocs[i]); } @@ -151,9 +155,10 @@ import java.util.*; private void addClass(ClassDoc classdoc, Map<String,Set<ClassDoc>> map) { PackageDoc pkg = classdoc.containingPackage(); - if (pkg.isIncluded()) { - //No need to catalog this class since it's package is - //included on the command line + if (pkg.isIncluded() || (configuration.nodeprecated && Util.isDeprecated(pkg))) { + //No need to catalog this class if it's package is + //included on the command line or if -nodeprecated option is set + // and the containing package is marked as deprecated. return; } String key = Util.getPackageName(pkg); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java index ab8b0b63d6a..5da917e2c27 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -122,8 +122,12 @@ public class ClassTree { */ private void buildTree(ClassDoc[] classes, Configuration configuration) { for (int i = 0; i < classes.length; i++) { + // In the tree page (e.g overview-tree.html) do not include + // information of classes which are deprecated or are a part of a + // deprecated package. if (configuration.nodeprecated && - classes[i].tags("deprecated").length > 0) { + (Util.isDeprecated(classes[i]) || + Util.isDeprecated(classes[i].containingPackage()))) { continue; } if (classes[i].isEnum()) { diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java index 66536f9e1eb..5c64a8f19aa 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -27,27 +27,29 @@ package com.sun.tools.doclets.internal.toolkit.util; import com.sun.javadoc.*; import java.util.*; +import com.sun.tools.doclets.internal.toolkit.Configuration; /** - * Build list of all the deprecated classes, constructors, fields and methods. + * Build list of all the deprecated packages, classes, constructors, fields and methods. * * @author Atul M Dambalkar */ public class DeprecatedAPIListBuilder { - public static final int NUM_TYPES = 11; + public static final int NUM_TYPES = 12; - public static final int INTERFACE = 0; - public static final int CLASS = 1; - public static final int ENUM = 2; - public static final int EXCEPTION = 3; - public static final int ERROR = 4; - public static final int ANNOTATION_TYPE = 5; - public static final int FIELD = 6; - public static final int METHOD = 7; - public static final int CONSTRUCTOR = 8; - public static final int ENUM_CONSTANT = 9; - public static final int ANNOTATION_TYPE_MEMBER = 10; + public static final int PACKAGE = 0; + public static final int INTERFACE = 1; + public static final int CLASS = 2; + public static final int ENUM = 3; + public static final int EXCEPTION = 4; + public static final int ERROR = 5; + public static final int ANNOTATION_TYPE = 6; + public static final int FIELD = 7; + public static final int METHOD = 8; + public static final int CONSTRUCTOR = 9; + public static final int ENUM_CONSTANT = 10; + public static final int ANNOTATION_TYPE_MEMBER = 11; /** * List of deprecated type Lists. @@ -58,25 +60,33 @@ public class DeprecatedAPIListBuilder { /** * Constructor. * - * @param root Root of the tree. + * @param configuration the current configuration of the doclet */ - public DeprecatedAPIListBuilder(RootDoc root) { + public DeprecatedAPIListBuilder(Configuration configuration) { deprecatedLists = new ArrayList<List<Doc>>(); for (int i = 0; i < NUM_TYPES; i++) { deprecatedLists.add(i, new ArrayList<Doc>()); } - buildDeprecatedAPIInfo(root); + buildDeprecatedAPIInfo(configuration); } /** * Build the sorted list of all the deprecated APIs in this run. - * Build separate lists for deprecated classes, constructors, methods and - * fields. + * Build separate lists for deprecated packages, classes, constructors, + * methods and fields. * - * @param root Root of the tree. + * @param configuration the current configuration of the doclet. */ - private void buildDeprecatedAPIInfo(RootDoc root) { - ClassDoc[] classes = root.classes(); + private void buildDeprecatedAPIInfo(Configuration configuration) { + PackageDoc[] packages = configuration.packages; + PackageDoc pkg; + for (int c = 0; c < packages.length; c++) { + pkg = packages[c]; + if (Util.isDeprecated(pkg)) { + getList(PACKAGE).add(pkg); + } + } + ClassDoc[] classes = configuration.root.classes(); for (int i = 0; i < classes.length; i++) { ClassDoc cd = classes[i]; if (Util.isDeprecated(cd)) { @@ -90,7 +100,7 @@ public class DeprecatedAPIListBuilder { getList(ENUM).add(cd); } else if (cd.isError()) { getList(ERROR).add(cd); - }else if (cd.isAnnotationType()) { + } else if (cd.isAnnotationType()) { getList(ANNOTATION_TYPE).add(cd); } } @@ -102,7 +112,7 @@ public class DeprecatedAPIListBuilder { } if (cd.isAnnotationType()) { composeDeprecatedList(getList(ANNOTATION_TYPE_MEMBER), - ((AnnotationTypeDoc) cd).elements()); + ((AnnotationTypeDoc) cd).elements()); } } sortDeprecatedLists(); diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java index 5aee44ada94..7e62722f513 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -207,7 +207,17 @@ public class IndexBuilder { * Should this doc element be added to the index map? */ protected boolean shouldAddToIndexMap(Doc element) { - return !(noDeprecated && element.tags("deprecated").length > 0); + if (element instanceof PackageDoc) + // Do not add to index map if -nodeprecated option is set and the + // package is marked as deprecated. + return !(noDeprecated && Util.isDeprecated(element)); + else + // Do not add to index map if -nodeprecated option is set and if the + // Doc is marked as deprecated or the containing package is marked as + // deprecated. + return !(noDeprecated && + (Util.isDeprecated(element) || + Util.isDeprecated(((ProgramElementDoc)element).containingPackage()))); } /** diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java index 378b60b4005..a32f04890e9 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -76,13 +76,16 @@ public class PackageListWriter extends PrintWriter { protected void generatePackageListFile(RootDoc root) { PackageDoc[] packages = configuration.packages; - String[] names = new String[packages.length]; + ArrayList<String> names = new ArrayList<String>(); for (int i = 0; i < packages.length; i++) { - names[i] = packages[i].name(); + // if the -nodeprecated option is set and the package is marked as + // deprecated, do not include it in the packages list. + if (!(configuration.nodeprecated && Util.isDeprecated(packages[i]))) + names.add(packages[i].name()); } - Arrays.sort(names); - for (int i = 0; i < packages.length; i++) { - println(names[i]); + Collections.sort(names); + for (int i = 0; i < names.size(); i++) { + println(names.get(i)); } } } diff --git a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java index 1e6186b3a22..25b8db94733 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java @@ -861,11 +861,15 @@ public class Util { * @param doc the Doc to check. * @return true if the given Doc is deprecated. */ - public static boolean isDeprecated(ProgramElementDoc doc) { + public static boolean isDeprecated(Doc doc) { if (doc.tags("deprecated").length > 0) { return true; } - AnnotationDesc[] annotationDescList = doc.annotations(); + AnnotationDesc[] annotationDescList; + if (doc instanceof PackageDoc) + annotationDescList = ((PackageDoc)doc).annotations(); + else + annotationDescList = ((ProgramElementDoc)doc).annotations(); for (int i = 0; i < annotationDescList.length; i++) { if (annotationDescList[i].annotationType().qualifiedName().equals( java.lang.Deprecated.class.getName())){ diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/C2.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/C2.java new file mode 100644 index 00000000000..0b2aa882c76 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/C2.java @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2011, 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. + */ + +/** + * Another test class. + * + * @author Bhavesh Patel + */ +public class C2 { + + public static enum ModalExclusionType { + /** + * Test comment. + */ + NO_EXCLUDE, + /** + * Another comment. + */ + APPLICATION_EXCLUDE + }; + + /** + * A string constant. + */ + public static final String CONSTANT1 = "C2"; + + /** + * A sample method. + * + * @param param some parameter. + */ + public void method(String param) { + + } +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java new file mode 100644 index 00000000000..61c6c18e03e --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.*; + +/** +* Test Deprecated class +* @deprecated This class is Deprecated. +*/ +public class FooDepr { + + public void method(Vector<Object> o){} + +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java new file mode 100644 index 00000000000..a91f6663134 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6492694 + * @summary Test package deprecation. + * @author bpatel + * @library ../lib/ + * @build JavadocTester TestPackageDeprecation + * @run main TestPackageDeprecation + */ + +public class TestPackageDeprecation extends JavadocTester { + + //Test information. + private static final String BUG_ID = "6492694"; + + //Javadoc arguments. + private static final String[] ARGS1 = new String[]{ + "-d", BUG_ID + "-1", "-source", "1.5", "-sourcepath", SRC_DIR, "-use", "pkg", "pkg1", + SRC_DIR + FS + "C2.java", SRC_DIR + FS + "FooDepr.java" + }; + private static final String[] ARGS2 = new String[]{ + "-d", BUG_ID + "-2", "-source", "1.5", "-sourcepath", SRC_DIR, "-use", "-nodeprecated", + "pkg", "pkg1", SRC_DIR + FS + "C2.java", SRC_DIR + FS + "FooDepr.java" + }; + + //Input for string search tests. + private static final String[][] TEST1 = { + {BUG_ID + "-1" + FS + "pkg1" + FS + "package-summary.html", + "<div class=\"deprecatedContent\"><span class=\"strong\">Deprecated.</span>" + NL + + "<div class=\"block\"><i>This package is Deprecated.</i></div>" + }, + {BUG_ID + "-1" + FS + "deprecated-list.html", + "<li><a href=\"#package\">Deprecated Packages</a></li>" + } + }; + private static final String[][] TEST2 = NO_TEST; + private static final String[][] NEGATED_TEST1 = NO_TEST; + private static final String[][] NEGATED_TEST2 = { + {BUG_ID + "-2" + FS + "overview-summary.html", "pkg1"}, + {BUG_ID + "-2" + FS + "allclasses-frame.html", "FooDepr"} + }; + + /** + * The entry point of the test. + * @param args the array of command line arguments. + */ + public static void main(String[] args) { + TestPackageDeprecation tester = new TestPackageDeprecation(); + run(tester, ARGS1, TEST1, NEGATED_TEST1); + run(tester, ARGS2, TEST2, NEGATED_TEST2); + if ((new java.io.File(BUG_ID + "-2" + FS + "pkg1" + FS + + "package-summary.html")).exists()) { + throw new Error("Test Fails: packages summary should not be" + + "generated for deprecated package."); + } else { + System.out.println("Test passes: package-summary.html not found."); + } + if ((new java.io.File(BUG_ID + "-2" + FS + "FooDepr.html")).exists()) { + throw new Error("Test Fails: FooDepr should not be" + + "generated as it is deprecated."); + } else { + System.out.println("Test passes: FooDepr.html not found."); + } + tester.printSummary(); + } + + /** + * {@inheritDoc} + */ + public String getBugId() { + return BUG_ID; + } + + /** + * {@inheritDoc} + */ + public String getBugName() { + return getClass().getName(); + } +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java new file mode 100644 index 00000000000..82d82e695e4 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg; + +public class A { + /** Test constant. */ + public static final String DEMO= "y"; + public static final String THIS_IS_OK= "(x)"; + + public String DEMO_STRING = "<Hello World>"; + + public A() { + } +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java new file mode 100644 index 00000000000..351ab5d4713 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg1; + +public class ClassUseTest1 <T extends Foo & Foo2> { + + public <T extends Foo & Foo2> T method(T t) { + return null; + } +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java new file mode 100644 index 00000000000..6ef71c256c7 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg1; + +import java.util.*; + +/** +* Test Deprecated class +* @deprecated This class is Deprecated. +*/ +public class Foo { + + public void method(Vector<Object> o){} + +} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java new file mode 100644 index 00000000000..cef3bbc4246 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg1; + +public interface Foo2 {} diff --git a/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java new file mode 100644 index 00000000000..1a330803b3f --- /dev/null +++ b/langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2011, 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 pkg1 used. + * @deprecated This package is Deprecated. + */ +package pkg1; diff --git a/langtools/test/com/sun/javadoc/testSubTitle/TestSubTitle.java b/langtools/test/com/sun/javadoc/testSubTitle/TestSubTitle.java index ddbf07a4a21..ca881466180 100644 --- a/langtools/test/com/sun/javadoc/testSubTitle/TestSubTitle.java +++ b/langtools/test/com/sun/javadoc/testSubTitle/TestSubTitle.java @@ -37,8 +37,7 @@ public class TestSubTitle extends JavadocTester { private static final String BUG_ID = "7010342"; private static final String[][] TEST = { {BUG_ID + FS + "pkg" + FS + "package-summary.html", - "<div class=\"subTitle\">" + NL + "<div class=\"block\">This is the " + - "description of package pkg.</div>" + NL + "</div>" + "<div class=\"block\">This is the description of package pkg.</div>" }, {BUG_ID + FS + "pkg" + FS + "C.html", "<div class=\"subTitle\">pkg</div>" From 551c22b4331f3911331bc96496d158220a2c536e Mon Sep 17 00:00:00 2001 From: Michael McMahon <michaelm@openjdk.org> Date: Mon, 2 May 2011 11:02:58 +0100 Subject: [PATCH 107/147] 6569621: Problem with java/classes_net Reviewed-by: chegar --- .../share/classes/java/net/InetAddress.java | 49 +++- jdk/src/share/classes/java/net/Socket.java | 7 +- .../classes/java/net/SocketPermission.java | 257 +++++++++++++++--- .../classes/sun/net/www/URLConnection.java | 10 + .../classes/sun/net/www/http/HttpClient.java | 28 +- 5 files changed, 306 insertions(+), 45 deletions(-) diff --git a/jdk/src/share/classes/java/net/InetAddress.java b/jdk/src/share/classes/java/net/InetAddress.java index 792458184d5..8fac618d397 100644 --- a/jdk/src/share/classes/java/net/InetAddress.java +++ b/jdk/src/share/classes/java/net/InetAddress.java @@ -1013,6 +1013,12 @@ class InetAddress implements java.io.Serializable { return InetAddress.getAllByName(host)[0]; } + // called from deployment cache manager + public static InetAddress getByName(String host, InetAddress reqAddr) + throws UnknownHostException { + return InetAddress.getAllByName(host, reqAddr)[0]; + } + /** * Given the name of a host, returns an array of its IP addresses, * based on the configured name service on the system. @@ -1054,6 +1060,11 @@ class InetAddress implements java.io.Serializable { */ public static InetAddress[] getAllByName(String host) throws UnknownHostException { + return getAllByName(host, null); + } + + private static InetAddress[] getAllByName(String host, InetAddress reqAddr) + throws UnknownHostException { if (host == null || host.length() == 0) { InetAddress[] ret = new InetAddress[1]; @@ -1113,7 +1124,7 @@ class InetAddress implements java.io.Serializable { // We were expecting an IPv6 Litteral, but got something else throw new UnknownHostException("["+host+"]"); } - return getAllByName0(host); + return getAllByName0(host, reqAddr, true); } /** @@ -1174,6 +1185,12 @@ class InetAddress implements java.io.Serializable { */ static InetAddress[] getAllByName0 (String host, boolean check) throws UnknownHostException { + return getAllByName0 (host, null, check); + } + + private static InetAddress[] getAllByName0 (String host, InetAddress reqAddr, boolean check) + throws UnknownHostException { + /* If it gets here it is presumed to be a hostname */ /* Cache.get can return: null, unknownAddress, or InetAddress[] */ @@ -1191,7 +1208,7 @@ class InetAddress implements java.io.Serializable { /* If no entry in cache, then do the host lookup */ if (addresses == null) { - addresses = getAddressesFromNameService(host); + addresses = getAddressesFromNameService(host, reqAddr); } if (addresses == unknown_array) @@ -1200,7 +1217,7 @@ class InetAddress implements java.io.Serializable { return addresses.clone(); } - private static InetAddress[] getAddressesFromNameService(String host) + private static InetAddress[] getAddressesFromNameService(String host, InetAddress reqAddr) throws UnknownHostException { InetAddress[] addresses = null; @@ -1256,10 +1273,32 @@ class InetAddress implements java.io.Serializable { } } - // Cache the addresses. + // More to do? + if (reqAddr != null && addresses.length > 1 && !addresses[0].equals(reqAddr)) { + // Find it? + int i = 1; + for (; i < addresses.length; i++) { + if (addresses[i].equals(reqAddr)) { + break; + } + } + // Rotate + if (i < addresses.length) { + InetAddress tmp, tmp2 = reqAddr; + for (int j = 0; j < i; j++) { + tmp = addresses[j]; + addresses[j] = tmp2; + tmp2 = tmp; + } + addresses[i] = tmp2; + } + } + // Cache the address. cacheAddresses(host, addresses, success); + if (!success && ex != null) throw ex; + } finally { // Delete host from the lookupTable and notify // all threads waiting on the lookupTable monitor. @@ -1393,7 +1432,7 @@ class InetAddress implements java.io.Serializable { InetAddress[] localAddrs; try { localAddrs = - InetAddress.getAddressesFromNameService(local); + InetAddress.getAddressesFromNameService(local, null); } catch (UnknownHostException uhe) { // Rethrow with a more informative error message. UnknownHostException uhe2 = diff --git a/jdk/src/share/classes/java/net/Socket.java b/jdk/src/share/classes/java/net/Socket.java index e8eb3eab865..bf145dc98fe 100644 --- a/jdk/src/share/classes/java/net/Socket.java +++ b/jdk/src/share/classes/java/net/Socket.java @@ -127,11 +127,12 @@ class Socket implements java.io.Closeable { } if (security != null) { if (epoint.isUnresolved()) - security.checkConnect(epoint.getHostName(), - epoint.getPort()); + epoint = new InetSocketAddress(epoint.getHostName(), epoint.getPort()); + if (epoint.isUnresolved()) + security.checkConnect(epoint.getHostName(), epoint.getPort()); else security.checkConnect(epoint.getAddress().getHostAddress(), - epoint.getPort()); + epoint.getPort()); } impl = new SocksSocketImpl(p); impl.setSocket(this); diff --git a/jdk/src/share/classes/java/net/SocketPermission.java b/jdk/src/share/classes/java/net/SocketPermission.java index 4528da22b12..2855689373d 100644 --- a/jdk/src/share/classes/java/net/SocketPermission.java +++ b/jdk/src/share/classes/java/net/SocketPermission.java @@ -41,6 +41,7 @@ import java.io.ObjectInputStream; import java.io.IOException; import sun.net.util.IPAddressUtil; import sun.security.util.SecurityConstants; +import sun.security.util.Debug; /** @@ -211,13 +212,32 @@ implements java.io.Serializable // port range on host private transient int[] portrange; - // true if the trustProxy system property is set - private static boolean trustProxy; + private transient boolean defaultDeny = false; + + // true if this SocketPermission represents a hostname + // that failed our reverse mapping heuristic test + private transient boolean untrusted; + private transient boolean trusted; + + // true if the sun.net.trustNameService system property is set + private static boolean trustNameService; + + private static Debug debug = null; + private static boolean debugInit = false; static { Boolean tmp = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction("trustProxy")); - trustProxy = tmp.booleanValue(); + new sun.security.action.GetBooleanAction("sun.net.trustNameService")); + trustNameService = tmp.booleanValue(); + } + + private static synchronized Debug getDebug() + { + if (!debugInit) { + debug = Debug.getInstance("access"); + debugInit = true; + } + return debug; } /** @@ -263,6 +283,10 @@ implements java.io.Serializable init(getName(), mask); } + private void setDeny() { + defaultDeny = true; + } + private static String getHost(String host) { if (host.equals("")) { @@ -560,6 +584,38 @@ implements java.io.Serializable return mask; } + private boolean isUntrusted() + throws UnknownHostException + { + if (trusted) return false; + if (invalid || untrusted) return true; + try { + if (!trustNameService && (defaultDeny || + sun.net.www.URLConnection.isProxiedHost(hostname))) { + if (this.cname == null) { + this.getCanonName(); + } + if (!match(cname, hostname) && + (defaultDeny || !cname.equals(addresses[0].getHostAddress()))) { + // Last chance + if (!authorized(hostname, addresses[0].getAddress())) { + untrusted = true; + Debug debug = getDebug(); + if (debug != null && Debug.isOn("failure")) { + debug.println("socket access restriction: proxied host " + "(" + addresses[0] + ")" + " does not match " + cname + " from reverse lookup"); + } + return true; + } + } + trusted = true; + } + } catch (UnknownHostException uhe) { + invalid = true; + throw uhe; + } + return false; + } + /** * attempt to get the fully qualified domain name * @@ -567,7 +623,7 @@ implements java.io.Serializable void getCanonName() throws UnknownHostException { - if (cname != null || invalid) return; + if (cname != null || invalid || untrusted) return; // attempt to get the canonical name @@ -593,6 +649,141 @@ implements java.io.Serializable } } + private String cdomain, hdomain; + + private boolean match(String cname, String hname) { + String a = cname.toLowerCase(); + String b = hname.toLowerCase(); + if (a.startsWith(b) && + ((a.length() == b.length()) || (a.charAt(b.length()) == '.'))) + return true; + if (cdomain == null) { + cdomain = guessRegisteredDomain(a); + } + if (hdomain == null) { + hdomain = guessRegisteredDomain(b); + } + + return cdomain.length() != 0 && hdomain.length() != 0 + && cdomain.equals(hdomain); + } + + + /* Apart from special cases, this checks for 2 letter TLD + * (usually ccTLD) and then for a specific set of common labels + * indicating likely 2nd level public suffixes. If both conditions + * true then return right most three labels. Otherwise, return + * 2 rightmost labels. + * + * www.sun.com. -> sun.com + * www.sun.co.uk -> sun.co.uk + * www.sun.com.au -> sun.com.au + */ + + private String guessRegisteredDomain(String cname) { + int dot; + dot = cname.lastIndexOf('.'); + if (dot == -1) + return cname; + if (dot == 0) + return ""; + if (dot == cname.length() - 1) { + cname = cname.substring(0, cname.length() -1); + dot = cname.lastIndexOf('.'); + } + if (dot < 1) + return ""; + int second = cname.lastIndexOf('.', dot - 1); + if (second == -1) + return cname; + if (((cname.length() - dot) <= 3) && ((dot - second) <= 4) && second > 0) { + if (dot - second == 4) { + String s = cname.substring(second + 1, dot); + if (!(s.equals("com") || s.equals("org") || s.equals("edu"))) { + return cname.substring(second + 1); + } + } + int third = cname.lastIndexOf('.', second - 1); + if (third == -1) + return cname.substring(second + 1); + else + return cname.substring(third + 1); + } + return cname.substring(second + 1); + } + + + private boolean authorized(String cname, byte[] addr) { + if (addr.length == 4) + return authorizedIPv4(cname, addr); + else if (addr.length == 16) + return authorizedIPv6(cname, addr); + else + return false; + } + + private boolean authorizedIPv4(String cname, byte[] addr) { + String authHost = ""; + InetAddress auth; + + try { + authHost = "auth." + + (addr[3] & 0xff) + "." + (addr[2] & 0xff) + "." + + (addr[1] & 0xff) + "." + (addr[0] & 0xff) + + ".in-addr.arpa"; + // Following check seems unnecessary + // auth = InetAddress.getAllByName0(authHost, false)[0]; + authHost = hostname + '.' + authHost; + auth = InetAddress.getAllByName0(authHost, false)[0]; + if (auth.equals(InetAddress.getByAddress(addr))) { + return true; + } + Debug debug = getDebug(); + if (debug != null && Debug.isOn("failure")) { + debug.println("socket access restriction: IP address of " + auth + " != " + InetAddress.getByAddress(addr)); + } + } catch (UnknownHostException uhe) { + Debug debug = getDebug(); + if (debug != null && Debug.isOn("failure")) { + debug.println("socket access restriction: forward lookup failed for " + authHost); + } + } + return false; + } + + private boolean authorizedIPv6(String cname, byte[] addr) { + String authHost = ""; + InetAddress auth; + + try { + StringBuffer sb = new StringBuffer(39); + + for (int i = 15; i >= 0; i--) { + sb.append(Integer.toHexString(((addr[i]) & 0x0f))); + sb.append('.'); + sb.append(Integer.toHexString(((addr[i] >> 4) & 0x0f))); + sb.append('.'); + } + authHost = "auth." + sb.toString() + "IP6.ARPA"; + //auth = InetAddress.getAllByName0(authHost, false)[0]; + authHost = hostname + '.' + authHost; + auth = InetAddress.getAllByName0(authHost, false)[0]; + if (auth.equals(InetAddress.getByAddress(addr))) + return true; + Debug debug = getDebug(); + if (debug != null && Debug.isOn("failure")) { + debug.println("socket access restriction: IP address of " + auth + " != " + InetAddress.getByAddress(addr)); + } + } catch (UnknownHostException uhe) { + Debug debug = getDebug(); + if (debug != null && Debug.isOn("failure")) { + debug.println("socket access restriction: forward lookup failed for " + authHost); + } + } + return false; + } + + /** * get IP addresses. Sets invalid to true if we can't get them. * @@ -720,12 +911,7 @@ implements java.io.Serializable // return if either one of these NetPerm objects are invalid... if (this.invalid || that.invalid) { - return (trustProxy ? inProxyWeTrust(that) : false); - } - - - if (this.getName().equalsIgnoreCase(that.getName())) { - return true; + return compareHostnames(that); } try { @@ -778,28 +964,29 @@ implements java.io.Serializable that.getIP(); } - for (j = 0; j < this.addresses.length; j++) { - for (i=0; i < that.addresses.length; i++) { - if (this.addresses[j].equals(that.addresses[i])) - return true; + if (!(that.init_with_ip && this.isUntrusted())) { + for (j = 0; j < this.addresses.length; j++) { + for (i=0; i < that.addresses.length; i++) { + if (this.addresses[j].equals(that.addresses[i])) + return true; + } } - } - // XXX: if all else fails, compare hostnames? - // Do we really want this? - if (this.cname == null) { - this.getCanonName(); - } + // XXX: if all else fails, compare hostnames? + // Do we really want this? + if (this.cname == null) { + this.getCanonName(); + } - if (that.cname == null) { - that.getCanonName(); - } + if (that.cname == null) { + that.getCanonName(); + } - return (this.cname.equalsIgnoreCase(that.cname)); + return (this.cname.equalsIgnoreCase(that.cname)); + } } catch (UnknownHostException uhe) { - if (trustProxy) - return inProxyWeTrust(that); + return compareHostnames(that); } // make sure the first thing that is done here is to return @@ -808,19 +995,23 @@ implements java.io.Serializable return false; } - private boolean inProxyWeTrust(SocketPermission that) { - // if we trust the proxy, we see if the original names/IPs passed - // in were equal. + private boolean compareHostnames(SocketPermission that) { + // we see if the original names/IPs passed in were equal. String thisHost = hostname; String thatHost = that.hostname; - if (thisHost == null) + if (thisHost == null) { return false; - else + } else if (this.wildcard) { + final int cnameLength = this.cname.length(); + return thatHost.regionMatches(true, + (thatHost.length() - cnameLength), this.cname, 0, cnameLength); + } else { return thisHost.equalsIgnoreCase(thatHost); - + } } + /** * Checks two SocketPermission objects for equality. * <P> diff --git a/jdk/src/share/classes/sun/net/www/URLConnection.java b/jdk/src/share/classes/sun/net/www/URLConnection.java index a299ec9c531..2760acc2081 100644 --- a/jdk/src/share/classes/sun/net/www/URLConnection.java +++ b/jdk/src/share/classes/sun/net/www/URLConnection.java @@ -238,4 +238,14 @@ abstract public class URLConnection extends java.net.URLConnection { public void close() { url = null; } + + private static HashMap<String,Void> proxiedHosts = new HashMap<>(); + + public synchronized static void setProxiedHost(String host) { + proxiedHosts.put(host.toLowerCase(), null); + } + + public synchronized static boolean isProxiedHost(String host) { + return proxiedHosts.containsKey(host.toLowerCase()); + } } diff --git a/jdk/src/share/classes/sun/net/www/http/HttpClient.java b/jdk/src/share/classes/sun/net/www/http/HttpClient.java index 7d203829a83..2c2ba2280ff 100644 --- a/jdk/src/share/classes/sun/net/www/http/HttpClient.java +++ b/jdk/src/share/classes/sun/net/www/http/HttpClient.java @@ -301,7 +301,11 @@ public class HttpClient extends NetworkClient { } else { SecurityManager security = System.getSecurityManager(); if (security != null) { - security.checkConnect(url.getHost(), url.getPort()); + if (ret.proxy == Proxy.NO_PROXY || ret.proxy == null) { + security.checkConnect(InetAddress.getByName(url.getHost()).getHostAddress(), url.getPort()); + } else { + security.checkConnect(url.getHost(), url.getPort()); + } } ret.url = url; } @@ -457,11 +461,11 @@ public class HttpClient extends NetworkClient { protected synchronized void openServer() throws IOException { SecurityManager security = System.getSecurityManager(); - if (security != null) { - security.checkConnect(host, port); - } if (keepingAlive) { // already opened + if (security != null) { + security.checkConnect(host, port); + } return; } @@ -469,11 +473,19 @@ public class HttpClient extends NetworkClient { url.getProtocol().equals("https") ) { if ((proxy != null) && (proxy.type() == Proxy.Type.HTTP)) { + sun.net.www.URLConnection.setProxiedHost(host); + if (security != null) { + security.checkConnect(host,port); + } privilegedOpenServer((InetSocketAddress) proxy.address()); usingProxy = true; return; } else { // make direct connection + if (security != null) { + // redundant? + security.checkConnect(host, port); + } openServer(host, port); usingProxy = false; return; @@ -484,11 +496,19 @@ public class HttpClient extends NetworkClient { * ftp url. */ if ((proxy != null) && (proxy.type() == Proxy.Type.HTTP)) { + sun.net.www.URLConnection.setProxiedHost(host); + if (security != null) { + security.checkConnect(host,port); + } privilegedOpenServer((InetSocketAddress) proxy.address()); usingProxy = true; return; } else { // make direct connection + if (security != null) { + // redundant? + security.checkConnect(host, port); + } super.openServer(host, port); usingProxy = false; return; From fbecf91f80e67ca794b9dddaeded1a4ed424f7ac Mon Sep 17 00:00:00 2001 From: Maurizio Cimadamore <mcimadamore@openjdk.org> Date: Mon, 2 May 2011 12:05:41 +0100 Subject: [PATCH 108/147] 7040883: Compilation error: "length in Array is defined in an inaccessible class or interface" Fix of 7034511 (now backed out) is causing spurious accessibility errors Reviewed-by: jjg --- .../com/sun/tools/javac/code/Types.java | 2 +- .../javac/generics/7034511/T7034511a.java | 3 +- .../javac/generics/7034511/T7034511b.java | 3 +- .../javac/generics/typevars/T7040883.java | 38 +++++++++++++++++++ 4 files changed, 43 insertions(+), 3 deletions(-) create mode 100644 langtools/test/tools/javac/generics/typevars/T7040883.java diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java index 7aa624db28a..ecb2af4468c 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/code/Types.java +++ b/langtools/src/share/classes/com/sun/tools/javac/code/Types.java @@ -2314,7 +2314,7 @@ public class Types { if (elemtype == t.elemtype) return t; else - return new ArrayType(elemtype, t.tsym); + return new ArrayType(upperBound(elemtype), t.tsym); } @Override diff --git a/langtools/test/tools/javac/generics/7034511/T7034511a.java b/langtools/test/tools/javac/generics/7034511/T7034511a.java index 522b52efb33..5a8709cb598 100644 --- a/langtools/test/tools/javac/generics/7034511/T7034511a.java +++ b/langtools/test/tools/javac/generics/7034511/T7034511a.java @@ -1,6 +1,7 @@ /* * @test /nodynamiccopyright/ - * @bug 7034511 + * @ignore backing out 7034511, see 7040883 + * @bug 7034511 7040883 * @summary Loophole in typesafety * @compile/fail/ref=T7034511a.out -XDrawDiagnostics T7034511a.java */ diff --git a/langtools/test/tools/javac/generics/7034511/T7034511b.java b/langtools/test/tools/javac/generics/7034511/T7034511b.java index 49f47d47c2d..de29aea6f7b 100644 --- a/langtools/test/tools/javac/generics/7034511/T7034511b.java +++ b/langtools/test/tools/javac/generics/7034511/T7034511b.java @@ -1,6 +1,7 @@ /* * @test /nodynamiccopyright/ - * @bug 7034511 + * @ignore backing out 7034511, see 7040883 + * @bug 7034511 7040883 * @summary Loophole in typesafety * @compile/fail/ref=T7034511b.out -XDrawDiagnostics T7034511b.java */ diff --git a/langtools/test/tools/javac/generics/typevars/T7040883.java b/langtools/test/tools/javac/generics/typevars/T7040883.java new file mode 100644 index 00000000000..0a296ee0c3e --- /dev/null +++ b/langtools/test/tools/javac/generics/typevars/T7040883.java @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7040883 7034511 + * @summary Compilation error: "length in Array is defined in an inaccessible class or interface" + * @compile T7040883.java + */ + +public class T7040883 { + + <Z> Z[] getListeners(Class<Z> z) { return null; } + + void test(String s) { + int i = getListeners(s.getClass()).length; + } +} From a2642b89a7524f7cac945e8e2a37c4ee9bed25b1 Mon Sep 17 00:00:00 2001 From: Bhavesh Patel <bpatel@openjdk.org> Date: Mon, 2 May 2011 10:10:31 -0700 Subject: [PATCH 109/147] 6553182: Need to modify javadoc doclet for GPL Reviewed-by: jjg --- .../formats/html/ConfigurationImpl.java | 21 +++- .../formats/html/HtmlDocletWriter.java | 70 ++++++++---- .../formats/html/TagletWriterImpl.java | 7 +- .../html/resources/standard.properties | 1 + .../testDocRootLink/TestDocRootLink.java | 101 ++++++++++++++++++ .../sun/javadoc/testDocRootLink/pkg1/C1.java | 31 ++++++ .../javadoc/testDocRootLink/pkg1/package.html | 18 ++++ .../sun/javadoc/testDocRootLink/pkg2/C2.java | 31 ++++++ .../javadoc/testDocRootLink/pkg2/package.html | 18 ++++ .../testHelpOption/TestHelpOption.java | 10 +- 10 files changed, 281 insertions(+), 27 deletions(-) create mode 100644 langtools/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java create mode 100644 langtools/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java create mode 100644 langtools/test/com/sun/javadoc/testDocRootLink/pkg1/package.html create mode 100644 langtools/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java create mode 100644 langtools/test/com/sun/javadoc/testDocRootLink/pkg2/package.html diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java index 0903095b126..38cf715ca7d 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2011, 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 @@ -31,6 +31,7 @@ import com.sun.tools.doclets.internal.toolkit.util.*; import com.sun.javadoc.*; import java.util.*; import java.io.*; +import java.net.*; /** * Configure the output based on the command line options. @@ -48,6 +49,7 @@ import java.io.*; * @author Robert Field. * @author Atul Dambalkar. * @author Jamie Ho + * @author Bhavesh Patel (Modified) */ public class ConfigurationImpl extends Configuration { @@ -109,6 +111,11 @@ public class ConfigurationImpl extends Configuration { */ public String stylesheetfile = ""; + /** + * Argument for command line option "-Xdocrootparent". + */ + public String docrootparent = ""; + /** * True if command line option "-nohelp" is used. Default value is false. */ @@ -239,6 +246,8 @@ public class ConfigurationImpl extends Configuration { stylesheetfile = os[1]; } else if (opt.equals("-charset")) { charset = os[1]; + } else if (opt.equals("-xdocrootparent")) { + docrootparent = os[1]; } else if (opt.equals("-nohelp")) { nohelp = true; } else if (opt.equals("-splitindex")) { @@ -322,7 +331,8 @@ public class ConfigurationImpl extends Configuration { option.equals("-helpfile") || option.equals("-stylesheetfile") || option.equals("-charset") || - option.equals("-overview")) { + option.equals("-overview") || + option.equals("-xdocrootparent")) { return 2; } else { return 0; @@ -372,6 +382,13 @@ public class ConfigurationImpl extends Configuration { return false; } nohelp = true; + } else if (opt.equals("-xdocrootparent")) { + try { + new URL(os[1]); + } catch (MalformedURLException e) { + reporter.printError(getText("doclet.MalformedURL", os[1])); + return false; + } } else if (opt.equals("-overview")) { if (nooverview == true) { reporter.printError(getText("doclet.Option_conflict", diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java index 0e794bee69f..e0b39b933f4 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java @@ -159,22 +159,42 @@ public class HtmlDocletWriter extends HtmlDocWriter { StringBuilder buf = new StringBuilder(); int previndex = 0; while (true) { - // Search for lowercase version of {@docRoot} - index = lowerHtml.indexOf("{@docroot}", previndex); - // If next {@docRoot} tag not found, append rest of htmlstr and exit loop - if (index < 0) { - buf.append(htmlstr.substring(previndex)); - break; - } - // If next {@docroot} tag found, append htmlstr up to start of tag - buf.append(htmlstr.substring(previndex, index)); - previndex = index + 10; // length for {@docroot} string - // Insert relative path where {@docRoot} was located - buf.append(relativepathNoSlash); - // Append slash if next character is not a slash - if (relativepathNoSlash.length() > 0 && previndex < htmlstr.length() - && htmlstr.charAt(previndex) != '/') { - buf.append(DirectoryManager.URL_FILE_SEPARATOR); + if (configuration.docrootparent.length() > 0) { + // Search for lowercase version of {@docRoot}/.. + index = lowerHtml.indexOf("{@docroot}/..", previndex); + // If next {@docRoot}/.. pattern not found, append rest of htmlstr and exit loop + if (index < 0) { + buf.append(htmlstr.substring(previndex)); + break; + } + // If next {@docroot}/.. pattern found, append htmlstr up to start of tag + buf.append(htmlstr.substring(previndex, index)); + previndex = index + 13; // length for {@docroot}/.. string + // Insert docrootparent absolute path where {@docRoot}/.. was located + + buf.append(configuration.docrootparent); + // Append slash if next character is not a slash + if (previndex < htmlstr.length() && htmlstr.charAt(previndex) != '/') { + buf.append(DirectoryManager.URL_FILE_SEPARATOR); + } + } else { + // Search for lowercase version of {@docRoot} + index = lowerHtml.indexOf("{@docroot}", previndex); + // If next {@docRoot} tag not found, append rest of htmlstr and exit loop + if (index < 0) { + buf.append(htmlstr.substring(previndex)); + break; + } + // If next {@docroot} tag found, append htmlstr up to start of tag + buf.append(htmlstr.substring(previndex, index)); + previndex = index + 10; // length for {@docroot} string + // Insert relative path where {@docRoot} was located + buf.append(relativepathNoSlash); + // Append slash if next character is not a slash + if (relativepathNoSlash.length() > 0 && previndex < htmlstr.length() && + htmlstr.charAt(previndex) != '/') { + buf.append(DirectoryManager.URL_FILE_SEPARATOR); + } } } return buf.toString(); @@ -2318,6 +2338,7 @@ public class HtmlDocletWriter extends HtmlDocWriter { public String commentTagsToString(Tag holderTag, Doc doc, Tag[] tags, boolean isFirstSentence) { StringBuilder result = new StringBuilder(); + boolean textTagChange = false; // Array of all possible inline tags for this javadoc run configuration.tagletManager.checkTags(doc, tags, true); for (int i = 0; i < tags.length; i++) { @@ -2333,13 +2354,26 @@ public class HtmlDocletWriter extends HtmlDocWriter { result.append(output == null ? "" : output.toString()); if (originalLength == 0 && isFirstSentence && tagelem.name().equals("@inheritDoc") && result.length() > 0) { break; + } else if (configuration.docrootparent.length() > 0 && + tagelem.name().equals("@docRoot") && + ((tags[i + 1]).text()).startsWith("/..")) { + //If Xdocrootparent switch ON, set the flag to remove the /.. occurance after + //{@docRoot} tag in the very next Text tag. + textTagChange = true; + continue; } else { - continue; + continue; } } else { + String text = tagelem.text(); + //If Xdocrootparent switch ON, remove the /.. occurance after {@docRoot} tag. + if (textTagChange) { + text = text.replaceFirst("/..", ""); + textTagChange = false; + } //This is just a regular text tag. The text may contain html links (<a>) //or inline tag {@docRoot}, which will be handled as special cases. - String text = redirectRelativeLinks(tagelem.holder(), tagelem.text()); + text = redirectRelativeLinks(tagelem.holder(), text); // Replace @docRoot only if not represented by an instance of DocRootTaglet, // that is, only if it was not present in a source file doc comment. diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java index a72b73984d4..f0b49781e42 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -59,7 +59,10 @@ public class TagletWriterImpl extends TagletWriter { * {@inheritDoc} */ public TagletOutput getDocRootOutput() { - return new TagletOutputImpl(htmlWriter.relativepathNoSlash); + if (htmlWriter.configuration.docrootparent.length() > 0) + return new TagletOutputImpl(htmlWriter.configuration.docrootparent); + else + return new TagletOutputImpl(htmlWriter.relativepathNoSlash); } /** diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties index 508c0b23b5c..f3ef939badf 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties @@ -247,6 +247,7 @@ doclet.usage=Provided by Standard doclet:\n\ -tag <name>:<locations>:<header> Specify single argument custom tags\n\ -taglet The fully qualified name of Taglet to register\n\ -tagletpath The path to Taglets\n\ + -Xdocrootparent <url> Replaces all appearances of @docRoot followed by /.. in doc comments with <url>\n\ -charset <charset> Charset for cross-platform viewing of generated documentation.\n\ -helpfile <file> Include file that help link links to\n\ -linksource Generate source in HTML\n\ diff --git a/langtools/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java b/langtools/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java new file mode 100644 index 00000000000..531fc7eb269 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 6553182 + * @summary This test verifies the -Xdocrootparent option. + * @author Bhavesh Patel + * @library ../lib/ + * @build JavadocTester TestDocRootLink + * @run main TestDocRootLink + */ +public class TestDocRootLink extends JavadocTester { + + private static final String BUG_ID = "6553182"; + private static final String[][] TEST1 = { + {BUG_ID + FS + "pkg1" + FS + "C1.html", + "<a href=\"../../technotes/guides/index.html\">" + }, + {BUG_ID + FS + "pkg1" + FS + "package-summary.html", + "<a href=\"../../technotes/guides/index.html\">" + } + }; + private static final String[][] NEGATED_TEST1 = { + {BUG_ID + FS + "pkg1" + FS + "C1.html", + "<a href=\"http://download.oracle.com/javase/7/docs/technotes/guides/index.html\">" + }, + {BUG_ID + FS + "pkg1" + FS + "package-summary.html", + "<a href=\"http://download.oracle.com/javase/7/docs/technotes/guides/index.html\">" + } + }; + private static final String[][] TEST2 = { + {BUG_ID + FS + "pkg2" + FS + "C2.html", + "<a href=\"http://download.oracle.com/javase/7/docs/technotes/guides/index.html\">" + }, + {BUG_ID + FS + "pkg2" + FS + "package-summary.html", + "<a href=\"http://download.oracle.com/javase/7/docs/technotes/guides/index.html\">" + } + }; + private static final String[][] NEGATED_TEST2 = { + {BUG_ID + FS + "pkg2" + FS + "C2.html", + "<a href=\"../../technotes/guides/index.html\">" + }, + {BUG_ID + FS + "pkg2" + FS + "package-summary.html", + "<a href=\"../../technotes/guides/index.html\">" + } + }; + private static final String[] ARGS1 = + new String[]{ + "-d", BUG_ID, "-sourcepath", SRC_DIR, "pkg1" + }; + private static final String[] ARGS2 = + new String[]{ + "-d", BUG_ID, "-Xdocrootparent", "http://download.oracle.com/javase/7/docs", "-sourcepath", SRC_DIR, "pkg2" + }; + + /** + * The entry point of the test. + * @param args the array of command line arguments. + */ + public static void main(String[] args) { + TestDocRootLink tester = new TestDocRootLink(); + run(tester, ARGS1, TEST1, NEGATED_TEST1); + run(tester, ARGS2, TEST2, NEGATED_TEST2); + tester.printSummary(); + } + + /** + * {@inheritDoc} + */ + public String getBugId() { + return BUG_ID; + } + + /** + * {@inheritDoc} + */ + public String getBugName() { + return getClass().getName(); + } +} diff --git a/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java b/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java new file mode 100644 index 00000000000..9bca4584a7c --- /dev/null +++ b/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg1; + +/** + * Class 1. This is a test. + * Refer <a href="{@docRoot}/../technotes/guides/index.html">Here</a>. Lets see if this works + * or not. + */ +public class C1 {} diff --git a/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/package.html b/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/package.html new file mode 100644 index 00000000000..865079e6809 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testDocRootLink/pkg1/package.html @@ -0,0 +1,18 @@ +<html> +<head> +<title>javax.management package + + +This is a test. +

    + @see + Test document 1 + in particular the + + + Test document 2. + + @since 1.5 + + + diff --git a/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java b/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java new file mode 100644 index 00000000000..9784f0cb6ff --- /dev/null +++ b/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2011, 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. + */ + +package pkg2; + +/** + * Class 1. This is a test. + * Refer Here. Lets see if this works + * or not. + */ +public class C2 {} diff --git a/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/package.html b/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/package.html new file mode 100644 index 00000000000..865079e6809 --- /dev/null +++ b/langtools/test/com/sun/javadoc/testDocRootLink/pkg2/package.html @@ -0,0 +1,18 @@ + + +javax.management package + + +This is a test. +

    + @see + Test document 1 + in particular the + + + Test document 2. + + @since 1.5 + + + diff --git a/langtools/test/com/sun/javadoc/testHelpOption/TestHelpOption.java b/langtools/test/com/sun/javadoc/testHelpOption/TestHelpOption.java index 680f980992c..f817596a4fb 100644 --- a/langtools/test/com/sun/javadoc/testHelpOption/TestHelpOption.java +++ b/langtools/test/com/sun/javadoc/testHelpOption/TestHelpOption.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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,20 +23,19 @@ /* * @test - * @bug 4934778 4777599 + * @bug 4934778 4777599 6553182 * @summary Make sure that the -help option works properly. Make sure * the help link appears in the documentation. * @author jamieh * @library ../lib/ - * @build JavadocTester - * @build TestHelpOption + * @build JavadocTester TestHelpOption * @run main TestHelpOption */ public class TestHelpOption extends JavadocTester { //Test information. - private static final String BUG_ID = "4934778-4777599"; + private static final String BUG_ID = "4934778-4777599-6553182"; //Javadoc arguments. private static final String[] ARGS = new String[] { @@ -79,6 +78,7 @@ public class TestHelpOption extends JavadocTester { {STANDARD_OUTPUT, "-tag "}, {STANDARD_OUTPUT, "-taglet "}, {STANDARD_OUTPUT, "-tagletpath "}, + {STANDARD_OUTPUT, "-Xdocrootparent "}, {STANDARD_OUTPUT, "-charset "}, {STANDARD_OUTPUT, "-helpfile "}, {STANDARD_OUTPUT, "-linksource "}, From 9678eb84764808ba719c63d19441b7c6ea58af94 Mon Sep 17 00:00:00 2001 From: Bhavesh Patel Date: Mon, 2 May 2011 10:14:27 -0700 Subject: [PATCH 110/147] 6553182: Need to modify javadoc doclet for GPL Reviewed-by: jjg --- jdk/make/docs/Makefile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/jdk/make/docs/Makefile b/jdk/make/docs/Makefile index f2ed1a8fae1..9a5a1aa29b7 100644 --- a/jdk/make/docs/Makefile +++ b/jdk/make/docs/Makefile @@ -51,6 +51,7 @@ DEV_DOCS_URL-5 = http://java.sun.com/j2se/1.5.0/docs/index.html DEV_DOCS_URL-6 = http://download.oracle.com/javase/6/docs/index.html DEV_DOCS_URL-7 = http://download.oracle.com/javase/7/docs/index.html DEV_DOCS_URL = $(DEV_DOCS_URL-$(JDK_MINOR_VERSION)) +DOCS_BASE_URL = http://download.oracle.com/javase/7/docs # Url to Java Language Spec #JLS3_URL = http://java.sun.com/docs/books/jls/ @@ -205,7 +206,13 @@ COMMON_JAVADOCFLAGS = \ -use \ -keywords \ $(ADDITIONAL_JAVADOCFLAGS) -ADDITIONAL_JAVADOCFLAGS = + +ifdef OPENJDK + ADDITIONAL_JAVADOCFLAGS = \ + -Xdocrootparent $(DOCS_BASE_URL) +else + ADDITIONAL_JAVADOCFLAGS = +endif # Draft used for non-fcs documents JDK_IS_FCS = false From 371bd92aef4e922ffebb5c2ac0a6559b5c9f3feb Mon Sep 17 00:00:00 2001 From: Xueming Shen Date: Mon, 2 May 2011 11:42:52 -0700 Subject: [PATCH 111/147] 7040220: java/char_encodin Optimize UTF-8 charset for String.getBytes()/new String(byte[]) Implement sun.nio.cs.ArrayEn/Decoer in utf8 Reviewed-by: alanb --- .../share/classes/java/lang/StringCoding.java | 12 +- .../share/classes/java/util/zip/ZipCoder.java | 29 ++- jdk/src/share/classes/sun/nio/cs/UTF_8.java | 174 +++++++++++++++++- .../sun/nio/cs/StrCodingBenchmarkUTF8.java | 92 +++++++++ jdk/test/sun/nio/cs/TestStringCoding.java | 4 +- jdk/test/sun/nio/cs/TestStringCodingUTF8.java | 166 +++++++++++++++++ jdk/test/sun/nio/cs/TestUTF8.java | 53 +++++- 7 files changed, 512 insertions(+), 18 deletions(-) create mode 100644 jdk/test/sun/nio/cs/StrCodingBenchmarkUTF8.java create mode 100644 jdk/test/sun/nio/cs/TestStringCodingUTF8.java diff --git a/jdk/src/share/classes/java/lang/StringCoding.java b/jdk/src/share/classes/java/lang/StringCoding.java index 95e437df532..95fb45ab659 100644 --- a/jdk/src/share/classes/java/lang/StringCoding.java +++ b/jdk/src/share/classes/java/lang/StringCoding.java @@ -222,13 +222,13 @@ class StringCoding { off = 0; } } + cd.onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE) + .reset(); if (cd instanceof ArrayDecoder) { int clen = ((ArrayDecoder)cd).decode(ba, off, len, ca); return safeTrim(ca, clen, cs, isTrusted); } else { - cd.onMalformedInput(CodingErrorAction.REPLACE) - .onUnmappableCharacter(CodingErrorAction.REPLACE) - .reset(); ByteBuffer bb = ByteBuffer.wrap(ba, off, len); CharBuffer cb = CharBuffer.wrap(ca); try { @@ -356,13 +356,13 @@ class StringCoding { off = 0; } } + ce.onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE) + .reset(); if (ce instanceof ArrayEncoder) { int blen = ((ArrayEncoder)ce).encode(ca, off, len, ba); return safeTrim(ba, blen, cs, isTrusted); } else { - ce.onMalformedInput(CodingErrorAction.REPLACE) - .onUnmappableCharacter(CodingErrorAction.REPLACE) - .reset(); ByteBuffer bb = ByteBuffer.wrap(ba); CharBuffer cb = CharBuffer.wrap(ca, off, len); try { diff --git a/jdk/src/share/classes/java/util/zip/ZipCoder.java b/jdk/src/share/classes/java/util/zip/ZipCoder.java index a649c7056a3..62844916f3d 100644 --- a/jdk/src/share/classes/java/util/zip/ZipCoder.java +++ b/jdk/src/share/classes/java/util/zip/ZipCoder.java @@ -34,6 +34,8 @@ import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; import java.nio.charset.CodingErrorAction; import java.util.Arrays; +import sun.nio.cs.ArrayDecoder; +import sun.nio.cs.ArrayEncoder; /** * Utility class for zipfile name and comment decoding and encoding @@ -47,6 +49,15 @@ final class ZipCoder { char[] ca = new char[len]; if (len == 0) return new String(ca); + // UTF-8 only for now. Other ArrayDeocder only handles + // CodingErrorAction.REPLACE mode. ZipCoder uses + // REPORT mode. + if (isUTF8 && cd instanceof ArrayDecoder) { + int clen = ((ArrayDecoder)cd).decode(ba, 0, length, ca); + if (clen == -1) // malformed + throw new IllegalArgumentException("MALFORMED"); + return new String(ca, 0, clen); + } ByteBuffer bb = ByteBuffer.wrap(ba, 0, length); CharBuffer cb = CharBuffer.wrap(ca); CoderResult cr = cd.decode(bb, cb, true); @@ -69,6 +80,14 @@ final class ZipCoder { byte[] ba = new byte[len]; if (len == 0) return ba; + // UTF-8 only for now. Other ArrayDeocder only handles + // CodingErrorAction.REPLACE mode. + if (isUTF8 && ce instanceof ArrayEncoder) { + int blen = ((ArrayEncoder)ce).encode(ca, 0, ca.length, ba); + if (blen == -1) // malformed + throw new IllegalArgumentException("MALFORMED"); + return Arrays.copyOf(ba, blen); + } ByteBuffer bb = ByteBuffer.wrap(ba); CharBuffer cb = CharBuffer.wrap(ca); CoderResult cr = ce.encode(cb, bb, true); @@ -85,7 +104,7 @@ final class ZipCoder { // assume invoked only if "this" is not utf8 byte[] getBytesUTF8(String s) { - if (isutf8) + if (isUTF8) return getBytes(s); if (utf8 == null) utf8 = new ZipCoder(StandardCharset.UTF_8); @@ -94,7 +113,7 @@ final class ZipCoder { String toStringUTF8(byte[] ba, int len) { - if (isutf8) + if (isUTF8) return toString(ba, len); if (utf8 == null) utf8 = new ZipCoder(StandardCharset.UTF_8); @@ -102,18 +121,18 @@ final class ZipCoder { } boolean isUTF8() { - return isutf8; + return isUTF8; } private Charset cs; private CharsetDecoder dec; private CharsetEncoder enc; - private boolean isutf8; + private boolean isUTF8; private ZipCoder utf8; private ZipCoder(Charset cs) { this.cs = cs; - this.isutf8 = cs.name().equals(StandardCharset.UTF_8.name()); + this.isUTF8 = cs.name().equals(StandardCharset.UTF_8.name()); } static ZipCoder get(Charset charset) { diff --git a/jdk/src/share/classes/sun/nio/cs/UTF_8.java b/jdk/src/share/classes/sun/nio/cs/UTF_8.java index 67b7dc84125..56d6bcc7b6d 100644 --- a/jdk/src/share/classes/sun/nio/cs/UTF_8.java +++ b/jdk/src/share/classes/sun/nio/cs/UTF_8.java @@ -32,6 +32,7 @@ import java.nio.charset.Charset; import java.nio.charset.CharsetDecoder; import java.nio.charset.CharsetEncoder; import java.nio.charset.CoderResult; +import java.nio.charset.CodingErrorAction; /* Legal UTF-8 Byte Sequences * @@ -77,7 +78,8 @@ class UTF_8 extends Unicode dst.position(dp - dst.arrayOffset()); } - private static class Decoder extends CharsetDecoder { + private static class Decoder extends CharsetDecoder + implements ArrayDecoder { private Decoder(Charset cs) { super(cs, 1.0f, 1.0f); } @@ -353,9 +355,132 @@ class UTF_8 extends Unicode else return decodeBufferLoop(src, dst); } + + private static ByteBuffer getByteBuffer(ByteBuffer bb, byte[] ba, int sp) + { + if (bb == null) + bb = ByteBuffer.wrap(ba); + bb.position(sp); + return bb; + } + + // returns -1 if there is malformed byte(s) and the + // "action" for malformed input is not REPLACE. + public int decode(byte[] sa, int sp, int len, char[] da) { + final int sl = sp + len; + int dp = 0; + int dlASCII = Math.min(len, da.length); + ByteBuffer bb = null; // only necessary if malformed + + // ASCII only optimized loop + while (dp < dlASCII && sa[sp] >= 0) + da[dp++] = (char) sa[sp++]; + + while (sp < sl) { + int b1 = sa[sp++]; + if (b1 >= 0) { + // 1 byte, 7 bits: 0xxxxxxx + da[dp++] = (char) b1; + } else if ((b1 >> 5) == -2) { + // 2 bytes, 11 bits: 110xxxxx 10xxxxxx + if (sp < sl) { + int b2 = sa[sp++]; + if (isMalformed2(b1, b2)) { + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + sp--; // malformedN(bb, 2) always returns 1 + } else { + da[dp++] = (char) (((b1 << 6) ^ b2)^ + (((byte) 0xC0 << 6) ^ + ((byte) 0x80 << 0))); + } + continue; + } + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + return dp; + } else if ((b1 >> 4) == -2) { + // 3 bytes, 16 bits: 1110xxxx 10xxxxxx 10xxxxxx + if (sp + 1 < sl) { + int b2 = sa[sp++]; + int b3 = sa[sp++]; + if (isMalformed3(b1, b2, b3)) { + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + sp -=3; + bb = getByteBuffer(bb, sa, sp); + sp += malformedN(bb, 3).length(); + } else { + da[dp++] = (char)((b1 << 12) ^ + (b2 << 6) ^ + (b3 ^ + (((byte) 0xE0 << 12) ^ + ((byte) 0x80 << 6) ^ + ((byte) 0x80 << 0)))); + } + continue; + } + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + return dp; + } else if ((b1 >> 3) == -2) { + // 4 bytes, 21 bits: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx + if (sp + 2 < sl) { + int b2 = sa[sp++]; + int b3 = sa[sp++]; + int b4 = sa[sp++]; + int uc = ((b1 << 18) ^ + (b2 << 12) ^ + (b3 << 6) ^ + (b4 ^ + (((byte) 0xF0 << 18) ^ + ((byte) 0x80 << 12) ^ + ((byte) 0x80 << 6) ^ + ((byte) 0x80 << 0)))); + if (isMalformed4(b2, b3, b4) || + // shortest form check + !Character.isSupplementaryCodePoint(uc)) { + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + sp -= 4; + bb = getByteBuffer(bb, sa, sp); + sp += malformedN(bb, 4).length(); + } else { + da[dp++] = Character.highSurrogate(uc); + da[dp++] = Character.lowSurrogate(uc); + } + continue; + } + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + return dp; + } else { + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement().charAt(0); + sp--; + bb = getByteBuffer(bb, sa, sp); + CoderResult cr = malformedN(bb, 1); + if (!cr.isError()) { + // leading byte for 5 or 6-byte, but don't have enough + // bytes in buffer to check. Consumed rest as malformed. + return dp; + } + sp += cr.length(); + } + } + return dp; + } } - private static class Encoder extends CharsetEncoder { + private static class Encoder extends CharsetEncoder + implements ArrayEncoder { private Encoder(Charset cs) { super(cs, 1.1f, 3.0f); @@ -495,5 +620,50 @@ class UTF_8 extends Unicode else return encodeBufferLoop(src, dst); } + + // returns -1 if there is malformed char(s) and the + // "action" for malformed input is not REPLACE. + public int encode(char[] sa, int sp, int len, byte[] da) { + int sl = sp + len; + int dp = 0; + int dlASCII = dp + Math.min(len, da.length); + + // ASCII only optimized loop + while (dp < dlASCII && sa[sp] < '\u0080') + da[dp++] = (byte) sa[sp++]; + + while (sp < sl) { + char c = sa[sp++]; + if (c < 0x80) { + // Have at most seven bits + da[dp++] = (byte)c; + } else if (c < 0x800) { + // 2 bytes, 11 bits + da[dp++] = (byte)(0xc0 | (c >> 6)); + da[dp++] = (byte)(0x80 | (c & 0x3f)); + } else if (Character.isSurrogate(c)) { + if (sgp == null) + sgp = new Surrogate.Parser(); + int uc = sgp.parse(c, sa, sp - 1, sl); + if (uc < 0) { + if (malformedInputAction() != CodingErrorAction.REPLACE) + return -1; + da[dp++] = replacement()[0]; + } else { + da[dp++] = (byte)(0xf0 | ((uc >> 18))); + da[dp++] = (byte)(0x80 | ((uc >> 12) & 0x3f)); + da[dp++] = (byte)(0x80 | ((uc >> 6) & 0x3f)); + da[dp++] = (byte)(0x80 | (uc & 0x3f)); + sp++; // 2 chars + } + } else { + // 3 bytes, 16 bits + da[dp++] = (byte)(0xe0 | ((c >> 12))); + da[dp++] = (byte)(0x80 | ((c >> 6) & 0x3f)); + da[dp++] = (byte)(0x80 | (c & 0x3f)); + } + } + return dp; + } } } diff --git a/jdk/test/sun/nio/cs/StrCodingBenchmarkUTF8.java b/jdk/test/sun/nio/cs/StrCodingBenchmarkUTF8.java new file mode 100644 index 00000000000..eecc6ec2d1d --- /dev/null +++ b/jdk/test/sun/nio/cs/StrCodingBenchmarkUTF8.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +import java.util.*; +import java.nio.*; +import java.nio.charset.*; + +public class StrCodingBenchmarkUTF8 { + + public static void main(String[] args) throws Throwable { + + final int itrs = Integer.getInteger("iterations", 100000); + final int size = 2048; + final int subsize = Integer.getInteger("subsize", 128); + final Random rnd = new Random(); + final int maxchar = 0x7f; + + Charset charset = Charset.forName("UTF-8"); + final String csn = charset.name(); + final Charset cs = charset; + + int[] starts = new int[] { 0, 0x80, 0x800, 0x10000}; + for (int nb = 1; nb <= 4; nb++) { + + final CharsetEncoder enc = cs.newEncoder(); + + char[] cc = new char[size]; + int i = 0; + while (i < size - 3) { + i += Character.toChars(starts[nb - 1] + rnd.nextInt(maxchar), cc, i); + } + + final String string = new String(cc); + final byte[] bytes = string.getBytes(cs); + + System.out.printf("%n--------%s[nb=%d]---------%n", csn, nb); + int sz = 12; + while (sz < size) { + System.out.printf(" [len=%d]%n", sz); + final byte[] bs = Arrays.copyOf(bytes, sz); + final String str = new String(bs, csn); + StrCodingBenchmark.Job[] jobs = { + new StrCodingBenchmark.Job("String decode: csn") { + public void work() throws Throwable { + for (int i = 0; i < itrs; i++) + new String(bs, csn); + }}, + + new StrCodingBenchmark.Job("String decode: cs") { + public void work() throws Throwable { + for (int i = 0; i < itrs; i++) + new String(bs, cs); + }}, + + new StrCodingBenchmark.Job("String encode: csn") { + public void work() throws Throwable { + for (int i = 0; i < itrs; i++) + str.getBytes(csn); + }}, + + new StrCodingBenchmark.Job("String encode: cs") { + public void work() throws Throwable { + for (int i = 0; i < itrs; i++) + str.getBytes(cs); + }}, + }; + StrCodingBenchmark.time(StrCodingBenchmark.filter(null, jobs)); + sz <<= 1; + } + } + } +} diff --git a/jdk/test/sun/nio/cs/TestStringCoding.java b/jdk/test/sun/nio/cs/TestStringCoding.java index 4ab70731035..c4837e956ae 100644 --- a/jdk/test/sun/nio/cs/TestStringCoding.java +++ b/jdk/test/sun/nio/cs/TestStringCoding.java @@ -24,7 +24,7 @@ */ /* @test - @bug 6636323 6636319 + @bug 6636323 6636319 7040220 @summary Test if StringCoding and NIO result have the same de/encoding result * @run main/othervm/timeout=2000 TestStringCoding */ @@ -111,6 +111,8 @@ public class TestStringCoding { //encode unmappable surrogates if (enc instanceof sun.nio.cs.ArrayEncoder && cs.contains(Charset.forName("ASCII"))) { + if (cs.name().equals("UTF-8")) // utf8 handles surrogates + return; enc.replaceWith(new byte[] { (byte)'A'}); sun.nio.cs.ArrayEncoder cae = (sun.nio.cs.ArrayEncoder)enc; diff --git a/jdk/test/sun/nio/cs/TestStringCodingUTF8.java b/jdk/test/sun/nio/cs/TestStringCodingUTF8.java new file mode 100644 index 00000000000..fdc204849b7 --- /dev/null +++ b/jdk/test/sun/nio/cs/TestStringCodingUTF8.java @@ -0,0 +1,166 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* @test + @bug 7040220 + @summary Test if StringCoding and NIO result have the same de/encoding result for UTF-8 + * @run main/othervm/timeout=2000 TestStringCodingUTF8 + */ + +import java.util.*; +import java.nio.*; +import java.nio.charset.*; + +public class TestStringCodingUTF8 { + public static void main(String[] args) throws Throwable { + test(); + // security manager on + System.setSecurityManager(new PermissiveSecurityManger()); + test(); + } + + static void test() throws Throwable { + Charset cs = Charset.forName("UTF-8"); + char[] bmp = new char[0x10000]; + for (int i = 0; i < 0x10000; i++) { + bmp[i] = (char)i; + } + test(cs, bmp, 0, bmp.length); + + ArrayList list = new ArrayList<>(0x20000); + for (int i = 0; i < 0x20000; i++) { + list.add(i, i); + } + Collections.shuffle(list); + int j = 0; + char[] bmpsupp = new char[0x30000]; + for (int i = 0; i < 0x20000; i++) { + j += Character.toChars(list.get(i), bmpsupp, j); + } + assert (j == bmpsupp.length); + test(cs, bmpsupp, 0, bmpsupp.length); + + // randomed "off" and "len" on shuffled data + Random rnd = new Random(); + int maxlen = 1000; + int itr = 5000; + for (int i = 0; i < itr; i++) { + int off = rnd.nextInt(bmpsupp.length - maxlen); + int len = rnd.nextInt(maxlen); + test(cs, bmpsupp, off, len); + } + + // random length of bytes, test the edge corner case + for (int i = 0; i < itr; i++) { + byte[] ba = new byte[rnd.nextInt(maxlen)]; + rnd.nextBytes(ba); + //new String(csn); + if (!new String(ba, cs.name()).equals( + new String(decode(cs, ba, 0, ba.length)))) + throw new RuntimeException("new String(csn) failed"); + //new String(cs); + if (!new String(ba, cs).equals( + new String(decode(cs, ba, 0, ba.length)))) + throw new RuntimeException("new String(cs) failed"); + } + System.out.println("done!"); + } + + static void test(Charset cs, char[] ca, int off, int len) throws Throwable { + String str = new String(ca, off, len); + byte[] ba = encode(cs, ca, off, len); + + //getBytes(csn); + byte[] baStr = str.getBytes(cs.name()); + if (!Arrays.equals(ba, baStr)) + throw new RuntimeException("getBytes(csn) failed"); + + //getBytes(cs); + baStr = str.getBytes(cs); + if (!Arrays.equals(ba, baStr)) + throw new RuntimeException("getBytes(cs) failed"); + + //new String(csn); + if (!new String(ba, cs.name()).equals(new String(decode(cs, ba, 0, ba.length)))) + throw new RuntimeException("new String(csn) failed"); + + //new String(cs); + if (!new String(ba, cs).equals(new String(decode(cs, ba, 0, ba.length)))) + throw new RuntimeException("new String(cs) failed"); + } + + // copy/paste of the StringCoding.decode() + static char[] decode(Charset cs, byte[] ba, int off, int len) { + CharsetDecoder cd = cs.newDecoder(); + int en = (int)(len * cd.maxCharsPerByte()); + char[] ca = new char[en]; + if (len == 0) + return ca; + cd.onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE) + .reset(); + + ByteBuffer bb = ByteBuffer.wrap(ba, off, len); + CharBuffer cb = CharBuffer.wrap(ca); + try { + CoderResult cr = cd.decode(bb, cb, true); + if (!cr.isUnderflow()) + cr.throwException(); + cr = cd.flush(cb); + if (!cr.isUnderflow()) + cr.throwException(); + } catch (CharacterCodingException x) { + throw new Error(x); + } + return Arrays.copyOf(ca, cb.position()); + } + + // copy/paste of the StringCoding.encode() + static byte[] encode(Charset cs, char[] ca, int off, int len) { + CharsetEncoder ce = cs.newEncoder(); + int en = (int)(len * ce.maxBytesPerChar()); + byte[] ba = new byte[en]; + if (len == 0) + return ba; + ce.onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE) + .reset(); + ByteBuffer bb = ByteBuffer.wrap(ba); + CharBuffer cb = CharBuffer.wrap(ca, off, len); + try { + CoderResult cr = ce.encode(cb, bb, true); + if (!cr.isUnderflow()) + cr.throwException(); + cr = ce.flush(bb); + if (!cr.isUnderflow()) + cr.throwException(); + } catch (CharacterCodingException x) { + throw new Error(x); + } + return Arrays.copyOf(ba, bb.position()); + } + + static class PermissiveSecurityManger extends SecurityManager { + @Override public void checkPermission(java.security.Permission p) {} + } +} diff --git a/jdk/test/sun/nio/cs/TestUTF8.java b/jdk/test/sun/nio/cs/TestUTF8.java index 34a999fb283..f339eae046b 100644 --- a/jdk/test/sun/nio/cs/TestUTF8.java +++ b/jdk/test/sun/nio/cs/TestUTF8.java @@ -23,7 +23,7 @@ /* * @test - * @bug 4486841 + * @bug 4486841 7040220 * @summary Test UTF-8 charset */ @@ -70,6 +70,32 @@ public class TestUTF8 { return dec.decode(bbf, cbf, true); } + // copy/paste of the StringCoding.decode() + static char[] decode(Charset cs, byte[] ba, int off, int len) { + CharsetDecoder cd = cs.newDecoder(); + int en = (int)(len * cd.maxCharsPerByte()); + char[] ca = new char[en]; + if (len == 0) + return ca; + cd.onMalformedInput(CodingErrorAction.REPLACE) + .onUnmappableCharacter(CodingErrorAction.REPLACE) + .reset(); + + ByteBuffer bb = ByteBuffer.wrap(ba, off, len); + CharBuffer cb = CharBuffer.wrap(ca); + try { + CoderResult cr = cd.decode(bb, cb, true); + if (!cr.isUnderflow()) + cr.throwException(); + cr = cd.flush(cb); + if (!cr.isUnderflow()) + cr.throwException(); + } catch (CharacterCodingException x) { + throw new Error(x); + } + return Arrays.copyOf(ca, cb.position()); + } + static byte[] encode(char[] cc, String csn, boolean testDirect) throws Exception { ByteBuffer bbf; @@ -142,7 +168,14 @@ public class TestUTF8 { bb = encode(cc, csn, true); ccO = decode(bb, csn, true); if (!Arrays.equals(cc, ccO)) { - System.out.printf(" (direct) failed"); + System.out.print(" (direct) failed"); + } + // String.getBytes()/toCharArray() goes to ArrayDe/Encoder path + if (!Arrays.equals(bb, new String(cc).getBytes(csn))) { + System.out.printf(" String.getBytes() failed"); + } + if (!Arrays.equals(cc, new String(bb, csn).toCharArray())) { + System.out.printf(" String.toCharArray() failed"); } System.out.println(); } @@ -168,6 +201,12 @@ public class TestUTF8 { if (!Arrays.equals(cc, ccO)) { System.out.printf(" decoding(direct) failed%n"); } + // new String(bb, csn).getBytes(csn) will not return + // the 6 bytes surrogates as in bb, so only test + // toCharArray() here. + if (!Arrays.equals(cc, new String(bb, csn).toCharArray())) { + System.out.printf(" String.toCharArray() failed"); + } } static void compare(String csn1, String csn2) throws Exception { @@ -274,6 +313,7 @@ public class TestUTF8 { static void checkMalformed(String csn) throws Exception { boolean failed = false; System.out.printf(" Check malformed <%s>...%n", csn); + Charset cs = Charset.forName(csn); for (boolean direct: new boolean[] {false, true}) { for (byte[] bins : malformed) { int mlen = bins[0]; @@ -285,10 +325,15 @@ public class TestUTF8 { ashex += Integer.toBinaryString((int)bin[i] & 0xff); } if (!cr.isMalformed()) { - System.out.printf(" FAIL(direct=%b): [%s] not malformed.\n", direct, ashex); + System.out.printf(" FAIL(direct=%b): [%s] not malformed.%n", direct, ashex); failed = true; } else if (cr.length() != mlen) { - System.out.printf(" FAIL(direct=%b): [%s] malformed[len=%d].\n", direct, ashex, cr.length()); + System.out.printf(" FAIL(direct=%b): [%s] malformed[len=%d].%n", direct, ashex, cr.length()); + failed = true; + } + if (!Arrays.equals(decode(cs, bin, 0, bin.length), + new String(bin, csn).toCharArray())) { + System.out.printf(" FAIL(new String(bb, %s)) failed%n", csn); failed = true; } } From 0962e85dc0b89bd7ad24d1788144783f97ab4154 Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Mon, 2 May 2011 11:39:46 -0700 Subject: [PATCH 112/147] 7041136: Use Objects.equals in JDK platform classes Reviewed-by: alanb, mduigou --- .../java/beans/DefaultPersistenceDelegate.java | 9 +++------ jdk/src/share/classes/java/beans/MetaData.java | 18 ++++++++---------- jdk/src/share/classes/java/net/HttpCookie.java | 11 ++--------- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java b/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java index 6c33c0ce12f..951d97210b0 100644 --- a/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java +++ b/jdk/src/share/classes/java/beans/DefaultPersistenceDelegate.java @@ -26,6 +26,7 @@ package java.beans; import java.util.*; import java.lang.reflect.*; +import java.util.Objects; import sun.reflect.misc.*; @@ -181,10 +182,6 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { return method; } - private static boolean equals(Object o1, Object o2) { - return (o1 == null) ? (o2 == null) : o1.equals(o2); - } - private void doProperty(Class type, PropertyDescriptor pd, Object oldInstance, Object newInstance, Encoder out) throws Exception { Method getter = pd.getReadMethod(); Method setter = pd.getWriteMethod(); @@ -195,7 +192,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { Object oldValue = oldGetExp.getValue(); Object newValue = newGetExp.getValue(); out.writeExpression(oldGetExp); - if (!equals(newValue, out.get(oldValue))) { + if (!Objects.equals(newValue, out.get(oldValue))) { // Search for a static constant with this value; Object e = (Object[])pd.getValue("enumerationValues"); if (e instanceof Object[] && Array.getLength(e) % 3 == 0) { @@ -233,7 +230,7 @@ public class DefaultPersistenceDelegate extends PersistenceDelegate { Object oldValue = oldGetExp.getValue(); Object newValue = newGetExp.getValue(); out.writeExpression(oldGetExp); - if (!equals(newValue, out.get(oldValue))) { + if (!Objects.equals(newValue, out.get(oldValue))) { out.writeStatement(new Statement(field, "set", new Object[] { oldInstance, oldValue })); } } diff --git a/jdk/src/share/classes/java/beans/MetaData.java b/jdk/src/share/classes/java/beans/MetaData.java index c95a6157948..c4ab869e955 100644 --- a/jdk/src/share/classes/java/beans/MetaData.java +++ b/jdk/src/share/classes/java/beans/MetaData.java @@ -56,6 +56,8 @@ import javax.swing.plaf.ColorUIResource; import sun.swing.PrintColorUIResource; +import java.util.Objects; + /* * Like the Intropector, the MetaData class * contains meta objects that describe the way @@ -134,7 +136,7 @@ class ArrayPersistenceDelegate extends PersistenceDelegate { Object oldValue = oldGetExp.getValue(); Object newValue = newGetExp.getValue(); out.writeExpression(oldGetExp); - if (!MetaData.equals(newValue, out.get(oldValue))) { + if (!Objects.equals(newValue, out.get(oldValue))) { // System.out.println("Not equal: " + newGetExp + " != " + actualGetExp); // invokeStatement(Array.class, "set", new Object[]{oldInstance, index, oldValue}, out); DefaultPersistenceDelegate.invokeStatement(oldInstance, "set", new Object[]{index, oldValue}, out); @@ -635,7 +637,7 @@ class java_util_List_PersistenceDelegate extends DefaultPersistenceDelegate { Object oldValue = oldGetExp.getValue(); Object newValue = newGetExp.getValue(); out.writeExpression(oldGetExp); - if (!MetaData.equals(newValue, out.get(oldValue))) { + if (!Objects.equals(newValue, out.get(oldValue))) { invokeStatement(oldInstance, "set", new Object[]{index, oldValue}, out); } } @@ -675,7 +677,7 @@ class java_util_Map_PersistenceDelegate extends DefaultPersistenceDelegate { Object oldValue = oldGetExp.getValue(); Object newValue = newGetExp.getValue(); out.writeExpression(oldGetExp); - if (!MetaData.equals(newValue, out.get(oldValue))) { + if (!Objects.equals(newValue, out.get(oldValue))) { invokeStatement(oldInstance, "put", new Object[]{oldKey, oldValue}, out); } else if ((newValue == null) && !newMap.containsKey(oldKey)) { // put oldValue(=null?) if oldKey is absent in newMap @@ -899,17 +901,17 @@ class java_awt_Component_PersistenceDelegate extends DefaultPersistenceDelegate if (!(oldInstance instanceof java.awt.Window)) { Object oldBackground = c.isBackgroundSet() ? c.getBackground() : null; Object newBackground = c2.isBackgroundSet() ? c2.getBackground() : null; - if (!MetaData.equals(oldBackground, newBackground)) { + if (!Objects.equals(oldBackground, newBackground)) { invokeStatement(oldInstance, "setBackground", new Object[] { oldBackground }, out); } Object oldForeground = c.isForegroundSet() ? c.getForeground() : null; Object newForeground = c2.isForegroundSet() ? c2.getForeground() : null; - if (!MetaData.equals(oldForeground, newForeground)) { + if (!Objects.equals(oldForeground, newForeground)) { invokeStatement(oldInstance, "setForeground", new Object[] { oldForeground }, out); } Object oldFont = c.isFontSet() ? c.getFont() : null; Object newFont = c2.isFontSet() ? c2.getFont() : null; - if (!MetaData.equals(oldFont, newFont)) { + if (!Objects.equals(oldFont, newFont)) { invokeStatement(oldInstance, "setFont", new Object[] { oldFont }, out); } } @@ -1306,10 +1308,6 @@ class MetaData { internalPersistenceDelegates.put("java.util.RegularEnumSet", new java_util_EnumSet_PersistenceDelegate()); } - /*pp*/ static boolean equals(Object o1, Object o2) { - return (o1 == null) ? (o2 == null) : o1.equals(o2); - } - public synchronized static PersistenceDelegate getPersistenceDelegate(Class type) { if (type == null) { return nullPersistenceDelegate; diff --git a/jdk/src/share/classes/java/net/HttpCookie.java b/jdk/src/share/classes/java/net/HttpCookie.java index e5124f91817..34e60126912 100644 --- a/jdk/src/share/classes/java/net/HttpCookie.java +++ b/jdk/src/share/classes/java/net/HttpCookie.java @@ -34,6 +34,7 @@ import java.util.Date; import java.lang.NullPointerException; // for javadoc import java.util.Locale; +import java.util.Objects; /** * An HttpCookie object represents an http cookie, which carries state @@ -817,7 +818,7 @@ public final class HttpCookie implements Cloneable { // 3. and have same path (case-sensitive). return equalsIgnoreCase(getName(), other.getName()) && equalsIgnoreCase(getDomain(), other.getDomain()) && - equals(getPath(), other.getPath()); + Objects.equals(getPath(), other.getPath()); } @@ -1162,14 +1163,6 @@ public final class HttpCookie implements Cloneable { return false; } - private static boolean equals(String s, String t) { - if (s == t) return true; - if ((s != null) && (t != null)) { - return s.equals(t); - } - return false; - } - private static boolean startsWithIgnoreCase(String s, String start) { if (s == null || start == null) return false; From 61e1313498f5a0559443874d80e23fb353317511 Mon Sep 17 00:00:00 2001 From: Weijun Wang Date: Tue, 3 May 2011 02:48:59 +0800 Subject: [PATCH 113/147] 7040151: SPNEGO GSS code does not parse tokens in accordance to RFC 2478 Reviewed-by: valeriep --- .../security/jgss/spnego/NegTokenInit.java | 99 +++++++------------ .../security/jgss/spnego/NegTokenTarg.java | 93 ++++++----------- .../sun/security/jgss/spnego/SpNegoToken.java | 19 +++- .../jgss/spnego/NegTokenTargFields.java | 62 ++++++++++++ jdk/test/sun/security/krb5/auto/SPNEGO.java | 56 +++++++++++ 5 files changed, 205 insertions(+), 124 deletions(-) create mode 100644 jdk/test/sun/security/jgss/spnego/NegTokenTargFields.java create mode 100644 jdk/test/sun/security/krb5/auto/SPNEGO.java diff --git a/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java b/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java index e89006f7aea..65867fdf478 100644 --- a/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java +++ b/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenInit.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -152,75 +152,50 @@ public class NegTokenInit extends SpNegoToken { "did not have the Sequence tag"); } - // parse SEQUENCE of mechTypes, if present - if (tmp1.data.available() > 0) { + // parse various fields if present + int lastField = -1; + while (tmp1.data.available() > 0) { DerValue tmp2 = tmp1.data.getDerValue(); - if (!tmp2.isContextSpecific((byte)0x00)) { - throw new IOException("SPNEGO NegoTokenInit : " + - "did not have the right context tag for mechTypes"); - } - // get the DER-encoded sequence of mechTypes - DerInputStream mValue = tmp2.data; - mechTypes = mValue.toByteArray(); + if (tmp2.isContextSpecific((byte)0x00)) { + // get the DER-encoded sequence of mechTypes + lastField = checkNextField(lastField, 0); + DerInputStream mValue = tmp2.data; + mechTypes = mValue.toByteArray(); - // read all the mechTypes - DerValue[] mList = mValue.getSequence(0); - mechTypeList = new Oid[mList.length]; - ObjectIdentifier mech = null; - for (int i = 0; i < mList.length; i++) { - mech = mList[i].getOID(); + // read all the mechTypes + DerValue[] mList = mValue.getSequence(0); + mechTypeList = new Oid[mList.length]; + ObjectIdentifier mech = null; + for (int i = 0; i < mList.length; i++) { + mech = mList[i].getOID(); + if (DEBUG) { + System.out.println("SpNegoToken NegTokenInit: " + + "reading Mechanism Oid = " + mech); + } + mechTypeList[i] = new Oid(mech.toString()); + } + } else if (tmp2.isContextSpecific((byte)0x01)) { + lastField = checkNextField(lastField, 1); + // received reqFlags, skip it + } else if (tmp2.isContextSpecific((byte)0x02)) { + lastField = checkNextField(lastField, 2); if (DEBUG) { System.out.println("SpNegoToken NegTokenInit: " + - "reading Mechanism Oid = " + mech); + "reading Mech Token"); } - mechTypeList[i] = new Oid(mech.toString()); - } - } - - // parse mechToken, if present (skip reqFlags) - if (tmp1.data.available() > 0) { - DerValue tmp3 = tmp1.data.getDerValue(); - if (tmp3.isContextSpecific((byte)0x01)) { - // received reqFlags, skip it - // now parse next field mechToken - if (tmp1.data.available() > 0) { - tmp3 = tmp1.data.getDerValue(); + mechToken = tmp2.data.getOctetString(); + } else if (tmp2.isContextSpecific((byte)0x03)) { + lastField = checkNextField(lastField, 3); + if (!GSSUtil.useMSInterop()) { + mechListMIC = tmp2.data.getOctetString(); + if (DEBUG) { + System.out.println("SpNegoToken NegTokenInit: " + + "MechListMIC Token = " + + getHexBytes(mechListMIC)); + } } } - if (!tmp3.isContextSpecific((byte)0x02)) { - throw new IOException("SPNEGO NegoTokenInit : " + - "did not have the right context tag for mechToken"); - } - if (DEBUG) { - System.out.println("SpNegoToken NegTokenInit: " + - "reading Mech Token"); - } - mechToken = tmp3.data.getOctetString(); } - - // parse mechListMIC, if present and not in MS interop mode - if (!GSSUtil.useMSInterop() && (tmp1.data.available() > 0)) { - if (DEBUG) { - System.out.println("SpNegoToken NegTokenInit: " + - "receiving MechListMIC"); - } - DerValue tmp6 = tmp1.data.getDerValue(); - if (!tmp6.isContextSpecific((byte)0x03)) { - throw new IOException("SPNEGO NegoTokenInit : " + - "did not have the right context tag for MICToken"); - } - mechListMIC = tmp6.data.getOctetString(); - if (DEBUG) { - System.out.println("SpNegoToken NegTokenInit: " + - "MechListMIC Token = " + getHexBytes(mechListMIC)); - } - } else { - if (DEBUG) { - System.out.println("SpNegoToken NegTokenInit : " + - "no MIC token included"); - } - } - } catch (IOException e) { throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1, "Invalid SPNEGO NegTokenInit token : " + e.getMessage()); diff --git a/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java b/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java index c751666c6a6..1a4333ff298 100644 --- a/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java +++ b/jdk/src/share/classes/sun/security/jgss/spnego/NegTokenTarg.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -153,69 +153,40 @@ public class NegTokenTarg extends SpNegoToken { "did not have the Sequence tag"); } - // parse negResult, if present - if (tmp1.data.available() > 0) { + // parse various fields if present + int lastField = -1; + while (tmp1.data.available() > 0) { DerValue tmp2 = tmp1.data.getDerValue(); - if (!tmp2.isContextSpecific((byte)0x00)) { - throw new IOException("SPNEGO NegoTokenTarg : " + - "did not have the right context tag for negResult"); - } - negResult = tmp2.data.getEnumerated(); - if (DEBUG) { - System.out.println("SpNegoToken NegTokenTarg: negotiated" + - " result = " + getNegoResultString(negResult)); + if (tmp2.isContextSpecific((byte)0x00)) { + lastField = checkNextField(lastField, 0); + negResult = tmp2.data.getEnumerated(); + if (DEBUG) { + System.out.println("SpNegoToken NegTokenTarg: negotiated" + + " result = " + getNegoResultString(negResult)); + } + } else if (tmp2.isContextSpecific((byte)0x01)) { + lastField = checkNextField(lastField, 1); + ObjectIdentifier mech = tmp2.data.getOID(); + supportedMech = new Oid(mech.toString()); + if (DEBUG) { + System.out.println("SpNegoToken NegTokenTarg: " + + "supported mechanism = " + supportedMech); + } + } else if (tmp2.isContextSpecific((byte)0x02)) { + lastField = checkNextField(lastField, 2); + responseToken = tmp2.data.getOctetString(); + } else if (tmp2.isContextSpecific((byte)0x03)) { + lastField = checkNextField(lastField, 3); + if (!GSSUtil.useMSInterop()) { + mechListMIC = tmp2.data.getOctetString(); + if (DEBUG) { + System.out.println("SpNegoToken NegTokenTarg: " + + "MechListMIC Token = " + + getHexBytes(mechListMIC)); + } + } } } - - // parse supportedMech, if present - if (tmp1.data.available() > 0) { - DerValue tmp3 = tmp1.data.getDerValue(); - if (!tmp3.isContextSpecific((byte)0x01)) { - throw new IOException("SPNEGO NegoTokenTarg : " + - "did not have the right context tag for supportedMech"); - } - ObjectIdentifier mech = tmp3.data.getOID(); - supportedMech = new Oid(mech.toString()); - if (DEBUG) { - System.out.println("SpNegoToken NegTokenTarg: " + - "supported mechanism = " + supportedMech); - } - } - - // parse ResponseToken, if present - if (tmp1.data.available() > 0) { - DerValue tmp4 = tmp1.data.getDerValue(); - if (!tmp4.isContextSpecific((byte)0x02)) { - throw new IOException("SPNEGO NegoTokenTarg : did not" + - " have the right context tag for response token"); - } - responseToken = tmp4.data.getOctetString(); - } - - // parse mechListMIC if present and not in MS interop - if (!GSSUtil.useMSInterop() && (tmp1.data.available() > 0)) { - if (DEBUG) { - System.out.println("SpNegoToken NegTokenTarg: " + - "receiving MechListMIC"); - } - DerValue tmp5 = tmp1.data.getDerValue(); - if (!tmp5.isContextSpecific((byte)0x03)) { - throw new IOException("SPNEGO NegoTokenTarg : " + - "did not have the right context tag for mechListMIC"); - } - mechListMIC = tmp5.data.getOctetString(); - if (DEBUG) { - System.out.println("SpNegoToken NegTokenTarg: " + - "MechListMIC Token = " + - getHexBytes(mechListMIC)); - } - } else { - if (DEBUG) { - System.out.println("SpNegoToken NegTokenTarg : " + - "no MIC token included"); - } - } - } catch (IOException e) { throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1, "Invalid SPNEGO NegTokenTarg token : " + e.getMessage()); diff --git a/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoToken.java b/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoToken.java index c81da7e09cf..8683520227f 100644 --- a/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoToken.java +++ b/jdk/src/share/classes/sun/security/jgss/spnego/SpNegoToken.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2005, 2011, 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 @@ -187,4 +187,21 @@ abstract class SpNegoToken extends GSSToken { return ("Unknown Negotiated Result: " + result); } } + + /** + * Checks if the context tag in a sequence is in correct order. The "last" + * value must be smaller than "current". + * @param last the last tag seen + * @param current the current tag + * @return the current tag, used as the next value for last + * @throws GSSException if there's a wrong order + */ + static int checkNextField(int last, int current) throws GSSException { + if (last < current) { + return current; + } else { + throw new GSSException(GSSException.DEFECTIVE_TOKEN, -1, + "Invalid SpNegoToken token : wrong order"); + } + } } diff --git a/jdk/test/sun/security/jgss/spnego/NegTokenTargFields.java b/jdk/test/sun/security/jgss/spnego/NegTokenTargFields.java new file mode 100644 index 00000000000..b6efa276318 --- /dev/null +++ b/jdk/test/sun/security/jgss/spnego/NegTokenTargFields.java @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7040151 + * @summary SPNEGO GSS code does not parse tokens in accordance to RFC 2478 + * @compile -XDignore.symbol.file NegTokenTargFields.java + * @run main NegTokenTargFields nomech + * @run main/fail NegTokenTargFields badorder + */ + +import sun.security.jgss.spnego.NegTokenTarg; + +public class NegTokenTargFields { + + // A hand-crafted NegTokenTarg with negResult and responseToken only + public static byte[] nomech = { + (byte)0xA1, (byte)0x0F, (byte)0x30, (byte)0x0D, + (byte)0xA0, (byte)0x03, (byte)0x0A, (byte)0x01, + (byte)0x02, (byte)0xA2, (byte)0x02, (byte)0x04, + (byte)0x00, (byte)0xA3, (byte)0x02, (byte)0x04, + (byte)0x00, + }; + + // A hand-crafted NegTokenTarg with negResult and supportedMech in wrong order + public static byte[] badorder = { + (byte)0xA1, (byte)0x1E, (byte)0x30, (byte)0x1C, + (byte)0xA1, (byte)0x0B, (byte)0x06, (byte)0x09, + (byte)0x2A, (byte)0x86, (byte)0x48, (byte)0x86, + (byte)0xF7, (byte)0x12, (byte)0x01, (byte)0x02, + (byte)0x02, (byte)0xA0, (byte)0x03, (byte)0x0A, + (byte)0x01, (byte)0x00, (byte)0xA2, (byte)0x03, + (byte)0x04, (byte)0x01, (byte)0x00, (byte)0xA3, + (byte)0x03, (byte)0x04, (byte)0x01, (byte)0x00, + }; + + public static void main(String[] args) throws Exception { + byte[] buf = (byte[])NegTokenTargFields.class.getField(args[0]).get(null); + new NegTokenTarg(buf); + } +} diff --git a/jdk/test/sun/security/krb5/auto/SPNEGO.java b/jdk/test/sun/security/krb5/auto/SPNEGO.java new file mode 100644 index 00000000000..250a942f0d4 --- /dev/null +++ b/jdk/test/sun/security/krb5/auto/SPNEGO.java @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7040151 + * @summary SPNEGO GSS code does not parse tokens in accordance to RFC 2478 + * @compile -XDignore.symbol.file SPNEGO.java + * @run main/othervm SPNEGO + */ + +import sun.security.jgss.GSSUtil; + +// The basic krb5 test skeleton you can copy from +public class SPNEGO { + + public static void main(String[] args) throws Exception { + + new OneKDC(null).writeJAASConf(); + + Context c, s; + c = Context.fromJAAS("client"); + s = Context.fromJAAS("server"); + + c.startAsClient(OneKDC.SERVER, GSSUtil.GSS_SPNEGO_MECH_OID); + s.startAsServer(GSSUtil.GSS_SPNEGO_MECH_OID); + + Context.handshake(c, s); + + Context.transmit("i say high --", c, s); + Context.transmit(" you say low", s, c); + + s.dispose(); + c.dispose(); + } +} From 9987e199cc77ee87f8fd1de9bab2d217a371063e Mon Sep 17 00:00:00 2001 From: Michael McMahon Date: Mon, 2 May 2011 20:11:18 +0100 Subject: [PATCH 114/147] 7041044: InetAddress.getByName(String,InetAddress) added in error Reviewed-by: alanb --- .../share/classes/java/net/InetAddress.java | 49 +--- jdk/src/share/classes/java/net/Socket.java | 7 +- .../classes/java/net/SocketPermission.java | 261 +++--------------- .../classes/sun/net/www/URLConnection.java | 10 - .../classes/sun/net/www/http/HttpClient.java | 28 +- 5 files changed, 47 insertions(+), 308 deletions(-) diff --git a/jdk/src/share/classes/java/net/InetAddress.java b/jdk/src/share/classes/java/net/InetAddress.java index 8fac618d397..792458184d5 100644 --- a/jdk/src/share/classes/java/net/InetAddress.java +++ b/jdk/src/share/classes/java/net/InetAddress.java @@ -1013,12 +1013,6 @@ class InetAddress implements java.io.Serializable { return InetAddress.getAllByName(host)[0]; } - // called from deployment cache manager - public static InetAddress getByName(String host, InetAddress reqAddr) - throws UnknownHostException { - return InetAddress.getAllByName(host, reqAddr)[0]; - } - /** * Given the name of a host, returns an array of its IP addresses, * based on the configured name service on the system. @@ -1060,11 +1054,6 @@ class InetAddress implements java.io.Serializable { */ public static InetAddress[] getAllByName(String host) throws UnknownHostException { - return getAllByName(host, null); - } - - private static InetAddress[] getAllByName(String host, InetAddress reqAddr) - throws UnknownHostException { if (host == null || host.length() == 0) { InetAddress[] ret = new InetAddress[1]; @@ -1124,7 +1113,7 @@ class InetAddress implements java.io.Serializable { // We were expecting an IPv6 Litteral, but got something else throw new UnknownHostException("["+host+"]"); } - return getAllByName0(host, reqAddr, true); + return getAllByName0(host); } /** @@ -1185,12 +1174,6 @@ class InetAddress implements java.io.Serializable { */ static InetAddress[] getAllByName0 (String host, boolean check) throws UnknownHostException { - return getAllByName0 (host, null, check); - } - - private static InetAddress[] getAllByName0 (String host, InetAddress reqAddr, boolean check) - throws UnknownHostException { - /* If it gets here it is presumed to be a hostname */ /* Cache.get can return: null, unknownAddress, or InetAddress[] */ @@ -1208,7 +1191,7 @@ class InetAddress implements java.io.Serializable { /* If no entry in cache, then do the host lookup */ if (addresses == null) { - addresses = getAddressesFromNameService(host, reqAddr); + addresses = getAddressesFromNameService(host); } if (addresses == unknown_array) @@ -1217,7 +1200,7 @@ class InetAddress implements java.io.Serializable { return addresses.clone(); } - private static InetAddress[] getAddressesFromNameService(String host, InetAddress reqAddr) + private static InetAddress[] getAddressesFromNameService(String host) throws UnknownHostException { InetAddress[] addresses = null; @@ -1273,32 +1256,10 @@ class InetAddress implements java.io.Serializable { } } - // More to do? - if (reqAddr != null && addresses.length > 1 && !addresses[0].equals(reqAddr)) { - // Find it? - int i = 1; - for (; i < addresses.length; i++) { - if (addresses[i].equals(reqAddr)) { - break; - } - } - // Rotate - if (i < addresses.length) { - InetAddress tmp, tmp2 = reqAddr; - for (int j = 0; j < i; j++) { - tmp = addresses[j]; - addresses[j] = tmp2; - tmp2 = tmp; - } - addresses[i] = tmp2; - } - } - // Cache the address. + // Cache the addresses. cacheAddresses(host, addresses, success); - if (!success && ex != null) throw ex; - } finally { // Delete host from the lookupTable and notify // all threads waiting on the lookupTable monitor. @@ -1432,7 +1393,7 @@ class InetAddress implements java.io.Serializable { InetAddress[] localAddrs; try { localAddrs = - InetAddress.getAddressesFromNameService(local, null); + InetAddress.getAddressesFromNameService(local); } catch (UnknownHostException uhe) { // Rethrow with a more informative error message. UnknownHostException uhe2 = diff --git a/jdk/src/share/classes/java/net/Socket.java b/jdk/src/share/classes/java/net/Socket.java index bf145dc98fe..e8eb3eab865 100644 --- a/jdk/src/share/classes/java/net/Socket.java +++ b/jdk/src/share/classes/java/net/Socket.java @@ -127,12 +127,11 @@ class Socket implements java.io.Closeable { } if (security != null) { if (epoint.isUnresolved()) - epoint = new InetSocketAddress(epoint.getHostName(), epoint.getPort()); - if (epoint.isUnresolved()) - security.checkConnect(epoint.getHostName(), epoint.getPort()); + security.checkConnect(epoint.getHostName(), + epoint.getPort()); else security.checkConnect(epoint.getAddress().getHostAddress(), - epoint.getPort()); + epoint.getPort()); } impl = new SocksSocketImpl(p); impl.setSocket(this); diff --git a/jdk/src/share/classes/java/net/SocketPermission.java b/jdk/src/share/classes/java/net/SocketPermission.java index 2855689373d..4528da22b12 100644 --- a/jdk/src/share/classes/java/net/SocketPermission.java +++ b/jdk/src/share/classes/java/net/SocketPermission.java @@ -41,7 +41,6 @@ import java.io.ObjectInputStream; import java.io.IOException; import sun.net.util.IPAddressUtil; import sun.security.util.SecurityConstants; -import sun.security.util.Debug; /** @@ -212,32 +211,13 @@ implements java.io.Serializable // port range on host private transient int[] portrange; - private transient boolean defaultDeny = false; - - // true if this SocketPermission represents a hostname - // that failed our reverse mapping heuristic test - private transient boolean untrusted; - private transient boolean trusted; - - // true if the sun.net.trustNameService system property is set - private static boolean trustNameService; - - private static Debug debug = null; - private static boolean debugInit = false; + // true if the trustProxy system property is set + private static boolean trustProxy; static { Boolean tmp = java.security.AccessController.doPrivileged( - new sun.security.action.GetBooleanAction("sun.net.trustNameService")); - trustNameService = tmp.booleanValue(); - } - - private static synchronized Debug getDebug() - { - if (!debugInit) { - debug = Debug.getInstance("access"); - debugInit = true; - } - return debug; + new sun.security.action.GetBooleanAction("trustProxy")); + trustProxy = tmp.booleanValue(); } /** @@ -283,10 +263,6 @@ implements java.io.Serializable init(getName(), mask); } - private void setDeny() { - defaultDeny = true; - } - private static String getHost(String host) { if (host.equals("")) { @@ -584,38 +560,6 @@ implements java.io.Serializable return mask; } - private boolean isUntrusted() - throws UnknownHostException - { - if (trusted) return false; - if (invalid || untrusted) return true; - try { - if (!trustNameService && (defaultDeny || - sun.net.www.URLConnection.isProxiedHost(hostname))) { - if (this.cname == null) { - this.getCanonName(); - } - if (!match(cname, hostname) && - (defaultDeny || !cname.equals(addresses[0].getHostAddress()))) { - // Last chance - if (!authorized(hostname, addresses[0].getAddress())) { - untrusted = true; - Debug debug = getDebug(); - if (debug != null && Debug.isOn("failure")) { - debug.println("socket access restriction: proxied host " + "(" + addresses[0] + ")" + " does not match " + cname + " from reverse lookup"); - } - return true; - } - } - trusted = true; - } - } catch (UnknownHostException uhe) { - invalid = true; - throw uhe; - } - return false; - } - /** * attempt to get the fully qualified domain name * @@ -623,7 +567,7 @@ implements java.io.Serializable void getCanonName() throws UnknownHostException { - if (cname != null || invalid || untrusted) return; + if (cname != null || invalid) return; // attempt to get the canonical name @@ -649,141 +593,6 @@ implements java.io.Serializable } } - private String cdomain, hdomain; - - private boolean match(String cname, String hname) { - String a = cname.toLowerCase(); - String b = hname.toLowerCase(); - if (a.startsWith(b) && - ((a.length() == b.length()) || (a.charAt(b.length()) == '.'))) - return true; - if (cdomain == null) { - cdomain = guessRegisteredDomain(a); - } - if (hdomain == null) { - hdomain = guessRegisteredDomain(b); - } - - return cdomain.length() != 0 && hdomain.length() != 0 - && cdomain.equals(hdomain); - } - - - /* Apart from special cases, this checks for 2 letter TLD - * (usually ccTLD) and then for a specific set of common labels - * indicating likely 2nd level public suffixes. If both conditions - * true then return right most three labels. Otherwise, return - * 2 rightmost labels. - * - * www.sun.com. -> sun.com - * www.sun.co.uk -> sun.co.uk - * www.sun.com.au -> sun.com.au - */ - - private String guessRegisteredDomain(String cname) { - int dot; - dot = cname.lastIndexOf('.'); - if (dot == -1) - return cname; - if (dot == 0) - return ""; - if (dot == cname.length() - 1) { - cname = cname.substring(0, cname.length() -1); - dot = cname.lastIndexOf('.'); - } - if (dot < 1) - return ""; - int second = cname.lastIndexOf('.', dot - 1); - if (second == -1) - return cname; - if (((cname.length() - dot) <= 3) && ((dot - second) <= 4) && second > 0) { - if (dot - second == 4) { - String s = cname.substring(second + 1, dot); - if (!(s.equals("com") || s.equals("org") || s.equals("edu"))) { - return cname.substring(second + 1); - } - } - int third = cname.lastIndexOf('.', second - 1); - if (third == -1) - return cname.substring(second + 1); - else - return cname.substring(third + 1); - } - return cname.substring(second + 1); - } - - - private boolean authorized(String cname, byte[] addr) { - if (addr.length == 4) - return authorizedIPv4(cname, addr); - else if (addr.length == 16) - return authorizedIPv6(cname, addr); - else - return false; - } - - private boolean authorizedIPv4(String cname, byte[] addr) { - String authHost = ""; - InetAddress auth; - - try { - authHost = "auth." + - (addr[3] & 0xff) + "." + (addr[2] & 0xff) + "." + - (addr[1] & 0xff) + "." + (addr[0] & 0xff) + - ".in-addr.arpa"; - // Following check seems unnecessary - // auth = InetAddress.getAllByName0(authHost, false)[0]; - authHost = hostname + '.' + authHost; - auth = InetAddress.getAllByName0(authHost, false)[0]; - if (auth.equals(InetAddress.getByAddress(addr))) { - return true; - } - Debug debug = getDebug(); - if (debug != null && Debug.isOn("failure")) { - debug.println("socket access restriction: IP address of " + auth + " != " + InetAddress.getByAddress(addr)); - } - } catch (UnknownHostException uhe) { - Debug debug = getDebug(); - if (debug != null && Debug.isOn("failure")) { - debug.println("socket access restriction: forward lookup failed for " + authHost); - } - } - return false; - } - - private boolean authorizedIPv6(String cname, byte[] addr) { - String authHost = ""; - InetAddress auth; - - try { - StringBuffer sb = new StringBuffer(39); - - for (int i = 15; i >= 0; i--) { - sb.append(Integer.toHexString(((addr[i]) & 0x0f))); - sb.append('.'); - sb.append(Integer.toHexString(((addr[i] >> 4) & 0x0f))); - sb.append('.'); - } - authHost = "auth." + sb.toString() + "IP6.ARPA"; - //auth = InetAddress.getAllByName0(authHost, false)[0]; - authHost = hostname + '.' + authHost; - auth = InetAddress.getAllByName0(authHost, false)[0]; - if (auth.equals(InetAddress.getByAddress(addr))) - return true; - Debug debug = getDebug(); - if (debug != null && Debug.isOn("failure")) { - debug.println("socket access restriction: IP address of " + auth + " != " + InetAddress.getByAddress(addr)); - } - } catch (UnknownHostException uhe) { - Debug debug = getDebug(); - if (debug != null && Debug.isOn("failure")) { - debug.println("socket access restriction: forward lookup failed for " + authHost); - } - } - return false; - } - - /** * get IP addresses. Sets invalid to true if we can't get them. * @@ -911,7 +720,12 @@ implements java.io.Serializable // return if either one of these NetPerm objects are invalid... if (this.invalid || that.invalid) { - return compareHostnames(that); + return (trustProxy ? inProxyWeTrust(that) : false); + } + + + if (this.getName().equalsIgnoreCase(that.getName())) { + return true; } try { @@ -964,29 +778,28 @@ implements java.io.Serializable that.getIP(); } - if (!(that.init_with_ip && this.isUntrusted())) { - for (j = 0; j < this.addresses.length; j++) { - for (i=0; i < that.addresses.length; i++) { - if (this.addresses[j].equals(that.addresses[i])) - return true; - } + for (j = 0; j < this.addresses.length; j++) { + for (i=0; i < that.addresses.length; i++) { + if (this.addresses[j].equals(that.addresses[i])) + return true; } - - // XXX: if all else fails, compare hostnames? - // Do we really want this? - if (this.cname == null) { - this.getCanonName(); - } - - if (that.cname == null) { - that.getCanonName(); - } - - return (this.cname.equalsIgnoreCase(that.cname)); } + // XXX: if all else fails, compare hostnames? + // Do we really want this? + if (this.cname == null) { + this.getCanonName(); + } + + if (that.cname == null) { + that.getCanonName(); + } + + return (this.cname.equalsIgnoreCase(that.cname)); + } catch (UnknownHostException uhe) { - return compareHostnames(that); + if (trustProxy) + return inProxyWeTrust(that); } // make sure the first thing that is done here is to return @@ -995,23 +808,19 @@ implements java.io.Serializable return false; } - private boolean compareHostnames(SocketPermission that) { - // we see if the original names/IPs passed in were equal. + private boolean inProxyWeTrust(SocketPermission that) { + // if we trust the proxy, we see if the original names/IPs passed + // in were equal. String thisHost = hostname; String thatHost = that.hostname; - if (thisHost == null) { + if (thisHost == null) return false; - } else if (this.wildcard) { - final int cnameLength = this.cname.length(); - return thatHost.regionMatches(true, - (thatHost.length() - cnameLength), this.cname, 0, cnameLength); - } else { + else return thisHost.equalsIgnoreCase(thatHost); - } - } + } /** * Checks two SocketPermission objects for equality. *

    diff --git a/jdk/src/share/classes/sun/net/www/URLConnection.java b/jdk/src/share/classes/sun/net/www/URLConnection.java index 2760acc2081..a299ec9c531 100644 --- a/jdk/src/share/classes/sun/net/www/URLConnection.java +++ b/jdk/src/share/classes/sun/net/www/URLConnection.java @@ -238,14 +238,4 @@ abstract public class URLConnection extends java.net.URLConnection { public void close() { url = null; } - - private static HashMap proxiedHosts = new HashMap<>(); - - public synchronized static void setProxiedHost(String host) { - proxiedHosts.put(host.toLowerCase(), null); - } - - public synchronized static boolean isProxiedHost(String host) { - return proxiedHosts.containsKey(host.toLowerCase()); - } } diff --git a/jdk/src/share/classes/sun/net/www/http/HttpClient.java b/jdk/src/share/classes/sun/net/www/http/HttpClient.java index 2c2ba2280ff..7d203829a83 100644 --- a/jdk/src/share/classes/sun/net/www/http/HttpClient.java +++ b/jdk/src/share/classes/sun/net/www/http/HttpClient.java @@ -301,11 +301,7 @@ public class HttpClient extends NetworkClient { } else { SecurityManager security = System.getSecurityManager(); if (security != null) { - if (ret.proxy == Proxy.NO_PROXY || ret.proxy == null) { - security.checkConnect(InetAddress.getByName(url.getHost()).getHostAddress(), url.getPort()); - } else { - security.checkConnect(url.getHost(), url.getPort()); - } + security.checkConnect(url.getHost(), url.getPort()); } ret.url = url; } @@ -461,11 +457,11 @@ public class HttpClient extends NetworkClient { protected synchronized void openServer() throws IOException { SecurityManager security = System.getSecurityManager(); + if (security != null) { + security.checkConnect(host, port); + } if (keepingAlive) { // already opened - if (security != null) { - security.checkConnect(host, port); - } return; } @@ -473,19 +469,11 @@ public class HttpClient extends NetworkClient { url.getProtocol().equals("https") ) { if ((proxy != null) && (proxy.type() == Proxy.Type.HTTP)) { - sun.net.www.URLConnection.setProxiedHost(host); - if (security != null) { - security.checkConnect(host,port); - } privilegedOpenServer((InetSocketAddress) proxy.address()); usingProxy = true; return; } else { // make direct connection - if (security != null) { - // redundant? - security.checkConnect(host, port); - } openServer(host, port); usingProxy = false; return; @@ -496,19 +484,11 @@ public class HttpClient extends NetworkClient { * ftp url. */ if ((proxy != null) && (proxy.type() == Proxy.Type.HTTP)) { - sun.net.www.URLConnection.setProxiedHost(host); - if (security != null) { - security.checkConnect(host,port); - } privilegedOpenServer((InetSocketAddress) proxy.address()); usingProxy = true; return; } else { // make direct connection - if (security != null) { - // redundant? - security.checkConnect(host, port); - } super.openServer(host, port); usingProxy = false; return; From 1003e3e74421ba6cd6ae291a4784341316c8fa9e Mon Sep 17 00:00:00 2001 From: Jim Graham Date: Mon, 2 May 2011 14:38:22 -0700 Subject: [PATCH 115/147] 6563734: Path2D.Float and Path2D.Double should have final getPathIterator methods Reviewed-by: prr --- jdk/src/share/classes/java/awt/geom/Path2D.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/java/awt/geom/Path2D.java b/jdk/src/share/classes/java/awt/geom/Path2D.java index c84948c8ee9..39f7d992b28 100644 --- a/jdk/src/share/classes/java/awt/geom/Path2D.java +++ b/jdk/src/share/classes/java/awt/geom/Path2D.java @@ -732,7 +732,7 @@ public abstract class Path2D implements Shape, Cloneable { * * @since 1.6 */ - public PathIterator getPathIterator(AffineTransform at) { + public final PathIterator getPathIterator(AffineTransform at) { if (at == null) { return new CopyIterator(this); } else { @@ -1461,7 +1461,7 @@ public abstract class Path2D implements Shape, Cloneable { * of this {@code Shape}'s outline * @since 1.6 */ - public PathIterator getPathIterator(AffineTransform at) { + public final PathIterator getPathIterator(AffineTransform at) { if (at == null) { return new CopyIterator(this); } else { @@ -2342,8 +2342,8 @@ public abstract class Path2D implements Shape, Cloneable { * * @since 1.6 */ - public PathIterator getPathIterator(AffineTransform at, - double flatness) + public final PathIterator getPathIterator(AffineTransform at, + double flatness) { return new FlatteningPathIterator(getPathIterator(at), flatness); } From 2b767e1070b9a77798dd9152afba9f0243a0640e Mon Sep 17 00:00:00 2001 From: Sergey Bylokhov Date: Tue, 3 May 2011 15:19:04 +0400 Subject: [PATCH 116/147] 7016528: Deadlock during mutual initialization of DataTransferer and DataTransferer$DataFlavorComparator Reviewed-by: dav, art, denis --- .../sun/awt/datatransfer/DataTransferer.java | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java b/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java index e8fe5859b2d..82ff8899349 100644 --- a/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java +++ b/jdk/src/share/classes/sun/awt/datatransfer/DataTransferer.java @@ -29,12 +29,10 @@ import java.awt.AWTError; import java.awt.EventQueue; import java.awt.Image; import java.awt.Graphics; -import java.awt.Toolkit; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.FlavorMap; import java.awt.datatransfer.FlavorTable; -import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; @@ -66,8 +64,6 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.security.AccessControlContext; -import java.security.AccessControlException; import java.security.AccessController; import java.security.PrivilegedAction; import java.security.PrivilegedActionException; @@ -171,7 +167,26 @@ public abstract class DataTransferer { */ public static final DataFlavor javaTextEncodingFlavor; - private static SortedSet standardEncodings; + /** + * Lazy initialization of Standard Encodings. + */ + private static class StandardEncodingsHolder { + private static final SortedSet standardEncodings = load(); + + private static SortedSet load() { + final Comparator comparator = + new CharsetComparator(IndexedComparator.SELECT_WORST); + final SortedSet tempSet = new TreeSet(comparator); + tempSet.add("US-ASCII"); + tempSet.add("ISO-8859-1"); + tempSet.add("UTF-8"); + tempSet.add("UTF-16BE"); + tempSet.add("UTF-16LE"); + tempSet.add("UTF-16"); + tempSet.add(getDefaultTextCharset()); + return Collections.unmodifiableSortedSet(tempSet); + } + } /** * Tracks whether a particular text/* MIME type supports the charset @@ -509,18 +524,7 @@ public abstract class DataTransferer { * non-standard, character sets are not included. */ public static Iterator standardEncodings() { - if (standardEncodings == null) { - TreeSet tempSet = new TreeSet(defaultCharsetComparator); - tempSet.add("US-ASCII"); - tempSet.add("ISO-8859-1"); - tempSet.add("UTF-8"); - tempSet.add("UTF-16BE"); - tempSet.add("UTF-16LE"); - tempSet.add("UTF-16"); - tempSet.add(getDefaultTextCharset()); - standardEncodings = Collections.unmodifiableSortedSet(tempSet); - } - return standardEncodings.iterator(); + return StandardEncodingsHolder.standardEncodings.iterator(); } /** @@ -2398,7 +2402,9 @@ search: public static DataFlavor[] setToSortedDataFlavorArray(Set flavorsSet) { DataFlavor[] flavors = new DataFlavor[flavorsSet.size()]; flavorsSet.toArray(flavors); - Arrays.sort(flavors, defaultFlavorComparator); + final Comparator comparator = + new DataFlavorComparator(IndexedComparator.SELECT_WORST); + Arrays.sort(flavors, comparator); return flavors; } @@ -2455,11 +2461,6 @@ search: return new ArrayList(); } - private static CharsetComparator defaultCharsetComparator = - new CharsetComparator(IndexedComparator.SELECT_WORST); - private static DataFlavorComparator defaultFlavorComparator = - new DataFlavorComparator(IndexedComparator.SELECT_WORST); - /** * A Comparator which includes a helper function for comparing two Objects * which are likely to be keys in the specified Map. From 3ad5f6532c42ea871c8aa429ed4acb763086f29c Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Tue, 3 May 2011 16:00:35 -0700 Subject: [PATCH 117/147] Added tag hs21-b10 for changeset 33e592b5ff17 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index 5478ecfeaf9..ef89d2b9fec 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -167,3 +167,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 611e19a16519d6fb5deea9ab565336e6e6ee475d jdk7-b139 611e19a16519d6fb5deea9ab565336e6e6ee475d hs21-b09 d283b82966712b353fa307845a1316da42a355f4 jdk7-b140 +d283b82966712b353fa307845a1316da42a355f4 hs21-b10 From 2a4463da40dac9f4cbd6c0e6f06af5344dd66c30 Mon Sep 17 00:00:00 2001 From: Abhijit Saha Date: Wed, 4 May 2011 11:11:40 -0700 Subject: [PATCH 118/147] 7035172: Reintroduce LICENSE file in JDK/JRE bundle Reviewed-by: billyh --- jdk/make/common/Release.gmk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jdk/make/common/Release.gmk b/jdk/make/common/Release.gmk index fbb9f0d55f4..23ebd2a6817 100644 --- a/jdk/make/common/Release.gmk +++ b/jdk/make/common/Release.gmk @@ -85,8 +85,8 @@ ifdef OPENJDK else # make/closed/common/Defs.gmk for closed location of SHARE_JDK_DOC_SRC - IMAGE_DOCLIST_JDK = COPYRIGHT README.html THIRDPARTYLICENSEREADME.txt - IMAGE_DOCLIST_JRE = COPYRIGHT Welcome.html THIRDPARTYLICENSEREADME.txt + IMAGE_DOCLIST_JDK = COPYRIGHT README.html LICENSE THIRDPARTYLICENSEREADME.txt + IMAGE_DOCLIST_JRE = COPYRIGHT Welcome.html LICENSE THIRDPARTYLICENSEREADME.txt ifeq ($(PLATFORM), windows) IMAGE_DOCLIST_JRE += README.txt else From 87259cf6b3bdbdfdadbc3b8fd67ad3eca899be57 Mon Sep 17 00:00:00 2001 From: Vinnie Ryan Date: Wed, 4 May 2011 20:38:45 +0100 Subject: [PATCH 119/147] 6738532: Error in Elliptic Curve NamedCurve determination. (related to PKCS11) Reviewed-by: valeriep --- .../java/security/spec/EllipticCurve.java | 19 +++-- .../security/spec/EllipticCurveMatch.java | 84 +++++++++++++++++++ 2 files changed, 94 insertions(+), 9 deletions(-) create mode 100644 jdk/test/java/security/spec/EllipticCurveMatch.java diff --git a/jdk/src/share/classes/java/security/spec/EllipticCurve.java b/jdk/src/share/classes/java/security/spec/EllipticCurve.java index 135b13063f5..a270ee72494 100644 --- a/jdk/src/share/classes/java/security/spec/EllipticCurve.java +++ b/jdk/src/share/classes/java/security/spec/EllipticCurve.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, 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 @@ -165,8 +165,7 @@ public class EllipticCurve { * specified object. * @param obj the object to be compared. * @return true if obj is an instance of - * EllipticCurve and the field, A, B, and seeding bytes - * match, false otherwise. + * EllipticCurve and the field, A, and B match, false otherwise. */ public boolean equals(Object obj) { if (this == obj) return true; @@ -174,9 +173,8 @@ public class EllipticCurve { EllipticCurve curve = (EllipticCurve) obj; if ((field.equals(curve.field)) && (a.equals(curve.a)) && - (b.equals(curve.b)) && - (Arrays.equals(seed, curve.seed))) { - return true; + (b.equals(curve.b))) { + return true; } } return false; @@ -184,12 +182,15 @@ public class EllipticCurve { /** * Returns a hash code value for this elliptic curve. - * @return a hash code value. + * @return a hash code value computed from the hash codes of the field, A, + * and B, as follows: + * + * (field.hashCode() << 6) + (a.hashCode() << 4) + (b.hashCode() << 2) + * */ public int hashCode() { return (field.hashCode() << 6 + (a.hashCode() << 4) + - (b.hashCode() << 2) + - (seed==null? 0:seed.length)); + (b.hashCode() << 2)); } } diff --git a/jdk/test/java/security/spec/EllipticCurveMatch.java b/jdk/test/java/security/spec/EllipticCurveMatch.java new file mode 100644 index 00000000000..51908658e4b --- /dev/null +++ b/jdk/test/java/security/spec/EllipticCurveMatch.java @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 6738532 + * @summary Check EllipticCurve.equals() does not compare seed value of curve. + * @run main/othervm EllipticCurveMatch + * @author Mike StJohns + */ + +import java.security.spec.*; +import java.math.BigInteger; +import java.security.SecureRandom; + +public class EllipticCurveMatch { + static String primeP256 = + "0FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF"; + static String aP256 = + "0FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC"; + static String bP256 = + "05AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B"; + static String seedP256 = + "0C49D360886E704936A6678E1139D26B7819F7E90"; + + private static EllipticCurve addSeedToCurve(EllipticCurve curve) + { + SecureRandom rand = new SecureRandom(); + byte[] seed = new byte[12]; + rand.nextBytes(seed); + + return new EllipticCurve (curve.getField(), curve.getA(), curve.getB(), + seed); + } + + private static EllipticCurve getP256Curve() + { + ECFieldFp field = new ECFieldFp(new BigInteger (primeP256,16)); + BigInteger a = new BigInteger (aP256, 16); + BigInteger b = new BigInteger (bP256, 16); + + return new EllipticCurve (field, a, b); + } + + public static void main (String[] argv) throws Exception { + EllipticCurve firstCurve = getP256Curve(); + EllipticCurve secondCurve = addSeedToCurve(firstCurve); + EllipticCurve thirdCurve = addSeedToCurve(firstCurve); + + if (!firstCurve.equals(firstCurve)) + throw new Exception("Original curve doesn't equal itself"); + + if (!firstCurve.equals(secondCurve)) + throw new Exception ("Original curve doesn't equal seeded curve"); + + if (!secondCurve.equals(secondCurve)) + throw new Exception ("Seeded curve doesn't equal itself"); + + if (!secondCurve.equals(thirdCurve)) + throw new Exception ("Seeded curve doesn't equal differently " + + "seeded curve"); + System.out.println("Curve equals test passed"); + } +} From 679f58d07c188dd6c784ac36dd65f567a69938d7 Mon Sep 17 00:00:00 2001 From: David Holmes Date: Wed, 4 May 2011 22:16:28 -0400 Subject: [PATCH 120/147] 7041284: arm/ppc Missing launcher mapfiles prevent build Disable use of launcher mapfiles when cross-compiling Reviewed-by: ohair, ksrini --- jdk/make/common/Program.gmk | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/jdk/make/common/Program.gmk b/jdk/make/common/Program.gmk index 9fdde6d9745..38adb13b052 100644 --- a/jdk/make/common/Program.gmk +++ b/jdk/make/common/Program.gmk @@ -55,10 +55,13 @@ program_default_rule: all program: $(ACTUAL_PROGRAM) -# reuse the mapfiles in the launcher's directory, the same should -# be applicable to the tool launchers as well. -FILES_m = $(BUILDDIR)/java/main/java/mapfile-$(ARCH) -include $(BUILDDIR)/common/Mapfile-vers.gmk +# Work-around for missing processor specific mapfiles +ifndef CROSS_COMPILE_ARCH + # reuse the mapfiles in the launcher's directory, the same should + # be applicable to the tool launchers as well. + FILES_m = $(BUILDDIR)/java/main/java/mapfile-$(ARCH) + include $(BUILDDIR)/common/Mapfile-vers.gmk +endif include $(JDK_TOPDIR)/make/common/Rules.gmk From 230aec2f494164b93102f1cb1c0e5aac5cfd3c99 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:01:55 -0700 Subject: [PATCH 121/147] Added tag jdk7-b141 for changeset 0f69dca4aa47 --- .hgtags-top-repo | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags-top-repo b/.hgtags-top-repo index 3bdb4f112e3..6745af50b29 100644 --- a/.hgtags-top-repo +++ b/.hgtags-top-repo @@ -115,3 +115,4 @@ ddc2fcb3682ffd27f44354db666128827be7e3c3 jdk7-b134 fc47c97bbbd91b1f774d855c48a7e285eb1a351a jdk7-b138 7ed6d0b9aaa12320832a7ddadb88d6d8d0dda4c1 jdk7-b139 dcfe74f1c6553c556e7d361c30b0b614eb5e40f6 jdk7-b140 +c6569c5585851dfd39b8de8e021c3c312f51af12 jdk7-b141 From 5af1de038eca0c8964e8a7e5d62c44dc33ace668 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:01:57 -0700 Subject: [PATCH 122/147] Added tag jdk7-b141 for changeset b24cc3620ee4 --- corba/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/corba/.hgtags b/corba/.hgtags index 0cc360827c3..9624f1f3878 100644 --- a/corba/.hgtags +++ b/corba/.hgtags @@ -115,3 +115,4 @@ a66c01d8bf895261715955df0b95545c000ed6a8 jdk7-b137 78d8cf04697e9df54f7f11e195b7da29b8e345a2 jdk7-b138 60b074ec6fcf5cdf9efce22fdfb02326ed8fa2d3 jdk7-b139 cdf5d19ec142424489549025e9c42e51f32cf688 jdk7-b140 +a58635cdd921bafef353f4864184a0481353197b jdk7-b141 From e554c899e509af6306334352273aabf74968fbe5 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:02:02 -0700 Subject: [PATCH 123/147] Added tag jdk7-b141 for changeset dbc77e0dc173 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index ef89d2b9fec..d73bad76c1c 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -168,3 +168,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 611e19a16519d6fb5deea9ab565336e6e6ee475d hs21-b09 d283b82966712b353fa307845a1316da42a355f4 jdk7-b140 d283b82966712b353fa307845a1316da42a355f4 hs21-b10 +5d07913abd59261c77f24cc04a759cb75d804099 jdk7-b141 From 31d82bb88b9186c6b50bcc0403bf11bff6e0af02 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:02:10 -0700 Subject: [PATCH 124/147] Added tag jdk7-b141 for changeset cb7a3284b15b --- jaxp/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxp/.hgtags b/jaxp/.hgtags index 78d0d9f5a94..a61349e7ee7 100644 --- a/jaxp/.hgtags +++ b/jaxp/.hgtags @@ -115,3 +115,4 @@ d56b326ae0544fc16c3e0d0285876f3c82054db2 jdk7-b134 be3758943770a0a3dd4be6a1cb4063507c4d7062 jdk7-b138 28c7c0ed2444607829ba11ad827f8d52197a2830 jdk7-b139 c8136fd161c83917f87e93b14fa2ba3483f9be83 jdk7-b140 +e1b5ef243445bf836d095fd44866e1771ef99374 jdk7-b141 From 08faa8037b8f5d14fdc78b4a0fe0c5ef7389dffe Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:02:11 -0700 Subject: [PATCH 125/147] Added tag jdk7-b141 for changeset 76bb81c6327c --- jaxws/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jaxws/.hgtags b/jaxws/.hgtags index 2cfc85038bf..9fc1479b23f 100644 --- a/jaxws/.hgtags +++ b/jaxws/.hgtags @@ -115,3 +115,4 @@ ccea3282991ce8b678e188cf32a8239f76ff3bfa jdk7-b137 cc956c8a8255583535597e9a63db23c510e9a063 jdk7-b138 c025078c8362076503bb83b8e4da14ba7b347940 jdk7-b139 82a9022c4f21b1313023c8303b557a17c4106701 jdk7-b140 +66826b0aec5a1834da3821c35cf85ac154e9b04d jdk7-b141 From b56aedf465132d12971e0ab92e43e0138977cb1c Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:02:17 -0700 Subject: [PATCH 126/147] Added tag jdk7-b141 for changeset 3d44ee873b9c --- jdk/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/jdk/.hgtags b/jdk/.hgtags index 68e25fecbb6..8a7ff58323d 100644 --- a/jdk/.hgtags +++ b/jdk/.hgtags @@ -115,3 +115,4 @@ aa13e7702cd9d8aca9aa38f1227f966990866944 jdk7-b136 60d3d55dcc9c31a30ced9caa6ef5c0dcd7db031d jdk7-b138 d80954a89b49fda47c0c5cace65a17f5a758b8bd jdk7-b139 9315c733fb17ddfb9fb44be7e0ffea37bf3c727d jdk7-b140 +63eeefe118da18c75ba3d36266768cd1ccaaca6b jdk7-b141 From eb1839a110599b45ce799495172d1b6d5f2761b3 Mon Sep 17 00:00:00 2001 From: Suchen Chien Date: Thu, 5 May 2011 14:02:30 -0700 Subject: [PATCH 127/147] Added tag jdk7-b141 for changeset af4b2168b0f9 --- langtools/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/langtools/.hgtags b/langtools/.hgtags index 2ce033497a0..14491d74a04 100644 --- a/langtools/.hgtags +++ b/langtools/.hgtags @@ -115,3 +115,4 @@ a15c9b058ae007d4ccb7e35ce44e4dfa977f090b jdk7-b137 53f212bed4f4304dce7f0bf0fa01c998c65bacd6 jdk7-b138 853b6bb99f9b58eb7cf8211c67d3b6e4f1228a3e jdk7-b139 258e6654aba25aab91c9ba3b4c53d05bc895a86c jdk7-b140 +90adb5d6adc7d99d27c8b142a31ac8921070274f jdk7-b141 From 6e40ce24d5ca3c9e6b6a371a997e74ba83c5b30e Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Fri, 6 May 2011 01:55:29 +0100 Subject: [PATCH 128/147] 7042040: Remove disk space sanity check Remove outdated disk space checks using df Reviewed-by: ohair, omajid --- jdk/make/common/shared/Defs-versions.gmk | 11 ----------- jdk/make/common/shared/Sanity-Settings.gmk | 2 -- jdk/make/common/shared/Sanity.gmk | 18 ------------------ 3 files changed, 31 deletions(-) diff --git a/jdk/make/common/shared/Defs-versions.gmk b/jdk/make/common/shared/Defs-versions.gmk index 05d81efec08..6e00b22f00f 100644 --- a/jdk/make/common/shared/Defs-versions.gmk +++ b/jdk/make/common/shared/Defs-versions.gmk @@ -72,10 +72,6 @@ endif # REQUIRED_DXSDK_VER # Windows only: The version of DirectX SDK expected. # -# REQUIRED_FREE_SPACE -# The minimum disk space needed as determined by running 'du -sk' on a fully -# built workspace. -# # REQUIRED_FREETYPE_VERSION # If we are using freetype, the freetype version expected. # @@ -131,11 +127,6 @@ ifeq ($(PLATFORM), solaris) REQUIRED_OS_VERSION = 5.10 REQUIRED_OS_VARIANT_NAME = Solaris REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION) - ifeq ($(ARCH_FAMILY), sparc) - REQUIRED_FREE_SPACE = 1300000 - else - REQUIRED_FREE_SPACE = 1040000 - endif REQUIRED_COMPILER_NAME = Sun Studio 12 Update 1 REQUIRED_COMPILER_VERSION = SS12u1 # Cross-compilation compiler versions are target specific @@ -157,7 +148,6 @@ ifeq ($(PLATFORM), linux) REQUIRED_OS_VERSION = 2.6 REQUIRED_OS_VARIANT_NAME = Fedora REQUIRED_OS_VARIANT_VERSION = 9 - REQUIRED_FREE_SPACE = 1460000 REQUIRED_ALSA_VERSION = 0.9.1 REQUIRED_COMPILER_NAME = GCC4 REQUIRED_COMPILER_VERSION = GCC4 @@ -187,7 +177,6 @@ ifeq ($(PLATFORM), windows) REQUIRED_OS_VARIANT_VERSION = $(REQUIRED_OS_VERSION) REQUIRED_CYGWIN_VER = 4.0 REQUIRED_MKS_VER = 6.1 - REQUIRED_FREE_SPACE = 500000 REQUIRED_DXSDK_VER = 0x0900 ifeq ($(CC_VERSION),msvc) REQUIRED_COMPILER_NAME = Visual Studio 10 diff --git a/jdk/make/common/shared/Sanity-Settings.gmk b/jdk/make/common/shared/Sanity-Settings.gmk index 36179fed5fd..ecc39c1a724 100644 --- a/jdk/make/common/shared/Sanity-Settings.gmk +++ b/jdk/make/common/shared/Sanity-Settings.gmk @@ -192,8 +192,6 @@ endif ALL_SETTINGS+=$(call addRequiredVersionSetting,OS_VERSION) ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_NAME) ALL_SETTINGS+=$(call addOptionalSetting,OS_VARIANT_VERSION) -ALL_SETTINGS+=$(call addRequiredSetting,TEMP_FREE_SPACE) -ALL_SETTINGS+=$(call addRequiredSetting,FREE_SPACE) ALL_SETTINGS+=$(call addRequiredSetting,MB_OF_MEMORY) diff --git a/jdk/make/common/shared/Sanity.gmk b/jdk/make/common/shared/Sanity.gmk index 99f64fd3842..1dbedb17a75 100644 --- a/jdk/make/common/shared/Sanity.gmk +++ b/jdk/make/common/shared/Sanity.gmk @@ -69,8 +69,6 @@ endef # Settings and rules to validate the JDK build environment. ifeq ($(PLATFORM), solaris) - FREE_SPACE := $(shell $(DF) -b $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$2;}') - TEMP_FREE_SPACE := $(shell $(DF) -b $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$2;}') # What kind of system we are using (Variations are Solaris and OpenSolaris) OS_VERSION := $(shell uname -r) OS_VARIANT_NAME := $(strip $(shell head -1 /etc/release | awk '{print $$1;}') ) @@ -88,8 +86,6 @@ ifeq ($(PLATFORM), solaris) endif ifeq ($(PLATFORM), linux) - FREE_SPACE := $(shell $(DF) --sync -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}') - TEMP_FREE_SPACE := $(shell $(DF) --sync -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}') # What kind of system we are using (Variation is the Linux vendor) OS_VERSION := $(shell uname -r) OS_VARIANT_NAME := $(shell \ @@ -118,8 +114,6 @@ ifeq ($(PLATFORM), linux) endif ifeq ($(PLATFORM), windows) - FREE_SPACE := $(shell $(DF) -kP $(OUTPUTDIR) | $(TAIL) -1 | $(NAWK) '{print $$4;}') - TEMP_FREE_SPACE := $(shell $(DF) -kP $(TEMP_DISK) | $(TAIL) -1 | $(NAWK) '{print $$4;}') # Windows 2000 is 5.0, Windows XP is 5.1, Windows 2003 is 5.2 # Assume 5.0 (Windows 2000) if systeminfo does not help WINDOWS_MAPPING-5.0 := Windows2000 @@ -715,18 +709,6 @@ sane-outputdir: " Either obtain these permissions or set ALT_OUTPUTDIR. \n" \ "" >> $(ERROR_FILE) ; \ fi - @# - @# OUTPUTDIR must have enough free space... - @# - @if [ $(FREE_SPACE) -lt $(REQUIRED_FREE_SPACE) ]; then \ - $(ECHO) "WARNING: You may not have enough free space in your OUTPUTDIR. The \n" \ - " current value of OUTPUTDIR is \n" \ - " $(OUTPUTDIR) \n" \ - " You need "$(REQUIRED_FREE_SPACE)" Kbytes free on this device to build \n" \ - " and it appears that only "$(FREE_SPACE)" Kbytes are free. \n" \ - " Either obtain more space or set ALT_OUTPUTDIR to a larger disk. \n" \ - "" >> $(WARNING_FILE) ; \ - fi ###################################################### # if specified, ALT_BOOTDIR must point to non-relative path if set From e20a4c4a39c51aeb64faff5959053bde58976777 Mon Sep 17 00:00:00 2001 From: Christine Lu Date: Thu, 5 May 2011 18:05:24 -0700 Subject: [PATCH 129/147] 7026163: gzip tar files Reviewed-by: katleman --- jdk/make/common/shared/Defs-utils.gmk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jdk/make/common/shared/Defs-utils.gmk b/jdk/make/common/shared/Defs-utils.gmk index a5b1802c46b..1cebe93ca5b 100644 --- a/jdk/make/common/shared/Defs-utils.gmk +++ b/jdk/make/common/shared/Defs-utils.gmk @@ -109,6 +109,8 @@ FMT = $(UTILS_COMMAND_PATH)fmt GDB = $(UTILS_USR_BIN_PATH)gdb GREP = $(UTILS_COMMAND_PATH)grep GUNZIP = $(UTILS_COMMAND_PATH)gunzip +# GZIP is used for solaris. Linux and windows use tar czf +GZIP = $(UTILS_COMMAND_PATH)gzip HEAD = $(UTILS_USR_BIN_PATH)head HG = hg ID = $(UTILS_COMMAND_PATH)id From 186fce71ec83c6deb44c6a997861146b50e48ef9 Mon Sep 17 00:00:00 2001 From: Frederic Parain Date: Fri, 6 May 2011 18:09:33 +0200 Subject: [PATCH 130/147] 7028071: Add two attributes to the OperatingSystemMXBean to provide CPU Load info Add getProcessCpuLoad() and getSystemCpuLoad() to the OperatingSystemMXBean Reviewed-by: acorn, dholmes, mchung --- jdk/make/java/management/Makefile | 14 + jdk/make/java/management/mapfile-vers | 2 + .../sun/management/OperatingSystemMXBean.java | 35 + .../sun/management/UnixOperatingSystem.java | 2 + .../com/sun/management/LinuxOperatingSystem.c | 332 +++++++ .../sun/management/SolarisOperatingSystem.c | 241 ++++++ .../com/sun/management/OperatingSystem.java | 2 + .../com/sun/management/OperatingSystem_md.c | 808 +++++++++++++++++- .../GetProcessCpuLoad.java | 53 ++ .../GetSystemCpuLoad.java | 53 ++ 10 files changed, 1541 insertions(+), 1 deletion(-) create mode 100644 jdk/src/solaris/native/com/sun/management/LinuxOperatingSystem.c create mode 100644 jdk/src/solaris/native/com/sun/management/SolarisOperatingSystem.c create mode 100644 jdk/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java create mode 100644 jdk/test/com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java diff --git a/jdk/make/java/management/Makefile b/jdk/make/java/management/Makefile index aa9b889546d..6f81ae70a6d 100644 --- a/jdk/make/java/management/Makefile +++ b/jdk/make/java/management/Makefile @@ -63,6 +63,20 @@ else # PLATFORM (i.e. solaris & linux) FILES_c += UnixOperatingSystem_md.c FILES_export += com/sun/management/UnixOperatingSystem.java + +ifeq ($(PLATFORM),solaris) + +FILES_c += SolarisOperatingSystem.c +OTHER_LDLIBS += -lkstat + +endif # PLATFORM solaris + +ifeq ($(PLATFORM),linux) + +FILES_c += LinuxOperatingSystem.c + +endif # PLATFORM linux + endif # PLATFORM # diff --git a/jdk/make/java/management/mapfile-vers b/jdk/make/java/management/mapfile-vers index d84f061a175..1fb36b78c49 100644 --- a/jdk/make/java/management/mapfile-vers +++ b/jdk/make/java/management/mapfile-vers @@ -32,7 +32,9 @@ SUNWprivate_1.1 { Java_com_sun_management_UnixOperatingSystem_getFreeSwapSpaceSize; Java_com_sun_management_UnixOperatingSystem_getMaxFileDescriptorCount; Java_com_sun_management_UnixOperatingSystem_getOpenFileDescriptorCount; + Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad; Java_com_sun_management_UnixOperatingSystem_getProcessCpuTime; + Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad; Java_com_sun_management_UnixOperatingSystem_getTotalPhysicalMemorySize; Java_com_sun_management_UnixOperatingSystem_getTotalSwapSpaceSize; Java_com_sun_management_UnixOperatingSystem_initialize; diff --git a/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java b/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java index 00e32591a56..965241b9d88 100644 --- a/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java +++ b/jdk/src/share/classes/com/sun/management/OperatingSystemMXBean.java @@ -92,4 +92,39 @@ public interface OperatingSystemMXBean extends * @return the total amount of physical memory in bytes. */ public long getTotalPhysicalMemorySize(); + + /** + * Returns the "recent cpu usage" for the whole system. This value is a + * double in the [0.0,1.0] interval. A value of 0.0 means that all CPUs + * were idle during the recent period of time observed, while a value + * of 1.0 means that all CPUs were actively running 100% of the time + * during the recent period being observed. All values betweens 0.0 and + * 1.0 are possible depending of the activities going on in the system. + * If the system recent cpu usage is not available, the method returns a + * negative value. + * + * @return the "recent cpu usage" for the whole system; a negative + * value if not available. + * @since 1.7 + */ + public double getSystemCpuLoad(); + + /** + * Returns the "recent cpu usage" for the Java Virtual Machine process. + * This value is a double in the [0.0,1.0] interval. A value of 0.0 means + * that none of the CPUs were running threads from the JVM process during + * the recent period of time observed, while a value of 1.0 means that all + * CPUs were actively running threads from the JVM 100% of the time + * during the recent period being observed. Threads from the JVM include + * the application threads as well as the JVM internal threads. All values + * betweens 0.0 and 1.0 are possible depending of the activities going on + * in the JVM process and the whole system. If the Java Virtual Machine + * recent CPU usage is not available, the method returns a negative value. + * + * @return the "recent cpu usage" for the Java Virtual Machine process; + * a negative value if not available. + * @since 1.7 + */ + public double getProcessCpuLoad(); + } diff --git a/jdk/src/solaris/classes/com/sun/management/UnixOperatingSystem.java b/jdk/src/solaris/classes/com/sun/management/UnixOperatingSystem.java index 5388dad3d92..608a6381e17 100644 --- a/jdk/src/solaris/classes/com/sun/management/UnixOperatingSystem.java +++ b/jdk/src/solaris/classes/com/sun/management/UnixOperatingSystem.java @@ -50,6 +50,8 @@ class UnixOperatingSystem public native long getTotalPhysicalMemorySize(); public native long getOpenFileDescriptorCount(); public native long getMaxFileDescriptorCount(); + public native double getSystemCpuLoad(); + public native double getProcessCpuLoad(); static { initialize(); diff --git a/jdk/src/solaris/native/com/sun/management/LinuxOperatingSystem.c b/jdk/src/solaris/native/com/sun/management/LinuxOperatingSystem.c new file mode 100644 index 00000000000..19d84fe0f84 --- /dev/null +++ b/jdk/src/solaris/native/com/sun/management/LinuxOperatingSystem.c @@ -0,0 +1,332 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "com_sun_management_UnixOperatingSystem.h" + +struct ticks { + uint64_t used; + uint64_t usedKernel; + uint64_t total; +}; + +typedef struct ticks ticks; + +typedef enum { + CPU_LOAD_VM_ONLY, + CPU_LOAD_GLOBAL, +} CpuLoadTarget; + +static struct perfbuf { + int nProcs; + ticks jvmTicks; + ticks cpuTicks; + ticks *cpus; +} counters; + +#define DEC_64 "%lld" + +static void next_line(FILE *f) { + while (fgetc(f) != '\n'); +} + +/** + * Return the total number of ticks since the system was booted. + * If the usedTicks parameter is not NULL, it will be filled with + * the number of ticks spent on actual processes (user, system or + * nice processes) since system boot. Note that this is the total number + * of "executed" ticks on _all_ CPU:s, that is on a n-way system it is + * n times the number of ticks that has passed in clock time. + * + * Returns a negative value if the reading of the ticks failed. + */ +static int get_totalticks(int which, ticks *pticks) { + FILE *fh; + uint64_t userTicks, niceTicks, systemTicks, idleTicks; + int n; + + if((fh = fopen("/proc/stat", "r")) == NULL) { + return -1; + } + + n = fscanf(fh, "cpu " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, + &userTicks, &niceTicks, &systemTicks, &idleTicks); + + // Move to next line + next_line(fh); + + //find the line for requested cpu faster to just iterate linefeeds? + if (which != -1) { + int i; + for (i = 0; i < which; i++) { + if (fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64, &userTicks, &niceTicks, &systemTicks, &idleTicks) != 4) { + fclose(fh); + return -2; + } + next_line(fh); + } + n = fscanf(fh, "cpu%*d " DEC_64 " " DEC_64 " " DEC_64 " " DEC_64 "\n", + &userTicks, &niceTicks, &systemTicks, &idleTicks); + } + + fclose(fh); + if (n != 4) { + return -2; + } + + pticks->used = userTicks + niceTicks; + pticks->usedKernel = systemTicks; + pticks->total = userTicks + niceTicks + systemTicks + idleTicks; + + return 0; +} + +static int vread_statdata(const char *procfile, const char *fmt, va_list args) { + FILE *f; + int n; + char buf[2048]; + + if ((f = fopen(procfile, "r")) == NULL) { + return -1; + } + + if ((n = fread(buf, 1, sizeof(buf), f)) != -1) { + char *tmp; + + buf[n-1] = '\0'; + /** skip through pid and exec name. the exec name _could be wacky_ (renamed) and + * make scanf go mupp. + */ + if ((tmp = strrchr(buf, ')')) != NULL) { + // skip the ')' and the following space but check that the buffer is long enough + tmp += 2; + if (tmp < buf + n) { + n = vsscanf(tmp, fmt, args); + } + } + } + + fclose(f); + + return n; +} + +static int read_statdata(const char *procfile, const char *fmt, ...) { + int n; + va_list args; + + va_start(args, fmt); + n = vread_statdata(procfile, fmt, args); + va_end(args); + return n; +} + +/** read user and system ticks from a named procfile, assumed to be in 'stat' format then. */ +static int read_ticks(const char *procfile, uint64_t *userTicks, uint64_t *systemTicks) { + return read_statdata(procfile, "%*c %*d %*d %*d %*d %*d %*u %*u %*u %*u %*u "DEC_64" "DEC_64, + userTicks, systemTicks + ); +} + +/** + * Return the number of ticks spent in any of the processes belonging + * to the JVM on any CPU. + */ +static int get_jvmticks(ticks *pticks) { + uint64_t userTicks; + uint64_t systemTicks; + + if (read_ticks("/proc/self/stat", &userTicks, &systemTicks) < 0) { + return -1; + } + + // get the total + if (get_totalticks(-1, pticks) < 0) { + return -1; + } + + pticks->used = userTicks; + pticks->usedKernel = systemTicks; + + return 0; +} + +/** + * This method must be called first, before any data can be gathererd. + */ +int perfInit() { + static int initialized=1; + + if (!initialized) { + int i; + + int n = sysconf(_SC_NPROCESSORS_ONLN); + if (n <= 0) { + n = 1; + } + + counters.cpus = calloc(n,sizeof(ticks)); + if (counters.cpus != NULL) { + // For the CPU load + get_totalticks(-1, &counters.cpuTicks); + + for (i = 0; i < n; i++) { + get_totalticks(i, &counters.cpus[i]); + } + // For JVM load + get_jvmticks(&counters.jvmTicks); + initialized = 1; + } + } + + return initialized ? 0 : -1; +} + +#define MAX(a,b) (a>b?a:b) +#define MIN(a,b) (ausedKernel < tmp.usedKernel) { + kdiff = 0; + } else { + kdiff = pticks->usedKernel - tmp.usedKernel; + } + tdiff = pticks->total - tmp.total; + udiff = pticks->used - tmp.used; + + if (tdiff == 0) { + user_load = 0; + } else { + if (tdiff < (udiff + kdiff)) { + tdiff = udiff + kdiff; + } + *pkernelLoad = (kdiff / (double)tdiff); + // BUG9044876, normalize return values to sane values + *pkernelLoad = MAX(*pkernelLoad, 0.0); + *pkernelLoad = MIN(*pkernelLoad, 1.0); + + user_load = (udiff / (double)tdiff); + user_load = MAX(user_load, 0.0); + user_load = MIN(user_load, 1.0); + } + } + } + pthread_mutex_unlock(&lock); + return user_load; +} + +double get_cpu_load(int which) { + double u, s; + u = get_cpuload_internal(which, &s, CPU_LOAD_GLOBAL); + if (u < 0) { + return -1.0; + } + // Cap total systemload to 1.0 + return MIN((u + s), 1.0); +} + +double get_process_load() { + double u, s; + u = get_cpuload_internal(-1, &s, CPU_LOAD_VM_ONLY); + if (u < 0) { + return -1.0; + } + return u + s; +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + if(perfInit() == 0) { + return get_cpu_load(-1); + } else { + return -1.0; + } +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + if(perfInit() == 0) { + return get_process_load(); + } else { + return -1.0; + } +} diff --git a/jdk/src/solaris/native/com/sun/management/SolarisOperatingSystem.c b/jdk/src/solaris/native/com/sun/management/SolarisOperatingSystem.c new file mode 100644 index 00000000000..c5ebb975ef2 --- /dev/null +++ b/jdk/src/solaris/native/com/sun/management/SolarisOperatingSystem.c @@ -0,0 +1,241 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "jvm.h" +#include "com_sun_management_UnixOperatingSystem.h" + +typedef struct { + kstat_t *kstat; + uint64_t last_idle; + uint64_t last_total; + double last_ratio; +} cpuload_t; + +static cpuload_t *cpu_loads = NULL; +static unsigned int num_cpus; +static kstat_ctl_t *kstat_ctrl = NULL; + +static void map_cpu_kstat_counters() { + kstat_t *kstat; + int i; + + // Get number of CPU(s) + if ((num_cpus = sysconf(_SC_NPROCESSORS_ONLN)) == -1) { + num_cpus = 1; + } + + // Data structure for saving CPU load + if ((cpu_loads = calloc(num_cpus,sizeof(cpuload_t))) == NULL) { + return; + } + + // Get kstat cpu_stat counters for every CPU + // (loop over kstat to find our cpu_stat(s) + i = 0; + for (kstat = kstat_ctrl->kc_chain; kstat != NULL; kstat = kstat->ks_next) { + if (strncmp(kstat->ks_module, "cpu_stat", 8) == 0) { + + if (kstat_read(kstat_ctrl, kstat, NULL) == -1) { + // Failed to initialize kstat for this CPU so ignore it + continue; + } + + if (i == num_cpus) { + // Found more cpu_stats than reported CPUs + break; + } + + cpu_loads[i++].kstat = kstat; + } + } +} + +static int init_cpu_kstat_counters() { + static int initialized = 0; + + // Concurrence in this method is prevented by the lock in + // the calling method get_cpu_load(); + if(!initialized) { + if ((kstat_ctrl = kstat_open()) != NULL) { + map_cpu_kstat_counters(); + initialized = 1; + } + } + return initialized ? 0 : -1; +} + +static void update_cpu_kstat_counters() { + if(kstat_chain_update(kstat_ctrl) != 0) { + free(cpu_loads); + map_cpu_kstat_counters(); + } +} + +int read_cpustat(cpuload_t *load, cpu_stat_t *cpu_stat) { + if (load->kstat == NULL) { + // no handle. + return -1; + } + if (kstat_read(kstat_ctrl, load->kstat, cpu_stat) == -1) { + // disabling for now, a kstat chain update is likely to happen next time + load->kstat = NULL; + return -1; + } + return 0; +} + +double get_single_cpu_load(unsigned int n) { + cpuload_t *load; + cpu_stat_t cpu_stat; + uint_t *usage; + uint64_t c_idle; + uint64_t c_total; + uint64_t d_idle; + uint64_t d_total; + int i; + + if (n >= num_cpus) { + return -1.0; + } + + load = &cpu_loads[n]; + if (read_cpustat(load, &cpu_stat) < 0) { + return -1.0; + } + + usage = cpu_stat.cpu_sysinfo.cpu; + c_idle = usage[CPU_IDLE]; + + for (c_total = 0, i = 0; i < CPU_STATES; i++) { + c_total += usage[i]; + } + + // Calculate diff against previous snapshot + d_idle = c_idle - load->last_idle; + d_total = c_total - load->last_total; + + /** update if weve moved */ + if (d_total > 0) { + // Save current values for next time around + load->last_idle = c_idle; + load->last_total = c_total; + load->last_ratio = (double) (d_total - d_idle) / d_total; + } + + return load->last_ratio; +} + +int get_info(const char *path, void *info, size_t s, off_t o) { + int fd; + int ret = 0; + if ((fd = open(path, O_RDONLY)) < 0) { + return -1; + } + if (pread(fd, info, s, o) != s) { + ret = -1; + } + close(fd); + return ret; +} + +#define MIN(a, b) ((a < b) ? a : b) + +static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; + +/** + * Return the cpu load (0-1) for proc number 'which' (or average all if which == -1) + */ +double get_cpu_load(int which) { + double load =.0; + + pthread_mutex_lock(&lock); + if(init_cpu_kstat_counters()==0) { + + update_cpu_kstat_counters(); + + if (which == -1) { + unsigned int i; + double t; + + for (t = .0, i = 0; i < num_cpus; i++) { + t += get_single_cpu_load(i); + } + + // Cap total systemload to 1.0 + load = MIN((t / num_cpus), 1.0); + } else { + load = MIN(get_single_cpu_load(which), 1.0); + } + } else { + load = -1.0; + } + pthread_mutex_unlock(&lock); + + return load; +} + +/** + * Return the cpu load (0-1) for the current process (i.e the JVM) + * or -1.0 if the get_info() call failed + */ +double get_process_load(void) { + psinfo_t info; + + // Get the percentage of "recent cpu usage" from all the lwp:s in the JVM:s + // process. This is returned as a value between 0.0 and 1.0 multiplied by 0x8000. + if (get_info("/proc/self/psinfo",&info.pr_pctcpu, sizeof(info.pr_pctcpu), offsetof(psinfo_t, pr_pctcpu)) == 0) { + return (double) info.pr_pctcpu / 0x8000; + } + return -1.0; +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_UnixOperatingSystem_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + return get_cpu_load(-1); +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_UnixOperatingSystem_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + return get_process_load(); +} + diff --git a/jdk/src/windows/classes/com/sun/management/OperatingSystem.java b/jdk/src/windows/classes/com/sun/management/OperatingSystem.java index 68cdfce5c4b..f9481124484 100644 --- a/jdk/src/windows/classes/com/sun/management/OperatingSystem.java +++ b/jdk/src/windows/classes/com/sun/management/OperatingSystem.java @@ -58,6 +58,8 @@ class OperatingSystem public native long getProcessCpuTime(); public native long getFreePhysicalMemorySize(); public native long getTotalPhysicalMemorySize(); + public native double getSystemCpuLoad(); + public native double getProcessCpuLoad(); static { initialize(); diff --git a/jdk/src/windows/native/com/sun/management/OperatingSystem_md.c b/jdk/src/windows/native/com/sun/management/OperatingSystem_md.c index 9422ee2dc86..b5248992ea4 100644 --- a/jdk/src/windows/native/com/sun/management/OperatingSystem_md.c +++ b/jdk/src/windows/native/com/sun/management/OperatingSystem_md.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -34,9 +34,27 @@ #include #include +#include +#pragma warning (push,0) +#include +#pragma warning (pop) +#include +#include +#include +#include + +/* Disable warnings due to broken header files from Microsoft... */ +#pragma warning(push, 3) +#include +#include +#include +#pragma warning(pop) + typedef unsigned __int32 juint; typedef unsigned __int64 julong; +typedef enum boolean_values { false=0, true=1}; + static void set_low(jlong* value, jint low) { *value &= (jlong)0xffffffff << 32; *value |= (jlong)(julong)(juint)low; @@ -56,11 +74,14 @@ static jlong jlong_from(jint h, jint l) { static HANDLE main_process; +int perfiInit(void); + JNIEXPORT void JNICALL Java_com_sun_management_OperatingSystem_initialize (JNIEnv *env, jclass cls) { main_process = GetCurrentProcess(); + perfiInit(); } JNIEXPORT jlong JNICALL @@ -132,3 +153,788 @@ Java_com_sun_management_OperatingSystem_getTotalPhysicalMemorySize GlobalMemoryStatus(&ms); return ms.dwTotalPhys; } + +// Seems WinXP PDH returns PDH_MORE_DATA whenever we send in a NULL buffer. +// Let's just ignore it, since we make sure we have enough buffer anyway. +static int +pdh_fail(PDH_STATUS pdhStat) { + return pdhStat != ERROR_SUCCESS && pdhStat != PDH_MORE_DATA; +} + +// INFO: Using PDH APIs Correctly in a Localized Language (Q287159) +// http://support.microsoft.com/default.aspx?scid=kb;EN-US;q287159 +// The index value for the base system counters and objects like processor, +// process, thread, memory, and so forth are always the same irrespective +// of the localized version of the operating system or service pack installed. +#define PDH_PROCESSOR_IDX ((DWORD) 238) +#define PDH_PROCESSOR_TIME_IDX ((DWORD) 6) +#define PDH_PRIV_PROCESSOR_TIME_IDX ((DWORD) 144) +#define PDH_PROCESS_IDX ((DWORD) 230) +#define PDH_ID_PROCESS_IDX ((DWORD) 784) +#define PDH_CONTEXT_SWITCH_RATE_IDX ((DWORD) 146) +#define PDH_SYSTEM_IDX ((DWORD) 2) +#define PDH_VIRTUAL_BYTES_IDX ((DWORD) 174) + +typedef PDH_STATUS (WINAPI *PdhAddCounterFunc)( + HQUERY hQuery, + LPCSTR szFullCounterPath, + DWORD dwUserData, + HCOUNTER *phCounter + ); +typedef PDH_STATUS (WINAPI *PdhOpenQueryFunc)( + LPCWSTR szDataSource, + DWORD dwUserData, + HQUERY *phQuery + ); +typedef DWORD (WINAPI *PdhCloseQueryFunc)( + HQUERY hQuery + ); +typedef PDH_STATUS (WINAPI *PdhCollectQueryDataFunc)( + HQUERY hQuery + ); +typedef DWORD (WINAPI *PdhGetFormattedCounterValueFunc)( + HCOUNTER hCounter, + DWORD dwFormat, + LPDWORD lpdwType, + PPDH_FMT_COUNTERVALUE pValue + ); +typedef PDH_STATUS (WINAPI *PdhEnumObjectItemsFunc)( + LPCTSTR szDataSource, + LPCTSTR szMachineName, + LPCTSTR szObjectName, + LPTSTR mszCounterList, + LPDWORD pcchCounterListLength, + LPTSTR mszInstanceList, + LPDWORD pcchInstanceListLength, + DWORD dwDetailLevel, + DWORD dwFlags + ); +typedef PDH_STATUS (WINAPI *PdhRemoveCounterFunc)( + HCOUNTER hCounter + ); +typedef PDH_STATUS (WINAPI *PdhLookupPerfNameByIndexFunc)( + LPCSTR szMachineName, + DWORD dwNameIndex, + LPSTR szNameBuffer, + LPDWORD pcchNameBufferSize + ); +typedef PDH_STATUS (WINAPI *PdhMakeCounterPathFunc)( + PDH_COUNTER_PATH_ELEMENTS *pCounterPathElements, + LPTSTR szFullPathBuffer, + LPDWORD pcchBufferSize, + DWORD dwFlags + ); + +static PdhAddCounterFunc PdhAddCounter_i; +static PdhOpenQueryFunc PdhOpenQuery_i; +static PdhCloseQueryFunc PdhCloseQuery_i; +static PdhCollectQueryDataFunc PdhCollectQueryData_i; +static PdhGetFormattedCounterValueFunc PdhGetFormattedCounterValue_i; +static PdhEnumObjectItemsFunc PdhEnumObjectItems_i; +static PdhRemoveCounterFunc PdhRemoveCounter_i; +static PdhLookupPerfNameByIndexFunc PdhLookupPerfNameByIndex_i; +static PdhMakeCounterPathFunc PdhMakeCounterPath_i; + +static HANDLE thisProcess; +static double cpuFactor; +static DWORD num_cpus; + +#define FT2JLONG(X) ((((jlong)X.dwHighDateTime) << 32) | ((jlong)X.dwLowDateTime)) +#define COUNTER_BUF_SIZE 256 +// Min time between query updates. +#define MIN_UPDATE_INTERVAL 500 +#define CONFIG_SUCCESSFUL 0 + +/** + * Struct for PDH queries. + */ +typedef struct { + HQUERY query; + uint64_t lastUpdate; // Last time query was updated (current millis). +} UpdateQueryS, *UpdateQueryP; + +/** + * Struct for the processor load counters. + */ +typedef struct { + UpdateQueryS query; + HCOUNTER* counters; + int noOfCounters; +} MultipleCounterQueryS, *MultipleCounterQueryP; + +/** + * Struct for the jvm process load counter. + */ +typedef struct { + UpdateQueryS query; + HCOUNTER counter; +} SingleCounterQueryS, *SingleCounterQueryP; + +static char* getProcessPDHHeader(void); + +/** + * Currently available counters. + */ +static SingleCounterQueryS cntCtxtSwitchRate; +static SingleCounterQueryS cntVirtualSize; +static SingleCounterQueryS cntProcLoad; +static SingleCounterQueryS cntProcSystemLoad; +static MultipleCounterQueryS multiCounterCPULoad; + +static CRITICAL_SECTION processHeaderLock; +static CRITICAL_SECTION initializationLock; + +/** + * Initialize the perf module at startup. + */ +int +perfiInit(void) +{ + InitializeCriticalSection(&processHeaderLock); + InitializeCriticalSection(&initializationLock); + return 0; +} + +/** + * Dynamically sets up function pointers to the PDH library. + * + * @return CONFIG_SUCCESSFUL on success, negative on failure. + */ +static int +get_functions(HMODULE h, char *ebuf, size_t elen) { + // The 'A' at the end means the ANSI (not the UNICODE) vesions of the methods + PdhAddCounter_i = (PdhAddCounterFunc)GetProcAddress(h, "PdhAddCounterA"); + PdhOpenQuery_i = (PdhOpenQueryFunc)GetProcAddress(h, "PdhOpenQueryA"); + PdhCloseQuery_i = (PdhCloseQueryFunc)GetProcAddress(h, "PdhCloseQuery"); + PdhCollectQueryData_i = (PdhCollectQueryDataFunc)GetProcAddress(h, "PdhCollectQueryData"); + PdhGetFormattedCounterValue_i = (PdhGetFormattedCounterValueFunc)GetProcAddress(h, "PdhGetFormattedCounterValue"); + PdhEnumObjectItems_i = (PdhEnumObjectItemsFunc)GetProcAddress(h, "PdhEnumObjectItemsA"); + PdhRemoveCounter_i = (PdhRemoveCounterFunc)GetProcAddress(h, "PdhRemoveCounter"); + PdhLookupPerfNameByIndex_i = (PdhLookupPerfNameByIndexFunc)GetProcAddress(h, "PdhLookupPerfNameByIndexA"); + PdhMakeCounterPath_i = (PdhMakeCounterPathFunc)GetProcAddress(h, "PdhMakeCounterPathA"); + + if (PdhAddCounter_i == NULL || PdhOpenQuery_i == NULL || + PdhCloseQuery_i == NULL || PdhCollectQueryData_i == NULL || + PdhGetFormattedCounterValue_i == NULL || PdhEnumObjectItems_i == NULL || + PdhRemoveCounter_i == NULL || PdhLookupPerfNameByIndex_i == NULL || PdhMakeCounterPath_i == NULL) + { + _snprintf(ebuf, elen, "Required method could not be found."); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Returns the counter value as a double for the specified query. + * Will collect the query data and update the counter values as necessary. + * + * @param query the query to update (if needed). + * @param c the counter to read. + * @param value where to store the formatted value. + * @param format the format to use (i.e. PDH_FMT_DOUBLE, PDH_FMT_LONG etc) + * @return CONFIG_SUCCESSFUL if no error + * -1 if PdhCollectQueryData fails + * -2 if PdhGetFormattedCounterValue fails + */ +static int +getPerformanceData(UpdateQueryP query, HCOUNTER c, PDH_FMT_COUNTERVALUE* value, DWORD format) { + clock_t now; + now = clock(); + + // Need to limit how often we update the query + // to mimise the heisenberg effect. + // (PDH behaves erratically if the counters are + // queried too often, especially counters that + // store and use values from two consecutive updates, + // like cpu load.) + if (now - query->lastUpdate > MIN_UPDATE_INTERVAL) { + if (PdhCollectQueryData_i(query->query) != ERROR_SUCCESS) { + return -1; + } + query->lastUpdate = now; + } + + if (PdhGetFormattedCounterValue_i(c, format, NULL, value) != ERROR_SUCCESS) { + return -2; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Places the resolved counter name of the counter at the specified index in the + * supplied buffer. There must be enough space in the buffer to hold the counter name. + * + * @param index the counter index as specified in the registry. + * @param buf the buffer in which to place the counter name. + * @param size the size of the counter name buffer. + * @param ebuf the error message buffer. + * @param elen the length of the error buffer. + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +find_name(DWORD index, char *buf, DWORD size) { + PDH_STATUS res; + + if ((res = PdhLookupPerfNameByIndex_i(NULL, index, buf, &size)) != ERROR_SUCCESS) { + + /* printf("Could not open counter %d: error=0x%08x", index, res); */ + /* if (res == PDH_CSTATUS_NO_MACHINE) { */ + /* printf("User probably does not have sufficient privileges to use"); */ + /* printf("performance counters. If you are running on Windows 2003"); */ + /* printf("or Windows Vista, make sure the user is in the"); */ + /* printf("Performance Logs user group."); */ + /* } */ + return -1; + } + + if (size == 0) { + /* printf("Failed to get counter name for %d: empty string", index); */ + return -1; + } + + // windows vista does not null-terminate the string (allthough the docs says it will) + buf[size - 1] = '\0'; + return CONFIG_SUCCESSFUL; +} + +/** + * Sets up the supplied SingleCounterQuery to listen for the specified counter. + * initPDH() must have been run prior to calling this function! + * + * @param counterQuery the counter query to set up. + * @param counterString the string specifying the path to the counter. + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * @returns CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initSingleCounterQuery(SingleCounterQueryP counterQuery, char *counterString) { + if (PdhOpenQuery_i(NULL, 0, &counterQuery->query.query) != ERROR_SUCCESS) { + /* printf("Could not open query for %s", counterString); */ + return -1; + } + if (PdhAddCounter_i(counterQuery->query.query, counterString, 0, &counterQuery->counter) != ERROR_SUCCESS) { + /* printf("Could not add counter %s for query", counterString); */ + if (counterQuery->counter != NULL) { + PdhRemoveCounter_i(counterQuery->counter); + } + if (counterQuery->query.query != NULL) { + PdhCloseQuery_i(counterQuery->query.query); + } + memset(counterQuery, 0, sizeof(SingleCounterQueryS)); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Sets up the supplied SingleCounterQuery to listen for the time spent + * by the HotSpot process. + * + * @param counterQuery the counter query to set up as a process counter. + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * @returns CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initProcLoadCounter(void) { + char time[COUNTER_BUF_SIZE]; + char counter[COUNTER_BUF_SIZE*2]; + + if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); + return initSingleCounterQuery(&cntProcLoad, counter); +} + +static int +initProcSystemLoadCounter(void) { + char time[COUNTER_BUF_SIZE]; + char counter[COUNTER_BUF_SIZE*2]; + + if (find_name(PDH_PRIV_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + _snprintf(counter, sizeof(counter)-1, "%s\\%s", getProcessPDHHeader(), time); + return initSingleCounterQuery(&cntProcSystemLoad, counter); +} + +/** + * Sets up the supplied MultipleCounterQuery to check on the processors. + * (Comment: Refactor and prettify as with the the SingleCounter queries + * if more MultipleCounterQueries are discovered.) + * + * initPDH() must have been run prior to calling this function. + * + * @param multiQuery a pointer to a MultipleCounterQueryS, will be filled in with + * the necessary info to check the PDH processor counters. + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +static int +initProcessorCounters(void) { + char processor[COUNTER_BUF_SIZE]; //'Processor' == #238 + char time[COUNTER_BUF_SIZE]; //'Time' == 6 + DWORD c_size, i_size; + HQUERY tmpQuery; + DWORD i, p_count; + BOOL error; + char *instances, *tmp; + PDH_STATUS pdhStat; + + c_size = i_size = 0; + tmpQuery = NULL; + error = false; + + // This __try / __except stuff is there since Windows 2000 beta (or so) sometimes triggered + // an access violation when the user had insufficient privileges to use the performance + // counters. This was previously guarded by a very ugly piece of code which disabled the + // global trap handling in JRockit. Don't know if this really is needed anymore, but otoh, + // if we keep it we don't crash on Win2k beta. /Ihse, 2005-05-30 + __try { + if (find_name(PDH_PROCESSOR_IDX, processor, sizeof(processor)-1) < 0) { + return -1; + } + } __except (EXCEPTION_EXECUTE_HANDLER) { // We'll catch all exceptions here. + /* printf("User does not have sufficient privileges to use performance counters"); */ + return -1; + } + + if (find_name(PDH_PROCESSOR_TIME_IDX, time, sizeof(time)-1) < 0) { + return -1; + } + //ok, now we have enough to enumerate all processors. + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processor, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + NULL, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + if (pdh_fail(pdhStat)) { + /* printf("could not enumerate processors (1) error=%d", pdhStat); */ + return -1; + } + + // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) + instances = calloc(i_size, 1); + if (instances == NULL) { + /* printf("could not allocate memory (1) %d bytes", i_size); */ + error = true; + goto end; + } + + c_size = 0; + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processor, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + instances, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + if (pdh_fail(pdhStat)) { + /* printf("could not enumerate processors (2) error=%d", pdhStat); */ + error = true; + goto end; + } + //count perf count instances. + for (p_count = 0, tmp = instances; *tmp != 0; tmp = &tmp[lstrlen(tmp)+1], p_count++); + + //is this correct for HT? + assert(p_count == num_cpus+1); + + //ok, have number of perf counters. + multiCounterCPULoad.counters = calloc(p_count, sizeof(HCOUNTER)); + if (multiCounterCPULoad.counters == NULL) { + /* printf("could not allocate memory (2) count=%d", p_count); */ + error = true; + goto end; + } + + multiCounterCPULoad.noOfCounters = p_count; + + if (PdhOpenQuery_i(NULL, 0, &multiCounterCPULoad.query.query) != ERROR_SUCCESS) { + /* printf("could not create query"); */ + error = true; + goto end; + } + //now, fetch the counters. + for (i = 0, tmp = instances; *tmp != '\0'; tmp = &tmp[lstrlen(tmp)+1], i++) { + char counter[2*COUNTER_BUF_SIZE]; + + _snprintf(counter, sizeof(counter)-1, "\\%s(%s)\\%s", processor, tmp, time); + + if (PdhAddCounter_i(multiCounterCPULoad.query.query, counter, 0, &multiCounterCPULoad.counters[i]) != ERROR_SUCCESS) { + /* printf("error adding processor counter %s", counter); */ + error = true; + goto end; + } + } + + free(instances); + instances = NULL; + + // Query once to initialize the counters needing at least two queries + // (like the % CPU usage) to calculate correctly. + if (PdhCollectQueryData_i(multiCounterCPULoad.query.query) != ERROR_SUCCESS) + error = true; + + end: + if (instances != NULL) { + free(instances); + } + if (tmpQuery != NULL) { + PdhCloseQuery_i(tmpQuery); + } + if (error) { + int i; + + if (multiCounterCPULoad.counters != NULL) { + for (i = 0; i < multiCounterCPULoad.noOfCounters; i++) { + if (multiCounterCPULoad.counters[i] != NULL) { + PdhRemoveCounter_i(multiCounterCPULoad.counters[i]); + } + } + free(multiCounterCPULoad.counters[i]); + } + if (multiCounterCPULoad.query.query != NULL) { + PdhCloseQuery_i(multiCounterCPULoad.query.query); + } + memset(&multiCounterCPULoad, 0, sizeof(MultipleCounterQueryS)); + return -1; + } + return CONFIG_SUCCESSFUL; +} + +/** + * Help function that initializes the PDH process header for the JRockit process. + * (You should probably use getProcessPDHHeader() instead!) + * + * initPDH() must have been run prior to calling this function. + * + * @param ebuf the error buffer. + * @param elen the length of the error buffer. + * + * @return the PDH instance description corresponding to the JVM process. + */ +static char* +initProcessPDHHeader(void) { + static char hotspotheader[2*COUNTER_BUF_SIZE]; + + char counter[2*COUNTER_BUF_SIZE]; + char processes[COUNTER_BUF_SIZE]; //'Process' == #230 + char pid[COUNTER_BUF_SIZE]; //'ID Process' == 784 + char module_name[MAX_PATH]; + PDH_STATUS pdhStat; + DWORD c_size = 0, i_size = 0; + HQUERY tmpQuery = NULL; + int i, myPid = _getpid(); + BOOL error = false; + char *instances, *tmp, *instance_name, *dot_pos; + + tmpQuery = NULL; + myPid = _getpid(); + error = false; + + if (find_name(PDH_PROCESS_IDX, processes, sizeof(processes) - 1) < 0) { + return NULL; + } + + if (find_name(PDH_ID_PROCESS_IDX, pid, sizeof(pid) - 1) < 0) { + return NULL; + } + //time is same. + + c_size = 0; + i_size = 0; + + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processes, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + NULL, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + //ok, now we have enough to enumerate all processes + if (pdh_fail(pdhStat)) { + /* printf("Could not enumerate processes (1) error=%d", pdhStat); */ + return NULL; + } + + // use calloc because windows vista does not null terminate the instance names (allthough the docs says it will) + if ((instances = calloc(i_size, 1)) == NULL) { + /* printf("Could not allocate memory %d bytes", i_size); */ + error = true; + goto end; + } + + c_size = 0; + + pdhStat = PdhEnumObjectItems_i ( + NULL, // reserved + NULL, // local machine + processes, // object to enumerate + NULL, // pass in NULL buffers + &c_size, // and 0 length to get + instances, // required size + &i_size, // of the buffers in chars + PERF_DETAIL_WIZARD, // counter detail level + 0); + + // ok, now we have enough to enumerate all processes + if (pdh_fail(pdhStat)) { + /* printf("Could not enumerate processes (2) error=%d", pdhStat); */ + error = true; + goto end; + } + + if (PdhOpenQuery_i(NULL, 0, &tmpQuery) != ERROR_SUCCESS) { + /* printf("Could not create temporary query"); */ + error = true; + goto end; + } + + // Find our module name and use it to extract the instance name used by PDH + if (GetModuleFileName(NULL, module_name, MAX_PATH) >= MAX_PATH-1) { + /* printf("Module name truncated"); */ + error = true; + goto end; + } + instance_name = strrchr(module_name, '\\'); //drop path + instance_name++; //skip slash + dot_pos = strchr(instance_name, '.'); //drop .exe + dot_pos[0] = '\0'; + + //now, fetch the counters. + for (tmp = instances; *tmp != 0 && !error; tmp = &tmp[lstrlen(tmp)+1]) { + HCOUNTER hc = NULL; + BOOL done = false; + + // Skip until we find our own process name + if (strcmp(tmp, instance_name) != 0) { + continue; + } + + // iterate over all instance indexes and try to find our own pid + for (i = 0; !done && !error; i++){ + PDH_STATUS res; + _snprintf(counter, sizeof(counter)-1, "\\%s(%s#%d)\\%s", processes, tmp, i, pid); + + if (PdhAddCounter_i(tmpQuery, counter, 0, &hc) != ERROR_SUCCESS) { + /* printf("Failed to create process id query"); */ + error = true; + goto end; + } + + res = PdhCollectQueryData_i(tmpQuery); + + if (res == PDH_INVALID_HANDLE) { + /* printf("Failed to query process id"); */ + res = -1; + done = true; + } else if (res == PDH_NO_DATA) { + done = true; + } else { + PDH_FMT_COUNTERVALUE cv; + + PdhGetFormattedCounterValue_i(hc, PDH_FMT_LONG, NULL, &cv); + /* + * This check seems to be needed for Win2k SMP boxes, since + * they for some reason don't return PDH_NO_DATA for non existing + * counters. + */ + if (cv.CStatus != PDH_CSTATUS_VALID_DATA) { + done = true; + } else if (cv.longValue == myPid) { + _snprintf(hotspotheader, sizeof(hotspotheader)-1, "\\%s(%s#%d)\0", processes, tmp, i); + PdhRemoveCounter_i(hc); + goto end; + } + } + PdhRemoveCounter_i(hc); + } + } + end: + if (instances != NULL) { + free(instances); + } + if (tmpQuery != NULL) { + PdhCloseQuery_i(tmpQuery); + } + if (error) { + return NULL; + } + return hotspotheader; +} + +/** + * Returns the PDH string prefix identifying the HotSpot process. Use this prefix when getting + * counters from the PDH process object representing HotSpot. + * + * Note: this call may take some time to complete. + * + * @param ebuf error buffer. + * @param elen error buffer length. + * + * @return the header to be used when retrieving PDH counters from the HotSpot process. + * Will return NULL if the call failed. + */ +static char * +getProcessPDHHeader(void) { + static char *processHeader = NULL; + + EnterCriticalSection(&processHeaderLock); { + if (processHeader == NULL) { + processHeader = initProcessPDHHeader(); + } + } LeaveCriticalSection(&processHeaderLock); + return processHeader; +} + +int perfInit(void); + +double +perfGetCPULoad(int which) +{ + PDH_FMT_COUNTERVALUE cv; + HCOUNTER c; + + if (perfInit() < 0) { + // warn? + return -1.0; + } + + if (multiCounterCPULoad.query.query == NULL) { + // warn? + return -1.0; + } + + if (which == -1) { + c = multiCounterCPULoad.counters[multiCounterCPULoad.noOfCounters - 1]; + } else { + if (which < multiCounterCPULoad.noOfCounters) { + c = multiCounterCPULoad.counters[which]; + } else { + return -1.0; + } + } + if (getPerformanceData(&multiCounterCPULoad.query, c, &cv, PDH_FMT_DOUBLE ) == CONFIG_SUCCESSFUL) { + return cv.doubleValue / 100; + } + return -1.0; +} + +double +perfGetProcessLoad(void) +{ + PDH_FMT_COUNTERVALUE cv; + + if (perfInit() < 0) { + // warn? + return -1.0; + } + + if (cntProcLoad.query.query == NULL) { + // warn? + return -1.0; + } + + if (getPerformanceData(&cntProcLoad.query, cntProcLoad.counter, &cv, PDH_FMT_DOUBLE | PDH_FMT_NOCAP100) == CONFIG_SUCCESSFUL) { + double d = cv.doubleValue / cpuFactor; + d = min(1, d); + d = max(0, d); + return d; + } + return -1.0; +} + +/** + * Helper to initialize the PDH library. Loads the library and sets up the functions. + * Note that once loaded, we will never unload the PDH library. + * + * @return CONFIG_SUCCESSFUL if successful, negative on failure. + */ +int +perfInit(void) { + static HMODULE h; + static BOOL running, inited; + + int error; + + if (running) { + return CONFIG_SUCCESSFUL; + } + + error = CONFIG_SUCCESSFUL; + + // this is double checked locking again, but we try to bypass the worst by + // implicit membar at end of lock. + EnterCriticalSection(&initializationLock); { + if (!inited) { + char buf[64] = ""; + SYSTEM_INFO si; + + // CMH. But windows will not care about our affinity when giving + // us measurements. Need the real, raw num cpus. + + GetSystemInfo(&si); + num_cpus = si.dwNumberOfProcessors; + // Initialize the denominator for the jvm load calculations + cpuFactor = num_cpus * 100; + + /** + * Do this dynamically, so we don't fail to start on systems without pdh. + */ + if ((h = LoadLibrary("pdh.dll")) == NULL) { + /* printf("Could not load pdh.dll (%d)", GetLastError()); */ + error = -2; + } else if (get_functions(h, buf, sizeof(buf)) < 0) { + FreeLibrary(h); + h = NULL; + error = -2; + /* printf("Failed to init pdh functions: %s.\n", buf); */ + } else { + if (initProcessorCounters() != 0) { + /* printf("Failed to init system load counters.\n"); */ + } else if (initProcLoadCounter() != 0) { + /* printf("Failed to init process load counter.\n"); */ + } else if (initProcSystemLoadCounter() != 0) { + /* printf("Failed to init process system load counter.\n"); */ + } else { + inited = true; + } + } + } + } LeaveCriticalSection(&initializationLock); + + if (inited && error == CONFIG_SUCCESSFUL) { + running = true; + } + + return error; +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_OperatingSystem_getSystemCpuLoad +(JNIEnv *env, jobject dummy) +{ + return perfGetCPULoad(-1); +} + +JNIEXPORT jdouble JNICALL +Java_com_sun_management_OperatingSystem_getProcessCpuLoad +(JNIEnv *env, jobject dummy) +{ + return perfGetProcessLoad(); +} diff --git a/jdk/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java b/jdk/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java new file mode 100644 index 00000000000..c2e2637e593 --- /dev/null +++ b/jdk/test/com/sun/management/OperatingSystemMXBean/GetProcessCpuLoad.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7028071 + * @summary Basic unit test of OperatingSystemMXBean.getProcessCpuLoad() + * + * @run main GetProcessCpuLoad + */ + +import java.lang.management.*; +import com.sun.management.OperatingSystemMXBean; + +public class GetProcessCpuLoad { + public static void main(String[] argv) throws Exception { + OperatingSystemMXBean mbean = (com.sun.management.OperatingSystemMXBean) + ManagementFactory.getOperatingSystemMXBean(); + double load; + for(int i=0; i<10; i++) { + load = mbean.getProcessCpuLoad(); + if((load<0.0 || load>1.0) && load != -1.0) { + throw new RuntimeException("getProcessCpuLoad() returns " + load + + " which is not in the [0.0,1.0] interval"); + } + try { + Thread.sleep(200); + } catch(InterruptedException e) { + e.printStackTrace(); + } + } + } +} diff --git a/jdk/test/com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java b/jdk/test/com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java new file mode 100644 index 00000000000..b60c1d129bc --- /dev/null +++ b/jdk/test/com/sun/management/OperatingSystemMXBean/GetSystemCpuLoad.java @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/* + * @test + * @bug 7028071 + * @summary Basic unit test of OperatingSystemMXBean.getProcessCpuLoad() + * + * @run main GetSystemCpuLoad + */ + +import java.lang.management.*; +import com.sun.management.OperatingSystemMXBean; + +public class GetSystemCpuLoad { + public static void main(String[] argv) throws Exception { + OperatingSystemMXBean mbean = (com.sun.management.OperatingSystemMXBean) + ManagementFactory.getOperatingSystemMXBean(); + double load; + for(int i=0; i<10; i++) { + load = mbean.getSystemCpuLoad(); + if((load<0.0 || load>1.0) && load != -1.0) { + throw new RuntimeException("getSystemCpuLoad() returns " + load + + " which is not in the [0.0,1.0] interval"); + } + try { + Thread.sleep(200); + } catch(InterruptedException e) { + e.printStackTrace(); + } + } + } +} From 207f711ac277cd02493c604de24520fdc009416f Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Fri, 6 May 2011 10:07:42 -0700 Subject: [PATCH 131/147] 7021691: Most log level words are not translated in java logging Reviewed-by: yhuang --- .../logging/resources/logging_de.properties | 18 +++++++++--------- .../logging/resources/logging_es.properties | 18 +++++++++--------- .../logging/resources/logging_fr.properties | 18 +++++++++--------- .../logging/resources/logging_it.properties | 18 +++++++++--------- .../logging/resources/logging_ja.properties | 12 ++++++------ .../logging/resources/logging_ko.properties | 18 +++++++++--------- .../logging/resources/logging_pt_BR.properties | 18 +++++++++--------- .../logging/resources/logging_sv.properties | 18 +++++++++--------- .../logging/resources/logging_zh_CN.properties | 18 +++++++++--------- .../logging/resources/logging_zh_TW.properties | 14 +++++++------- 10 files changed, 85 insertions(+), 85 deletions(-) diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_de.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_de.properties index da17c47f8fd..1aa8ef4e22c 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_de.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_de.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Alle # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Schwerwiegend # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Warnung # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Information # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Konfiguration # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Fein # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Feiner # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=Am feinsten # The following ALL CAPS words should be translated. -OFF=OFF +OFF=Deaktiviert diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_es.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_es.properties index da17c47f8fd..90de2e88238 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_es.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_es.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Todo # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Grave # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Advertencia # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Informaci\u00F3n # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Configurar # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Detallado # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Muy Detallado # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=M\u00E1s Detallado # The following ALL CAPS words should be translated. -OFF=OFF +OFF=Desactivado diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_fr.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_fr.properties index da17c47f8fd..af34d6fa414 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_fr.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_fr.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Tout # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Grave # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Avertissement # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Infos # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Config # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Pr\u00E9cis # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Plus pr\u00E9cis # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=Le plus pr\u00E9cis # The following ALL CAPS words should be translated. -OFF=OFF +OFF=D\u00E9sactiv\u00E9 diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_it.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_it.properties index da17c47f8fd..73a3b5c59cf 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_it.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_it.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Tutto # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Grave # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Avvertenza # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Informazioni # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Configurazione # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Buono # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Migliore # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=Ottimale # The following ALL CAPS words should be translated. -OFF=OFF +OFF=Non attivo diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_ja.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_ja.properties index 980c33549c5..60358d1c86e 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_ja.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_ja.properties @@ -29,18 +29,18 @@ # The following ALL CAPS words should be translated. ALL=\u3059\u3079\u3066 # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=\u91CD\u5927 # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=\u8B66\u544A # The following ALL CAPS words should be translated. INFO=\u60C5\u5831 # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= \u69CB\u6210 # The following ALL CAPS words should be translated. -FINE=\u8A73\u7D30\u30EC\u30D9\u30EB(\u4F4E) +FINE=\u666E\u901A # The following ALL CAPS words should be translated. -FINER=FINER +FINER=\u8A73\u7D30 # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=\u6700\u3082\u8A73\u7D30 # The following ALL CAPS words should be translated. OFF=\u30AA\u30D5 diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_ko.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_ko.properties index da17c47f8fd..6d5dc551e67 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_ko.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_ko.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=\uBAA8\uB450 # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=\uC2EC\uAC01 # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=\uACBD\uACE0 # The following ALL CAPS words should be translated. -INFO=INFO +INFO=\uC815\uBCF4 # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= \uAD6C\uC131 # The following ALL CAPS words should be translated. -FINE=FINE +FINE=\uBBF8\uC138 # The following ALL CAPS words should be translated. -FINER=FINER +FINER=\uBCF4\uB2E4 \uBBF8\uC138 # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=\uAC00\uC7A5 \uBBF8\uC138 # The following ALL CAPS words should be translated. -OFF=OFF +OFF=\uD574\uC81C diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_pt_BR.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_pt_BR.properties index da17c47f8fd..29229f2c7c1 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_pt_BR.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_pt_BR.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Tudo # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Grave # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Advert\u00EAncia # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Informa\u00E7\u00F5es # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Configura\u00E7\u00E3o # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Detalhado # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Mais Detalhado # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=O Mais Detalhado # The following ALL CAPS words should be translated. -OFF=OFF +OFF=Desativado diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_sv.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_sv.properties index da17c47f8fd..b7607863ffb 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_sv.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_sv.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=Alla # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=Allvarlig # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=Varning # The following ALL CAPS words should be translated. -INFO=INFO +INFO=Info # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= Konfig # The following ALL CAPS words should be translated. -FINE=FINE +FINE=Fin # The following ALL CAPS words should be translated. -FINER=FINER +FINER=Finare # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=Finaste # The following ALL CAPS words should be translated. -OFF=OFF +OFF=Av diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_zh_CN.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_zh_CN.properties index da17c47f8fd..67dd2b8b50a 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_zh_CN.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_zh_CN.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=ALL +ALL=\u5168\u90E8 # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=\u4E25\u91CD # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=\u8B66\u544A # The following ALL CAPS words should be translated. -INFO=INFO +INFO=\u4FE1\u606F # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= \u914D\u7F6E # The following ALL CAPS words should be translated. -FINE=FINE +FINE=\u8BE6\u7EC6 # The following ALL CAPS words should be translated. -FINER=FINER +FINER=\u8F83\u8BE6\u7EC6 # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=\u975E\u5E38\u8BE6\u7EC6 # The following ALL CAPS words should be translated. -OFF=OFF +OFF=\u7981\u7528 diff --git a/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties b/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties index 92ae5e1a5db..4875bc825c1 100644 --- a/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties +++ b/jdk/src/share/classes/sun/util/logging/resources/logging_zh_TW.properties @@ -27,20 +27,20 @@ # these are the same as the non-localized level name. # The following ALL CAPS words should be translated. -ALL=\u6240\u6709 +ALL=\u5168\u90E8 # The following ALL CAPS words should be translated. -SEVERE=SEVERE +SEVERE=\u56B4\u91CD # The following ALL CAPS words should be translated. -WARNING=WARNING +WARNING=\u8B66\u544A # The following ALL CAPS words should be translated. INFO=\u8CC7\u8A0A # The following ALL CAPS words should be translated. -CONFIG= CONFIG +CONFIG= \u7D44\u614B # The following ALL CAPS words should be translated. -FINE=\u7D30\u7DFB +FINE=\u8A73\u7D30 # The following ALL CAPS words should be translated. -FINER=FINER +FINER=\u8F03\u8A73\u7D30 # The following ALL CAPS words should be translated. -FINEST=FINEST +FINEST=\u6700\u8A73\u7D30 # The following ALL CAPS words should be translated. OFF=\u95DC\u9589 From b9851bd6eb0c8bfc39fc8a3c1b4c31a1c5ed0073 Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Fri, 6 May 2011 14:10:20 -0700 Subject: [PATCH 132/147] Added tag hs21-b11 for changeset de80080e77a6 --- hotspot/.hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/hotspot/.hgtags b/hotspot/.hgtags index d73bad76c1c..5e01fb71812 100644 --- a/hotspot/.hgtags +++ b/hotspot/.hgtags @@ -169,3 +169,4 @@ bd586e392d93b7ed7a1636dcc8da2b6a4203a102 hs21-b06 d283b82966712b353fa307845a1316da42a355f4 jdk7-b140 d283b82966712b353fa307845a1316da42a355f4 hs21-b10 5d07913abd59261c77f24cc04a759cb75d804099 jdk7-b141 +3aea9e9feb073f5500e031be6186666bcae89aa2 hs21-b11 From 63c85322b11a5097e0eca883b114f51a72af78fc Mon Sep 17 00:00:00 2001 From: Erik Trimble Date: Fri, 6 May 2011 14:41:06 -0700 Subject: [PATCH 133/147] 7040779: Bump the HS21 build number to 12 Update the HS21 build number to 12 Reviewed-by: jcoomes --- hotspot/make/hotspot_version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hotspot/make/hotspot_version b/hotspot/make/hotspot_version index 50085e1081c..a8dda3ec3ba 100644 --- a/hotspot/make/hotspot_version +++ b/hotspot/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2011 HS_MAJOR_VER=21 HS_MINOR_VER=0 -HS_BUILD_NUMBER=11 +HS_BUILD_NUMBER=12 JDK_MAJOR_VER=1 JDK_MINOR_VER=7 From 523d29a670b5953ee4aa601398d78b0217947219 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 12:31:42 -0700 Subject: [PATCH 134/147] 7043580: integrate man page translation drop 2 into jdk7 Reviewed-by: yhuang --- jdk/src/linux/doc/man/ja/appletviewer.1 | 4 +- jdk/src/linux/doc/man/ja/apt.1 | 18 +- jdk/src/linux/doc/man/ja/extcheck.1 | 4 +- jdk/src/linux/doc/man/ja/idlj.1 | 4 +- jdk/src/linux/doc/man/ja/jar.1 | 4 +- jdk/src/linux/doc/man/ja/jarsigner.1 | 28 +- jdk/src/linux/doc/man/ja/java.1 | 2 +- jdk/src/linux/doc/man/ja/javac.1 | 10 +- jdk/src/linux/doc/man/ja/javadoc.1 | 116 ++++---- jdk/src/linux/doc/man/ja/javah.1 | 4 +- jdk/src/linux/doc/man/ja/javap.1 | 260 ++++++++---------- jdk/src/linux/doc/man/ja/javaws.1 | 8 +- jdk/src/linux/doc/man/ja/jconsole.1 | 4 +- jdk/src/linux/doc/man/ja/jdb.1 | 4 +- jdk/src/linux/doc/man/ja/jhat.1 | 4 +- jdk/src/linux/doc/man/ja/jinfo.1 | 4 +- jdk/src/linux/doc/man/ja/jmap.1 | 4 +- jdk/src/linux/doc/man/ja/jps.1 | 4 +- jdk/src/linux/doc/man/ja/jrunscript.1 | 2 +- jdk/src/linux/doc/man/ja/jsadebugd.1 | 4 +- jdk/src/linux/doc/man/ja/jstack.1 | 4 +- jdk/src/linux/doc/man/ja/jstat.1 | 4 +- jdk/src/linux/doc/man/ja/jstatd.1 | 4 +- jdk/src/linux/doc/man/ja/jvisualvm.1 | 6 +- jdk/src/linux/doc/man/ja/keytool.1 | 26 +- jdk/src/linux/doc/man/ja/native2ascii.1 | 4 +- jdk/src/linux/doc/man/ja/orbd.1 | 4 +- jdk/src/linux/doc/man/ja/pack200.1 | 4 +- jdk/src/linux/doc/man/ja/policytool.1 | 4 +- jdk/src/linux/doc/man/ja/rmic.1 | 4 +- jdk/src/linux/doc/man/ja/rmid.1 | 8 +- jdk/src/linux/doc/man/ja/rmiregistry.1 | 4 +- jdk/src/linux/doc/man/ja/schemagen.1 | 4 +- jdk/src/linux/doc/man/ja/serialver.1 | 4 +- jdk/src/linux/doc/man/ja/servertool.1 | 4 +- jdk/src/linux/doc/man/ja/tnameserv.1 | 4 +- jdk/src/linux/doc/man/ja/unpack200.1 | 4 +- jdk/src/linux/doc/man/ja/wsgen.1 | 4 +- jdk/src/linux/doc/man/ja/wsimport.1 | 10 +- jdk/src/linux/doc/man/ja/xjc.1 | 4 +- .../doc/sun/man/man1/ja/appletviewer.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/apt.1 | 18 +- .../solaris/doc/sun/man/man1/ja/extcheck.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jar.1 | 4 +- .../solaris/doc/sun/man/man1/ja/jarsigner.1 | 28 +- jdk/src/solaris/doc/sun/man/man1/ja/java.1 | 2 +- jdk/src/solaris/doc/sun/man/man1/ja/javac.1 | 10 +- jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 | 116 ++++---- jdk/src/solaris/doc/sun/man/man1/ja/javah.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/javap.1 | 260 ++++++++---------- jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 | 8 +- .../solaris/doc/sun/man/man1/ja/jconsole.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jps.1 | 4 +- .../solaris/doc/sun/man/man1/ja/jrunscript.1 | 2 +- .../solaris/doc/sun/man/man1/ja/jsadebugd.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 | 4 +- .../solaris/doc/sun/man/man1/ja/jvisualvm.1 | 6 +- jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 | 26 +- .../doc/sun/man/man1/ja/native2ascii.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 | 4 +- .../solaris/doc/sun/man/man1/ja/policytool.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 | 8 +- .../solaris/doc/sun/man/man1/ja/rmiregistry.1 | 4 +- .../solaris/doc/sun/man/man1/ja/schemagen.1 | 4 +- .../solaris/doc/sun/man/man1/ja/serialver.1 | 4 +- .../solaris/doc/sun/man/man1/ja/servertool.1 | 4 +- .../solaris/doc/sun/man/man1/ja/tnameserv.1 | 4 +- .../solaris/doc/sun/man/man1/ja/unpack200.1 | 4 +- jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 | 4 +- .../solaris/doc/sun/man/man1/ja/wsimport.1 | 10 +- jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 | 4 +- 80 files changed, 566 insertions(+), 646 deletions(-) diff --git a/jdk/src/linux/doc/man/ja/appletviewer.1 b/jdk/src/linux/doc/man/ja/appletviewer.1 index fcbcc19a43b..5aa0ad3d1fe 100644 --- a/jdk/src/linux/doc/man/ja/appletviewer.1 +++ b/jdk/src/linux/doc/man/ja/appletviewer.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "14 Apr 2011" +.TH appletviewer 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/apt.1 b/jdk/src/linux/doc/man/ja/apt.1 index 6255300f0aa..bd788983f81 100644 --- a/jdk/src/linux/doc/man/ja/apt.1 +++ b/jdk/src/linux/doc/man/ja/apt.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "14 Apr 2011" +.TH apt 1 "07 May 2011" .LP .SH "NAME" @@ -50,7 +50,10 @@ sourcefiles .SH "" .LP .LP -ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ +\f3\fP: \f2apt\fP ġȡѥå \f2com.sun.mirror\fP ˴ޤޤƤ뤽˴Ϣ API ϡJDK 7 ʹ侩ˤʤäƤꡢJDK μΥ᥸㡼꡼ǺͽǤ\f2javac(1)\fP ġѲǽʥץȡѥå \f2javax.annotation.processing\fP \f2javax.lang.model\fP ˴ޤޤƤ API ѤơƤ +.LP +.LP +ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ .LP .LP ġεǽ˴ؤܺ٤ȡ\f2apt\fP ѤȯˡˤĤƤϡ @@ -58,13 +61,6 @@ sourcefiles \f4apt \fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html򻲾ȤƤ -.LP -.RS 3 -.TP 3 -: -\f2apt\fP εǽϡ\f2javac(1)\fP ġΰȤʤäե饹ȥ饯㡼Ȥ߹ޤ졢٤Ƥ Java ѥǻѤǤ褦ɸಽޤοե饹ȥ饯㡼ϡǥ뤪 Java ץåȥեΰȤʤä API ˰¸ޤץåγȯϡ API \f2javac\fP ġ˴ŤƹԤ褦ᤷޤ -.RE - .LP .SH "ץ" .LP @@ -143,7 +139,7 @@ javac .SH "" .LP .LP -\f2apt\fP εǽϡ\f2javac\fP ˤ󶡤ɸե饹ȥ饯㡼Ȥ߹ޤޤ JDK ꡼Ǥϡ\f2apt\fP ӴϢ API ΥݡȤߤǽޤ +\f2apt\fP ġȡѥå \f2com.sun.mirror\fP ˴ޤޤƤ뤽˴Ϣ API ϡJDK 7 ʹ侩ˤʤäƤꡢJDK μΥ᥸㡼꡼ǺͽǤ\f2javac(1)\fP ġѲǽʥץȡѥå \f2javax.annotation.processing\fP \f2javax.lang.model\fP ˴ޤޤƤ API ѤơƤ .LP .SH "Ϣ" .LP diff --git a/jdk/src/linux/doc/man/ja/extcheck.1 b/jdk/src/linux/doc/man/ja/extcheck.1 index 9cc66788eb7..d0a671568f8 100644 --- a/jdk/src/linux/doc/man/ja/extcheck.1 +++ b/jdk/src/linux/doc/man/ja/extcheck.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "14 Apr 2011" +.TH extcheck 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/idlj.1 b/jdk/src/linux/doc/man/ja/idlj.1 index 0a05be7383a..96ce9478bdc 100644 --- a/jdk/src/linux/doc/man/ja/idlj.1 +++ b/jdk/src/linux/doc/man/ja/idlj.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "14 Apr 2011" +.TH idlj 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jar.1 b/jdk/src/linux/doc/man/ja/jar.1 index acdc31b6a07..0ce57f3ee56 100644 --- a/jdk/src/linux/doc/man/ja/jar.1 +++ b/jdk/src/linux/doc/man/ja/jar.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "14 Apr 2011" +.TH jar 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jarsigner.1 b/jdk/src/linux/doc/man/ja/jarsigner.1 index c349b53e8d6..739d051356e 100644 --- a/jdk/src/linux/doc/man/ja/jarsigner.1 +++ b/jdk/src/linux/doc/man/ja/jarsigner.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "14 Apr 2011" +.TH jarsigner 1 "07 May 2011" .LP .SH "̾" @@ -110,16 +110,16 @@ o .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<ȥΥѥ>\fP\f3 .fl - \-keypass dukekeypasswd MyJARFile.jar duke + \-keypass \fP\f4<Υѥ>\fP\f3 MyJARFile.jar duke .fl \fP .fi .LP .LP -ȥϥѥɤݸƤΤǡȥΥѥ (Ǥ mypass) ꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥ (Ǥ dukekeypasswd) ꤹɬפޤ ޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ +ȥϥѥɤݸƤΤǡȥΥѥɤꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥɤꤹɬפޤޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ .LP .SS ȥξ @@ -500,7 +500,7 @@ o .LP \f2file\fP ˻ѤǤʸϡa\-zA\-Z0\-9_\-פǤĤޤꡢʸӥϥեѤǤޤ: .SF .DSA Υե̾ǤϡʸϤ٤ʸѴޤ .LP -\-sigfile \f2ץ\fP ꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ +\-sigfile \f2\-sigfile\fP ץꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ .TP 3 \-sigalg algorithm JAR եν̾˻Ѥ̾르ꥺ̾ꤷޤ @@ -609,7 +609,7 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ \fP .fi .TP 3 -\-Jjavaoption +Ǥޤjavaoption ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤ\f3jarsigner\fP ϡºݤˤ Java 󥿥ץ꥿Ф֥åѡפǤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤѲǽʥ󥿥ץ꥿ץΰɽˤϡ \f2java \-h\fP ޤ \f2java \-X\fP ȥޥɹԤϤޤ .LP .TP 3 @@ -676,14 +676,14 @@ JAR JAR եν̾ .LP .LP -bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤȥϡmystore Ȥ̾ǡC ɥ饤֤ working ǥ쥯ȥˤꡢȥΥѥɤ mypass\f2jane\fP Υѥɤ j638klm Ȥޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ +bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ .LP .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<ȥΥѥ>\fP\f3 .fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane + \-keypass \fP\f4<Υѥ>\fP\f3 \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -800,7 +800,7 @@ bundle.jar Ȥä .LP .LP -ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤ򼨤ޤ +ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤȤС .LP .nf \f3 @@ -862,7 +862,7 @@ bundle.jar JAR ե뤬JDK 1.1 \f3javakey\fP ġȤäƽ̾Ƥ硢̾Ԥϥǥƥƥǡ١̾Ǥξ硢ڤνϤˤ i Ȥ椬ޤޤޤJAR ե뤬ǥƥƥǡ١̾ȥȥ̾ξˤäƽ̾Ƥϡk i ξɽޤ .LP .LP -\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤȤС +\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤ򼨤ޤ .LP .nf \f3 @@ -978,7 +978,7 @@ JAR .fl JAR ˤϡΥȥ̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ .fl - + .fl \fP .fi @@ -993,7 +993,7 @@ JAR .nf \f3 .fl -failure 1 +failure 1 .fl \fP .fi @@ -1649,7 +1649,7 @@ o .na \f4jarsigner\fP\f2 ġλˤĤƤϡ\fP @ .fi -http://download.oracle.com/javase/tutorial/index.html +http://download.oracle.com/javase/tutorial/security/index.html .na \f2Java 塼ȥꥢ\fP\f4\fP @ .fi diff --git a/jdk/src/linux/doc/man/ja/java.1 b/jdk/src/linux/doc/man/ja/java.1 index 5385d6ef039..062d3209af8 100644 --- a/jdk/src/linux/doc/man/ja/java.1 +++ b/jdk/src/linux/doc/man/ja/java.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "14 Apr 2011" +.TH java 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/javac.1 b/jdk/src/linux/doc/man/ja/javac.1 index 6987ff94b68..cb107bfb9a1 100644 --- a/jdk/src/linux/doc/man/ja/javac.1 +++ b/jdk/src/linux/doc/man/ja/javac.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "14 Apr 2011" +.TH javac 1 "07 May 2011" .LP .SH "̾" @@ -136,10 +136,6 @@ o \f3\-sourcepath\fP ץ󤬻ꤵƤʤϡե桼饹ѥ鸡ޤ .LP \f3\-processorpath\fP ץ󤬻ꤵƤʤϡץå桼饹ѥ鸡ޤ -.LP -ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ -.LP -ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ\f3:\fP ޥɹԴĶιˤäƤϡ \f2javac \-cp "*.jar" MyClass.java\fP ʤɤΤ褦ˡ磻ɥʸǰϤळȤɬפʾ⤢ޤ .TP 3 \-Djava.ext.dirs=directories 󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ @@ -315,7 +311,7 @@ o 侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ .TP 3 \-Xlint:none -Java ͤǤϻꤵƤʤ٤Ƥηٹ̵ˤޤ +٤Ƥηٹ̵ˤޤ .TP 3 \-Xlint:name ٹ \f2name\fP ͭˤޤΥץͭˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ @@ -617,7 +613,7 @@ warning: [processing] No processor claimed any of these annotations: Anno 褹ˤϡ饹 \f2AnnosWithoutProcessors\fP ӻѤ̾ \f2Anno\fP \f2NotAnno\fP ѹޤ .TP 3 rawtypes -raw Ф̤ˤĤƷٹ𤷤ޤäˤΥץϡʤѥ᡼줿Ѥ桼ФƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ +raw Ф̤ˤĤƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ .nf \f3 .fl diff --git a/jdk/src/linux/doc/man/ja/javadoc.1 b/jdk/src/linux/doc/man/ja/javadoc.1 index 57c6cd75a35..e6374a63c67 100644 --- a/jdk/src/linux/doc/man/ja/javadoc.1 +++ b/jdk/src/linux/doc/man/ja/javadoc.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "14 Apr 2011" +.TH javadoc 1 "07 May 2011" .SH "̾" javadoc \- Java API ɥȥͥ졼 .LP @@ -38,11 +38,7 @@ packagenames ڡǶڤ줿ϢΥѥå̾ǤȤС \f2java.lang\ java.lang.reflect\ java.awt Τ褦˻ꤷޤ\fPɥȲѥå̤˻ꤹɬפޤ磻ɥɤϻԲĤǤƵŪΤˤϡ\-subpackages ѤޤJavadoc ġϡ\f2\-sourcepath\fP ѤƤΥѥå̾򸡺ޤ1 İʾΥѥåΥɥȲפ򻲾ȤƤ .TP 3 sourcefilenames -ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ ( -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ +ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ (Java ͤ򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ .TP 3 \-subpackages pkg1:pkg2:... ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤѥå̾ޤϥե̾ꤹɬפϤޤ @@ -62,11 +58,7 @@ Javadoc .RS 3 .TP 2 o -̾\f2.java\fPפȼºݤͭʥ饹̾ˤʤäƤ (ͭʸˤĤƤ -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾) +̾\f2.java\fPפȡºݤͭʥ饹̾ˤʤäƤ (Java ͤͭʸ򻲾) .TP 2 o ĥ꡼Υ롼ȤŪʥǥ쥯ȥѥڤʸɥåȤѴȡºݤͭʥѥå̾ˤʤäƤ @@ -111,11 +103,7 @@ o .LP ºݤˤϡJavadoc ġϡ᥽åΤʤʥ֥եǤ褦 \f2.java\fP եǤưޤäơAPI κˤϡ򵭽Ҥ߷פᤤʳǡɥơ󥳥Ȥ򵭽Ҥ javadoc ġ¹ԤǤޤ .LP -ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤ -.na -\f2ǥեȥ󥹥ȥ饯\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java ͤΥ 8.6.7) \f2ɥȲ\fP ޤ +ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤǥեȥ󥹥ȥ饯 (Java ͤ򻲾) \f2ɥȲ\fP ޤ .LP ̾Javadoc ġǤϡեΥɤԴޤϥ顼ޤǤǤɥȤǤޤΤᡢǥХåȥ֥륷塼ƥ󥰤λ˥ɥȤǤޤȤСJava ͤˤȡݥ᥽åɤޤ९饹ϡ켫ݤȤʤФʤޤ󡣤Υ顼򸡽Фȡjavac ѥߤޤJavadoc ġϷٹФ˽³ԤޤJavadoc ġϥɥơ󥳥ȤδŪʥåԤޤɥơ󥳥ȤܤåɬפϡDocCheck ɥååȤѤƤ .LP @@ -161,7 +149,7 @@ o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε .TP 2 o .na @@ -179,13 +167,13 @@ o .na \f2DocCheck ɥåå\fP @ .fi -http://java.sun.com/javadoc/doccheck \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ .TP 2 o .na \f2MIF ɥåå\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ +http://java.sun.com/j2se/javadoc/mifdoclet/ \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ .RE .SS Ѹ @@ -218,7 +206,7 @@ javadoc .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ +http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ .LP .TP 3 ȥ饹 (external referenced classes) @@ -310,7 +298,7 @@ and the applet context. An applet is an embeddable window (see the {@link java.a .na \f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#packagecomments򻲾ȤƤ .LP \f3ѥåȥեν\fP \- Javadoc ġϡ¹Ի˥ѥåȥեưŪ˸Υե򸫤ĤȼνԤޤ .RS 3 @@ -350,7 +338,7 @@ Javadoc .RS 3 .TP 2 o -\f2\fP \f2\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ +\f2\fP \f2\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ .TP 2 o ץС٤ƽ @@ -408,11 +396,7 @@ o .LP ƥȥե doc Ȥޤޤ硢Τ褦˥磻ɥɤޤƥȥե̾ϤƥƥȥեΥɥȤ褦ˡJavadoc ġ̸Ĥ˼¹ԤǤ褦ǤޤȤС \f2com/package1/test\-files/*.java ʤɤǤ\fP .LP -\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ ( -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625) +\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ (Java ͤΡIdentifiersפ˴ؤ򻲾) .SH "ե" .LP ǥեȤǤϡjavadoc ġϡHTML ΥɥȤɸɥååȤȤޤΥɥååȤϡʲμΥեޤ줾 HTML ڡϡġΥեޤjavadoc ե̾ˤϡ饹䥤󥿥ե̾ˤʤΤȡǤʤ ( \f2package\-summary.html ʤ\fP) 2 बޤԤΥ롼פΥե̾ˤϡԤΥ롼פȥե̾礷ʤ褦ˡϥե󤬴ޤޤƤޤ @@ -756,7 +740,7 @@ o ưϥС 1.3 ưȤоŪǤޤǤΥСǤϡޤϥ¸ߤСȤϰڷѾޤǤ .TP 2 o -\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ +\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP ޤ \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ .RE .LP ɥơ󥳥Ȥºݤ˥ԡѤˤϡѾ᥽åɤΥե뤬 \-sourcepath ǻꤷѥ֤Ƥ뤳ȤɬפˤʤޤޥɹԤǡ饹ѥåϤɬפϤޤ󡣤ϡ饹ɥȲ륯饹ǤʤФʤʤä 1.3.x Υ꡼Ȱۤʤޤ @@ -954,7 +938,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.html .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 867 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 851 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1079,7 +1063,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.html .na \f2@author Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@author򻲾ȤƤ .LP .RS 3 .TP 3 @@ -1094,11 +1078,11 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author .na \f2@deprecated Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@deprecated򻲾ȤƤ .RS 3 .TP 2 o -Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤ǤޤȤС +Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤Ǥޤ򼨤ޤ .nf \f3 .fl @@ -1292,7 +1276,7 @@ getComponentAt .na \f2{@link} Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#{@link}򻲾ȤƤ .LP .TP 3 {@linkplain\ package.class#member\ label} @@ -1386,7 +1370,7 @@ the overridden method .na \f2@param Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@param򻲾ȤƤ .LP .TP 3 @return\ description @@ -1396,7 +1380,7 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param .na \f2@return Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@return򻲾ȤƤ .LP .TP 3 @see\ reference @@ -1644,7 +1628,7 @@ equals .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1358 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1342 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1751,7 +1735,7 @@ o .LP \f3@see θ\fP \- Javadoc ġϡե (.java)ѥåե (package.html ޤ package\-info.java) ޤϳץե (overview.html) ˴ޤޤ \f2@see\fP ޤԤ 2 ĤΥեǤϡ̾ \f2@see\fP ˻ꤷʤФʤޤ󡣥եǤϡ̾ޤʬ̾Ǥޤ .LP -Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿ǤθϡJava 2 Ǥ 6 ϡNamesפƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ +Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿Ǥθϡ\f2Java \fPƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ .RS 3 .TP 3 1. @@ -1990,7 +1974,7 @@ Javadoc .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1434 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1418 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2131,7 +2115,7 @@ Javadoc .LP \f3@see \fP .br -¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP Τ褦̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ +¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP ʤɤ̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ .nf \f3 .fl @@ -2163,7 +2147,7 @@ Javadoc .na \f2@see Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@see򻲾ȤƤ .RE .RE .LP @@ -2198,7 +2182,7 @@ http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html .na \f2ľ󲽤 FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ +http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ .na \f2Sun λ͡\fP @ .fi @@ -2241,7 +2225,7 @@ Java .na \f2@throws Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@exception򻲾ȤƤ .LP .TP 3 {@value\ package.class#field} @@ -2293,13 +2277,13 @@ http://java.sun.com/javase/6/docs/api/constant\-values.html @version\ version\-text \-version ץ󤬻ѤȡɥȤ [С] Фɲäꤵ줿 \f2version\-text\fP 񤭹ߤޤΥϡΥɤޤޤ륽եȥθߤΥСֹݻ褦˰տޤƤޤФ@since ϡΥɤƳ줿Сֹݻޤ \f2version\-text\fP ˤϡ̤¤Ϥޤ󡣥С󥿥ѤǤĴ٤ˤϡ֥ѤǤפ򻲾ȤƤ .LP -1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶ̾δ֤ޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ +1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .LP ܺ٤ˤĤƤϡ .na \f2@version Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@version򻲾ȤƤ .RE .SS ѤǤ @@ -2789,7 +2773,7 @@ javadoc .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2009 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1993 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2982,7 +2966,7 @@ javac .LP .TP 3 \-classpath\ classpathlist -javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ Javadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ +javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ .na \f2饹ѥ\fP @ .fi @@ -3243,13 +3227,13 @@ o .LP \f3ɥȤؤХ󥯤λ\fP \- \f2java.lang\fP \f2java.io\fP ¾ Java ץåȥեѥå ( .na -\f2http://java.sun.com/javase/6/docs/api/\fP @ +\f2http://download.oracle.com/javase/7/docs/api/\fP @ .fi -http://java.sun.com/javase/6/docs/api ) ˥󥯤ͤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ +http://download.oracle.com/javase/7/docs/api/ ) ˥󥯤礬ޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://download.oracle.com/javase/7/docs/api/ com.mypackage\fP .fl .fi \f3ɥȤؤХ󥯤λ\fP \- 2 ĤΥѥåꡢΥɥȤ Javadoc ġʣ¹Ԥ줿ΤǤȤޤˡΥɥȤХѥʬ䤵ƤȤޤξ硢ѥåϡAPI Ǥ \f2com.apipackage\fP ȡSPI (ӥץХ󥿥ե) Ǥ \f2com.spipackage\fP ǤɥȤγǼϡ \f2docs/api/com/apipackage\fP \f2docs/spi/com/spipackage\fP ǤAPI ѥåΥɥȤϤǤѤߤǡ \f2docs\fP ȥǥ쥯ȥˤʤäƤȲꤹȡAPI ɥȤؤΥ󥯤ޤ SPI ѥåɥȲˤϡΥޥɤ¹Ԥޤ @@ -3294,9 +3278,9 @@ o .LP ȤСJava SE 6 API ΥѥåꥹȤ .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ +http://download.oracle.com/javase/7/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ .nf \f3 .fl @@ -3355,15 +3339,15 @@ o .LP 1 javadoc ¹Ԥʣ \f2\-linkoffline\fP ץǤޤ1.2.2 ϡʣΥץꤹ뤳ȤϤǤޤǤ .LP -\f3ɥȤؤХ󥯤λ\fP \- http://java.sun.com/javase/6/docs/api \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ\fP Web ˥Ǥʤͤޤ֥饦 \f2\fP +\f3ɥȤؤХ󥯤λ\fP \- http://download.oracle.com/javase/7/docs/api/ \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ⡢\fPWeb ˥Ǥʤͤޤ֥饦 \f2\fP .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ɬץץϼƤޤ +http://download.oracle.com/javase/7/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://download.oracle.com/javase/7/docs/api/ . com.mypackage\fP .fl .fi .LP @@ -3694,7 +3678,7 @@ javadoc .na \f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#annotations򻲾ȤƤ .LP \-taglet ץѤơʣʥ֥å䥫।饤󥿥 뤳ȤǤޤ .LP @@ -3890,13 +3874,13 @@ javadoc .fl .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ .fl \fP .fi @@ -3945,7 +3929,7 @@ javadoc .RS 3 .TP 2 o -\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåϽޤΤȤ \f2java.lang Υ֥ѥå\fPǤ java.lang.ref \f2ޤ\fP +\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåޤξ硢 \f2java.lang\fP Υ֥ѥåǤ \f2java.lang.ref\fP .nf \f3 .fl @@ -4068,13 +4052,13 @@ Javadoc .fl \-bottom ' .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    ' \\ + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl @@ -4087,7 +4071,7 @@ Javadoc \fP .fi .LP -嵭Υޥɤǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ +ǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ .SS Makefile .LP @@ -4139,13 +4123,13 @@ HEADER = 'Java(TM) SE 7' .fl BOTTOM = ' .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    ' + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl @@ -4229,13 +4213,13 @@ o .na \f2Javadoc Υۡڡ\fP @ .fi -http://java.sun.com/j2se/javadoc/index.jsp +http://www.oracle.com/technetwork/java/javase/documentation/index\-jsp\-135444.html .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html .TP 2 o .na diff --git a/jdk/src/linux/doc/man/ja/javah.1 b/jdk/src/linux/doc/man/ja/javah.1 index 114b2138719..b9c445d6b80 100644 --- a/jdk/src/linux/doc/man/ja/javah.1 +++ b/jdk/src/linux/doc/man/ja/javah.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "14 Apr 2011" +.TH javah 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/javap.1 b/jdk/src/linux/doc/man/ja/javap.1 index 99e6edfcb28..1854f9d552e 100644 --- a/jdk/src/linux/doc/man/ja/javap.1 +++ b/jdk/src/linux/doc/man/ja/javap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "14 Apr 2011" +.TH javap 1 "07 May 2011" .LP .SH "̾" @@ -33,7 +33,7 @@ javap \- Java .nf \f3 .fl -javap [ \fP\f3options\fP\f3 ] class. . . +javap [ \fP\f3options\fP\f3 ] classes .fl \fP .fi @@ -42,7 +42,20 @@ javap [ \fP\f3options\fP\f3 ] class. . . .SH "" .LP .LP -\f3javap\fP ޥɤϡ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤȤСΥ饹򥳥ѥ뤹Ȥޤ +\f3javap\fP ޥɤϡ1 ĤޤʣΥ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤ +.LP +.RS 3 +.TP 3 +options +ޥɹԥץ +.TP 3 +classes +νоݤȤʤ 1 İʾΥ饹 \f2DocFooter.class\fP ʤ) Υꥹ (ڤ)饹ѥǸĤ륯饹ϡե̾ ( \f2/home/user/myproject/src/DocFooter.class\fP ʤ) ޤ URL ( \f2file:///home/user/myproject/src/DocFooter.class\fP ʤ) ǻǤޤ +.RE + +.LP +.LP +ȤСΥ饹򥳥ѥ뤹Ȥޤ .LP .nf \f3 @@ -88,24 +101,24 @@ public class DocFooter extends Applet { .LP .LP -\f3javap DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ +\f3javap DocFooter.class\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + java.lang.String email; .fl - public DocFooter(); + public DocFooter(); .fl - public void init(); + public void init(); .fl - public void paint(java.awt.Graphics); + public void paint(java.awt.Graphics); .fl } .fl @@ -114,115 +127,117 @@ public class DocFooter extends java.applet.Applet { .LP .LP -\f3javap \-c DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ +\f3javap \-c DocFooter.class\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + .fl - public DocFooter(); + java.lang.String email; .fl - public void init(); + .fl - public void paint(java.awt.Graphics); + public DocFooter(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: invokespecial #1 // Method java/applet/Applet."":()V +.fl + 4: return +.fl + +.fl + public void init(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: sipush 500 +.fl + 4: bipush 100 +.fl + 6: invokevirtual #2 // Method resize:(II)V +.fl + 9: aload_0 +.fl + 10: aload_0 +.fl + 11: ldc #3 // String LAST_UPDATED +.fl + 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 16: putfield #5 // Field date:Ljava/lang/String; +.fl + 19: aload_0 +.fl + 20: aload_0 +.fl + 21: ldc #6 // String EMAIL +.fl + 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 26: putfield #7 // Field email:Ljava/lang/String; +.fl + 29: return +.fl + +.fl + public void paint(java.awt.Graphics); +.fl + Code: +.fl + 0: aload_1 +.fl + 1: new #8 // class java/lang/StringBuilder +.fl + 4: dup +.fl + 5: invokespecial #9 // Method java/lang/StringBuilder."":()V +.fl + 8: aload_0 +.fl + 9: getfield #5 // Field date:Ljava/lang/String; +.fl + 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 15: ldc #11 // String by +.fl + 17: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 20: invokevirtual #12 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; +.fl + 23: bipush 100 +.fl + 25: bipush 15 +.fl + 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 30: aload_1 +.fl + 31: aload_0 +.fl + 32: getfield #7 // Field email:Ljava/lang/String; +.fl + 35: sipush 290 +.fl + 38: bipush 15 +.fl + 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 43: return .fl } .fl - -.fl -Method DocFooter() -.fl - 0 aload_0 -.fl - 1 invokespecial #1 -.fl - 4 return -.fl - -.fl -Method void init() -.fl - 0 aload_0 -.fl - 1 sipush 500 -.fl - 4 bipush 100 -.fl - 6 invokevirtual #2 -.fl - 9 aload_0 -.fl - 10 aload_0 -.fl - 11 ldc #3 -.fl - 13 invokevirtual #4 -.fl - 16 putfield #5 -.fl - 19 aload_0 -.fl - 20 aload_0 -.fl - 21 ldc #6 -.fl - 23 invokevirtual #4 -.fl - 26 putfield #7 -.fl - 29 return -.fl - -.fl -Method void paint(java.awt.Graphics) -.fl - 0 aload_1 -.fl - 1 new #8 -.fl - 4 dup -.fl - 5 invokespecial #9 -.fl - 8 aload_0 -.fl - 9 getfield #5 -.fl - 12 invokevirtual #10 -.fl - 15 ldc #11 -.fl - 17 invokevirtual #10 -.fl - 20 invokevirtual #12 -.fl - 23 bipush 100 -.fl - 25 bipush 15 -.fl - 27 invokevirtual #13 -.fl - 30 aload_1 -.fl - 31 aload_0 -.fl - 32 getfield #7 -.fl - 35 sipush 290 -.fl - 38 bipush 15 -.fl - 40 invokevirtual #13 -.fl - 43 return -.fl \fP .fi @@ -284,22 +299,7 @@ http://java.sun.com/docs/books/vmspec/ ᥽åɤΥå \f2locals\fP \f2args\fP οϤޤ .TP 3 \-classpath path -\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ -.nf -\f3 -.fl - .: -.fl -\fP -.fi -򼨤ޤ -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi +\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤ .TP 3 \-bootclasspath path ֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ @@ -308,22 +308,6 @@ http://java.sun.com/docs/books/vmspec/ 󥹥ȡ뤵줿ĥǽ򸡺򥪡С饤ɤޤĥǽϡǥեȤǤ \f2java.ext.dirs\fP ˤޤ .RE -.LP -.SH "Ķѿ" -.LP -.RS 3 -.TP 3 -CLASSPATH -桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi -.RE - .LP .SH "Ϣ" .LP diff --git a/jdk/src/linux/doc/man/ja/javaws.1 b/jdk/src/linux/doc/man/ja/javaws.1 index 03d3349c7a0..500e6a7cba8 100644 --- a/jdk/src/linux/doc/man/ja/javaws.1 +++ b/jdk/src/linux/doc/man/ja/javaws.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2003, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "14 Apr 2011" +.TH javaws 1 "07 May 2011" .LP .SH "̾" @@ -81,7 +81,7 @@ Java Web Start \f2\-Xnosplash\fP .LP .LP -ǽΥץå̤ɽ̵ˤޤ +ץå̤ɽޤ .LP .LP \f2\-open \fP @@ -99,7 +99,7 @@ Java Web Start \f2\-online\fP .LP .LP -饤⡼ɤǼ¹Ԥޤ (ǥեȤư) +饤⡼ɤѤޤ (ǥեȤư) .LP .LP \f2\-wait\fP diff --git a/jdk/src/linux/doc/man/ja/jconsole.1 b/jdk/src/linux/doc/man/ja/jconsole.1 index 309fc14f41d..fc9c17c2a59 100644 --- a/jdk/src/linux/doc/man/ja/jconsole.1 +++ b/jdk/src/linux/doc/man/ja/jconsole.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "14 Apr 2011" +.TH jconsole 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jdb.1 b/jdk/src/linux/doc/man/ja/jdb.1 index 7c189369748..4904c9d8eab 100644 --- a/jdk/src/linux/doc/man/ja/jdb.1 +++ b/jdk/src/linux/doc/man/ja/jdb.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "14 Apr 2011" +.TH jdb 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jhat.1 b/jdk/src/linux/doc/man/ja/jhat.1 index 57ff839ce47..666b25229d2 100644 --- a/jdk/src/linux/doc/man/ja/jhat.1 +++ b/jdk/src/linux/doc/man/ja/jhat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "14 Apr 2011" +.TH jhat 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jinfo.1 b/jdk/src/linux/doc/man/ja/jinfo.1 index 14b6814173e..a1f639cfda9 100644 --- a/jdk/src/linux/doc/man/ja/jinfo.1 +++ b/jdk/src/linux/doc/man/ja/jinfo.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "14 Apr 2011" +.TH jinfo 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jmap.1 b/jdk/src/linux/doc/man/ja/jmap.1 index b3679c520fe..15ea13f6f2e 100644 --- a/jdk/src/linux/doc/man/ja/jmap.1 +++ b/jdk/src/linux/doc/man/ja/jmap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "14 Apr 2011" +.TH jmap 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jps.1 b/jdk/src/linux/doc/man/ja/jps.1 index 718cbdc8ef0..bcfb9bed82e 100644 --- a/jdk/src/linux/doc/man/ja/jps.1 +++ b/jdk/src/linux/doc/man/ja/jps.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "14 Apr 2011" +.TH jps 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jrunscript.1 b/jdk/src/linux/doc/man/ja/jrunscript.1 index 70b527f7e45..3f83aa5c428 100644 --- a/jdk/src/linux/doc/man/ja/jrunscript.1 +++ b/jdk/src/linux/doc/man/ja/jrunscript.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "14 Apr 2011" +.TH jrunscript 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jsadebugd.1 b/jdk/src/linux/doc/man/ja/jsadebugd.1 index 928334062e7..077543a2367 100644 --- a/jdk/src/linux/doc/man/ja/jsadebugd.1 +++ b/jdk/src/linux/doc/man/ja/jsadebugd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "14 Apr 2011" +.TH jsadebugd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jstack.1 b/jdk/src/linux/doc/man/ja/jstack.1 index a8b3c8f59ab..043a6fb72a3 100644 --- a/jdk/src/linux/doc/man/ja/jstack.1 +++ b/jdk/src/linux/doc/man/ja/jstack.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "14 Apr 2011" +.TH jstack 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jstat.1 b/jdk/src/linux/doc/man/ja/jstat.1 index 8b3e670a49d..07e724add93 100644 --- a/jdk/src/linux/doc/man/ja/jstat.1 +++ b/jdk/src/linux/doc/man/ja/jstat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "14 Apr 2011" +.TH jstat 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jstatd.1 b/jdk/src/linux/doc/man/ja/jstatd.1 index af3fc39b9db..9eeffc439d9 100644 --- a/jdk/src/linux/doc/man/ja/jstatd.1 +++ b/jdk/src/linux/doc/man/ja/jstatd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "14 Apr 2011" +.TH jstatd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/jvisualvm.1 b/jdk/src/linux/doc/man/ja/jvisualvm.1 index f31c622f479..25a29ca9610 100644 --- a/jdk/src/linux/doc/man/ja/jvisualvm.1 +++ b/jdk/src/linux/doc/man/ja/jvisualvm.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2008, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jvisualvm 1 "14 Apr 2011" +.TH jvisualvm 1 "07 May 2011" .LP .SH "̾" @@ -110,7 +110,7 @@ o .na \f2Java VisualVM ȯԤΥ\fP @ .fi -https://visualvm.dev.java.net +http://visualvm.java.net .TP 2 o .na diff --git a/jdk/src/linux/doc/man/ja/keytool.1 b/jdk/src/linux/doc/man/ja/keytool.1 index e9701dd73ad..14fce24c607 100644 --- a/jdk/src/linux/doc/man/ja/keytool.1 +++ b/jdk/src/linux/doc/man/ja/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998-2010 keytool tool, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2011 keytool tool, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "14 Apr 2011" +.TH keytool 1 "07 May 2011" .LP .SH "̾" @@ -1087,9 +1087,9 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht .fl keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl - \-alias business \-keypass kpi135 \-keystore /working/mykeystore + \-alias business \-keypass \fP\f4<οѥ>\fP\f3 \-keystore /working/mykeystore .fl - \-storepass ab987c \-validity 180 + \-storepass \fP\f4<ȥοѥ>\fP\f3 \-validity 180 .fl \fP .fi @@ -1099,10 +1099,10 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht : Υޥɤ 1 ԤϤʤФʤޤʣԤϤƤΤɤߤ䤹뤿Ǥ .LP .LP -Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥ˥ѥ ab987c ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ +Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥˡ\f2<ȥοѥ>\fP ǻꤷѥ ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ .LP .LP -Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϥѥɡkpi135פƤޤ +Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϡ\f2<οѥ>\fP ǻꤷѥɤƤޤ .LP .LP ץΥǥեͤȤϡ˼ޥɤû뤳ȤǤޤºݤˤϡץ 1 Ĥꤻ˥ޥɤ¹Ԥ뤳ȤǽǤ ǥեͤĥץǤϡץꤷʤХǥեͤȤ졢ɬפͤˤĤƤϤޤȤСñ˼Τ褦Ϥ뤳ȤǤޤ @@ -1120,7 +1120,7 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht ξϡmykey Ȥ̾ǥȥȥ꤬졢줿Υڥ 90 ͭʾ񤬤Υȥ˳ǼޤΥȥϡۡǥ쥯ȥ .keystore Ȥ̾Υȥ֤ޤΥȥޤ¸ߤƤʤϡޤ̾󡢥ȥΥѥɡΥѥɤˤĤƤϡϤޤ .LP .LP -ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤСΥѥɤˤ kpi135 Ȼ) +ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤС̾ˤ cn=Mark Jones, ou=Java, o=Oracle, c=US Ȼ) .LP .SS ȯԶɤФ̾դ׵ @@ -1240,14 +1240,14 @@ CA .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<ȥΥѥ>\fP\f3 \-deststorepass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \fP .fi .LP .LP -ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤСץץȤΤޤäɽʤ \f3keytool\fP ޥɤȯԤǤޤϡ\f3keytool\fP ޥɤ򥹥ץȥե˴ޤݤǤ򼨤ޤ +ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤˡ򼨤ޥɤ򼡤˼ޤ .LP .nf \f3 @@ -1258,11 +1258,11 @@ CA .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<ȥΥѥ>\fP\f3 \-deststorepass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \-srcalias myprivatekey \-destalias myoldprivatekey .fl - \-srckeypass oldkeypass \-destkeypass mynewkeypass + \-srckeypass \fP\f4<ȥΥѥ>\fP\f3 \-destkeypass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \-noprompt .fl @@ -1711,7 +1711,7 @@ CN=Steve Meier, OU=Java, O=Oracle, C=US : ǤȤƾ򥤥ݡȤˡƤ򿵽ŤĴ٤Ƥ .LP .LP -ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ +ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ޥɤѤ ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ .LP .nf \f3 @@ -1744,7 +1744,7 @@ CN=Steve Meier, OU=Java, O=Oracle, C=US ˡʪϢοʪ󼨤ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤ (Ūտޤĥ饹եޤ JAR եʤ) ꤹ뤳Ȥˤʤޤ .LP .LP -: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ +: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ ޥɤѤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ .LP .SS ѥɤ˴ؤջ diff --git a/jdk/src/linux/doc/man/ja/native2ascii.1 b/jdk/src/linux/doc/man/ja/native2ascii.1 index 6e775392b92..89b6f6c3be4 100644 --- a/jdk/src/linux/doc/man/ja/native2ascii.1 +++ b/jdk/src/linux/doc/man/ja/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "14 Apr 2011" +.TH native2ascii 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/orbd.1 b/jdk/src/linux/doc/man/ja/orbd.1 index b6485a6e714..b78927f5655 100644 --- a/jdk/src/linux/doc/man/ja/orbd.1 +++ b/jdk/src/linux/doc/man/ja/orbd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "14 Apr 2011" +.TH orbd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/pack200.1 b/jdk/src/linux/doc/man/ja/pack200.1 index 74886e8d950..b1bb4f0fe03 100644 --- a/jdk/src/linux/doc/man/ja/pack200.1 +++ b/jdk/src/linux/doc/man/ja/pack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "14 Apr 2011" +.TH pack200 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/policytool.1 b/jdk/src/linux/doc/man/ja/policytool.1 index ee5b9c7dbff..b3de7eca294 100644 --- a/jdk/src/linux/doc/man/ja/policytool.1 +++ b/jdk/src/linux/doc/man/ja/policytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "14 Apr 2011" +.TH policytool 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/rmic.1 b/jdk/src/linux/doc/man/ja/rmic.1 index bef409008e5..621cde4c028 100644 --- a/jdk/src/linux/doc/man/ja/rmic.1 +++ b/jdk/src/linux/doc/man/ja/rmic.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "14 Apr 2011" +.TH rmic 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/rmid.1 b/jdk/src/linux/doc/man/ja/rmid.1 index 232cf1ad050..e229fbf1cdc 100644 --- a/jdk/src/linux/doc/man/ja/rmid.1 +++ b/jdk/src/linux/doc/man/ja/rmid.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "14 Apr 2011" +.TH rmid 1 "07 May 2011" .LP .SH "̾" @@ -121,7 +121,7 @@ o .LP .LP -ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris) ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ +ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris ξ)ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ .LP .SH "ץ" .LP @@ -239,7 +239,7 @@ grant { .fl \fP .fi -ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥ ( \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ +ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥɤѤޤ \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ .LP 3 ܤͿƤ륢 \f2ExecOptionPermission\fP ϡ \f2rmid\fP Фơƥݥꥷե \f2/files/policies/group.policy\fP ȤƤ뵯ư롼פγϤĤޤΥϡư롼פ \f2java.security.debug\fP ץѥƥѤ뤳ȤĤƤޤǸΥϡư롼פ \f2sun.rmi\fP Ȥץѥƥ̾γǤդΥץѥƥѤ뤳ȤĤƤޤ .LP diff --git a/jdk/src/linux/doc/man/ja/rmiregistry.1 b/jdk/src/linux/doc/man/ja/rmiregistry.1 index 864ccc78375..264c3c1cfa6 100644 --- a/jdk/src/linux/doc/man/ja/rmiregistry.1 +++ b/jdk/src/linux/doc/man/ja/rmiregistry.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "14 Apr 2011" +.TH rmiregistry 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/schemagen.1 b/jdk/src/linux/doc/man/ja/schemagen.1 index b9cb1a27c65..cb86632a14a 100644 --- a/jdk/src/linux/doc/man/ja/schemagen.1 +++ b/jdk/src/linux/doc/man/ja/schemagen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "14 Apr 2011" +.TH schemagen 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/serialver.1 b/jdk/src/linux/doc/man/ja/serialver.1 index 4929593320c..e06b12e9de1 100644 --- a/jdk/src/linux/doc/man/ja/serialver.1 +++ b/jdk/src/linux/doc/man/ja/serialver.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "14 Apr 2011" +.TH serialver 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/servertool.1 b/jdk/src/linux/doc/man/ja/servertool.1 index 1cb919bca17..2e8fc6d97e3 100644 --- a/jdk/src/linux/doc/man/ja/servertool.1 +++ b/jdk/src/linux/doc/man/ja/servertool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "14 Apr 2011" +.TH servertool 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/tnameserv.1 b/jdk/src/linux/doc/man/ja/tnameserv.1 index 216075e37ec..229c3af8300 100644 --- a/jdk/src/linux/doc/man/ja/tnameserv.1 +++ b/jdk/src/linux/doc/man/ja/tnameserv.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1999, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "14 Apr 2011" +.TH tnameserv 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/unpack200.1 b/jdk/src/linux/doc/man/ja/unpack200.1 index c5f12136430..96a85d8105e 100644 --- a/jdk/src/linux/doc/man/ja/unpack200.1 +++ b/jdk/src/linux/doc/man/ja/unpack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "14 Apr 2011" +.TH unpack200 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/linux/doc/man/ja/wsgen.1 b/jdk/src/linux/doc/man/ja/wsgen.1 index 2a3bc5874eb..c85556ee16f 100644 --- a/jdk/src/linux/doc/man/ja/wsgen.1 +++ b/jdk/src/linux/doc/man/ja/wsgen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "14 Apr 2011" +.TH wsgen 1 "07 May 2011" .SH "̾" wsgen \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP diff --git a/jdk/src/linux/doc/man/ja/wsimport.1 b/jdk/src/linux/doc/man/ja/wsimport.1 index ff5301792d8..a09204e86ba 100644 --- a/jdk/src/linux/doc/man/ja/wsimport.1 +++ b/jdk/src/linux/doc/man/ja/wsimport.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "14 Apr 2011" +.TH wsimport 1 "07 May 2011" .SH "̾" wsimport \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP @@ -818,7 +818,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://username:password@example.org/stock?wsdl +ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://\f2<桼̾>\fP:\f2<ѥ>\fP@\f2<ۥ̾>\fP/\f2\fP?wsdl .br .di .nr b| \n(dn @@ -1057,10 +1057,10 @@ W3C \f2EndpointReferenceType\fP .nf \f3 .fl -\fP\f3wsimport \-p stockquote http://stockquote.xyz/quote?wsdl\fP +\fP\f3wsimport \-p stockquote http://stockquote.example.com/quote?wsdl\fP .fl .fi .LP -Java ƥեȤ \f2http://stockquote.xyz/quote?wsdl\fP 򥤥ݡȤ뤳ȤǡΥƥեȤ򥳥ѥ뤷ޤ +Java ƥեȤ \f2http://stockquote.example.com/quote?wsdl\fP 򥤥ݡȤƤ Java ƥեȤ򥳥ѥ뤷ޤ .br diff --git a/jdk/src/linux/doc/man/ja/xjc.1 b/jdk/src/linux/doc/man/ja/xjc.1 index 7aec40218aa..0b3baf84f0a 100644 --- a/jdk/src/linux/doc/man/ja/xjc.1 +++ b/jdk/src/linux/doc/man/ja/xjc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "14 Apr 2011" +.TH xjc 1 "07 May 2011" .LP .ad c diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 b/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 index fcbcc19a43b..5aa0ad3d1fe 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/appletviewer.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "14 Apr 2011" +.TH appletviewer 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 b/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 index 6255300f0aa..bd788983f81 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/apt.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "14 Apr 2011" +.TH apt 1 "07 May 2011" .LP .SH "NAME" @@ -50,7 +50,10 @@ sourcefiles .SH "" .LP .LP -ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ +\f3\fP: \f2apt\fP ġȡѥå \f2com.sun.mirror\fP ˴ޤޤƤ뤽˴Ϣ API ϡJDK 7 ʹ侩ˤʤäƤꡢJDK μΥ᥸㡼꡼ǺͽǤ\f2javac(1)\fP ġѲǽʥץȡѥå \f2javax.annotation.processing\fP \f2javax.lang.model\fP ˴ޤޤƤ API ѤơƤ +.LP +.LP +ġ \f2apt\fP ϡե쥯 API ȥݡȥե饹ȥ饯㡼鹽졢ץޤ\f2apt\fP ե쥯 API ϡ ۻΥ١ǡץ๽¤˴ؤɤ߼ѥӥ塼󶡤ޤΥե쥯 API ϡΤɲäˡJava(TM) ץߥ󥰸ηƥǥ벽褦߷פƤޤǽˡ\f2apt\fP ϡɤ¾Υեץå¹Ԥޤˡ\f2apt\fP ϡΥեեξ򥳥ѥ뤹뤿ᡢȯڤˤʤޤġȤΥ󥿥ե˻Ѥե쥯 API ʤɤ API ϡ\f2com.sun.mirror\fP Υ֥ѥåǤ .LP .LP ġεǽ˴ؤܺ٤ȡ\f2apt\fP ѤȯˡˤĤƤϡ @@ -58,13 +61,6 @@ sourcefiles \f4apt \fP @ .fi http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html򻲾ȤƤ -.LP -.RS 3 -.TP 3 -: -\f2apt\fP εǽϡ\f2javac(1)\fP ġΰȤʤäե饹ȥ饯㡼Ȥ߹ޤ졢٤Ƥ Java ѥǻѤǤ褦ɸಽޤοե饹ȥ饯㡼ϡǥ뤪 Java ץåȥեΰȤʤä API ˰¸ޤץåγȯϡ API \f2javac\fP ġ˴ŤƹԤ褦ᤷޤ -.RE - .LP .SH "ץ" .LP @@ -143,7 +139,7 @@ javac .SH "" .LP .LP -\f2apt\fP εǽϡ\f2javac\fP ˤ󶡤ɸե饹ȥ饯㡼Ȥ߹ޤޤ JDK ꡼Ǥϡ\f2apt\fP ӴϢ API ΥݡȤߤǽޤ +\f2apt\fP ġȡѥå \f2com.sun.mirror\fP ˴ޤޤƤ뤽˴Ϣ API ϡJDK 7 ʹ侩ˤʤäƤꡢJDK μΥ᥸㡼꡼ǺͽǤ\f2javac(1)\fP ġѲǽʥץȡѥå \f2javax.annotation.processing\fP \f2javax.lang.model\fP ˴ޤޤƤ API ѤơƤ .LP .SH "Ϣ" .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 b/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 index 9cc66788eb7..d0a671568f8 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/extcheck.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "14 Apr 2011" +.TH extcheck 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 b/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 index 0a05be7383a..96ce9478bdc 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/idlj.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "14 Apr 2011" +.TH idlj 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 index acdc31b6a07..0ce57f3ee56 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jar.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "14 Apr 2011" +.TH jar 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 index c349b53e8d6..739d051356e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jarsigner.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "14 Apr 2011" +.TH jarsigner 1 "07 May 2011" .LP .SH "̾" @@ -110,16 +110,16 @@ o .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<ȥΥѥ>\fP\f3 .fl - \-keypass dukekeypasswd MyJARFile.jar duke + \-keypass \fP\f4<Υѥ>\fP\f3 MyJARFile.jar duke .fl \fP .fi .LP .LP -ȥϥѥɤݸƤΤǡȥΥѥ (Ǥ mypass) ꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥ (Ǥ dukekeypasswd) ꤹɬפޤ ޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ +ȥϥѥɤݸƤΤǡȥΥѥɤꤹɬפޤޥɹԤǥȥΥѥɤꤷʤȡѥɤϤޤƱͤˡ⥭ȥǥѥɤˤäݸƤ뤿ᡢΥѥɤꤹɬפޤޥɹԤΥѥɤꤷƤʤޤꤷѥȤ¸ƤѥɤȰäƤˤϡΥѥɤϤޤ .LP .SS ȥξ @@ -500,7 +500,7 @@ o .LP \f2file\fP ˻ѤǤʸϡa\-zA\-Z0\-9_\-פǤĤޤꡢʸӥϥեѤǤޤ: .SF .DSA Υե̾ǤϡʸϤ٤ʸѴޤ .LP -\-sigfile \f2ץ\fP ꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ +\-sigfile \f2\-sigfile\fP ץꤷʤä硢.SF ե .DSA եΥ١ե̾ϡޥɹԤǻꤵ줿̾Ƭ 8 ʸ򤹤٤ʸѴΤˤʤޤ̾ 8 ʸ̤ξϡ̾Τޤ޻Ȥޤ̾ˡ̾ե̾˻ѤǤʤʸޤޤƤϡʸ (_) ֤ƥե̾ޤ .TP 3 \-sigalg algorithm JAR եν̾˻Ѥ̾르ꥺ̾ꤷޤ @@ -609,7 +609,7 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ \fP .fi .TP 3 -\-Jjavaoption +Ǥޤjavaoption ꤵ줿 \f2javaoption\fP ʸ Java 󥿥ץ꥿ľϤޤ\f3jarsigner\fP ϡºݤˤ Java 󥿥ץ꥿Ф֥åѡפǤΥץˤϡޤ뤳ȤϤǤޤ󡣤Υץϡ¹ԴĶޤϥ꡼ѤĴǤѲǽʥ󥿥ץ꥿ץΰɽˤϡ \f2java \-h\fP ޤ \f2java \-X\fP ȥޥɹԤϤޤ .LP .TP 3 @@ -676,14 +676,14 @@ JAR JAR եν̾ .LP .LP -bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤȥϡmystore Ȥ̾ǡC ɥ饤֤ working ǥ쥯ȥˤꡢȥΥѥɤ mypass\f2jane\fP Υѥɤ j638klm Ȥޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ +bundle.jar Ȥ̾ JAR ե뤬ȤޤΥեˡȥ̾ jane Ǥ桼Ȥäơ̾դȤޤξ硢Υޥɤ¹ԤȡJAR ե˽̾դ sbundle.jar Ȥ̾դ JAR եǤޤ .LP .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<ȥΥѥ>\fP\f3 .fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane + \-keypass \fP\f4<Υѥ>\fP\f3 \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -800,7 +800,7 @@ bundle.jar Ȥä .LP .LP -ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤ򼨤ޤ +ڻ \-verify \-verbose ץ˲ä \f2\-certs\fP ץꤷϡ JAR եγƽ̾ԤξϤޤˤϡ񥿥ס̾Լ̾ (X.509 ξΤ) JAR եθξ񤬥ȥȥξ˰פˤϡ̤ǰϤޤ줿̾ԤΥȥ̾ޤޤޤȤС .LP .nf \f3 @@ -862,7 +862,7 @@ bundle.jar JAR ե뤬JDK 1.1 \f3javakey\fP ġȤäƽ̾Ƥ硢̾Ԥϥǥƥƥǡ١̾Ǥξ硢ڤνϤˤ i Ȥ椬ޤޤޤJAR ե뤬ǥƥƥǡ١̾ȥȥ̾ξˤäƽ̾Ƥϡk i ξɽޤ .LP .LP -\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤȤС +\f2\-certs\fP ץꤷ硢ȥ̾ϳ̤ǰϤޤΤФǥƥƥǡ١̾ϳѳ̤ǰϤޤɽޤ򼨤ޤ .LP .nf \f3 @@ -978,7 +978,7 @@ JAR .fl JAR ˤϡΥȥ̾ˤäƽ̾Ƥʤ̾դȥ꤬ޤޤƤޤ .fl - + .fl \fP .fi @@ -993,7 +993,7 @@ JAR .nf \f3 .fl -failure 1 +failure 1 .fl \fP .fi @@ -1649,7 +1649,7 @@ o .na \f4jarsigner\fP\f2 ġλˤĤƤϡ\fP @ .fi -http://download.oracle.com/javase/tutorial/index.html +http://download.oracle.com/javase/tutorial/security/index.html .na \f2Java 塼ȥꥢ\fP\f4\fP @ .fi diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/java.1 b/jdk/src/solaris/doc/sun/man/man1/ja/java.1 index 5385d6ef039..062d3209af8 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/java.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/java.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "14 Apr 2011" +.TH java 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 index 6987ff94b68..cb107bfb9a1 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javac.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "14 Apr 2011" +.TH javac 1 "07 May 2011" .LP .SH "̾" @@ -136,10 +136,6 @@ o \f3\-sourcepath\fP ץ󤬻ꤵƤʤϡե桼饹ѥ鸡ޤ .LP \f3\-processorpath\fP ץ󤬻ꤵƤʤϡץå桼饹ѥ鸡ޤ -.LP -ص塢 \f2*\fP Υ١̾ޤ९饹ѥǤϡǥ쥯ȥγĥ \f2.jar\fP ޤ \f2.JAR\fP Ĥ٤ƤΥեΥꥹȤꤹΤƱȤߤʤޤ -.LP -ȤСǥ쥯ȥ \f2foo\fP \f2a.jar\fP \f2b.JAR\fP ޤޤƤ硢饹ѥ \f2foo/*\fP \f2A.jar:b.JAR\fP ŸޤJAR եν֤ϻꤵޤ󡣤ΥꥹȤˤϡեޤᡢꤵ줿ǥ쥯ȥΤ٤Ƥ JAR ե뤬ޤޤޤ \f2*\fP 륯饹ѥȥϡߤΥǥ쥯ȥΤ٤Ƥ JAR եΥꥹȤŸޤ \f2CLASSPATH\fP Ķѿ⡢ˤƱͤŸޤ\f3:\fP ޥɹԴĶιˤäƤϡ \f2javac \-cp "*.jar" MyClass.java\fP ʤɤΤ褦ˡ磻ɥʸǰϤळȤɬפʾ⤢ޤ .TP 3 \-Djava.ext.dirs=directories 󥹥ȡ뷿ĥǽΰ֤򥪡С饤ɤޤ @@ -315,7 +311,7 @@ o 侩뤹٤ƤηٹͭˤޤΥ꡼ǤϡѲǽʤ٤Ƥηٹͭˤ뤳Ȥ侩Ƥޤ .TP 3 \-Xlint:none -Java ͤǤϻꤵƤʤ٤Ƥηٹ̵ˤޤ +٤Ƥηٹ̵ˤޤ .TP 3 \-Xlint:name ٹ \f2name\fP ͭˤޤΥץͭˤǤٹΥꥹȤˤĤƤϡ\-Xlint ץȤäͭޤ̵ˤǤٹפ򻲾ȤƤ @@ -617,7 +613,7 @@ warning: [processing] No processor claimed any of these annotations: Anno 褹ˤϡ饹 \f2AnnosWithoutProcessors\fP ӻѤ̾ \f2Anno\fP \f2NotAnno\fP ѹޤ .TP 3 rawtypes -raw Ф̤ˤĤƷٹ𤷤ޤäˤΥץϡʤѥ᡼줿Ѥ桼ФƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ +raw Ф̤ˤĤƷٹ𤷤ޤʸǤϡ \f2rawtypes\fP ٹޤ .nf \f3 .fl diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 index 57c6cd75a35..e6374a63c67 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javadoc.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "14 Apr 2011" +.TH javadoc 1 "07 May 2011" .SH "̾" javadoc \- Java API ɥȥͥ졼 .LP @@ -38,11 +38,7 @@ packagenames ڡǶڤ줿ϢΥѥå̾ǤȤС \f2java.lang\ java.lang.reflect\ java.awt Τ褦˻ꤷޤ\fPɥȲѥå̤˻ꤹɬפޤ磻ɥɤϻԲĤǤƵŪΤˤϡ\-subpackages ѤޤJavadoc ġϡ\f2\-sourcepath\fP ѤƤΥѥå̾򸡺ޤ1 İʾΥѥåΥɥȲפ򻲾ȤƤ .TP 3 sourcefilenames -ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ ( -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ +ڡǶڤ줿ϢΥե̾Ǥ ƥեϡѥǻϤޤޤꥹ (*) ʤɤΥ磻ɥɤޤ뤳ȤǤޤJavadoc ġ뤬Τϡե̾.javaפȤĥҤǽꡢγĥҤ̾ºݤͭʥ饹̾Ǥ뤹٤ƤΥեǤ (Java ͤ򻲾)äơϥեޤ̾ ( \f2X\-Buffer\fP ʤ) 䡢¾̵ʸޤ̾դ뤳ȤˤäơΥեɥȲоݤǤޤϡƥѤΥե䡢ƥץ졼Ȥ줿եξǤե̾˻ꤷѥˤäơjavadoc Υե򸡺꤬ޤޤJavadoc ġϡΥե̾򸡺Ȥˤ \f2\-sourcepath\fP ѤޤХѥϸߤΥǥ쥯ȥȤ뤿ᡢ \f2Button.java\fP ϤȤϡ \f2./Button.java\fP ϤȤƱǤե̾եѥǻꤹȡ \f2/home/src/java/awt/Graphics*.java Τ褦ˤʤޤ\fP 1 İʾΥ饹ΥɥȲפ򻲾ȤƤޤ֥ѥåȥ饹ΥɥȲפΤ褦ˡѥå̾ȥե̾򺮺ߤ뤳ȤǤޤ .TP 3 \-subpackages pkg1:pkg2:... ե뤫ꤵ줿ѥåӤΥ֥ѥå˺ƵŪ˥ɥȤޤѥå̾ޤϥե̾ꤹɬפϤޤ @@ -62,11 +58,7 @@ Javadoc .RS 3 .TP 2 o -̾\f2.java\fPפȼºݤͭʥ饹̾ˤʤäƤ (ͭʸˤĤƤ -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625򻲾) +̾\f2.java\fPפȡºݤͭʥ饹̾ˤʤäƤ (Java ͤͭʸ򻲾) .TP 2 o ĥ꡼Υ롼ȤŪʥǥ쥯ȥѥڤʸɥåȤѴȡºݤͭʥѥå̾ˤʤäƤ @@ -111,11 +103,7 @@ o .LP ºݤˤϡJavadoc ġϡ᥽åΤʤʥ֥եǤ褦 \f2.java\fP եǤưޤäơAPI κˤϡ򵭽Ҥ߷פᤤʳǡɥơ󥳥Ȥ򵭽Ҥ javadoc ġ¹ԤǤޤ .LP -ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤ -.na -\f2ǥեȥ󥹥ȥ饯\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (Java ͤΥ 8.6.7) \f2ɥȲ\fP ޤ +ѥ˰¸뤳ȤˤäơHTML ϤϡºݤμΤбޤºݤμϡŪʥɤˤǤϤʤۤΥɤ˰¸礬ޤȤСJavadoc ġϡ.class եˤ¸ߤ뤬ɤˤ¸ߤʤǥեȥ󥹥ȥ饯 (Java ͤ򻲾) \f2ɥȲ\fP ޤ .LP ̾Javadoc ġǤϡեΥɤԴޤϥ顼ޤǤǤɥȤǤޤΤᡢǥХåȥ֥륷塼ƥ󥰤λ˥ɥȤǤޤȤСJava ͤˤȡݥ᥽åɤޤ९饹ϡ켫ݤȤʤФʤޤ󡣤Υ顼򸡽Фȡjavac ѥߤޤJavadoc ġϷٹФ˽³ԤޤJavadoc ġϥɥơ󥳥ȤδŪʥåԤޤɥơ󥳥ȤܤåɬפϡDocCheck ɥååȤѤƤ .LP @@ -161,7 +149,7 @@ o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html \- ɥơ󥳥Ȥεˡ˴ؤ Sun ε .TP 2 o .na @@ -179,13 +167,13 @@ o .na \f2DocCheck ɥåå\fP @ .fi -http://java.sun.com/javadoc/doccheck \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- եΥɥơ󥳥ȤåФ줿顼ΥݡȤޤDoc Check 桼ƥƥΰǤ .TP 2 o .na \f2MIF ɥåå\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ +http://java.sun.com/j2se/javadoc/mifdoclet/ \- MIFFrameMakerPDF ν񼰤 API ɥȤưޤMIF Adobe FrameMaker θ򴹽񼰤Ǥ .RE .SS Ѹ @@ -218,7 +206,7 @@ javadoc .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ +http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses ѹƤޤjavadoc ġ¹ԤȤϡJavadoc Υ֡ȥ饹ѥӥ饹ѥˤ뤹٤Ƥλȥ饹꡼˥ɤɬפޤȥ饹Ĥʤϡ֥饹ĤޤפȤٹɽޤJavadoc ġϡ饹¸ߤȤΥСδ̾Ƚ̤Τɬפʤ٤Ƥξ.class ե뤫ФȤǤޤ .LP .TP 3 ȥ饹 (external referenced classes) @@ -310,7 +298,7 @@ and the applet context. An applet is an embeddable window (see the {@link java.a .na \f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#packagecomments򻲾ȤƤ .LP \f3ѥåȥեν\fP \- Javadoc ġϡ¹Ի˥ѥåȥեưŪ˸Υե򸫤ĤȼνԤޤ .RS 3 @@ -350,7 +338,7 @@ Javadoc .RS 3 .TP 2 o -\f2\fP \f2\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ +\f2\fP \f2\fP δ֤ˤ뤹٤ƤƤоݤȤƥԡ .TP 2 o ץС٤ƽ @@ -408,11 +396,7 @@ o .LP ƥȥե doc Ȥޤޤ硢Τ褦˥磻ɥɤޤƥȥե̾ϤƥƥȥեΥɥȤ褦ˡJavadoc ġ̸Ĥ˼¹ԤǤ褦ǤޤȤС \f2com/package1/test\-files/*.java ʤɤǤ\fP .LP -\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ ( -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625) +\f3եΥƥץ졼\fP \- ƥץ졼ȥե̾ϡ.javaפǽ뤳Ȥ⤢ޤƥץ졼ȥեϥѥǤޤ󡣥ǥ쥯ȥݻեΥƥץ졼Ȥϡ \f2Buffer\-Template.java\fP Τ褦˥ϥե䤽¾̵ Java ʸ̾˴ޤ뤳Ȥǡƥץ졼Ȥʤ褦ˤޤϡJavadoc ġ뤬Τϡ.java̾ Υ饹̾Ǥ륽եǤ뤿Ǥ (Java ͤΡIdentifiersפ˴ؤ򻲾) .SH "ե" .LP ǥեȤǤϡjavadoc ġϡHTML ΥɥȤɸɥååȤȤޤΥɥååȤϡʲμΥեޤ줾 HTML ڡϡġΥեޤjavadoc ե̾ˤϡ饹䥤󥿥ե̾ˤʤΤȡǤʤ ( \f2package\-summary.html ʤ\fP) 2 बޤԤΥ롼פΥե̾ˤϡԤΥ롼פȥե̾礷ʤ褦ˡϥե󤬴ޤޤƤޤ @@ -756,7 +740,7 @@ o ưϥС 1.3 ưȤоŪǤޤǤΥСǤϡޤϥ¸ߤСȤϰڷѾޤǤ .TP 2 o -\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ +\f3{@inheritDoc} ޤॳȤŪ˷Ѿ\fP \- 饤󥿥 \f2{@inheritDoc}\fP 򡢥᥽åɤμޤ \f2@return\fP \f2@param\fP ޤ \f2@throws\fP Τ줫ΥޤбѾ줿ޤϥȤΰ֤˥ԡޤ .RE .LP ɥơ󥳥Ȥºݤ˥ԡѤˤϡѾ᥽åɤΥե뤬 \-sourcepath ǻꤷѥ֤Ƥ뤳ȤɬפˤʤޤޥɹԤǡ饹ѥåϤɬפϤޤ󡣤ϡ饹ɥȲ륯饹ǤʤФʤʤä 1.3.x Υ꡼Ȱۤʤޤ @@ -954,7 +938,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.html .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 867 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 851 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1079,7 +1063,7 @@ http://java.sun.com/j2se/javadoc/proposed\-tags.html .na \f2@author Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@author򻲾ȤƤ .LP .RS 3 .TP 3 @@ -1094,11 +1078,11 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author .na \f2@deprecated Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@deprecated򻲾ȤƤ .RS 3 .TP 2 o -Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤ǤޤȤС +Javadoc 1.2 ʹߤǤ \f2{@link}\fP Ѥޤˤꡢɬפʾ˥饤ǥ󥯤Ǥޤ򼨤ޤ .nf \f3 .fl @@ -1292,7 +1276,7 @@ getComponentAt .na \f2{@link} Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#{@link}򻲾ȤƤ .LP .TP 3 {@linkplain\ package.class#member\ label} @@ -1386,7 +1370,7 @@ the overridden method .na \f2@param Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@param򻲾ȤƤ .LP .TP 3 @return\ description @@ -1396,7 +1380,7 @@ http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param .na \f2@return Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@return򻲾ȤƤ .LP .TP 3 @see\ reference @@ -1644,7 +1628,7 @@ equals .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1358 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1342 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1751,7 +1735,7 @@ o .LP \f3@see θ\fP \- Javadoc ġϡե (.java)ѥåե (package.html ޤ package\-info.java) ޤϳץե (overview.html) ˴ޤޤ \f2@see\fP ޤԤ 2 ĤΥեǤϡ̾ \f2@see\fP ˻ꤷʤФʤޤ󡣥եǤϡ̾ޤʬ̾Ǥޤ .LP -Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿ǤθϡJava 2 Ǥ 6 ϡNamesפƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ +Javadoc ġϡǤʤ̾Ҥ줿 \f2@see\fP \f2.java եǸĤȡ\fP Java ѥƱǻꤵ줿̾򸡺ޤ Javadoc ġϡ֤̾Τޤ򸡽Фޤ ϡɤˤΥ顼¸ߤƤʤȤȤƤ뤿Ǥθϡ\f2Java \fPƤޤJavadoc ġϡϢ륯饹ȥѥåӥݡȤ줿饹ȥѥåΤ٤Ƥ̾򸡺ޤŪˤϡνǸޤ .RS 3 .TP 3 1. @@ -1990,7 +1974,7 @@ Javadoc .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1434 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1418 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2131,7 +2115,7 @@ Javadoc .LP \f3@see \fP .br -¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP Τ褦̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ +¦ΥȤϡ \f2@see\fP \f2java.applet.Applet\fP ʤɤ̤ΥѥåΥ饹ˤˡ̾ɤΤ褦ɽ뤫򼨤Ƥޤ .nf \f3 .fl @@ -2163,7 +2147,7 @@ Javadoc .na \f2@see Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@see򻲾ȤƤ .RE .RE .LP @@ -2198,7 +2182,7 @@ http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html .na \f2ľ󲽤 FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ +http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#javadoc_warn_missing⻲ȤƤ FAQ ˤϡ\-private åꤷʤ javadoc ¹ԤƤΤ private եɤ @serial ĤʤȤ javadoc ηٹɽפʤɤΰŪʼؤβܤƤޤľ󲽷ͤ˥饹ޤˤϡ .na \f2Sun λ͡\fP @ .fi @@ -2241,7 +2225,7 @@ Java .na \f2@throws Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@exception򻲾ȤƤ .LP .TP 3 {@value\ package.class#field} @@ -2293,13 +2277,13 @@ http://java.sun.com/javase/6/docs/api/constant\-values.html @version\ version\-text \-version ץ󤬻ѤȡɥȤ [С] Фɲäꤵ줿 \f2version\-text\fP 񤭹ߤޤΥϡΥɤޤޤ륽եȥθߤΥСֹݻ褦˰տޤƤޤФ@since ϡΥɤƳ줿Сֹݻޤ \f2version\-text\fP ˤϡ̤¤Ϥޤ󡣥С󥿥ѤǤĴ٤ˤϡ֥ѤǤפ򻲾ȤƤ .LP -1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶ̾δ֤ޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ +1 ĤΥɥơ󥳥Ȥʣ \f2@version\fP ޤ뤳ȤǤޤ̣ʤϰǡ1 Ĥ \f2@version\fP 1 ĤΥСֹꤹ뤳Ȥ⡢ʣΥСֹꤹ뤳ȤǤޤԤξϡJavadoc ġˤä̾̾δ֤˥ (\f2,\fP) ȶޤԤξϡƥΤϤ뤳ȤʤɥȤˤΤޤޥԡޤäơޤǤϤʤƸб̾ڤʸȤɬפȤϡ1 ĤΥʣ̾ꤷƤ .LP ܺ٤ˤĤƤϡ .na \f2@version Υɥ\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@version򻲾ȤƤ .RE .SS ѤǤ @@ -2789,7 +2773,7 @@ javadoc .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2009 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1993 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2982,7 +2966,7 @@ javac .LP .TP 3 \-classpath\ classpathlist -javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤ Javadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ +javadoc ȥ饹 (\f2.class\fP ե) θԤȤ˻Ѥѥꤷޤȥ饹ȤϡɥȲ륯饹ȡΥ饹黲Ȥ뤹٤ƤΥ饹ؤޤ\f2classpathlist\fP ˤϡ (\f2:\fP) ǶڤäʣΥѥޤ뤳ȤǤޤJavadoc ġϡꤵ줿ѥʲΤ٤ƤΥ֥ǥ쥯ȥ򸡺ޤclasspathlist ꤹȤϡ .na \f2饹ѥ\fP @ .fi @@ -3243,13 +3227,13 @@ o .LP \f3ɥȤؤХ󥯤λ\fP \- \f2java.lang\fP \f2java.io\fP ¾ Java ץåȥեѥå ( .na -\f2http://java.sun.com/javase/6/docs/api/\fP @ +\f2http://download.oracle.com/javase/7/docs/api/\fP @ .fi -http://java.sun.com/javase/6/docs/api ) ˥󥯤ͤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ +http://download.oracle.com/javase/7/docs/api/ ) ˥󥯤礬ޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP \f2\-d\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://download.oracle.com/javase/7/docs/api/ com.mypackage\fP .fl .fi \f3ɥȤؤХ󥯤λ\fP \- 2 ĤΥѥåꡢΥɥȤ Javadoc ġʣ¹Ԥ줿ΤǤȤޤˡΥɥȤХѥʬ䤵ƤȤޤξ硢ѥåϡAPI Ǥ \f2com.apipackage\fP ȡSPI (ӥץХ󥿥ե) Ǥ \f2com.spipackage\fP ǤɥȤγǼϡ \f2docs/api/com/apipackage\fP \f2docs/spi/com/spipackage\fP ǤAPI ѥåΥɥȤϤǤѤߤǡ \f2docs\fP ȥǥ쥯ȥˤʤäƤȲꤹȡAPI ɥȤؤΥ󥯤ޤ SPI ѥåɥȲˤϡΥޥɤ¹Ԥޤ @@ -3294,9 +3278,9 @@ o .LP ȤСJava SE 6 API ΥѥåꥹȤ .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ +http://download.oracle.com/javase/7/docs/api/package\-list ˤꡢΤ褦ƤǻϤޤäƤޤ .nf \f3 .fl @@ -3355,15 +3339,15 @@ o .LP 1 javadoc ¹Ԥʣ \f2\-linkoffline\fP ץǤޤ1.2.2 ϡʣΥץꤹ뤳ȤϤǤޤǤ .LP -\f3ɥȤؤХ󥯤λ\fP \- http://java.sun.com/javase/6/docs/api \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ\fP Web ˥Ǥʤͤޤ֥饦 \f2\fP +\f3ɥȤؤХ󥯤λ\fP \- http://download.oracle.com/javase/7/docs/api/ \f2java.lang\fP \f2java.io\fP Ӥ¾ Java SE ץåȥեѥå \f2˥󥯤Ƥ⡢\fPWeb ˥Ǥʤͤޤ֥饦 \f2\fP .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ɬץץϼƤޤ +http://download.oracle.com/javase/7/docs/api/package\-list ˤ package\-list ե򳫤ǥ쥯ȥ¸ 2 \f2packagelistLoc\fP ǤΥ륳ԡؤΥѥꤷޤǤϡѥåꥹȥեϥȥǥ쥯ȥ "\f2.\fP" ¸ƤޤΥޥɤϡJava SE ץåȥեѥåؤΥ󥯤ޤѥå \f2com.mypackage\fP ΥɥȤޤ줿ɥȤˤϡȤХ饹ĥ꡼ \f2Object\fP 饹ؤΥ󥯤ޤޤƤޤʤ \f2\-sourcepath\fP ʤɡ¾ΥץϼƤޤ .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://download.oracle.com/javase/7/docs/api/ . com.mypackage\fP .fl .fi .LP @@ -3694,7 +3678,7 @@ javadoc .na \f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations򻲾ȤƤ +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#annotations򻲾ȤƤ .LP \-taglet ץѤơʣʥ֥å䥫।饤󥿥 뤳ȤǤޤ .LP @@ -3890,13 +3874,13 @@ javadoc .fl .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ .fl \fP .fi @@ -3945,7 +3929,7 @@ javadoc .RS 3 .TP 2 o -\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåϽޤΤȤ \f2java.lang Υ֥ѥå\fPǤ java.lang.ref \f2ޤ\fP +\f3 1 \- 1 İʾΥѥåεưƵŪ˼¹\fP \- Ǥ javadoc ǤդΥǥ쥯ȥ꤫¹ԤǤ褦ˡ\-sourcepath ѤƵŪΤ \-subpackages (1.4 οץ) Ѥޤϡ \f2java\fP ǥ쥯ȥΥ֥ѥå򤿤ɤޤκݤˡ \f2java.net\fP \f2java.lang\fP 롼Ȥ˻ĥѥåޤξ硢 \f2java.lang\fP Υ֥ѥåǤ \f2java.lang.ref\fP .nf \f3 .fl @@ -4068,13 +4052,13 @@ Javadoc .fl \-bottom ' .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    ' \\ + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl @@ -4087,7 +4071,7 @@ Javadoc \fP .fi .LP -嵭Υޥɤǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ +ǡ \f2packages\fP ϡоݤΥѥå̾ ( \f2java.applet java.lang\fP ʤ) äƤե̾ǤƥץΡñǰϤޤ줿¦ˤϡʸǤޤ󡣤ȤС򥳥ԡڡȤϡ \f2\-bottom\fP ץ󤫤ʸƤˡΤȤΡפ⻲ȤƤ .SS Makefile .LP @@ -4139,13 +4123,13 @@ HEADER = 'Java(TM) SE 7' .fl BOTTOM = ' .fl - Submit a bug or feature
    + Submit a bug or feature
    .fl Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.
    .fl Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - Other names may be trademarks of their respective owners.
    ' + ¾̾Τϡ줾νͭԤξɸޤϿɸǤ' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl @@ -4229,13 +4213,13 @@ o .na \f2Javadoc Υۡڡ\fP @ .fi -http://java.sun.com/j2se/javadoc/index.jsp +http://www.oracle.com/technetwork/java/javase/documentation/index\-jsp\-135444.html .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html .TP 2 o .na diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 index 114b2138719..b9c445d6b80 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javah.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "14 Apr 2011" +.TH javah 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 index 99e6edfcb28..1854f9d552e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "14 Apr 2011" +.TH javap 1 "07 May 2011" .LP .SH "̾" @@ -33,7 +33,7 @@ javap \- Java .nf \f3 .fl -javap [ \fP\f3options\fP\f3 ] class. . . +javap [ \fP\f3options\fP\f3 ] classes .fl \fP .fi @@ -42,7 +42,20 @@ javap [ \fP\f3options\fP\f3 ] class. . . .SH "" .LP .LP -\f3javap\fP ޥɤϡ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤȤСΥ饹򥳥ѥ뤹Ȥޤ +\f3javap\fP ޥɤϡ1 ĤޤʣΥ饹եե֥뤷ޤνϤϻꤹ륪ץˤۤʤޤץꤷʤ硢\f3javap\fP ϡΥѥåϤ줿饹 protected public Υեɤȥ᥽åɤϤޤ\f3javap\fP ϤνϤɸϤɽޤ +.LP +.RS 3 +.TP 3 +options +ޥɹԥץ +.TP 3 +classes +νоݤȤʤ 1 İʾΥ饹 \f2DocFooter.class\fP ʤ) Υꥹ (ڤ)饹ѥǸĤ륯饹ϡե̾ ( \f2/home/user/myproject/src/DocFooter.class\fP ʤ) ޤ URL ( \f2file:///home/user/myproject/src/DocFooter.class\fP ʤ) ǻǤޤ +.RE + +.LP +.LP +ȤСΥ饹򥳥ѥ뤹Ȥޤ .LP .nf \f3 @@ -88,24 +101,24 @@ public class DocFooter extends Applet { .LP .LP -\f3javap DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ +\f3javap DocFooter.class\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + java.lang.String email; .fl - public DocFooter(); + public DocFooter(); .fl - public void init(); + public void init(); .fl - public void paint(java.awt.Graphics); + public void paint(java.awt.Graphics); .fl } .fl @@ -114,115 +127,117 @@ public class DocFooter extends java.applet.Applet { .LP .LP -\f3javap \-c DocFooter\fP ⤿餹ϤϼΤ褦ˤʤޤ +\f3javap \-c DocFooter.class\fP ⤿餹ϤϼΤ褦ˤʤޤ .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + .fl - public DocFooter(); + java.lang.String email; .fl - public void init(); + .fl - public void paint(java.awt.Graphics); + public DocFooter(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: invokespecial #1 // Method java/applet/Applet."":()V +.fl + 4: return +.fl + +.fl + public void init(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: sipush 500 +.fl + 4: bipush 100 +.fl + 6: invokevirtual #2 // Method resize:(II)V +.fl + 9: aload_0 +.fl + 10: aload_0 +.fl + 11: ldc #3 // String LAST_UPDATED +.fl + 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 16: putfield #5 // Field date:Ljava/lang/String; +.fl + 19: aload_0 +.fl + 20: aload_0 +.fl + 21: ldc #6 // String EMAIL +.fl + 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 26: putfield #7 // Field email:Ljava/lang/String; +.fl + 29: return +.fl + +.fl + public void paint(java.awt.Graphics); +.fl + Code: +.fl + 0: aload_1 +.fl + 1: new #8 // class java/lang/StringBuilder +.fl + 4: dup +.fl + 5: invokespecial #9 // Method java/lang/StringBuilder."":()V +.fl + 8: aload_0 +.fl + 9: getfield #5 // Field date:Ljava/lang/String; +.fl + 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 15: ldc #11 // String by +.fl + 17: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 20: invokevirtual #12 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; +.fl + 23: bipush 100 +.fl + 25: bipush 15 +.fl + 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 30: aload_1 +.fl + 31: aload_0 +.fl + 32: getfield #7 // Field email:Ljava/lang/String; +.fl + 35: sipush 290 +.fl + 38: bipush 15 +.fl + 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 43: return .fl } .fl - -.fl -Method DocFooter() -.fl - 0 aload_0 -.fl - 1 invokespecial #1 -.fl - 4 return -.fl - -.fl -Method void init() -.fl - 0 aload_0 -.fl - 1 sipush 500 -.fl - 4 bipush 100 -.fl - 6 invokevirtual #2 -.fl - 9 aload_0 -.fl - 10 aload_0 -.fl - 11 ldc #3 -.fl - 13 invokevirtual #4 -.fl - 16 putfield #5 -.fl - 19 aload_0 -.fl - 20 aload_0 -.fl - 21 ldc #6 -.fl - 23 invokevirtual #4 -.fl - 26 putfield #7 -.fl - 29 return -.fl - -.fl -Method void paint(java.awt.Graphics) -.fl - 0 aload_1 -.fl - 1 new #8 -.fl - 4 dup -.fl - 5 invokespecial #9 -.fl - 8 aload_0 -.fl - 9 getfield #5 -.fl - 12 invokevirtual #10 -.fl - 15 ldc #11 -.fl - 17 invokevirtual #10 -.fl - 20 invokevirtual #12 -.fl - 23 bipush 100 -.fl - 25 bipush 15 -.fl - 27 invokevirtual #13 -.fl - 30 aload_1 -.fl - 31 aload_0 -.fl - 32 getfield #7 -.fl - 35 sipush 290 -.fl - 38 bipush 15 -.fl - 40 invokevirtual #13 -.fl - 43 return -.fl \fP .fi @@ -284,22 +299,7 @@ http://java.sun.com/docs/books/vmspec/ ᥽åɤΥå \f2locals\fP \f2args\fP οϤޤ .TP 3 \-classpath path -\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤǥ쥯ȥϥʬ䤷ޤäơ\f2path\fP ΰ̷ϼΤ褦ˤʤޤ -.nf -\f3 -.fl - .: -.fl -\fP -.fi -򼨤ޤ -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi +\f3javap\fP 饹õ˻ѤѥꤷޤǥեȤޤ CLASSPATH Ķѿ񤭤ޤ .TP 3 \-bootclasspath path ֡ȥȥåץ饹ɤѥꤷޤ֡ȥȥåץ饹ϡǥեȤǤ \f2jre/lib/rt.jar\fP ¾ΤĤ JAR ե ˤ롢 Java 2 ץåȥե륯饹Ǥ @@ -308,22 +308,6 @@ http://java.sun.com/docs/books/vmspec/ 󥹥ȡ뤵줿ĥǽ򸡺򥪡С饤ɤޤĥǽϡǥեȤǤ \f2java.ext.dirs\fP ˤޤ .RE -.LP -.SH "Ķѿ" -.LP -.RS 3 -.TP 3 -CLASSPATH -桼饹ؤΥѥ򥷥ƥ˻ꤷޤǥ쥯ȥϥʬ䤷ޤ򼨤ޤ -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi -.RE - .LP .SH "Ϣ" .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 b/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 index 03d3349c7a0..500e6a7cba8 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/javaws.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2003, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "14 Apr 2011" +.TH javaws 1 "07 May 2011" .LP .SH "̾" @@ -81,7 +81,7 @@ Java Web Start \f2\-Xnosplash\fP .LP .LP -ǽΥץå̤ɽ̵ˤޤ +ץå̤ɽޤ .LP .LP \f2\-open \fP @@ -99,7 +99,7 @@ Java Web Start \f2\-online\fP .LP .LP -饤⡼ɤǼ¹Ԥޤ (ǥեȤư) +饤⡼ɤѤޤ (ǥեȤư) .LP .LP \f2\-wait\fP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 index 309fc14f41d..fc9c17c2a59 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jconsole.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "14 Apr 2011" +.TH jconsole 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 index 7c189369748..4904c9d8eab 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jdb.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "14 Apr 2011" +.TH jdb 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 index 57ff839ce47..666b25229d2 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jhat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "14 Apr 2011" +.TH jhat 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 index 14b6814173e..a1f639cfda9 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jinfo.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "14 Apr 2011" +.TH jinfo 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 index b3679c520fe..15ea13f6f2e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jmap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "14 Apr 2011" +.TH jmap 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 index 718cbdc8ef0..bcfb9bed82e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jps.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "14 Apr 2011" +.TH jps 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 index 70b527f7e45..3f83aa5c428 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jrunscript.1 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "14 Apr 2011" +.TH jrunscript 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 index 928334062e7..077543a2367 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jsadebugd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "14 Apr 2011" +.TH jsadebugd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 index a8b3c8f59ab..043a6fb72a3 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstack.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "14 Apr 2011" +.TH jstack 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 index 8b3e670a49d..07e724add93 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "14 Apr 2011" +.TH jstat 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 index af3fc39b9db..9eeffc439d9 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jstatd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "14 Apr 2011" +.TH jstatd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 b/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 index f31c622f479..25a29ca9610 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/jvisualvm.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2008, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jvisualvm 1 "14 Apr 2011" +.TH jvisualvm 1 "07 May 2011" .LP .SH "̾" @@ -110,7 +110,7 @@ o .na \f2Java VisualVM ȯԤΥ\fP @ .fi -https://visualvm.dev.java.net +http://visualvm.java.net .TP 2 o .na diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 index e9701dd73ad..14fce24c607 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998-2010 keytool tool, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2011 keytool tool, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "14 Apr 2011" +.TH keytool 1 "07 May 2011" .LP .SH "̾" @@ -1087,9 +1087,9 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht .fl keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl - \-alias business \-keypass kpi135 \-keystore /working/mykeystore + \-alias business \-keypass \fP\f4<οѥ>\fP\f3 \-keystore /working/mykeystore .fl - \-storepass ab987c \-validity 180 + \-storepass \fP\f4<ȥοѥ>\fP\f3 \-validity 180 .fl \fP .fi @@ -1099,10 +1099,10 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht : Υޥɤ 1 ԤϤʤФʤޤʣԤϤƤΤɤߤ䤹뤿Ǥ .LP .LP -Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥ˥ѥ ab987c ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ +Ǥϡworking ǥ쥯ȥ mykeystore Ȥ̾Υȥ (ȥϤޤ¸ߤƤʤȲꤹ)ȥˡ\f2<ȥοѥ>\fP ǻꤷѥ ƤޤΥڥб륨ƥƥΡּ̾פϡ̾ΤMark Jonesסȿñ̤JavaסȿOracleס2 ʸιֹ椬USפǤΥϤɤ 1024 ӥåȤǡκˤϥǥեȤ DSA 르ꥺѤޤ .LP .LP -Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϥѥɡkpi135פƤޤ +Υޥɤϡȼ̾ޤ༫ʽ̾ (ǥեȤ SHA1withDSA ̾르ꥺ) ޤ֤ͭ 180 Ǥ ϡ̾businessפꤵ륭ȥȥ˴Ϣդޤˤϡ\f2<οѥ>\fP ǻꤷѥɤƤޤ .LP .LP ץΥǥեͤȤϡ˼ޥɤû뤳ȤǤޤºݤˤϡץ 1 Ĥꤻ˥ޥɤ¹Ԥ뤳ȤǽǤ ǥեͤĥץǤϡץꤷʤХǥեͤȤ졢ɬפͤˤĤƤϤޤȤСñ˼Τ褦Ϥ뤳ȤǤޤ @@ -1120,7 +1120,7 @@ http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.ht ξϡmykey Ȥ̾ǥȥȥ꤬졢줿Υڥ 90 ͭʾ񤬤Υȥ˳ǼޤΥȥϡۡǥ쥯ȥ .keystore Ȥ̾Υȥ֤ޤΥȥޤ¸ߤƤʤϡޤ̾󡢥ȥΥѥɡΥѥɤˤĤƤϡϤޤ .LP .LP -ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤСΥѥɤˤ kpi135 Ȼ) +ʲǤϡץꤷʤ \f2\-genkeypair\fP ޥɤ¹ԤΤȤ򼨤ޤϤ줿ϡǽ˼ \f2\-genkeypair\fP ޥɤͤϤΤȤޤ (ȤС̾ˤ cn=Mark Jones, ou=Java, o=Oracle, c=US Ȼ) .LP .SS ȯԶɤФ̾դ׵ @@ -1240,14 +1240,14 @@ CA .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<ȥΥѥ>\fP\f3 \-deststorepass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \fP .fi .LP .LP -ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤСץץȤΤޤäɽʤ \f3keytool\fP ޥɤȯԤǤޤϡ\f3keytool\fP ޥɤ򥹥ץȥե˴ޤݤǤ򼨤ޤ +ޤimportkeystore ޥɤȤС륽ȥñΥȥ򥿡åȥȥ˥ݡȤ뤳ȤǤޤξ硢嵭Ǽץ˲äݡоݤȤʤ̾ꤹɬפޤsrcalias ץꤹˤϡå̾⥳ޥɹԤǤ̩ۤ/ݸѥѥɤ䥿åݸѥѥɤǤޤˡ򼨤ޥɤ򼡤˼ޤ .LP .nf \f3 @@ -1258,11 +1258,11 @@ CA .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<ȥΥѥ>\fP\f3 \-deststorepass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \-srcalias myprivatekey \-destalias myoldprivatekey .fl - \-srckeypass oldkeypass \-destkeypass mynewkeypass + \-srckeypass \fP\f4<ȥΥѥ>\fP\f3 \-destkeypass \fP\f4<åȥȥΥѥ>\fP\f3 .fl \-noprompt .fl @@ -1711,7 +1711,7 @@ CN=Steve Meier, OU=Java, O=Oracle, C=US : ǤȤƾ򥤥ݡȤˡƤ򿵽ŤĴ٤Ƥ .LP .LP -ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ +ޤƤɽ (\-printcert ޥɤѤ뤫ޤ \-noprompt ץꤷʤ \-importcert ޥɤ) ޥɤѤ ɽ줿Υե󥬡ץȤԤե󥬡ץȤȰפ뤫ɤǧޤȤС桼Ƥơξ /tmp/cert Ȥ̾ǥե˳ǼƤȤޤ ξϡǤΥꥹȤˤξɲäˡ \f2\-printcert\fP ޥɤ¹Ԥƥե󥬡ץȤɽǤޤȤСΤ褦ˤޤ .LP .nf \f3 @@ -1744,7 +1744,7 @@ CN=Steve Meier, OU=Java, O=Oracle, C=US ˡʪϢοʪ󼨤ե󥬡ץȤȡΥޥɤɽ줿ե󥬡ץȤȤӤޤե󥬡ץȤפСǤۤβԤ (Ԥʤ) ˤΤؤԤƤʤȤǧǤޤǤμι⤬ԤƤ硢åԤ鷺˾򥤥ݡȤȡԤˤäƽ̾줿٤ƤΤ (Ūտޤĥ饹եޤ JAR եʤ) ꤹ뤳Ȥˤʤޤ .LP .LP -: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ +: 򥤥ݡȤɬ \f2\-printcert\fP ޥɤ¹ԤʤФʤʤ櫓ǤϤޤ󡣥ȥοǤΥꥹȤ˾ɲä \f2\-importcert\fP ޥɤ¹Ԥȡξɽ졢ǧåɽޤݡϡλߤǤޤǧåɽΤϡ\-importcert ޥɤ \-noprompt ץꤻ˼¹ԤǤ ޥɤѤ \f2\-noprompt\fP ץ󤬻ꤵƤ硢桼ȤäϹԤޤ .LP .SS ѥɤ˴ؤջ diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 b/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 index 6e775392b92..89b6f6c3be4 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "14 Apr 2011" +.TH native2ascii 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 b/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 index b6485a6e714..b78927f5655 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/orbd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "14 Apr 2011" +.TH orbd 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 b/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 index 74886e8d950..b1bb4f0fe03 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/pack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "14 Apr 2011" +.TH pack200 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 index ee5b9c7dbff..b3de7eca294 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/policytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "14 Apr 2011" +.TH policytool 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 index bef409008e5..621cde4c028 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmic.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "14 Apr 2011" +.TH rmic 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 index 232cf1ad050..e229fbf1cdc 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmid.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "14 Apr 2011" +.TH rmid 1 "07 May 2011" .LP .SH "̾" @@ -121,7 +121,7 @@ o .LP .LP -ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris) ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ +ɬפ˱ƥӥ򳫻Ϥ褦ꤹܺ٤ˤĤƤϡ \f2inetd\fP (Solaris ξ)ޤ \f2xinetd\fP (Linux) Υޥ˥奢ڡ򻲾ȤƤ .LP .SH "ץ" .LP @@ -239,7 +239,7 @@ grant { .fl \fP .fi -ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥ ( \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ +ǽͿƤ륢ϡ \f2rmid\fP Фѥ̾ˤŪ˻ꤵ \f2java\fP ޥɤ 1.7.0 Сμ¹ԤĤޤǥեȤǤϡjava.home ˤС \f2java\fP ޥɤѤޤ \f2rmid\fP ѤΤƱС) Ѥ뤿ᡢΥޥɤϡݥꥷեǻꤹɬפϤޤ2 ܤΥϡ \f2rmid\fP Фơǥ쥯ȥ \f2/files/apps/rmidcmds\fP ǤդΥޥɤμ¹Ը¤Ĥޤ .LP 3 ܤͿƤ륢 \f2ExecOptionPermission\fP ϡ \f2rmid\fP Фơƥݥꥷե \f2/files/policies/group.policy\fP ȤƤ뵯ư롼פγϤĤޤΥϡư롼פ \f2java.security.debug\fP ץѥƥѤ뤳ȤĤƤޤǸΥϡư롼פ \f2sun.rmi\fP Ȥץѥƥ̾γǤդΥץѥƥѤ뤳ȤĤƤޤ .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 b/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 index 864ccc78375..264c3c1cfa6 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/rmiregistry.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "14 Apr 2011" +.TH rmiregistry 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 b/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 index b9cb1a27c65..cb86632a14a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/schemagen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "14 Apr 2011" +.TH schemagen 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 b/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 index 4929593320c..e06b12e9de1 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/serialver.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "14 Apr 2011" +.TH serialver 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 b/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 index 1cb919bca17..2e8fc6d97e3 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/servertool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "14 Apr 2011" +.TH servertool 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 b/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 index 216075e37ec..229c3af8300 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/tnameserv.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1999, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "14 Apr 2011" +.TH tnameserv 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 b/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 index c5f12136430..96a85d8105e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/unpack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "14 Apr 2011" +.TH unpack200 1 "07 May 2011" .LP .SH "̾" diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 b/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 index 2a3bc5874eb..c85556ee16f 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/wsgen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "14 Apr 2011" +.TH wsgen 1 "07 May 2011" .SH "̾" wsgen \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 b/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 index ff5301792d8..a09204e86ba 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/wsimport.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "14 Apr 2011" +.TH wsimport 1 "07 May 2011" .SH "̾" wsimport \- XML Web Services (JAX\-WS) 2.0 Τ Java(TM) API .LP @@ -818,7 +818,7 @@ https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html .ll \n(34u*1u/3u .if \n(.l<\n(81 .ll \n(81u .in 0 -ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://username:password@example.org/stock?wsdl +ǧھޤեꤹ WSDL URI Ǥ URI ηϼΤȤǤ http://\f2<桼̾>\fP:\f2<ѥ>\fP@\f2<ۥ̾>\fP/\f2\fP?wsdl .br .di .nr b| \n(dn @@ -1057,10 +1057,10 @@ W3C \f2EndpointReferenceType\fP .nf \f3 .fl -\fP\f3wsimport \-p stockquote http://stockquote.xyz/quote?wsdl\fP +\fP\f3wsimport \-p stockquote http://stockquote.example.com/quote?wsdl\fP .fl .fi .LP -Java ƥեȤ \f2http://stockquote.xyz/quote?wsdl\fP 򥤥ݡȤ뤳ȤǡΥƥեȤ򥳥ѥ뤷ޤ +Java ƥեȤ \f2http://stockquote.example.com/quote?wsdl\fP 򥤥ݡȤƤ Java ƥեȤ򥳥ѥ뤷ޤ .br diff --git a/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 b/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 index 7aec40218aa..0b3baf84f0a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/ja/xjc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "14 Apr 2011" +.TH xjc 1 "07 May 2011" .LP .ad c From 66230b488edaa1a2b6fc231552e060650c9ac3a8 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 13:08:08 -0700 Subject: [PATCH 135/147] 7042323: [sv, de, es, it] Print dialog has duplicate mnemonic key Reviewed-by: yhuang --- .../print/resources/serviceui_de.properties | 22 +++++----- .../print/resources/serviceui_es.properties | 16 ++++---- .../print/resources/serviceui_it.properties | 6 +-- .../print/resources/serviceui_sv.properties | 40 +++++++++---------- 4 files changed, 42 insertions(+), 42 deletions(-) diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_de.properties b/jdk/src/share/classes/sun/print/resources/serviceui_de.properties index 15e5b6c706e..b89af429b2e 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_de.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_de.properties @@ -18,11 +18,11 @@ button.properties=Eigenschaften... button.properties.mnemonic=I # checkbox.collate=Sortieren -checkbox.collate.mnemonic=S +checkbox.collate.mnemonic=R checkbox.jobsheets=Bannerseite checkbox.jobsheets.mnemonic=B checkbox.printtofile=Ausgabe in Datei -checkbox.printtofile.mnemonic=D +checkbox.printtofile.mnemonic=U # dialog.printtitle=Drucken dialog.pstitle=Seite einrichten @@ -44,18 +44,18 @@ label.psname.mnemonic=N label.pstype=Typ: label.rangeto=Bis label.size=Gr\u00F6\u00DFe: -label.size.mnemonic=R +label.size.mnemonic=E label.source=Quelle: -label.source.mnemonic=Q +label.source.mnemonic=U label.status=Status: label.username=Benutzername: -label.username.mnemonic=B +label.username.mnemonic=U label.millimetres=(mm) label.inches=(Zoll) label.topmargin=oben label.topmargin.mnemonic=O label.bottommargin=unten -label.bottommargin.mnemonic=U +label.bottommargin.mnemonic=N label.leftmargin=links label.leftmargin.mnemonic=L label.rightmargin=rechts @@ -66,7 +66,7 @@ radiobutton.color.mnemonic=F radiobutton.draftq=Entwurf radiobutton.draftq.mnemonic=W radiobutton.duplex=Duplex -radiobutton.duplex.mnemonic=D +radiobutton.duplex.mnemonic=P radiobutton.highq=Hoch radiobutton.highq.mnemonic=H radiobutton.landscape=Querformat @@ -78,15 +78,15 @@ radiobutton.normalq.mnemonic=N radiobutton.oneside=Einseitig radiobutton.oneside.mnemonic=E radiobutton.portrait=Hochformat -radiobutton.portrait.mnemonic=M +radiobutton.portrait.mnemonic=H radiobutton.rangeall=Alle radiobutton.rangeall.mnemonic=L radiobutton.rangepages=Seiten radiobutton.rangepages.mnemonic=E radiobutton.revlandscape=Umgekehrtes Querformat -radiobutton.revlandscape.mnemonic=U +radiobutton.revlandscape.mnemonic=M radiobutton.revportrait=Umgekehrtes Hochformat -radiobutton.revportrait.mnemonic=H +radiobutton.revportrait.mnemonic=K radiobutton.tumble=Kalenderdruck radiobutton.tumble.mnemonic=K # The vkMnemonics correspond with the constants defined in KeyEvent, eg @@ -96,7 +96,7 @@ tab.appearance.vkMnemonic=68 tab.general=Allgemein tab.general.vkMnemonic=65 tab.pagesetup=Seite einrichten -tab.pagesetup.vkMnemonic=69 +tab.pagesetup.vkMnemonic=83 # error.pagerange=Ung\u00FCltiger Seitenbereich. Geben Sie die Werte erneut ein (Beispiel: 1-3,5,7-10) error.destination=Ung\u00FCltiger Dateiname. Wiederholen Sie den Vorgang diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_es.properties b/jdk/src/share/classes/sun/print/resources/serviceui_es.properties index 4e6cf1c6eb0..ddca5ab9e01 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_es.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_es.properties @@ -20,7 +20,7 @@ button.properties.mnemonic=R checkbox.collate=Intercalar checkbox.collate.mnemonic=C checkbox.jobsheets=P\u00E1gina de R\u00F3tulo -checkbox.jobsheets.mnemonic=L +checkbox.jobsheets.mnemonic=E checkbox.printtofile=Imprimir en Archivo checkbox.printtofile.mnemonic=M # @@ -34,7 +34,7 @@ dialog.writeerror=No se puede escribir en el archivo: # label.info=Informaci\u00F3n: label.jobname=Nombre del Trabajo: -label.jobname.mnemonic=N +label.jobname.mnemonic=T label.numcopies=N\u00FAmero de Copias: label.numcopies.mnemonic=O label.priority=Prioridad: @@ -44,12 +44,12 @@ label.psname.mnemonic=N label.pstype=Tipo: label.rangeto=A label.size=Tama\u00F1o: -label.size.mnemonic=\ +label.size.mnemonic=T label.source=Origen: -label.source.mnemonic=G +label.source.mnemonic=O label.status=Estado: label.username=Usuario: -label.username.mnemonic=U +label.username.mnemonic=S label.millimetres=(mm) label.inches=(pulg.) label.topmargin=superior @@ -68,7 +68,7 @@ radiobutton.draftq.mnemonic=R radiobutton.duplex=D\u00FAplex radiobutton.duplex.mnemonic=D radiobutton.highq=Alta -radiobutton.highq.mnemonic=A +radiobutton.highq.mnemonic=L radiobutton.landscape=Horizontal radiobutton.landscape.mnemonic=Z radiobutton.monochrome=Monocromo @@ -76,7 +76,7 @@ radiobutton.monochrome.mnemonic=M radiobutton.normalq=Normal radiobutton.normalq.mnemonic=N radiobutton.oneside=Una Cara -radiobutton.oneside.mnemonic=R +radiobutton.oneside.mnemonic=U radiobutton.portrait=Vertical radiobutton.portrait.mnemonic=V radiobutton.rangeall=Todo @@ -86,7 +86,7 @@ radiobutton.rangepages.mnemonic=G radiobutton.revlandscape=Horizontal Inverso radiobutton.revlandscape.mnemonic=H radiobutton.revportrait=Vertical Inverso -radiobutton.revportrait.mnemonic=S +radiobutton.revportrait.mnemonic=R radiobutton.tumble=Cambio de Cara radiobutton.tumble.mnemonic=B # The vkMnemonics correspond with the constants defined in KeyEvent, eg diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_it.properties b/jdk/src/share/classes/sun/print/resources/serviceui_it.properties index 1807a447ce3..e23da1c57ec 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_it.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_it.properties @@ -20,7 +20,7 @@ button.properties.mnemonic=R checkbox.collate=Fascicola checkbox.collate.mnemonic=L checkbox.jobsheets=Pagina banner -checkbox.jobsheets.mnemonic=B +checkbox.jobsheets.mnemonic=P checkbox.printtofile=Stampa su file checkbox.printtofile.mnemonic=F # @@ -38,7 +38,7 @@ label.jobname.mnemonic=J label.numcopies=Numero di copie: label.numcopies.mnemonic=O label.priority=Priorit\u00E0: -label.priority.mnemonic=R +label.priority.mnemonic=I label.psname=Nome: label.psname.mnemonic=N label.pstype=Tipo: @@ -72,7 +72,7 @@ radiobutton.highq.mnemonic=L radiobutton.landscape=Orizzontale radiobutton.landscape.mnemonic=L radiobutton.monochrome=Monocromatico -radiobutton.monochrome.mnemonic=A +radiobutton.monochrome.mnemonic=M radiobutton.normalq=Normale radiobutton.normalq.mnemonic=N radiobutton.oneside=Un lato diff --git a/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties b/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties index 1a6bd053693..859c0494610 100644 --- a/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties +++ b/jdk/src/share/classes/sun/print/resources/serviceui_sv.properties @@ -15,14 +15,14 @@ button.cancel=Avbryt button.ok=OK button.print=Skriv ut button.properties=Egenskaper... -button.properties.mnemonic=E +button.properties.mnemonic=R # checkbox.collate=Sortera -checkbox.collate.mnemonic=S +checkbox.collate.mnemonic=T checkbox.jobsheets=F\u00F6rs\u00E4ttsblad -checkbox.jobsheets.mnemonic=F +checkbox.jobsheets.mnemonic=R checkbox.printtofile=Skriv ut till fil -checkbox.printtofile.mnemonic=F +checkbox.printtofile.mnemonic=K # dialog.printtitle=Skriv ut dialog.pstitle=Utskriftsformat @@ -33,38 +33,38 @@ dialog.noprintermsg=Hittade ingen utskriftstj\u00E4nst. dialog.writeerror=Kan inte skriva till filen: # label.info=Information: -label.jobname=Jobbnamn -label.jobname.mnemonic=J -label.numcopies=Antal exemplar +label.jobname=Utskrift: +label.jobname.mnemonic=U +label.numcopies=Antal exemplar: label.numcopies.mnemonic=E -label.priority=Prioritet +label.priority=Prioritet: label.priority.mnemonic=R label.psname=Namn: label.psname.mnemonic=N label.pstype=Typ: label.rangeto=Till label.size=Storlek: -label.size.mnemonic=L -label.source=K\u00E4lla -label.source.mnemonic=L +label.size.mnemonic=O +label.source=K\u00E4lla: +label.source.mnemonic=K label.status=Status: label.username=Anv\u00E4ndarnamn: label.username.mnemonic=N label.millimetres=(mm) label.inches=(tum) label.topmargin=\u00F6verkant -label.topmargin.mnemonic=\ +label.topmargin.mnemonic=R label.bottommargin=nederkant label.bottommargin.mnemonic=N label.leftmargin=v\u00E4nster -label.leftmargin.mnemonic=\ +label.leftmargin.mnemonic=V label.rightmargin=h\u00F6ger label.rightmargin.mnemonic=H # radiobutton.color=F\u00E4rg -radiobutton.color.mnemonic=F +radiobutton.color.mnemonic=G radiobutton.draftq=Utkast -radiobutton.draftq.mnemonic=S +radiobutton.draftq.mnemonic=K radiobutton.duplex=Dubbelsidig radiobutton.duplex.mnemonic=D radiobutton.highq=H\u00F6g @@ -74,19 +74,19 @@ radiobutton.landscape.mnemonic=L radiobutton.monochrome=Monokrom radiobutton.monochrome.mnemonic=M radiobutton.normalq=Normal -radiobutton.normalq.mnemonic=N +radiobutton.normalq.mnemonic=O radiobutton.oneside=Ensidig radiobutton.oneside.mnemonic=E radiobutton.portrait=St\u00E5ende -radiobutton.portrait.mnemonic=S +radiobutton.portrait.mnemonic=D radiobutton.rangeall=Alla radiobutton.rangeall.mnemonic=L radiobutton.rangepages=Sidor -radiobutton.rangepages.mnemonic=O +radiobutton.rangepages.mnemonic=D radiobutton.revlandscape=Omv\u00E4nt liggande radiobutton.revlandscape.mnemonic=G radiobutton.revportrait=Omv\u00E4nt st\u00E5ende -radiobutton.revportrait.mnemonic=D +radiobutton.revportrait.mnemonic=M radiobutton.tumble=V\u00E4nd radiobutton.tumble.mnemonic=V # The vkMnemonics correspond with the constants defined in KeyEvent, eg @@ -96,7 +96,7 @@ tab.appearance.vkMnemonic=70 tab.general=Allm\u00E4nt tab.general.vkMnemonic=65 tab.pagesetup=Utskriftsformat -tab.pagesetup.vkMnemonic=70 +tab.pagesetup.vkMnemonic=83 # error.pagerange=Ogiltigt sidintervall. Skriv in v\u00E4rdena igen (t ex 1-3,5,7-10) error.destination=Ogiltigt filnamn. F\u00F6rs\u00F6k igen. From 2fbd14ee6989a30fc3331ba838826359cf548ad0 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 14:47:10 -0700 Subject: [PATCH 136/147] 7028447: security-related resources Chinese translation errors Reviewed-by: weijun --- .../tools/JarSignerResources_zh_CN.java | 22 ++++----- .../sun/security/util/Resources_zh_CN.java | 48 ++++++++----------- 2 files changed, 27 insertions(+), 43 deletions(-) diff --git a/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java b/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java index acd854edfae..48b6c7303dd 100644 --- a/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java +++ b/jdk/src/share/classes/sun/security/tools/JarSignerResources_zh_CN.java @@ -53,9 +53,9 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { {"If.keystore.is.not.password.protected.then.storepass.and.keypass.must.not.be.specified", "\u5982\u679C\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -storepass \u548C -keypass"}, {"Usage.jarsigner.options.jar.file.alias", - "\u7528\u6CD5: jarsigner [\u9009\u9879] jar \u6587\u4EF6\u522B\u540D"}, + "\u7528\u6CD5: jarsigner [\u9009\u9879] jar\u6587\u4EF6 \u522B\u540D"}, {".jarsigner.verify.options.jar.file.alias.", - " jarsigner -verify [options] jar-file [alias...]"}, + " jarsigner -verify [\u9009\u9879] jar\u6587\u4EF6 [\u522B\u540D...]"}, {".keystore.url.keystore.location", "[-keystore ] \u5BC6\u94A5\u5E93\u4F4D\u7F6E"}, {".storepass.password.password.for.keystore.integrity", @@ -65,7 +65,7 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { {".keypass.password.password.for.private.key.if.different.", "[-keypass <\u53E3\u4EE4>] \u79C1\u6709\u5BC6\u94A5\u7684\u53E3\u4EE4 (\u5982\u679C\u4E0D\u540C)"}, {".certchain.file.name.of.alternative.certchain.file", - "[-certchain ] \u66FF\u4EE3 certchain \u6587\u4EF6\u7684\u540D\u79F0"}, + "[-certchain <\u6587\u4EF6>] \u66FF\u4EE3\u8BC1\u4E66\u94FE\u6587\u4EF6\u7684\u540D\u79F0"}, {".sigfile.file.name.of.SF.DSA.file", "[-sigfile <\u6587\u4EF6>] .SF/.DSA \u6587\u4EF6\u7684\u540D\u79F0"}, {".signedjar.file.name.of.signed.JAR.file", @@ -74,12 +74,10 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { "[-digestalg <\u7B97\u6CD5>] \u6458\u8981\u7B97\u6CD5\u7684\u540D\u79F0"}, {".sigalg.algorithm.name.of.signature.algorithm", "[-sigalg <\u7B97\u6CD5>] \u7B7E\u540D\u7B97\u6CD5\u7684\u540D\u79F0"}, - {".crl.auto.file.include.CRL.in.signed.jar", - "[-crl[:auto| ] \u5728\u5DF2\u7B7E\u540D\u7684 jar \u4E2D\u5305\u542B CRL"}, {".verify.verify.a.signed.JAR.file", "[-verify] \u9A8C\u8BC1\u5DF2\u7B7E\u540D\u7684 JAR \u6587\u4EF6"}, {".verbose.suboptions.verbose.output.when.signing.verifying.", - "[-verbose[:suboptions]] \u7B7E\u540D/\u9A8C\u8BC1\u65F6\u8F93\u51FA\u8BE6\u7EC6\u4FE1\u606F\u3002"}, + "[-verbose[:\u5B50\u9009\u9879]] \u7B7E\u540D/\u9A8C\u8BC1\u65F6\u8F93\u51FA\u8BE6\u7EC6\u4FE1\u606F\u3002"}, {".suboptions.can.be.all.grouped.or.summary", " \u5B50\u9009\u9879\u53EF\u4EE5\u662F all, grouped \u6216 summary"}, {".certs.display.certificates.when.verbose.and.verifying", @@ -108,7 +106,7 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { "[-strict] \u5C06\u8B66\u544A\u89C6\u4E3A\u9519\u8BEF"}, {"Option.lacks.argument", "\u9009\u9879\u7F3A\u5C11\u53C2\u6570"}, {"Please.type.jarsigner.help.for.usage", "\u8BF7\u952E\u5165 jarsigner -help \u4EE5\u4E86\u89E3\u7528\u6CD5"}, - {"Please.specify.jarfile.name", "\u8BF7\u6307\u5B9A jarfile \u540D\u79F0"}, + {"Please.specify.jarfile.name", "\u8BF7\u6307\u5B9A jar \u6587\u4EF6\u7684\u540D\u79F0"}, {"Please.specify.alias.name", "\u8BF7\u6307\u5B9A\u522B\u540D"}, {"Only.one.alias.can.be.specified", "\u53EA\u80FD\u6307\u5B9A\u4E00\u4E2A\u522B\u540D"}, {"This.jar.contains.signed.entries.which.is.not.signed.by.the.specified.alias.es.", @@ -159,7 +157,7 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { {"File.specified.by.certchain.does.not.exist", "\u7531 -certchain \u6307\u5B9A\u7684\u6587\u4EF6\u4E0D\u5B58\u5728"}, {"Cannot.restore.certchain.from.file.specified", - "\u65E0\u6CD5\u4ECE\u6307\u5B9A\u7684\u6587\u4EF6\u8FD8\u539F certchain"}, + "\u65E0\u6CD5\u4ECE\u6307\u5B9A\u7684\u6587\u4EF6\u8FD8\u539F\u8BC1\u4E66\u94FE"}, {"Certificate.chain.not.found.in.the.file.specified.", "\u5728\u6307\u5B9A\u7684\u6587\u4EF6\u4E2D\u627E\u4E0D\u5230\u8BC1\u4E66\u94FE\u3002"}, {"found.non.X.509.certificate.in.signer.s.chain", @@ -183,17 +181,13 @@ public class JarSignerResources_zh_CN extends java.util.ListResourceBundle { {"TSA.location.", "TSA \u4F4D\u7F6E: "}, {"TSA.certificate.", "TSA \u8BC1\u4E66: "}, {"no.response.from.the.Timestamping.Authority.", - "\u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u6CA1\u6709\u54CD\u5E94\u3002"}, - {"When.connecting.from.behind.a.firewall.then.an.HTTP.proxy.may.need.to.be.specified.", - "\u5982\u679C\u8981\u4ECE\u9632\u706B\u5899\u540E\u9762\u8FDE\u63A5, \u5219\u53EF\u80FD\u9700\u8981\u6307\u5B9A HTTP \u4EE3\u7406\u3002 "}, - {"Supply.the.following.options.to.jarsigner.", - "\u8BF7\u4E3A jarsigner \u63D0\u4F9B\u4EE5\u4E0B\u9009\u9879: "}, + "\u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u6CA1\u6709\u54CD\u5E94\u3002\u5982\u679C\u8981\u4ECE\u9632\u706B\u5899\u540E\u9762\u8FDE\u63A5, \u5219\u53EF\u80FD\u9700\u8981\u6307\u5B9A HTTP \u6216 HTTPS \u4EE3\u7406\u3002\u8BF7\u4E3A jarsigner \u63D0\u4F9B\u4EE5\u4E0B\u9009\u9879: "}, + {"or", "\u6216"}, {"Certificate.not.found.for.alias.alias.must.reference.a.valid.KeyStore.entry.containing.an.X.509.public.key.certificate.for.the", "\u627E\u4E0D\u5230{0}\u7684\u8BC1\u4E66\u3002{1}\u5FC5\u987B\u5F15\u7528\u5305\u542B\u65F6\u95F4\u6233\u9881\u53D1\u673A\u6784\u7684 X.509 \u516C\u5171\u5BC6\u94A5\u8BC1\u4E66\u7684\u6709\u6548 KeyStore \u6761\u76EE\u3002"}, {"using.an.alternative.signing.mechanism", "\u6B63\u5728\u4F7F\u7528\u66FF\u4EE3\u7684\u7B7E\u540D\u673A\u5236"}, {"entry.was.signed.on", "\u6761\u76EE\u7684\u7B7E\u540D\u65E5\u671F\u4E3A {0}"}, - {"with.a.CRL.including.d.entries", "\u5177\u6709\u5305\u542B %d \u4E2A\u6761\u76EE\u7684 CRL"}, {"Warning.", "\u8B66\u544A: "}, {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.", "\u6B64 jar \u5305\u542B\u5C1A\u672A\u8FDB\u884C\u5B8C\u6574\u6027\u68C0\u67E5\u7684\u672A\u7B7E\u540D\u6761\u76EE\u3002 "}, diff --git a/jdk/src/share/classes/sun/security/util/Resources_zh_CN.java b/jdk/src/share/classes/sun/security/util/Resources_zh_CN.java index ddf76cd71b5..fa4f7a4fec9 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_zh_CN.java +++ b/jdk/src/share/classes/sun/security/util/Resources_zh_CN.java @@ -47,7 +47,8 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [\u9009\u9879]..."}, {"Options.", "\u9009\u9879:"}, {"Use.keytool.help.for.all.available.commands", "\u4F7F\u7528 \"keytool -help\" \u83B7\u53D6\u6240\u6709\u53EF\u7528\u547D\u4EE4"}, @@ -67,8 +68,9 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { "\u5BFC\u51FA\u8BC1\u4E66"}, //-exportcert {"Generates.a.key.pair", "\u751F\u6210\u5BC6\u94A5\u5BF9"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", - "\u751F\u6210\u5BC6\u94A5"}, //-genseckey + "\u751F\u6210\u5BF9\u79F0\u5BC6\u94A5"}, //-genseckey {"Generates.certificate.from.a.certificate.request", "\u6839\u636E\u8BC1\u4E66\u8BF7\u6C42\u751F\u6210\u8BC1\u4E66"}, //-gencert {"Generates.CRL", "\u751F\u6210 CRL"}, //-gencrl @@ -187,7 +189,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Cannot.find.file.", "\u627E\u4E0D\u5230\u6587\u4EF6: "}, {"Command.option.flag.needs.an.argument.", "\u547D\u4EE4\u9009\u9879{0}\u9700\u8981\u4E00\u4E2A\u53C2\u6570\u3002"}, {"Warning.Different.store.and.key.passwords.not.supported.for.PKCS12.KeyStores.Ignoring.user.specified.command.value.", - "\u8B66\u544A: PKCS12 KeyStores \u4E0D\u652F\u6301\u5176\u4ED6\u5B58\u50A8\u548C\u5BC6\u94A5\u53E3\u4EE4\u3002\u6B63\u5728\u5FFD\u7565\u7528\u6237\u6307\u5B9A\u7684{0}\u503C\u3002"}, + "\u8B66\u544A: PKCS12 KeyStore \u4E0D\u652F\u6301\u5176\u4ED6\u5B58\u50A8\u548C\u5BC6\u94A5\u53E3\u4EE4\u3002\u6B63\u5728\u5FFD\u7565\u7528\u6237\u6307\u5B9A\u7684{0}\u503C\u3002"}, {".keystore.must.be.NONE.if.storetype.is.{0}", "\u5982\u679C -storetype \u4E3A {0}, \u5219 -keystore \u5FC5\u987B\u4E3A NONE"}, {"Too.many.retries.program.terminated", @@ -208,13 +210,13 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { "\u5982\u679C\u6E90\u5BC6\u94A5\u5E93\u672A\u53D7\u53E3\u4EE4\u4FDD\u62A4, \u5219\u4E0D\u80FD\u6307\u5B9A -srcstorepass \u548C -srckeypass"}, {"Illegal.startdate.value", "\u975E\u6CD5\u5F00\u59CB\u65E5\u671F\u503C"}, {"Validity.must.be.greater.than.zero", - "\u6709\u6548\u6027\u5FC5\u987B\u5927\u4E8E\u96F6"}, + "\u6709\u6548\u671F\u5FC5\u987B\u5927\u4E8E\u96F6"}, {"provName.not.a.provider", "{0}\u4E0D\u662F\u63D0\u4F9B\u65B9"}, {"Usage.error.no.command.provided", "\u7528\u6CD5\u9519\u8BEF: \u6CA1\u6709\u63D0\u4F9B\u547D\u4EE4"}, {"Source.keystore.file.exists.but.is.empty.", "\u6E90\u5BC6\u94A5\u5E93\u6587\u4EF6\u5B58\u5728, \u4F46\u4E3A\u7A7A: "}, {"Please.specify.srckeystore", "\u8BF7\u6307\u5B9A -srckeystore"}, {"Must.not.specify.both.v.and.rfc.with.list.command", - "\u4E0D\u80FD\u4F7F\u7528 'list' \u547D\u4EE4\u6765\u6307\u5B9A -v \u53CA -rfc"}, + "'list' \u547D\u4EE4\u4E0D\u80FD\u540C\u65F6\u6307\u5B9A -v \u53CA -rfc"}, {"Key.password.must.be.at.least.6.characters", "\u5BC6\u94A5\u53E3\u4EE4\u81F3\u5C11\u5FC5\u987B\u4E3A 6 \u4E2A\u5B57\u7B26"}, {"New.password.must.be.at.least.6.characters", @@ -244,7 +246,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Warning.Overwriting.existing.alias.alias.in.destination.keystore", "\u8B66\u544A: \u6B63\u5728\u8986\u76D6\u76EE\u6807\u5BC6\u94A5\u5E93\u4E2D\u7684\u73B0\u6709\u522B\u540D {0}"}, {"Existing.entry.alias.alias.exists.overwrite.no.", - "\u5B58\u5728\u73B0\u6709\u6761\u76EE\u522B\u540D {0}, \u662F\u5426\u8986\u76D6? [\u5426]: "}, + "\u5B58\u5728\u73B0\u6709\u6761\u76EE\u522B\u540D {0}, \u662F\u5426\u8986\u76D6? [no]: "}, {"Too.many.failures.try.later", "\u6545\u969C\u592A\u591A - \u8BF7\u7A0D\u540E\u518D\u8BD5"}, {"Certification.request.stored.in.file.filename.", "\u5B58\u50A8\u5728\u6587\u4EF6 <{0}> \u4E2D\u7684\u8BA4\u8BC1\u8BF7\u6C42"}, @@ -304,8 +306,6 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Certificate.chain.length.", "\u8BC1\u4E66\u94FE\u957F\u5EA6: "}, {"Certificate.i.1.", "\u8BC1\u4E66[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "\u8BC1\u4E66\u6307\u7EB9 (SHA1): "}, - {"Entry.type.trustedCertEntry.", "\u6761\u76EE\u7C7B\u578B: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "\u5BC6\u94A5\u5E93\u7C7B\u578B: "}, {"Keystore.provider.", "\u5BC6\u94A5\u5E93\u63D0\u4F9B\u65B9: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -325,13 +325,13 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Certificate.already.exists.in.keystore.under.alias.trustalias.", "\u5728\u522B\u540D <{0}> \u4E4B\u4E0B, \u8BC1\u4E66\u5DF2\u7ECF\u5B58\u5728\u4E8E\u5BC6\u94A5\u5E93\u4E2D"}, {"Do.you.still.want.to.add.it.no.", - "\u662F\u5426\u4ECD\u8981\u6DFB\u52A0? [\u5426]: "}, + "\u662F\u5426\u4ECD\u8981\u6DFB\u52A0? [no]: "}, {"Certificate.already.exists.in.system.wide.CA.keystore.under.alias.trustalias.", "\u5728\u522B\u540D <{0}> \u4E4B\u4E0B, \u8BC1\u4E66\u5DF2\u7ECF\u5B58\u5728\u4E8E\u7CFB\u7EDF\u8303\u56F4\u7684 CA \u5BC6\u94A5\u5E93\u4E2D"}, {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", - "\u662F\u5426\u4ECD\u8981\u5C06\u5B83\u6DFB\u52A0\u5230\u81EA\u5DF1\u7684\u5BC6\u94A5\u5E93? [\u5426]: "}, - {"Trust.this.certificate.no.", "\u662F\u5426\u4FE1\u4EFB\u6B64\u8BC1\u4E66? [\u5426]: "}, - {"YES", "YES"}, + "\u662F\u5426\u4ECD\u8981\u5C06\u5B83\u6DFB\u52A0\u5230\u81EA\u5DF1\u7684\u5BC6\u94A5\u5E93? [no]: "}, + {"Trust.this.certificate.no.", "\u662F\u5426\u4FE1\u4EFB\u6B64\u8BC1\u4E66? [no]: "}, + {"YES", "\u662F"}, {"New.prompt.", "\u65B0{0}: "}, {"Passwords.must.differ", "\u53E3\u4EE4\u4E0D\u80FD\u76F8\u540C"}, {"Re.enter.new.prompt.", "\u91CD\u65B0\u8F93\u5165\u65B0{0}: "}, @@ -339,7 +339,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"They.don.t.match.Try.again", "\u5B83\u4EEC\u4E0D\u5339\u914D\u3002\u8BF7\u91CD\u8BD5"}, {"Enter.prompt.alias.name.", "\u8F93\u5165{0}\u522B\u540D: "}, {"Enter.new.alias.name.RETURN.to.cancel.import.for.this.entry.", - "\u5BFC\u5165\u65B0\u7684\u522B\u540D\t(\u6309\u56DE\u8F66\u4EE5\u53D6\u6D88\u5BF9\u6B64\u6761\u76EE\u7684\u5BFC\u5165): "}, + "\u8F93\u5165\u65B0\u7684\u522B\u540D\t(\u6309\u56DE\u8F66\u4EE5\u53D6\u6D88\u5BF9\u6B64\u6761\u76EE\u7684\u5BFC\u5165): "}, {"Enter.alias.name.", "\u8F93\u5165\u522B\u540D: "}, {".RETURN.if.same.as.for.otherAlias.", "\t(\u5982\u679C\u548C <{0}> \u76F8\u540C, \u5219\u6309\u56DE\u8F66)"}, @@ -368,7 +368,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { "\u522B\u540D <{0}> \u5F15\u7528\u4E86\u4E0D\u5C5E\u4E8E\u79C1\u6709\u5BC6\u94A5\u6761\u76EE\u7684\u6761\u76EE\u7C7B\u578B\u3002-keyclone \u547D\u4EE4\u4EC5\u652F\u6301\u5BF9\u79C1\u6709\u5BC6\u94A5\u6761\u76EE\u7684\u514B\u9686"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** \u8B66\u544A \u8B66\u544A \u8B66\u544A *****************"}, {"Signer.d.", "\u7B7E\u540D\u8005 #%d:"}, {"Timestamp.", "\u65F6\u95F4\u6233:"}, {"Signature.", "\u7B7E\u540D:"}, @@ -378,20 +378,10 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "\u6CA1\u6709\u6765\u81EA SSL \u670D\u52A1\u5668\u7684\u8BC1\u4E66"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* \u5B58\u50A8\u5728\u60A8\u7684\u5BC6\u94A5\u5E93\u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027 *"}, + "* \u5B58\u50A8\u5728\u60A8\u7684\u5BC6\u94A5\u5E93\u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027 *\n* \u5C1A\u672A\u7ECF\u8FC7\u9A8C\u8BC1! \u4E3A\u4E86\u9A8C\u8BC1\u5176\u5B8C\u6574\u6027, *\n* \u5FC5\u987B\u63D0\u4F9B\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* \u5B58\u50A8\u5728 srckeystore \u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027 *"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* \u5C1A\u672A\u7ECF\u8FC7\u9A8C\u8BC1! \u4E3A\u4E86\u9A8C\u8BC1\u5176\u5B8C\u6574\u6027, *"}, - {".you.must.provide.your.keystore.password.", - "* \u5FC5\u987B\u63D0\u4F9B\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"}, - {".you.must.provide.the.srckeystore.password.", - "* \u5FC5\u987B\u63D0\u4F9B\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"}, - + "* \u5B58\u50A8\u5728 srckeystore \u4E2D\u7684\u4FE1\u606F\u7684\u5B8C\u6574\u6027*\n* \u5C1A\u672A\u7ECF\u8FC7\u9A8C\u8BC1! \u4E3A\u4E86\u9A8C\u8BC1\u5176\u5B8C\u6574\u6027, *\n* \u5FC5\u987B\u63D0\u4F9B\u6E90\u5BC6\u94A5\u5E93\u53E3\u4EE4\u3002 *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "\u8BC1\u4E66\u56DE\u590D\u4E2D\u4E0D\u5305\u542B <{0}> \u7684\u516C\u5171\u5BC6\u94A5"}, @@ -402,8 +392,8 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Top.level.certificate.in.reply.", "\u56DE\u590D\u4E2D\u7684\u9876\u7EA7\u8BC1\u4E66:\n"}, {".is.not.trusted.", "... \u662F\u4E0D\u53EF\u4FE1\u7684\u3002"}, - {"Install.reply.anyway.no.", "\u662F\u5426\u4ECD\u8981\u5B89\u88C5\u56DE\u590D? [\u5426]: "}, - {"NO", "NO"}, + {"Install.reply.anyway.no.", "\u662F\u5426\u4ECD\u8981\u5B89\u88C5\u56DE\u590D? [no]: "}, + {"NO", "\u5426"}, {"Public.keys.in.reply.and.keystore.don.t.match", "\u56DE\u590D\u4E2D\u7684\u516C\u5171\u5BC6\u94A5\u4E0E\u5BC6\u94A5\u5E93\u4E0D\u5339\u914D"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", @@ -415,7 +405,7 @@ public class Resources_zh_CN extends java.util.ListResourceBundle { {"Secret.key.not.generated.alias.alias.already.exists", "\u6CA1\u6709\u751F\u6210\u5BC6\u94A5, \u522B\u540D <{0}> \u5DF2\u7ECF\u5B58\u5728"}, {"Please.provide.keysize.for.secret.key.generation", - "\u8BF7\u63D0\u4F9B -keysize \u4EE5\u751F\u6210\u5BC6\u94A5"}, + "\u8BF7\u63D0\u4F9B -keysize \u4EE5\u751F\u6210\u5BF9\u79F0\u5BC6\u94A5"}, {"Extensions.", "\u6269\u5C55: "}, {".Empty.value.", "(\u7A7A\u503C)"}, From 9d5b11b9affed2fe3c2d1d74664c768a6a4ff8b4 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 14:53:34 -0700 Subject: [PATCH 137/147] 7042475: [ja,zh_CN] extra mnemonic key in jconsole Reviewed-by: yhuang --- .../sun/tools/jconsole/resources/JConsoleResources_ja.java | 4 ++-- .../sun/tools/jconsole/resources/JConsoleResources_zh_CN.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java index b0709d06e15..f25e4106e5d 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_ja.java @@ -197,7 +197,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "JConsole\u306B\u3064\u3044\u3066(A)"}, {"HelpMenu.About.title.mnemonic", 'A'}, - {"HelpMenu.UserGuide.title", "\u30AA\u30F3\u30E9\u30A4\u30F3\u30FB\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9(U)"}, + {"HelpMenu.UserGuide.title", "\u30AA\u30F3\u30E9\u30A4\u30F3\u30FB\u30E6\u30FC\u30B6\u30FC\u30FB\u30AC\u30A4\u30C9"}, {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u30D8\u30EB\u30D7(H)"}, {"HelpMenu.title.mnemonic", 'H'}, @@ -308,7 +308,7 @@ public class JConsoleResources_ja extends JConsoleResources { {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u30D1\u30B9\u30EF\u30FC\u30C9"}, {"Peak","\u30D4\u30FC\u30AF"}, - {"Perform GC", "GC\u306E\u5B9F\u884C(G)"}, + {"Perform GC", "GC\u306E\u5B9F\u884C"}, {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u30AC\u30D9\u30FC\u30B8\u30FB\u30B3\u30EC\u30AF\u30B7\u30E7\u30F3\u306E\u30EA\u30AF\u30A8\u30B9\u30C8"}, {"Plotter.accessibleName", "\u30C1\u30E3\u30FC\u30C8"}, diff --git a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java index 07f132b4752..4eb63ed5094 100644 --- a/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java +++ b/jdk/src/share/classes/sun/tools/jconsole/resources/JConsoleResources_zh_CN.java @@ -197,7 +197,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Help.AboutDialog.userGuideLink.url", "http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html"}, {"HelpMenu.About.title", "\u5173\u4E8E JConsole(A)"}, {"HelpMenu.About.title.mnemonic", 'A'}, - {"HelpMenu.UserGuide.title", "\u8054\u673A\u7528\u6237\u6307\u5357(U)"}, + {"HelpMenu.UserGuide.title", "\u8054\u673A\u7528\u6237\u6307\u5357"}, {"HelpMenu.UserGuide.title.mnemonic", 'U'}, {"HelpMenu.title", "\u5E2E\u52A9(H)"}, {"HelpMenu.title.mnemonic", 'H'}, @@ -308,7 +308,7 @@ public class JConsoleResources_zh_CN extends JConsoleResources { {"Password: .mnemonic", 'P'}, {"Password.accessibleName", "\u53E3\u4EE4"}, {"Peak","\u5CF0\u503C"}, - {"Perform GC", "\u6267\u884C GC(G)"}, + {"Perform GC", "\u6267\u884C GC"}, {"Perform GC.mnemonic", 'G'}, {"Perform GC.toolTip", "\u8BF7\u6C42\u5783\u573E\u6536\u96C6"}, {"Plotter.accessibleName", "\u56FE\u8868"}, From 794e6118a2fd8807b7f46039968bf4e894232db2 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 14:56:33 -0700 Subject: [PATCH 138/147] 7038807: [CCJK] OK button on message dialog of JOptionpane is not translated Reviewed-by: yhuang --- .../sun/swing/internal/plaf/basic/resources/basic_es.properties | 2 +- .../sun/swing/internal/plaf/basic/resources/basic_ko.properties | 2 +- .../swing/internal/plaf/basic/resources/basic_zh_CN.properties | 2 +- .../swing/internal/plaf/basic/resources/basic_zh_TW.properties | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties index 87ce61c7f77..09b72da0d54 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_es.properties @@ -144,7 +144,7 @@ OptionPane.yesButtonText=S\u00ED OptionPane.yesButtonMnemonic=83 OptionPane.noButtonText=No OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK +OptionPane.okButtonText=Aceptar OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=Cancelar OptionPane.cancelButtonMnemonic=C diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties index 592d4672442..8dd3f177567 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties @@ -144,7 +144,7 @@ OptionPane.yesButtonText=\uC608(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\uC544\uB2C8\uC624(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK +OptionPane.okButtonText=\uD655\uC778 OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\uCDE8\uC18C OptionPane.cancelButtonMnemonic=0 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties index 10cecd846d9..bb9a6ca99fa 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_CN.properties @@ -144,7 +144,7 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK +OptionPane.okButtonText=\u786E\u5B9A OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88 OptionPane.cancelButtonMnemonic=0 diff --git a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties index 53a4bfb989b..24b5503c206 100644 --- a/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties +++ b/jdk/src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_zh_TW.properties @@ -144,7 +144,7 @@ OptionPane.yesButtonText=\u662F(Y) OptionPane.yesButtonMnemonic=89 OptionPane.noButtonText=\u5426(N) OptionPane.noButtonMnemonic=78 -OptionPane.okButtonText=OK +OptionPane.okButtonText=\u78BA\u5B9A OptionPane.okButtonMnemonic=O OptionPane.cancelButtonText=\u53D6\u6D88 OptionPane.cancelButtonMnemonic=0 From 29fd1ea6417c5293c7795518b6ed5a1257f2dc89 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 15:02:38 -0700 Subject: [PATCH 139/147] 7043548: message drop 3 translation integration Reviewed-by: yhuang --- .../orbutil/resources/sunorb_pt_BR.properties | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties index 6393482a863..1c5dbce8243 100644 --- a/corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties +++ b/corba/src/share/classes/com/sun/corba/se/impl/orbutil/resources/sunorb_pt_BR.properties @@ -23,9 +23,9 @@ # questions. # -orbd.usage=Uso: {0} \n\nem que inclui:\n -port porta de ativa\u00E7\u00E3o na qual o ORBD deve ser iniciado, default 1049 (opcional)\n -defaultdb diret\u00F3rio dos arquivos ORBD, default "./orb.db" (opcional)\n -serverid id do servidor para ORBD, default 1 (opcional)\n -ORBInitialPort porta inicial (necess\u00E1rio)\n -ORBInitialHost nome de host inicial (necess\u00E1rio)\n +orbd.usage=Uso: {0} \n\nem que inclui:\n -port porta de ativa\u00E7\u00E3o na qual o ORBD deve ser iniciado, default 1049 (opcional)\n -defaultdb diret\u00F3rio dos arquivos ORBD, default "./orb.db" (opcional)\n -serverid id do servidor para ORBD, default 1 (opcional)\n -ORBInitialPort porta inicial (obrigat\u00F3rio)\n -ORBInitialHost nome de host inicial (obrigat\u00F3rio)\n -servertool.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (necess\u00E1rio)\n -ORBInitialHost nome de host inicial (necess\u00E1rio)\n +servertool.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (obrigat\u00F3rio)\n -ORBInitialHost nome de host inicial (obrigat\u00F3rio)\n servertool.banner=\n\nBem-vindo \u00E0 Ferramenta de Servidor IDL Java \ninsira os comandos no prompt \n servertool.shorthelp=\n\n\tComandos Dispon\u00EDveis: \n\t------------------- \n servertool.baddef=Defini\u00E7\u00E3o do servidor inv\u00E1lida: {0} @@ -40,23 +40,23 @@ servertool.args=\targs - {0} servertool.vmargs=\tvmargs - {0} servertool.serverid=\tserver id - {0} servertool.servernotrunning=\to servidor n\u00E3o est\u00E1 em execu\u00E7\u00E3o. -servertool.register=\n\n\tregister -server \n\t -applicationName \n\t -classpath \n\t -args \n\t -vmargs \n +servertool.register=\n\n\tregister -server \n\t -applicationName \n\t -classpath \n\t -args \n\t -vmargs \n servertool.register1=registra um servidor ativ\u00E1vel servertool.register2=\tservidor registrado (serverid = {0}). servertool.register3=\tservidor registrado, mas em espera (serverid = {0}). servertool.register4=\tservidor j\u00E1 registrado (serverid = {0}). -servertool.unregister=\n\tunregister [ -serverid | -applicationName ] \n +servertool.unregister=\n\tunregister [ -serverid | -applicationName ] \n servertool.unregister1=cancela o registro de um servidor registrado servertool.unregister2=\tservidor n\u00E3o registrado. -servertool.locate=\n\tlocate [ -serverid | -applicationName ] [ <-endpointType ] \n +servertool.locate=\n\tlocate [ -serverid | -applicationName ] [ <-endpointType ] \n servertool.locate1=localiza portas de tipo espec\u00EDfico para um servidor registrado servertool.locate2=\n\n\tNome do Host {0} \n\n\t\tPorta\t\tTipo de Porta\t\tId do ORB\n\t\t----\t\t---------\t\t------\n -servertool.locateorb=\n\tlocateperorb [ -serverid | -applicationName ] [ -orbid ]\n +servertool.locateorb=\n\tlocateperorb [ -serverid | -applicationName ] [ -orbid ]\n servertool.locateorb1=localiza portas para um orb espec\u00EDfico de servidor registrado servertool.locateorb2=\n\n\tNome do Host {0} \n\n\t\tPorta\t\tTipo de Porta\t\tId do ORB\n\t\t----\t\t--------\t\t------\n -servertool.getserverid=\n\tgetserverid [ -applicationName ] \n +servertool.getserverid=\n\tgetserverid [ -applicationName ] \n servertool.getserverid1=retorna o id do servidor de um applicationName servertool.getserverid2=\tID do Servidor de applicationName {0} \u00E9 {1} @@ -69,33 +69,33 @@ servertool.listappnames=\tlistappnames\n servertool.listappnames1=lista os applicationNames atualmente definidos servertool.listappnames2=applicationNames do servidor definidos atualmente: -servertool.shutdown=\n\tshutdown [ -serverid | -applicationName ]\n +servertool.shutdown=\n\tshutdown [ -serverid | -applicationName ]\n servertool.shutdown1=faz shutdown de um servidor registrado servertool.shutdown2=\tshutdown do servidor bem-sucedido. -servertool.startserver=\n\tstartup [ -serverid | -applicationName ]\n +servertool.startserver=\n\tstartup [ -serverid | -applicationName ]\n servertool.startserver1=inicia um servidor registrado servertool.startserver2=\tservidor iniciado com \u00EAxito. servertool.quit=\n\tquit\n servertool.quit1=sai desta ferramenta -servertool.help=\thelp\n\tOR\n\thelp \n +servertool.help=\thelp\n\tOR\n\thelp \n servertool.help1=obt\u00E9m ajuda -servertool.orbidmap=\tUso: orblist [ -serverid | -applicationName ]\n +servertool.orbidmap=\tUso: orblist [ -serverid | -applicationName ]\n servertool.orbidmap1=lista de nomes de orb e seus mapeamentos servertool.orbidmap2=\n\tId de ORB\t\tNome de ORB\n\t------\t\t--------\n pnameserv.success=NameServer Persistente Iniciado com \u00CAxito -bootstrap.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (necess\u00E1rio)\n -InitialServicesFile arquivo que cont\u00E9m a lista de servi\u00E7os iniciais (necess\u00E1rio)\n +bootstrap.usage=Uso: {0} \n\nem que inclui:\n -ORBInitialPort porta inicial (obrigat\u00F3rio)\n -InitialServicesFile arquivo que cont\u00E9m a lista de servi\u00E7os iniciais (obrigat\u00F3rio)\n bootstrap.success=definindo porta para {0} e lendo servi\u00E7os de {1} bootstrap.filenotreadable=o arquivo {0} n\u00E3o \u00E9 leg\u00EDvel bootstrap.filenotfound=arquivo {0} n\u00E3o encontrado bootstrap.exception=exce\u00E7\u00E3o capturada ao salvar as propriedades no Arquivo {0}: exce\u00E7\u00E3o {1} tnameserv.exception=uma exce\u00E7\u00E3o capturada ao iniciar o servi\u00E7o de inicializa\u00E7\u00E3o na porta {0} -tnameserv.usage=tente usar outra porta com os argumentos de linha de comandos -ORBInitialPort +tnameserv.usage=tente usar outra porta com os argumentos de linha de comandos -ORBInitialPort tnameserv.invalidhostoption=ORBInitialHost n\u00E3o \u00E9 uma op\u00E7\u00E3o v\u00E1lida para NameService tnameserv.orbinitialport0=ORBInitialPort 0 n\u00E3o \u00E9 uma op\u00E7\u00E3o v\u00E1lida para NameService tnameserv.hs1=Contexto de Nomea\u00E7\u00E3o Inicial:\n{0} From 95f71f88486eba1d97f1aa8b4018dc06aad1038d Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 15:04:37 -0700 Subject: [PATCH 140/147] 7022005: [ja,zh_CN] javadoc, part of navigation bar in generated html are not translated Reviewed-by: yhuang --- .../html/resources/standard_ja.properties | 82 ++++++------------- .../html/resources/standard_zh_CN.properties | 82 ++++++------------- 2 files changed, 48 insertions(+), 116 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties index 388868a7587..1e020b6d965 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties @@ -11,54 +11,30 @@ doclet.Window_Class_Hierarchy=\u30AF\u30E9\u30B9\u968E\u5C64 doclet.Interface_Hierarchy=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u968E\u5C64 doclet.Enum_Hierarchy=\u5217\u6319\u578B\u968E\u5C64 doclet.Annotation_Type_Hierarchy=\u6CE8\u91C8\u578B\u968E\u5C64 -# The following ALL CAPS words should be translated. It is used as "Previous" link on javadoc. doclet.Prev=\u524D -# The following ALL CAPS words should be translated. It is used as "Next" link on javadoc. doclet.Next=\u6B21 -# The following ALL CAPS words should be translated. It is used as "Previous Class" link on javadoc. -doclet.Prev_Class=PREV CLASS -# The following ALL CAPS words should be translated. It is used as "Next Class" link on javadoc. -doclet.Next_Class=NEXT CLASS -# The following ALL CAPS words should be translated. It is used as "Previous Package" link on javadoc. -doclet.Prev_Package=PREV PACKAGE -# The following ALL CAPS words should be translated. It is used as "Next Package" link on javadoc. -doclet.Next_Package=NEXT PACKAGE -# The following ALL CAPS words should be translated. It is used as "Previous Letter" link on javadoc alphabetical index. -doclet.Prev_Letter=PREV LETTER -# The following ALL CAPS words should be translated. It is used as "Next Letter" link on javadoc alphabetical index. -doclet.Next_Letter=NEXT LETTER -# The following ALL CAPS words should be translated. It is used as "Show List" link on javadoc. -doclet.Show_Lists=SHOW LISTS -# The following ALL CAPS words should be translated. It is used as "Hide List" link on javadoc. -doclet.Hide_Lists=HIDE LISTS +doclet.Prev_Class=\u524D\u306E\u30AF\u30E9\u30B9 +doclet.Next_Class=\u6B21\u306E\u30AF\u30E9\u30B9 +doclet.Prev_Package=\u524D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Next_Package=\u6B21\u306E\u30D1\u30C3\u30B1\u30FC\u30B8 +doclet.Prev_Letter=\u524D\u306E\u6587\u5B57 +doclet.Next_Letter=\u6B21\u306E\u6587\u5B57 doclet.Href_Class_Title={0}\u5185\u306E\u30AF\u30E9\u30B9 doclet.Href_Interface_Title={0}\u5185\u306E\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 doclet.Href_Annotation_Title={0}\u5185\u306E\u6CE8\u91C8 doclet.Href_Enum_Title={0}\u5185\u306E\u5217\u6319\u578B doclet.Href_Type_Param_Title={0}\u5185\u306E\u578B\u30D1\u30E9\u30E1\u30FC\u30BF doclet.Href_Class_Or_Interface_Title={0}\u5185\u306E\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 -# The following ALL CAPS words should be translated. It's used as SUMMARY: NESTED | FIELD | CONSTR | METHOD, meaning Nested Class Summary, Field Summary, Constructor Summary, or Method Summary. -doclet.Summary=SUMMARY: -# The following ALL CAPS words should be translated. It is used as DETAIL: FIELD | CONSTR | METHOD, meaning Field Detail, Constructor Detail, or Method Detail. -doclet.Detail=DETAIL: -# The following ALL CAPS words should be translated. It is used as "Nested" (Nested Class Summary) link on javadoc. -doclet.navNested=NESTED -# The following ALL CAPS words should be translated. It is used as "Optional" (Optional Element Summary) link on javadoc. -doclet.navAnnotationTypeOptionalMember=OPTIONAL -# The following ALL CAPS words should be translated. It is used as "Required" (Required Element Summary) link on javadoc. -doclet.navAnnotationTypeRequiredMember=REQUIRED -# The following ALL CAPS words should be translated. It is used as "Element" (Required Element Summary) link on javadoc. -doclet.navAnnotationTypeMember=ELEMENT -# The following ALL CAPS words should be translated. It is used as "Field" (Field Detail) link on javadoc. -doclet.navField=FIELD -# The following ALL CAPS words should be translated. It is used as "Enum Constants" link on javadoc. -doclet.navEnum=ENUM CONSTANTS -# The following ALL CAPS words should be translated. It is used as "Constructor" (Constructor Detail) link on javadoc. -doclet.navConstructor=CONSTR -# The following ALL CAPS words should be translated. It is used as "Method" (Method Detail) link on javadoc. -doclet.navMethod=METHOD -# The following resource does not seem to be used anymore. -doclet.navFactoryMethod=FACTORY +doclet.Summary=\u6982\u8981: +doclet.Detail=\u8A73\u7D30: +doclet.navNested=\u30CD\u30B9\u30C8 +doclet.navAnnotationTypeOptionalMember=\u30AA\u30D7\u30B7\u30E7\u30F3 +doclet.navAnnotationTypeRequiredMember=\u5FC5\u9808 +doclet.navAnnotationTypeMember=\u8981\u7D20 +doclet.navField=\u30D5\u30A3\u30FC\u30EB\u30C9 +doclet.navEnum=\u5217\u6319\u5B9A\u6570 +doclet.navConstructor=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF +doclet.navMethod=\u30E1\u30BD\u30C3\u30C9 doclet.Index=\u7D22\u5F15 doclet.Window_Single_Index=\u7D22\u5F15 doclet.Window_Split_Index={0}\u306E\u7D22\u5F15 @@ -66,12 +42,6 @@ doclet.Help=\u30D8\u30EB\u30D7 doclet.Skip_navigation_links=\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30EA\u30F3\u30AF\u3092\u30B9\u30AD\u30C3\u30D7 doclet.New_Page=NewPage doclet.None=\u306A\u3057 -# The following resource does not seem to be used anymore -doclet.CLASSES=CLASSES -# The following resource does not seem to be used anymore -doclet.MEMBERS=MEMBERS -# The following resource does not seem to be used anymore -doclet.NONE=\u306A\u3057 doclet.Factory_Method_Detail=static\u30D5\u30A1\u30AF\u30C8\u30EA\u30FB\u30E1\u30BD\u30C3\u30C9\u306E\u8A73\u7D30 doclet.navDeprecated=\u975E\u63A8\u5968 doclet.Deprecated_List=\u975E\u63A8\u5968API\u306E\u30EA\u30B9\u30C8 @@ -136,10 +106,7 @@ doclet.also=\u540C\u69D8\u306B doclet.Option=\u30AA\u30D7\u30B7\u30E7\u30F3 doclet.Or=\u307E\u305F\u306F doclet.Frames=\u30D5\u30EC\u30FC\u30E0 -# The following ALL CAPS words should be translated. It is used as "FRAMES" javadoc navigation link to indicate displaying the page with HTML frames. -doclet.FRAMES=FRAMES -# The following ALL CAPS words should be translated. It is used as "NO FRAMES" javadoc navigation link to indicate displaying the page without HTML frames. -doclet.NO_FRAMES=NO FRAMES +doclet.No_Frames=\u30D5\u30EC\u30FC\u30E0\u306A\u3057 doclet.Package_Hierarchies=\u30D1\u30C3\u30B1\u30FC\u30B8\u968E\u5C64: doclet.Hierarchy_For_Package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306E\u968E\u5C64 doclet.Source_Code=\u30BD\u30FC\u30B9\u30FB\u30B3\u30FC\u30C9: @@ -147,11 +114,10 @@ doclet.Hierarchy_For_All_Packages=\u3059\u3079\u3066\u306E\u30D1\u30C3\u30B1\u30 doclet.Cannot_handle_no_packages=\u30D1\u30C3\u30B1\u30FC\u30B8\u3092\u51E6\u7406\u3067\u304D\u307E\u305B\u3093\u3002 doclet.Frame_Alert=\u30D5\u30EC\u30FC\u30E0\u95A2\u9023\u306E\u30A2\u30E9\u30FC\u30C8 doclet.Overview-Member-Frame=\u6982\u8981\u30E1\u30F3\u30D0\u30FC\u30FB\u30D5\u30EC\u30FC\u30E0 -doclet.Frame_Warning_Message=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30D5\u30EC\u30FC\u30E0\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u3066\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D5\u30EC\u30FC\u30E0\u3092\u8868\u793A\u3067\u304D\u306A\u3044Web\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E\u5834\u5408\u306B\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002 +doclet.Frame_Warning_Message=\u3053\u306E\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306F\u30D5\u30EC\u30FC\u30E0\u6A5F\u80FD\u3092\u4F7F\u7528\u3057\u3066\u8868\u793A\u3059\u308B\u3088\u3046\u306B\u4F5C\u6210\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u30D5\u30EC\u30FC\u30E0\u3092\u8868\u793A\u3067\u304D\u306A\u3044Web\u30AF\u30E9\u30A4\u30A2\u30F3\u30C8\u306E\u5834\u5408\u306B\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002{0}\u306B\u30EA\u30F3\u30AF\u3057\u307E\u3059\u3002 doclet.No_Script_Message=\u30D6\u30E9\u30A6\u30B6\u306EJavaScript\u304C\u7121\u52B9\u306B\u306A\u3063\u3066\u3044\u307E\u3059\u3002 -doclet.Non_Frame_Version=\u30D5\u30EC\u30FC\u30E0\u306A\u3057\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u3002 +doclet.Non_Frame_Version=\u30D5\u30EC\u30FC\u30E0\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u306A\u3044\u30D0\u30FC\u30B8\u30E7\u30F3 doclet.Frame_Version=\u30D5\u30EC\u30FC\u30E0\u3042\u308A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3 -doclet.Link_To=\u30EA\u30F3\u30AF\u5148 doclet.Following_From_Class=\u30AF\u30E9\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0: doclet.Following_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9{0}\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u30BF\u30B0: doclet.Description_From_Interface=\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u304B\u3089\u30B3\u30D4\u30FC\u3055\u308C\u305F\u8AAC\u660E: @@ -167,7 +133,7 @@ doclet.Window_Help_title=API\u30D8\u30EB\u30D7 doclet.Help_line_1=API\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u69CB\u6210 doclet.Help_line_2=\u3053\u306EAPI(Application Programming Interface)\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u306F\u3001\u6B21\u306B\u8AAC\u660E\u3059\u308B\u30CA\u30D3\u30B2\u30FC\u30B7\u30E7\u30F3\u30FB\u30D0\u30FC\u306B\u3042\u308B\u9805\u76EE\u306B\u5BFE\u5FDC\u3059\u308B\u30DA\u30FC\u30B8\u304C\u542B\u307E\u308C\u307E\u3059\u3002 doclet.Help_line_3={0}\u30DA\u30FC\u30B8\u306FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306E\u30D5\u30ED\u30F3\u30C8\u30FB\u30DA\u30FC\u30B8\u3067\u3001\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u3092\u542B\u3080\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30EA\u30B9\u30C8\u304C\u8868\u793A\u3055\u308C\u307E\u3059\u3002\u4E00\u9023\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u6982\u8981\u8AAC\u660E\u3082\u8868\u793A\u3055\u308C\u307E\u3059\u3002 -doclet.Help_line_4=\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F\u3001\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u3001\u305D\u308C\u305E\u308C\u306E\u6982\u8981\u3092\u542B\u3080\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306F4\u3064\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_4=\u5404\u30D1\u30C3\u30B1\u30FC\u30B8\u306B\u306F\u3001\u305D\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u306E\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u30EA\u30B9\u30C8\u3068\u3001\u305D\u308C\u305E\u308C\u306E\u6982\u8981\u3092\u542B\u3080\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u306E\u30DA\u30FC\u30B8\u306F6\u3064\u306E\u30AB\u30C6\u30B4\u30EA\u3067\u69CB\u6210\u3055\u308C\u307E\u3059\u3002 doclet.Help_line_5=\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9 doclet.Help_line_6=\u5404\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30AF\u30E9\u30B9\u304A\u3088\u3073\u30CD\u30B9\u30C8\u3055\u308C\u305F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306B\u306F\u500B\u5225\u306E\u30DA\u30FC\u30B8\u304C\u3042\u308A\u307E\u3059\u3002\u5404\u30DA\u30FC\u30B8\u306B\u306F\u6B21\u306E\u3088\u3046\u306B\u3001\u30AF\u30E9\u30B9\u307E\u305F\u306F\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u306E\u8AAC\u660E\u3068\u3001\u6982\u8981\u8868\u304A\u3088\u3073\u30E1\u30F3\u30D0\u30FC\u306E\u8A73\u7D30\u8AAC\u660E\u304C\u542B\u307E\u308C\u307E\u3059\u3002 doclet.Help_line_7=\u30AF\u30E9\u30B9\u968E\u5C64\u8868\u793A @@ -190,16 +156,16 @@ doclet.Help_line_23=\u524D/\u6B21 doclet.Help_line_24=\u3053\u308C\u3089\u306E\u30EA\u30F3\u30AF\u306B\u3088\u308A\u3001\u524D\u307E\u305F\u306F\u6B21\u306E\u30AF\u30E9\u30B9\u3001\u30A4\u30F3\u30BF\u30D5\u30A7\u30FC\u30B9\u3001\u30D1\u30C3\u30B1\u30FC\u30B8\u307E\u305F\u306F\u95A2\u9023\u30DA\u30FC\u30B8\u3078\u79FB\u52D5\u3067\u304D\u307E\u3059\u3002 doclet.Help_line_25=\u30D5\u30EC\u30FC\u30E0/\u30D5\u30EC\u30FC\u30E0\u306A\u3057 doclet.Help_line_26=\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_line_27=\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_line_28=\u300C\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024\u300D \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_line_29=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u3092\u4F7F\u7528\u3057\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002 +doclet.Help_line_27={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_line_28=\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_line_29=\u300C\u5B9A\u6570\u30D5\u30A3\u30FC\u30EB\u30C9\u5024\u300D \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_line_30=\u3053\u306E\u30D8\u30EB\u30D7\u30FB\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u6A19\u6E96doclet\u3092\u4F7F\u7528\u3057\u3066\u751F\u6210\u3055\u308C\u305FAPI\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u306B\u9069\u7528\u3055\u308C\u307E\u3059\u3002 doclet.Help_enum_line_1=\u5404\u5217\u6319\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059: doclet.Help_enum_line_2=\u5217\u6319\u578B\u306E\u5BA3\u8A00 doclet.Help_enum_line_3=\u5217\u6319\u578B\u306E\u8AAC\u660E doclet.Help_annotation_type_line_1=\u5404\u6CE8\u91C8\u578B\u306B\u306F\u3001\u305D\u308C\u81EA\u8EAB\u306E\u500B\u5225\u306E\u30DA\u30FC\u30B8\u3068\u6B21\u306E\u30BB\u30AF\u30B7\u30E7\u30F3\u304C\u3042\u308A\u307E\u3059: doclet.Help_annotation_type_line_2=\u6CE8\u91C8\u578B\u306E\u5BA3\u8A00 doclet.Help_annotation_type_line_3=\u6CE8\u91C8\u578B\u306E\u8AAC\u660E -doclet.The=The doclet.Style_line_1=javadoc\u30B9\u30BF\u30A4\u30EB\u30FB\u30B7\u30FC\u30C8 doclet.Style_line_2=\u8272\u3084\u30D5\u30A9\u30F3\u30C8\u306A\u3069\u306E\u30B9\u30BF\u30A4\u30EB\u5C5E\u6027\u306E\u30C7\u30D5\u30A9\u30EB\u30C8\u5024\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3059\u308B\u306B\u306F\u3001\u3053\u3053\u3067\u5B9A\u7FA9\u3057\u307E\u3059 doclet.Style_line_3=\u30DA\u30FC\u30B8\u306E\u30D0\u30C3\u30AF\u30B0\u30E9\u30A6\u30F3\u30C9\u306E\u8272 diff --git a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties index 92875fa8478..4198bd9c8d9 100644 --- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties +++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties @@ -11,54 +11,30 @@ doclet.Window_Class_Hierarchy=\u7C7B\u5206\u5C42\u7ED3\u6784 doclet.Interface_Hierarchy=\u63A5\u53E3\u5206\u5C42\u7ED3\u6784 doclet.Enum_Hierarchy=\u679A\u4E3E\u5206\u5C42\u7ED3\u6784 doclet.Annotation_Type_Hierarchy=\u6CE8\u91CA\u7C7B\u578B\u5206\u5C42\u7ED3\u6784 -# The following ALL CAPS words should be translated. It is used as "Previous" link on javadoc. doclet.Prev=\u4E0A\u4E00\u4E2A -# The following ALL CAPS words should be translated. It is used as "Next" link on javadoc. doclet.Next=\u4E0B\u4E00\u4E2A -# The following ALL CAPS words should be translated. It is used as "Previous Class" link on javadoc. -doclet.Prev_Class=PREV CLASS -# The following ALL CAPS words should be translated. It is used as "Next Class" link on javadoc. -doclet.Next_Class=NEXT CLASS -# The following ALL CAPS words should be translated. It is used as "Previous Package" link on javadoc. -doclet.Prev_Package=PREV PACKAGE -# The following ALL CAPS words should be translated. It is used as "Next Package" link on javadoc. -doclet.Next_Package=NEXT PACKAGE -# The following ALL CAPS words should be translated. It is used as "Previous Letter" link on javadoc alphabetical index. -doclet.Prev_Letter=PREV LETTER -# The following ALL CAPS words should be translated. It is used as "Next Letter" link on javadoc alphabetical index. -doclet.Next_Letter=NEXT LETTER -# The following ALL CAPS words should be translated. It is used as "Show List" link on javadoc. -doclet.Show_Lists=SHOW LISTS -# The following ALL CAPS words should be translated. It is used as "Hide List" link on javadoc. -doclet.Hide_Lists=HIDE LISTS +doclet.Prev_Class=\u4E0A\u4E00\u4E2A\u7C7B +doclet.Next_Class=\u4E0B\u4E00\u4E2A\u7C7B +doclet.Prev_Package=\u4E0A\u4E00\u4E2A\u7A0B\u5E8F\u5305 +doclet.Next_Package=\u4E0B\u4E00\u4E2A\u7A0B\u5E8F\u5305 +doclet.Prev_Letter=\u4E0A\u4E00\u4E2A\u5B57\u6BCD +doclet.Next_Letter=\u4E0B\u4E00\u4E2A\u5B57\u6BCD doclet.Href_Class_Title={0}\u4E2D\u7684\u7C7B doclet.Href_Interface_Title={0}\u4E2D\u7684\u63A5\u53E3 doclet.Href_Annotation_Title={0}\u4E2D\u7684\u6CE8\u91CA doclet.Href_Enum_Title={0}\u4E2D\u7684\u679A\u4E3E doclet.Href_Type_Param_Title={0}\u4E2D\u7684\u7C7B\u578B\u53C2\u6570 doclet.Href_Class_Or_Interface_Title={0}\u4E2D\u7684\u7C7B\u6216\u63A5\u53E3 -# The following ALL CAPS words should be translated. It's used as SUMMARY: NESTED | FIELD | CONSTR | METHOD, meaning Nested Class Summary, Field Summary, Constructor Summary, or Method Summary. -doclet.Summary=SUMMARY: -# The following ALL CAPS words should be translated. It is used as DETAIL: FIELD | CONSTR | METHOD, meaning Field Detail, Constructor Detail, or Method Detail. -doclet.Detail=DETAIL: -# The following ALL CAPS words should be translated. It is used as "Nested" (Nested Class Summary) link on javadoc. -doclet.navNested=NESTED -# The following ALL CAPS words should be translated. It is used as "Optional" (Optional Element Summary) link on javadoc. -doclet.navAnnotationTypeOptionalMember=OPTIONAL -# The following ALL CAPS words should be translated. It is used as "Required" (Required Element Summary) link on javadoc. -doclet.navAnnotationTypeRequiredMember=REQUIRED -# The following ALL CAPS words should be translated. It is used as "Element" (Required Element Summary) link on javadoc. -doclet.navAnnotationTypeMember=ELEMENT -# The following ALL CAPS words should be translated. It is used as "Field" (Field Detail) link on javadoc. -doclet.navField=FIELD -# The following ALL CAPS words should be translated. It is used as "Enum Constants" link on javadoc. -doclet.navEnum=ENUM CONSTANTS -# The following ALL CAPS words should be translated. It is used as "Constructor" (Constructor Detail) link on javadoc. -doclet.navConstructor=CONSTR -# The following ALL CAPS words should be translated. It is used as "Method" (Method Detail) link on javadoc. -doclet.navMethod=METHOD -# The following resource does not seem to be used anymore. -doclet.navFactoryMethod=FACTORY +doclet.Summary=\u6982\u8981: +doclet.Detail=\u8BE6\u7EC6\u8D44\u6599: +doclet.navNested=\u5D4C\u5957 +doclet.navAnnotationTypeOptionalMember=\u53EF\u9009 +doclet.navAnnotationTypeRequiredMember=\u5FC5\u9700 +doclet.navAnnotationTypeMember=\u5143\u7D20 +doclet.navField=\u5B57\u6BB5 +doclet.navEnum=\u679A\u4E3E\u5E38\u91CF +doclet.navConstructor=\u6784\u9020\u5668 +doclet.navMethod=\u65B9\u6CD5 doclet.Index=\u7D22\u5F15 doclet.Window_Single_Index=\u7D22\u5F15 doclet.Window_Split_Index={0} - \u7D22\u5F15 @@ -66,12 +42,6 @@ doclet.Help=\u5E2E\u52A9 doclet.Skip_navigation_links=\u8DF3\u8FC7\u5BFC\u822A\u94FE\u63A5 doclet.New_Page=NewPage doclet.None=\u65E0 -# The following resource does not seem to be used anymore -doclet.CLASSES=CLASSES -# The following resource does not seem to be used anymore -doclet.MEMBERS=MEMBERS -# The following resource does not seem to be used anymore -doclet.NONE=\u65E0 doclet.Factory_Method_Detail=\u9759\u6001\u5DE5\u5382\u65B9\u6CD5\u8BE6\u7EC6\u8D44\u6599 doclet.navDeprecated=\u5DF2\u8FC7\u65F6 doclet.Deprecated_List=\u5DF2\u8FC7\u65F6\u7684\u5217\u8868 @@ -136,10 +106,7 @@ doclet.also=\u5E76 doclet.Option=\u9009\u9879 doclet.Or=\u6216 doclet.Frames=\u6846\u67B6 -# The following ALL CAPS words should be translated. It is used as "FRAMES" javadoc navigation link to indicate displaying the page with HTML frames. -doclet.FRAMES=FRAMES -# The following ALL CAPS words should be translated. It is used as "NO FRAMES" javadoc navigation link to indicate displaying the page without HTML frames. -doclet.NO_FRAMES=NO FRAMES +doclet.No_Frames=\u65E0\u6846\u67B6 doclet.Package_Hierarchies=\u7A0B\u5E8F\u5305\u5206\u5C42\u7ED3\u6784: doclet.Hierarchy_For_Package=\u7A0B\u5E8F\u5305{0}\u7684\u5206\u5C42\u7ED3\u6784 doclet.Source_Code=\u6E90\u4EE3\u7801: @@ -147,11 +114,10 @@ doclet.Hierarchy_For_All_Packages=\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5206\u5C doclet.Cannot_handle_no_packages=\u65E0\u6CD5\u5904\u7406\u6CA1\u6709\u7A0B\u5E8F\u5305\u7684\u60C5\u51B5\u3002 doclet.Frame_Alert=\u6846\u67B6\u9884\u8B66 doclet.Overview-Member-Frame=\u6210\u5458\u6846\u67B6\u6982\u89C8 -doclet.Frame_Warning_Message=\u8BF7\u4F7F\u7528\u6846\u67B6\u529F\u80FD\u67E5\u770B\u6B64\u6587\u6863\u3002\u5982\u679C\u770B\u5230\u6B64\u6D88\u606F, \u5219\u8868\u660E\u60A8\u4F7F\u7528\u7684\u662F\u4E0D\u652F\u6301\u6846\u67B6\u7684 Web \u5BA2\u6237\u673A\u3002 +doclet.Frame_Warning_Message=\u8BF7\u4F7F\u7528\u6846\u67B6\u529F\u80FD\u67E5\u770B\u6B64\u6587\u6863\u3002\u5982\u679C\u770B\u5230\u6B64\u6D88\u606F, \u5219\u8868\u660E\u60A8\u4F7F\u7528\u7684\u662F\u4E0D\u652F\u6301\u6846\u67B6\u7684 Web \u5BA2\u6237\u673A\u3002\u94FE\u63A5\u5230{0}\u3002 doclet.No_Script_Message=\u60A8\u7684\u6D4F\u89C8\u5668\u5DF2\u7981\u7528 JavaScript\u3002 -doclet.Non_Frame_Version=\u975E\u6846\u67B6\u7248\u672C\u3002 +doclet.Non_Frame_Version=\u975E\u6846\u67B6\u7248\u672C doclet.Frame_Version=\u6846\u67B6\u7248\u672C -doclet.Link_To=\u94FE\u63A5\u5230 doclet.Following_From_Class=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u7C7B{0}\u590D\u5236\u7684 doclet.Following_From_Interface=\u4EE5\u4E0B\u5185\u5BB9\u662F\u4ECE\u63A5\u53E3{0}\u590D\u5236\u7684 doclet.Description_From_Interface=\u4ECE\u63A5\u53E3\u590D\u5236\u7684\u8BF4\u660E: @@ -167,7 +133,7 @@ doclet.Window_Help_title=API \u5E2E\u52A9 doclet.Help_line_1=\u6B64 API \u6587\u6863\u7684\u7EC4\u7EC7\u65B9\u5F0F doclet.Help_line_2=\u6B64 API (\u5E94\u7528\u7A0B\u5E8F\u7F16\u7A0B\u63A5\u53E3) \u6587\u6863\u5305\u542B\u5BF9\u5E94\u4E8E\u5BFC\u822A\u680F\u4E2D\u7684\u9879\u76EE\u7684\u9875\u9762, \u5982\u4E0B\u6240\u8FF0\u3002 doclet.Help_line_3={0} \u9875\u9762\u662F\u6B64 API \u6587\u6863\u7684\u9996\u9875, \u63D0\u4F9B\u4E86\u6240\u6709\u7A0B\u5E8F\u5305\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u4E5F\u53EF\u80FD\u5305\u542B\u8FD9\u4E9B\u7A0B\u5E8F\u5305\u7684\u603B\u4F53\u8BF4\u660E\u3002 -doclet.Help_line_4=\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u90FD\u6709\u4E00\u4E2A\u9875\u9762, \u5176\u4E2D\u5305\u542B\u5B83\u7684\u7C7B\u548C\u63A5\u53E3\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u53EF\u4EE5\u5305\u542B\u56DB\u4E2A\u7C7B\u522B: +doclet.Help_line_4=\u6BCF\u4E2A\u7A0B\u5E8F\u5305\u90FD\u6709\u4E00\u4E2A\u9875\u9762, \u5176\u4E2D\u5305\u542B\u5B83\u7684\u7C7B\u548C\u63A5\u53E3\u7684\u5217\u8868\u53CA\u5176\u6982\u8981\u3002\u6B64\u9875\u9762\u53EF\u4EE5\u5305\u542B\u516D\u4E2A\u7C7B\u522B: doclet.Help_line_5=\u7C7B/\u63A5\u53E3 doclet.Help_line_6=\u6BCF\u4E2A\u7C7B, \u63A5\u53E3, \u5D4C\u5957\u7C7B\u548C\u5D4C\u5957\u63A5\u53E3\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762\u3002\u5176\u4E2D\u6BCF\u4E2A\u9875\u9762\u90FD\u7531\u4E09\u90E8\u5206 (\u7C7B/\u63A5\u53E3\u8BF4\u660E, \u6982\u8981\u8868, \u4EE5\u53CA\u8BE6\u7EC6\u7684\u6210\u5458\u8BF4\u660E) \u7EC4\u6210: doclet.Help_line_7=\u7C7B\u7EE7\u627F\u56FE @@ -190,16 +156,16 @@ doclet.Help_line_23=\u4E0A\u4E00\u4E2A/\u4E0B\u4E00\u4E2A doclet.Help_line_24=\u8FD9\u4E9B\u94FE\u63A5\u4F7F\u60A8\u53EF\u4EE5\u8F6C\u81F3\u4E0B\u4E00\u4E2A\u6216\u4E0A\u4E00\u4E2A\u7C7B, \u63A5\u53E3, \u7A0B\u5E8F\u5305\u6216\u76F8\u5173\u9875\u9762\u3002 doclet.Help_line_25=\u6846\u67B6/\u65E0\u6846\u67B6 doclet.Help_line_26=\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_line_27=\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_line_28=\u5E38\u91CF\u5B57\u6BB5\u503C\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002 -doclet.Help_line_29=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u4F7F\u7528\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002 +doclet.Help_line_27={0}\u94FE\u63A5\u663E\u793A\u6240\u6709\u7C7B\u548C\u63A5\u53E3 (\u9664\u4E86\u975E\u9759\u6001\u5D4C\u5957\u7C7B\u578B)\u3002 +doclet.Help_line_28=\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_line_29=\u5E38\u91CF\u5B57\u6BB5\u503C\u9875\u9762\u5217\u51FA\u4E86\u9759\u6001\u6700\u7EC8\u5B57\u6BB5\u53CA\u5176\u503C\u3002 +doclet.Help_line_30=\u6B64\u5E2E\u52A9\u6587\u4EF6\u9002\u7528\u4E8E\u4F7F\u7528\u6807\u51C6 doclet \u751F\u6210\u7684 API \u6587\u6863\u3002 doclet.Help_enum_line_1=\u6BCF\u4E2A\u679A\u4E3E\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206: doclet.Help_enum_line_2=\u679A\u4E3E\u58F0\u660E doclet.Help_enum_line_3=\u679A\u4E3E\u8BF4\u660E doclet.Help_annotation_type_line_1=\u6BCF\u4E2A\u6CE8\u91CA\u7C7B\u578B\u90FD\u6709\u5404\u81EA\u7684\u9875\u9762, \u5176\u4E2D\u5305\u542B\u4EE5\u4E0B\u90E8\u5206: doclet.Help_annotation_type_line_2=\u6CE8\u91CA\u7C7B\u578B\u58F0\u660E doclet.Help_annotation_type_line_3=\u6CE8\u91CA\u7C7B\u578B\u8BF4\u660E -doclet.The=\u8BE5 doclet.Style_line_1=Javadoc \u6837\u5F0F\u8868 doclet.Style_line_2=\u5728\u6B64\u5904\u5B9A\u4E49\u989C\u8272, \u5B57\u4F53\u548C\u5176\u4ED6\u6837\u5F0F\u5C5E\u6027\u4EE5\u8986\u76D6\u9ED8\u8BA4\u503C doclet.Style_line_3=\u9875\u9762\u80CC\u666F\u989C\u8272 From b0b388c13753895cd3c453976433fd1b32fa17ff Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 15:07:08 -0700 Subject: [PATCH 141/147] 7043548: message drop 3 translation integration Reviewed-by: yhuang --- .../javac/resources/compiler_ja.properties | 39 ++++++++++++++----- .../javac/resources/compiler_zh_CN.properties | 39 ++++++++++++++----- .../tools/javac/resources/javac_ja.properties | 2 + .../javac/resources/javac_zh_CN.properties | 2 + .../javadoc/resources/javadoc_ja.properties | 2 +- .../resources/javadoc_zh_CN.properties | 2 +- 6 files changed, 66 insertions(+), 20 deletions(-) diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties index 8c40fab4797..890ae3f9597 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties @@ -228,6 +228,9 @@ compiler.err.try.resource.may.not.be.assigned=\u81EA\u52D5\u30AF\u30ED\u30FC\u30 # 0: symbol compiler.err.multicatch.parameter.may.not.be.assigned=\u8907\u6570catch\u30D1\u30E9\u30E1\u30FC\u30BF{0}\u306B\u5024\u3092\u4EE3\u5165\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +# 0: type, 1: type +compiler.err.multicatch.types.must.be.disjoint=\u8907\u6570catch\u6587\u306E\u4EE3\u66FF\u3092\u30B5\u30D6\u30AF\u30E9\u30B9\u5316\u306B\u3088\u3063\u3066\u95A2\u9023\u4ED8\u3051\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\n\u4EE3\u66FF{0}\u306F\u4EE3\u66FF{1}\u306E\u30B5\u30D6\u30AF\u30E9\u30B9\u3067\u3059 + compiler.err.finally.without.try=''finally''\u3078\u306E''try''\u304C\u3042\u308A\u307E\u305B\u3093 # 0: type, 1: message segment @@ -436,8 +439,12 @@ compiler.err.warnings.and.werror=\u8B66\u544A\u304C\u898B\u3064\u304B\u308A-Werr # Errors related to annotation processing +# 0: symbol, 1: string, 2: stack-trace compiler.err.proc.cant.access={0}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\n{1}\n\u8A73\u7D30\u306F\u6B21\u306E\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9\u3067\u8ABF\u67FB\u3057\u3066\u304F\u3060\u3055\u3044\u3002\n{2} +# 0: symbol, 1: string +compiler.err.proc.cant.access.1={0}\u306B\u30A2\u30AF\u30BB\u30B9\u3067\u304D\u307E\u305B\u3093\n{1} + # 0: string compiler.err.proc.cant.find.class=''{0}''\u306E\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3067\u3057\u305F\u3002 @@ -535,8 +542,6 @@ compiler.err.unclosed.comment=\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u compiler.err.unclosed.str.lit=\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093 -compiler.err.unknown.enum.constant=\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB{0}\u5185: \u4E0D\u660E\u306A\u5217\u6319\u578B\u5B9A\u6570\u3067\u3059{1}.{2} - # 0: name 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} @@ -686,6 +691,7 @@ compiler.note.unchecked.plural.additional=\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u # 0: file name compiler.note.sunapi.filename={0}\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 + compiler.note.sunapi.plural=\u4E00\u90E8\u306E\u5165\u529B\u30D5\u30A1\u30A4\u30EB\u306F\u3001\u4ECA\u5F8C\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u524A\u9664\u3055\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u5185\u90E8\u6240\u6709\u306EAPI\u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002 # The following string may appear after one of the above sunapi messages. @@ -796,6 +802,12 @@ compiler.warn.improper.SVUID=serialVersionUID\u306F\u3001\u30AF\u30E9\u30B9{0}\u # 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: 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 + +# 0: list of type +compiler.warn.unreachable.catch.1=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 + # 0: symbol compiler.warn.long.SVUID=serialVersionUID\u306F\u3001\u30AF\u30E9\u30B9{0}\u306Elong\u578B\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059 @@ -888,6 +900,9 @@ compiler.warn.try.explicit.close.call=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF # 0: symbol compiler.warn.try.resource.not.referenced=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9{0}\u306F\u5BFE\u5FDC\u3059\u308Btry\u6587\u306E\u672C\u4F53\u3067\u306F\u53C2\u7167\u3055\u308C\u307E\u305B\u3093 +# 0: type +compiler.warn.try.resource.throws.interrupted.exc=\u81EA\u52D5\u30AF\u30ED\u30FC\u30BA\u53EF\u80FD\u306A\u30EA\u30BD\u30FC\u30B9{0}\u306B\u3001InterruptedException\u3092\u30B9\u30ED\u30FC\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308B\u30E1\u30F3\u30D0\u30FC\u30FB\u30E1\u30BD\u30C3\u30C9close()\u304C\u3042\u308A\u307E\u3059 + compiler.warn.unchecked.assign={0}\u304B\u3089{1}\u3078\u306E\u7121\u691C\u67FB\u4EE3\u5165\u3067\u3059 # 0: symbol, 1: type @@ -924,6 +939,12 @@ compiler.warn.annotation.method.not.found=\u30BF\u30A4\u30D7''{0}''\u5185\u306B\ compiler.warn.annotation.method.not.found.reason=\u30BF\u30A4\u30D7''{0}''\u5185\u306B\u6CE8\u91C8\u30E1\u30BD\u30C3\u30C9''{1}()''\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093: {2} +# 0: symbol, 1: name +compiler.warn.unknown.enum.constant=\u4E0D\u660E\u306A\u5217\u6319\u578B\u5B9A\u6570\u3067\u3059{1}.{2} + +# 0: symbol, 1: name, 2: message segment +compiler.warn.unknown.enum.constant.reason=\u4E0D\u660E\u306A\u5217\u6319\u578B\u5B9A\u6570\u3067\u3059{1}.{2}\n\u7406\u7531: {3} + # 0: type, 1: type compiler.warn.raw.class.use=raw\u578B\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F: {0}\n\u6C4E\u7528\u30AF\u30E9\u30B9{1}\u306E\u578B\u5F15\u6570\u304C\u3042\u308A\u307E\u305B\u3093 @@ -1011,7 +1032,11 @@ compiler.misc.bad.source.file.header=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\ ## above strings. compiler.misc.bad.class.signature=\u30AF\u30E9\u30B9{0}\u306E\u30B7\u30B0\u30CB\u30C1\u30E3\u304C\u4E0D\u6B63\u3067\u3059 -compiler.misc.bad.enclosing.method=\u56F2\u3093\u3067\u3044\u308B\u30E1\u30BD\u30C3\u30C9\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059: {0} +#0: symbol, 1: symbol +compiler.misc.bad.enclosing.class={0}\u306E\u5185\u90E8\u30AF\u30E9\u30B9\u304C\u4E0D\u6B63\u3067\u3059: {1} + +# 0: symbol +compiler.misc.bad.enclosing.method=\u30AF\u30E9\u30B9{0}\u306E\u56F2\u3093\u3067\u3044\u308B\u30E1\u30BD\u30C3\u30C9\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059 compiler.misc.bad.runtime.invisible.param.annotations=RuntimeInvisibleParameterAnnotations\u5C5E\u6027\u304C\u4E0D\u6B63\u3067\u3059: {0} @@ -1140,11 +1165,7 @@ compiler.misc.diamond={0}<> # 0: type compiler.misc.diamond.non.generic=\u975E\u6C4E\u7528\u30AF\u30E9\u30B9{0}\u3067''<>''\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 -# 0: list of type, 1: message segment -compiler.misc.diamond.invalid.arg={1}\u306B\u3064\u3044\u3066\u63A8\u5B9A\u3055\u308C\u305F\u578B\u5F15\u6570{0}\u306F\u3053\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 - -# 0: list of type, 1: message segment -compiler.misc.diamond.invalid.args={1}\u306B\u3064\u3044\u3066\u63A8\u5B9A\u3055\u308C\u305F\u578B\u5F15\u6570{0}\u306F\u3053\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u3067\u306F\u8A31\u53EF\u3055\u308C\u307E\u305B\u3093 +compiler.misc.diamond.and.explicit.params=\u30B3\u30F3\u30B9\u30C8\u30E9\u30AF\u30BF\u306E\u660E\u793A\u7684\u306A\u578B\u30D1\u30E9\u30E1\u30FC\u30BF\u3067\u306F''<>''\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 # 0: type, 1: list of type compiler.misc.explicit.param.do.not.conform.to.bounds=\u660E\u793A\u7684\u306A\u578B\u5F15\u6570{0}\u306F\u3001\u5BA3\u8A00\u3055\u308C\u305F\u5883\u754C{1}\u306B\u9069\u5408\u3057\u307E\u305B\u3093 @@ -1291,7 +1312,7 @@ compiler.misc.varargs.implement={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u5B9F\u88C5 # 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.varargs.clash.with={1}\u306E{0}\u306F{3}\u306E{2}\u3092\u30AA\u30FC\u30D0\u30FC\u30E9\u30A4\u30C9\u3057\u307E\u3059 -compiler.misc.non.denotable.type=\u3053\u3053\u3067\u975E\u578B\u6307\u5B9A\u578B{0}\u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093 +compiler.misc.diamond.and.anon.class=\u533F\u540D\u5185\u90E8\u30AF\u30E9\u30B9\u3067\u306F''<>''\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093 # 0: symbol kind, 1: symbol, 2: symbol, 3: message segment compiler.misc.inapplicable.method={0} {1}.{2}\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\n({3}) diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties index bf7de4b24af..9ede9a363ba 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties @@ -228,6 +228,9 @@ compiler.err.try.resource.may.not.be.assigned=\u53EF\u80FD\u672A\u5206\u914D\u53 # 0: symbol compiler.err.multicatch.parameter.may.not.be.assigned=\u53EF\u80FD\u672A\u5206\u914D multi-catch \u53C2\u6570{0} +# 0: type, 1: type +compiler.err.multicatch.types.must.be.disjoint=multi-catch \u8BED\u53E5\u4E2D\u7684\u66FF\u4EE3\u65E0\u6CD5\u901A\u8FC7\u5B50\u7C7B\u5316\u5173\u8054\n\u66FF\u4EE3{0}\u662F\u66FF\u4EE3{1}\u7684\u5B50\u7C7B + compiler.err.finally.without.try=\u6709 ''finally'', \u4F46\u662F\u6CA1\u6709 ''try'' # 0: type, 1: message segment @@ -436,8 +439,12 @@ compiler.err.warnings.and.werror=\u53D1\u73B0\u8B66\u544A, \u4F46\u6307\u5B9A\u4 # Errors related to annotation processing +# 0: symbol, 1: string, 2: stack-trace compiler.err.proc.cant.access=\u65E0\u6CD5\u8BBF\u95EE{0}\n{1}\n\u6709\u5173\u8BE6\u7EC6\u4FE1\u606F, \u8BF7\u53C2\u9605\u4EE5\u4E0B\u5806\u6808\u8DDF\u8E2A\u3002\n{2} +# 0: symbol, 1: string +compiler.err.proc.cant.access.1=\u65E0\u6CD5\u8BBF\u95EE{0}\n{1} + # 0: string compiler.err.proc.cant.find.class=\u627E\u4E0D\u5230 ''{0}'' \u7684\u7C7B\u6587\u4EF6\u3002 @@ -535,8 +542,6 @@ compiler.err.unclosed.comment=\u672A\u7ED3\u675F\u7684\u6CE8\u91CA compiler.err.unclosed.str.lit=\u672A\u7ED3\u675F\u7684\u5B57\u7B26\u4E32\u6587\u5B57 -compiler.err.unknown.enum.constant=\u5728\u7C7B\u6587\u4EF6{0}\u4E2D: \u672A\u77E5\u7684\u679A\u4E3E\u5E38\u91CF {1}.{2} - # 0: name compiler.err.unsupported.encoding=\u4E0D\u652F\u6301\u7684\u7F16\u7801: {0} @@ -686,6 +691,7 @@ compiler.note.unchecked.plural.additional=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u # 0: file name compiler.note.sunapi.filename={0}\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5185\u90E8\u4E13\u7528 API\u3002 + compiler.note.sunapi.plural=\u67D0\u4E9B\u8F93\u5165\u6587\u4EF6\u4F7F\u7528\u4E86\u53EF\u80FD\u4F1A\u5728\u672A\u6765\u53D1\u884C\u7248\u4E2D\u5220\u9664\u7684\u5185\u90E8\u4E13\u7528 API\u3002 # The following string may appear after one of the above sunapi messages. @@ -796,6 +802,12 @@ compiler.warn.improper.SVUID=\u5FC5\u987B\u5728\u7C7B{0}\u4E2D\u5C06 serialVersi # 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: 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} + +# 0: list of type +compiler.warn.unreachable.catch.1=catch \u5B50\u53E5\u65E0\u6CD5\u8BBF\u95EE\n\u5DF2\u6355\u83B7\u5230\u629B\u51FA\u7684\u7C7B\u578B{0} + # 0: symbol compiler.warn.long.SVUID=serialVersionUID \u5728\u7C7B{0}\u4E2D\u5FC5\u987B\u662F long \u7C7B\u578B @@ -888,6 +900,9 @@ compiler.warn.try.explicit.close.call=\u5728\u53EF\u81EA\u52A8\u7ED3\u675F\u7684 # 0: symbol compiler.warn.try.resource.not.referenced=\u4E0D\u80FD\u5728\u76F8\u5E94\u7684 try \u8BED\u53E5\u7684\u6B63\u6587\u4E2D\u5F15\u7528\u53EF\u81EA\u52A8\u7ED3\u675F\u7684\u8D44\u6E90{0} +# 0: type +compiler.warn.try.resource.throws.interrupted.exc=\u53EF\u81EA\u52A8\u5173\u95ED\u7684\u8D44\u6E90{0}\u5305\u542B\u7684\u6210\u5458\u65B9\u6CD5 close() \u53EF\u80FD\u629B\u51FA InterruptedException + compiler.warn.unchecked.assign=\u672A\u7ECF\u68C0\u67E5\u7684\u5206\u914D: \u5C06{0}\u5206\u914D\u7ED9{1} # 0: symbol, 1: type @@ -924,6 +939,12 @@ compiler.warn.annotation.method.not.found=\u65E0\u6CD5\u627E\u5230\u7C7B\u578B ' compiler.warn.annotation.method.not.found.reason=\u65E0\u6CD5\u627E\u5230\u7C7B\u578B ''{0}'' \u7684\u6CE8\u91CA\u65B9\u6CD5 ''{1}()'': {2} +# 0: symbol, 1: name +compiler.warn.unknown.enum.constant=\u672A\u77E5\u7684\u679A\u4E3E\u5E38\u91CF {1}.{2} + +# 0: symbol, 1: name, 2: message segment +compiler.warn.unknown.enum.constant.reason=\u672A\u77E5\u7684\u679A\u4E3E\u5E38\u91CF {1}.{2}\n\u539F\u56E0: {3} + # 0: type, 1: type compiler.warn.raw.class.use=\u627E\u5230\u539F\u59CB\u7C7B\u578B: {0}\n\u7F3A\u5C11\u6CDB\u578B\u7C7B{1}\u7684\u7C7B\u578B\u53C2\u6570 @@ -1011,7 +1032,11 @@ compiler.misc.bad.source.file.header=\u9519\u8BEF\u7684\u6E90\u6587\u4EF6: {0}\n ## above strings. compiler.misc.bad.class.signature=\u9519\u8BEF\u7684\u7C7B\u7B7E\u540D: {0} -compiler.misc.bad.enclosing.method=\u9519\u8BEF\u7684\u5C01\u95ED\u65B9\u6CD5\u5C5E\u6027: {0} +#0: symbol, 1: symbol +compiler.misc.bad.enclosing.class={0}\u7684\u5C01\u95ED\u7C7B\u9519\u8BEF: {1} + +# 0: symbol +compiler.misc.bad.enclosing.method=\u7C7B {0} \u7684\u5C01\u95ED\u65B9\u6CD5\u5C5E\u6027\u9519\u8BEF compiler.misc.bad.runtime.invisible.param.annotations=\u9519\u8BEF\u7684 RuntimeInvisibleParameterAnnotations \u5C5E\u6027: {0} @@ -1140,11 +1165,7 @@ compiler.misc.diamond={0}<> # 0: type compiler.misc.diamond.non.generic=\u65E0\u6CD5\u5C06 ''<>'' \u4E0E\u975E\u6CDB\u578B\u7C7B{0}\u4E00\u8D77\u4F7F\u7528 -# 0: list of type, 1: message segment -compiler.misc.diamond.invalid.arg=\u6B64\u4E0A\u4E0B\u6587\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E3A{1}\u63A8\u65AD\u7684\u7C7B\u578B\u53C2\u6570{0} - -# 0: list of type, 1: message segment -compiler.misc.diamond.invalid.args=\u6B64\u4E0A\u4E0B\u6587\u4E2D\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E3A{1}\u63A8\u65AD\u7684\u7C7B\u578B\u53C2\u6570{0} +compiler.misc.diamond.and.explicit.params=\u4E0D\u80FD\u5C06 ''<>'' \u4E0E\u6784\u9020\u5668\u7684\u663E\u5F0F\u7C7B\u578B\u53C2\u6570\u4E00\u8D77\u4F7F\u7528 # 0: type, 1: list of type compiler.misc.explicit.param.do.not.conform.to.bounds=\u663E\u5F0F\u7C7B\u578B\u53C2\u6570{0}\u4E0D\u7B26\u5408\u58F0\u660E\u7684\u8303\u56F4{1} @@ -1291,7 +1312,7 @@ compiler.misc.varargs.implement={1}\u4E2D\u7684{0}\u5B9E\u73B0\u4E86{3}\u4E2D\u7 # 0: symbol, 1: symbol, 2: symbol, 3: symbol compiler.misc.varargs.clash.with={1}\u4E2D\u7684{0}\u8986\u76D6\u4E86{3}\u4E2D\u7684{2} -compiler.misc.non.denotable.type=\u6B64\u5904\u4E0D\u5141\u8BB8\u4F7F\u7528\u4E0D\u53EF\u6307\u793A\u7684\u7C7B\u578B{0} +compiler.misc.diamond.and.anon.class=\u65E0\u6CD5\u5C06 ''<>'' \u4E0E\u533F\u540D\u5185\u90E8\u7C7B\u4E00\u8D77\u4F7F\u7528 # 0: symbol kind, 1: symbol, 2: symbol, 3: message segment compiler.misc.inapplicable.method={0} {1}.{2}\u4E0D\u9002\u7528\n({3}) diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties index b87693c9fb7..a368f250376 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/javac_ja.properties @@ -87,6 +87,7 @@ javac.opt.print=\u6307\u5B9A\u3057\u305F\u578B\u306E\u30C6\u30AD\u30B9\u30C8\u88 javac.opt.printRounds=\u6CE8\u91C8\u51E6\u7406\u306E\u5F80\u5FA9\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B javac.opt.printProcessorInfo=\u30D7\u30ED\u30BB\u30C3\u30B5\u304C\u51E6\u7406\u3092\u4F9D\u983C\u3055\u308C\u308B\u6CE8\u91C8\u306B\u3064\u3044\u3066\u306E\u60C5\u5831\u3092\u5370\u5237\u3059\u308B javac.opt.prefer=\u6697\u9ED9\u7684\u306B\u30B3\u30F3\u30D1\u30A4\u30EB\u3055\u308C\u308B\u30AF\u30E9\u30B9\u306B\u3064\u3044\u3066\u3001\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u3068\u30AF\u30E9\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u306E\u4E21\u65B9\u304C\u898B\u3064\u304B\u3063\u305F\u969B\u3069\u3061\u3089\u3092\u8AAD\u307F\u8FBC\u3080\u304B\u6307\u5B9A\u3059\u308B +javac.opt.AT=\u30D5\u30A1\u30A4\u30EB\u304B\u3089\u306E\u8AAD\u53D6\u308A\u30AA\u30D7\u30B7\u30E7\u30F3\u304A\u3088\u3073\u30D5\u30A1\u30A4\u30EB\u540D ## errors @@ -96,6 +97,7 @@ javac.err.invalid.A.key=\u6CE8\u91C8\u30D7\u30ED\u30BB\u30C3\u30B5\u30FB\u30AA\u javac.err.invalid.flag={0}\u306F\u7121\u52B9\u306A\u30D5\u30E9\u30B0\u3067\u3059 javac.err.invalid.target={0}\u306F\u7121\u52B9\u306A\u30BF\u30FC\u30B2\u30C3\u30C8\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059 javac.err.no.source.files=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u304C\u3042\u308A\u307E\u305B\u3093 +javac.err.no.source.files.classes=\u30BD\u30FC\u30B9\u30FB\u30D5\u30A1\u30A4\u30EB\u307E\u305F\u306F\u30AF\u30E9\u30B9\u540D\u304C\u3042\u308A\u307E\u305B\u3093 javac.err.req.arg={0}\u306B\u306F\u5F15\u6570\u304C\u5FC5\u8981\u3067\u3059 javac.err.invalid.source={0}\u306F\u7121\u52B9\u306A\u30BD\u30FC\u30B9\u30FB\u30EA\u30EA\u30FC\u30B9\u3067\u3059 javac.err.error.writing.file={0}\u306E\u66F8\u8FBC\u307F\u30A8\u30E9\u30FC\u3067\u3059\u3002{1} diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties index 47983c1939a..a2f023c735a 100644 --- a/langtools/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties +++ b/langtools/src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties @@ -87,6 +87,7 @@ javac.opt.print=\u8F93\u51FA\u6307\u5B9A\u7C7B\u578B\u7684\u6587\u672C\u8868\u79 javac.opt.printRounds=\u8F93\u51FA\u6709\u5173\u6CE8\u91CA\u5904\u7406\u5FAA\u73AF\u7684\u4FE1\u606F javac.opt.printProcessorInfo=\u8F93\u51FA\u6709\u5173\u8BF7\u6C42\u5904\u7406\u7A0B\u5E8F\u5904\u7406\u54EA\u4E9B\u6CE8\u91CA\u7684\u4FE1\u606F javac.opt.prefer=\u6307\u5B9A\u8BFB\u53D6\u6587\u4EF6, \u5F53\u540C\u65F6\u627E\u5230\u9690\u5F0F\u7F16\u8BD1\u7C7B\u7684\u6E90\u6587\u4EF6\u548C\u7C7B\u6587\u4EF6\u65F6 +javac.opt.AT=\u4ECE\u6587\u4EF6\u8BFB\u53D6\u9009\u9879\u548C\u6587\u4EF6\u540D ## errors @@ -96,6 +97,7 @@ javac.err.invalid.A.key=\u6CE8\u91CA\u5904\u7406\u7A0B\u5E8F\u9009\u9879 ''{0}'' javac.err.invalid.flag=\u65E0\u6548\u7684\u6807\u8BB0: {0} javac.err.invalid.target=\u65E0\u6548\u7684\u76EE\u6807\u53D1\u884C\u7248: {0} javac.err.no.source.files=\u65E0\u6E90\u6587\u4EF6 +javac.err.no.source.files.classes=\u65E0\u6E90\u6587\u4EF6\u6216\u7C7B\u540D javac.err.req.arg={0}\u9700\u8981\u53C2\u6570 javac.err.invalid.source=\u65E0\u6548\u7684\u6E90\u53D1\u884C\u7248: {0} javac.err.error.writing.file=\u5199\u5165{0}\u65F6\u51FA\u9519; {1} diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties index 81754469ce0..72a9992fef3 100644 --- a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties +++ b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties @@ -75,7 +75,7 @@ tag.throws.exception_not_found={0}\u30BF\u30B0\u3001\u30AF\u30E9\u30B9{1}\u304C\ tag.End_delimiter_missing_for_possible_SeeTag=\u30B3\u30E1\u30F3\u30C8\u6587\u5B57\u5217"{0}"\u3067\u3001\u6709\u52B9\u306Asee\u30BF\u30B0\u306B\u7D42\u7AEF\u30C7\u30EA\u30DF\u30BF}\u304C\u3042\u308A\u307E\u305B\u3093 tag.Improper_Use_Of_Link_Tag=\u30A4\u30F3\u30E9\u30A4\u30F3\u30FB\u30BF\u30B0"{0}"\u306B\u7D42\u4E86\u6587\u5B57''}''\u304C\u3042\u308A\u307E\u305B\u3093 javadoc.File_Read_Error=\u30D5\u30A1\u30A4\u30EB{0}\u306E\u8AAD\u8FBC\u307F\u4E2D\u306B\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F -javadoc.Body_missing_from_html_file=HTML\u30D5\u30A1\u30A4\u30EB\u306Bbody\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093 +javadoc.Body_missing_from_html_file=HTML\u306Bbody\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093 javadoc.End_body_missing_from_html_file=HTML\u30D5\u30A1\u30A4\u30EB\u306Bbody\u306E\u9589\u3058\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093 javadoc.Multiple_package_comments=\u30D1\u30C3\u30B1\u30FC\u30B8"{0}"\u306B\u8907\u6570\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30B3\u30E1\u30F3\u30C8\u306E\u30BD\u30FC\u30B9\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F javadoc.class_not_found=\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002 diff --git a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties index 8bbe4a7abf8..1e66cd12366 100644 --- a/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties +++ b/langtools/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties @@ -75,7 +75,7 @@ tag.throws.exception_not_found=\u6807\u8BB0{0}: \u627E\u4E0D\u5230\u7C7B{1}\u300 tag.End_delimiter_missing_for_possible_SeeTag=\u6CE8\u91CA\u5B57\u7B26\u4E32\u4E2D\u53EF\u80FD\u51FA\u73B0\u7684 See \u6807\u8BB0\u7F3A\u5C11\u7ED3\u675F\u5206\u9694\u7B26 }: "{0}" tag.Improper_Use_Of_Link_Tag=\u5185\u5D4C\u6807\u8BB0\u7F3A\u5C11\u7ED3\u675F ''}'' \u5B57\u7B26: "{0}" javadoc.File_Read_Error=\u8BFB\u53D6\u6587\u4EF6{0}\u65F6\u51FA\u9519 -javadoc.Body_missing_from_html_file=HTML \u4E2D\u7F3A\u5C11\u4E3B\u4F53\u6807\u8BB0 +javadoc.Body_missing_from_html_file=HTML \u6587\u4EF6\u4E2D\u7F3A\u5C11\u4E3B\u4F53\u6807\u8BB0 javadoc.End_body_missing_from_html_file=HTML \u6587\u4EF6\u4E2D\u7F3A\u5C11\u4E3B\u4F53\u7ED3\u675F\u6807\u8BB0 javadoc.Multiple_package_comments=\u627E\u5230\u7A0B\u5E8F\u5305 "{0}" \u7684\u591A\u4E2A\u7A0B\u5E8F\u5305\u6CE8\u91CA\u6E90 javadoc.class_not_found=\u627E\u4E0D\u5230\u7C7B{0}\u3002 From 6908741d9b8ee238831cffc97e4dfb27fd747524 Mon Sep 17 00:00:00 2001 From: Michael Fang Date: Tue, 10 May 2011 16:19:40 -0700 Subject: [PATCH 142/147] 7043548: message drop 3 translation integration Reviewed-by: yhuang --- .../resources/accessibility_es.properties | 2 +- .../sun/awt/resources/awt_es.properties | 2 +- .../launcher/resources/launcher_de.properties | 2 +- .../launcher/resources/launcher_es.properties | 2 +- .../launcher/resources/launcher_fr.properties | 2 +- .../launcher/resources/launcher_it.properties | 2 +- .../launcher/resources/launcher_ja.properties | 2 +- .../launcher/resources/launcher_ko.properties | 2 +- .../resources/launcher_pt_BR.properties | 2 +- .../launcher/resources/launcher_sv.properties | 10 +++--- .../resources/launcher_zh_CN.properties | 2 +- .../resources/launcher_zh_TW.properties | 2 +- .../rmi/server/resources/rmid_es.properties | 2 +- .../security/tools/JarSignerResources_ja.java | 10 ++---- .../sun/security/util/AuthResources_de.java | 13 ++++---- .../sun/security/util/AuthResources_es.java | 13 ++++---- .../sun/security/util/AuthResources_fr.java | 13 ++++---- .../sun/security/util/AuthResources_it.java | 13 ++++---- .../sun/security/util/AuthResources_ja.java | 13 ++++---- .../sun/security/util/AuthResources_ko.java | 13 ++++---- .../security/util/AuthResources_pt_BR.java | 13 ++++---- .../sun/security/util/AuthResources_sv.java | 19 +++++------ .../security/util/AuthResources_zh_CN.java | 13 ++++---- .../security/util/AuthResources_zh_TW.java | 13 ++++---- .../sun/security/util/Resources_de.java | 26 +++++---------- .../sun/security/util/Resources_es.java | 28 ++++++---------- .../sun/security/util/Resources_fr.java | 26 +++++---------- .../sun/security/util/Resources_it.java | 24 ++++---------- .../sun/security/util/Resources_ja.java | 22 ++++--------- .../sun/security/util/Resources_ko.java | 22 ++++--------- .../sun/security/util/Resources_pt_BR.java | 32 +++++++------------ .../sun/security/util/Resources_sv.java | 30 ++++++----------- .../sun/security/util/Resources_zh_TW.java | 22 ++++--------- 33 files changed, 163 insertions(+), 249 deletions(-) diff --git a/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties b/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties index fe065eda0a1..b1e2e9ba1ea 100644 --- a/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties +++ b/jdk/src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties @@ -131,7 +131,7 @@ progressMonitor=monitor de progreso # accessible states # managesDescendants=gestiona descendientes -indeterminate=indeterminado +indeterminate=indeterminada truncated=truncado # new for J2SE 1.6.0 diff --git a/jdk/src/share/classes/sun/awt/resources/awt_es.properties b/jdk/src/share/classes/sun/awt/resources/awt_es.properties index bb58b2d7215..327046bc2a5 100644 --- a/jdk/src/share/classes/sun/awt/resources/awt_es.properties +++ b/jdk/src/share/classes/sun/awt/resources/awt_es.properties @@ -175,7 +175,7 @@ AWT.InputMethodSelectionMenu=Seleccionar M\u00E9todo de Entrada AWT.HostInputMethodDisplayName=M\u00E9todos de Entrada del Sistema AWT.InputMethodLanguage.ja=Japon\u00E9s AWT.InputMethodLanguage.ko=Coreano -AWT.InputMethodLanguage.zh=Chino +AWT.InputMethodLanguage.zh=chino AWT.InputMethodLanguage.zh_CN=Chino Simplificado AWT.InputMethodLanguage.zh_TW=Chino Tradicional AWT.InputMethodCreationFailed=No se ha podido crear {0}. Motivo: {1} diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties index e84210f77a2..3678c680b92 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_de.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties index 73a7112ce3a..389c33b0cbc 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_es.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties index 83e1ec4d456..9873df86c31 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_fr.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties index b3f2263c0b4..c4b3a6b233a 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_it.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties index 9576a1a8126..d5f25c97180 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ja.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties index 2de06035009..ee943b098b1 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_ko.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties index 77b62f69834..58d6ba55df0 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_pt_BR.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties index 8a6c9c6a1f3..9255d6ebd37 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_sv.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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,20 +24,20 @@ # # Translators please note do not translate the options themselves -java.launcher.opt.header = Syntax: {0} [-options] class [args...]\n\ (f\u00F6r att k\u00F6ra en klass)\n eller {0} [-options] -jar jarfile [args...]\n\ (f\u00F6r att k\u00F6ra en jar-fil)\nd\u00E4r alternativen omfattar:\n +java.launcher.opt.header = Syntax: {0} [-alternativ] class [argument...]\n\ (f\u00F6r att k\u00F6ra en klass)\n eller {0} [-alternativ] -jar jarfile [argument...]\n\ (f\u00F6r att k\u00F6ra en jar-fil)\nd\u00E4r alternativen omfattar:\n java.launcher.opt.datamodel =\ -d{0}\t anv\u00E4nd en {0}-bitsdatamodell om det finns\n java.launcher.opt.vmselect =\ {0}\t f\u00F6r att v\u00E4lja "{1}" VM\n -java.launcher.opt.hotspot =\ {0}\t \u00E4r en synonym f\u00F6r "{1}" VM [deprecated]\n +java.launcher.opt.hotspot =\ {0}\t \u00E4r en synonym f\u00F6r "{1}" VM [inaktuell]\n java.launcher.ergo.message1 =\ Standard-VM \u00E4r {0} java.launcher.ergo.message2 =\ eftersom du k\u00F6r en serverklassmaskin.\n # Translators please note do not translate the options themselves -java.launcher.opt.footer =\ -cp \n\ -classpath \n\ En {0}-separerad lista med kataloger, JAR-arkiv,\n\ och ZIP-arkiv f\u00F6r s\u00F6kning efter klassfiler.\n\ -D=\n\ ange en systemegenskap\n\ -verbose[:class|gc|jni]\n\ aktivera utf\u00F6rliga utdata\n\ -version skriv ut produktversionen och avsluta\n\ -version:\n\ beg\u00E4r den specifika versionen som ska k\u00F6ras\n\ -showversion skriv ut produktversionen och forts\u00E4tt\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inkludera/exkludera anv\u00E4ndarprivata JRE:er i versions\u00F6kningen\n\ -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n\ -X skriv ut hj\u00E4lp f\u00F6r icke-standardalternativ\n\ -ea[:...|:]\n\ -enableassertions[:...|:]\n\ aktivera verifiering med angiven detaljgrad\n\ -da[:...|:]\n\ -disableassertions[:...|:]\n\ avaktivera verifiering med angiven detaljgrad\n\ -esa | -enablesystemassertions\n\ aktivera systemverifieringar\n\ -dsa | -disablesystemassertions\n\ avaktivera systemverifieringar\n\ -agentlib:[=]\n\ ladda ursprungligt agentbibliotek , e.g. -agentlib:hprof\n\ se \u00E4ven -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:[=]\n\ ladda ursprungligt agentbibliotek med helt s\u00F6kv\u00E4gsnamn\n\ -javaagent:[=]\n\ ladda Java-programspr\u00E5ksagent, se java.lang.instrument\n\ -splash:\n\ visa v\u00E4lkomstsk\u00E4rm med angiven bild\nMer information finns p\u00E5 http://java.sun.com/javase/reference. +java.launcher.opt.footer =\ -cp \n\ -classpath \n\ En {0}-avgr\u00E4nsad lista med kataloger, JAR-arkiv,\n\ och ZIP-arkiv f\u00F6r s\u00F6kning efter klassfiler.\n\ -D=\n\ ange en systemegenskap\n\ -verbose[:class|gc|jni]\n\ aktivera utf\u00F6rliga utdata\n\ -version skriv ut produktversionen och avsluta\n\ -version:\n\ beg\u00E4r den specifika versionen som ska k\u00F6ras\n\ -showversion skriv ut produktversionen och forts\u00E4tt\n\ -jre-restrict-search | -no-jre-restrict-search\n\ inkludera/exkludera anv\u00E4ndarprivata JRE:er i versions\u00F6kningen\n\ -? -help skriv ut det h\u00E4r hj\u00E4lpmeddelandet\n\ -X skriv ut hj\u00E4lp f\u00F6r icke-standardalternativ\n\ -ea[:...|:]\n\ -enableassertions[:...|:]\n\ aktivera verifiering med angiven detaljgrad\n\ -da[:...|:]\n\ -disableassertions[:...|:]\n\ avaktivera verifiering med angiven detaljgrad\n\ -esa | -enablesystemassertions\n\ aktivera systemverifieringar\n\ -dsa | -disablesystemassertions\n\ avaktivera systemverifieringar\n\ -agentlib:[=]\n\ ladda ursprungligt agentbibliotek , e.g. -agentlib:hprof\n\ se \u00E4ven -agentlib:jdwp=help och -agentlib:hprof=help\n\ -agentpath:[=]\n\ ladda ursprungligt agentbibliotek med helt s\u00F6kv\u00E4gsnamn\n\ -javaagent:[=]\n\ ladda Java-programspr\u00E5ksagent, se java.lang.instrument\n\ -splash:\n\ visa v\u00E4lkomstsk\u00E4rm med angiven bild\nMer information finns p\u00E5 http://java.sun.com/javase/reference. # Translators please note do not translate the options themselves -java.launcher.X.usage=\ -Xmixed k\u00F6rning i blandat l\u00E4ge (standard)\n\ -Xint endast k\u00F6rning i tolkat l\u00E4ge\n\ -Xbootclasspath:\n\ ange s\u00F6kv\u00E4g f\u00F6r programladdningsklasser och -resurser\n\ -Xbootclasspath/a:\n\ l\u00E4gg till i slutet av programladdningsklassens s\u00F6kv\u00E4g\n\ -Xbootclasspath/p:\n\ l\u00E4gg till i b\u00F6rjan av programladdningsklassens s\u00F6kv\u00E4g\n\ -Xdiag visa ytterligare diagnostiska meddelanden\n\ -Xnoclassgc avaktivera klassens skr\u00E4pinsamling\n\ -Xincgc aktivera inkrementell skr\u00E4pinsamling\n\ -Xloggc: logga GC-status till en fil med tidsst\u00E4mplar\n\ -Xbatch avaktivera bakgrundskompilering\n\ -Xms ange initial storlek f\u00F6r Java-heap\n\ -Xmx ange maximal storlek f\u00F6r Java-heap\n\ -Xss ange storlek f\u00F6r java-tr\u00E5dsstack\n\ -Xprof utdata f\u00F6r processorprofilering\n\ -Xfuture aktivera str\u00E4ngaste kontroller, f\u00F6rv\u00E4ntad framtida standard\n\ -Xrs minska OS-signalanv\u00E4ndning av Java/VM (se dokumentation)\n\ -Xcheck:jni utf\u00F6r ytterligare kontroller f\u00F6r JNI-funktioner\n\ -Xshare:off anv\u00E4nd inte delad klassdata\n\ -Xshare:auto anv\u00E4nd delad klassdata om det g\u00E5r (standard)\n\ -Xshare:on kr\u00E4v att delad klassdata anv\u00E4nds, annars slutf\u00F6rs inte.\n\ -XshowSettings visa alla inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:all\n\ visa alla inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:vm visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:properties\n\ visa alla egenskapsinst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:locale\n\ visa alla spr\u00E5krelaterade inst\u00E4llningar och forts\u00E4tt\n\n-X-alternativen \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande.\n +java.launcher.X.usage=\ -Xmixed k\u00F6rning i blandat l\u00E4ge (standard)\n\ -Xint endast k\u00F6rning i tolkat l\u00E4ge\n\ -Xbootclasspath:\n\ ange s\u00F6kv\u00E4g f\u00F6r programladdningsklasser och -resurser\n\ -Xbootclasspath/a:\n\ l\u00E4gg till i slutet av programladdningsklassens s\u00F6kv\u00E4g\n\ -Xbootclasspath/p:\n\ l\u00E4gg till i b\u00F6rjan av programladdningsklassens s\u00F6kv\u00E4g\n\ -Xdiag visa ytterligare diagnostiska meddelanden\n\ -Xnoclassgc avaktivera klassens skr\u00E4pinsamling\n\ -Xincgc aktivera inkrementell skr\u00E4pinsamling\n\ -Xloggc: logga GC-status till en fil med tidsst\u00E4mplar\n\ -Xbatch avaktivera bakgrundskompilering\n\ -Xms ange ursprunglig storlek f\u00F6r Java-heap\n\ -Xmx ange maximal storlek f\u00F6r Java-heap\n\ -Xss ange storlek f\u00F6r java-tr\u00E5dsstack\n\ -Xprof utdata f\u00F6r processorprofilering\n\ -Xfuture aktivera str\u00E4ngaste kontroller, f\u00F6rv\u00E4ntad framtida standard\n\ -Xrs minska OS-signalanv\u00E4ndning av Java/VM (se dokumentation)\n\ -Xcheck:jni utf\u00F6r ytterligare kontroller f\u00F6r JNI-funktioner\n\ -Xshare:off anv\u00E4nd inte delade klassdata\n\ -Xshare:auto anv\u00E4nd delade klassdata om det g\u00E5r (standard)\n\ -Xshare:on kr\u00E4v att delade klassdata anv\u00E4nds, annars slutf\u00F6r inte.\n\ -XshowSettings visa alla inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:all\n\ visa alla inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:vm visa alla vm-relaterade inst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:properties\n\ visa alla egenskapsinst\u00E4llningar och forts\u00E4tt\n\ -XshowSettings:locale\n\ visa alla spr\u00E5krelaterade inst\u00E4llningar och forts\u00E4tt\n\n-X-alternativen \u00E4r inte standard och kan \u00E4ndras utan f\u00F6reg\u00E5ende meddelande.\n java.launcher.cls.error1=Fel: Hittar inte eller kan inte ladda huvudklassen {0} java.launcher.cls.error2=Fel: Huvudmetoden \u00E4r inte {0} i klassen {1}, definiera huvudmetoden som:\n\ public static void main(String[] args) diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties index 8499bfd4c9c..806fb5dc9dd 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_CN.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties index ec532273528..2d3608f372e 100644 --- a/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties +++ b/jdk/src/share/classes/sun/launcher/resources/launcher_zh_TW.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2007, 2011, 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 diff --git a/jdk/src/share/classes/sun/rmi/server/resources/rmid_es.properties b/jdk/src/share/classes/sun/rmi/server/resources/rmid_es.properties index d41a29d2804..c11adac18a8 100644 --- a/jdk/src/share/classes/sun/rmi/server/resources/rmid_es.properties +++ b/jdk/src/share/classes/sun/rmi/server/resources/rmid_es.properties @@ -93,4 +93,4 @@ rmid.log.update.warning=\nrmid: (ADVERTENCIA) la actualizaci\u00F3n del log indi rmid.log.snapshot.warning=\nrmid: (GRAVE) la instant\u00E1nea del log indica: # "rmid" should not be translated -rmid.log.recover.warning=\nrmid: (ADVERTENCIA) {0}: saltando el registro del log durante la recuperaci\u00F3n: +rmid.log.recover.warning=\nrmid: (ADVERTENCIA) {0}: se omitir\u00E1 el registro del log durante la recuperaci\u00F3n: diff --git a/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java b/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java index 3fb935fec4a..05bf83c2da4 100644 --- a/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java +++ b/jdk/src/share/classes/sun/security/tools/JarSignerResources_ja.java @@ -74,8 +74,6 @@ public class JarSignerResources_ja extends java.util.ListResourceBundle { "[-digestalg ] \u30C0\u30A4\u30B8\u30A7\u30B9\u30C8\u30FB\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"}, {".sigalg.algorithm.name.of.signature.algorithm", "[-sigalg ] \u7F72\u540D\u30A2\u30EB\u30B4\u30EA\u30BA\u30E0\u306E\u540D\u524D"}, - {".crl.auto.file.include.CRL.in.signed.jar", - "[-crl[:auto| ] \u7F72\u540D\u4ED8\u304Djar\u306BCRL\u3092\u542B\u3081\u308B"}, {".verify.verify.a.signed.JAR.file", "[-verify] \u7F72\u540D\u4ED8\u304DJAR\u30D5\u30A1\u30A4\u30EB\u306E\u691C\u8A3C"}, {".verbose.suboptions.verbose.output.when.signing.verifying.", @@ -183,17 +181,13 @@ public class JarSignerResources_ja extends java.util.ListResourceBundle { {"TSA.location.", "TSA\u306E\u5834\u6240: "}, {"TSA.certificate.", "TSA\u8A3C\u660E\u66F8: "}, {"no.response.from.the.Timestamping.Authority.", - "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7\u5C40\u304B\u3089\u306E\u30EC\u30B9\u30DD\u30F3\u30B9\u304C\u3042\u308A\u307E\u305B\u3093\u3002 "}, - {"When.connecting.from.behind.a.firewall.then.an.HTTP.proxy.may.need.to.be.specified.", - "\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\u30D7\u30ED\u30AD\u30B7\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002 "}, - {"Supply.the.following.options.to.jarsigner.", - "jarsigner\u306B\u6B21\u306E\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044: "}, + "\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"}, {"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"}, - {"with.a.CRL.including.d.entries", "%d\u500B\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u542B\u3080CRL\u3092\u4F7F\u7528"}, {"Warning.", "\u8B66\u544A: "}, {"This.jar.contains.unsigned.entries.which.have.not.been.integrity.checked.", "\u3053\u306Ejar\u306B\u306F\u3001\u6574\u5408\u6027\u30C1\u30A7\u30C3\u30AF\u3092\u3057\u3066\u3044\u306A\u3044\u672A\u7F72\u540D\u306E\u30A8\u30F3\u30C8\u30EA\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002 "}, diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_de.java b/jdk/src/share/classes/sun/security/util/AuthResources_de.java index da363c6d909..191739560cc 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_de.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_de.java @@ -111,17 +111,15 @@ public class AuthResources_de extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "Keystore-Typ erwartet"}, - {"can.not.specify.Principal.with.a.", - "Principal kann nicht mit einer "}, - {"wildcard.class.without.a.wildcard.name", - "Platzhalterklasse ohne Platzhalternamen angegeben werden"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "Principal kann nicht mit einer Platzhalterklasse ohne Platzhalternamen angegeben werden"}, {"expected.codeBase.or.SignedBy", "codeBase oder SignedBy erwartet"}, {"only.Principal.based.grant.entries.permitted", "Nur Principal-basierte Berechtigungseintr\u00E4ge zul\u00E4ssig"}, {"expected.permission.entry", "Berechtigungseintrag erwartet"}, {"number.", "Nummer "}, - {"expected.", "erwartet "}, - {".read.end.of.file", ", Dateiende gelesen"}, + {"expected.expect.read.end.of.file.", + "{0} erwartet, Dateiende gelesen"}, {"expected.read.end.of.file", "\";\" erwartet, Dateiende gelesen"}, {"line.", "Zeile "}, {".expected.", ": erwartet: \""}, @@ -136,6 +134,9 @@ public class AuthResources_de extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "Nullname angegeben"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_es.java b/jdk/src/share/classes/sun/security/util/AuthResources_es.java index ea0de891554..a18bbfe20f0 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_es.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_es.java @@ -111,17 +111,15 @@ public class AuthResources_es extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "se esperaba un tipo de almac\u00E9n de claves"}, - {"can.not.specify.Principal.with.a.", - "no se puede especificar Principal con una "}, - {"wildcard.class.without.a.wildcard.name", - "clase comod\u00EDn sin nombre de comod\u00EDn"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "no se puede especificar Principal con una clase de comod\u00EDn sin un nombre de comod\u00EDn"}, {"expected.codeBase.or.SignedBy", "se esperaba codeBase o SignedBy"}, {"only.Principal.based.grant.entries.permitted", "s\u00F3lo se permite otorgar entradas basadas en Principal"}, {"expected.permission.entry", "se esperaba un permiso de entrada"}, {"number.", "n\u00FAmero "}, - {"expected.", "se esperaba "}, - {".read.end.of.file", ", se ha le\u00EDdo el final de archivo"}, + {"expected.expect.read.end.of.file.", + "se esperaba [{0}], se ha le\u00EDdo final de archivo"}, {"expected.read.end.of.file", "se esperaba ';', se ha le\u00EDdo el final de archivo"}, {"line.", "l\u00EDnea "}, {".expected.", ": se esperaba '"}, @@ -136,6 +134,9 @@ public class AuthResources_es extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "se ha proporcionado un nombre nulo"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_fr.java b/jdk/src/share/classes/sun/security/util/AuthResources_fr.java index 2c6e9a4fdc6..ac92ae2f568 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_fr.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_fr.java @@ -111,17 +111,15 @@ public class AuthResources_fr extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "type de fichier de cl\u00E9s attendu"}, - {"can.not.specify.Principal.with.a.", - "impossible de sp\u00E9cifier le principal avec une "}, - {"wildcard.class.without.a.wildcard.name", - "classe g\u00E9n\u00E9rique sans nom g\u00E9n\u00E9rique"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "impossible de sp\u00E9cifier le principal avec une classe g\u00E9n\u00E9rique sans nom g\u00E9n\u00E9rique"}, {"expected.codeBase.or.SignedBy", "codeBase ou SignedBy attendu"}, {"only.Principal.based.grant.entries.permitted", "seules les entr\u00E9es bas\u00E9es sur Principal sont autoris\u00E9es"}, {"expected.permission.entry", "entr\u00E9e de droit attendue"}, {"number.", "nombre "}, - {"expected.", "attendu "}, - {".read.end.of.file", ", lecture de fin de fichier"}, + {"expected.expect.read.end.of.file.", + "attendu {0}, lecture de fin de fichier"}, {"expected.read.end.of.file", "attendu ';', lecture de fin de fichier"}, {"line.", "ligne "}, {".expected.", ": attendu '"}, @@ -136,6 +134,9 @@ public class AuthResources_fr extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal : "}, {"SolarisPrincipal.", "SolarisPrincipal : "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "nom NULL fourni"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_it.java b/jdk/src/share/classes/sun/security/util/AuthResources_it.java index 1db35a79e46..ec5332e9705 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_it.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_it.java @@ -111,17 +111,15 @@ public class AuthResources_it extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "tipo keystore previsto"}, - {"can.not.specify.Principal.with.a.", - "impossibile specificare il principal con una "}, - {"wildcard.class.without.a.wildcard.name", - "classe carattere jolly senza un nome carattere jolly"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "impossibile specificare un principal con una classe carattere jolly senza un nome carattere jolly"}, {"expected.codeBase.or.SignedBy", "previsto codeBase o SignedBy"}, {"only.Principal.based.grant.entries.permitted", "sono consentiti solo valori garantiti basati sul principal"}, {"expected.permission.entry", "prevista voce di autorizzazione"}, {"number.", "numero "}, - {"expected.", "previsto "}, - {".read.end.of.file", ", letto end of file"}, + {"expected.expect.read.end.of.file.", + "previsto {0}, letto end of file"}, {"expected.read.end.of.file", "previsto ';', letto end of file"}, {"line.", "riga "}, {".expected.", ": previsto '"}, @@ -136,6 +134,9 @@ public class AuthResources_it extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "il nome fornito \u00E8 nullo"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_ja.java b/jdk/src/share/classes/sun/security/util/AuthResources_ja.java index ed7f1e9e879..24818ff2857 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_ja.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_ja.java @@ -111,17 +111,15 @@ public class AuthResources_ja extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "\u4E88\u60F3\u3055\u308C\u305F\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30BF\u30A4\u30D7"}, - {"can.not.specify.Principal.with.a.", - "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u306F\u3001\u6B21\u306E\u3082\u306E\u3092\u4F7F\u7528\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093 "}, - {"wildcard.class.without.a.wildcard.name", - "\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u540D\u306E\u306A\u3044\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u30FB\u30AF\u30E9\u30B9"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u540D\u306E\u306A\u3044\u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u30FB\u30AF\u30E9\u30B9\u3092\u4F7F\u7528\u3057\u3066\u3001\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u3092\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093"}, {"expected.codeBase.or.SignedBy", "\u4E88\u60F3\u3055\u308C\u305FcodeBase\u307E\u305F\u306FSignedBy"}, {"only.Principal.based.grant.entries.permitted", "\u30D7\u30EA\u30F3\u30B7\u30D1\u30EB\u30FB\u30D9\u30FC\u30B9\u306E\u30A8\u30F3\u30C8\u30EA\u306E\u307F\u304C\u8A31\u53EF\u3055\u308C\u307E\u3059\u3002"}, {"expected.permission.entry", "\u4E88\u60F3\u3055\u308C\u305F\u30A2\u30AF\u30BB\u30B9\u6A29\u30A8\u30F3\u30C8\u30EA"}, {"number.", "\u6570 "}, - {"expected.", "\u4E88\u60F3\u5024 "}, - {".read.end.of.file", ", \u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F\u3002"}, + {"expected.expect.read.end.of.file.", + "{0}\u3067\u306F\u306A\u304F\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"}, {"expected.read.end.of.file", "\u4E88\u60F3\u5024\u306F';'\u3067\u3059\u304C\u3001\u30D5\u30A1\u30A4\u30EB\u306E\u7D42\u308F\u308A\u304C\u8AAD\u307F\u8FBC\u307E\u308C\u307E\u3057\u305F"}, {"line.", "\u884C\u756A\u53F7 "}, {".expected.", ": \u4E88\u60F3\u5024'"}, @@ -136,6 +134,9 @@ public class AuthResources_ja extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "null\u306E\u540D\u524D\u304C\u6307\u5B9A\u3055\u308C\u307E\u3057\u305F"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_ko.java b/jdk/src/share/classes/sun/security/util/AuthResources_ko.java index 73cb9ed17b1..a7537fea23e 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_ko.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_ko.java @@ -111,17 +111,15 @@ public class AuthResources_ko extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."}, - {"can.not.specify.Principal.with.a.", - "\uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uC774\uB984 \uC5C6\uC774 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uD074\uB798\uC2A4\uB97C \uC0AC\uC6A9\uD558\uB294"}, - {"wildcard.class.without.a.wildcard.name", - "\uC8FC\uCCB4\uB97C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "\uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uC774\uB984 \uC5C6\uC774 \uC640\uC77C\uB4DC \uCE74\uB4DC \uBB38\uC790 \uD074\uB798\uC2A4\uB97C \uC0AC\uC6A9\uD558\uB294 \uC8FC\uCCB4\uB97C \uC9C0\uC815\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."}, {"expected.codeBase.or.SignedBy", "codeBase \uB610\uB294 SignedBy\uAC00 \uD544\uC694\uD569\uB2C8\uB2E4."}, {"only.Principal.based.grant.entries.permitted", "\uC8FC\uCCB4 \uAE30\uBC18 \uAD8C\uD55C \uBD80\uC5EC \uD56D\uBAA9\uB9CC \uD5C8\uC6A9\uB429\uB2C8\uB2E4."}, {"expected.permission.entry", "\uAD8C\uD55C \uD56D\uBAA9\uC774 \uD544\uC694\uD569\uB2C8\uB2E4."}, {"number.", "\uC22B\uC790 "}, - {"expected.", "\uD544\uC694\uD55C \uD56D\uBAA9: "}, - {".read.end.of.file", ", \uD30C\uC77C\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."}, + {"expected.expect.read.end.of.file.", + "{0}\uC774(\uAC00) \uD544\uC694\uD558\uC9C0\uB9CC \uD30C\uC77C\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."}, {"expected.read.end.of.file", "';'\uC774 \uD544\uC694\uD558\uC9C0\uB9CC \uD30C\uC77C\uC758 \uB05D\uC5D0 \uB3C4\uB2EC\uD588\uC2B5\uB2C8\uB2E4."}, {"line.", "\uD589 "}, {".expected.", ": \uD544\uC694\uD55C \uD56D\uBAA9: '"}, @@ -136,6 +134,9 @@ public class AuthResources_ko extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "\uB110 \uC774\uB984\uC744 \uC81C\uACF5\uD588\uC2B5\uB2C8\uB2E4."} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_pt_BR.java b/jdk/src/share/classes/sun/security/util/AuthResources_pt_BR.java index 460832635f2..f6ececa0ea9 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_pt_BR.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_pt_BR.java @@ -111,17 +111,15 @@ public class AuthResources_pt_BR extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "tipo de armazenamento de chaves esperado"}, - {"can.not.specify.Principal.with.a.", - "n\u00E3o \u00E9 poss\u00EDvel especificar um Principal com uma "}, - {"wildcard.class.without.a.wildcard.name", - "de curinga sem um nome de curinga"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "n\u00E3o \u00E9 poss\u00EDvel especificar um principal com uma classe curinga sem um nome curinga"}, {"expected.codeBase.or.SignedBy", "CodeBase ou SignedBy esperado"}, {"only.Principal.based.grant.entries.permitted", "somente \u00E9 permitido conceder entradas com base no Principal"}, {"expected.permission.entry", "entrada de permiss\u00E3o esperada"}, {"number.", "n\u00FAmero "}, - {"expected.", "esperado "}, - {".read.end.of.file", ", fim de arquivo lido"}, + {"expected.expect.read.end.of.file.", + "esperado {0}, ler fim do arquivo"}, {"expected.read.end.of.file", "esperado ';', fim de arquivo lido"}, {"line.", "linha "}, {".expected.", ": esperado '"}, @@ -136,6 +134,9 @@ public class AuthResources_pt_BR extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "nome nulo fornecido"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_sv.java b/jdk/src/share/classes/sun/security/util/AuthResources_sv.java index ac393ceaff1..f2e82c7ba97 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_sv.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_sv.java @@ -70,11 +70,11 @@ public class AuthResources_sv extends java.util.ListResourceBundle { {"Configuration.Error.Can.not.specify.multiple.entries.for.appName", "Konfigurationsfel:\n\tKan inte ange flera poster f\u00F6r {0}"}, {"Configuration.Error.expected.expect.read.end.of.file.", - "Konfigurationsfel:\n\tf\u00F6rv\u00E4ntade [{0}], l\u00E4ste [end of file]"}, + "Konfigurationsfel:\n\tf\u00F6rv\u00E4ntade [{0}], l\u00E4ste [filslut]"}, {"Configuration.Error.Line.line.expected.expect.found.value.", - "Konfigurationsfel:\n\tLine {0}: f\u00F6rv\u00E4ntade [{1}], hittade [{2}]"}, + "Konfigurationsfel:\n\tRad {0}: f\u00F6rv\u00E4ntade [{1}], hittade [{2}]"}, {"Configuration.Error.Line.line.expected.expect.", - "Konfigurationsfel:\n\tLine {0}: f\u00F6rv\u00E4ntade [{1}]"}, + "Konfigurationsfel:\n\tRad {0}: f\u00F6rv\u00E4ntade [{1}]"}, {"Configuration.Error.Line.line.system.property.value.expanded.to.empty.value", "Konfigurationsfel:\n\tRad {0}: systemegenskapen [{1}] ut\u00F6kad till tomt v\u00E4rde"}, @@ -111,17 +111,15 @@ public class AuthResources_sv extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "f\u00F6rv\u00E4ntad nyckellagertyp"}, - {"can.not.specify.Principal.with.a.", - "kan inte ange identitetshavare med "}, - {"wildcard.class.without.a.wildcard.name", - "jokerteckenklass utan jokerteckennamn"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "kan inte ange identitetshavare med en jokerteckenklass utan ett jokerteckennamn"}, {"expected.codeBase.or.SignedBy", "f\u00F6rv\u00E4ntade codeBase eller SignedBy"}, {"only.Principal.based.grant.entries.permitted", "endast identitetshavarbaserade poster till\u00E5ts"}, {"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"}, {"number.", "antal "}, - {"expected.", "f\u00F6rv\u00E4ntade "}, - {".read.end.of.file", ", l\u00E4ste filslut"}, + {"expected.expect.read.end.of.file.", + "f\u00F6rv\u00E4ntade {0}, l\u00E4ste filslut"}, {"expected.read.end.of.file", "f\u00F6rv\u00E4ntade ';', l\u00E4ste filslut"}, {"line.", "rad "}, {".expected.", ": f\u00F6rv\u00E4ntade '"}, @@ -136,6 +134,9 @@ public class AuthResources_sv extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "angav null-namn"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java b/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java index 3502ced04cd..e98e78fe902 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_zh_CN.java @@ -111,17 +111,15 @@ public class AuthResources_zh_CN extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "\u5E94\u4E3A\u5BC6\u94A5\u5E93\u7C7B\u578B"}, - {"can.not.specify.Principal.with.a.", - "\u6CA1\u6709\u901A\u914D\u7B26\u540D\u79F0, \u65E0\u6CD5\u4F7F\u7528"}, - {"wildcard.class.without.a.wildcard.name", - "\u901A\u914D\u7B26\u7C7B\u6307\u5B9A\u4E3B\u7528\u6237"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "\u6CA1\u6709\u901A\u914D\u7B26\u540D\u79F0, \u65E0\u6CD5\u4F7F\u7528\u901A\u914D\u7B26\u7C7B\u6307\u5B9A\u4E3B\u7528\u6237"}, {"expected.codeBase.or.SignedBy", "\u5E94\u4E3A codeBase \u6216 SignedBy"}, {"only.Principal.based.grant.entries.permitted", "\u53EA\u5141\u8BB8\u57FA\u4E8E\u4E3B\u7528\u6237\u7684\u6388\u6743\u6761\u76EE"}, {"expected.permission.entry", "\u5E94\u4E3A\u6743\u9650\u6761\u76EE"}, {"number.", "\u7F16\u53F7 "}, - {"expected.", "\u5E94\u4E3A "}, - {".read.end.of.file", ", \u8BFB\u53D6\u7684\u662F\u6587\u4EF6\u7ED3\u5C3E"}, + {"expected.expect.read.end.of.file.", + "\u5E94\u4E3A{0}, \u8BFB\u53D6\u7684\u662F\u6587\u4EF6\u7ED3\u5C3E"}, {"expected.read.end.of.file", "\u5E94\u4E3A ';', \u8BFB\u53D6\u7684\u662F\u6587\u4EF6\u7ED3\u5C3E"}, {"line.", "\u884C "}, {".expected.", ": \u5E94\u4E3A '"}, @@ -136,6 +134,9 @@ public class AuthResources_zh_CN extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "\u63D0\u4F9B\u7684\u540D\u79F0\u4E3A\u7A7A\u503C"} }; diff --git a/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java b/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java index 7e8f3c4994a..e31e29d4ef4 100644 --- a/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java +++ b/jdk/src/share/classes/sun/security/util/AuthResources_zh_TW.java @@ -111,17 +111,15 @@ public class AuthResources_zh_TW extends java.util.ListResourceBundle { // com.sun.security.auth.PolicyParser {"expected.keystore.type", "\u9810\u671F\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B"}, - {"can.not.specify.Principal.with.a.", - "\u6C92\u6709\u842C\u7528\u5B57\u5143\u540D\u7A31\uFF0C\u7121\u6CD5\u6307\u5B9A"}, - {"wildcard.class.without.a.wildcard.name", - "\u542B\u6709\u842C\u7528\u5B57\u5143\u985E\u5225\u7684 Principal"}, + {"can.not.specify.Principal.with.a.wildcard.class.without.a.wildcard.name", + "\u6C92\u6709\u842C\u7528\u5B57\u5143\u540D\u7A31\uFF0C\u7121\u6CD5\u6307\u5B9A\u542B\u6709\u842C\u7528\u5B57\u5143\u985E\u5225\u7684 Principal"}, {"expected.codeBase.or.SignedBy", "\u9810\u671F\u7684 codeBase \u6216 SignedBy"}, {"only.Principal.based.grant.entries.permitted", "\u53EA\u5141\u8A31\u4EE5 Principal \u70BA\u57FA\u790E\u7684\u6388\u6B0A\u9805\u76EE"}, {"expected.permission.entry", "\u9810\u671F\u7684\u6B0A\u9650\u9805\u76EE"}, {"number.", "\u865F\u78BC "}, - {"expected.", "\u9810\u671F\u7684 "}, - {".read.end.of.file", "\uFF0C\u8B80\u53D6\u6A94\u6848\u7D50\u5C3E"}, + {"expected.expect.read.end.of.file.", + "\u9810\u671F\u70BA {0}, \u8B80\u53D6\u6A94\u6848\u7D50\u5C3E"}, {"expected.read.end.of.file", "\u9810\u671F\u7684 ';'\uFF0C\u8B80\u53D6\u6A94\u6848\u7D50\u5C3E"}, {"line.", "\u884C "}, {".expected.", ": \u9810\u671F '"}, @@ -136,6 +134,9 @@ public class AuthResources_zh_TW extends java.util.ListResourceBundle { {"SolarisNumericUserPrincipal.", "SolarisNumericUserPrincipal: "}, {"SolarisPrincipal.", "SolarisPrincipal: "}, + // provided.null.name is the NullPointerException message when a + // developer incorrectly passes a null name to the constructor of + // subclasses of java.security.Principal {"provided.null.name", "\u63D0\u4F9B\u7A7A\u503C\u540D\u7A31"} }; diff --git a/jdk/src/share/classes/sun/security/util/Resources_de.java b/jdk/src/share/classes/sun/security/util/Resources_de.java index f31b56e3a1c..26bd331166a 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_de.java +++ b/jdk/src/share/classes/sun/security/util/Resources_de.java @@ -47,7 +47,8 @@ public class Resources_de extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Option]..."}, {"Options.", "Optionen:"}, {"Use.keytool.help.for.all.available.commands", "\"keytool -help\" f\u00FCr alle verf\u00FCgbaren Befehle verwenden"}, @@ -67,6 +68,7 @@ public class Resources_de extends java.util.ListResourceBundle { "Exportiert ein Zertifikat"}, //-exportcert {"Generates.a.key.pair", "Generiert ein Schl\u00FCsselpaar"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "Generiert einen Secret Key"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_de extends java.util.ListResourceBundle { {"Certificate.chain.length.", "Zertifikatkettenl\u00E4nge: "}, {"Certificate.i.1.", "Zertifikat[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Zertifikat-Fingerprint (SHA1): "}, - {"Entry.type.trustedCertEntry.", "Eintragstyp: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Keystore-Typ: "}, {"Keystore.provider.", "Keystore-Provider: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -331,7 +331,7 @@ public class Resources_de extends java.util.ListResourceBundle { {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", "M\u00F6chten Sie es trotzdem zu Ihrem eigenen Keystore hinzuf\u00FCgen? [Nein]: "}, {"Trust.this.certificate.no.", "Diesem Zertifikat vertrauen? [Nein]: "}, - {"YES", "JA"}, + {"YES", "Ja"}, {"New.prompt.", "Neues {0}: "}, {"Passwords.must.differ", "Kennw\u00F6rter m\u00FCssen sich unterscheiden"}, {"Re.enter.new.prompt.", "Neues {0} erneut eingeben: "}, @@ -368,7 +368,7 @@ public class Resources_de extends java.util.ListResourceBundle { "Alias <{0}> verweist auf einen Eintragstyp, der kein Private Key-Eintrag ist. Der Befehl -keyclone unterst\u00FCtzt nur das Clonen von Private Key-Eintr\u00E4gen"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Warnung Warnung Warnung *****************"}, {"Signer.d.", "Signaturgeber #%d:"}, {"Timestamp.", "Zeitstempel:"}, {"Signature.", "Signatur:"}, @@ -378,20 +378,10 @@ public class Resources_de extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "Kein Zertifikat vom SSL-Server"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* Integrit\u00E4t der im Keystore gespeicherten Informationen *"}, + "* Die Integrit\u00E4t der Informationen, die in Ihrem Keystore gespeichert sind, *\n* wurde NICHT gepr\u00FCft. Um die Integrit\u00E4t zu pr\u00FCfen, *\n* m\u00FCssen Sie Ihr Keystore-Kennwort angeben. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* Integrit\u00E4t der in srckeystore gespeicherten Informationen*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* ist NICHT verifiziert worden. Damit die Integrit\u00E4t verifiziert werden kann, *"}, - {".you.must.provide.your.keystore.password.", - "* m\u00FCssen Sie Ihr Keystore-Kennwort angeben. *"}, - {".you.must.provide.the.srckeystore.password.", - "* m\u00FCssen Sie das Kennwort f\u00FCr srckeystore angeben. *"}, - + "* Die Integrit\u00E4t der Informationen, die in Ihrem Srckeystore gespeichert sind, *\n* wurde NICHT gepr\u00FCft. Um die Integrit\u00E4t zu pr\u00FCfen, *\n* m\u00FCssen Sie Ihr Srckeystore-Kennwort angeben. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "Zertifikatantwort enth\u00E4lt keinen Public Key f\u00FCr <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_de extends java.util.ListResourceBundle { "Zertifikat der obersten Ebene in Antwort:\n"}, {".is.not.trusted.", "... ist nicht vertrauensw\u00FCrdig. "}, {"Install.reply.anyway.no.", "Antwort trotzdem installieren? [Nein]: "}, - {"NO", "NEIN"}, + {"NO", "Nein"}, {"Public.keys.in.reply.and.keystore.don.t.match", "Public Keys in Antwort und Keystore stimmen nicht \u00FCberein"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", diff --git a/jdk/src/share/classes/sun/security/util/Resources_es.java b/jdk/src/share/classes/sun/security/util/Resources_es.java index c87e85682a3..59dc88b9f45 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_es.java +++ b/jdk/src/share/classes/sun/security/util/Resources_es.java @@ -47,7 +47,8 @@ public class Resources_es extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Opci\u00F3n]..."}, {"Options.", "Opciones:"}, {"Use.keytool.help.for.all.available.commands", "Utilice\"keytool -help\" para todos los comandos disponibles"}, @@ -67,6 +68,7 @@ public class Resources_es extends java.util.ListResourceBundle { "Exporta el certificado"}, //-exportcert {"Generates.a.key.pair", "Genera un par de claves"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "Genera un clave secreta"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -112,7 +114,7 @@ public class Resources_es extends java.util.ListResourceBundle { {"destination.keystore.type", "tipo de almac\u00E9n de claves de destino"}, //-deststoretype {"distinguished.name", - "nombre distinguido"}, //-dname + "nombre distintivo"}, //-dname {"X.509.extension", "extensi\u00F3n X.509"}, //-ext {"output.file.name", @@ -304,8 +306,6 @@ public class Resources_es extends java.util.ListResourceBundle { {"Certificate.chain.length.", "Longitud de la Cadena de Certificado: "}, {"Certificate.i.1.", "Certificado[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Huella Digital de Certificado (SHA1): "}, - {"Entry.type.trustedCertEntry.", "Tipo de Entrada: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Tipo de Almac\u00E9n de Claves: "}, {"Keystore.provider.", "Proveedor de Almac\u00E9n de Claves: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -331,7 +331,7 @@ public class Resources_es extends java.util.ListResourceBundle { {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", "\u00BFA\u00FAn desea agregarlo a su propio almac\u00E9n de claves? [no]: "}, {"Trust.this.certificate.no.", "\u00BFConfiar en este certificado? [no]: "}, - {"YES", "S\u00CD"}, + {"YES", "S\u00ED"}, {"New.prompt.", "Nuevo {0}: "}, {"Passwords.must.differ", "Las contrase\u00F1as deben ser distintas"}, {"Re.enter.new.prompt.", "Vuelva a escribir el nuevo {0}: "}, @@ -368,7 +368,7 @@ public class Resources_es extends java.util.ListResourceBundle { "El alias <{0}> hace referencia a un tipo de entrada que no es una clave privada. El comando -keyclone s\u00F3lo permite la clonaci\u00F3n de entradas de claves privadas"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Advertencia Advertencia Advertencia *****************"}, {"Signer.d.", "#%d de Firmante:"}, {"Timestamp.", "Registro de Hora:"}, {"Signature.", "Firma:"}, @@ -378,20 +378,10 @@ public class Resources_es extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "Ning\u00FAn certificado del servidor SSL"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* La integridad de la informaci\u00F3n almacenada en su almac\u00E9n de claves *"}, + "* La integridad de la informaci\u00F3n almacenada en el almac\u00E9n de claves *\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contrase\u00F1a del almac\u00E9n de claves. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* La totalidad de la informaci\u00F3n almacenada en srckeystore*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* NO se ha comprobado. Para comprobar dicha integridad, *"}, - {".you.must.provide.your.keystore.password.", - "* deber\u00E1 proporcionar su contrase\u00F1a de almac\u00E9n de claves. *"}, - {".you.must.provide.the.srckeystore.password.", - "* deber\u00E1 indicar la contrase\u00F1a de srckeystore. *"}, - + "* La integridad de la informaci\u00F3n almacenada en srckeystore*\n* NO se ha comprobado. Para comprobar dicha integridad, *\n* debe proporcionar la contrase\u00F1a de srckeystore. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "La respuesta de certificado no contiene una clave p\u00FAblica para <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_es extends java.util.ListResourceBundle { "Certificado de nivel superior en la respuesta:\n"}, {".is.not.trusted.", "... no es de confianza. "}, {"Install.reply.anyway.no.", "\u00BFInstalar respuesta de todos modos? [no]: "}, - {"NO", "NO"}, + {"NO", "No"}, {"Public.keys.in.reply.and.keystore.don.t.match", "Las claves p\u00FAblicas en la respuesta y en el almac\u00E9n de claves no coinciden"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", diff --git a/jdk/src/share/classes/sun/security/util/Resources_fr.java b/jdk/src/share/classes/sun/security/util/Resources_fr.java index c3a171b2de1..385b61853dc 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_fr.java +++ b/jdk/src/share/classes/sun/security/util/Resources_fr.java @@ -47,7 +47,8 @@ public class Resources_fr extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Option]..."}, {"Options.", "Options :"}, {"Use.keytool.help.for.all.available.commands", "Utiliser \"keytool -help\" pour toutes les commandes disponibles"}, @@ -67,6 +68,7 @@ public class Resources_fr extends java.util.ListResourceBundle { "Exporte le certificat"}, //-exportcert {"Generates.a.key.pair", "G\u00E9n\u00E8re une paire de cl\u00E9s"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "G\u00E9n\u00E8re une cl\u00E9 secr\u00E8te"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_fr extends java.util.ListResourceBundle { {"Certificate.chain.length.", "Longueur de cha\u00EEne du certificat : "}, {"Certificate.i.1.", "Certificat[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Empreinte du certificat (SHA1) : "}, - {"Entry.type.trustedCertEntry.", "Type d'entr\u00E9e : trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Type de fichier de cl\u00E9s : "}, {"Keystore.provider.", "Fournisseur de fichier de cl\u00E9s : "}, {"Your.keystore.contains.keyStore.size.entry", @@ -331,7 +331,7 @@ public class Resources_fr extends java.util.ListResourceBundle { {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", "Voulez-vous toujours l'ajouter \u00E0 votre fichier de cl\u00E9s ? [non] : "}, {"Trust.this.certificate.no.", "Faire confiance \u00E0 ce certificat ? [non] : "}, - {"YES", "OUI"}, + {"YES", "Oui"}, {"New.prompt.", "Nouveau {0} : "}, {"Passwords.must.differ", "Les mots de passe doivent diff\u00E9rer"}, {"Re.enter.new.prompt.", "Indiquez encore le nouveau {0} : "}, @@ -368,7 +368,7 @@ public class Resources_fr extends java.util.ListResourceBundle { "L''entr\u00E9e \u00E0 laquelle l''alias <{0}> fait r\u00E9f\u00E9rence n''est pas une entr\u00E9e de type cl\u00E9 priv\u00E9e. La commande -keyclone prend uniquement en charge le clonage des cl\u00E9s priv\u00E9es"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Avertissement Avertissement Avertissement *****************"}, {"Signer.d.", "Signataire n\u00B0%d :"}, {"Timestamp.", "Horodatage :"}, {"Signature.", "Signature :"}, @@ -378,20 +378,10 @@ public class Resources_fr extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "Aucun certificat du serveur SSL"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans votre fichier de cl\u00E9s *"}, + "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans votre fichier de cl\u00E9s *\n* n'a PAS \u00E9t\u00E9 v\u00E9rifi\u00E9e. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de cl\u00E9s. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans le fichier de cl\u00E9s source *"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* n'a PAS \u00E9t\u00E9 v\u00E9rifi\u00E9e. Pour cela, *"}, - {".you.must.provide.your.keystore.password.", - "* vous devez fournir le mot de passe de votre fichier de cl\u00E9s. *"}, - {".you.must.provide.the.srckeystore.password.", - "* vous devez fournir le mot de passe de votre fichier de cl\u00E9s source. *"}, - + "* L'int\u00E9grit\u00E9 des informations stock\u00E9es dans le fichier de cl\u00E9s source *\n* n'a PAS \u00E9t\u00E9 v\u00E9rifi\u00E9e. Pour cela, *\n* vous devez fournir le mot de passe de votre fichier de cl\u00E9s source. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "La r\u00E9ponse au certificat ne contient pas de cl\u00E9 publique pour <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_fr extends java.util.ListResourceBundle { "Certificat de niveau sup\u00E9rieur dans la r\u00E9ponse :\n"}, {".is.not.trusted.", "... non s\u00E9curis\u00E9. "}, {"Install.reply.anyway.no.", "Installer la r\u00E9ponse quand m\u00EAme ? [non] : "}, - {"NO", "NON"}, + {"NO", "Non"}, {"Public.keys.in.reply.and.keystore.don.t.match", "Les cl\u00E9s publiques de la r\u00E9ponse et du fichier de cl\u00E9s ne concordent pas"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", diff --git a/jdk/src/share/classes/sun/security/util/Resources_it.java b/jdk/src/share/classes/sun/security/util/Resources_it.java index ed6bc857dc2..3d3abf09de8 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_it.java +++ b/jdk/src/share/classes/sun/security/util/Resources_it.java @@ -47,7 +47,8 @@ public class Resources_it extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Opzione]..."}, {"Options.", "Opzioni:"}, {"Use.keytool.help.for.all.available.commands", "Utilizzare \"keytool -help\" per visualizzare tutti i comandi disponibili"}, @@ -67,6 +68,7 @@ public class Resources_it extends java.util.ListResourceBundle { "Esporta il certificato"}, //-exportcert {"Generates.a.key.pair", "Genera una coppia di chiavi"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "Genera una chiave segreta"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_it extends java.util.ListResourceBundle { {"Certificate.chain.length.", "Lunghezza catena certificati: "}, {"Certificate.i.1.", "Certificato[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Impronta digitale certificato (SHA1): "}, - {"Entry.type.trustedCertEntry.", "Tipo di voce: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Tipo keystore: "}, {"Keystore.provider.", "Provider keystore: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -368,7 +368,7 @@ public class Resources_it extends java.util.ListResourceBundle { "L''alias <{0}> fa riferimento a un tipo di voce che non \u00E8 una voce di chiave privata. Il comando -keyclone supporta solo la copia delle voci di chiave private."}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Avvertenza Avvertenza Avvertenza *****************"}, {"Signer.d.", "Firmatario #%d:"}, {"Timestamp.", "Indicatore orario:"}, {"Signature.", "Firma:"}, @@ -378,20 +378,10 @@ public class Resources_it extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "Nessun certificato dal server SSL"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* L'integrit\u00E0 delle informazioni memorizzate nel keystore *"}, + "* L'integrit\u00E0 delle informazioni memorizzate nel keystore *\n* NON \u00E8 stata verificata. Per verificarne l'integrit\u00E0 *\n* \u00E8 necessario fornire la password del keystore. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* L'integrit\u00E0 delle informazioni salvate nel srckeystore*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* NON \u00E8 stata verificata. A tale scopo \u00E8 necessario fornire *"}, - {".you.must.provide.your.keystore.password.", - "* la password del keystore. *"}, - {".you.must.provide.the.srckeystore.password.", - "* \u00C8 necessario fornire la password per il srckeystore. *"}, - + "* L'integrit\u00E0 delle informazioni memorizzate nel srckeystore *\n* NON \u00E8 stata verificata. Per verificarne l'integrit\u00E0 *\n* \u00E8 necessario fornire la password del srckeystore. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "La risposta del certificato non contiene la chiave pubblica per <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_it extends java.util.ListResourceBundle { "Certificato di primo livello nella risposta:\n"}, {".is.not.trusted.", "...non \u00E8 considerato sicuro. "}, {"Install.reply.anyway.no.", "Installare la risposta? [no]: "}, - {"NO", "NO"}, + {"NO", "No"}, {"Public.keys.in.reply.and.keystore.don.t.match", "Le chiavi pubbliche nella risposta e nel keystore non corrispondono"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", diff --git a/jdk/src/share/classes/sun/security/util/Resources_ja.java b/jdk/src/share/classes/sun/security/util/Resources_ja.java index 97fd2f3008a..27643dd1b12 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_ja.java +++ b/jdk/src/share/classes/sun/security/util/Resources_ja.java @@ -47,7 +47,8 @@ public class Resources_ja extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [\u30AA\u30D7\u30B7\u30E7\u30F3]..."}, {"Options.", "\u30AA\u30D7\u30B7\u30E7\u30F3:"}, {"Use.keytool.help.for.all.available.commands", "\u4F7F\u7528\u53EF\u80FD\u306A\u3059\u3079\u3066\u306E\u30B3\u30DE\u30F3\u30C9\u306B\u3064\u3044\u3066\u306F\"keytool -help\"\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044"}, @@ -67,6 +68,7 @@ public class Resources_ja extends java.util.ListResourceBundle { "\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 +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "\u79D8\u5BC6\u9375\u3092\u751F\u6210\u3057\u307E\u3059"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_ja extends java.util.ListResourceBundle { {"Certificate.chain.length.", "\u8A3C\u660E\u66F8\u30C1\u30A7\u30FC\u30F3\u306E\u9577\u3055: "}, {"Certificate.i.1.", "\u8A3C\u660E\u66F8[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "\u8A3C\u660E\u66F8\u306E\u30D5\u30A3\u30F3\u30AC\u30D7\u30EA\u30F3\u30C8(SHA1): "}, - {"Entry.type.trustedCertEntry.", "\u30A8\u30F3\u30C8\u30EA\u306E\u30BF\u30A4\u30D7: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30BF\u30A4\u30D7: "}, {"Keystore.provider.", "\u30AD\u30FC\u30B9\u30C8\u30A2\u30FB\u30D7\u30ED\u30D0\u30A4\u30C0: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -368,7 +368,7 @@ public class Resources_ja extends java.util.ListResourceBundle { "\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"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "*****************\u8B66\u544A \u8B66\u544A \u8B66\u544A*****************"}, {"Signer.d.", "\u7F72\u540D\u8005\u756A\u53F7%d:"}, {"Timestamp.", "\u30BF\u30A4\u30E0\u30B9\u30BF\u30F3\u30D7:"}, {"Signature.", "\u7F72\u540D:"}, @@ -378,20 +378,10 @@ public class Resources_ja extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "SSL\u30B5\u30FC\u30D0\u30FC\u304B\u3089\u306E\u8A3C\u660E\u66F8\u304C\u3042\u308A\u307E\u305B\u3093"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* \u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u4FDD\u5B58\u3055\u308C\u305F\u60C5\u5831\u306E\u6574\u5408\u6027 *"}, + "*\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*\u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002*"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* \u30BD\u30FC\u30B9\u30FB\u30AD\u30FC\u30B9\u30C8\u30A2\u306B\u4FDD\u5B58\u3055\u308C\u305F\u60C5\u5831\u306E\u5B8C\u5168\u6027 *"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* \u691C\u8A3C\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002\u6574\u5408\u6027\u3092\u691C\u8A3C\u3059\u308B\u306B\u306F *"}, - {".you.must.provide.your.keystore.password.", - "* \u30AD\u30FC\u30B9\u30C8\u30A2\u306E\u30D1\u30B9\u30EF\u30FC\u30C9\u3092\u5165\u529B\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002 *"}, - {".you.must.provide.the.srckeystore.password.", - "* \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 *"}, - + "*\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"}, diff --git a/jdk/src/share/classes/sun/security/util/Resources_ko.java b/jdk/src/share/classes/sun/security/util/Resources_ko.java index c3da379a2da..d1ec7447783 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_ko.java +++ b/jdk/src/share/classes/sun/security/util/Resources_ko.java @@ -47,7 +47,8 @@ public class Resources_ko extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [\uC635\uC158]..."}, {"Options.", "\uC635\uC158:"}, {"Use.keytool.help.for.all.available.commands", "\uC0AC\uC6A9 \uAC00\uB2A5\uD55C \uBAA8\uB4E0 \uBA85\uB839\uC5D0 \"keytool -help\" \uC0AC\uC6A9"}, @@ -67,6 +68,7 @@ public class Resources_ko extends java.util.ListResourceBundle { "\uC778\uC99D\uC11C\uB97C \uC775\uC2A4\uD3EC\uD2B8\uD569\uB2C8\uB2E4."}, //-exportcert {"Generates.a.key.pair", "\uD0A4 \uC30D\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "\uBCF4\uC548 \uD0A4\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4."}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_ko extends java.util.ListResourceBundle { {"Certificate.chain.length.", "\uC778\uC99D\uC11C \uCCB4\uC778 \uAE38\uC774: "}, {"Certificate.i.1.", "\uC778\uC99D\uC11C[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "\uC778\uC99D\uC11C \uC9C0\uBB38(SHA1): "}, - {"Entry.type.trustedCertEntry.", "\uD56D\uBAA9 \uC720\uD615: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "\uD0A4 \uC800\uC7A5\uC18C \uC720\uD615: "}, {"Keystore.provider.", "\uD0A4 \uC800\uC7A5\uC18C \uC81C\uACF5\uC790: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -368,7 +368,7 @@ public class Resources_ko extends java.util.ListResourceBundle { "<{0}> \uBCC4\uCE6D\uC740 \uC804\uC6A9 \uD0A4 \uD56D\uBAA9\uC774 \uC544\uB2CC \uD56D\uBAA9 \uC720\uD615\uC744 \uCC38\uC870\uD569\uB2C8\uB2E4. -keyclone \uBA85\uB839\uC740 \uC804\uC6A9 \uD0A4 \uD56D\uBAA9\uC758 \uBCF5\uC81C\uB9CC \uC9C0\uC6D0\uD569\uB2C8\uB2E4."}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** \uACBD\uACE0 \uACBD\uACE0 \uACBD\uACE0 *****************"}, {"Signer.d.", "\uC11C\uBA85\uC790 #%d:"}, {"Timestamp.", "\uC2DC\uAC04 \uAE30\uB85D:"}, {"Signature.", "\uC11C\uBA85:"}, @@ -378,20 +378,10 @@ public class Resources_ko extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "SSL \uC11C\uBC84\uC5D0\uC11C \uAC00\uC838\uC628 \uC778\uC99D\uC11C\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4."}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774 *"}, + "* \uD0A4 \uC800\uC7A5\uC18C\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774 *\n* \uD655\uC778\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4! \uBB34\uACB0\uC131\uC744 \uD655\uC778\uD558\uB824\uBA74, *\n* \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* srckeystore\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* \uD655\uC778\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4! \uBB34\uACB0\uC131\uC744 \uD655\uC778\uD558\uB824\uBA74 *"}, - {".you.must.provide.your.keystore.password.", - "* \uD0A4 \uC800\uC7A5\uC18C \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"}, - {".you.must.provide.the.srckeystore.password.", - "* srckeystore \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"}, - + "* srckeystore\uC5D0 \uC800\uC7A5\uB41C \uC815\uBCF4\uC758 \uBB34\uACB0\uC131\uC774 *\n* \uD655\uC778\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4! \uBB34\uACB0\uC131\uC744 \uD655\uC778\uD558\uB824\uBA74, *\n* srckeystore \uBE44\uBC00\uBC88\uD638\uB97C \uC81C\uACF5\uD574\uC57C \uD569\uB2C8\uB2E4. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "\uC778\uC99D\uC11C \uD68C\uC2E0\uC5D0 <{0}>\uC5D0 \uB300\uD55C \uACF5\uC6A9 \uD0A4\uAC00 \uD3EC\uD568\uB418\uC5B4 \uC788\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4."}, diff --git a/jdk/src/share/classes/sun/security/util/Resources_pt_BR.java b/jdk/src/share/classes/sun/security/util/Resources_pt_BR.java index 5d30148ea78..698827f388e 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_pt_BR.java +++ b/jdk/src/share/classes/sun/security/util/Resources_pt_BR.java @@ -47,7 +47,8 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Op\u00E7\u00E3o]..."}, {"Options.", "Op\u00E7\u00F5es:"}, {"Use.keytool.help.for.all.available.commands", "Use \"keytool -help\" para todos os comandos dispon\u00EDveis"}, @@ -67,8 +68,9 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { "Exporta o certificado"}, //-exportcert {"Generates.a.key.pair", "Gera um par de chaves"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", - "Gera uma chave secreta"}, //-genseckey + "Gera uma chave Secreta"}, //-genseckey {"Generates.certificate.from.a.certificate.request", "Gera um certificado de uma solicita\u00E7\u00E3o de certificado"}, //-gencert {"Generates.CRL", "Gera CRL"}, //-gencrl @@ -304,8 +306,6 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { {"Certificate.chain.length.", "Comprimento da cadeia de certificados: "}, {"Certificate.i.1.", "Certificado[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Fingerprint (MD5) do certificado: "}, - {"Entry.type.trustedCertEntry.", "Tipo de entrada: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Tipo de \u00E1rea de armazenamento de chaves: "}, {"Keystore.provider.", "Fornecedor da \u00E1rea de armazenamento de chaves: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -331,7 +331,7 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", "Ainda deseja adicion\u00E1-lo \u00E0 sua \u00E1rea de armazenamento de chaves? [n\u00E3o]: "}, {"Trust.this.certificate.no.", "Confiar neste certificado? [n\u00E3o]: "}, - {"YES", "SIM"}, + {"YES", "Sim"}, {"New.prompt.", "Nova {0}: "}, {"Passwords.must.differ", "As senhas devem ser diferentes"}, {"Re.enter.new.prompt.", "Informe novamente a nova {0}: "}, @@ -368,7 +368,7 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { "O alias <{0}> faz refer\u00EAncia a um tipo de entrada que n\u00E3o \u00E9 uma entrada de chave privada. O comando -keyclone oferece suporte somente \u00E0 clonagem de entradas de chave privada"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Advert\u00EAncia Advert\u00EAncia Advert\u00EAncia *****************"}, {"Signer.d.", "Signat\u00E1rio #%d:"}, {"Timestamp.", "Timestamp:"}, {"Signature.", "Assinatura:"}, @@ -378,20 +378,10 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "N\u00E3o \u00E9 um certificado do servidor SSL"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* A integridade das informa\u00E7\u00F5es armazenadas na sua \u00E1rea de armazenamento de chaves *"}, + "* A integridade das informa\u00E7\u00F5es armazenadas na sua \u00E1rea de armazenamento de chaves *\n* N\u00C3O foi verificada! Para que seja poss\u00EDvel verificar sua integridade, *\n* voc\u00EA deve fornecer a senha da \u00E1rea de armazenamento de chaves. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* A integridade das informa\u00E7\u00F5es armazenadas no srckeystore*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* N\u00C3O foi verificada! Para verificar a integridade destas informa\u00E7\u00F5es, *"}, - {".you.must.provide.your.keystore.password.", - "* voc\u00EA deve fornecer a senha da sua \u00E1rea de armazenamento de chaves. *"}, - {".you.must.provide.the.srckeystore.password.", - "* voc\u00EA deve fornecer a senha do srckeystore. *"}, - + "* A integridade das informa\u00E7\u00F5es armazenadas no srckeystore *\n* N\u00C3O foi verificada! Para que seja poss\u00EDvel verificar sua integridade, *\n* voc\u00EA deve fornecer a senha do srckeystore. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "A resposta do certificado n\u00E3o cont\u00E9m a chave p\u00FAblica de <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { "Certificado de n\u00EDvel superior na resposta:\n"}, {".is.not.trusted.", "... n\u00E3o \u00E9 confi\u00E1vel. "}, {"Install.reply.anyway.no.", "Instalar resposta assim mesmo? [n\u00E3o]: "}, - {"NO", "N\u00C3O"}, + {"NO", "N\u00E3o"}, {"Public.keys.in.reply.and.keystore.don.t.match", "As chaves p\u00FAblicas da resposta e da \u00E1rea de armazenamento de chaves n\u00E3o correspondem"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", @@ -440,9 +430,9 @@ public class Resources_pt_BR extends java.util.ListResourceBundle { "Advert\u00EAncia: Argumento(s) inv\u00E1lido(s) para o construtor: {0}"}, {"Illegal.Principal.Type.type", "Tipo Principal Inv\u00E1lido: {0}"}, {"Illegal.option.option", "Op\u00E7\u00E3o inv\u00E1lida: {0}"}, - {"Usage.policytool.options.", "Uso: policytool [options]"}, + {"Usage.policytool.options.", "Uso: policytool [op\u00E7\u00F5es]"}, {".file.file.policy.file.location", - " [-file ] localiza\u00E7\u00E3o do arquivo de pol\u00EDtica"}, + " [-file ] localiza\u00E7\u00E3o do arquivo de pol\u00EDtica"}, {"New", "Novo"}, {"Open", "Abrir"}, {"Save", "Salvar"}, diff --git a/jdk/src/share/classes/sun/security/util/Resources_sv.java b/jdk/src/share/classes/sun/security/util/Resources_sv.java index 0c536e4ccbe..8ff0e3e9943 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_sv.java +++ b/jdk/src/share/classes/sun/security/util/Resources_sv.java @@ -47,7 +47,8 @@ public class Resources_sv extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [Alternativ]..."}, {"Options.", "Alternativ:"}, {"Use.keytool.help.for.all.available.commands", "L\u00E4s \"Hj\u00E4lp - Nyckelverktyg\" f\u00F6r alla tillg\u00E4ngliga kommandon"}, @@ -67,6 +68,7 @@ public class Resources_sv extends java.util.ListResourceBundle { "Exporterar certifikat"}, //-exportcert {"Generates.a.key.pair", "Genererar nyckelpar"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "Genererar hemlig nyckel"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_sv extends java.util.ListResourceBundle { {"Certificate.chain.length.", "L\u00E4ngd p\u00E5 certifikatskedja: "}, {"Certificate.i.1.", "Certifikat[{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "Certifikatets fingeravtryck (SHA1): "}, - {"Entry.type.trustedCertEntry.", "Posttyp: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "Nyckellagertyp: "}, {"Keystore.provider.", "Nyckellagerleverant\u00F6r: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -331,7 +331,7 @@ public class Resources_sv extends java.util.ListResourceBundle { {"Do.you.still.want.to.add.it.to.your.own.keystore.no.", "Vill du fortfarande l\u00E4gga till det i ditt eget nyckellagret? [nej]: "}, {"Trust.this.certificate.no.", "Litar du p\u00E5 det h\u00E4r certifikatet? [nej]: "}, - {"YES", "JA"}, + {"YES", "Ja"}, {"New.prompt.", "Nytt {0}: "}, {"Passwords.must.differ", "L\u00F6senorden m\u00E5ste vara olika"}, {"Re.enter.new.prompt.", "Ange nytt {0} igen: "}, @@ -368,7 +368,7 @@ public class Resources_sv extends java.util.ListResourceBundle { "Aliaset <{0}> refererar till en posttyp som inte \u00E4r n\u00E5gon privat nyckelpost. Kommandot -keyclone har endast st\u00F6d f\u00F6r kloning av privata nyckelposter"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** Varning Varning Varning *****************"}, {"Signer.d.", "Signerare #%d:"}, {"Timestamp.", "Tidsst\u00E4mpel:"}, {"Signature.", "Underskrift:"}, @@ -378,20 +378,10 @@ public class Resources_sv extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "Inget certifikat fr\u00E5n SSL-servern"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* Integriteten f\u00F6r den information som lagras i nyckellagerfilen *"}, + "* Integriteten f\u00F6r den information som lagras i nyckellagerfilen *\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* m\u00E5ste du ange l\u00F6senordet f\u00F6r nyckellagret. *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* Integriteten f\u00F6r informationen som lagras i srckeystore*"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* har INTE verifierats! Om du vill verifiera dess integritet, *"}, - {".you.must.provide.your.keystore.password.", - "* m\u00E5ste du ange nyckellagerl\u00F6senord. *"}, - {".you.must.provide.the.srckeystore.password.", - "* du m\u00E5ste ange l\u00F6senordet f\u00F6r srckeystore. *"}, - + "* Integriteten f\u00F6r den information som lagras i srckeystore*\n* har INTE verifierats! Om du vill verifiera dess integritet *\n* m\u00E5ste du ange l\u00F6senordet f\u00F6r srckeystore. *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "Certifikatsvaret inneh\u00E5ller inte n\u00E5gon offentlig nyckel f\u00F6r <{0}>"}, @@ -403,7 +393,7 @@ public class Resources_sv extends java.util.ListResourceBundle { "Toppniv\u00E5certifikatet i svaret:\n"}, {".is.not.trusted.", "... \u00E4r inte betrott. "}, {"Install.reply.anyway.no.", "Vill du installera svaret \u00E4nd\u00E5? [nej]: "}, - {"NO", "NEJ"}, + {"NO", "Nej"}, {"Public.keys.in.reply.and.keystore.don.t.match", "De offentliga nycklarna i svaret och nyckellagret matchar inte varandra"}, {"Certificate.reply.and.certificate.in.keystore.are.identical", @@ -639,9 +629,9 @@ public class Resources_sv extends java.util.ListResourceBundle { {"expected.permission.entry", "f\u00F6rv\u00E4ntade beh\u00F6righetspost"}, {"number.", "antal "}, {"expected.expect.read.end.of.file.", - "f\u00F6rv\u00E4ntade [{0}], l\u00E4ste [end of file]"}, + "f\u00F6rv\u00E4ntade [{0}], l\u00E4ste [filslut]"}, {"expected.read.end.of.file.", - "f\u00F6rv\u00E4ntade [;], l\u00E4ste [end of file]"}, + "f\u00F6rv\u00E4ntade [;], l\u00E4ste [filslut]"}, {"line.number.msg", "rad {0}: {1}"}, {"line.number.expected.expect.found.actual.", "rad {0}: f\u00F6rv\u00E4ntade [{1}], hittade [{2}]"}, diff --git a/jdk/src/share/classes/sun/security/util/Resources_zh_TW.java b/jdk/src/share/classes/sun/security/util/Resources_zh_TW.java index 86b3aafada0..cf0fe5e6c8c 100644 --- a/jdk/src/share/classes/sun/security/util/Resources_zh_TW.java +++ b/jdk/src/share/classes/sun/security/util/Resources_zh_TW.java @@ -47,7 +47,8 @@ public class Resources_zh_TW extends java.util.ListResourceBundle { "*******************************************\n\n"}, // keytool: Help part - {".OPTION.", " [OPTION]..."}, +// "Option" should be translated. + {".OPTION.", " [\u9078\u9805]..."}, {"Options.", "\u9078\u9805:"}, {"Use.keytool.help.for.all.available.commands", "\u4F7F\u7528 \"keytool -help\" \u53D6\u5F97\u6240\u6709\u53EF\u7528\u7684\u547D\u4EE4"}, @@ -67,6 +68,7 @@ public class Resources_zh_TW extends java.util.ListResourceBundle { "\u532F\u51FA\u6191\u8B49"}, //-exportcert {"Generates.a.key.pair", "\u7522\u751F\u91D1\u9470\u7D44"}, //-genkeypair +// translation of "secret" key should be different to "private" key. {"Generates.a.secret.key", "\u7522\u751F\u79D8\u5BC6\u91D1\u9470"}, //-genseckey {"Generates.certificate.from.a.certificate.request", @@ -304,8 +306,6 @@ public class Resources_zh_TW extends java.util.ListResourceBundle { {"Certificate.chain.length.", "\u6191\u8B49\u93C8\u9577\u5EA6: "}, {"Certificate.i.1.", "\u6191\u8B49 [{0,number,integer}]:"}, {"Certificate.fingerprint.SHA1.", "\u6191\u8B49\u6307\u7D0B (SHA1): "}, - {"Entry.type.trustedCertEntry.", "\u8F38\u5165\u985E\u578B: trustedCertEntry\n"}, - {"trustedCertEntry.", "trustedCertEntry,"}, {"Keystore.type.", "\u91D1\u9470\u5132\u5B58\u5EAB\u985E\u578B: "}, {"Keystore.provider.", "\u91D1\u9470\u5132\u5B58\u5EAB\u63D0\u4F9B\u8005: "}, {"Your.keystore.contains.keyStore.size.entry", @@ -368,7 +368,7 @@ public class Resources_zh_TW extends java.util.ListResourceBundle { "\u5225\u540D <{0}> \u6240\u53C3\u7167\u7684\u9805\u76EE\u4E0D\u662F\u79C1\u5BC6\u91D1\u9470\u985E\u578B\u3002-keyclone \u547D\u4EE4\u50C5\u652F\u63F4\u79C1\u5BC6\u91D1\u9470\u9805\u76EE\u7684\u8907\u88FD"}, {".WARNING.WARNING.WARNING.", - "***************** WARNING WARNING WARNING *****************"}, + "***************** \u8B66\u544A \u8B66\u544A \u8B66\u544A *****************"}, {"Signer.d.", "\u7C3D\u7F72\u8005 #%d:"}, {"Timestamp.", "\u6642\u6233:"}, {"Signature.", "\u7C3D\u7AE0:"}, @@ -378,20 +378,10 @@ public class Resources_zh_TW extends java.util.ListResourceBundle { {"No.certificate.from.the.SSL.server", "\u6C92\u6709\u4F86\u81EA SSL \u4F3A\u670D\u5668\u7684\u6191\u8B49"}, - // Translators of the following 5 pairs, ATTENTION: - // the next 5 string pairs are meant to be combined into 2 paragraphs, - // 1+3+4 and 2+3+5. make sure your translation also does. {".The.integrity.of.the.information.stored.in.your.keystore.", - "* \u8CC7\u8A0A\u7684\u5B8C\u6574\u6027\u5DF2\u5132\u5B58\u5728\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D *"}, + "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC\u91D1\u9470\u5132\u5B58\u5EAB\u4E2D\u8CC7\u8A0A *\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C*\n* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u7684\u91D1\u9470\u5132\u5B58\u5EAB\u5BC6\u78BC\u3002 *"}, {".The.integrity.of.the.information.stored.in.the.srckeystore.", - "* \u8CC7\u8A0A\u7684\u5B8C\u6574\u6027\u5DF2\u5132\u5B58\u5728 srckeystore \u4E2D *"}, - {".has.NOT.been.verified.In.order.to.verify.its.integrity.", - "* \u5C1A\u672A\u88AB\u9A57\u8B49\uFF01\u70BA\u4E86\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C*"}, - {".you.must.provide.your.keystore.password.", - "* \u60A8\u5FC5\u9808\u63D0\u4F9B\u60A8\u91D1\u9470\u5132\u5B58\u5EAB\u7684\u5BC6\u78BC\u3002 *"}, - {".you.must.provide.the.srckeystore.password.", - "* \u60A8\u5FC5\u9808\u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"}, - + "* \u5C1A\u672A\u9A57\u8B49\u5132\u5B58\u65BC srckeystore \u4E2D\u8CC7\u8A0A*\n* \u7684\u5B8C\u6574\u6027\uFF01\u82E5\u8981\u9A57\u8B49\u5176\u5B8C\u6574\u6027\uFF0C\u60A8\u5FC5\u9808 *\n* \u63D0\u4F9B srckeystore \u5BC6\u78BC\u3002 *"}, {"Certificate.reply.does.not.contain.public.key.for.alias.", "\u6191\u8B49\u56DE\u8986\u4E26\u672A\u5305\u542B <{0}> \u7684\u516C\u958B\u91D1\u9470"}, From 55d817cdad968f9515aa222c7506b51958fd7969 Mon Sep 17 00:00:00 2001 From: Bhavesh Patel Date: Wed, 11 May 2011 08:30:46 -0700 Subject: [PATCH 143/147] 7043684: Update man pages for JDK 7 tools Reviewed-by: skannan --- jdk/src/linux/doc/man/appletviewer.1 | 16 +- jdk/src/linux/doc/man/apt.1 | 51 +- jdk/src/linux/doc/man/extcheck.1 | 16 +- jdk/src/linux/doc/man/idlj.1 | 527 ++-- jdk/src/linux/doc/man/jar.1 | 170 +- jdk/src/linux/doc/man/jarsigner.1 | 415 ++- jdk/src/linux/doc/man/java.1 | 240 +- jdk/src/linux/doc/man/javac.1 | 719 ++++-- jdk/src/linux/doc/man/javadoc.1 | 2289 ++++------------- jdk/src/linux/doc/man/javah.1 | 26 +- jdk/src/linux/doc/man/javap.1 | 301 +-- jdk/src/linux/doc/man/javaws.1 | 208 +- jdk/src/linux/doc/man/jconsole.1 | 50 +- jdk/src/linux/doc/man/jdb.1 | 74 +- jdk/src/linux/doc/man/jhat.1 | 33 +- jdk/src/linux/doc/man/jinfo.1 | 31 +- jdk/src/linux/doc/man/jmap.1 | 22 +- jdk/src/linux/doc/man/jps.1 | 20 +- jdk/src/linux/doc/man/jrunscript.1 | 64 +- jdk/src/linux/doc/man/jsadebugd.1 | 39 +- jdk/src/linux/doc/man/jstack.1 | 20 +- jdk/src/linux/doc/man/jstat.1 | 118 +- jdk/src/linux/doc/man/jstatd.1 | 22 +- jdk/src/linux/doc/man/jvisualvm.1 | 104 + jdk/src/linux/doc/man/keytool.1 | 1004 ++------ jdk/src/linux/doc/man/native2ascii.1 | 26 +- jdk/src/linux/doc/man/orbd.1 | 26 +- jdk/src/linux/doc/man/pack200.1 | 134 +- jdk/src/linux/doc/man/policytool.1 | 16 +- jdk/src/linux/doc/man/rmic.1 | 73 +- jdk/src/linux/doc/man/rmid.1 | 38 +- jdk/src/linux/doc/man/rmiregistry.1 | 27 +- jdk/src/linux/doc/man/schemagen.1 | 48 +- jdk/src/linux/doc/man/serialver.1 | 32 +- jdk/src/linux/doc/man/servertool.1 | 20 +- jdk/src/linux/doc/man/tnameserv.1 | 57 +- jdk/src/linux/doc/man/unpack200.1 | 80 +- jdk/src/linux/doc/man/wsgen.1 | 14 +- jdk/src/linux/doc/man/wsimport.1 | 289 ++- jdk/src/linux/doc/man/xjc.1 | 124 +- .../solaris/doc/sun/man/man1/appletviewer.1 | 16 +- jdk/src/solaris/doc/sun/man/man1/apt.1 | 51 +- jdk/src/solaris/doc/sun/man/man1/extcheck.1 | 16 +- jdk/src/solaris/doc/sun/man/man1/idlj.1 | 527 ++-- jdk/src/solaris/doc/sun/man/man1/jar.1 | 170 +- jdk/src/solaris/doc/sun/man/man1/jarsigner.1 | 413 ++- jdk/src/solaris/doc/sun/man/man1/java.1 | 240 +- jdk/src/solaris/doc/sun/man/man1/javac.1 | 719 ++++-- jdk/src/solaris/doc/sun/man/man1/javadoc.1 | 2281 ++++------------ jdk/src/solaris/doc/sun/man/man1/javah.1 | 26 +- jdk/src/solaris/doc/sun/man/man1/javap.1 | 301 +-- jdk/src/solaris/doc/sun/man/man1/javaws.1 | 208 +- jdk/src/solaris/doc/sun/man/man1/jconsole.1 | 50 +- jdk/src/solaris/doc/sun/man/man1/jdb.1 | 74 +- jdk/src/solaris/doc/sun/man/man1/jhat.1 | 33 +- jdk/src/solaris/doc/sun/man/man1/jinfo.1 | 31 +- jdk/src/solaris/doc/sun/man/man1/jmap.1 | 22 +- jdk/src/solaris/doc/sun/man/man1/jps.1 | 20 +- jdk/src/solaris/doc/sun/man/man1/jrunscript.1 | 64 +- jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 | 39 +- jdk/src/solaris/doc/sun/man/man1/jstack.1 | 20 +- jdk/src/solaris/doc/sun/man/man1/jstat.1 | 92 +- jdk/src/solaris/doc/sun/man/man1/jstatd.1 | 22 +- jdk/src/solaris/doc/sun/man/man1/jvisualvm.1 | 104 + jdk/src/solaris/doc/sun/man/man1/keytool.1 | 1002 ++------ .../solaris/doc/sun/man/man1/native2ascii.1 | 26 +- jdk/src/solaris/doc/sun/man/man1/orbd.1 | 26 +- jdk/src/solaris/doc/sun/man/man1/pack200.1 | 134 +- jdk/src/solaris/doc/sun/man/man1/policytool.1 | 16 +- jdk/src/solaris/doc/sun/man/man1/rmic.1 | 73 +- jdk/src/solaris/doc/sun/man/man1/rmid.1 | 38 +- .../solaris/doc/sun/man/man1/rmiregistry.1 | 27 +- jdk/src/solaris/doc/sun/man/man1/schemagen.1 | 48 +- jdk/src/solaris/doc/sun/man/man1/serialver.1 | 32 +- jdk/src/solaris/doc/sun/man/man1/servertool.1 | 20 +- jdk/src/solaris/doc/sun/man/man1/tnameserv.1 | 57 +- jdk/src/solaris/doc/sun/man/man1/unpack200.1 | 80 +- jdk/src/solaris/doc/sun/man/man1/wsgen.1 | 12 +- jdk/src/solaris/doc/sun/man/man1/wsimport.1 | 289 ++- jdk/src/solaris/doc/sun/man/man1/xjc.1 | 124 +- 80 files changed, 5998 insertions(+), 9128 deletions(-) create mode 100644 jdk/src/linux/doc/man/jvisualvm.1 create mode 100644 jdk/src/solaris/doc/sun/man/man1/jvisualvm.1 diff --git a/jdk/src/linux/doc/man/appletviewer.1 b/jdk/src/linux/doc/man/appletviewer.1 index 6f31c4565e2..887abbd66e3 100644 --- a/jdk/src/linux/doc/man/appletviewer.1 +++ b/jdk/src/linux/doc/man/appletviewer.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,43 +19,33 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "02 Jun 2010" +.TH appletviewer 1 "10 May 2011" .LP .SH "Name" appletviewer \- The Java Applet Viewer. -.LP -.RS 3 - .LP .LP The \f3appletviewer\fP command allows you to run applets outside of a web browser. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .LP \f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ... .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see .na \f2AppletViewer Tags\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.html. +http://download.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html. .LP .LP \f3Note:\fP The \f3appletviewer\fP requires encoded URLs according to the escaping mechanism defined in RFC2396. Only encoded URLs are supported. However, file names must be unencoded, as specified in RFC2396. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 diff --git a/jdk/src/linux/doc/man/apt.1 b/jdk/src/linux/doc/man/apt.1 index 5a7c8b3c9f0..2d77108a5d4 100644 --- a/jdk/src/linux/doc/man/apt.1 +++ b/jdk/src/linux/doc/man/apt.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "02 Jun 2010" +.TH apt 1 "10 May 2011" .LP .SH "NAME" @@ -50,21 +50,17 @@ One or more files that list source files or other options .SH "DESCRIPTION" .LP .LP -The tool \f2apt\fP, annotation processing tool, includes a set of new reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP. +\f3Note\fP: The \f2apt\fP tool and its associated API contained in the package \f2com.sun.mirror\fP have been deprecated since JDK 7 and are planned to be removed in the next major JDK release. Use the options available in the \f2javac(1)\fP tool and the APIs contained in the packages \f2javax.annotation.processing\fP and \f2javax.lang.model\fP to process annotations. +.LP +.LP +The tool \f2apt\fP, annotation processing tool, includes reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP. .LP .LP A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in .na \f4Getting Started with \fP\f4apt\fP. @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html -.LP -.RS 3 -.TP 3 -Note: -\f2The functionality of \fP\f2apt\fP has been subsumed by the annotation\-processing infrastructure that is now part of the \f2javac(1)\fP tool and standardized for use by all Java compilers. This new infrastructure relies on the language model and annotation\-processing APIs that are now part of the Java Platform. It is recommended that new annotation processor development be based on the new APIs and the \f2javac\fP tool. -.RE - +http://download.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html .LP .SH "OPTIONS" .LP @@ -90,6 +86,12 @@ Specify where to find annotation processor factories; if this option is used, th .TP 3 \-factory classname Name of annotation processor factory to use; bypasses default discovery process +.TP 3 +\-version +Print version information. +.TP 3 +\-X +Display information about non\-standard options. .RE .LP @@ -109,10 +111,35 @@ Specify where to find user class files and annotation processor factories. If \f .LP Consult the javac(1) man page for information on \f2javac\fP options. .LP +.SS +Non\-Standard Options +.LP +.RS 3 +.TP 3 +\-XListAnnotationTypes +List found annotation types. +.TP 3 +\-XListDeclarations +List specified and included declarations. +.TP 3 +\-XPrintAptRounds +Print information about initial and recursive \f2apt\fP rounds. +.TP 3 +\-XPrintFactoryInfo +Print information about which annotations a factory is asked to process. +.TP 3 +\-XclassesAsDecls +Treat both class and source files as declarations to process. +.RE + +.LP +.LP +\f3Note\fP: Because these options are non\-standard, they are subject to change without notice. +.LP .SH "NOTES" .LP .LP -The functionality of \f2apt\fP has been subsumed by the standard annotation\-processing infrastructure now offered by \f2javac\fP. Support for \f2apt\fP and its associated APIs may be discontinued in some future JDK release. +The \f2apt\fP tool and its associated API contained in the package \f2com.sun.mirror\fP have been deprecated since JDK 7 and are planned to be removed in the next major JDK release. Use the options available in the \f2javac(1)\fP tool and the APIs contained in the packages \f2javax.annotation.processing\fP and \f2javax.lang.model\fP to process annotations. .LP .SH "SEE ALSO" .LP diff --git a/jdk/src/linux/doc/man/extcheck.1 b/jdk/src/linux/doc/man/extcheck.1 index 3b1a03ee3fe..9dfe6472adf 100644 --- a/jdk/src/linux/doc/man/extcheck.1 +++ b/jdk/src/linux/doc/man/extcheck.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "02 Jun 2010" +.TH extcheck 1 "10 May 2011" .LP .SH "Name" extcheck \- A utility to detect jar conflicts -.LP -.RS 3 - .LP .LP \f3extcheck\fP detects version conflicts between a target jar file and currently installed extension jar files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,8 +40,6 @@ extcheck [ \-verbose ] targetfile.jar .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3extcheck\fP utility checks a specified Jar file for title and version conflicts with any extensions installed in the Java(TM) SDK. Before installing an extension, you can use this utility to see if the same or a more recent version of the extension is already installed. @@ -62,8 +54,6 @@ If no conflict is detected, the return code is \f20\fP. If the manifest of any jar file in the extensions directory has the same \f2Specification\-title\fP and the same or a newer \f2Specification\-version\fP number, a non\-zero error code is returned. A non\-zero error code is also returned if \f2targetfile.jar\fP does not have the \f2Specification\-title\fP or \f2Specification\-version\fP attributes in its manifest. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -76,8 +66,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "SEE ALSO" -.LP - .LP .LP jar(1) diff --git a/jdk/src/linux/doc/man/idlj.1 b/jdk/src/linux/doc/man/idlj.1 index 4b6ab0ccb09..2ed5652bc63 100644 --- a/jdk/src/linux/doc/man/idlj.1 +++ b/jdk/src/linux/doc/man/idlj.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "02 Jun 2010" +.TH idlj 1 "10 May 2011" .LP .SH "Name" idlj \- The IDL\-to\-Java Compiler .LP -.RS 3 - -.LP -\f3idlj\fP generates Java bindings from a given IDL file. -.RE +\f3idlj\fP generates Java bindings from a given IDL file. .SH "Synopsis" -.LP - .LP .nf \f3 @@ -48,28 +42,62 @@ where \f2idl\-file\fP is the name of a file containing Interface Definition Lang .LP .SH "Description" .LP - .LP The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\ For binding details, see the .na \f2OMG IDL to Java Language Language Mapping Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP. +.LP .SS Emitting Client and Server Bindings .LP -.RS 3 +.LP +To generate Java bindings for an IDL file named My.idl: +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi .LP -To generate Java bindings for an IDL file named My.idl: \f2idlj My.idl\fP .LP -This generates the client\-side bindings and is equivalent to: \f2idlj \fP\f4\-fclient\fP\f2 My.idl\fP +This generates the client\-side bindings and is equivalent to: .LP -The client\-side bindings do not include the server\-side skeleton. If you want to generate the server\-side bindings for the interfaces: \f2idlj \fP\f4\-fserver\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient\fP My.idl +.fl +.fi + .LP -Server\-side bindings include the client\-side bindings plus the skeleton, all of which are \f2POA\fP (that is, Inheritance Model) classes. If you want to generate both client and server\-side bindings, use one of the following (equivalent) commands: \f2idlj \fP\f4\-fclient \-fserver\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP +.LP +The client\-side bindings do not include the server\-side skeleton. If you want to generate the server\-side bindings for the interfaces: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fserver\fP My.idl +.fl +.fi + +.LP +.LP +Server\-side bindings include the client\-side bindings plus the skeleton, all of which are \f2POA\fP (that is, Inheritance Model) classes. If you want to generate both client and server\-side bindings, use one of the following (equivalent) commands: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP My.idl +.fl +idlj \f3\-fall\fP My.idl +.fl +.fi + .LP .LP There are two possible server\-side models: the Inheritance Model and the Tie Delegation Model. @@ -82,31 +110,47 @@ The default server\-side model is the \f2Portable Servant Inheritance Model\fP. .na \f2org.omg.PortableServer.Servant\fP @ .fi -http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements. +http://download.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements. .LP .LP The \f2PortableServer\fP module for the .na \f2Portable Object Adapter (POA)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. .LP .LP Another option for the Inheritance Model is to use the \f2\-oldImplBase\fP flag in order to generate server\-side bindings that are compatible with versions of the Java programming language prior to J2SE 1.4. Note that using the \f2\-oldImplBase\fP flag is non\-standard: these APIs are being deprecated. You would use this flag ONLY for compatibility with existing servers written in J2SE 1.3. In that case, you would need to modify an existing MAKEFILE to add the \f2\-oldImplBase\fP flag to the \f2idlj\fP compiler, otherwise POA\-based server\-side mappings will be generated. To generate server\-side bindings that are backwards compatible: .LP -\f2idlj \fP\f4\-fclient \-fserver\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl +.fl +idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl +.fl +.fi + +.LP +.LP +Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2_MyImplBase.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2_MyImplBase\fP. .LP -Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2_MyImplBase.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2_MyImplBase\fP. .LP The other server\-side model is called the Tie Model. This is a delegation model. Because it is not possible to generate ties and skeletons at the same time, they must be generated separately. The following commands generate the bindings for the Tie Model: .LP -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fallTIE\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fall\fP My.idl +.fl +idlj \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. The constructor to \f2MyPOATie\fP takes a \f2delegate\fP. In this example, using the default POA model, the constructor also needs a \f2poa\fP. You must provide the implementation for \f2delegate\fP, but it does not have to inherit from any other class, only the interface \f2MyOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2MyPOATie\fP. For instance: .LP -For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. The constructor to \f2MyPOATie\fP takes a \f2delegate\fP. In this example, using the default POA model, the constructor also needs a \f2poa\fP. You must provide the implementation for \f2delegate\fP, but it does not have to inherit from any other class, only the interface \f2MyOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2MyPOATie\fP. For instance: .nf \f3 .fl @@ -144,13 +188,21 @@ For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. Th .fi .LP -You might want to use the Tie model instead of the typical Inheritance model if your implementation must inherit from some other implementation. Java allows any number of interface inheritance, but there is only one slot for class inheritance. If you use the inheritance model, that slot is used up . By using the Tie Model, that slot is freed up for your own use. The drawback is that it introduces a level of indirection: one extra method call occurs when invoking a method. +.LP +You might want to use the Tie model instead of the typical Inheritance model if your implementation must inherit from some other implementation. Java allows any number of interface inheritance, but there is only one slot for class inheritance. If you use the inheritance model, that slot is used up . By using the Tie Model, that slot is freed up for your own use. The drawback is that it introduces a level of indirection: one extra method call occurs when invoking a method. +.LP .LP To generate server\-side, Tie model bindings that are compatible with versions of the IDL to Java language mapping in versions prior to J2SE 1.4. .LP -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fallTIE\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-oldImplBase\fP \f3\-fall\fP My.idl +.fl +idlj \f3\-oldImplBase\fP \f3\-fallTIE\fP My.idl +.fl +.fi + .LP .LP For the interface \f2My\fP, this will generate \f2My_Tie.java\fP. The constructor to \f2My_Tie\fP takes a \f2impl\fP. You must provide the implementation for \f2impl\fP, but it does not have to inherit from any other class, only the interface \f2HelloOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2My_Tie\fP. For instance: @@ -184,201 +236,383 @@ For the interface \f2My\fP, this will generate \f2My_Tie.java\fP. The constructo .fi .LP -.RE .SS Specifying Alternate Locations for Emitted Files .LP -.RS 3 +.LP +If you want to direct the emitted files to a directory other than the current directory, invoke the compiler as: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-td /altdir\fP My.idl +.fl +.fi .LP -If you want to direct the emitted files to a directory other than the current directory, invoke the compiler as: -.RS 3 - .LP -\f2idlj \fP\f4\-td /altdir\fP\f2 My.idl\fP -.RE For the interface \f2My\fP, the bindings will be emitted to \f2/altdir/My.java\fP, etc., instead of \f2./My.java\fP. -.RE +.LP .SS Specifying Alternate Locations for Include Files .LP -.RS 3 +.LP +If \f2My.idl\fP included another idl file, \f2MyOther.idl\fP, the compiler assumes that \f2MyOther.idl\fP resides in the local directory. If it resides in \f2/includes\fP, for example, then you would invoke the compiler with the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes\fP My.idl +.fl +.fi .LP -If \f2My.idl\fP included another idl file, \f2MyOther.idl\fP, the compiler assumes that \f2MyOther.idl\fP resides in the local directory. If it resides in \f2/includes\fP, for example, then you would invoke the compiler with the following command: \f2idlj \fP\f4\-i /includes\fP\f2 My.idl\fP .LP -If \f2My.idl\fP also included \f2Another.idl\fP that resided in \f2/moreIncludes\fP, for example, then you would invoke the compiler with the following command: \f2idlj \fP\f4\-i /includes \-i /moreIncludes\fP\f2 My.idl\fP +If \f2My.idl\fP also included \f2Another.idl\fP that resided in \f2/moreIncludes\fP, for example, then you would invoke the compiler with the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl +.fl +.fi + +.LP +.LP +Since this form of include can become irritatingly long, another means of indicating to the compiler where to search for included files is provided. This technique is similar to the idea of an environment variable. Create a file named \f2idl.config\fP in a directory that is listed in your CLASSPATH. Inside of \f2idl.config\fP, provide a line with the following form: +.LP +.nf +\f3 +.fl +includes=/includes;/moreIncludes +.fl +\fP +.fi + .LP -Since this form of include can become irritatingly long, another means of indicating to the compiler where to search for included files is provided. This technique is similar to the idea of an environment variable. Create a file named \f2idl.config\fP in a directory that is listed in your CLASSPATH. Inside of \f2idl.config\fP, provide a line with the following form: \f2includes=/includes;/moreIncludes\fP .LP The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the .na \f2Setting the Classpath\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general. -.RE +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general. +.LP .SS Emitting Bindings for Include Files .LP -.RS 3 +.LP +By default, only those interfaces, structs, etc, that are defined in the idl file on the command line have Java bindings generated for them. The types defined in included files are not generated. For example, assume the following two idl files: +.LP .LP -By default, only those interfaces, structs, etc, that are defined in the idl file on the command line have Java bindings generated for them. The types defined in included files are not generated. For example, assume the following two idl files: \f4My.idl\fP .LP -\f2#include \fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2};\fP -.br -\f4MyOther.idl\fP +\f4My.idl\fP .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\fP\ +.nf +\f3 +.fl +#include +.fl +interface My +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -The following command will only generate the java bindings for \f2My\fP: \f2idlj My.idl\fP + .LP -To generate all of the types in \f2My.idl\fP and all of the types in the files that \f2My.idl\fP includes (in this example, \f2MyOther.idl\fP), use the following command: \f2idlj \fP\f4\-emitAll\fP\f2 My.idl\fP .LP -There is a caveat to the default rule. \f2#include\fP statements which appear at global scope are treated as described. These \f2#include\fP statements can be thought of as import statements. \f2#include\fP statements which appear within some enclosing scope are treated as true \f2#include\fP statements, meaning that the code within the included file is treated as if it appeared in the original file and, therefore, Java bindings are emitted for it. Here is an example: \f4My.idl\fP +\f4MyOther.idl\fP .LP -\f2#include \fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2\ #include \fP -.br -\f2};\ \fP \f4MyOther.idl\fP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\ \fP \f4Embedded.idl\fP + .LP -\f2enum E {one, two, three};\fP\ .LP -Running the following command: \f2idlj My.idl\fP +The following command will only generate the java bindings for \f2My\fP: .LP -will generate the following list of Java files: \f2./MyHolder.java\fP -.br -\f2./MyHelper.java\fP -.br -\f2./_MyStub.java\fP -.br -\f2./MyPackage\fP -.br -\f2./MyPackage/EHolder.java\fP -.br -\f2./MyPackage/EHelper.java\fP -.br -\f2./MyPackage/E.java\fP -.br -\f2./My.java\fP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +To generate all of the types in \f2My.idl\fP and all of the types in the files that \f2My.idl\fP includes (in this example, \f2MyOther.idl\fP), use the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-emitAll\fP My.idl +.fl +.fi + +.LP +.LP +There is a caveat to the default rule. \f2#include\fP statements which appear at global scope are treated as described. These \f2#include\fP statements can be thought of as import statements. \f2#include\fP statements which appear within some enclosing scope are treated as true \f2#include\fP statements, meaning that the code within the included file is treated as if it appeared in the original file and, therefore, Java bindings are emitted for it. Here is an example: +.LP + +.LP +.LP +\f4My.idl\fP +.LP +.nf +\f3 +.fl +#include +.fl +interface My +.fl +{ +.fl + #include +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4Embedded.idl\fP +.LP +.nf +\f3 +.fl +enum E {one, two, three}; +.fl +\fP +.fi + +.LP + +.LP +.LP +Running the following command: +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +will generate the following list of Java files: +.LP +.nf +\f3 +.fl +./MyHolder.java +.fl +./MyHelper.java +.fl +./_MyStub.java +.fl +./MyPackage +.fl +./MyPackage/EHolder.java +.fl +./MyPackage/EHelper.java +.fl +./MyPackage/E.java +.fl +./My.java +.fl +\fP +.fi + +.LP +.LP +Notice that \f2MyOther.java\fP was not generated because it is defined in an import\-like \f2#include\fP. But \f2E.java\fP \f2was\fP generated because it was defined in a true \f2#include\fP. Also notice that since \f2Embedded.idl\fP was included within the scope of the interface \f2My\fP, it appears within the scope of \f2My\fP (that is,in \f2MyPackage\fP). .LP -Notice that \f2MyOther.java\fP was not generated because it is defined in an import\-like \f2#include\fP. But \f2E.java\fP \f2was\fP generated because it was defined in a true \f2#include\fP. Also notice that since \f2Embedded.idl\fP was included within the scope of the interface \f2My\fP, it appears within the scope of \f2My\fP (that is,in \f2MyPackage\fP). .LP If the \f2\-emitAll\fP flag had been used in the previous example, then all types in all included files would be emitted. .LP -.RE .SS Inserting Package Prefixes .LP -.RS 3 +.LP +Suppose that you work for a company named ABC that has constructed the following IDL file: +.LP .LP -Suppose that you work for a company named ABC that has constructed the following IDL file: -.br -\f4Widgets.idl\fP .LP -\f2module Widgets\fP -.br -\f2{\fP -.br -\f2\ interface W1 {...};\fP -.br -\f2\ interface W2 {...};\fP -.br -\f2};\fP\ +\f4Widgets.idl\fP .LP -Running this file through the IDL\-to\-Java compiler will place the Java bindings for \f2W1\fP and \f2W2\fP within the package \f2Widgets\fP. But there is an industry convention that states that a company's packages should reside within a package named \f2com.\fP. The \f2Widgets\fP package is not good enough. To follow convention, it should be \f2com.abc.Widgets\fP. To place this package prefix onto the \f2Widgets\fP module, execute the following: \f2idlj \fP\f4\-pkgPrefix Widgets com.abc\fP\f2 Widgets.idl\fP +.nf +\f3 +.fl +module Widgets +.fl +{ +.fl + interface W1 {...}; +.fl + interface W2 {...}; +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +Running this file through the IDL\-to\-Java compiler will place the Java bindings for \f2W1\fP and \f2W2\fP within the package \f2Widgets\fP. But there is an industry convention that states that a company's packages should reside within a package named \f2com.\fP. The \f2Widgets\fP package is not good enough. To follow convention, it should be \f2com.abc.Widgets\fP. To place this package prefix onto the \f2Widgets\fP module, execute the following: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-pkgPrefix Widgets com.abc\fP Widgets.idl +.fl +.fi + +.LP +.LP +If you have an IDL file which includes \f2Widgets.idl\fP, the \f2\-pkgPrefix\fP flag must appear in that command also. If it does not, then your IDL file will be looking for a \f2Widgets\fP package rather than a \f2com.abc.Widgets\fP package. .LP -If you have an IDL file which includes \f2Widgets.idl\fP, the \f2\-pkgPrefix\fP flag must appear in that command also. If it does not, then your IDL file will be looking for a \f2Widgets\fP package rather than a \f2com.abc.Widgets\fP package. .LP If you have a number of these packages that require prefixes, it might be easier to place them into the \f2idl.config\fP file described above. Each package prefix line should be of the form: .LP -\f2PkgPrefix.=\fP +.nf +\f3 +.fl +PkgPrefix.= +.fl +\fP +.fi + .LP -So the line for the above example would be: \f2PkgPrefix.Widgets=com.abc\fP +So the line for the above example would be: +.nf +\f3 +.fl +PkgPrefix.Widgets=com.abc +.fl +\fP +.fi + .LP .LP The use of this option does not affect the Repository ID. .LP -.RE .SS Defining Symbols Before Compilation .LP -.RS 3 +.LP +You may need to define a symbol for compilation that is not defined within the IDL file, perhaps to include debugging code in the bindings. The command +.LP +.nf +\f3 +.fl +idlj \fP\f3\-d\fP MYDEF My.idl +.fl +.fi .LP -You may need to define a symbol for compilation that is not defined within the IDL file, perhaps to include debugging code in the bindings. The command \f2idlj \fP\f4\-d\fP\f2 MYDEF My.idl\fP .LP is the equivalent of putting the line \f2#define MYDEF\fP inside \f2My.idl\fP. -.RE +.LP .SS Preserving Pre\-Existing Bindings .LP -.RS 3 +.LP +If the Java binding files already exist, the \f2\-keep\fP flag will keep the compiler from overwriting them. The default is to generate all files without considering if they already exist. If you've customized those files (which you should not do unless you are very comfortable with their contents), then the \f2\-keep\fP option is very useful. The command +.LP +.nf +\f3 +.fl +idlj \fP\f3\-keep\fP My.idl +.fl +.fi .LP -If the Java binding files already exist, the \f2\-keep\fP flag will keep the compiler from overwriting them. The default is to generate all files without considering if they already exist. If you've customized those files (which you should not do unless you are very comfortable with their contents), then the \f2\-keep\fP option is very useful. The command \f2idlj \fP\f4\-keep\fP\f2 My.idl\fP .LP -emit all client\-side bindings that do not already exist. -.RE +emits all client\-side bindings that do not already exist. +.LP .SS Viewing Progress of Compilation .LP -.RS 3 +.LP +The IDL\-to\-Java compiler will generate status messages as it progresses through its phases of execution. Use the \f2\-v\fP option to activate this "verbose" mode: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-v\fP My.idl +.fl +.fi .LP -The IDL\-to\-Java compiler will generate status messages as it progresses through its phases of execution. Use the \f2\-v\fP option to activate this "verbose" mode: \f2idlj \fP\f4\-v\fP\f2 My.idl\fP .LP By default the compiler does not operate in verbose mode. -.RE +.LP .SS Displaying Version Information -.LP -.RS 3 - .LP .LP To display the build version of the IDL\-to\-Java compiler, specify the \f2\-version\fP option on the command\-line: .LP -.LP -\f2idlj \-version\fP +.nf +\f3 +.fl +idlj \-version +.fl +\fP +.fi + .LP .LP Version information also appears within the bindings generated by the compiler. Any additional options appearing on the command\-line are ignored. .LP -.RE .SH "Options" -.LP - .LP .RS 3 .TP 3 \-d symbol This is equivalent to the following line in an IDL file: -.RS 3 - -.LP .nf \f3 .fl @@ -386,7 +620,6 @@ This is equivalent to the following line in an IDL file: .fl \fP .fi -.RE .TP 3 \-emitAll Emit all types, including those found in \f2#include\fP files. @@ -410,8 +643,9 @@ Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inher Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module. .TP 3 \-pkgTranslate type package -Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly. -.LP +Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly. +.br +.br If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include: .nf \f3 @@ -420,7 +654,6 @@ If more than one translation matches an identifier, the longest match is chosen. .fl \fP .fi -.LP The following translations would occur: .nf \f3 @@ -435,7 +668,6 @@ foo.baz.bar => buzz.fizz.bar .fl \fP .fi -.LP The following package names cannot be translated: .RS 3 .TP 2 @@ -445,8 +677,7 @@ o o \f2org.omg\fP or any subpackages of \f2org.omg\fP .RE -.LP -Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. +Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. .TP 3 \-skeletonName xxx%yyy Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are: @@ -481,10 +712,10 @@ Display version information and terminate. .RE .LP -See the Description section for more option information. -.SH "Restrictions:" .LP - +See the Description section for more option information. +.LP +.SH "Restrictions:" .LP .RS 3 .TP 2 @@ -497,8 +728,6 @@ The \f2fixed\fP IDL type is not supported. .LP .SH "Known Problems:" -.LP - .LP .RS 3 .TP 2 diff --git a/jdk/src/linux/doc/man/jar.1 b/jdk/src/linux/doc/man/jar.1 index acf3ba727e1..cd59f0aa1d3 100644 --- a/jdk/src/linux/doc/man/jar.1 +++ b/jdk/src/linux/doc/man/jar.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,16 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "02 Jun 2010" +.TH jar 1 "10 May 2011" .LP .SH "Name" jar\-The Java Archive Tool .LP -\f3jar\fP combines multiple files into a single JAR archive file. +\f3jar\fP combines multiple files into a single JAR archive file. .SH "SYNOPSIS" -.LP - .LP .RS 3 .TP 3 @@ -51,9 +49,6 @@ Add index to jar file .LP .LP where: -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -80,10 +75,7 @@ Option to be passed into the Java runtime environment. (There must be no space b .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3jar\fP is a general\-purpose archiving and compression tool, based on ZIP and the .na @@ -92,9 +84,6 @@ The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3ja http://www.gzip.org/zlib/ compression format. However, \f3jar\fP was designed mainly package java applets or applications into a single archive. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be downloaded by a java agent (like a browser) in a single HTTP transaction, rather than requiring a new connection for each piece. This dramatically improves download times. \f3jar\fP also compresses files and so further improves download time. In addition, it allows individual entries in a file to be signed by the applet author so that their origin can be authenticated. The syntax for the jar tool is almost identical to the syntax for the \f2tar\fP command. A \f3jar\fP archive can be used as a class path entry, whether or not it is compressed. .LP Typical usage to combine files into a jar file is: -.LP -.RS 3 - .LP .nf \f3 @@ -103,19 +92,15 @@ Typical usage to combine files into a jar file is: .fl \fP .fi -.RE .LP In this example, all the class files in the current directory are placed into the file named \f2myFile.jar\fP. The jar tool automatically generates a manifest file entry named \f2META\-INF/MANIFEST.MF\fP. It is always the first entry in the jar file. The manifest file declares meta\-information about the archive, and stores that data as \f2name\ :\ value\fP pairs. Refer to the .na \f2JAR file specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. .LP If a jar file should include \f2name\ :\ value\fP pairs contained in an existing manifest file, specify that file using the \f2\-m\fP option: -.LP -.RS 3 - .LP .nf \f3 @@ -124,7 +109,6 @@ If a jar file should include \f2name\ :\ value\fP pairs contained in an existing .fl \fP .fi -.RE .LP An existing manifest file must end with a new line character.\ \f3jar\fP does not parse the last line of a manifest file if it does not end with a new line character. @@ -135,9 +119,6 @@ An existing manifest file must end with a new line character.\ \f3jar\fP does n .LP \f3Note:\ \fP A jar command that specifies \f2cfm\fP on the command line instead of \f2cmf\fP (the order of the m and \-f options are reversed), the \f3jar\fP command line must specify the name of the jar archive first, followed by the name of the manifest file: -.RS 3 - -.LP .nf \f3 .fl @@ -145,15 +126,11 @@ An existing manifest file must end with a new line character.\ \f3jar\fP does n .fl \fP .fi -.RE .LP The manifest is in a text format inspired by RFC822 ASCII format, so it is easy to view and process manifest\-file contents. .LP To extract the files from a jar file, use \f2x\fP: -.LP -.RS 3 - .LP .nf \f3 @@ -162,14 +139,10 @@ To extract the files from a jar file, use \f2x\fP: .fl \fP .fi -.RE .LP .LP To extract individual files from a jar file, supply their filenames: -.LP -.RS 3 - .LP .nf \f3 @@ -178,7 +151,6 @@ To extract individual files from a jar file, supply their filenames: .fl \fP .fi -.RE .LP .LP @@ -186,10 +158,7 @@ Beginning with version 1.3 of the JDK, the \f2jar\fP utility supports .na \f2JarIndex\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest. -.LP -.RS 3 - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest. .LP .nf \f3 @@ -198,7 +167,6 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index, whi .fl \fP .fi -.RE .LP .LP @@ -209,9 +177,6 @@ The application class loader uses the information stored in this file for effici .br .br To copy directories, first compress files in \f2dir1\fP to \f2stdout\fP, then extract from \f2stdin\fP to \f2dir2\fP (omitting the \f2\-f\fP option from both \f2jar\fP commands): -.LP -.RS 3 - .LP .nf \f3 @@ -220,7 +185,6 @@ To copy directories, first compress files in \f2dir1\fP to \f2stdout\fP, then ex .fl \fP .fi -.RE .LP .LP @@ -228,11 +192,9 @@ To review command samples which use \f2jar\fP to opeate on jar files and jar fil .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar. +http://download.oracle.com/javase/tutorial/deployment/jar. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -241,9 +203,6 @@ Creates a new archive file named \f2jarfile\fP (if \f2f\fP is specified) or to s .TP 3 u Updates an existing file \f2jarfile\fP (when \f2f\fP is specified) by adding to it files and directories specified by \f2inputfiles\fP. For example: -.RS 3 - -.LP .nf \f3 .fl @@ -251,11 +210,7 @@ jar uf foo.jar foo.class .fl \fP .fi -.RE would add the file \f2foo.class\fP to the existing jar file \f2foo.jar\fP. The \f2\-u\fP option can also update the manifest entry, as given by this example: -.RS 3 - -.LP .nf \f3 .fl @@ -263,7 +218,6 @@ jar umf manifest foo.jar .fl \fP .fi -.RE updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP. .TP 3 x @@ -274,9 +228,6 @@ Lists the table of contents from \f2jarfile\fP (if \f2f\fP is specified) or stan .TP 3 i Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example: -.RS 3 - -.LP .nf \f3 .fl @@ -284,9 +235,8 @@ jar i foo.jar .fl \fP .fi -.RE .LP -would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example. +would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example. .TP 3 f Specifies the file \f2jarfile\fP to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), indexed (\f2i\fP), or viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if present, they must both appear. Omitting \f2f\fP and \f2jarfile\fP accepts a jar file name from \f2stdin\fP(for x and t) or sends jar file to \f2stdout\fP (for c and u). @@ -301,12 +251,10 @@ M Do not create a manifest file entry (for c and u), or delete a manifest file entry if one exists (for u). .TP 3 m -Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value. -.LP +Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value. +.br +.br On the command line, the letters \f3m\fP and \f3f\fP must appear in the same order that \f2manifest\fP and \f2jarfile\fP appear. Example use: -.RS 3 - -.LP .nf \f3 .fl @@ -314,22 +262,18 @@ jar cmf myManifestFile myFile.jar *.class .fl \fP .fi -.RE You can add special\-purpose \f2name\ :\ value\fP attribute pairs to the manifest that aren't contained in the default manifest. For example, you can add attributes specifying vendor information, version information, package sealing, or to make JAR\-bundled applications executable. See the .na \f2JAR Files\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option. -.LP +http://download.oracle.com/javase/tutorial/deployment/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option. .TP 3 e Sets \f2entrypoint\fP as the application entry point for stand\-alone applications bundled into executable jar file. The use of this option creates or overrides the \f2Main\-Class\fP attribute value in the manifest file. This option can be used during creation of jar file or while updating the jar file. This option specifies the application entry point without editing or creating the manifest file. .br .br +.br For example, this command creates \f2Main.jar\fP where the \f2Main\-Class\fP attribute value in the manifest is set to \f2Main\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -337,12 +281,7 @@ jar cfe Main.jar Main Main.class .fl \fP .fi -.RE -.LP The java runtime can directly invoke this application by running the following command: -.RS 3 - -.LP .nf \f3 .fl @@ -350,11 +289,7 @@ java \-jar Main.jar .fl \fP .fi -.RE If the entrypoint class name is in a package it may use either a dot (".") or slash ("/") character as the delimiter. For example, if \f2Main.class\fP is in a package called \f2foo\fP the entry point can be specified in the following ways: -.RS 3 - -.LP .nf \f3 .fl @@ -362,11 +297,7 @@ jar \-cfe Main.jar foo/Main foo/Main.class .fl \fP .fi -.RE or -.RS 3 - -.LP .nf \f3 .fl @@ -374,18 +305,13 @@ jar \-cfe Main.jar foo.Main foo/Main.class .fl \fP .fi -.RE -\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted. -.LP +\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted. .TP 3 -\-C \ dir +\-C\ dir Temporarily changes directories (\f2cd\fP\ \f2dir\fP) during execution of the \f2jar\fP command while processing the following \f2inputfiles\fP argument. Its operation is intended to be similar to the \f2\-C\fP option of the UNIX \f2tar\fP utility. .br .br For example, this command changes to the \f2classes\fP directory and adds the \f2bar.class\fP from that directory to \f2foo.jar\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -393,11 +319,7 @@ jar uf foo.jar \-C classes bar.class .fl \fP .fi -.RE This command changes to the \f2classes\fP directory and adds to \f2foo.jar\fP all files within the \f2classes\fP directory (without creating a classes directory in the jar file), then changes back to the original directory before changing to the \f2bin\fP directory to add \f2xyz.class\fP to \f2foo.jar\fP. -.RS 3 - -.LP .nf \f3 .fl @@ -405,11 +327,7 @@ jar uf foo.jar \-C classes . \-C bin xyz.class .fl \fP .fi -.RE If \f2classes\fP holds files \f2bar1\fP and \f2bar2\fP, then here's what the jar file will contain using \f2jar tf foo.jar\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -425,7 +343,6 @@ xyz.class .fl \fP .fi -.RE .LP .TP 3 \-Joption @@ -434,8 +351,6 @@ Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of .LP .SH "COMMAND LINE ARGUMENT FILES" -.LP - .LP To shorten or simplify the jar command line, you can specify one or more files that themselves contain arguments to the \f2jar\fP command (except \f2\-J\fP options). This enables you to create jar commands of any length, overcoming command line limits imposed by the operating system. .LP @@ -446,9 +361,6 @@ When executing \f2jar\fP, pass in the path and name of each argument file with t .br .br The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command: -.LP -.RS 3 - .LP .nf \f3 @@ -456,14 +368,10 @@ The example below, \f2classes.list\fP holds the names of files output by a \f2fi % find \fP\f3.\fP \-name '*.class' \-print > classes.list .fl .fi -.RE .LP .LP You can then execute the \f2jar\fP command on \f2Classes.list\fP by passing it to \f2jar\fP using argfile syntax: -.LP -.RS 3 - .LP .nf \f3 @@ -472,13 +380,9 @@ You can then execute the \f2jar\fP command on \f2Classes.list\fP by passing it t .fl \fP .fi -.RE .LP An argument file can specify a path, but any filenames inside the argument file that have relative paths are relative to the current working directory, not to the path passed in. Here is an example: -.RS 3 - -.LP .nf \f3 .fl @@ -486,20 +390,14 @@ An argument file can specify a path, but any filenames inside the argument file .fl \fP .fi -.RE .LP .LP .LP .SH "EXAMPLES" -.LP - .LP To add all the files in a particular directory to an archive (overwriting contents if the archive already exists). Enumerating verbosely (with the \f2\-v\fP option) will tell you more information about the files in the archive, such as their size and last modified date. -.RS 3 - -.LP .nf \f3 .fl @@ -535,13 +433,9 @@ adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%) .fl \fP .fi -.RE .LP If you already have separate subdirectories for images, audio files and classes, you can combine them into a single jar file: -.RS 3 - -.LP .nf \f3 .fl @@ -585,13 +479,9 @@ audio/ bundle.jar classes/ images/ .fl \fP .fi -.RE .LP To see the entry names in the jarfile, use the \f2t\fP option: -.RS 3 - -.LP .nf \f3 .fl @@ -619,7 +509,6 @@ images/at_work.gif .fl \fP .fi -.RE .LP .LP @@ -629,9 +518,6 @@ To add an index file to the jar file for speeding up class loading, use the \f2i Example: .br -.LP -.RS 3 - .LP If you split the inter\-dependent classes for a stock trade application into three jar files: \f2main.jar\fP, \f2buy.jar\fP, and \f2sell.jar\fP. .br @@ -660,38 +546,34 @@ then you can use the \f2\-i\fP option to speed up the class loading time for you .fi .LP -An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources. -.RE +An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources. .SH "SEE ALSO" .LP - .LP .na \f2The Jar Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html +.LP .LP .na \f2The Jar File Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html +.LP .LP .na \f2The JarIndex Spec\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index +.LP .LP .na \f2Jar Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar on the Java Software web site. -.br - +http://download.oracle.com/javase/tutorial/deployment/jar/index.html .LP -pack200(1) +.LP +pack200(1) +.LP + diff --git a/jdk/src/linux/doc/man/jarsigner.1 b/jdk/src/linux/doc/man/jarsigner.1 index 090edd2938e..d646eae2cde 100644 --- a/jdk/src/linux/doc/man/jarsigner.1 +++ b/jdk/src/linux/doc/man/jarsigner.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "02 Jun 2010" +.TH jarsigner 1 "10 May 2011" .LP .SH "Name" jarsigner \- JAR Signing and Verification Tool -.LP -.RS 3 - .LP .LP Generates signatures for Java ARchive (JAR) files, and verifies the signatures of signed JAR files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -50,8 +44,6 @@ Generates signatures for Java ARchive (JAR) files, and verifies the signatures o The jarsigner \-verify command can take zero or more keystore alias names after the jar filename. When specified, jarsigner will check that the certificate used to verify each signed entry in the jar file matches one of the keystore aliases. The aliases are defined in the keystore specified by \-keystore, or the default keystore. .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jarsigner\fP tool is used for two purposes: @@ -108,9 +100,6 @@ The default \f3jarsigner\fP behavior is to \f2sign\fP a JAR (or zip) file. Use t .LP .SS Keystore Aliases -.LP -.RS 3 - .LP .LP All keystore entities are accessed via unique \f2aliases\fP. @@ -121,23 +110,19 @@ When using \f3jarsigner\fP to sign a JAR file, you must specify the alias for th .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4\fP\f3 .fl - \-keypass dukekeypasswd MyJARFile.jar duke + \-keypass \fP\f4\fP\f3 MyJARFile.jar duke .fl \fP .fi .LP .LP -Keystores are protected with a password, so the store password (in this case "myspass") must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password (in this case "dukekeypasswd") must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password. +Keystores are protected with a password, so the store password must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password. .LP -.RE .SS Keystore Location -.LP -.RS 3 - .LP .LP \f3jarsigner\fP has a \f2\-keystore\fP option for specifying the URL of the keystore to be used. The keystore is by default stored in a file named \f2.keystore\fP in the user's home directory, as determined by the \f2user.home\fP system property. On Solaris systems \f2user.home\fP defaults to the user's home directory. @@ -145,12 +130,8 @@ Keystore Location .LP Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based, for example, if it resides on a hardware token device. .LP -.RE .SS Keystore Implementation -.LP -.RS 3 - .LP .LP The \f2KeyStore\fP class provided in the \f2java.security\fP package supplies well\-defined interfaces to access and modify the information in a keystore. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular \f2type\fP of keystore. @@ -166,13 +147,13 @@ Keystore implementations are provider\-based. More specifically, the application .na \f2How to Implement a Provider for the Java Cryptography Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html. .LP .LP Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. .LP .LP -\f3keytool\fP works on any file\-based keystore implementation. (It treats the keytore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. +\f3keytool\fP works on any file\-based keystore implementation. (It treats the keystore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. .LP .LP For \f3jarsigner\fP and \f3keytool\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Change Keystore" command in the Edit menu. @@ -227,40 +208,35 @@ Note that if you us the PKCS#11 provider package, you should refer to the .na \f2KeyTool and JarSigner\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details. +http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details. .LP -.RE .SS Supported Algorithms .LP -.RS 3 - .LP -.LP -By default, \f3jarsigner\fP signs a JAR file using either +By default, \f3jarsigner\fP signs a JAR file using one of the following: .LP .RS 3 .TP 2 o -DSA (Digital Signature Algorithm) with the SHA\-1 digest algorithm, or +DSA (Digital Signature Algorithm) with the SHA1 digest algorithm .TP 2 o -the RSA algorithm with the SHA\-256 digest algorithm. +RSA algorithm with the SHA256 digest algorithm. +.TP 2 +o +EC (Elliptic Curve) cryptography algorithm with the SHA256 with ECDSA (Elliptic Curve Digital Signature Algorithm). .RE .LP .LP -That is, if the signer's public and private keys are DSA keys, \f3jarsigner\fP will sign the JAR file using the "SHA1withDSA" algorithm. If the signer's keys are RSA keys, \f3jarsigner\fP will attempt to sign the JAR file using the "SHA256withRSA" algorithm. +That is, if the signer's public and private keys are DSA keys, \f3jarsigner\fP will sign the JAR file using the "SHA1withDSA" algorithm. If the signer's keys are RSA keys, \f3jarsigner\fP will attempt to sign the JAR file using the "SHA256withRSA" algorithm. If the signer's keys are EC keys, \f3jarsigner\fP will sign the JAR file using the "SHA256withECDSA" algorithm. .LP .LP These default signature algorithms can be overridden using the \f2\-sigalg\fP option. .LP -.RE .SS The Signed JAR File -.LP -.RS 3 - .LP .LP When \f3jarsigner\fP is used to sign a JAR file, the output signed JAR file is exactly the same as the input JAR file, except that it has two additional files placed in the META\-INF directory: @@ -271,7 +247,7 @@ o a signature file, with a .SF extension, and .TP 2 o -a signature block file, with a .DSA extension. +a signature block file, with a .DSA, .RSA, or .EC extension. .RE .LP @@ -281,22 +257,19 @@ The base file names for these two files come from the value of the \f2\-sigFile\ .nf \f3 .fl - \-sigFile MKSIGN +\-sigFile MKSIGN .fl \fP .fi .LP .LP -the files are named "MKSIGN.SF" and "MKSIGN.DSA". +The files are named "MKSIGN.SF" and "MKSIGN.DSA". .LP .LP If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not allowed in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. Legal characters include letters, digits, underscores, and hyphens. .LP \f3The Signature (.SF) File\fP -.LP -.RS 3 - .LP .LP A signature file (the .SF file) looks similar to the manifest file that is always included in a JAR file when \f3jarsigner\fP is used to sign the file. That is, for each source file included in the JAR file, the .SF file has three lines, just as in the manifest file, listing the following: @@ -320,25 +293,14 @@ In the manifest file, the SHA digest value for each source file is the digest (h .LP The signature file also, by default, includes a header containing a hash of the whole manifest file. The presence of the header enables verification optimization, as described in JAR File Verification. .LP -.RE -\f3The Signature Block (.DSA) File\fP +\f3The Signature Block File\fP .LP -.RS 3 - -.LP -.LP -The .SF file is signed and the signature is placed in the .DSA file. The .DSA file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. -.LP -.RE -.RE +The .SF file is signed and the signature is placed in the signature block file. This file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. The file has the extension .DSA, .RSA, or .EC depending on the digest algorithm used. .SS Signature Timestamp .LP -.RS 3 - .LP -.LP -\f2jarsigner\fP tool can now generate and store a signature timestamp when signing a JAR file. In addition, \f2jarsigner\fP supports alternative signing mechanisms. This behavior is optional and is controlled by the user at the time of signing through these options: +\f2jarsigner\fP tool can generate and store a signature timestamp when signing a JAR file. In addition, \f2jarsigner\fP supports alternative signing mechanisms. This behavior is optional and is controlled by the user at the time of signing through these options: .LP .RS 3 .TP 2 @@ -359,12 +321,8 @@ o .LP Each of these options is detailed in the Options section below. .LP -.RE .SS JAR File Verification -.LP -.RS 3 - .LP .LP A successful JAR file verification occurs if the signature(s) are valid, and none of the files that were in the JAR file when the signatures were generated have been changed since then. JAR file verification involves the following steps: @@ -372,18 +330,22 @@ A successful JAR file verification occurs if the signature(s) are valid, and non .RS 3 .TP 3 1. -Verify the signature of the .SF file itself. -.LP -That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with. +Verify the signature of the .SF file itself. +.br +.br +That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with. .TP 3 2. -Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest. -.LP -The .SF file by default includes a header containing a hash of the entire manifest file. When the header is present, then the verification can check to see whether or not the hash in the header indeed matches the hash of the manifest file. If that is the case, verification proceeds to the next step. -.LP -If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File). -.LP -One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file. +Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest. +.br +.br +The .SF file by default includes a header containing a hash of the entire manifest file. When the header is present, then the verification can check to see whether or not the hash in the header indeed matches the hash of the manifest file. If that is the case, verification proceeds to the next step. +.br +.br +If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File). +.br +.br +One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file. .TP 3 3. Read each file in the JAR file that has an entry in the .SF file. While reading, compute the file's digest, and then compare the result with the digest for this file in the manifest section. The digests should be the same, or verification fails. @@ -393,12 +355,8 @@ Read each file in the JAR file that has an entry in the .SF file. While reading, .LP If any serious verification failures occur during the verification process, the process is stopped and a security exception is thrown. It is caught and displayed by \f3jarsigner\fP. .LP -.RE .SS Multiple Signatures for a JAR File -.LP -.RS 3 - .LP .LP A JAR file can be signed by multiple people simply by running the \f3jarsigner\fP tool on the file multiple times, specifying the alias for a different person each time, as in: @@ -435,10 +393,7 @@ When a JAR file is signed multiple times, there are multiple .SF and .DSA files .LP Note: It is also possible for a JAR file to have mixed signatures, some generated by the JDK 1.1 \f3javakey\fP tool and others by \f3jarsigner\fP. That is, \f3jarsigner\fP can be used to sign JAR files already previously signed using \f3javakey\fP. .LP -.RE .SH "OPTIONS" -.LP - .LP .LP The various \f3jarsigner\fP options are listed and described below. Note: @@ -462,12 +417,15 @@ The \f2\-keystore\fP, \f2\-storepass\fP, \f2\-keypass\fP, \f2\-sigfile\fP, \f2\- .RS 3 .TP 3 \-keystore url -Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property. -.LP -A keystore is required when signing, so you must explicitly specify one if the default keystore does not exist (or you want to use one other than the default). -.LP -A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. -.LP +Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property. +.br +.br +A keystore is required when signing, so you must explicitly specify one if the default keystore does not exist (or you want to use one other than the default). +.br +.br +A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. +.br +.br Note: the \f2\-keystore\fP argument can actually be a file name (and path) specification rather than a URL, in which case it will be treated the same as a "file:" URL. That is, .nf \f3 @@ -494,79 +452,93 @@ o \f2\-storetype PKCS11\fP .RE For example, this command lists the contents of the configured PKCS#11 token: -.RS 3 - -.LP .nf \f3 .fl jarsigner \-keystore NONE \-storetype PKCS11 \-list .fl - -.fl \fP .fi -.RE .TP 3 \-storetype storetype -Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP. -.LP -The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified. +Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP. +.br +.br +The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified. .TP 3 -\-storepass password -Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password. -.LP -Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. +\-storepass[:env | :file] argument +Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password. +.br +.br +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .TP 3 -\-keypass password -Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it. -.LP -Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. Also, when typing in a password at the password prompt, the password is echoed (displayed exactly as typed), so be careful not to type it in front of anyone. +\-keypass[:env | :file] argument +Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it. +.br +.br +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .TP 3 \-sigfile file -Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file. -.LP -The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names. -.LP -If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. +Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file. +.br +.br +The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names. +.br +.br +If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. .TP 3 \-sigalg algorithm -.RS 3 - -.LP -Specifies the name of the signature algorithm to use to sign the JAR file. -.LP +Specifies the name of the signature algorithm to use to sign the JAR file. +.br +.br See .na \f2Appendix A\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA or SHA256withRSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. -.LP -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA, SHA256withRSA, or SHA256withECDSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. .TP 3 \-digestalg algorithm -.RS 3 -Specifies the name of the message digest algorithm to use when digesting the entries of a jar file. -.LP +Specifies the name of the message digest algorithm to use when digesting the entries of a jar file. +.br +.br See .na \f2Appendix A\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA\-256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. -.LP -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. .TP 3 \-signedjar file -Specifies the name to be used for the signed JAR file. -.LP -If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file. +Specifies the name to be used for the signed JAR file. +.br +.br +If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file. .TP 3 \-verify -If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)" -.LP -It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both. -.LP -For further information on verification, see JAR File Verification. +If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)" +.br +.br +It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both. +.br +.br +For further information on verification, see JAR File Verification. .TP 3 \-certs If this appears on the command line, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file. This information includes @@ -578,7 +550,6 @@ the name of the type of certificate (stored in the .DSA file) that certifies the o if the certificate is an X.509 certificate (more specifically, an instance of \f2java.security.cert.X509Certificate\fP): the distinguished name of the signer .RE -.LP The keystore is also examined. If no keystore value is specified on the command line, the default keystore file (if any) will be checked. If the public key certificate for a signer matches an entry in the keystore, then the following information will also be displayed: .RS 3 .TP 2 @@ -596,26 +567,25 @@ If this appears on the command line, it indicates "verbose" mode, which causes \ In the past, the .DSA (signature block) file generated when a JAR file was signed used to include a complete encoded copy of the .SF file (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the .DSA file by default doesn't contain a copy of the .SF file anymore. But if \f2\-internalsf\fP appears on the command line, the old behavior is utilized. \f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP .TP 3 \-sectionsonly -If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File . -.LP -By default, this header is added, as an optimization. When the header is present, then whenever the JAR file is verified, the verification can first check to see whether or not the hash in the header indeed matches the hash of the whole manifest file. If so, verification proceeds to the next step. If not, it is necessary to do a less optimized verification that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file. -.LP -For further information, see JAR File Verification. -.LP -\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP +If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File . +.br +.br +By default, this header is added, as an optimization. When the header is present, then whenever the JAR file is verified, the verification can first check to see whether or not the hash in the header indeed matches the hash of the whole manifest file. If so, verification proceeds to the next step. If not, it is necessary to do a less optimized verification that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file. +.br +.br +For further information, see JAR File Verification. +.br +.br +\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP .TP 3 \-protected Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader. -.RE -.RS 3 .TP 3 -\-provider provider\-class\-name -Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP. -.LP +\-providerClass provider\-class\-name +Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP. +.br +.br Used in conjunction with the \f2\-providerArg\fP \f2ConfigFilePath\fP option, keytool and jarsigner will install the provider dynamically (where \f2ConfigFilePath\fP is the path to the token configuration file). Here's an example of a command to list a PKCS#11 keystore when the Sun PKCS#11 provider has not been configured in the security properties file. -.RS 3 - -.LP .nf \f3 .fl @@ -629,19 +599,16 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ .fl \fP .fi -.RE .TP 3 \-providerName providerName -If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider. -.LP +If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider. +.br +.br For the Sun PKCS#11 provider, \f2providerName\fP is of the form \f2SunPKCS11\-\fP\f2TokenName\fP, where \f2TokenName\fP is the name suffix that the provider instance has been configured with, as detailed in the .na \f2configuration attributes table\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP: -.RS 3 - -.LP +http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP: .nf \f3 .fl @@ -653,58 +620,59 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ .fl \fP .fi -.RE .TP 3 \-Jjavaoption -Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. -.LP +Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. .TP 3 \-tsa url -If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore. -.LP +If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore. +.br +.br To generate the timestamp, \f2jarsigner\fP communicates with the TSA using the Time\-Stamp Protocol (TSP) defined in .na \f2RFC 3161\fP @ .fi -http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file. -.LP +http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file. .TP 3 \-tsacert alias -If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. -.LP -The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP. -.LP +If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. +.br +.br +The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP. .TP 3 \-altsigner class -Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism. -.LP -For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP -.LP +Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism. +.br +.br +For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP .TP 3 \-altsignerpath classpathlist -Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below. -.LP -An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path. -.LP +Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below. +.br +.br +An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path. +.br +.br Example of specifying the path to a jar file that contains the class file: -.RS 3 - -.LP -.LP -\f2\-altsignerpath /home/user/lib/authsigner.jar\fP -.LP -.RE -.LP -Note that the JAR file name is included. -.LP +.nf +\f3 +.fl +\-altsignerpath /home/user/lib/authsigner.jar +.fl +\fP +.fi +Note that the JAR file name is included. +.br +.br Example of specifying the path to the jar file that contains the class file: -.RS 3 -.LP -\f2\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/\fP -.LP -.RE -.LP -Note that the JAR file name is omitted. +.nf +\f3 +.fl +\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/ +.fl +\fP +.fi +Note that the JAR file name is omitted. .TP 3 \-strict During the signing or verifying process, some warning messages may be shown. If this option appears on the command line, the exit code of the tool will reflect the warning messages that are found. Read the "WARNINGS" section for details. @@ -712,25 +680,22 @@ During the signing or verifying process, some warning messages may be shown. If \-verbose:sub\-options For the verifying process, the \f2\-verbose\fP option takes sub\-options to determine how much information will be shown. If \f2\-certs\fP is also specified, the default mode (or sub\-option all) displays each entry as it is being processed and following that, the certificate information for each signer of the JAR file. If \f2\-certs\fP and the \f2\-verbose:grouped\fP sub\-option are specified, entries with the same signer info are grouped and displayed together along with their certificate information. If \f2\-certs\fP and the \f2\-verbose:summary\fP sub\-option are specified, then entries with the same signer info are grouped and displayed together along with their certificate information but details about each entry are summarized and displayed as "one entry (and more)". See the examples section for more information. .RE -.SH "EXAMPLES" -.LP +.LP +.SH "EXAMPLES" .LP .SS Signing a JAR File .LP -.RS 3 - .LP -.LP -Suppose you have a JAR file named "bundle.jar" and you'd like to sign it using the private key of the user whose keystore alias is "jane" in the keystore named "mystore" in the "working" directory. Suppose the keystore password is "myspass" and the password for \f2jane\fP's private key is "j638klm". You can use the following to sign the JAR file and name the signed JAR file "sbundle.jar": +Suppose you have a JAR file named "bundle.jar" and you'd like to sign it using the private key of the user whose keystore alias is "jane" in the keystore named "mystore" in the "working" directory. You can use the following to sign the JAR file and name the signed JAR file "sbundle.jar": .LP .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4\fP\f3 .fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane + \-keypass \fP\f4\fP\f3 \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -747,7 +712,7 @@ If you want to be prompted for the store password and the private key password, .fl jarsigner \-keystore /working/mystore .fl - \-signedjar sbundle.jar bundle.jar jane + \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -759,7 +724,7 @@ If the keystore to be used is the default keystore (the one named ".keystore" in .nf \f3 .fl - jarsigner \-signedjar sbundle.jar bundle.jar jane + jarsigner \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -771,18 +736,14 @@ Finally, if you want the signed JAR file to simply overwrite the input JAR file .nf \f3 .fl - jarsigner bundle.jar jane + jarsigner bundle.jar jane .fl \fP .fi -.RE .LP .SS Verifying a Signed JAR File -.LP -.RS 3 - .LP .LP To verify a signed JAR file, that is, to verify that the signature is valid and the JAR file has not been tampered with, use a command such as the following: @@ -790,7 +751,7 @@ To verify a signed JAR file, that is, to verify that the signature is valid and .nf \f3 .fl - jarsigner \-verify sbundle.jar + jarsigner \-verify sbundle.jar .fl \fP .fi @@ -851,7 +812,7 @@ You can get more information if you use the \f2\-verbose\fP option. A sample use Verification with Certificate Information .LP .LP -If you specify the \f2\-certs\fP option when verifying, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file, including the certificate type, the signer distinguished name information (iff it's an X.509 certificate), and, in parentheses, the keystore alias for the signer if the public key certificate in the JAR file matches that in a keystore entry. For example, +If you specify the \f2\-certs\fP option when verifying, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file, including the certificate type, the signer distinguished name information (if and only if it's an X.509 certificate), and, in parentheses, the keystore alias for the signer if the public key certificate in the JAR file matches that in a keystore entry. For example, .LP .nf \f3 @@ -961,10 +922,7 @@ When the \f2\-certs\fP option is used, any identity database aliases are shown i .LP Note that the alias "duke" is in brackets to denote that it is an identity database alias, not a keystore alias. .LP -.RE .SH "WARNINGS" -.LP - .LP During the signing/verifying process, jarsigner may display various warnings. These warning codes are defined as follows: .nf @@ -980,25 +938,25 @@ During the signing/verifying process, jarsigner may display various warnings. Th .fl This jar contains entries whose signer certificate has expired. .fl - + .fl notYetValidCert 4 .fl This jar contains entries whose signer certificate is not yet valid. .fl - + .fl chainNotValidated 4 .fl This jar contains entries whose certificate chain cannot be correctly validated. .fl - + .fl badKeyUsage 8 .fl This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing. .fl - + .fl badExtendedKeyUsage 8 .fl @@ -1006,33 +964,33 @@ During the signing/verifying process, jarsigner may display various warnings. Th .fl doesn't allow code signing. .fl - + .fl badNetscapeCertType 8 .fl - This jar contains entries whose signer certificate's NetscapeCertType extension + This jar contains entries whose signer certificate's NetscapeCertType extension .fl doesn't allow code signing. .fl - + .fl hasUnsignedEntry 16 .fl This jar contains unsigned entries which have not been integrity\-checked. .fl - + .fl notSignedByAlias 32 .fl This jar contains signed entries which are not signed by the specified alias(es) .fl - + .fl aliasNotInStore 32 .fl This jar contains signed entries that are not signed by alias in this keystore .fl - + .fl \fP .fi @@ -1042,23 +1000,19 @@ During the signing/verifying process, jarsigner may display various warnings. Th When the \f2\-strict\fP option is provided, an OR\-value of warnings detected will be returned as the exit code of the tool. For example, if a certificate used to sign an entry is expired and has a keyUsage extension that does not allow it to sign a file, an exit code 12 (=4+8) will be returned. .LP .LP -\f3Note\fP: Exit codes are reused because only 0\-255 is legal for Unix. In any case, if the signing/verifying process fails, the exit code +\f3Note\fP: Exit codes are reused because only 0\-255 is legal for Unix. In any case, if the signing/verifying process fails, the following exit code will be returned: .LP .nf \f3 .fl -failure 1 +failure 1 .fl \fP .fi .LP -will be returned. .SS Compatibility with JDK 1.1 -.LP -.RS 3 - .LP .LP The \f3keytool\fP and \f3jarsigner\fP tools completely replace the \f3javakey\fP tool provided in JDK 1.1. These new tools provide more features than \f3javakey\fP, including the ability to protect the keystore and private keys with passwords, and the ability to verify signatures in addition to generating them. @@ -1083,7 +1037,6 @@ o The following table explains how JAR files that were signed in JDK 1.1.x are treated in the Java 2 platform. .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -1390,7 +1343,7 @@ Default privileges granted to all code plus privileges granted in policy file. ( .nr 44 \n(83+(3*\n(38) .nr 84 +\n(44 .nr TW \n(84 -.if t .if \n(TW>\n(.li .tm Table at line 1128 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1082 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1566,7 +1519,6 @@ Default privileges granted to all code plus privileges granted in policy file. ( .rm g+ .rm h+ .rm i+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-42 .LP @@ -1590,8 +1542,6 @@ Only trusted identities can be imported into Java 2 SDK keystores. .LP .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 @@ -1606,13 +1556,12 @@ the .na \f4Security\fP @ .fi -http://java.sun.com/docs/books/tutorial/security/index.html trail of the +http://download.oracle.com/javase/tutorial/security/index.html trail of the .na \f4Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool +http://download.oracle.com/javase/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool .RE .LP -.RE diff --git a/jdk/src/linux/doc/man/java.1 b/jdk/src/linux/doc/man/java.1 index 1f436ff9ebe..2e885083a8b 100644 --- a/jdk/src/linux/doc/man/java.1 +++ b/jdk/src/linux/doc/man/java.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "02 Jun 2010" +.TH java 1 "10 May 2011" .LP .SH "Name" @@ -36,9 +36,6 @@ java \- the Java application launcher .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -56,10 +53,7 @@ Argument passed to the \f3main\fP function. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f3java\fP tool launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class's \f3main\fP method. @@ -70,7 +64,7 @@ The method must be declared public and static, it must not return any value, and .nf \f3 .fl - public static void main(String args[]) +public static void main(String args[]) .fl \fP .fi @@ -86,77 +80,80 @@ The Java runtime searches for the startup class, and other classes used, in thre Non\-option arguments after the class name or JAR file name are passed to the \f3main\fP function. .LP .SH "OPTIONS" -.LP - .LP .LP The launcher has a set of standard options that are supported on the current runtime environment and will be supported in future releases. In addition, the current implementations of the virtual machines support a set of non\-standard options that are subject to change in future releases. .LP .SH "Standard Options" -.LP - .LP .RS 3 .TP 3 \-client -.LP -Select the Java HotSpot Client VM. A 64\-bit capable jdk currently ignores this option and instead uses the Java Hotspot Server VM. -.LP +Select the Java HotSpot Client VM. A 64\-bit capable jdk currently ignores this option and instead uses the Java Hotspot Server VM. +.br +.br For default VM selection, see .na \f2Server\-Class Machine Detection\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html +http://download.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.html .TP 3 \-server -.LP -Select the Java HotSpot Server VM. On a 64\-bit capable jdk only the Java Hotspot Server VM is supported so the \-server option is implicit. -.LP +Select the Java HotSpot Server VM. On a 64\-bit capable jdk only the Java Hotspot Server VM is supported so the \-server option is implicit. +.br +.br For default VM selection, see .na \f2Server\-Class Machine Detection\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html +http://download.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.html .TP 3 \-agentlib:libname[=options] -Load native agent library \f2libname\fP, e.g. -.LP -\-agentlib:hprof -.LP -\-agentlib:jdwp=help -.LP -\-agentlib:hprof=help -.LP +Load native agent library \f2libname\fP, e.g. +.br +.br +\-agentlib:hprof +.br +.br +\-agentlib:jdwp=help +.br +.br +\-agentlib:hprof=help +.br +.br For more information, see .na \f2JVMTI Agent Command Line Options\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting. +http://download.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting. .TP 3 \-agentpath:pathname[=options] Load a native agent library by full pathname. For more information, see .na \f2JVMTI Agent Command Line Options\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting. +http://download.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting. .TP 3 \-classpath classpath .TP 3 \-cp classpath -Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (\f3:\fP). Specifying \f3\-classpath\fP or \f3\-cp\fP overrides any setting of the \f3CLASSPATH\fP environment variable. -.LP +Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (\f3:\fP). Specifying \f3\-classpath\fP or \f3\-cp\fP overrides any setting of the \f3CLASSPATH\fP environment variable. +.br +.br If \f3\-classpath\fP and \f3\-cp\fP are not used and \f3CLASSPATH\fP is not set, the user class path consists of the current directory (\f4.\fP). -.LP +.br +.br As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). .br .br For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. -.LP +.br +.br For more information on class paths, see .na \f2Setting the Class Path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath. +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath. .TP 3 \-Dproperty=value Set a system property value. @@ -164,19 +161,23 @@ Set a system property value. \-d32 .TP 3 \-d64 -Request that the program to be run in a 32\-bit or 64\-bit environment, respectively. If the requested environment is not installed or is not supported, an error is reported. -.LP -Currently only the Java HotSpot Server VM supports 64\-bit operation, and the "\-server" option is implicit with the use of \-d64. And the "\-client" option is ignored with the use of \-d64. This is subject to change in a future release. -.LP -If neither \f3\-d32\fP nor \f3\-d64\fP is specified, the default is to run in a 32\-bit environment, except for 64\-bit only systems. This is subject to change in a future release. +Request that the program to be run in a 32\-bit or 64\-bit environment, respectively. If the requested environment is not installed or is not supported, an error is reported. +.br +.br +Currently only the Java HotSpot Server VM supports 64\-bit operation, and the "\-server" option is implicit with the use of \-d64. And the "\-client" option is ignored with the use of \-d64. This is subject to change in a future release. +.br +.br +If neither \f3\-d32\fP nor \f3\-d64\fP is specified, the default is to run in a 32\-bit environment, except for 64\-bit only systems. This is subject to change in a future release. .TP 3 \-enableassertions[:"..." | : ] .TP 3 \-ea[:"..." | : ] -Enable assertions. Assertions are disabled by default. -.LP -With no arguments, \f3enableassertions\fP or \f3\-ea\fP enables assertions. With one argument ending in \f2"..."\fP, the switch enables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch enables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch enables assertions in the specified class. -.LP +Enable assertions. Assertions are disabled by default. +.br +.br +With no arguments, \f3enableassertions\fP or \f3\-ea\fP enables assertions. With one argument ending in \f2"..."\fP, the switch enables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch enables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch enables assertions in the specified class. +.br +.br If a single command line contains multiple instances of these switches, they are processed in order before loading any classes. So, for example, to run a program with assertions enabled only in package \f2com.wombat.fruitbat\fP (and any subpackages), the following command could be used: .nf \f3 @@ -185,26 +186,26 @@ java \-ea:com.wombat.fruitbat...

    .fl \fP .fi -.LP -The \f3\-enableassertions\fP and \f3\-ea\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-enablesystemassertions\fP below. +The \f3\-enableassertions\fP and \f3\-ea\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-enablesystemassertions\fP below. .TP 3 \-disableassertions[:"..." | : ] .TP 3 \-da[:"..." | : ] -Disable assertions. This is the default. -.LP -With no arguments, \f3disableassertions\fP or \f3\-da\fP disables assertions. With one argument ending in \f2"..."\fP, the switch disables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch disables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch disables assertions in the specified class. -.LP +Disable assertions. This is the default. +.br +.br +With no arguments, \f3disableassertions\fP or \f3\-da\fP disables assertions. With one argument ending in \f2"..."\fP, the switch disables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch disables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch disables assertions in the specified class. +.br +.br To run a program with assertions enabled in package \f2com.wombat.fruitbat\fP but disabled in class \f2com.wombat.fruitbat.Brickbat\fP, the following command could be used: .nf \f3 .fl -java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat
    +java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat \fP\f4
    \fP\f3 .fl \fP .fi -.LP -The \f3\-disableassertions\fP and \f3\-da\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-disablesystemassertions\fP below. +The \f3\-disableassertions\fP and \f3\-da\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-disablesystemassertions\fP below. .TP 3 \-enablesystemassertions .TP 3 @@ -215,29 +216,36 @@ Enable asserts in all system classes (sets the \f2default assertion status\fP fo .TP 3 \-dsa Disables asserts in all system classes. -.LP .TP 3 \-jar Execute a program encapsulated in a JAR file. The first argument is the name of a JAR file instead of a startup class name. In order for this option to work, the manifest of the JAR file must contain a line of the form \f3Main\-Class: \fP\f4classname\fP. Here, \f2classname\fP identifies the class having the \f2public\ static\ void\ main(String[]\ args)\fP method that serves as your application's starting point. See the jar(1) and the Jar trail of the .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar for information about working with Jar files and Jar\-file manifests. -.LP -When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. -.LP +http://download.oracle.com/javase/tutorial/deployment/jar for information about working with Jar files and Jar\-file manifests. +.br +.br +When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. +.br +.br Note that JAR files that can be run with the "java \-jar" option can have their execute permissions set so they can be run without using "java \-jar". Refer to .na \f2Java Archive (JAR) Files\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/jar/index.html. .TP 3 \-javaagent:jarpath[=options] Load a Java programming language agent, see .na \f2java.lang.instrument\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html. +http://download.oracle.com/javase/7/docs/api/java/lang/instrument/package\-summary.html. +.TP 3 +\-jre\-restrict\-search +Include user\-private JREs in the version search. +.TP 3 +\-no\-jre\-restrict\-search +Exclude user\-private JREs in the version search. .TP 3 \-verbose .TP 3 @@ -254,8 +262,9 @@ Report information about use of native methods and other Java Native Interface a Display version information and exit. .TP 3 \-version:release -Specifies that the version specified by \f2release\fP is required by the class or jar file specified on the command line. If the version of the java command invoked does not meet this specification and an appropriate implementation is found on the system, the appropriate implementation will be used. -.LP +Specifies that the version specified by \f2release\fP is required by the class or jar file specified on the command line. If the version of the java command invoked does not meet this specification and an appropriate implementation is found on the system, the appropriate implementation will be used. +.br +.br \f2release\fP not only can specify an exact version, but can also specify a list of versions called a version string. A version string is an ordered list of version ranges separated by spaces. A version range is either a version\-id, a version\-id followed by a star (*), a version\-id followed by a plus sign (+) , or two version\-ranges combined using an ampersand (&). The star means prefix match, the plus sign means this version or greater, and the ampersand means the logical anding of the two version\-ranges. For example: .nf \f3 @@ -264,11 +273,13 @@ Specifies that the version specified by \f2release\fP is required by the class o .fl \fP .fi -The meaning of the above is that the class or jar file requires either version 1.6.0_13, or a version with 1.6 as a version\-id prefix and that is not less than 1.6.0_10.. The exact syntax and definition of version strings may be found in Appendix A of the Java Network Launching Protocol & API Specification (JSR\-56). -.LP -For jar files, the usual preference is to specify version requirements in the jar file manifest rather than on the command line. -.LP -See the following NOTES section for important policy information on the use of this option. +The meaning of the above is that the class or jar file requires either version 1.6.0_13, or a version with 1.6 as a version\-id prefix and that is not less than 1.6.0_10.. The exact syntax and definition of version strings may be found in Appendix A of the Java Network Launching Protocol & API Specification (JSR\-56). +.br +.br +For jar files, the usual preference is to specify version requirements in the jar file manifest rather than on the command line. +.br +.br +See the following NOTES section for important policy information on the use of this option. .TP 3 \-showversion Display version information and continue. @@ -278,6 +289,9 @@ Display version information and continue. \-help Display usage information and exit. .TP 3 +\-splash:imagepath +Show splash screen with image specified by \f2imagepath\fP. +.TP 3 \-X Display information about non\-standard options and exit. .RE @@ -285,9 +299,6 @@ Display information about non\-standard options and exit. .LP .SS Non\-Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -319,18 +330,20 @@ Disable class garbage collection. Use of this option will prevent memory recover Enable the incremental garbage collector. The incremental garbage collector, which is off by default, will reduce the occasional long garbage\-collection pauses during program execution. The incremental garbage collector will at times execute concurrently with the program and during such times will reduce the processor capacity available to the program. .TP 3 \-Xloggc:file -Report on each garbage collection event, as with \-verbose:gc, but log this data to \f2file\fP. In addition to the information \f2\-verbose:gc\fP gives, each reported event will be preceeded by the time (in seconds) since the first garbage\-collection event. -.LP -Always use a local file system for storage of this file to avoid stalling the JVM due to network latency. The file may be truncated in the case of a full file system and logging will continue on the truncated file. This option overrides \f2\-verbose:gc\fP if both are given on the command line. -.LP +Report on each garbage collection event, as with \-verbose:gc, but log this data to \f2file\fP. In addition to the information \f2\-verbose:gc\fP gives, each reported event will be preceeded by the time (in seconds) since the first garbage\-collection event. +.br +.br +Always use a local file system for storage of this file to avoid stalling the JVM due to network latency. The file may be truncated in the case of a full file system and logging will continue on the truncated file. This option overrides \f2\-verbose:gc\fP if both are given on the command line. .TP 3 \-Xmsn -Specify the initial size, in bytes, of the memory allocation pool. This value must be a multiple of 1024 greater than 1MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics +Specify the initial size, in bytes, of the memory allocation pool. This value must be a multiple of 1024 greater than 1MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.html +.br .br Examples: -.RS 3 - -.LP .nf \f3 .fl @@ -340,19 +353,20 @@ Examples: .fl \-Xms6m .fl - + .fl \fP .fi -.RE .TP 3 \-Xmxn -Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics +Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.html +.br .br Examples: -.RS 3 - -.LP .nf \f3 .fl @@ -362,28 +376,31 @@ Examples: .fl \-Xmx80m .fl - + .fl \fP .fi -.RE On Solaris 7 and Solaris 8 SPARC platforms, the upper limit for this value is approximately 4000m minus overhead amounts. On Solaris 2.6 and x86 platforms, the upper limit is approximately 2000m minus overhead amounts. On Linux platforms, the upper limit is approximately 2000m minus overhead amounts. .TP 3 \-Xprof Profiles the running program, and sends profiling data to standard output. This option is provided as a utility that is useful in program development and is not intended to be used in production systems. -.LP .TP 3 \-Xrs -Reduces use of operating\-system signals by the Java virtual machine (JVM). -.LP -In a previous release, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly. -.LP -Sun's JVM catches signals to implement shutdown hooks for abnormal JVM termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running of shutdown hooks. -.LP -The JVM uses a similar mechanism to implement the pre\-1.2 feature of dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform thread dumps. -.LP -Applications embedding the JVM frequently need to trap signals like SIGINT or SIGTERM, which can lead to interference with the JVM's own signal handlers. The \f3\-Xrs\fP command\-line option is available to address this issue. When \f3\-Xrs\fP is used on Sun's JVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by the JVM, and signal handlers for these signals are not installed. -.LP +Reduces use of operating\-system signals by the Java virtual machine (JVM). +.br +.br +In a previous release, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly. +.br +.br +Sun's JVM catches signals to implement shutdown hooks for abnormal JVM termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running of shutdown hooks. +.br +.br +The JVM uses a similar mechanism to implement the pre\-1.2 feature of dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform thread dumps. +.br +.br +Applications embedding the JVM frequently need to trap signals like SIGINT or SIGTERM, which can lead to interference with the JVM's own signal handlers. The \f3\-Xrs\fP command\-line option is available to address this issue. When \f3\-Xrs\fP is used on Sun's JVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by the JVM, and signal handlers for these signals are not installed. +.br +.br There are two consequences of specifying \f3\-Xrs\fP: .RS 3 .TP 2 @@ -402,12 +419,11 @@ The VM uses \f2SIGUSR1\fP and \f2SIGUSR2\fP by default, which can sometimes conf .RE .LP -.RE .SH "NOTES" .LP - .LP -The \f3\-version:\fP\f2release\fP command line option places no restrictions on the complexity of the release specification. However, only a restricted subset of the possible release specifications represent sound policy and only these are fully supported. These policies are: +The \f3\-version:\fP\f2release\fP command line option places no restrictions on the complexity of the release specification. However, only a restricted subset of the possible release specifications represent sound policy and only these are fully supported. These policies are: +.LP .RS 3 .TP 3 1. @@ -422,8 +438,7 @@ Any version greater than an arbitrarily precise version\-id. For example: .fl \fP .fi -.LP -Would utilize any version greater than 1.6.0_10. This is useful for a case where an interface was introduced (or a bug fixed) in the release specified. +This would utilize any version greater than \f21.6.0_10\fP. This is useful for a case where an interface was introduced (or a bug fixed) in the release specified. .TP 3 3. A version greater than an arbitrarily precise version\-id, bounded by the upper bound of that release family. For example: @@ -448,9 +463,22 @@ Similar to item 2. this is useful when a change was introduced in a release (1.7 .RE .LP -.SH "SEE ALSO" +.SH "EXIT STATUS" .LP +.LP +The following exit values are generally returned by the launcher, typically when the launcher is called with the wrong arguments, serious errors, or exceptions thrown from the Java Virtual Machine. However, a Java application may choose to return any value using the API call \f2System.exit(exitValue)\fP. +.LP +.RS 3 +.TP 2 +o +\f20\fP: Successful completion +.TP 2 +o +\f2>0\fP: An error occurred +.RE +.LP +.SH "SEE ALSO" .LP .RS 3 .TP 2 @@ -470,13 +498,13 @@ o .na \f2The Java Extensions Framework\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/extensions/index.html .TP 2 o .na \f2Security Features\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/index.html. .TP 2 o .na diff --git a/jdk/src/linux/doc/man/javac.1 b/jdk/src/linux/doc/man/javac.1 index 7e01a50e989..3f3b5733f0a 100644 --- a/jdk/src/linux/doc/man/javac.1 +++ b/jdk/src/linux/doc/man/javac.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,31 +19,26 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "02 Jun 2010" +.TH javac 1 "10 May 2011" .LP .SH "Name" javac \- Java programming language compiler .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ] .fl - + .fl .fi .LP .LP Arguments may be in any order. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -61,10 +56,7 @@ One or more files that lists options and source files. The \f2\-J\fP options are .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f3javac\fP tool reads class and interface definitions, written in the Java programming language, and compiles them into bytecode class files. It can also process annotations in Java source files and classes. @@ -95,17 +87,12 @@ You should arrange source files in a directory tree that reflects their package By default, the compiler puts each class file in the same directory as its source file. You can specify a separate destination directory with \f3\-d\fP (see Options, below). .LP .SH "OPTIONS" -.LP - .LP .LP The compiler has a set of standard options that are supported on the current development environment and will be supported in future releases. An additional set of non\-standard options are specific to the current virtual machine and compiler implementations and are subject to change in the future. Non\-standard options begin with \f3\-X\fP. .LP .SS Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -113,20 +100,13 @@ Standard Options Options to pass to annotation processors. These are not interpreted by javac directly, but are made available for use by individual processors. \f2key\fP should be one or more identifiers separated by ".". .TP 3 \-cp path or \-classpath path -Specify where to find user class files, and (optionally) annotation processors and source files. This classpath overrides the user class path in the \f3CLASSPATH\fP environment variable. If neither \f3CLASSPATH\fP, \f3\-cp\fP nor \f3\-classpath\fP is specified, the user class path consists of the current directory. See -.na -\f2Setting the Class Path\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath for more details. -.LP -If the \f3\-sourcepath\fP option is not specified, the user class path is also searched for source files. -.LP -If the \f3\-processorpath\fP option is not specified, the classpath is also searched for annotation processors. -.LP -As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP. +Specify where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the \f3CLASSPATH\fP environment variable. If neither \f3CLASSPATH\fP, \f3\-cp\fP nor \f3\-classpath\fP is specified, the user class path consists of the current directory. See Setting the Class Path for more details. .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. \f3Note:\fP \ Depending of the configuration of your command line environment, you may have to quote the wild card character, for example, \f2javac \-cp "*.jar" MyClass.java\fP. +>If the \f3\-sourcepath\fP option is not specified, the user class path is also searched for source files. +.br +.br +If the \f3\-processorpath\fP option is not specified, the class path is also searched for annotation processors. .TP 3 \-Djava.ext.dirs=directories Override the location of installed extensions. @@ -135,17 +115,28 @@ Override the location of installed extensions. Override the location of endorsed standards path. .TP 3 \-d directory -Set the destination directory for class files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, \f3javac\fP puts the class file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-d /home/myclasses\fP and the class is called \f2com.mypackage.MyClass\fP, then the class file is called \f2/home/myclasses/com/mypackage/MyClass.class\fP. -.LP -If \f3\-d\fP is not specified, \f3javac\fP puts each class files in the same directory as the source file from which it was generated. -.LP -\f3Note:\fP \ The directory specified by \f3\-d\fP is not automatically added to your user class path. +Set the destination directory for class files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, \f3javac\fP puts the class file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-d /home/myclasses\fP and the class is called \f2com.mypackage.MyClass\fP, then the class file is called \f2/home/myclasses/com/mypackage/MyClass.class\fP. +.br +.br +If \f3\-d\fP is not specified, \f3javac\fP puts each class files in the same directory as the source file from which it was generated. +.br +.br +\f3Note:\fP The directory specified by \f3\-d\fP is not automatically added to your user class path. .TP 3 \-deprecation Show a description of each use or override of a deprecated member or class. Without \f3\-deprecation\fP, \f3javac\fP shows a summary of the source files that use or override deprecated members or classes. \f3\-deprecation\fP is shorthand for \f3\-Xlint:deprecation\fP. .TP 3 \-encoding encoding -Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used. +Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used. +.TP 3 +\-endorseddirs directories +Override the location of endorsed standards path. +.TP 3 +\-extdirs directories +Overrides the location of the \f2ext\fP directory. The \f2directories\fP variable is a colon\-separated list of directories. Each JAR archive in the specified directories is searched for class files. All JAR archives found are automatically part of the class path. +.br +.br +If you are cross\-compiling (compiling classes against bootstrap and extension classes of a different Java platform implementation), this option specifies the directories that contain the extension classes. See Cross\-Compilation Options for more information. .TP 3 \-g Generate all debugging information, including local variables. By default, only line number and source file information is generated. @@ -171,7 +162,13 @@ Local variable debugging information Print a synopsis of standard options. .TP 3 \-implicit:{class,none} -Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types. +Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types. +.TP 3 +\-Joption +Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. It is a common convention for \f3\-J\fP to pass options to the underlying VM executing applications written in Java. +.br +.br +\f3Note:\fP \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher. .TP 3 \-nowarn Disable warning messages. This has the same meaning as \f3\-Xlint:none\fP. @@ -183,7 +180,7 @@ Controls whether annotation processing and/or compilation is done. \f3\-proc:non Names of the annotation processors to run. This bypasses the default discovery process. .TP 3 \-processorpath path -Specify where to find annotation processors; if this option is not used, the classpath will be searched for processors. +Specify where to find annotation processors; if this option is not used, the class path will be searched for processors. .TP 3 \-s dir Specify the directory where to place generated source files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, the compiler puts the source file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-s /home/mysrc\fP and the class is called \f2com.mypackage.MyClass\fP, then the source file will be placed in \f2/home/mysrc/com/mypackage/MyClass.java\fP. @@ -218,27 +215,27 @@ Synonym for 1.7. .RE .TP 3 \-sourcepath sourcepath -Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name. -.LP -\f3Note:\fP \ Classes found through the classpath may be subject to automatic recompilation if their sources are also found. See Searching For Types. +Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name. +.br +.br +\f3Note:\fP Classes found through the class path may be subject to automatic recompilation if their sources are also found. See Searching For Types. .TP 3 \-verbose Verbose output. This includes information about each class loaded and each source file compiled. .TP 3 \-version -Print version information. +Print version information. +.TP 3 +\-Werror +Terminate compilation if warnings occur. .TP 3 \-X Display information about non\-standard options and exit. .RE .LP -.RE .SS Cross\-Compilation Options -.LP -.RS 3 - .LP .LP By default, classes are compiled against the bootstrap and extension classes of the platform that \f3javac\fP shipped with. But \f3javac\fP also supports \f2cross\-compiling\fP, where classes are compiled against a bootstrap and extension classes of a different Java platform implementation. It is important to use \f3\-bootclasspath\fP and \f3\-extdirs\fP when cross\-compiling; see Cross\-Compilation Example below. @@ -246,13 +243,14 @@ By default, classes are compiled against the bootstrap and extension classes of .RS 3 .TP 3 \-target version -Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP \f31.2\fP \f31.3\fP \f31.4\fP \f31.5\fP (also \f35\fP) \f31.6\fP (also \f36\fP) and \f31.7\fP (also \f37\fP). -.LP +Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP \f31.2\fP \f31.3\fP \f31.4\fP \f31.5\fP (also \f35\fP) \f31.6\fP (also \f36\fP) and \f31.7\fP (also \f37\fP). +.br +.br The default for \f3\-target\fP depends on the value of \f3\-source\fP: .RS 3 .TP 2 o -If \-source is \f3not specified\fP, the value of \-target is \f31.6\fP +If \-source is \f3not specified\fP, the value of \-target is \f31.7\fP .TP 2 o If \-source is \f31.2\fP, the value of \-target is \f31.4\fP @@ -261,23 +259,16 @@ o If \-source is \f31.3\fP, the value of \-target is \f31.4\fP .TP 2 o -For \f3all other values\fP of \-source, the value of \-target is the value of \f3\-source\fP. +For \f3all other values\fP of \-source, the value of \f3\-target\fP is the value of \f3\-source\fP. .RE .TP 3 \-bootclasspath bootclasspath Cross\-compile against the specified set of boot classes. As with the user class path, boot class path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. -.TP 3 -\-extdirs directories -Cross\-compile against the specified extension directories. \f2Directories\fP is a colon\-separated list of directories. Each JAR archive in the specified directories is searched for class files. .RE .LP -.RE .SS Non\-Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -291,54 +282,19 @@ Append to the bootstrap class path. Override location of bootstrap class files. .TP 3 \-Xlint -Enable all recommended warnings. In this release, all available warnings are recommended. +Enable all recommended warnings. In this release, enabling all available warnings is recommended. +.TP 3 +\-Xlint:all +Enable all recommended warnings. In this release, enabling all available warnings is recommended. .TP 3 \-Xlint:none -Disable all warnings not mandated by the Java Language Specification. +Disable all warnings. +.TP 3 +\-Xlint:name +Enable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can enable with this option. .TP 3 \-Xlint:\-name -Disable warning \f2name\fP, where \f2name\fP is one of the warning names supported for \f3\-Xlint:\fP\f2name\fP, below. -.TP 3 -\-Xlint:unchecked -Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. -.TP 3 -\-Xlint:path -Warn about nonexistent path (classpath, sourcepath, etc) directories. -.TP 3 -\-Xlint:serial -Warn about missing \f2serialVersionUID\fP definitions on serializable classes. -.TP 3 -\-Xlint:finally -Warn about \f2finally\fP clauses that cannot complete normally. -.TP 3 -\-Xlint:fallthrough -Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement: -.RS 3 - -.LP -.nf -\f3 -.fl -switch (x) { -.fl -case 1: -.fl - System.out.println("1"); -.fl - // No break; statement here. -.fl -case 2: -.fl - System.out.println("2"); -.fl -} -.fl - -.fl -\fP -.fi -.RE -If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question. +Disable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can disable with this option. .TP 3 \-Xmaxerrs number Set the maximum number of errors to print. @@ -350,7 +306,10 @@ Set the maximum number of warnings to print. Send compiler messages to the named file. By default, compiler messages go to \f2System.err\fP. .TP 3 \-Xprefer:{newer,source} -Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP. +Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP. +.TP 3 +\-Xpkginfo:{always,legacy,nonempty} +Specify handling of package\-info files .TP 3 \-Xprint Print out textual representation of specified types for debugging purposes; perform neither annotation processing nor compilation. The format of the output may change. @@ -363,26 +322,419 @@ Print information about initial and subsequent annotation processing rounds. .RE .LP -.RE .SS -The \-J Option +Warnings That Can Be Enabled or Disabled with \-Xlint Option .LP -.RS 3 - +.LP +Enable warning \f2name\fP with the option \f3\-Xlint:\fP\f2name\fP, where \f2name\fP is one of the following warning names. Similarly, you can disable warning \f2name\fP with the option \f3\-Xlint:\-\fP\f2name\fP: .LP .RS 3 .TP 3 -\-Joption -Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f3\-X\fP, it is not a `standard option' of \f3javac\fP. It is a common convention for \f3\-J\fP to pass options to the underlying VM executing applications written in Java. -.LP -\f3Note:\fP \ \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher. +cast +Warn about unnecessary and redundant casts. For example: +.nf +\f3 +.fl +String s = (String)"Hello!" +.fl +\fP +.fi +.TP 3 +classfile +Warn about issues related to classfile contents. +.TP 3 +deprecation +Warn about use of deprecated items. For example: +.nf +\f3 +.fl + java.util.Date myDate = new java.util.Date(); +.fl + int currentDay = myDate.getDay(); +.fl +\fP +.fi +The method \f2java.util.Date.getDay\fP has been deprecated since JDK 1.1. +.TP 3 +dep\-ann +Warn about items that are documented with an \f2@deprecated\fP Javadoc comment, but do not have a \f2@Deprecated\fP annotation. For example: +.nf +\f3 +.fl + /** +.fl + * @deprecated As of Java SE 7, replaced by {@link #newMethod()} +.fl + */ +.fl + +.fl + public static void deprecatedMethood() { } +.fl + +.fl + public static void newMethod() { } +.fl +\fP +.fi +.TP 3 +divzero +Warn about division by constant integer 0. For example: +.nf +\f3 +.fl + int divideByZero = 42 / 0; +.fl +\fP +.fi +.TP 3 +empty +Warn about empty statements after \f2if\fP statements. For example: +.nf +\f3 +.fl +class E { +.fl + void m() { +.fl + if (true) ; +.fl + } +.fl +} +.fl +\fP +.fi +.TP 3 +fallthrough +Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement: +.nf +\f3 +.fl +switch (x) { +.fl +case 1: +.fl + System.out.println("1"); +.fl + // No break statement here. +.fl +case 2: +.fl + System.out.println("2"); +.fl +} +.fl +\fP +.fi +If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question. +.TP 3 +finally +Warn about \f2finally\fP clauses that cannot complete normally. For example: +.nf +\f3 +.fl + public static int m() { +.fl + try { +.fl + throw new NullPointerException(); +.fl + } catch (NullPointerException e) { +.fl + System.err.println("Caught NullPointerException."); +.fl + return 1; +.fl + } finally { +.fl + return 0; +.fl + } +.fl + } +.fl +\fP +.fi +The compiler generates a warning for \f2finally\fP block in this example. When this method is called, it returns a value of \f20\fP, not \f21\fP. A \f2finally\fP block always executes when the \f2try\fP block exits. In this example, if control is transferred to the \f2catch\fP, then the method exits. However, the \f2finally\fP block must be executed, so it is executed, even though control has already been transferred outside the method. +.TP 3 +options +Warn about issues relating to the use of command line options. See Cross\-Compilation Example for an example of this kind of warning. +.TP 3 +overrides +Warn about issues regarding method overrides. For example, consider the following two classes: +.nf +\f3 +.fl +public class ClassWithVarargsMethod { +.fl + void varargsMethod(String... s) { } +.fl +} +.fl +\fP +.fi +.nf +\f3 +.fl +public class ClassWithOverridingMethod extends ClassWithVarargsMethod { +.fl + @Override +.fl + void varargsMethod(String[] s) { } +.fl +} +.fl +\fP +.fi +The compiler generates a warning similar to the following: +.br +.br +\f2warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...'\fP +.br +.br +When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. In the method \f2ClassWithVarargsMethod.varargsMethod\fP, the compiler translates the varargs formal parameter \f2String... s\fP to the formal parameter \f2String[] s\fP, an array, which matches the formal parameter of the method \f2ClassWithOverridingMethod.varargsMethod\fP. Consequently, this example compiles. +.TP 3 +path +Warn about invalid path elements and nonexistent path directories on the command line (with regards to the class path, the source path, and other paths). Such warnings cannot be suppressed with the \f2@SuppressWarnings\fP annotation. For example: +.nf +\f3 +.fl +javac \-Xlint:path \-classpath /nonexistentpath Example.java +.fl +\fP +.fi +.TP 3 +processing +Warn about issues regarding annotation processing. The compiler generates this warning if you have a class that has an annotation, and you use an annotation processor that cannot handle that type of exception. For example, the following is a simple annotation processor: +.br +.br +\f3Source file \fP\f4AnnoProc.java\fP: +.nf +\f3 +.fl +import java.util.*; +.fl +import javax.annotation.processing.*; +.fl +import javax.lang.model.*; +.fl +import javax.lang.model.element.*; +.fl + +.fl +@SupportedAnnotationTypes("NotAnno") +.fl +public class AnnoProc extends AbstractProcessor { +.fl + public boolean process(Set elems, RoundEnvironment renv) { +.fl + return true; +.fl + } +.fl + +.fl + public SourceVersion getSupportedSourceVersion() { +.fl + return SourceVersion.latest(); +.fl + } +.fl +} +.fl +\fP +.fi +\f3Source file \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP +.nf +\f3 +.fl +@interface Anno { } +.fl + +.fl +@Anno +.fl +class AnnosWithoutProcessors { } +.fl +\fP +.fi +The following commands compile the annotation processor \f2AnnoProc\fP, then run this annotation processor against the source file \f2AnnosWithoutProcessors.java\fP: +.nf +\f3 +.fl +% javac AnnoProc.java +.fl +% javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java +.fl +\fP +.fi +When the compiler runs the annotation processor against the source file \f2AnnosWithoutProcessors.java\fP, it generates the following warning: +.br +.br +\f2warning: [processing] No processor claimed any of these annotations: Anno\fP +.br +.br +To resolve this issue, you can rename the annotation defined and used in the class \f2AnnosWithoutProcessors\fP from \f2Anno\fP to \f2NotAnno\fP. +.TP 3 +rawtypes +Warn about unchecked operations on raw types. The following statement generates a \f2rawtypes\fP warning: +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +The following does not generate a \f2rawtypes\fP warning: +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +\f2List\fP is a raw type. However, \f2List\fP is a unbounded wildcard parameterized type. Because \f2List\fP is a parameterized interface, you should always specify its type argument. In this example, the \f2List\fP formal argument is specified with a unbounded wildcard (\f2?\fP) as its formal type parameter, which means that the \f2countElements\fP method can accept any instantiation of the \f2List\fP interface. +.TP 3 +serial +Warn about missing \f2serialVersionUID\fP definitions on serializable classes. For example: +.nf +\f3 +.fl +public class PersistentTime implements Serializable +.fl +{ +.fl + private Date time; +.fl + +.fl + public PersistentTime() { +.fl + time = Calendar.getInstance().getTime(); +.fl + } +.fl + +.fl + public Date getTime() { +.fl + return time; +.fl + } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning: +.br +.br +\f2warning: [serial] serializable class PersistentTime has no definition of serialVersionUID\fP +.br +.br +If a serializable class does not explicitly declare a field named \f2serialVersionUID\fP, then the serialization runtime will calculate a default \f2serialVersionUID\fP value for that class based on various aspects of the class, as described in the Java Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare \f2serialVersionUID\fP values because the default process of computing \f2serialVersionUID\fP vales is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected \f2InvalidClassExceptions\fP during deserialization. Therefore, to guarantee a consistent \f2serialVersionUID\fP value across different Java compiler implementations, a serializable class must declare an explicit \f2serialVersionUID\fP value. +.TP 3 +static +Warn about issues relating to use of statics. For example: +.nf +\f3 +.fl +class XLintStatic { +.fl + static void m1() { } +.fl + void m2() { this.m1(); } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning: +.nf +\f3 +.fl +warning: [static] static method should be qualified by type name, XLintStatic, instead of by an expression +.fl +\fP +.fi +To resolve this issue, you can call the static method \f2m1\fP as follows: +.nf +\f3 +.fl +XLintStatic.m1(); +.fl +\fP +.fi +Alternatively, you can remove the \f2static\fP keyword from the declaration of the method \f2m1\fP. +.TP 3 +try +Warn about issues relating to use of \f2try\fP blocks, including try\-with\-resources statements. For example, a warning is generated for the following statement because the resource \f2ac\fP declared in the \f2try\fP statement is not used: +.nf +\f3 +.fl +try ( AutoCloseable ac = getResource() ) { +.fl + // do nothing +.fl +} +.fl +\fP +.fi +.TP 3 +unchecked +Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. For example: +.nf +\f3 +.fl + List l = new ArrayList(); +.fl + List ls = l; // unchecked warning +.fl +\fP +.fi +During type erasure, the types \f2ArrayList\fP and \f2List\fP become \f2ArrayList\fP and \f2List\fP, respectively. +.br +.br +The variable \f2ls\fP has the parameterized type \f2List\fP. When the \f2List\fP referenced by \f2l\fP is assigned to \f2ls\fP, the compiler generates an unchecked warning; the compiler is unable to determine at compile time, and moreover knows that the JVM will not be able to determine at runtime, if \f2l\fP refers to a \f2List\fP type; it does not. Consequently, heap pollution occurs. +.br +.br +In detail, a heap pollution situation occurs when the \f2List\fP object \f2l\fP, whose static type is \f2List\fP, is assigned to another \f2List\fP object, \f2ls\fP, that has a different static type, \f2List\fP. However, the compiler still allows this assignment. It must allow this assignment to preserve backwards compatibility with versions of Java SE that do not support generics. Because of type erasure, \f2List\fP and \f2List\fP both become \f2List\fP. Consequently, the compiler allows the assignment of the object \f2l\fP, which has a raw type of \f2List\fP, to the object \f2ls\fP. +.TP 3 +varargs +Warn about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non\-reifiable arguments. For example: +.nf +\f3 +.fl +public class ArrayBuilder { +.fl + public static void addToList (List listArg, T... elements) { +.fl + for (T x : elements) { +.fl + listArg.add(x); +.fl + } +.fl + } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning for the definition of the method \f2ArrayBuilder.addToList\fP: +.nf +\f3 +.fl +warning: [varargs] Possible heap pollution from parameterized vararg type T +.fl +\fP +.fi +When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. However, the Java programming language does not permit the creation of arrays of parameterized types. In the method \f2ArrayBuilder.addToList\fP, the compiler translates the varargs formal parameter \f2T... elements\fP to the formal parameter \f2T[] elements\fP, an array. However, because of type erasure, the compiler converts the varargs formal parameter to \f2Object[] elements\fP. Consequently, there is a possibility of heap pollution. .RE .LP -.RE .SH "COMMAND LINE ARGUMENT FILES" -.LP - .LP .LP To shorten or simplify the javac command line, you can specify one or more files that themselves contain arguments to the \f2javac\fP command (except \f2\-J\fP options). This enables you to create javac commands of any length on any operating system. @@ -405,9 +757,7 @@ You could use a single argument file named "\f2argfile\fP" to hold all javac arg .nf \f3 .fl - % \fP\f3javac @argfile\fP -.fl - +% \fP\f3javac @argfile\fP .fl .fi @@ -433,7 +783,7 @@ Create a file named "\f2options\fP" containing: .fl \-sourcepath /java/pubs/ws/1.3/src/share/classes .fl - + .fl \fP .fi @@ -451,7 +801,7 @@ Create a file named "\f2classes\fP" containing: .fl MyClass3.java .fl - + .fl \fP .fi @@ -465,7 +815,7 @@ You would then run \f3javac\fP with: .fl % \fP\f3javac @options @classes\fP .fl - + .fl .fi @@ -479,16 +829,12 @@ The argument files can have paths, but any filenames inside the files are relati .nf \f3 .fl - % \fP\f3javac @path1/options @path2/classes\fP -.fl - +% \fP\f3javac @path1/options @path2/classes\fP .fl .fi .LP .SH "ANNOTATION PROCESSING" -.LP - .LP .LP \f3javac\fP provides direct support for annotation processing, superseding the need for the separate annotation processing tool, \f3apt\fP. @@ -500,11 +846,7 @@ The API for annotation processors is defined in the \f2javax.annotation.processi Overview of annotation processing .LP .LP -Unless annotation processing is disabled with the \f3\-proc:none\fP option, the compiler searches for any annotation processors that are available. The search path can be specified with the \f3\-processorpath\fP option; if it is not given, the user class path is used. Processors are located by means of service provider\-configuration files named -.br -\f2\ META\-INF/services/javax.annotation.processing.Processor\fP -.br -on the search path. Such files should contain the names of any annotation processors to be used, listed one per line. Alternatively, processors can be specified explicitly, using the \f3\-processor\fP option. +Unless annotation processing is disabled with the \f3\-proc:none\fP option, the compiler searches for any annotation processors that are available. The search path can be specified with the \f3\-processorpath\fP option; if it is not given, the user class path is used. Processors are located by means of service provider\-configuration files named \f2META\-INF/services/javax.annotation.processing.Processor\fP on the search path. Such files should contain the names of any annotation processors to be used, listed one per line. Alternatively, processors can be specified explicitly, using the \f3\-processor\fP option. .LP .LP After scanning the source files and classes on the command line to determine what annotations are present, the compiler queries the processors to determine what annotations they process. When a match is found, the processor will be invoked. A processor may "claim" the annotations it processes, in which case no further attempt is made to find any processors for those annotations. Once all annotations have been claimed, the compiler does not look for additional processors. @@ -522,8 +864,6 @@ Implicitly loaded source files To compile a set of source files, the compiler may need to implicitly load additional source files. (See Searching For Types). Such files are currently not subject to annotation processing. By default, the compiler will give a warning if annotation processing has occurred and any implicitly loaded source files are compiled. See the \-implicit option for ways to suppress the warning. .LP .SH "SEARCHING FOR TYPES" -.LP - .LP .LP When compiling a source file, the compiler often needs information about a type whose definition did not appear in the source files given on the command line. The compiler needs type information for every class or interface used, extended, or implemented in the source file. This includes classes and interfaces not explicitly mentioned in the source file but which provide information through inheritance. @@ -532,11 +872,7 @@ When compiling a source file, the compiler often needs information about a type For example, when you subclass \f3java.applet.Applet\fP, you are also using \f3Applet's\fP ancestor classes: \f3java.awt.Panel\fP, \f3java.awt.Container\fP, \f3java.awt.Component\fP, and \f3java.lang.Object\fP. .LP .LP -When the compiler needs type information, it looks for a source file or class file which defines the type. The compiler searches for class files first in the bootstrap and extension classes, then in the user class path (which by default is the current directory). The user class path is defined by setting the \f3CLASSPATH\fP environment variable or by using the \f3\-classpath\fP command line option. (For details, see -.na -\f2Setting the Class Path\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath). +When the compiler needs type information, it looks for a source file or class file which defines the type. The compiler searches for class files first in the bootstrap and extension classes, then in the user class path (which by default is the current directory). The user class path is defined by setting the \f3CLASSPATH\fP environment variable or by using the \f3\-classpath\fP command line option. (For details, see Setting the Class Path). .LP .LP If you set the \-sourcepath option, the compiler searches the indicated path for source files; otherwise the compiler searches the user class path for both class files and source files. @@ -554,8 +890,6 @@ If a type search finds a source file for a required type, either by itself, or a The compiler may not discover the need for some type information until after annotation processing is complete. If the type information is found in a source file and no \f3\-implicit\fP option is given, the compiler will give a warning that the file is being compiled without being subject to annotation processing. To disable the warning, either specify the file on the command line (so that it will be subject to annotation processing) or use the \f3\-implicit\fP option to specify whether or not class files should be generated for such source files. .LP .SH "PROGRAMMATIC INTERFACE" -.LP - .LP .LP \f3javac\fP supports the new Java Compiler API defined by the classes and interfaces in the \f2javax.tools\fP package. @@ -572,8 +906,6 @@ To perform a compilation using arguments as you would give on the command line, JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); .fl int rc = javac.run(null, null, null, args); -.fl - .fl \fP .fi @@ -588,11 +920,8 @@ You can use other methods on the \f2javax.tools.JavaCompiler\fP interface to han .SS Old Interface .LP -.RS 3 - .LP -.LP -\f3Note:\fP \ This API is retained for backwards compatibility only; all new code should use the Java Compiler API, described above. +\f3Note:\fP This API is retained for backwards compatibility only; all new code should use the Java Compiler API, described above. .LP .LP The \f2com.sun.tools.javac.Main\fP class provides two static methods to invoke the compiler from a program: @@ -603,8 +932,6 @@ The \f2com.sun.tools.javac.Main\fP class provides two static methods to invoke t public static int compile(String[] args); .fl public static int compile(String[] args, PrintWriter out); -.fl - .fl \fP .fi @@ -622,20 +949,13 @@ The return value is equivalent to the exit value from \f3javac\fP. .LP Note that all \f3other\fP classes and methods found in a package whose name starts with \f2com.sun.tools.javac\fP (informally known as sub\-packages of \f2com.sun.tools.javac\fP) are strictly internal and subject to change at any time. .LP -.RE .SH "EXAMPLES" .LP .SS Compiling a Simple Program -.LP -.RS 3 - .LP .LP One source file, \f2Hello.java\fP, defines a class called \f3greetings.Hello\fP. The \f2greetings\fP directory is the package directory both for the source file and the class file and is off the current directory. This allows us to use the default user class path. It also makes it unnecessary to specify a separate destination directory with \f3\-d\fP. -.LP -.RS 3 - .LP .nf \f3 @@ -681,25 +1001,15 @@ Hello World Hello Universe .fl Hello Everyone -.fl - .fl .fi -.RE .LP -.RE .SS Compiling Multiple Source Files -.LP -.RS 3 - .LP .LP This example compiles all the source files in the package \f2greetings\fP. -.LP -.RS 3 - .LP .nf \f3 @@ -719,27 +1029,15 @@ Aloha.java GutenTag.java Hello.java Hi.java Aloha.class GutenTag.class Hello.class Hi.class .fl Aloha.java GutenTag.java Hello.java Hi.java -.fl - -.fl - .fl .fi -.RE .LP -.RE .SS Specifying a User Class Path -.LP -.RS 3 - .LP .LP Having changed one of the source files in the previous example, we recompile it: -.LP -.RS 3 - .LP .nf \f3 @@ -749,35 +1047,23 @@ Having changed one of the source files in the previous example, we recompile it: /examples .fl % \f3javac greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP Since \f2greetings.Hi\fP refers to other classes in the \f2greetings\fP package, the compiler needs to find these other classes. The example above works, because our default user class path happens to be the directory containing the package directory. But suppose we want to recompile this file and not worry about which directory we're in? Then we need to add \f2/examples\fP to the user class path. We can do this by setting \f3CLASSPATH\fP, but here we'll use the \f3\-classpath\fP option. -.LP -.RS 3 - .LP .nf \f3 .fl % \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP If we change \f2greetings.Hi\fP again, to use a banner utility, that utility also needs to be accessible through the user class path. -.LP -.RS 3 - .LP .nf \f3 @@ -786,41 +1072,25 @@ If we change \f2greetings.Hi\fP again, to use a banner utility, that utility als .fl /examples/greetings/Hi.java\fP .fl - -.fl .fi -.RE .LP .LP To execute a class in \f2greetings\fP, we need access both to \f2greetings\fP and to the classes it uses. -.LP -.RS 3 - .LP .nf \f3 .fl % \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP -.fl - .fl .fi -.RE .LP -.RE .SS Separating Source Files and Class Files -.LP -.RS 3 - .LP .LP It often makes sense to keep source files and class files in separate directories, especially on large projects. We use \f3\-d\fP to indicate the separate class file destination. Since the source files are not in the user class path, we use \f3\-sourcepath\fP to help the compiler find them. -.LP -.RS 3 - .LP .nf \f3 @@ -854,54 +1124,49 @@ farewells/ % \f3ls classes/farewells\fP .fl Base.class GoodBye.class -.fl - -.fl - .fl .fi -.RE .LP .LP -\f3Note:\fP \ The compiler compiled \f2src/farewells/Base.java\fP, even though we didn't specify it on the command line. To trace automatic compiles, use the \f3\-verbose\fP option. +\f3Note:\fP The compiler compiled \f2src/farewells/Base.java\fP, even though we didn't specify it on the command line. To trace automatic compiles, use the \f3\-verbose\fP option. .LP -.RE .SS Cross\-Compilation Example .LP -.RS 3 - .LP -.LP -Here we use \f3javac\fP to compile code that will run on a 1.7 VM. -.LP -.RS 3 - +Here we use \f3javac\fP to compile code that will run on a 1.6 VM. .LP .nf \f3 .fl -% \fP\f3javac \-target 1.7 \-bootclasspath jdk1.7.0/lib/rt.jar \\ +% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\ .fl \-extdirs "" OldCode.java\fP .fl - +.fi + +.LP +.LP +The \f2\-source 1.6\fP option specifies that version 1.6 (or 6) of the Java programming language be used to compile \f2OldCode.java\fP. The option \f3\-target 1.6\fP option ensures that the generated class files will be compatible with 1.6 VMs. Note that in most cases, the value of the \f3\-target\fP option is the value of the \f3\-source\fP option; in this example, you can omit the \f3\-target\fP option. +.LP +.LP +You must specify the \f3\-bootclasspath\fP option to specify the correct version of the bootstrap classes (the \f2rt.jar\fP library). If not, the compiler generates a warning: +.LP +.nf +\f3 +.fl +% \fP\f3javac \-source 1.6 OldCode.java\fP +.fl +warning: [options] bootstrap class path not set in conjunction with \-source 1.6 .fl .fi -.RE .LP .LP -The \f3\-target 1.7\fP option ensures that the generated class files will be compatible with 1.7 VMs. By default, \f3javac\fP compiles for JDK 6. +If you do not specify the correct version of bootstrap classes, the compiler will use the old language rules (in this example, it will use version 1.6 of the Java programming language) combined with the new bootstrap classes, which can result in class files that do not work on the older platform (in this case, Java SE 6) because reference to non\-existent methods can get included. .LP -.LP -The Java Platform JDK's \f3javac\fP would also by default compile against its own bootstrap classes, so we need to tell \f3javac\fP to compile against JDK 1.7 bootstrap classes instead. We do this with \f3\-bootclasspath\fP and \f3\-extdirs\fP. Failing to do this might allow compilation against a Java Platform API that would not be present on a 1.7 VM and would fail at runtime. -.LP -.RE .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 @@ -909,7 +1174,7 @@ o .na \f2The javac Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/javac/index.html .TP 2 o java(1) \- the Java Application Launcher @@ -933,7 +1198,7 @@ o .na \f2The Java Extensions Framework\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/extensions/index.html .RE .LP diff --git a/jdk/src/linux/doc/man/javadoc.1 b/jdk/src/linux/doc/man/javadoc.1 index 16e6a9a1fbf..34ac8103628 100644 --- a/jdk/src/linux/doc/man/javadoc.1 +++ b/jdk/src/linux/doc/man/javadoc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,27 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "02 Jun 2010" +.TH javadoc 1 "10 May 2011" .SH "Name" javadoc \- The Java API Documentation Generator -.RS 3 - .LP -.LP -Generates HTML pages of API documentation from Java source files. This document contains Javadoc examples for Sun Solaris. -.LP -.RE +Generates HTML pages of API documentation from Java source files. This document contains Javadoc examples for Solaris. .SH "SYNOPSIS" .LP -.LP \f4javadoc\fP\f2\ [\ \fP\f2options\fP\f2\ ]\ [\ packagenames\ ]\ [\ sourcefilenames\ ]\ [\ \-subpackages\fP\ \f2pkg1:pkg2:...\fP\f2\ ]\ [\ \fP\f2@argfiles\fP\f2\ ]\fP .LP -.LP Arguments can be in any order. See processing of Source Files for details on how the Javadoc tool determines which "\f2.java\fP" files to process. -.LP -.RS 3 - -.LP .RS 3 .TP 3 options @@ -49,11 +38,7 @@ packagenames A series of names of packages, separated by spaces, such as \f2java.lang\ java.lang.reflect\ java.awt\fP. You must separately specify each package you want to document. Wildcards are not allowed; use \-subpackages for recursion. The Javadoc tool uses \f2\-sourcepath\fP to look for these package names. See Example \- Documenting One or More Packages .TP 3 sourcefilenames -A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes +A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see the Java Language Specification). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes .TP 3 \-subpackages pkg1:pkg2:... Generates documentation from source files in the specified packages and recursively in their subpackages. An alternative to supplying packagenames or sourcefilenames. @@ -61,31 +46,19 @@ Generates documentation from source files in the specified packages and recursiv @argfiles One or more files that contain a list of Javadoc options, packagenames and sourcefilenames in any order. Wildcards (*) and \f2\-J\fP options are not allowed in these files. .RE - -.LP -.RE .SH "DESCRIPTION" .LP -.LP The \f3Javadoc\fP tool parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages describing (by default) the public and protected classes, nested classes (but not anonymous inner classes), interfaces, constructors, methods, and fields. You can use it to generate the API (Application Programming Interface) documentation or the implementation documentation for a set of source files. .LP -.LP You can run the Javadoc tool on entire packages, individual source files, or both. When documenting entire packages, you can either use \f2\-subpackages\fP for traversing recursively down from a top\-level directory, or pass in an explicit list of package names. When documenting individual source files, you pass in a list of source (\f2.java\fP) filenames. Examples are given at the end of this document. How Javadoc processes source files is covered next. -.LP .SS Processing of source files .LP -.LP The Javadoc tool processes files that end in "\f2.java\fP" plus other files described under Source Files. If you run the Javadoc tool by explicitly passing in individual source filenames, you can determine exactly which "\f2.java\fP" files are processed. However, that is not how most developers want to work, as it is simpler to pass in package names. The Javadoc tool can be run three ways without explicitly specifying the source filenames. You can (1) pass in package names, (2) use \f2\-subpackages\fP, and (3) use wildcards with source filenames (\f2*.java\fP). In these cases, the Javadoc tool processes a "\f2.java\fP" file only if it fulfills all of the following requirements: -.LP .RS 3 .TP 2 o -Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625 for legal characters) +Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see the Java Language Specification for legal characters) .TP 2 o Its directory path relative to the root of the source tree is actually a legal package name (after converting its separators to dots) @@ -93,11 +66,8 @@ Its directory path relative to the root of the source tree is actually a legal p o Its package statement contains the legal package name (specified in the previous bullet) .RE - -.LP .LP \f3Processing of links\fP \- During a run, the Javadoc tool automatically adds cross\-reference links to package, class and member names that are being documented as part of that run. Links appear in several places: -.LP .RS 3 .TP 2 o @@ -124,69 +94,50 @@ Package and class inheritance trees o The index .RE - -.LP .LP You can add hyperlinks to existing text for classes not included on the command line (but generated separately) by way of the \f2\-link\fP and \f2\-linkoffline\fP options. .LP -.LP \f3Other processing details\fP \- The Javadoc tool produces one complete document each time it is run; it cannot do incremental builds \-\- that is, it cannot modify or \f2directly\fP incorporate results from previous runs of the Javadoc tool. However, it can link to results from other runs, as just mentioned. .LP -.LP As implemented, the Javadoc tool requires and relies on the java compiler to do its job. The Javadoc tool calls part of \f2javac\fP to compile the declarations, ignoring the member implementation. It builds a rich internal representation of the classes, including the class hierarchy, and "use" relationships, then generates the HTML from that. The Javadoc tool also picks up user\-supplied documentation from documentation comments in the source code. .LP -.LP In fact, the Javadoc tool will run on \f2.java\fP source files that are pure stub files with no method bodies. This means you can write documentation comments and run the Javadoc tool in the earliest stages of design while creating the API, before writing the implementation. .LP -.LP -Relying on the compiler ensures that the HTML output corresponds exactly with the actual implementation, which may rely on implicit, rather than explicit, source code. For example, the Javadoc tool documents -.na -\f2default constructors\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (section 8.6.7 of \f2Java Language Specification\fP) that are present in the \f2.class\fP files but not in the source code. -.LP +Relying on the compiler ensures that the HTML output corresponds exactly with the actual implementation, which may rely on implicit, rather than explicit, source code. For example, the Javadoc tool documents default constructors (see Java Language Specification) that are present in the \f2.class\fP files but not in the source code. .LP In many cases, the Javadoc tool allows you to generate documentation for source files whose code is incomplete or erroneous. This is a benefit that enables you to generate documentation before all debugging and troubleshooting is done. For example, according to the \f2Java Language Specification\fP, a class that contains an abstract method should itself be declared abstract. The Javadoc tool does not check for this, and would proceed without a warning, whereas the javac compiler stops on this error. The Javadoc tool does do some primitive checking of doc comments. Use the DocCheck doclet to check the doc comments more thoroughly. .LP -.LP When the Javadoc tool builds its internal structure for the documentation, it loads all referenced classes. Because of this, the Javadoc tool must be able to find all referenced classes, whether bootstrap classes, extensions, or user classes. For more about this, see .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path. -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path. .SS Javadoc Doclets .LP -.LP You can customize the content and format of the Javadoc tool's output by using doclets. The Javadoc tool has a default "built\-in" doclet, called the standard doclet, that generates HTML\-formatted API documentation. You can modify or subclass the standard doclet, or write your own doclet to generate HTML, XML, MIF, RTF or whatever output format you'd like. Information about doclets and their use is at the following locations: -.LP .RS 3 .TP 2 o .na \f2Javadoc Doclets\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html .TP 2 o The \f2\-doclet\fP command\-line option .RE - -.LP .LP When a custom doclet is not specified with the \f2\-doclet\fP command line option, the Javadoc tool will use the default standard doclet. The javadoc tool has several command line options that are available regardless of which doclet is being used. The standard doclet adds a supplementary set of command line options. Both sets of options are described below in the options section. -.LP .SS Related Documentation and Doclets -.LP .RS 3 .TP 2 o .na \f2Javadoc Enhancements\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc. +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc. .TP 2 o .na @@ -198,7 +149,7 @@ o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html for more information about Sun conventions for writing documentation comments. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html for more information about Sun conventions for writing documentation comments. .TP 2 o .na @@ -216,22 +167,18 @@ o .na \f2DocCheck Doclet\fP @ .fi -http://java.sun.com/javadoc/doccheck \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Sun Doc Check Utilities. +http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Doc Check Utilities. .TP 2 o .na \f2MIF Doclet\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format. +http://java.sun.com/j2se/javadoc/mifdoclet/ \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format. .RE - -.LP .SS Terminology .LP -.LP The terms \f2documentation comment\fP, \f2doc comment\fP, \f2main description\fP, \f2tag\fP, \f2block tag\fP, and \f2in\-line tag\fP are described at Documentation Comments. These other terms have specific meanings within the context of the Javadoc tool: -.LP .RS 3 .TP 3 generated document @@ -259,34 +206,25 @@ The classes and interfaces that are explicitly referred to in the definition (im .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members. +http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members. .LP .TP 3 external referenced classes The referenced classes whose documentation is not being generated during a javadoc run. In other words, these classes are not passed into the Javadoc tool on the command line. Links in the generated documentation to those classes are said to be \f2external references\fP or \f2external links\fP. For example, if you run the Javadoc tool on only the \f2java.awt\fP package, then any class in \f2java.lang\fP, such as \f2Object\fP, is an external referenced class. External referenced classes can be linked to using the \f2\-link\fP and \f2\-linkoffline\fP options. An important property of an external referenced class is that its source comments are normally not available to the Javadoc run. In this case, these comments cannot be inherited. .RE - -.LP .SH "SOURCE FILES" .LP -.LP The Javadoc tool will generate output originating from four different types of "source" files: Java language source files for classes (\f2.java\fP), package comment files, overview comment files, and miscellaneous unprocessed files. This section also covers test files and template files that can also be in the source tree, but which you want to be sure not to document. -.LP .SS Class Source Code Files .LP -.LP Each class or interface and its members can have their own documentation comments, contained in a \f2.java\fP file. For more details about these doc comments, see Documentation Comments. -.LP .SS Package Comment Files .LP -.LP Each package can have its own documentation comment, contained in its own "source" file, that the Javadoc tool will merge into the package summary page that it generates. You typically include in this comment any documentation that applies to the entire package. .LP -.LP To create a package comment file, you have a choice of two files to place your comments: -.LP .RS 3 .TP 2 o @@ -295,52 +233,18 @@ o o \f2package.html\fP \- Can contain only package comments and Javadoc tags, no package annotations. .RE - -.LP .LP A package may have a single \f2package.html\fP file or a single \f2package\-info.java\fP file but not both. Place either file in the package directory in the source tree along with your \f2.java\fP files. .LP -.LP \f4package\-info.java\fP \- This file can contain a package comment of the following structure \-\- the comment is placed before the package declaration: .LP -.LP File: \f2java/applet/package\-info.java\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 .nf \f3 .fl /** .fl - * Provides the classes necessary to create an + * Provides the classes necessary to create an .fl * applet and the classes an applet uses .fl @@ -372,105 +276,12 @@ package java.lang.applet; .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 352 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - -.LP .LP Note that while the comment separators \f2/**\fP and \f2/*\fP must be present, the leading asterisks on the intermediate lines can be omitted. .LP -.LP \f4package.html\fP \- This file can contain a package comment of the following structure \-\- the comment is placed in the \f2\fP element: .LP -.LP File: \f2java/applet/package.html\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 .nf \f3 .fl @@ -478,7 +289,7 @@ File: \f2java/applet/package.html\fP .fl .fl -Provides the classes necessary to create an applet and the +Provides the classes necessary to create an applet and the .fl classes an applet uses to communicate with its applet context. .fl @@ -506,77 +317,14 @@ initialize, start, and stop the applet. .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 405 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-40 - -.LP .LP Notice this is just a normal HTML file and does not include a package declaration. The content of the package comment file is written in HTML, like all other comments, with one exception: The documentation comment should not include the comment separators \f2/**\fP and \f2*/\fP or leading asterisks. When writing the comment, you should make the first sentence a summary about the package, and not put a title or any other text between \f2\fP and the first sentence. You can include package tags; as with any documentation comment, all block tags must appear after the main description. If you add a \f2@see\fP tag in a package comment file, it must have a fully\-qualified name. For more details, see the .na \f2example of \fP\f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#packagecomments. .LP \f3Processing of package comment file\fP \- When the Javadoc tool runs, it will automatically look for the package comment file; if found, the Javadoc tool does the following: -.LP .RS 3 .TP 2 o @@ -590,35 +338,27 @@ Inserts the processed text at the bottom of the package summary page it generate .na \f2Package Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/applet/package\-summary.html. +http://download.oracle.com/javase/7/docs/api/java/applet/package\-summary.html. .TP 2 o Copies the first sentence of the package comment to the top of the package summary page. It also adds the package name and this first sentence to the list of packages on the overview page, as shown in .na \f2Overview Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions. +http://download.oracle.com/javase/7/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions. .RE - -.LP .SS Overview Comment File .LP -.LP Each application or set of packages that you are documenting can have its own overview documentation comment, kept in its own "source" file, that the Javadoc tool will merge into the overview page that it generates. You typically include in this comment any documentation that applies to the entire application or set of packages. .LP -.LP To create an overview comment file, you can name the file anything you want, typically \f4overview.html\fP and place it anywhere, typically at the top level of the source tree. For example, if the source files for the \f2java.applet\fP package are contained in \f2/home/user/src/java/applet\fP directory, you could create an overview comment file at \f2/home/user/src/overview.html\fP. .LP -.LP Notice you can have multiple overview comment files for the same set of source files, in case you want to run javadoc multiple times on different sets of packages. For example, you could run javadoc once with \-private for internal documentation and again without that option for public documentation. In this case, you could describe the documentation as public or internal in the first sentence of each overview comment file. .LP -.LP The content of the overview comment file is one big documentation comment, written in HTML, like the package comment file described previously. See that description for details. To re\-iterate, when writing the comment, you should make the first sentence a summary about the application or set of packages, and not put a title or any other text between \f2\fP and the first sentence. You can include overview tags; as with any documentation comment, all tags except in\-line tags, such as \f2{@link}\fP, must appear after the main description. If you add a \f2@see\fP tag, it must have a fully\-qualified name. .LP -.LP When you run the Javadoc tool, you specify the overview comment file name with the \-overview option. The file is then processed similar to that of a package comment file. -.LP .RS 3 .TP 2 o @@ -632,25 +372,19 @@ Inserts the processed text at the bottom of the overview page it generates, as s .na \f2Overview Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html. +http://download.oracle.com/javase/7/docs/api/overview\-summary.html. .TP 2 o Copies the first sentence of the overview comment to the top of the overview summary page. .RE - -.LP .SS Miscellaneous Unprocessed Files .LP -.LP You can also include in your source any miscellaneous files that you want the Javadoc tool to copy to the destination directory. These typically includes graphic files, example Java source (.java) and class (.class) files, and self\-standing HTML files whose content would overwhelm the documentation comment of a normal Java source file. .LP -.LP To include unprocessed files, put them in a directory called \f4doc\-files\fP which can be a subdirectory of any package directory that contains source files. You can have one such subdirectory for each package. You might include images, example code, source files, .class files, applets and HTML files. For example, if you want to include the image of a button \f2button.gif\fP in the \f2java.awt.Button\fP class documentation, you place that file in the \f2/home/user/src/java/awt/doc\-files/\fP directory. Notice the \f2doc\-files\fP directory should not be located at \f2/home/user/src/java/doc\-files\fP because \f2java\fP is not a package \-\- that is, it does not directly contain any source files. .LP -.LP All links to these unprocessed files must be hard\-coded, because the Javadoc tool does not look at the files \-\- it simply copies the directory and all its contents to the destination. For example, the link in the \f2Button.java\fP doc comment might look like: -.LP .nf \f3 .fl @@ -664,23 +398,16 @@ All links to these unprocessed files must be hard\-coded, because the Javadoc to .fl \fP .fi - -.LP .SS Test Files and Template Files .LP -.LP Some developers have indicated they want to store test files and templates files in the source tree near their corresponding source files. That is, they would like to put them in the same directory, or a subdirectory, of those source files. .LP -.LP If you run the Javadoc tool by explicitly passing in individual source filenames, you can deliberately omit test and templates files and prevent them from being processed. However, if you are passing in package names or wildcards, you need to follow certain rules to ensure these test files and templates files are not processed. .LP -.LP Test files differ from template files in that the former are legal, compilable source files, while the latter are not, but may end with ".java". .LP -.LP \f3Test files\fP \- Often developers want to put compilable, runnable test files for a given package in the \f2same\fP directory as the source files for that package. But they want the test files to belong to a package other than the source file package, such as the unnamed package (so the test files have no package statement or a different package statement from the source). In this scenario, when the source is being documented by specifying its package name specified on the command line, the test files will cause warnings or errors. You need to put such test files in a subdirectory. For example, if you want to add test files for source files in \f2com.package1\fP, put them in a subdirectory that would be an invalid package name (because it contains a hyphen): -.LP .nf \f3 .fl @@ -688,29 +415,17 @@ Test files differ from template files in that the former are legal, compilable s .fl \fP .fi - -.LP .LP The test directory will be skipped by the Javadoc tool with no warnings. .LP -.LP If your test files contain doc comments, you can set up a separate run of the Javadoc tool to produce documentation of the test files by passing in their test source filenames with wildcards, such as \f2com/package1/test\-files/*.java\fP. .LP -.LP -\f3Templates for source files\fP \- Template files have names that often end in ".java" and are not compilable. If you have a template for a source file that you want to keep in the source directory, you can name it with a dash (such as \f2Buffer\-Template.java\fP), or any other illegal Java character, to prevent it from being processed. This relies on the fact that the Javadoc tool will only process source files whose name, when stripped of the ".java" suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625). -.LP +\f3Templates for source files\fP \- Template files have names that often end in ".java" and are not compilable. If you have a template for a source file that you want to keep in the source directory, you can name it with a dash (such as \f2Buffer\-Template.java\fP), or any other illegal Java character, to prevent it from being processed. This relies on the fact that the Javadoc tool will only process source files whose name, when stripped of the ".java" suffix, is actually a legal class name (see information about Identifiers in the Java Language Specification). .SH "GENERATED FILES" .LP -.LP By default, javadoc uses a standard doclet that generates HTML\-formatted documentation. This doclet generates the following kinds of files (where each HTML "page" corresponds to a separate file). Note that javadoc generates files with two types of names: those named after classes/interfaces, and those that are not (such as \f2package\-summary.html\fP). Files in the latter group contain hyphens to prevent filename conflicts with those in the former group. .LP -.LP \f3Basic Content Pages\fP -.LP .RS 3 .TP 2 o @@ -722,11 +437,8 @@ One \f3package page\fP (\f2package\-summary.html\fP) for each package it is docu o One \f3overview page\fP (\f2overview\-summary.html\fP) for the entire set of packages. This is the front page of the generated document. The Javadoc tool will include any HTML text provided in a file specified with the \f2\-overview\fP option. Note that this file is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) .RE - -.LP .LP \f3Cross\-Reference Pages\fP -.LP .RS 3 .TP 2 o @@ -750,15 +462,12 @@ A \f3serialized form page\fP (\f2serialized\-form.html\fP) for information about o An \f3index\fP (\f2index\-*.html\fP) of all class, interface, constructor, field and method names, alphabetically arranged. This is internationalized for Unicode and can be generated as a single file or as a separate file for each starting character (such as A\-Z for English). .RE - -.LP .LP \f3Support Files\fP -.LP .RS 3 .TP 2 o -A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP. +A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP. .TP 2 o One \f3index.html file\fP which creates the HTML frames for display. This is the file you load to display the front page with frames. This file itself contains no text content. @@ -775,45 +484,14 @@ A \f3style sheet\fP file (\f2stylesheet.css\fP) that controls a limited amount o o A \f3doc\-files\fP directory that holds any image, example, source code or other files that you want copied to the destination directory. These files are not processed by the Javadoc tool in any manner \-\- that is, any javadoc tags in them will be ignored. This directory is not generated unless it exists in the source tree. .RE - -.LP .LP \f3HTML Frames\fP .LP -.LP The Javadoc tool will generate either two or three HTML frames, as shown in the figure below. It creates the minimum necessary number of frames by omitting the list of packages if there is only one package (or no packages). That is, when you pass a single package name or source files (*.java) belonging to a single package as arguments into the javadoc command, it will create only one frame (C) in the left\-hand column \-\- the list of classes. When you pass into javadoc two or more package names, it creates a third frame (P) listing all packages, as well as an overview page (Detail). This overview page has the filename \f2overview\-summary.html\fP. Thus, this file is created only if you pass in two or more package names. You can bypass frames by clicking on the "No Frames" link or entering at overview\-summary.html. .LP -.LP If you are unfamiliar with HTML frames, you should be aware that frames can have \f2focus\fP for printing and scrolling. To give a frame focus, click on it. Then on many browsers the arrow keys and page keys will scroll that frame, and the print menu command will print it. .LP -.nf -\f3 -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - |C| Detail | |P| Detail | -.fl - | | | | | | -.fl - | | | |\-| | -.fl - | | | |C| | -.fl - | | | | | | -.fl - | | | | | | -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - javadoc *.java javadoc java.lang java.awt -.fl -\fP -.fi - -.LP -.LP Load one of the following two files as the starting page depending on whether you want HTML frames or not: -.LP .RS 3 .TP 2 o @@ -822,24 +500,14 @@ o o \f2overview\-summary.html\fP (for no frames) .RE - -.LP .LP \f3Generated File Structure\fP .LP -.LP The generated class and interface files are organized in the same directory hierarchy that Java source files and class files are organized. This structure is one directory per subpackage. .LP -.LP For example, the document generated for the class \f2java.applet.Applet\fP class would be located at \f2java/applet/Applet.html\fP. The file structure for the java.applet package follows, given that the destination directory is named \f2apidocs\fP. All files that contain the word "frame" appear in the upper\-left or lower\-left frames, as noted. All other HTML files appear in the right\-hand frame. .LP -.RS 3 - -.LP -.LP NOTE \- Directories are shown in \f3bold\fP. The asterisks (\f2*\fP) indicate the files and directories that are \f2omitted\fP when the arguments to javadoc are source filenames (*.java) rather than package names. Also when arguments are source filenames, \f2package\-list\fP is created but is empty. The doc\-files directory will not be created in the destination unless it exists in the source tree. -.LP -.RE .nf \f3 .fl @@ -922,44 +590,31 @@ NOTE \- Directories are shown in \f3bold\fP. The asterisks (\f2*\fP) indicate th AudioClip.html Page for AudioClip source code .fl .fi - -.LP .SS Generated API Declarations .LP -.LP The Javadoc tool generates a declaration at the start of each class, interface, field, constructor, and method description for that API item. For example, the declaration for the \f2Boolean\fP class is: .LP -.LP \f2public final class Boolean\fP .br \f2extends Object\fP .br \f2implements Serializable\fP .LP -.LP and the declaration for the \f2Boolean.valueOf\fPmethod is: .LP -.LP \f2public static Boolean valueOf(String s)\fP .LP -.LP The Javadoc tool can include the modifiers \f2public\fP, \f2protected\fP, \f2private\fP, \f2abstract\fP, \f2final\fP, \f2static\fP, \f2transient\fP, and \f2volatile\fP, but not \f2synchronized\fP or \f2native\fP. These last two modifiers are considered implementation detail and not part of the API specification. .LP -.LP Rather than relying on the keyword \f2synchronized\fP, APIs should document their concurrency semantics in the comment's main description, as in "a single \f2Enumeration\fP cannot be used by multiple threads concurrently". The document should not describe how to achieve these semantics. As another example, while \f2Hashtable\fP should be thread\-safe, there's no reason to specify that we achieve this by synchronizing all of its exported methods. We should reserve the right to synchronize internally at the bucket level, thus offering higher concurrency. -.LP .SH "DOCUMENTATION COMMENTS" .LP -.LP The original "Documentation Comment Specification" can be found under related documentation. -.LP .SS Commenting the Source Code .LP -.LP You can include \f2documentation comments\fP ("doc comments") in the source code, ahead of declarations for any class, interface, method, constructor, or field. You can also create doc comments for each package and another one for the overview, though their syntax is slightly different. Doc comments are also known informally as "Javadoc comments" (but this term violates its trademark usage). A doc comment consists of the characters between the characters \f2/**\fP that begin the comment and the characters \f2*/\fP that end it. Leading asterisks are allowed on each line and are described further below. The text in a comment can continue onto multiple lines. -.LP .nf \f3 .fl @@ -973,11 +628,8 @@ You can include \f2documentation comments\fP ("doc comments") in the source code .fl \fP .fi - -.LP .LP To save space you can put a comment on one line: -.LP .nf \f3 .fl @@ -985,14 +637,10 @@ To save space you can put a comment on one line: .fl \fP .fi - -.LP .LP \f3Placement of comments\fP \- Documentation comments are recognized only when placed immediately before class, interface, constructor, method, or field declarations \-\- see the class example, method example, and field example. Documentation comments placed in the body of a method are ignored. Only one documentation comment per declaration statement is recognized by the Javadoc tool. .LP -.LP A common mistake is to put an \f2import\fP statement between the class comment and the class declaration. Avoid this, as the Javadoc tool will ignore the class comment. -.LP .nf \f3 .fl @@ -1014,11 +662,8 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3A doc comment is composed of a \fP\f4main description\fP\f3 followed by a \fP\f4tag section\fP \- The \f2main description\fP begins after the starting delimiter \f2/**\fP and continues until the tag section. The \f2tag section\fP starts with the first block tag, which is defined by the first \f2@\fP character that begins a line (ignoring leading asterisks, white space, and leading separator \f2/**\fP). It is possible to have a comment with only a tag section and no main description. The main description cannot continue after the tag section begins. The argument to a tag can span multiple lines. There can be any number of tags \-\- some types of tags can be repeated while others cannot. For example, this \f2@see\fP starts the tag section: -.LP .nf \f3 .fl @@ -1032,11 +677,8 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3Block tags and in\-line tags\fP \- A \f2tag\fP is a special keyword within a doc comment that the Javadoc tool can process. There are two kinds of tags: block tags, which appear as \f2@tag\fP (also known as "standalone tags"), and in\-line tags, which appear within curly braces, as \f2{@tag}\fP. To be interpreted, a block tag must appear at the beginning of a line, ignoring leading asterisks, white space, and separator (\f2/**\fP). This means you can use the \f2@\fP character elsewhere in the text and it will not be interpreted as the start of a tag. If you want to start a line with the \f2@\fP character and not have it be interpreted, use the HTML entity \f2@\fP. Each block tag has associated text, which includes any text following the tag up to, but not including, either the next tag, or the end of the doc comment. This associated text can span multiple lines. An in\-line tag is allowed and interpreted anywhere that text is allowed. The following example contains the block tag \f2@deprecated\fP and in\-line tag \f2{@link}\fP. -.LP .nf \f3 .fl @@ -1048,17 +690,12 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3Comments are written in HTML\fP \- The text must be written in HTML, in that they should use HTML entities and can use HTML tags. You can use whichever version of HTML your browser supports; we have written the standard doclet to generate HTML 3.2\-compliant code elsewhere (outside of the documentation comments) with the inclusion of cascading style sheets and frames. (We preface each generated file with "HTML 4.0" because of the frame sets.) .LP -.LP For example, entities for the less\-than (\f2<\fP) and greater\-than (\f2>\fP) symbols should be written \f2<\fP and \f2>\fP. Likewise, the ampersand (\f2&\fP) should be written \f2&\fP. The bold HTML tag \f2\fP is shown in the following example. .LP -.LP Here is a doc comment: -.LP .nf \f3 .fl @@ -1072,20 +709,12 @@ Here is a doc comment: .fl \fP .fi - -.LP .LP \f3Leading asterisks\fP \- When javadoc parses a doc comment, leading asterisk (\f2*\fP) characters on each line are discarded; blanks and tabs preceding the initial asterisk (\f2*\fP) characters are also discarded. Starting with 1.4, if you omit the leading asterisk on a line, the leading white space is no longer removed. This enables you to paste code examples directly into a doc comment inside a \f2
    \fP tag, and its indentation will be honored. Spaces are generally interpreted by browsers more uniformly than tabs. Indentation is relative to the left margin (rather than the separator \f2/**\fP or \f2
    \fP tag).
     .LP
    -.LP
     \f3First sentence\fP \- The first sentence of each doc comment should be a summary sentence, containing a concise but complete description of the declared entity. This sentence ends at the first period that is followed by a blank, tab, or line terminator, or at the first block tag. The Javadoc tool copies this first sentence to the member summary at the top of the HTML page.
     .LP
    -.LP
     \f3Declaration with multiple fields\fP \- Java allows declaring multiple fields in a single statement, but this statement can have only one documentation comment, which is copied for all fields. Therefore if you want individual documentation comments for each field, you must declare each field in a separate statement. For example, the following documentation comment doesn't make sense written as a single declaration and would be better handled as two declarations:
    -.LP
    -.RS 3
    -
    -.LP
     .nf
     \f3
     .fl
    @@ -1099,51 +728,32 @@ public int x, y;      // Avoid this
     .fl
     \fP
     .fi
    -.RE
    -
    -.LP
     .LP
     The Javadoc tool generates the following documentation from the above code:
    -.LP
    -.RS 3
    -
    -.LP
     .nf
     \f3
     .fl
     public int \fP\f3x\fP
     .fl
     .fi
    -
    -.LP
     .RS 3
     The horizontal and vertical distances of point (x,y) 
     .RE
    -
    -.LP
     .nf
     \f3
     .fl
     public int \fP\f3y\fP
     .fl
     .fi
    -
    -.LP
     .RS 3
     The horizontal and vertical distances of point (x,y) 
     .RE
    -
    -.LP
    -.RE
     .LP
     \f3Use header tags carefully\fP \- When writing documentation comments for members, it's best not to use HTML heading tags such as 

    and

    , because the Javadoc tool creates an entire structured document and these structural tags might interfere with the formatting of the generated document. However, it is fine to use these headings in class and package comments to provide your own structure. -.LP .SS Automatic Copying of Method Comments .LP -.LP The Javadoc tool has the ability to copy or "inherit" method comments in classes and interfaces under the following two circumstances. Constructors, fields and nested classes do not inherit doc comments. -.LP .RS 3 .TP 2 o @@ -1156,14 +766,10 @@ This behavior contrasts with version 1.3 and earlier, where the presence of any o \f3Explicitly inherit comment with {@inheritDoc} tag\fP \- Insert the inline tag \f2{@inheritDoc}\fP in a method main description or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag comment \-\- the corresponding inherited main description or tag comment is copied into that spot. .RE - -.LP .LP The source file for the inherited method need only be on the path specified by \-sourcepath for the doc comment to actually be available to copy. Neither the class nor its package needs to be passed in on the command line. This contrasts with 1.3.x and earlier releases, where the class had to be a documented class .LP -.LP \f3Inherit from classes and interfaces\fP \- Inheriting of comments occurs in all three possible cases of inheritance from classes and interfaces: -.LP .RS 3 .TP 2 o @@ -1175,17 +781,12 @@ When a method in an interface overrides a method in a superinterface o When a method in a class implements a method in an interface .RE - -.LP .LP In the first two cases, for method overrides, the Javadoc tool generates a subheading "Overrides" in the documentation for the overriding method, with a link to the method it is overriding, whether or not the comment is inherited. .LP -.LP In the third case, when a method in a given class implements a method in an interface, the Javadoc tool generates a subheading "Specified by" in the documentation for the overriding method, with a link to the method it is implementing. This happens whether or not the comment is inherited. .LP -.LP \f3Algorithm for Inheriting Method Comments\fP \- If a method does not have a doc comment, or has an {@inheritDoc} tag, the Javadoc tool searches for an applicable comment using the following algorithm, which is designed to find the most specific applicable doc comment, giving preference to interfaces over superclasses: -.LP .RS 3 .TP 3 1. @@ -1205,16 +806,11 @@ b. If step 3a failed to find a doc comment, recursively apply this entire algorithm to the superclass. .RE .RE - -.LP .SH "JAVADOC TAGS" .LP -.LP The Javadoc tool parses special tags when they are embedded within a Java doc comment. These doc tags enable you to autogenerate a complete, well\-formatted API from your source code. The tags start with an "at" sign (\f2@\fP) and are case\-sensitive \-\- they must be typed with the uppercase and lowercase letters as shown. A tag must start at the beginning of a line (after any leading spaces and an optional asterisk) or it is treated as normal text. By convention, tags with the same name are grouped together. For example, put all \f2@see\fP tags together. .LP -.LP Tags come in two types: -.LP .RS 3 .TP 2 o @@ -1223,8 +819,6 @@ o o \f3Inline tags\fP \- Can be placed anywhere in the main description or in the comments for block tags. Inline tags are denoted by curly braces: \f2{@tag}\fP. .RE - -.LP .LP For information about tags we might introduce in future releases, see .na @@ -1232,14 +826,8 @@ For information about tags we might introduce in future releases, see .fi http://java.sun.com/j2se/javadoc/proposed\-tags.html. .LP -.LP The current tags are: .LP -.RS 3 - -.LP -.LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -1350,7 +938,7 @@ The current tags are: .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 1122 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 873 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1448,55 +1036,35 @@ The current tags are: .nr T. 1 .T# 1 .35 -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - -.LP .LP For custom tags, see the \-tag option. -.LP -.RE .RS 3 .TP 3 @author\ name\-text Adds an "Author" entry with the specified \f2name\-text\fP to the generated docs when the \-author option is used. A doc comment may contain multiple \f2@author\fP tags. You can specify one name per \f2@author\fP tag or multiple names per tag. In the former case, the Javadoc tool inserts a comma (\f2,\fP) and space between names. In the latter case, the entire text is simply copied to the generated document without being parsed. Therefore, you can use multiple names per line if you want a localized name separator other than comma. +.RE .LP For more details, see Where Tags Can Be Used and .na \f2writing @author tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@author. .LP +.RS 3 .TP 3 -@deprecated\ deprecated\-text -.RS 3 - -.LP -.LP -Note: You can deprecate a program element using the -.na -\f2@Deprecated annotation\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/deprecation.html. -.LP +@deprecated\ deprecated\-text Note: You can deprecate a program element using the @Deprecated annotation. .RE -.RE -.RS 3 - -.LP .LP Adds a comment indicating that this API should no longer be used (even though it may continue to work). The Javadoc tool moves the \f2deprecated\-text\fP ahead of the main description, placing it in italics and preceding it with a bold warning: "Deprecated". This tag is valid in all doc comments: overview, package, class, interface, constructor, method and field. .LP -.LP The first sentence of \f2deprecated\-text\fP should at least tell the user when the API was deprecated and what to use as a replacement. The Javadoc tool copies just the first sentence to the summary section and index. Subsequent sentences can also explain why it has been deprecated. You should include a \f2{@link}\fP tag (for Javadoc 1.2 or later) that points to the replacement API: .LP -.LP For more details, see .na \f2writing @deprecated tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@deprecated. .RS 3 .TP 2 o @@ -1518,19 +1086,13 @@ For Javadoc 1.2 and later, use a \f2{@link}\fP tag. This creates the link in\-li o For Javadoc 1.1, the standard format is to create a \f2@see\fP tag (which cannot be in\-line) for each \f2@deprecated\fP tag. .RE - -.LP .LP For more about deprecation, see .na \f2The @deprecated tag\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/index.html. .LP -.LP - -.LP -.RE .RS 3 .TP 3 {@code\ text} @@ -1700,7 +1262,7 @@ For more details, see .na \f2writing {@link} tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#{@link}. .LP .TP 3 {@linkplain\ package.class#member\ label} @@ -1716,13 +1278,8 @@ Identical to \f2{@link}\fP, except the link's label is displayed in plain text t .fi .LP This would display as: -.RS 3 - .LP -.LP -Refer to the overridden method. -.LP -.RE +Refer to the overridden method. .LP .TP 3 {@literal\ text} @@ -1799,7 +1356,7 @@ For more details, see .na \f2writing @param tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@param. .LP .TP 3 @return\ description @@ -1809,7 +1366,7 @@ For more details, see .na \f2writing @return tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@return. .LP .TP 3 @see\ reference @@ -1834,18 +1391,12 @@ This generates text such as: .RS 3 .RS 3 .RS 3 - -.LP -.RS 3 .RS 3 .TP 3 See Also: "The Java Programming Language" .RE .RE - -.LP -.RE .TP 3 @see label Adds a link as defined by \f2URL\fP#\f2value\fP. The \f2URL\fP#\f2value\fP is a relative or absolute URL. The Javadoc tool distinguishes this from other cases by looking for a less\-than symbol (\f2<\fP) as the first character. For example: @@ -1858,14 +1409,10 @@ Adds a link as defined by \f2URL\fP#\f2value\fP. The \f2URL\fP#\f2value\fP is a .fi This generates a link such as: .RS 3 -.RS 3 .TP 3 See Also: Java Spec .RE - -.LP -.RE .TP 3 @see\ package.class#member\ label Adds a link, with visible text \f2label\fP, that points to the documentation for the specified name in the Java Language that is referenced. The \f2label\fP is optional; if omitted, the name appears instead as the visible text, suitably shortened \-\- see How a name is displayed. Use \-noqualifier to globally remove the package name from this visible text. Use the label when you want the visible text to be different from the auto\-generated visible text. @@ -1885,7 +1432,6 @@ A space is the delimiter between \f2package.class\fP\f2#\fP\f2member\fP and \f2l .RE .LP \f3Example\fP \- In this example, an \f2@see\fP tag (in the \f2Character\fP class) refers to the \f2equals\fP method in the \f2String\fP class. The tag includes both arguments: the name "\f2String#equals(Object)\fP" and the label "\f2equals\fP". -.RS 3 .nf \f3 .fl @@ -1897,11 +1443,7 @@ A space is the delimiter between \f2package.class\fP\f2#\fP\f2member\fP and \f2l .fl \fP .fi -.RE The standard doclet produces HTML something like this: -.RS 3 - -.LP .nf \f3 .fl @@ -1915,26 +1457,18 @@ The standard doclet produces HTML something like this: .fl \fP .fi -.RE Which looks something like this in a browser, where the label is the visible link text: .RS 3 - -.LP -.RS 3 .TP 3 See Also: equals .RE - -.LP -.RE .LP \f3Specifying a name\fP \- This \f2package.class\fP\f2#\fP\f2member\fP name can be either fully\-qualified, such as \f2java.lang.String#toUpperCase()\fP or not, such as \f2String#toUpperCase()\fP or \f2#toUpperCase()\fP. If less than fully\-qualified, the Javadoc tool uses the normal Java compiler search order to find it, further described below in Search order for @see. The name can contain whitespace within parentheses, such as between method arguments. .LP Of course the advantage of providing shorter, "partially\-qualified" names is that they are shorter to type and there is less clutter in the source code. The following table shows the different forms of the name, where \f2Class\fP can be a class or interface, \f2Type\fP can be a class, interface, array, or primitive, and \f2method\fP can be a method or constructor. .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -2079,7 +1613,7 @@ Of course the advantage of providing shorter, "partially\-qualified" names is th .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1665 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1364 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2165,7 +1699,6 @@ Of course the advantage of providing shorter, "partially\-qualified" names is th .rm b+ .rm c+ .rm d+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-58 .LP The following notes apply to the above table: @@ -2186,7 +1719,7 @@ As stated, the hash character (\f2#\fP), rather than a dot (\f2.\fP) separates a .LP \f3Search order for @see\fP \- the Javadoc tool will process a \f2@see\fP tag that appears in a source file (.java), package file (package.html or package\-info.java) or overview file (overview.html). In the latter two files, you must fully\-qualify the name you supply with \f2@see\fP. In a source file, you can specify a name that is fully\-qualified or partially\-qualified. .LP -When the Javadoc tool encounters a \f2@see\fP tag in a \f2.java\fP file that is \f2not\fP fully qualified, it searches for the specified name in the same order as the Java compiler would (except the Javadoc tool will not detect certain namespace ambiguities, since it assumes the source code is free of these errors). This search order is formally defined in Chapter 6, "Names" of the \f2Java Language Specification\fP, Second Edition. The Javadoc tool searches for that name through all related and imported classes and packages. In particular, it searches in this order: +When the Javadoc tool encounters a \f2@see\fP tag in a \f2.java\fP file that is \f2not\fP fully qualified, it searches for the specified name in the same order as the Java compiler would (except the Javadoc tool will not detect certain namespace ambiguities, since it assumes the source code is free of these errors). This search order is formally defined in the \f2Java Language Specification\fP. The Javadoc tool searches for that name through all related and imported classes and packages. In particular, it searches in this order: .RS 3 .TP 3 1. @@ -2214,7 +1747,6 @@ The Javadoc tool does not necessarily look in subclasses, nor will it look in ot Use \-noqualifier to globally remove the package names. .br .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -2425,7 +1957,7 @@ Use \-noqualifier to globally remove the package names. .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1741 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1440 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2561,7 +2093,6 @@ Use \-noqualifier to globally remove the package names. .rm g+ .rm h+ .rm i+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-28 .LP \f3Examples of @see\fP @@ -2598,14 +2129,9 @@ For more details, see .na \f2writing @see tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@see. .RE .RE -.RS 3 - -.LP -.LP - .LP .RS 3 .TP 3 @@ -2634,11 +2160,11 @@ For more information about how to use these tags, along with an example, see " .na \f2Documenting Serializable Fields and Data for a Class\fP @ .fi -http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html," Section 1.6 of the \f2Java Object Serialization Specification\fP. Also see the +http://download.oracle.com/javase/7/docs/platform/serialization/spec/serial\-arch.html," Section 1.6 of the \f2Java Object Serialization Specification\fP. Also see the .na \f2Serialization FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing, which covers common questions, such as "Why do I see javadoc warnings stating that I am missing @serial tags for private fields if I am not running javadoc with the \-private switch?". Also see +http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#javadoc_warn_missing, which covers common questions, such as "Why do I see javadoc warnings stating that I am missing @serial tags for private fields if I am not running javadoc with the \-private switch?". Also see .na \f2Sun's criteria\fP @ .fi @@ -2681,7 +2207,7 @@ For more details, see .na \f2writing @throws tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@exception. .LP .TP 3 {@value\ package.class#field} @@ -2727,7 +2253,7 @@ These values of these constants are also displayed on the .na \f2Constant Field Values\fP @ .fi -http://java.sun.com/javase/6/docs/api/constant\-values.html page. +http://download.oracle.com/javase/7/docs/api/constant\-values.html page. .LP .TP 3 @version\ version\-text @@ -2739,376 +2265,111 @@ For more details, see .na \f2writing @version tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version. -.RE - -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@version. .RE .SS Where Tags Can Be Used .LP -.LP The following sections describe where the tags can be used. Note that these tags can be used in all doc comments: \f2@see\fP, \f2@since\fP, \f2@deprecated\fP, \f2{@link}\fP, \f2{@linkplain}\fP, and \f2{@docroot}\fP. -.LP -.RS 3 - -.LP .SS Overview Documentation Tags .LP -.LP Overview tags are tags that can appear in the documentation comment for the overview page (which resides in the source file typically named \f2overview.html\fP). Like in any other documentation comments, these tags must appear after the main description. .LP -.LP \f3NOTE\fP \- The \f2{@link}\fP tag has a bug in overview documents in version 1.2 \-\- the text appears properly but has no link. The \f2{@docRoot}\fP tag does not currently work in overview documents. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Overview Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1962 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Overview Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-20 - -.LP +\f3Overview Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE .SS Package Documentation Tags .LP -.LP Package tags are tags that can appear in the documentation comment for a package (which resides in the source file named \f2package.html\fP or \f2package\-info.java\fP). The \f2@serial\fP tag can only be used here with the \f2include\fP or \f2exclude\fP argument. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Package Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1994 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Package Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-22 - -.LP +\f3Package Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE .SS Class and Interface Documentation Tags .LP -.LP The following are tags that can appear in the documentation comment for a class or interface. The \f2@serial\fP tag can only be used here with the \f2include\fP or \f2exclude\fP argument. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Class/Interface Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2028 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Class/Interface Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +\f3Class/Interface Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE \f3An example of a class comment:\fP -.LP .nf \f3 .fl @@ -3146,129 +2407,42 @@ class Window extends BaseWindow { .fl \fP .fi - -.LP .SS Field Documentation Tags .LP +The following are the tags that can appear in .LP -The following are the tags that can appear in the documentation comment for a field. -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@serialField\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -\f2{@value}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Field Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2103 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Field Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +\f3Field Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@serialField\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.TP 2 +o +\f2{@value}\fP +.RE \f3An example of a field comment:\fP -.LP .nf \f3 .fl @@ -3286,133 +2460,48 @@ The following are the tags that can appear in the documentation comment for a fi .fl \fP .fi - -.LP .SS Constructor and Method Documentation Tags .LP -.LP The following are the tags that can appear in the documentation comment for a constructor or method, except for \f2@return\fP, which cannot appear in a constructor, and \f2{@inheritDoc}\fP, which has certain restrictions. The \f2@serialData\fP tag can only be used in the doc comment for certain serialization methods. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@param\fP -.br -\f2@return\fP -.br -\f2@throws\fP and \f2@exception\fP -.br -\f2@serialData\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@inheritDoc}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Method/Constructor Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2162 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Method/Constructor Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-28 - -.LP +\f3Method/Constructor Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@param\fP +.TP 2 +o +\f2@return\fP +.TP 2 +o +\f2@throws\fP and \f2@exception\fP +.TP 2 +o +\f2@serialData\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@inheritDoc}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE \f3An example of a method doc comment:\fP -.LP .nf \f3 .fl @@ -3446,24 +2535,12 @@ The following are the tags that can appear in the documentation comment for a co .fl \fP .fi -.RE - -.LP .SH "OPTIONS" .LP - -.LP -.LP The javadoc tool uses doclets to determine its output. The Javadoc tool uses the default standard doclet unless a custom doclet is specified with the \-doclet option. The Javadoc tool provides a set of command\-line options that can be used with any doclet \-\- these options are described below under the sub\-heading Javadoc Options. The standard doclet provides an additional set of command\-line options that are described below under the sub\-heading Options Provided by the Standard Doclet. All option names are case\-insensitive, though their arguments can be case\-sensitive. .LP -.LP The options are: .LP -.RS 3 - -.LP -.LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -3615,6 +2692,8 @@ The options are: .br \-\f2sourcepath\fP .br +\-sourcetab +.br \-splitindex .br \-stylesheetfile @@ -3627,6 +2706,8 @@ The options are: .br \-tagletpath .br +\-top +.br \-title .br \-use @@ -3673,7 +2754,7 @@ The options are: .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2340 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 2015 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3728,54 +2809,47 @@ The options are: .rm a+ .rm b+ .rm c+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-123 - -.LP -.RE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-127 .LP Options shown in \f2italic\fP are the Javadoc core options, which are provided by the front end of the Javadoc tool and are available to all doclets. The standard doclet itself provides the non\-italic options. -.LP .SS Javadoc Options -.LP .RS 3 .TP 3 \-overview \ path/filename -Specifies that javadoc should retrieve the text for the overview documentation from the "source" file specified by \f2path/filename\fP and place it on the Overview page (\f2overview\-summary.html\fP). The \f2path/filename\fP is relative to the \f2\-sourcepath\fP. -.LP -While you can use any name you want for \f2filename\fP and place it anywhere you want for \f2path\fP, a typical thing to do is to name it \f2overview.html\fP and place it in the source tree at the directory that contains the topmost package directories. In this location, no \f2path\fP is needed when documenting packages, since \f2\-sourcepath\fP will point to this file. For example, if the source tree for the \f2java.lang\fP package is \f2/src/classes/java/lang/\fP, then you could place the overview file at \f2/src/classes/overview.html\fP. See Real World Example. -.LP -For information about the file specified by \f2path/filename\fP, see overview comment file. -.LP -Note that the overview page is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) -.LP -The title on the overview page is set by \f2\-doctitle\fP. -.LP +Specifies that javadoc should retrieve the text for the overview documentation from the "source" file specified by \f2path/filename\fP and place it on the Overview page (\f2overview\-summary.html\fP). The \f2path/filename\fP is relative to the current directory. +.br +.br +While you can use any name you want for \f2filename\fP and place it anywhere you want for \f2path\fP, a typical thing to do is to name it \f2overview.html\fP and place it in the source tree at the directory that contains the topmost package directories. In this location, no \f2path\fP is needed when documenting packages, since \f2\-sourcepath\fP will point to this file. For example, if the source tree for the \f2java.lang\fP package is \f2/src/classes/java/lang/\fP, then you could place the overview file at \f2/src/classes/overview.html\fP. See Real World Example. +.br +.br +For information about the file specified by \f2path/filename\fP, see overview comment file. +.br +.br +Note that the overview page is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) +.br +.br +The title on the overview page is set by \f2\-doctitle\fP. .TP 3 \-public -Shows only public classes and members. -.LP +Shows only public classes and members. .TP 3 \-protected -Shows only protected and public classes and members. This is the default. -.LP +Shows only protected and public classes and members. This is the default. .TP 3 \-package -Shows only package, protected, and public classes and members. -.LP +Shows only package, protected, and public classes and members. .TP 3 \-private -Shows all classes and members. -.LP +Shows all classes and members. .TP 3 \-help -Displays the online help, which lists these javadoc and doclet command line options. -.LP +Displays the online help, which lists these javadoc and doclet command line options. .TP 3 \-doclet\ class -Specifies the class file that starts the doclet used in generating the documentation. Use the fully\-qualified name. This doclet defines the content and formats the output. If the \f4\-doclet\fP option is not used, javadoc uses the standard doclet for generating the default HTML format. This class must contain the \f2start(Root)\fP method. The path to this starting class is defined by the \f2\-docletpath\fP option. -.LP +Specifies the class file that starts the doclet used in generating the documentation. Use the fully\-qualified name. This doclet defines the content and formats the output. If the \f4\-doclet\fP option is not used, javadoc uses the standard doclet for generating the default HTML format. This class must contain the \f2start(Root)\fP method. The path to this starting class is defined by the \f2\-docletpath\fP option. +.br +.br For example, to call the MIF doclet, use: .nf \f3 @@ -3784,17 +2858,16 @@ For example, to call the MIF doclet, use: .fl \fP .fi -.LP For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. .TP 3 \-docletpath\ classpathlist -Specifies the path to the doclet starting class file (specified with the \f2\-doclet\fP option) and any jar files it depends on. If the starting class file is in a jar file, then this specifies the path to that jar file, as shown in the example below. You can specify an absolute path or a path relative to the current directory. If \f2classpathlist\fP contains multiple paths or jar files, they should be separated with a colon (:) on Solaris and a semi\-colon (;) on Windows. This option is not necessary if the doclet starting class is already in the search path. -.LP +Specifies the path to the doclet starting class file (specified with the \f2\-doclet\fP option) and any jar files it depends on. If the starting class file is in a jar file, then this specifies the path to that jar file, as shown in the example below. You can specify an absolute path or a path relative to the current directory. If \f2classpathlist\fP contains multiple paths or jar files, they should be separated with a colon (:) on Solaris and a semi\-colon (;) on Windows. This option is not necessary if the doclet starting class is already in the search path. +.br +.br Example of path to jar file that contains the starting doclet class file. Notice the jar filename is included. .nf \f3 @@ -3815,207 +2888,33 @@ For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. .TP 3 \-1.1 -\f2This feature has been removed from Javadoc 1.4. There is no replacement for it. This option created documentation with the appearance and functionality of documentation generated by Javadoc 1.1 (it never supported nested classes). If you need this option, use Javadoc 1.2 or 1.3 instead.\fP -.LP +\f2This feature has been removed from Javadoc 1.4. There is no replacement for it. This option created documentation with the appearance and functionality of documentation generated by Javadoc 1.1 (it never supported nested classes). If you need this option, use Javadoc 1.2 or 1.3 instead.\fP .TP 3 \-source release Specifies the version of source code accepted. The following values for \f2release\fP are allowed: -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 81 -.nr 34 \n(.lu -.eo -.am 81 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc accepts code containing generics and other language features introduced in JDK 1.5. The compiler defaults to the 1.5 behavior if the \f3\-source\fP flag is not used. -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc accepts code containing assertions, which were introduced in JDK 1.4. -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di c+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc does \f2not\fP support assertions, generics, or other language features introduced after JDK 1.3. -.br -.di -.nr c| \n(dn -.nr c- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 31 0 -.nr 32 0 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.5\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.4\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.3\fP -.if \n(32<\n(38 .nr 32 \n(38 -.80 -.rm 80 -.nr 60 \n(31 -.nr 38 \n(60+\n(32 -.if \n(38>\n(80 .nr 80 \n(38 -.if \n(38<\n(80 .nr 60 +(\n(80-\n(38)/2 -.nr 81 0 -.81 -.rm 81 -.nr 38 \n(a- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(b- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(c- -.if \n(81<\n(38 .nr 81 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr 60 +\n(40 -.nr 41 \n(80+(3*\n(38) -.nr 81 +\n(41 -.nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 2450 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.5\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.4\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(c|u+\n(.Vu -.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.3\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.c+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.rm c+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-14 -.LP -Use the value of \f2release\fP corresponding to that used when compiling the code with javac. -.LP +.RS 3 +.TP 2 +o +\f31.5\fP \- javadoc accepts code containing generics and other language features introduced in JDK 1.5. The compiler defaults to the 1.5 behavior if the \f3\-source\fP flag is not used. +.TP 2 +o +\f31.4\fP \- javadoc accepts code containing assertions, which were introduced in JDK 1.4. +.TP 2 +o +\f31.3\fP \- javadoc does \f2not\fP support assertions, generics, or other language features introduced after JDK 1.3. +.RE +Use the value of \f2release\fP corresponding to that used when compiling the code with javac. .TP 3 \-sourcepath\ sourcepathlist -Specifies the search paths for finding source files (\f2.java\fP) when passing package names or \f2\-subpackages\fP into the \f2javadoc\fP command. The \f2sourcepathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Note that this option is not only used to locate the source files being documented, but also to find source files that are not being documented but whose comments are inherited by the source files being documented. -.LP -Note that you can use the \f2\-sourcepath\fP option only when passing package names into the javadoc command \-\- it will not locate \f2.java\fP files passed into the \f2javadoc\fP command. (To locate \f2.java\fP files, cd to that directory or include the path ahead of each file, as shown at Documenting One or More Classes.) If \f2\-sourcepath\fP is omitted, javadoc uses the class path to find the source files (see \-classpath). Therefore, the default \-sourcepath is the value of class path. If \-classpath is omitted and you are passing package names into javadoc, it looks in the current directory (and subdirectories) for the source files. -.LP +Specifies the search paths for finding source files (\f2.java\fP) when passing package names or \f2\-subpackages\fP into the \f2javadoc\fP command. The \f2sourcepathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Note that this option is not only used to locate the source files being documented, but also to find source files that are not being documented but whose comments are inherited by the source files being documented. +.br +.br +Note that you can use the \f2\-sourcepath\fP option only when passing package names into the javadoc command \-\- it will not locate \f2.java\fP files passed into the \f2javadoc\fP command. (To locate \f2.java\fP files, cd to that directory or include the path ahead of each file, as shown at Documenting One or More Classes.) If \f2\-sourcepath\fP is omitted, javadoc uses the class path to find the source files (see \-classpath). Therefore, the default \-sourcepath is the value of class path. If \-classpath is omitted and you are passing package names into javadoc, it looks in the current directory (and subdirectories) for the source files. +.br +.br Set \f2sourcepathlist\fP to the root directory of the source tree for the package you are documenting. For example, suppose you want to document a package called \f2com.mypackage\fP whose source files are located at: .nf \f3 @@ -4031,8 +2930,9 @@ In this case you would specify the \f2sourcepath\fP to \f2/home/user/src\fP, the % \fP\f3javadoc \-sourcepath /home/user/src/ com.mypackage\fP .fl .fi -This is easy to remember by noticing that if you concatenate the value of sourcepath and the package name together and change the dot to a slash "/", you end up with the full path to the package: \f2/home/user/src/com/mypackage\fP. -.LP +This is easy to remember by noticing that if you concatenate the value of sourcepath and the package name together and change the dot to a slash "/", you end up with the full path to the package: \f2/home/user/src/com/mypackage\fP. +.br +.br To point to two source paths: .nf \f3 @@ -4040,17 +2940,18 @@ To point to two source paths: % \fP\f3javadoc \-sourcepath /home/user1/src:/home/user2/src com.mypackage\fP .fl .fi -.LP .TP 3 \-classpath\ classpathlist Specifies the paths where javadoc will look for referenced classes (\f2.class\fP files) \-\- these are the documented classes plus any classes referenced by those classes. The \f2classpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Follow the instructions in .na \f2class path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general documentation for specifying \f2classpathlist\fP. -.LP -If \f2\-sourcepath\fP is omitted, the Javadoc tool uses \f2\-classpath\fP to find the source files as well as class files (for backward compatibility). Therefore, if you want to search for source and class files in separate paths, use both \f2\-sourcepath\fP and \f2\-classpath\fP. -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general documentation for specifying \f2classpathlist\fP. +.br +.br +If \f2\-sourcepath\fP is omitted, the Javadoc tool uses \f2\-classpath\fP to find the source files as well as class files (for backward compatibility). Therefore, if you want to search for source and class files in separate paths, use both \f2\-sourcepath\fP and \f2\-classpath\fP. +.br +.br For example, if you want to document \f2com.mypackage\fP, whose source files reside in the directory \f2/home/user/src/com/mypackage\fP, and if this package relies on a library in \f2/home/user/lib\fP, you would specify: .nf \f3 @@ -4058,23 +2959,25 @@ For example, if you want to document \f2com.mypackage\fP, whose source files res % \fP\f3javadoc \-classpath /home/user/lib \-sourcepath /home/user/src com.mypackage\fP .fl .fi -As with other tools, if you do not specify \f2\-classpath\fP, the Javadoc tool uses the CLASSPATH environment variable, if it is set. If both are not set, the Javadoc tool searches for classes from the current directory. -.LP +As with other tools, if you do not specify \f2\-classpath\fP, the Javadoc tool uses the CLASSPATH environment variable, if it is set. If both are not set, the Javadoc tool searches for classes from the current directory. +.br +.br For an in\-depth description of how the Javadoc tool uses \f2\-classpath\fP to find user classes as it relates to extension classes and bootstrap classes, see .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html. -.LP -As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. -.LP +As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a Java program cannot tell the difference between the two invocations). +.br +.br +For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. .TP 3 \-subpackages\ \ package1:package2:... -Generates documentation from source files in the specified packages and recursively in their subpackages. This option is useful when adding new subpackages to the source code, as they are automatically included. Each \f2package\fP argument is any top\-level subpackage (such as \f2java\fP) or fully qualified package (such as \f2javax.swing\fP) that does not need to contain source files. Arguments are separated by colons (on all operating systmes). Wildcards are not needed or allowed. Use \f2\-sourcepath\fP to specify where to find the packages. This option is smart about not processing source files that are in the source tree but do not belong to the packages, as described at processing of source files. -.LP +Generates documentation from source files in the specified packages and recursively in their subpackages. This option is useful when adding new subpackages to the source code, as they are automatically included. Each \f2package\fP argument is any top\-level subpackage (such as \f2java\fP) or fully qualified package (such as \f2javax.swing\fP) that does not need to contain source files. Arguments are separated by colons (on all operating systmes). Wildcards are not needed or allowed. Use \f2\-sourcepath\fP to specify where to find the packages. This option is smart about not processing source files that are in the source tree but do not belong to the packages, as described at processing of source files. +.br +.br For example: .nf \f3 @@ -4082,10 +2985,10 @@ For example: % \fP\f3javadoc \-d docs \-sourcepath /home/user/src \-subpackages java:javax.swing\fP .fl .fi -This command generates documentation for packages named "java" and "javax.swing" and all their subpackages. -.LP -You can use \f2\-subpackages\fP in conjunction with \f2\-exclude\fP to exclude specific packages. -.LP +This command generates documentation for packages named "java" and "javax.swing" and all their subpackages. +.br +.br +You can use \f2\-subpackages\fP in conjunction with \f2\-exclude\fP to exclude specific packages. .TP 3 \-exclude\ \ packagename1:packagename2:... Unconditionally excludes the specified packages and their subpackages from the list formed by \f2\-subpackages\fP. It excludes those packages even if they would otherwise be included by some previous or later \f2\-subpackages\fP option. For example: @@ -4095,36 +2998,32 @@ Unconditionally excludes the specified packages and their subpackages from the l % \fP\f3javadoc \-sourcepath /home/user/src \-subpackages java \-exclude java.net:java.lang\fP .fl .fi -would include \f2java.io\fP, \f2java.util\fP, and \f2java.math\fP (among others), but would exclude packages rooted at \f2java.net\fP and \f2java.lang\fP. Notice this excludes \f2java.lang.ref\fP, a subpackage of \f2java.lang\fP). -.LP +would include \f2java.io\fP, \f2java.util\fP, and \f2java.math\fP (among others), but would exclude packages rooted at \f2java.net\fP and \f2java.lang\fP. Notice this excludes \f2java.lang.ref\fP, a subpackage of \f2java.lang\fP). .TP 3 \-bootclasspath\ classpathlist Specifies the paths where the boot classes reside. These are nominally the Java platform classes. The bootclasspath is part of the search path the Javadoc tool will use to look up source and class files. See .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles. for more details. Separate directories in \f2classpathlist\fP with colons (:). -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html#srcfiles. for more details. Separate directories in \f2classpathlist\fP with colons (:). .TP 3 \-extdirs\ dirlist -Specifies the directories where extension classes reside. These are any classes that use the Java Extension mechanism. The extdirs is part of the search path the Javadoc tool will use to look up source and class files. See \f2\-classpath\fP (above) for more details. Separate directories in \f2dirlist\fP with colons (:). -.LP +Specifies the directories where extension classes reside. These are any classes that use the Java Extension mechanism. The extdirs is part of the search path the Javadoc tool will use to look up source and class files. See \f2\-classpath\fP (above) for more details. Separate directories in \f2dirlist\fP with colons (:). .TP 3 \-verbose -Provides more detailed messages while javadoc is running. Without the verbose option, messages appear for loading the source files, generating the documentation (one message per source file), and sorting. The verbose option causes the printing of additional messages specifying the number of milliseconds to parse each java source file. -.LP +Provides more detailed messages while javadoc is running. Without the verbose option, messages appear for loading the source files, generating the documentation (one message per source file), and sorting. The verbose option causes the printing of additional messages specifying the number of milliseconds to parse each java source file. .TP 3 \-quiet -Shuts off non\-error and non\-warning messages, leaving only the warnings and errors appear, making them easier to view. Also suppresses the version string. -.LP +Shuts off non\-error and non\-warning messages, leaving only the warnings and errors appear, making them easier to view. Also suppresses the version string. .TP 3 \-breakiterator\ Uses the internationalized sentence boundary of .na \f2java.text.BreakIterator\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html to determine the end of the first sentence for English (all other locales already use \f2BreakIterator\fP), rather than an English language, locale\-specific algorithm. By \f2first sentence\fP, we mean the first sentence in the main description of a package, class or member. This sentence is copied to the package, class or member summary, and to the alphabetic index. -.LP +http://download.oracle.com/javase/7/docs/api/java/text/BreakIterator.html to determine the end of the first sentence for English (all other locales already use \f2BreakIterator\fP), rather than an English language, locale\-specific algorithm. By \f2first sentence\fP, we mean the first sentence in the main description of a package, class or member. This sentence is copied to the package, class or member summary, and to the alphabetic index. +.br +.br From JDK 1.2 forward, the BreakIterator class is already used to determine the end of sentence for all languages but English. Therefore, the \f2\-breakiterator\fP option has no effect except for English from 1.2 forward. English has its own default algorithm: .RS 3 .TP 2 @@ -4134,31 +3033,22 @@ English default sentence\-break algorithm \- Stops at a period followed by a spa o Breakiterator sentence\-break algorithm \- In general, stops at a period, question mark or exclamation mark followed by a space if the next word starts with a capital letter. This is meant to handle most abbreviations (such as "The serial no. is valid", but won't handle "Mr. Smith"). Doesn't stop at HTML tags or sentences that begin with numbers or symbols. Stops at the last period in "../filename", even if embedded in an HTML tag. .RE -.RS 3 - -.LP -.LP -NOTE: We have removed from 1.5.0 the breakiterator warning messages that were in 1.4.x and have left the default sentence\-break algorithm unchanged. That is, the \-breakiterator option is not the default in 1.5.0, nor do we expect it to become the default. This is a reversal from our former intention that the default would change in the "next major release" (1.5.0). This means if you have not modified your source code to eliminate the breakiterator warnings in 1.4.x, then you don't have to do anything, and the warnings go away starting with 1.5.0. The reason for this reversal is because any benefit to having breakiterator become the default would be outweighed by the incompatible source change it would require. We regret any extra work and confusion this has caused. -.LP -.RE +NOTE: We have removed from 1.5.0 the breakiterator warning messages that were in 1.4.x and have left the default sentence\-break algorithm unchanged. That is, the \-breakiterator option is not the default in 1.5.0, nor do we expect it to become the default. This is a reversal from our former intention that the default would change in the "next major release" (1.5.0). This means if you have not modified your source code to eliminate the breakiterator warnings in 1.4.x, then you don't have to do anything, and the warnings go away starting with 1.5.0. The reason for this reversal is because any benefit to having breakiterator become the default would be outweighed by the incompatible source change it would require. We regret any extra work and confusion this has caused. .TP 3 \-locale\ language_country_variant -.RS 3 -.LP \f3Important\fP \- The \f2\-locale\fP option must be placed \f2ahead\fP (to the left) of any options provided by the standard doclet or any other doclet. Otherwise, the navigation bars will appear in English. This is the only command\-line option that is order\-dependent. -.LP -.RE -.LP -Specifies the locale that javadoc uses when generating documentation. The argument is the name of the locale, as described in java.util.Locale documentation, such as \f2en_US\fP (English, United States) or \f2en_US_WIN\fP (Windows variant). -.LP -Specifying a locale causes javadoc to choose the resource files of that locale for messages (strings in the navigation bar, headings for lists and tables, help file contents, comments in stylesheet.css, and so forth). It also specifies the sorting order for lists sorted alphabetically, and the sentence separator to determine the end of the first sentence. It does not determine the locale of the doc comment text specified in the source files of the documented classes. -.LP +.br +.br +Specifies the locale that javadoc uses when generating documentation. The argument is the name of the locale, as described in java.util.Locale documentation, such as \f2en_US\fP (English, United States) or \f2en_US_WIN\fP (Windows variant). +.br +.br +Specifying a locale causes javadoc to choose the resource files of that locale for messages (strings in the navigation bar, headings for lists and tables, help file contents, comments in stylesheet.css, and so forth). It also specifies the sorting order for lists sorted alphabetically, and the sentence separator to determine the end of the first sentence. It does not determine the locale of the doc comment text specified in the source files of the documented classes. .TP 3 \-encoding\ name -Specifies the encoding name of the source files, such as \f2EUCJIS/SJIS\fP. If this option is not specified, the platform default converter is used. -.LP -Also see \-docencoding and \-charset. -.LP +Specifies the encoding name of the source files, such as \f2EUCJIS/SJIS\fP. If this option is not specified, the platform default converter is used. +.br +.br +Also see \-docencoding and \-charset. .TP 3 \-Jflag Passes \f2flag\fP directly to the runtime system java that runs javadoc. Notice there must be no space between the \f2J\fP and the \f2flag\fP. For example, if you need to ensure that the system sets aside 32 megabytes of memory in which to process the generated documentation, then you would call the \f2\-Xmx\fP option of java as follows (\f2\-Xms\fP is optional, as it only sets the size of initial memory, which is useful if you know the minimum amount of memory required): @@ -4183,12 +3073,12 @@ To tell what version of javadoc you are using, call the "\f2\-version\fP" option .RE .SS Options Provided by the Standard Doclet -.LP .RS 3 .TP 3 \-d\ directory -Specifies the destination directory where javadoc saves the generated HTML files. (The "d" means "destination.") Omitting this option causes the files to be saved to the current directory. The value \f2directory\fP can be absolute, or relative to the current working directory. As of 1.4, the destination directory is automatically created when javadoc is run. -.LP +Specifies the destination directory where javadoc saves the generated HTML files. (The "d" means "destination.") Omitting this option causes the files to be saved to the current directory. The value \f2directory\fP can be absolute, or relative to the current working directory. As of 1.4, the destination directory is automatically created when javadoc is run. +.br +.br For example, the following generates the documentation for the package \f2com.mypackage\fP and saves the results in the \f2/home/user/doc/\fP directory: .nf \f3 @@ -4196,28 +3086,27 @@ For example, the following generates the documentation for the package \f2com.my % \fP\f3javadoc \-d /home/user/doc com.mypackage\fP .fl .fi -.LP .TP 3 \-use -Includes one "Use" page for each documented class and package. The page describes what packages, classes, methods, constructors and fields use any API of the given class or package. Given class C, things that use class C would include subclasses of C, fields declared as C, methods that return C, and methods and constructors with parameters of type C. -.LP -For example, let us look at what might appear on the "Use" page for String. The \f2getName()\fP method in the \f2java.awt.Font\fP class returns type \f2String\fP. Therefore, \f2getName()\fP uses \f2String\fP, and you will find that method on the "Use" page for \f2String\fP. -.LP -Note that this documents only uses of the API, not the implementation. If a method uses \f2String\fP in its implementation but does not take a string as an argument or return a string, that is not considered a "use" of \f2String\fP. -.LP -You can access the generated "Use" page by first going to the class or package, then clicking on the "Use" link in the navigation bar. +Includes one "Use" page for each documented class and package. The page describes what packages, classes, methods, constructors and fields use any API of the given class or package. Given class C, things that use class C would include subclasses of C, fields declared as C, methods that return C, and methods and constructors with parameters of type C. +.br +.br +For example, let us look at what might appear on the "Use" page for String. The \f2getName()\fP method in the \f2java.awt.Font\fP class returns type \f2String\fP. Therefore, \f2getName()\fP uses \f2String\fP, and you will find that method on the "Use" page for \f2String\fP. +.br +.br +Note that this documents only uses of the API, not the implementation. If a method uses \f2String\fP in its implementation but does not take a string as an argument or return a string, that is not considered a "use" of \f2String\fP. +.br +.br +You can access the generated "Use" page by first going to the class or package, then clicking on the "Use" link in the navigation bar. .TP 3 \-version -Includes the @version text in the generated docs. This text is omitted by default. To tell what version of the Javadoc tool you are using, use the \f2\-J\-version\fP option. -.LP +Includes the @version text in the generated docs. This text is omitted by default. To tell what version of the Javadoc tool you are using, use the \f2\-J\-version\fP option. .TP 3 \-author -Includes the @author text in the generated docs. -.LP +Includes the @author text in the generated docs. .TP 3 \-splitindex -Splits the index file into multiple files, alphabetically, one file per letter, plus a file for any index entries that start with non\-alphabetical characters. -.LP +Splits the index file into multiple files, alphabetically, one file per letter, plus a file for any index entries that start with non\-alphabetical characters. .TP 3 \-windowtitle\ title Specifies the title to be placed in the HTML tag. This appears in the window title and in any browser bookmarks (favorite places) that someone creates for this page. This title should not contain any HTML tags, as the browser will not properly interpret them. Any internal quotation marks within \f2title\fP may have to be escaped. If \-windowtitle is omitted, the Javadoc tool uses the value of \-doctitle for this option. @@ -4238,8 +3127,7 @@ Specifies the title to be placed near the top of the overview summary file. The .fi .TP 3 \-title\ title -\f3This option no longer exists.\fP It existed only in Beta versions of Javadoc 1.2. It has been renamed to \f2\-doctitle\fP. This option is being renamed to make it clear that it defines the document title rather than the window title. -.LP +\f3This option no longer exists.\fP It existed only in Beta versions of Javadoc 1.2. It has been renamed to \f2\-doctitle\fP. This option is being renamed to make it clear that it defines the document title rather than the window title. .TP 3 \-header\ header Specifies the header text to be placed at the top of each output file. The header will be placed to the right of the upper navigation bar. \f2header\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2header\fP may have to be escaped. @@ -4249,28 +3137,30 @@ Specifies the header text to be placed at the top of each output file. The heade % \fP\f3javadoc \-header "<b>Java 2 Platform </b><br>v1.4" com.mypackage\fP .fl .fi -.LP .TP 3 \-footer\ footer Specifies the footer text to be placed at the bottom of each output file. The footer will be placed to the right of the lower navigation bar. \f2footer\fP may contain html tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2footer\fP may have to be escaped. -.LP +.TP 3 +\-top +Specifies the text to be placed at the top of each output file. .TP 3 \-bottom\ text -Specifies the text to be placed at the bottom of each output file. The text will be placed at the bottom of the page, below the lower navigation bar. The \f2text\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2text\fP may have to be escaped. -.LP +Specifies the text to be placed at the bottom of each output file. The text will be placed at the bottom of the page, below the lower navigation bar. The \f2text\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2text\fP may have to be escaped. .TP 3 \-link\ extdocURL -Creates links to existing javadoc\-generated documentation of external referenced classes. It takes one argument: -.LP +Creates links to existing javadoc\-generated documentation of external referenced classes. It takes one argument: .RS 3 .TP 2 o -\f4extdocURL\fP is the absolute or relative URL of the directory containing the external javadoc\-generated documentation you want to link to. Examples are shown below. The package\-list file must be found in this directory (otherwise, use \f2\-linkoffline\fP). The Javadoc tool reads the package names from the \f2package\-list\fP file and then links to those packages at that URL. When the Javadoc tool is run, the \f2extdocURL\fP value is copied literally into the \f2<A HREF>\fP links that are created. Therefore, \f2extdocURL\fP must be the URL to the \f2directory\fP, not to a file. -.LP -You can use an absolute link for \f2extdocURL\fP to enable your docs to link to a document on any website, or can use a relative link to link only to a relative location. If relative, the value you pass in should be the relative path from the destination directory (specified with \f2\-d\fP) to the directory containing the packages being linked to. -.LP -When specifying an absolute link you normally use an \f2http:\fP link. However, if you want to link to a file system that has no web server, you can use a \f2file:\fP link \-\- however, do this only if everyone wanting to access the generated documentation shares the same file system. -.LP +\f4extdocURL\fP is the absolute or relative URL of the directory containing the external javadoc\-generated documentation you want to link to. Examples are shown below. The package\-list file must be found in this directory (otherwise, use \f2\-linkoffline\fP). The Javadoc tool reads the package names from the \f2package\-list\fP file and then links to those packages at that URL. When the Javadoc tool is run, the \f2extdocURL\fP value is copied literally into the \f2<A HREF>\fP links that are created. Therefore, \f2extdocURL\fP must be the URL to the \f2directory\fP, not to a file. +.br +.br +You can use an absolute link for \f2extdocURL\fP to enable your docs to link to a document on any website, or can use a relative link to link only to a relative location. If relative, the value you pass in should be the relative path from the destination directory (specified with \f2\-d\fP) to the directory containing the packages being linked to. +.br +.br +When specifying an absolute link you normally use an \f2http:\fP link. However, if you want to link to a file system that has no web server, you can use a \f2file:\fP link \-\- however, do this only if everyone wanting to access the generated documentation shares the same file system. +.br +.br In all cases, and on all operating systems, you should use a forward slash as the separator, whether the URL is absolute or relative, and "http:" or "file:" based (as specified in the .na \f2URL Memo\fP @ @@ -4288,8 +3178,11 @@ Relative link: \f2\-link <directory>/<directory>/.../<name>\fP .RE .RE -.LP -You can specify multiple \f2\-link\fP options in a given javadoc run to link to multiple documents. \f3Choosing between \-linkoffline and \-link\fP: +You can specify multiple \f2\-link\fP options in a given javadoc run to link to multiple documents. +.br +.br +\f3Choosing between \-linkoffline and \-link\fP: +.br .br Use \f2\-link\fP: .RS 3 @@ -4306,16 +3199,17 @@ Use \f2\-linkoffline\fP: o when using an absolute URL to the external API document, if your shell \f2does not allow\fP a program to open a connection to that URL for reading. This can occur if you are behind a firewall and the document you want to link to is on the other side. .RE -.LP +.br +.br \f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java Platform packages at .na -\f2http://java.sun.com/javase/6/docs/api/\fP @ +\f2http://download.oracle.com/javase/7/docs/api/\fP @ .fi -http://java.sun.com/javase/6/docs/api. The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other options, such as \f2\-sourcepath\fP and \f2\-d\fP, are not shown.) +http://download.oracle.com/javase/7/docs/api/. The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other options, such as \f2\-sourcepath\fP and \f2\-d\fP, are not shown.) .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://download.oracle.com/javase/7/docs/api/ com.mypackage\fP .fl .fi \f3Example using relative links to the external docs\fP \- Let us say you have two packages whose docs are generated in different runs of the Javadoc tool, and those docs are separated by a relative path. In this example, the packages are \f2com.apipackage\fP, an API, and \f2com.spipackage\fP, an SPI (Service Provide Interface). You want the documentation to reside in \f2docs/api/com/apipackage\fP and \f2docs/spi/com/spipackage\fP. Assuming the API package documentation is already generated, and that \f2docs\fP is the current directory, you would document the SPI package with links to the API documentation by running: @@ -4325,17 +3219,21 @@ http://java.sun.com/javase/6/docs/api. The following command generates documenta % \fP\f3javadoc \-d ./spi \-link ../api com.spipackage\fP .fl .fi -.LP -Notice the \f2\-link\fP argument is relative to the destination directory (\f2docs/spi\fP). -.LP -\f3Details\fP \- The \f2\-link\fP option enables you to link to classes referenced to by your code but \f2not\fP documented in the current javadoc run. For these links to go to valid pages, you must know where those HTML pages are located, and specify that location with \f2extdocURL\fP. This allows, for instance, third party documentation to link to \f2java.*\fP documentation on \f2http://java.sun.com\fP. -.LP -Omit the \f2\-link\fP option for javadoc to create links only to API within the documentation it is generating in the current run. (Without the \f2\-link\fP option, the Javadoc tool does not create links to documentation for external references, because it does not know if or where that documentation exists.) -.LP -This option can create links in several places in the generated documentation. -.LP -Another use is for cross\-links between sets of packages: Execute javadoc on one set of packages, then run javadoc again on another set of packages, creating links both ways between both sets. -.LP +Notice the \f2\-link\fP argument is relative to the destination directory (\f2docs/spi\fP). +.br +.br +\f3Details\fP \- The \f2\-link\fP option enables you to link to classes referenced to by your code but \f2not\fP documented in the current javadoc run. For these links to go to valid pages, you must know where those HTML pages are located, and specify that location with \f2extdocURL\fP. This allows, for instance, third party documentation to link to \f2java.*\fP documentation on \f2http://java.sun.com\fP. +.br +.br +Omit the \f2\-link\fP option for javadoc to create links only to API within the documentation it is generating in the current run. (Without the \f2\-link\fP option, the Javadoc tool does not create links to documentation for external references, because it does not know if or where that documentation exists.) +.br +.br +This option can create links in several places in the generated documentation. +.br +.br +Another use is for cross\-links between sets of packages: Execute javadoc on one set of packages, then run javadoc again on another set of packages, creating links both ways between both sets. +.br +.br \f3How a Class Must be Referenced\fP \- For a link to an external referenced class to actually appear (and not just its text label), the class must be referenced in the following way. It is not sufficient for it to be referenced in the body of a method. It must be referenced in either an \f2import\fP statement or in a declaration. Here are examples of how the class \f2java.io.File\fP can be referenced: .RS 3 .TP 2 @@ -4353,16 +3251,17 @@ In a declaration: .br The reference and be in the return type or parameter type of a method, constructor, field, class or interface, or in an \f2implements\fP, \f2extends\fP or \f2throws\fP statement. .RE -.LP -An important corollary is that when you use the \f2\-link\fP option, there may be many links that unintentionally do not appear due to this constraint. (The text would appear without a hypertext link.) You can detect these by the warnings they emit. The most innocuous way to properly reference a class and thereby add the link would be to import that class, as shown above. -.LP -\f3Package List\fP \- The \f2\-link\fP option requires that a file named \f2package\-list\fP, which is generated by the Javadoc tool, exist at the URL you specify with \f2\-link\fP. The \f2package\-list\fP file is a simple text file that lists the names of packages documented at that location. In the earlier example, the Javadoc tool looks for a file named \f2package\-list\fP at the given URL, reads in the package names and then links to those packages at that URL. -.LP +An important corollary is that when you use the \f2\-link\fP option, there may be many links that unintentionally do not appear due to this constraint. (The text would appear without a hypertext link.) You can detect these by the warnings they emit. The most innocuous way to properly reference a class and thereby add the link would be to import that class, as shown above. +.br +.br +\f3Package List\fP \- The \f2\-link\fP option requires that a file named \f2package\-list\fP, which is generated by the Javadoc tool, exist at the URL you specify with \f2\-link\fP. The \f2package\-list\fP file is a simple text file that lists the names of packages documented at that location. In the earlier example, the Javadoc tool looks for a file named \f2package\-list\fP at the given URL, reads in the package names and then links to those packages at that URL. +.br +.br For example, the package list for the Java SE 6 API is located at .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list. and starts as follows: +http://download.oracle.com/javase/7/docs/api/package\-list. and starts as follows: .nf \f3 .fl @@ -4384,31 +3283,39 @@ http://java.sun.com/javase/6/docs/api/package\-list. and starts as follows: .fl \fP .fi -.LP -When javadoc is run without the \f2\-link\fP option, when it encounters a name that belongs to an external referenced class, it prints the name with no link. However, when the \f2\-link\fP option is used, the Javadoc tool searches the \f2package\-list\fP file at the specified \f2extdocURL\fP location for that package name. If it finds the package name, it prefixes the name with \f2extdocURL\fP. -.LP -In order for there to be no broken links, all of the documentation for the external references must exist at the specified URLs. The Javadoc tool will not check that these pages exist \-\- only that the package\-list exists. -.LP -\f3Multiple Links\fP \- You can supply multiple \f2\-link\fP options to link to any number of external generated documents. \ Javadoc 1.2 has a known bug which prevents you from supplying more than one \f2\-link\fP command. This was fixed in 1.2.2. -.LP -Specify a different link option for each external document to link to: -.LP -\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP -.LP -where \f2extdocURL1\fP,\ \f2extdocURL2\fP,\ ... \f2extdocURLn\fP point respectively to the roots of external documents, each of which contains a file named \f2package\-list\fP. -.LP -\f3Cross\-links\fP \- Note that "bootstrapping" may be required when cross\-linking two or more documents that have not previously been generated. In other words, if \f2package\-list\fP does not exist for either document, when you run the Javadoc tool on the first document, the \f2package\-list\fP will not yet exist for the second document. Therefore, to create the external links, you must re\-generate the first document after generating the second document. -.LP -In this case, the purpose of first generating a document is to create its \f2package\-list\fP (or you can create it by hand it if you're certain of the package names). Then generate the second document with its external links. The Javadoc tool prints a warning if a needed external \f2package\-list\fP file does not exist. -.LP +When javadoc is run without the \f2\-link\fP option, when it encounters a name that belongs to an external referenced class, it prints the name with no link. However, when the \f2\-link\fP option is used, the Javadoc tool searches the \f2package\-list\fP file at the specified \f2extdocURL\fP location for that package name. If it finds the package name, it prefixes the name with \f2extdocURL\fP. +.br +.br +In order for there to be no broken links, all of the documentation for the external references must exist at the specified URLs. The Javadoc tool will not check that these pages exist \-\- only that the package\-list exists. +.br +.br +\f3Multiple Links\fP \- You can supply multiple \f2\-link\fP options to link to any number of external generated documents. \ Javadoc 1.2 has a known bug which prevents you from supplying more than one \f2\-link\fP command. This was fixed in 1.2.2. +.br +.br +Specify a different link option for each external document to link to: +.br +.br +\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP +.br +.br +where \f2extdocURL1\fP,\ \f2extdocURL2\fP,\ ... \f2extdocURLn\fP point respectively to the roots of external documents, each of which contains a file named \f2package\-list\fP. +.br +.br +\f3Cross\-links\fP \- Note that "bootstrapping" may be required when cross\-linking two or more documents that have not previously been generated. In other words, if \f2package\-list\fP does not exist for either document, when you run the Javadoc tool on the first document, the \f2package\-list\fP will not yet exist for the second document. Therefore, to create the external links, you must re\-generate the first document after generating the second document. +.br +.br +In this case, the purpose of first generating a document is to create its \f2package\-list\fP (or you can create it by hand it if you're certain of the package names). Then generate the second document with its external links. The Javadoc tool prints a warning if a needed external \f2package\-list\fP file does not exist. .TP 3 \-linkoffline\ extdocURL\ packagelistLoc -This option is a variation of \f2\-link\fP; they both create links to javadoc\-generated documentation for external referenced classes. Use the \f2\-linkoffline\fP option when linking to a document on the web when the Javadoc tool itself is "offline" \-\- that is, it cannot access the document through a web connection. -.LP -More specifically, use \f2\-linkoffline\fP if the external document's \f2package\-list\fP file is not accessible or does not exist at the \f2extdocURL\fP location but does exist at a different location, which can be specified by \f2packageListLoc\fP (typically local). Thus, if \f2extdocURL\fP is accessible only on the World Wide Web, \f2\-linkoffline\fP removes the constraint that the Javadoc tool have a web connection when generating the documentation. -.LP -Another use is as a "hack" to update docs: After you have run javadoc on a full set of packages, then you can run javadoc again on onlya smaller set of changed packages, so that the updated files can be inserted back into the original set. Examples are given below. -.LP +This option is a variation of \f2\-link\fP; they both create links to javadoc\-generated documentation for external referenced classes. Use the \f2\-linkoffline\fP option when linking to a document on the web when the Javadoc tool itself is "offline" \-\- that is, it cannot access the document through a web connection. +.br +.br +More specifically, use \f2\-linkoffline\fP if the external document's \f2package\-list\fP file is not accessible or does not exist at the \f2extdocURL\fP location but does exist at a different location, which can be specified by \f2packageListLoc\fP (typically local). Thus, if \f2extdocURL\fP is accessible only on the World Wide Web, \f2\-linkoffline\fP removes the constraint that the Javadoc tool have a web connection when generating the documentation. +.br +.br +Another use is as a "hack" to update docs: After you have run javadoc on a full set of packages, then you can run javadoc again on onlya smaller set of changed packages, so that the updated files can be inserted back into the original set. Examples are given below. +.br +.br The \f2\-linkoffline\fP option takes two arguments \-\- the first for the string to be embedded in the \f2<a href>\fP links, the second telling it where to find \f2package\-list\fP: .RS 3 .TP 2 @@ -4418,35 +3325,39 @@ o o \f4packagelistLoc\fP is the path or URL to the directory containing the \f2package\-list\fP file for the external documentation. This can be a URL (http: or file:) or file path, and can be absolute or relative. If relative, make it relative to the \f2current\fP directory from where javadoc was run. Do not include the \f2package\-list\fP filename. .RE -.LP -You can specify multiple \f2\-linkoffline\fP options in a given javadoc run. (Prior to 1.2.2, it could be specified only once.) -.LP -\f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java SE Platform packages at \f2http://java.sun.com/javase/6/docs/api\fP, but your shell does not have web access. You could open the \f2package\-list\fP file in a browser at +You can specify multiple \f2\-linkoffline\fP options in a given javadoc run. (Prior to 1.2.2, it could be specified only once.) +.br +.br +\f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java SE Platform packages at \f2http://download.oracle.com/javase/7/docs/api/\fP, but your shell does not have web access. You could open the \f2package\-list\fP file in a browser at .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list, save it to a local directory, and point to this local copy with the second argument, \f2packagelistLoc\fP. In this example, the package list file has been saved to the current directory "\f2.\fP" . The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other necessary options, such as \f2\-sourcepath\fP, are not shown.) +http://download.oracle.com/javase/7/docs/api/package\-list, save it to a local directory, and point to this local copy with the second argument, \f2packagelistLoc\fP. In this example, the package list file has been saved to the current directory "\f2.\fP" . The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other necessary options, such as \f2\-sourcepath\fP, are not shown.) .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://download.oracle.com/javase/7/docs/api/ . com.mypackage\fP .fl .fi -.LP -\f3Example using relative links to the external docs\fP \- It's not very common to use \f2\-linkoffline\fP with relative paths, for the simple reason that \f2\-link\fP usually suffices. When using \f2\-linkoffline\fP, the \f2package\-list\fP file is generally local, and when using relative links, the file you are linking to is also generally local. So it is usually unnecessary to give a different path for the two arguments to \f2\-linkoffline\fP. When the two arguments are identical, you can use \f2\-link\fP. See the \f2\-link\fP relative example. -.LP -\f3Manually Creating a \fP\f4package\-list\fP\f3 File\fP \- If a \f2package\-list\fP file does not yet exist, but you know what package names your document will link to, you can create your own copy of this file by hand and specify its path with \f2packagelistLoc\fP. An example would be the previous case where the package list for \f2com.spipackage\fP did not exist when \f2com.apipackage\fP was first generated. This technique is useful when you need to generate documentation that links to new external documentation whose package names you know, but which is not yet published. This is also a way of creating \f2package\-list\fP files for packages generated with Javadoc 1.0 or 1.1, where \f2package\-list\fP files were not generated. Likewise, two companies can share their unpublished \f2package\-list\fP files, enabling them to release their cross\-linked documentation simultaneously. -.LP -\f3Linking to Multiple Documents\fP \- You can include \f2\-linkoffline\fP once for each generated document you want to refer to (each option is shown on a separate line for clarity): -.LP +\f3Example using relative links to the external docs\fP \- It's not very common to use \f2\-linkoffline\fP with relative paths, for the simple reason that \f2\-link\fP usually suffices. When using \f2\-linkoffline\fP, the \f2package\-list\fP file is generally local, and when using relative links, the file you are linking to is also generally local. So it is usually unnecessary to give a different path for the two arguments to \f2\-linkoffline\fP. When the two arguments are identical, you can use \f2\-link\fP. See the \f2\-link\fP relative example. +.br +.br +\f3Manually Creating a \fP\f4package\-list\fP\f3 File\fP \- If a \f2package\-list\fP file does not yet exist, but you know what package names your document will link to, you can create your own copy of this file by hand and specify its path with \f2packagelistLoc\fP. An example would be the previous case where the package list for \f2com.spipackage\fP did not exist when \f2com.apipackage\fP was first generated. This technique is useful when you need to generate documentation that links to new external documentation whose package names you know, but which is not yet published. This is also a way of creating \f2package\-list\fP files for packages generated with Javadoc 1.0 or 1.1, where \f2package\-list\fP files were not generated. Likewise, two companies can share their unpublished \f2package\-list\fP files, enabling them to release their cross\-linked documentation simultaneously. +.br +.br +\f3Linking to Multiple Documents\fP \- You can include \f2\-linkoffline\fP once for each generated document you want to refer to (each option is shown on a separate line for clarity): +.br +.br \f2% \fP\f4javadoc \-linkoffline\fP \f2extdocURL1\fP \f2packagelistLoc1\fP \f2\\\fP .br \f2\ \ \ \ \ \ \ \ \ \ \fP\f4\-linkoffline\fP \f2extdocURL2\fP \f2packagelistLoc2\fP \f2\\\fP .br -\f2\ \ \ \ \ \ \ \ \ \ ...\fP -.LP -\f3Updating docs\fP \- Another use for \f2\-linkoffline\fP option is useful if your project has dozens or hundreds of packages, if you have already run javadoc on the entire tree, and now, in a separate run, you want to quickly make some small changes and re\-run javadoc on just a small portion of the source tree. This is somewhat of a hack in that it works properly only if your changes are only to doc comments and not to declarations. If you were to add, remove or change any declarations from the source code, then broken links could show up in the index, package tree, inherited member lists, use page, and other places. -.LP +\f2\ \ \ \ \ \ \ \ \ \ ...\fP +.br +.br +\f3Updating docs\fP \- Another use for \f2\-linkoffline\fP option is useful if your project has dozens or hundreds of packages, if you have already run javadoc on the entire tree, and now, in a separate run, you want to quickly make some small changes and re\-run javadoc on just a small portion of the source tree. This is somewhat of a hack in that it works properly only if your changes are only to doc comments and not to declarations. If you were to add, remove or change any declarations from the source code, then broken links could show up in the index, package tree, inherited member lists, use page, and other places. +.br +.br First, you create a new destination directory (call it \f2update\fP) for this new small run. Let us say the original destination directory was named \f2html\fP. In the simplest example, cd to the parent of \f2html\fP. Set the first argument of \f2\-linkoffline\fP to the current directory "." and set the second argument to the relative path to \f2html\fP, where it can find \f2package\-list\fP, and pass in only the package names of the packages you want to update: .nf \f3 @@ -4454,14 +3365,15 @@ First, you create a new destination directory (call it \f2update\fP) for this ne % \fP\f3javadoc \-d update \-linkoffline . html com.mypackage\fP .fl .fi -When the Javadoc tool is done, copy these generated class pages in \f2update/com/package\fP (not the overview or index), over the original files in \f2html/com/package\fP. -.LP +When the Javadoc tool is done, copy these generated class pages in \f2update/com/package\fP (not the overview or index), over the original files in \f2html/com/package\fP. .TP 3 \-linksource\ -Creates an HTML version of each source file (with line numbers) and adds links to them from the standard HTML documentation. Links are created for classes, interfaces, constructors, methods and fields whose declarations are in a source file. Otherwise, links are not created, such as for default constructors and generated classes. -.LP -\f3This option exposes \fP\f4all\fP\f3 private implementation details in the included source files, including private classes, private fields, and the bodies of private methods, \fP\f4regardless of the \fP\f4\-public\fP\f3, \fP\f4\-package\fP\f3, \fP\f4\-protected\fP\f3 and \fP\f4\-private\fP\f3 options.\fP Unless you also use the \f2\-private\fP option, not all private classes or interfaces will necessarily be accessible via links. -.LP +Creates an HTML version of each source file (with line numbers) and adds links to them from the standard HTML documentation. Links are created for classes, interfaces, constructors, methods and fields whose declarations are in a source file. Otherwise, links are not created, such as for default constructors and generated classes. +.br +.br +\f3This option exposes \fP\f4all\fP\f3 private implementation details in the included source files, including private classes, private fields, and the bodies of private methods, \fP\f4regardless of the \fP\f4\-public\fP\f3, \fP\f4\-package\fP\f3, \fP\f4\-protected\fP\f3 and \fP\f4\-private\fP\f3 options.\fP Unless you also use the \f2\-private\fP option, not all private classes or interfaces will necessarily be accessible via links. +.br +.br Each link appears on the name of the identifier in its declaration. For example, the link to the source code of the \f2Button\fP class would be on the word "Button": .nf \f3 @@ -4482,7 +3394,6 @@ and the link to the source code of the \f2getLabel()\fP method in the Button cla .fl \fP .fi -.LP .TP 3 \-group\ groupheading\ packagepattern:packagepattern:... Separates packages on the overview page into whatever groups you specify, one group per table. You specify each group with a different \f2\-group\fP option. The groups appear on the page in the order specified on the command line; packages are alphabetized within a group. For a given \f2\-group\fP option, the packages matching the list of \f2packagepattern\fP expressions appear in a table with the heading \f2groupheading\fP. @@ -4494,16 +3405,12 @@ o o \f4packagepattern\fP can be any package name, or can be the start of any package name followed by an asterisk (\f2*\fP). The asterisk is a wildcard meaning "match any characters". This is the only wildcard allowed. Multiple patterns can be included in a group by separating them with colons (\f2:\fP). .RE -.RS 3 - -.LP -.LP \f3NOTE: If using an asterisk in a pattern or pattern list, the pattern list must be inside quotes, such as \fP\f4"java.lang*:java.util"\fP -.LP -.RE -.LP -If you do not supply any \f2\-group\fP option, all packages are placed in one group with the heading "Packages". If the all groups do not include all documented packages, any leftover packages appear in a separate group with the heading "Other Packages". -.LP +.br +.br +If you do not supply any \f2\-group\fP option, all packages are placed in one group with the heading "Packages". If the all groups do not include all documented packages, any leftover packages appear in a separate group with the heading "Other Packages". +.br +.br For example, the following option separates the four documented packages into core, extension and other packages. Notice the trailing "dot" does not appear in "java.lang*" \-\- including the dot, such as "java.lang.*" would omit the java.lang package. .nf \f3 @@ -4517,7 +3424,6 @@ For example, the following option separates the four documented packages into co .fi This results in the groupings: .RS 3 -.RS 3 .TP 3 Core Packages \f2java.lang\fP @@ -4530,38 +3436,27 @@ Extension Packages Other Packages \f2java.new\fP .RE - -.LP -.RE -.LP .TP 3 \-nodeprecated -Prevents the generation of any deprecated API at all in the documentation. This does what \-nodeprecatedlist does, plus it does not generate any deprecated API throughout the rest of the documentation. This is useful when writing code and you don't want to be distracted by the deprecated code. -.LP +Prevents the generation of any deprecated API at all in the documentation. This does what \-nodeprecatedlist does, plus it does not generate any deprecated API throughout the rest of the documentation. This is useful when writing code and you don't want to be distracted by the deprecated code. .TP 3 \-nodeprecatedlist -Prevents the generation of the file containing the list of deprecated APIs (deprecated\-list.html) and the link in the navigation bar to that page. (However, javadoc continues to generate the deprecated API throughout the rest of the document.) This is useful if your source code contains no deprecated API, and you want to make the navigation bar cleaner. -.LP +Prevents the generation of the file containing the list of deprecated APIs (deprecated\-list.html) and the link in the navigation bar to that page. (However, javadoc continues to generate the deprecated API throughout the rest of the document.) This is useful if your source code contains no deprecated API, and you want to make the navigation bar cleaner. .TP 3 \-nosince -Omits from the generated docs the "Since" sections associated with the @since tags. -.LP +Omits from the generated docs the "Since" sections associated with the @since tags. .TP 3 \-notree -Omits the class/interface hierarchy pages from the generated docs. These are the pages you reach using the "Tree" button in the navigation bar. The hierarchy is produced by default. -.LP +Omits the class/interface hierarchy pages from the generated docs. These are the pages you reach using the "Tree" button in the navigation bar. The hierarchy is produced by default. .TP 3 \-noindex -Omits the index from the generated docs. The index is produced by default. -.LP +Omits the index from the generated docs. The index is produced by default. .TP 3 \-nohelp -Omits the HELP link in the navigation bars at the top and bottom of each page of output. -.LP +Omits the HELP link in the navigation bars at the top and bottom of each page of output. .TP 3 \-nonavbar -Prevents the generation of the navigation bar, header and footer, otherwise found at the top and bottom of the generated pages. Has no affect on the "bottom" option. The \f2\-nonavbar\fP option is useful when you are interested only in the content and have no need for navigation, such as converting the files to PostScript or PDF for print only. -.LP +Prevents the generation of the navigation bar, header and footer, otherwise found at the top and bottom of the generated pages. Has no affect on the "bottom" option. The \f2\-nonavbar\fP option is useful when you are interested only in the content and have no need for navigation, such as converting the files to PostScript or PDF for print only. .TP 3 \-helpfile\ path/filename Specifies the path of an alternate help file \f2path/filename\fP that the HELP link in the top and bottom navigation bars link to. Without this option, the Javadoc tool automatically creates a help file \f2help\-doc.html\fP that is hard\-coded in the Javadoc tool. This option enables you to override this default. The \f2filename\fP can be any name and is not restricted to \f2help\-doc.html\fP \-\- the Javadoc tool will adjust the links in the navigation bar accordingly. For example: @@ -4582,8 +3477,7 @@ Specifies the path of an alternate HTML stylesheet file. Without this option, th .fi .TP 3 \-serialwarn -Generates compile\-time warnings for missing @serial tags. By default, Javadoc 1.2.2 (and later versions) generates no serial warnings. (This is a reversal from earlier versions.) Use this option to display the serial warnings, which helps to properly document default serializable fields and \f2writeExternal\fP methods. -.LP +Generates compile\-time warnings for missing @serial tags. By default, Javadoc 1.2.2 (and later versions) generates no serial warnings. (This is a reversal from earlier versions.) Use this option to display the serial warnings, which helps to properly document default serializable fields and \f2writeExternal\fP methods. .TP 3 \-charset\ name Specifies the HTML character set for this document. The name should be a preferred MIME name as given in the @@ -4609,10 +3503,10 @@ This META tag is described in the .na \f2HTML standard\fP @ .fi -http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2. (4197265 and 4137321) -.LP +http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2. (4197265 and 4137321) +.br +.br Also see \-encoding and \-docencoding. -.LP .TP 3 \-docencoding\ name Specifies the encoding of the generated HTML files. The name should be a preferred MIME name as given in the @@ -4626,12 +3520,12 @@ http://www.iana.org/assignments/character\-sets. If you omit this option but use % \fP\f3javadoc \-docencoding "ISO\-8859\-1" mypackage\fP .fl .fi -Also see \-encoding and \-charset. -.LP +Also see \-encoding and \-charset. .TP 3 \-keywords -Adds HTML meta keyword tags to the generated file for each class. These tags can help the page be found by search engines that look for meta tags. (Most search engines that search the entire Internet do not look at meta tags, because pages can misuse them; but search engines offered by companies that confine their search to their own website can benefit by looking at meta tags.) -.LP +Adds HTML meta keyword tags to the generated file for each class. These tags can help the page be found by search engines that look for meta tags. (Most search engines that search the entire Internet do not look at meta tags, because pages can misuse them; but search engines offered by companies that confine their search to their own website can benefit by looking at meta tags.) +.br +.br The meta tags include the fully qualified name of the class and the unqualified names of the fields and methods. Constructors are not included because they are identical to the class name. For example, the class String starts with these keywords: .nf \f3 @@ -4646,16 +3540,21 @@ The meta tags include the fully qualified name of the class and the unqualified .fl \fP .fi -.LP .TP 3 \-tag\ \ tagname:Xaoptcmf:"taghead" -Enables the Javadoc tool to interpret a simple, one\-argument custom block tag \f2@\fP\f2tagname\fP in doc comments. So the Javadoc tool can "spell\-check" tag names, it is important to include a \f2\-tag\fP option for every custom tag that is present in the source code, disabling (with \f2X\fP) those that are not being output in the current run. -.LP -The colon (\f4:\fP) is always the separator. To use a colon in \f2tagname\fP, see Use of Colon in Tag Name. -.LP -The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed on the next line by the text from its single argument, as shown in the example below. Like any block tag, this argument's text can contain inline tags, which are also interpreted. The output is similar to standard one\-argument tags, such as \f2@return\fP and \f2@author\fP. Omitting \f2taghead\fP causes \f2tagname\fP to appear as the heading. -.LP -\f3Placement of tags\fP \- The \f4Xaoptcmf\fP part of the argument determines where in the source code the tag is allowed to be placed, and whether the tag can be disabled (using \f2X\fP). You can supply either \f4a\fP, to allow the tag in all places, or any combination of the other letters: \f4X\fP (disable tag) +Enables the Javadoc tool to interpret a simple, one\-argument custom block tag \f2@\fP\f2tagname\fP in doc comments. So the Javadoc tool can "spell\-check" tag names, it is important to include a \f2\-tag\fP option for every custom tag that is present in the source code, disabling (with \f2X\fP) those that are not being output in the current run. +.br +.br +The colon (\f4:\fP) is always the separator. To use a colon in \f2tagname\fP, see Use of Colon in Tag Name. +.br +.br +The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed on the next line by the text from its single argument, as shown in the example below. Like any block tag, this argument's text can contain inline tags, which are also interpreted. The output is similar to standard one\-argument tags, such as \f2@return\fP and \f2@author\fP. Omitting \f2taghead\fP causes \f2tagname\fP to appear as the heading. +.br +.br +\f3Placement of tags\fP \- The \f4Xaoptcmf\fP part of the argument determines where in the source code the tag is allowed to be placed, and whether the tag can be disabled (using \f2X\fP). You can supply either \f4a\fP, to allow the tag in all places, or any combination of the other letters: +.br +.br +\f4X\fP (disable tag) .br \f4a\fP (all) .br @@ -4670,7 +3569,8 @@ The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed \f4m\fP (methods) .br \f4f\fP (fields) -.LP +.br +.br \f3Examples of single tags\fP \- An example of a tag option for a tag that can be used anywhere in the source code is: .nf \f3 @@ -4715,8 +3615,9 @@ use this tag option: .fl \fP .fi -\f3Spell\-checking tag names (Disabling tags)\fP \- Some developers put custom tags in the source code that they don't always want to output. In these cases, it is important to list all tags that are present in the source code, enabling the ones you want to output and disabling the ones you don't want to output. The presence of \f2X\fP disables the tag, while its absence enables the tag. This gives the Javadoc tool enough information to know if a tag it encounters is unknown, probably the results of a typo or a misspelling. It prints a warning in these cases. -.LP +\f3Spell\-checking tag names (Disabling tags)\fP \- Some developers put custom tags in the source code that they don't always want to output. In these cases, it is important to list all tags that are present in the source code, enabling the ones you want to output and disabling the ones you don't want to output. The presence of \f2X\fP disables the tag, while its absence enables the tag. This gives the Javadoc tool enough information to know if a tag it encounters is unknown, probably the results of a typo or a misspelling. It prints a warning in these cases. +.br +.br You can add \f2X\fP to the placement values already present, so that when you want to enable the tag, you can simply delete the \f2X\fP. For example, if @todo is a tag that you want to suppress on output, you would use: .nf \f3 @@ -4733,13 +3634,15 @@ or, if you'd rather keep it simple: .fl \fP .fi -.LP -The syntax \f2\-tag todo:X\fP works even if \f2@todo\fP is defined by a taglet. -.LP -\f3Order of tags\fP \- The order of the \f2\-tag\fP (and \f2\-taglet\fP) options determine the order the tags are output. You can mix the custom tags with the standard tags to intersperse them. The tag options for standard tags are placeholders only for determining the order \-\- they take only the standard tag's name. (Subheadings for standard tags cannot be altered.) This is illustrated in the following example. -.LP -If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its order. If they are both present, then whichever appears last on the command line determines its order. (This happens because the tags and taglets are processed in the order that they appear on the command line. For example, if \f2\-taglet\fP and \f2\-tag\fP both have the name "todo", the one that appears last on the command line will determine its order. -.LP +The syntax \f2\-tag todo:X\fP works even if \f2@todo\fP is defined by a taglet. +.br +.br +\f3Order of tags\fP \- The order of the \f2\-tag\fP (and \f2\-taglet\fP) options determine the order the tags are output. You can mix the custom tags with the standard tags to intersperse them. The tag options for standard tags are placeholders only for determining the order \-\- they take only the standard tag's name. (Subheadings for standard tags cannot be altered.) This is illustrated in the following example. +.br +.br +If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its order. If they are both present, then whichever appears last on the command line determines its order. (This happens because the tags and taglets are processed in the order that they appear on the command line. For example, if \f2\-taglet\fP and \f2\-tag\fP both have the name "todo", the one that appears last on the command line will determine its order. +.br +.br \f3Example of a complete set of tags\fP \- This example inserts "To Do" after "Parameters" and before "Throws" in the output. By using "X", it also specifies that @example is a tag that might be encountered in the source code that should not be output during this run. Notice that if you use @argfile, you can put the tags on separate lines in an argument file like this (no line continuation characters needed): .nf \f3 @@ -4758,21 +3661,23 @@ If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its or .fl \fP .fi -.LP -When javadoc parses the doc comments, any tag encountered that is neither a standard tag nor passed in with \f2\-tag\fP or \f2\-taglet\fP is considered unknown, and a warning is thrown. -.LP -The standard tags are initially stored internally in a list in their default order. Whenever \f2\-tag\fP options are used, those tags get appended to this list \-\- standard tags are moved from their default position. Therefore, if a \f2\-tag\fP option is omitted for a standard tag, it remains in its default position. -.LP -\f3Avoiding Conflicts\fP \- If you want to slice out your own namespace, you can use a dot\-separated naming convention similar to that used for packages: \f2com.mycompany.todo\fP. Sun will continue to create standard tags whose names do not contain dots. Any tag you create will override the behavior of a tag by the same name defined by Sun. In other words, if you create a tag or taglet \f2@todo\fP, it will always have the same behavior you define, even if Sun later creates a standard tag of the same name. -.LP +When javadoc parses the doc comments, any tag encountered that is neither a standard tag nor passed in with \f2\-tag\fP or \f2\-taglet\fP is considered unknown, and a warning is thrown. +.br +.br +The standard tags are initially stored internally in a list in their default order. Whenever \f2\-tag\fP options are used, those tags get appended to this list \-\- standard tags are moved from their default position. Therefore, if a \f2\-tag\fP option is omitted for a standard tag, it remains in its default position. +.br +.br +\f3Avoiding Conflicts\fP \- If you want to slice out your own namespace, you can use a dot\-separated naming convention similar to that used for packages: \f2com.mycompany.todo\fP. Oracle will continue to create standard tags whose names do not contain dots. Any tag you create will override the behavior of a tag by the same name defined by Oracle. In other words, if you create a tag or taglet \f2@todo\fP, it will always have the same behavior you define, even if Oracle later creates a standard tag of the same name. +.br +.br \f3Annotations vs. Javadoc Tags\fP \- In general, if the markup you want to add is intended to affect or produce documentation, it should probably be a javadoc tag; otherwise, it should be an annotation. See .na \f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations -.LP -You can also create more complex block tags, or custom inline tags with the \-taglet option. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#annotations< +.br +.br +You can also create more complex block tags, or custom inline tags with the \-taglet option. .TP 3 \-taglet\ \ class Specifies the class file that starts the taglet used in generating the documentation for that tag. Use the fully\-qualified name for \f2class\fP. This taglet also defines the number of text arguments that the custom tag has. The taglet accepts those arguments, processes them, and generates the output. For extensive documentation with example taglets, see: @@ -4782,13 +3687,14 @@ o .na \f2Taglet Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/taglet/overview.html .RE -.LP -Taglets are useful for block or inline tags. They can have any number of arguments and implement custom behavior, such as making text bold, formatting bullets, writing out the text to a file, or starting other processes. -.LP -Taglets can only determine where a tag should appear and in what form. All other decisions are made by the doclet. So a taglet cannot do things such as remove a class name from the list of included classes. However, it can execute side effects, such as printing the tag's text to a file or triggering another process. -.LP +Taglets are useful for block or inline tags. They can have any number of arguments and implement custom behavior, such as making text bold, formatting bullets, writing out the text to a file, or starting other processes. +.br +.br +Taglets can only determine where a tag should appear and in what form. All other decisions are made by the doclet. So a taglet cannot do things such as remove a class name from the list of included classes. However, it can execute side effects, such as printing the tag's text to a file or triggering another process. +.br +.br Use the \f2\-tagletpath\fP option to specify the path to the taglet. Here is an example that inserts the "To Do" taglet after "Parameters" and ahead of "Throws" in the generated pages: .nf \f3 @@ -4809,25 +3715,21 @@ Use the \f2\-tagletpath\fP option to specify the path to the taglet. Here is an .fl \fP .fi -.LP -Alternatively, you can use the \f2\-taglet\fP option in place of its \f2\-tag\fP option, but that may be harder to read. -.LP +Alternatively, you can use the \f2\-taglet\fP option in place of its \f2\-tag\fP option, but that may be harder to read. .TP 3 \-tagletpath\ \ tagletpathlist -Specifies the search paths for finding taglet class files (.class). The \f2tagletpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. -.LP +Specifies the search paths for finding taglet class files (.class). The \f2tagletpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. .TP 3 \-docfilessubdirs\ -Enables deep copying of "\f2doc\-files\fP" directories. In other words, subdirectories and all contents are recursively copied to the destination. For example, the directory \f2doc\-files/example/images\fP and all its contents would now be copied. There is also an option to exclude subdirectories. -.LP +Enables deep copying of "\f2doc\-files\fP" directories. In other words, subdirectories and all contents are recursively copied to the destination. For example, the directory \f2doc\-files/example/images\fP and all its contents would now be copied. There is also an option to exclude subdirectories. .TP 3 \-excludedocfilessubdir\ \ name1:name2... -Excludes any "\f2doc\-files\fP" subdirectories with the given names. This prevents the copying of SCCS and other source\-code\-control subdirectories. -.LP +Excludes any "\f2doc\-files\fP" subdirectories with the given names. This prevents the copying of SCCS and other source\-code\-control subdirectories. .TP 3 \-noqualifier\ \ all\ | \ packagename1:packagename2:... -Omits qualifying package name from ahead of class names in output. The argument to \f2\-noqualifier\fP is either "\f2all\fP" (all package qualifiers are omitted) or a colon\-separate list of packages, with wildcards, to be removed as qualifiers. The package name is removed from places where class or interface names appear. -.LP +Omits qualifying package name from ahead of class names in output. The argument to \f2\-noqualifier\fP is either "\f2all\fP" (all package qualifiers are omitted) or a colon\-separate list of packages, with wildcards, to be removed as qualifiers. The package name is removed from places where class or interface names appear. +.br +.br The following example omits all package qualifiers: .nf \f3 @@ -4852,8 +3754,7 @@ The following example omits package qualifiers starting with "java", and "com.su .fl \fP .fi -Where a package qualifier would appear due to the above behavior, the name can be suitably shortened \-\- see How a name is displayed. This rule is in effect whether or not \f2\-noqualifier\fP is used. -.LP +Where a package qualifier would appear due to the above behavior, the name can be suitably shortened \-\- see How a name is displayed. This rule is in effect whether or not \f2\-noqualifier\fP is used. .TP 3 \-notimestamp\ Suppresses the timestamp, which is hidden in an HTML comment in the generated HTML near the top of each page. Useful when you want to run javadoc on two source bases and diff them, as it prevents timestamps from causing a diff (which would otherwise be a diff on every page). The timestamp includes the javadoc version number, and currently looks like this: @@ -4864,53 +3765,40 @@ Suppresses the timestamp, which is hidden in an HTML comment in the generated HT .fl \fP .fi -.LP .TP 3 \-nocomment\ Suppress the entire comment body, including the main description and all tags, generating only declarations. This option enables re\-using source files originally intended for a different purpose, to produce skeleton HTML documentation at the early stages of a new project. +.TP 3 +\-sourcetab tabLength +Specify the number of spaces each tab takes up in the source. .RE .SH "COMMAND LINE ARGUMENT FILES" .LP - -.LP -.LP To shorten or simplify the javadoc command line, you can specify one or more files that themselves contain arguments to the \f2javadoc\fP command (except \f2\-J\fP options). This enables you to create javadoc commands of any length on any operating system. .LP -.LP An argument file can include javac options and source filenames in any combination. The arguments within a file can be space\-separated or newline\-separated. If a filename contains embedded spaces, put the whole filename in double quotes. .LP -.LP Filenames within an argument file are relative to the current directory, not the location of the argument file. Wildcards (*) are not allowed in these lists (such as for specifying \f2*.java\fP). Use of the '\f2@\fP' character to recursively interpret files is not supported. The \f2\-J\fP options are not supported because they are passed to the launcher, which does not support argument files. .LP -.LP When executing javadoc, pass in the path and name of each argument file with the '\f2@\fP' leading character. When javadoc encounters an argument beginning with the character `\f2@\fP', it expands the contents of that file into the argument list. -.LP .SS Example \- Single Arg File .LP -.LP You could use a single argument file named "\f2argfile\fP" to hold all Javadoc arguments: -.LP .nf \f3 .fl % \fP\f3javadoc @argfile\fP .fl .fi - -.LP .LP This argument file could contain the contents of both files shown in the next example. -.LP .SS Example \- Two Arg Files .LP -.LP You can create two argument files \-\- one for the Javadoc options and the other for the package names or source filenames: (Notice the following lists have no line\-continuation characters.) .LP -.LP Create a file named "\f2options\fP" containing: -.LP .nf \f3 .fl @@ -4920,13 +3808,13 @@ Create a file named "\f2options\fP" containing: .fl \-splitindex .fl - \-windowtitle 'Java(TM) SE 7 API Specification' + \-windowtitle 'Java SE 7 API Specification' .fl - \-doctitle 'Java(TM) SE 7 API Specification' + \-doctitle 'Java SE 7 API Specification' .fl - \-header '<b>Java(TM); SE 7' + \-header '<b>Java(TM) SE 7</b>' .fl - \-bottom 'Copyright 1993\-2009 Sun Microsystems, Inc. All Rights Reserved.' + \-bottom 'Copyright © 1993\-2011 Oracle and/or its affiliates. All rights reserved.' .fl \-group "Core Packages" "java.*" .fl @@ -4936,11 +3824,8 @@ Create a file named "\f2options\fP" containing: .fl \fP .fi - -.LP .LP Create a file named "\f2packages\fP" containing: -.LP .nf \f3 .fl @@ -4952,120 +3837,85 @@ Create a file named "\f2packages\fP" containing: .fl \fP .fi - -.LP .LP You would then run javadoc with: -.LP .nf \f3 .fl % \fP\f3javadoc @options @packages\fP .fl .fi - -.LP .SS Example \- Arg Files with Paths .LP -.LP The argument files can have paths, but any filenames inside the files are relative to the current working directory (not \f2path1\fP or \f2path2\fP): -.LP .nf \f3 .fl % \fP\f3javadoc @path1/options @path2/packages\fP .fl .fi - -.LP .SS Example \- Option Arguments .LP -.LP Here's an example of saving just an argument to a javadoc option in an argument file. We'll use the \f2\-bottom\fP option, since it can have a lengthy argument. You could create a file named "\f2bottom\fP" containing its text argument: -.LP .nf \f3 .fl -'<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a +<font size="\-1"> .fl -bug or feature</a><br><br>Java is a trademark or registered trademark of + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl -Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-2000 Sun + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl -All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font> .fl \fP .fi - -.LP .LP Then run the Javadoc tool with: -.LP .nf \f3 .fl % \fP\f3javadoc \-bottom @bottom @packages\fP .fl .fi - -.LP .LP Or you could include the \f2\-bottom\fP option at the start of the argument file, and then just run it as: -.LP .nf \f3 .fl % \fP\f3javadoc @bottom @packages\fP .fl .fi - -.LP - -.LP .SH "Name" Running -.LP .SH "RUNNING JAVADOC" .LP - -.LP -.LP \f3Version Numbers\fP \- The version number of javadoc can be determined using \f3javadoc \-J\-version\fP. The version number of the standard doclet appears in its output stream. It can be turned off with \f2\-quiet\fP. .LP -.LP \f3Public programmatic interface\fP \- To invoke the Javadoc tool from within programs written in the Java language. This interface is in \f2com.sun.tools.javadoc.Main\fP (and javadoc is re\-entrant). For more details, see .na \f2Standard Doclet\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically. -.LP +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically. .LP \f3Running Doclets\fP \- The instructions given below are for invoking the standard HTML doclet. To invoke a custom doclet, use the \-doclet and \-docletpath options. For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP .SH "SIMPLE EXAMPLES" .LP - -.LP -.LP You can run javadoc on entire packages or individual source files. Each package name has a corresponding directory name. In the following examples, the source files are located at \f2/home/src/java/awt/*.java\fP. The destination directory is \f2/home/html\fP. -.LP .SS Documenting One or More Packages .LP -.LP To document a package, the source files (\f2*.java\fP) for that package must be located in a directory having the same name as the package. If a package name is made up of several identifiers (separated by dots, such as \f2java.awt.color\fP), each subsequent identifier must correspond to a deeper subdirectory (such as \f2java/awt/color\fP). You may split the source files for a single package among two such directory trees located at different places, as long as \f2\-sourcepath\fP points to them both \-\- for example \f2src1/java/awt/color\fP and \f2src2/java/awt/color\fP. .LP -.LP You can run javadoc either by changing directories (with \f2cd\fP) or by using \f2\-sourcepath\fP option. The examples below illustrate both alternatives. -.LP .RS 3 .TP 2 o @@ -5108,17 +3958,12 @@ o .fl .fi .RE - -.LP .LP Result: All cases generate HTML\-formatted documentation for the public and protected classes and interfaces in packages \f2java.awt\fP and \f2java.awt.event\fP and save the HTML files in the specified destination directory (\f2/home/html\fP). Because two or more packages are being generated, the document has three HTML frames \-\- for the list of packages, the list of classes, and the main class pages. -.LP .SS Documenting One or More Classes .LP -.LP The second way to run the Javadoc tool is by passing in one or more source files (\f2.java\fP). You can run javadoc either of the following two ways \-\- by changing directories (with \f2cd\fP) or by fully\-specifying the path to the \f2.java\fP files. Relative paths are relative to the current directory. The \f2\-sourcepath\fP option is ignored when passing in source files. You can use command line wildcards, such as asterisk (*), to specify groups of classes. -.LP .RS 3 .TP 2 o @@ -5155,93 +4000,76 @@ o .fi This example generates HTML\-formatted documentation for the class \f2Button\fP and classes beginning with \f2Graphics\fP. .RE - -.LP .SS Documenting Both Packages and Classes .LP -.LP You can document entire packages and individual classes at the same time. Here's an example that mixes two of the previous examples. You can use \f2\-sourcepath\fP for the path to the packages but not for the path to the individual classes. -.LP .nf \f3 .fl % \fP\f3javadoc \-d /home/html \-sourcepath /home/src java.awt /home/src/java/applet/Applet.java\fP .fl .fi - -.LP .LP This example generates HTML\-formatted documentation for the package \f2java.awt\fP and class \f2Applet\fP. (The Javadoc tool determines the package name for \f2Applet\fP from the package declaration, if any, in the \f2Applet.java\fP source file.) -.LP .SH "REAL WORLD EXAMPLE" .LP - -.LP -.LP The Javadoc tool has many useful options, some of which are more commonly used than others. Here is effectively the command we use to run the Javadoc tool on the Java platform API. We use 180MB of memory to generate the documentation for the 1500 (approx.) public and protected classes in the Java SE Platform, Standard Edition, v1.2. .LP -.LP The same example is shown twice \-\- first as executed on the command line, then as executed from a makefile. It uses absolute paths in the option arguments, which enables the same \f2javadoc\fP command to be run from any directory. -.LP .SS Command Line Example .LP -.LP -This command line example is over 900 characters, which is too long for some shells, such as DOS. You can use a command line argument file (or write a shell script) to workaround this limitation. -.LP +The following example may be too long for some shells such as DOS. You can use a command line argument file (or write a shell script) to workaround this limitation. .nf \f3 .fl -% javadoc \-sourcepath /java/jdk/src/share/classes \\ +% javadoc \-sourcepath /java/jdk/src/share/classes \\ .fl - \-overview /java/jdk/src/share/classes/overview.html \\ + \-overview /java/jdk/src/share/classes/overview.html \\ .fl - \-d /java/jdk/build/api \\ + \-d /java/jdk/build/api \\ .fl - \-use \\ + \-use \\ .fl - \-splitIndex \\ + \-splitIndex \\ .fl - \-windowtitle 'Java(TM) Platform, Standard Edition 7 API Specification' \\ + \-windowtitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-doctitle 'Java(TM) Platform, Standard Edition 7 API Specification' \\ + \-doctitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-header '<b>Java(TM) SE </b><br><font size="\-1">7</font>' \\ + \-header '<b>Java(TM) SE 7</b>' \\ .fl - \-bottom '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit + \-bottom '<font size="\-1"> .fl -a bug or feature</a><br><br>Java is a trademark or registered trademark of Sun Microsystems, + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl -Inc. in the US and other countries.<br>Copyright 1993\-1999 Sun Microsystems, Inc. + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. All Rights Reserved.</font>' \\ + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. +.fl + Other names may be trademarks of their respective owners.</font>' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl - \-group "Extension Packages" "javax.*" \\ + \-group "Extension Packages" "javax.*" \\ .fl - \-J\-Xmx180m \\ + \-J\-Xmx180m \\ .fl @packages .fl \fP .fi - -.LP .LP where \f2packages\fP is the name of a file containing the packages to process, such as \f2java.applet java.lang\fP. None of the options should contain any newline characters between the single quotes. (For example, if you copy and paste this example, delete the newline characters from the \f2\-bottom\fP option.) See the other notes listed below. -.LP .SS Makefile Example .LP -.LP This is an example of a GNU makefile. For an example of a Windows makefile, see .na \f2creating a makefile for Windows\fP @ .fi http://java.sun.com/j2se/javadoc/faq/index.html#makefiles. -.LP .nf \f3 .fl @@ -5283,15 +4111,15 @@ DOCTITLE = 'Java(TM) Platform Standard Edition 7 API Specification' .fl HEADER = '<b>Java(TM) SE 7</font>' .fl -BOTTOM = '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit +BOTTOM = '<font size="\-1"> .fl - a bug or feature</a><br><br>Java is a trademark or registered trademark + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl - of Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-1999 + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl - Sun Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font>' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl @@ -5301,14 +4129,10 @@ SRCDIR = '/java/jdk/1.7.0/src/share/classes' .fl \fP .fi - -.LP .LP Single quotes are used to surround makefile arguments. .LP -.LP \f3NOTES\fP -.LP .RS 3 .TP 2 o @@ -5320,15 +4144,9 @@ If you omit the \f2\-footer\fP option, as done here, the Javadoc tool copies the o Other important options you might want to use but not needed in this example are \-\f2classpath\fP and \-\f2link\fP. .RE - -.LP .SH "TROUBLESHOOTING" -.LP - -.LP .SS General Troubleshooting -.LP .RS 3 .TP 2 o @@ -5347,37 +4165,23 @@ o o \f3Documents only legal classes\fP \- When documenting a package, javadoc only reads files whose names are composed of legal class names. You can prevent javadoc from parsing a file by including, for example, a hyphen "\-" in its filename. .RE - -.LP .SS Errors and Warnings .LP -.LP Error and warning messages contain the filename and line number to the declaration line rather than to the particular line in the doc comment. -.LP .RS 3 .TP 2 o \f2"error: cannot read: Class1.java"\fP the Javadoc tool is trying to load the class Class1.java in the current directory. The class name is shown with its path (absolute or relative), which in this case is the same as \f2./Class1.java\fP. .RE - -.LP .SH "ENVIRONMENT" -.LP - -.LP .RS 3 .TP 3 CLASSPATH Environment variable that provides the path which javadoc uses to find user class files. This environment variable is overridden by the \f2\-classpath\fP option. Separate directories with a colon, for example: .:/home/classes:/usr/local/java/classes .RE - -.LP .SH "SEE ALSO" -.LP - -.LP .RS 3 .TP 2 o @@ -5399,75 +4203,24 @@ o .na \f2Javadoc Home Page\fP @ .fi -http://java.sun.com/j2se/javadoc/index.jsp +http://www.oracle.com/technetwork/java/javase/documentation/index\-jsp\-135444.html .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html .TP 2 o .na \f2Setting the Class Path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general .TP 2 o .na \f2How Javac and Javadoc Find Classes\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) .RE - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 80 0 -.80 -.rm 80 -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 3869 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.fc -.nr T. 1 -.T# 1 -.35 -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-3 - -.LP diff --git a/jdk/src/linux/doc/man/javah.1 b/jdk/src/linux/doc/man/javah.1 index 60a51c37af6..16dfa9bcc93 100644 --- a/jdk/src/linux/doc/man/javah.1 +++ b/jdk/src/linux/doc/man/javah.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,37 +19,27 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "02 Jun 2010" +.TH javah 1 "10 May 2011" .LP .SH "Name" javah \- C Header and Stub File Generator -.LP -.RS 3 - .LP .LP \f3javah\fP produces C header files and C source files from a Java class. These files provide the connective glue that allow your Java and C code to interact. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl javah [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . .fl -javah_g [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . -.fl \fP .fi .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3javah\fP generates C header and source files that are needed to implement native methods. The generated header and source files are used by C programs to reference an object's instance variables from native source code. The .h file contains a struct definition whose layout parallels the layout of the corresponding class. The fields in the struct correspond to instance variables in the class. @@ -63,12 +53,7 @@ By default \f3javah\fP creates a header file for each class listed on the comman .LP The new native method interface, Java Native Interface (JNI), does not require header information or stub files. \f3javah\fP can still be used to generate native method function proptotypes needed for JNI\-style native methods. \f3javah\fP produces JNI\-style output by default, and places the result in the .h file. .LP -.LP -\f3javah_g\fP is a non\-optimized version of \f3javah\fP suitable for use with debuggers like jdb(1). -.LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -110,11 +95,10 @@ For example: .fl \fP .fi -.LP As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. +For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. .TP 3 \-bootclasspath path Specifies path from which to load bootstrap classes. By default, the bootstrap classes are the classes implementing the core Java 2 platform located in \f2jre/lib/rt.jar\fP and several other jar files. @@ -131,8 +115,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "ENVIRONMENT VARIABLES" -.LP - .LP .RS 3 .TP 3 @@ -149,8 +131,6 @@ Used to provide the system a path to user\-defined classes. Directories are sepa .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), jdb(1), javap(1), javadoc(1) diff --git a/jdk/src/linux/doc/man/javap.1 b/jdk/src/linux/doc/man/javap.1 index 33518779b69..aa6e8d0114c 100644 --- a/jdk/src/linux/doc/man/javap.1 +++ b/jdk/src/linux/doc/man/javap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,27 +19,21 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "02 Jun 2010" +.TH javap 1 "10 May 2011" .LP .SH "Name" javap \- The Java Class File Disassembler -.LP -.RS 3 - .LP .LP Disassembles class files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl -javap [ \fP\f3options\fP\f3 ] class. . . +javap [ \fP\f3options\fP\f3 ] classes .fl \fP .fi @@ -47,13 +41,21 @@ javap [ \fP\f3options\fP\f3 ] class. . . .LP .SH "DESCRIPTION" .LP - .LP -.LP -The \f3javap\fP command disassembles a class file. Its output depends on the options used. If no options are used, \f3javap\fP prints out the package, protected, and public fields and methods of the classes passed to it. \f3javap\fP prints its output to stdout. For example, compile the following class declaration: +The \f3javap\fP command disassembles one or more class files. Its output depends on the options used. If no options are used, \f3javap\fP prints out the package, protected, and public fields and methods of the classes passed to it. \f3javap\fP prints its output to stdout. .LP .RS 3 +.TP 3 +options +Command\-line options. +.TP 3 +classes +List of one or more classes (separated by spaces) to be processed for annotations (such as \f2DocFooter.class\fP). You may specify a class that can be found in the class path, by its file name (for example, \f2/home/user/myproject/src/DocFooter.class\fP), or with a URL (for example, \f2file:///home/user/myproject/src/DocFooter.class\fP). +.RE +.LP +.LP +For example, compile the following class declaration: .LP .nf \f3 @@ -96,166 +98,160 @@ public class DocFooter extends Applet { .fl \fP .fi -.RE .LP .LP -The output from \f3javap DocFooter\fP yields: -.LP -.RS 3 - +The output from \f3javap DocFooter.class\fP yields: .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + java.lang.String email; .fl - public DocFooter(); + public DocFooter(); .fl - public void init(); + public void init(); .fl - public void paint(java.awt.Graphics); + public void paint(java.awt.Graphics); .fl } .fl \fP .fi -.RE .LP .LP -The output from \f3javap \-c DocFooter\fP yields: -.LP -.RS 3 - +The output from \f3javap \-c DocFooter.class\fP yields: .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + .fl - public DocFooter(); + java.lang.String email; .fl - public void init(); + .fl - public void paint(java.awt.Graphics); + public DocFooter(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: invokespecial #1 // Method java/applet/Applet."<init>":()V +.fl + 4: return +.fl + +.fl + public void init(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: sipush 500 +.fl + 4: bipush 100 +.fl + 6: invokevirtual #2 // Method resize:(II)V +.fl + 9: aload_0 +.fl + 10: aload_0 +.fl + 11: ldc #3 // String LAST_UPDATED +.fl + 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 16: putfield #5 // Field date:Ljava/lang/String; +.fl + 19: aload_0 +.fl + 20: aload_0 +.fl + 21: ldc #6 // String EMAIL +.fl + 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 26: putfield #7 // Field email:Ljava/lang/String; +.fl + 29: return +.fl + +.fl + public void paint(java.awt.Graphics); +.fl + Code: +.fl + 0: aload_1 +.fl + 1: new #8 // class java/lang/StringBuilder +.fl + 4: dup +.fl + 5: invokespecial #9 // Method java/lang/StringBuilder."<init>":()V +.fl + 8: aload_0 +.fl + 9: getfield #5 // Field date:Ljava/lang/String; +.fl + 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 15: ldc #11 // String by +.fl + 17: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 20: invokevirtual #12 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; +.fl + 23: bipush 100 +.fl + 25: bipush 15 +.fl + 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 30: aload_1 +.fl + 31: aload_0 +.fl + 32: getfield #7 // Field email:Ljava/lang/String; +.fl + 35: sipush 290 +.fl + 38: bipush 15 +.fl + 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 43: return .fl } .fl - -.fl -Method DocFooter() -.fl - 0 aload_0 -.fl - 1 invokespecial #1 <Method java.applet.Applet()> -.fl - 4 return -.fl - -.fl -Method void init() -.fl - 0 aload_0 -.fl - 1 sipush 500 -.fl - 4 bipush 100 -.fl - 6 invokevirtual #2 <Method void resize(int, int)> -.fl - 9 aload_0 -.fl - 10 aload_0 -.fl - 11 ldc #3 <String "LAST_UPDATED"> -.fl - 13 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)> -.fl - 16 putfield #5 <Field java.lang.String date> -.fl - 19 aload_0 -.fl - 20 aload_0 -.fl - 21 ldc #6 <String "EMAIL"> -.fl - 23 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)> -.fl - 26 putfield #7 <Field java.lang.String email> -.fl - 29 return -.fl - -.fl -Method void paint(java.awt.Graphics) -.fl - 0 aload_1 -.fl - 1 new #8 <Class java.lang.StringBuffer> -.fl - 4 dup -.fl - 5 invokespecial #9 <Method java.lang.StringBuffer()> -.fl - 8 aload_0 -.fl - 9 getfield #5 <Field java.lang.String date> -.fl - 12 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)> -.fl - 15 ldc #11 <String " by "> -.fl - 17 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)> -.fl - 20 invokevirtual #12 <Method java.lang.String toString()> -.fl - 23 bipush 100 -.fl - 25 bipush 15 -.fl - 27 invokevirtual #13 <Method void drawString(java.lang.String, int, int)> -.fl - 30 aload_1 -.fl - 31 aload_0 -.fl - 32 getfield #7 <Field java.lang.String email> -.fl - 35 sipush 290 -.fl - 38 bipush 15 -.fl - 40 invokevirtual #13 <Method void drawString(java.lang.String, int, int)> -.fl - 43 return -.fl \fP .fi -.RE .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 -\-help +\-help \-\-help \-? Prints out help message for \f3javap\fP. .TP 3 +\-version +Prints out version information. +.TP 3 \-l Prints out line and local variable tables. .TP 3 @@ -268,14 +264,11 @@ Shows only protected and public classes and members. \-package Shows only package, protected, and public classes and members. This is the default. .TP 3 -\-private +\-private \-p Shows all classes and members. .TP 3 \-Jflag Pass \f2flag\fP directly to the runtime system. Some examples: -.RS 3 - -.LP .nf \f3 .fl @@ -285,11 +278,16 @@ javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassNam .fl \fP .fi -.RE .TP 3 \-s Prints internal type signatures. .TP 3 +\-sysinfo +Shows system information (path, size, date, MD5 hash) of the class being processed. +.TP 3 +\-constants +Shows static final constants. +.TP 3 \-c Prints out disassembled code, i.e., the instructions that comprise the Java bytecodes, for each of the methods in the class. These are documented in the .na @@ -301,22 +299,7 @@ http://java.sun.com/docs/books/vmspec/. Prints stack size, number of \f2locals\fP and \f2args\fP for methods. .TP 3 \-classpath path -Specifies the path \f3javap\fP uses to look up classes. Overrides the default or the CLASSPATH environment variable if it is set. Directories are separated by colons. Thus the general format for \f2path\fP is: -.nf -\f3 -.fl - .:<your_path> -.fl -\fP -.fi -For example: -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi +Specifies the path \f3javap\fP uses to look up classes. Overrides the default or the CLASSPATH environment variable if it is set. .TP 3 \-bootclasspath path Specifies path from which to load bootstrap classes. By default, the bootstrap classes are the classes implementing the core Java platform located in \f2jre/lib/rt.jar\fP and several other jar files. @@ -325,32 +308,8 @@ Specifies path from which to load bootstrap classes. By default, the bootstrap c Overrides location at which installed extensions are searched for. The default location for extensions is the value of \f2java.ext.dirs\fP. .RE -.LP -.SH "ENVIRONMENT VARIABLES" -.LP - -.LP -.RS 3 -.TP 3 -CLASSPATH -Used to provide the system a path to user\-defined classes. Directories are separated by colons, for example, For example: -.RS 3 - -.LP -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi -.RE -.RE - .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), jdb(1), javah(1), javadoc(1) diff --git a/jdk/src/linux/doc/man/javaws.1 b/jdk/src/linux/doc/man/javaws.1 index 281046c1072..a73df25c0db 100644 --- a/jdk/src/linux/doc/man/javaws.1 +++ b/jdk/src/linux/doc/man/javaws.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2003, 2011, 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 @@ -19,30 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "02 Jun 2010" +.TH javaws 1 "10 May 2011" .LP .SH "Name" \f2javaws\fP Command Line .LP -.LP -\ -.LP -.SS -NAME -.LP -.RS 3 - +.SH "NAME" .LP .LP \f2javaws\fP \- Java Web Start launcher command .LP -.RE -.SS -SYNOPSIS -.LP -.RS 3 - +.SH "SYNOPSIS" .LP .LP \f2javaws [run\-options] <jnlp>\fP @@ -50,49 +38,27 @@ SYNOPSIS .LP \f2javaws [control\-options]\fP .LP -.RE -.SS -PARAMETERS -.LP -.RS 3 - +.SH "PARAMETERS" .LP .LP \f2[run\-options]\fP -.LP -.RS 3 - .LP .LP Command\-line run\-options. run\-options may be in any order. For a discussion of the various run\-options, see RUN\-OPTIONS below. .LP -.RE .LP \f2<jnlp>\fP -.LP -.RS 3 - .LP .LP This can be either the path of, or the Uniform Resource Locater (URL) of the JNLP (Java Network Launching Protocol) file. .LP -.RE .LP \f2[control\-options]\fP -.LP -.RS 3 - .LP .LP Command\-line control\-options. control\-options may be in any order. For a discussion of the various control\-options, see CONTROL\-OPTIONS below. .LP -.RE -.RE -.SS -DESCRIPTION -.LP -.RS 3 - +.SH "DESCRIPTION" .LP .LP The \f2javaws\fP command launches Java Web Start, which is the reference implementation of the Java Network Launching Protocol (JNLP). Java Web Start launches Java applications/applets hosted on a network. @@ -103,256 +69,154 @@ If a JNLP file is specified, \f2javaws\fP will launch the Java application/apple .LP The \f2javaws\fP launcher has a set of options that are supported in the current release. However, the options may be removed in a future release. .LP -.RE -.SS -RUN\-OPTIONS -.LP -.RS 3 - +.SH "RUN\-OPTIONS" .LP .LP \f2\-offline\fP .LP -.RS 3 - .LP +Run Java Web Start in offline mode. .LP -run Java Web Start in offline mode. -.LP -.RE .LP \f2\-Xnosplash\fP .LP -.RS 3 - .LP +Do not display the initial splash screen. .LP -disable the display of the initial splash screen. -.LP -.RE .LP \f2\-open <arguments>\fP -.LP -.RS 3 - .LP .LP If specified, replaces the arguments in the jnlp file with \f2\-open <arguments>\fP. .LP -.RE .LP \f2\-print <arguments>\fP -.LP -.RS 3 - .LP .LP If specified, replaces the arguments in the jnlp file with \f2\-print <arguments>\fP. .LP -.RE .LP \f2\-online\fP .LP -.RS 3 - .LP +Use online mode (default behavior). .LP -run in online mode (default behavior). -.LP -.RE .LP \f2\-wait\fP .LP -.RS 3 - .LP +If specified, the \f2javaws\fP process will not exit until the application exits. This option does not function as described on Windows platforms. .LP -If specified, the \f2javaws\fP process will not exit until the application exits. -.LP -.RE .LP \f2\-verbose\fP .LP -.RS 3 - .LP +Display additional output. .LP -display additional output. -.LP -.RE .LP \f2\-J<option>\fP .LP -.RS 3 - .LP +Supply options to the VM. .LP -supply options to the vm. -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +Run the application from the system cache only. .LP -run the application from the system cache only. -.LP -.RE -.RE -.SS -CONTROL\-OPTIONS -.LP -.RS 3 - +.SH "CONTROL\-OPTIONS" .LP .LP \f2\-viewer\fP .LP -.RS 3 - +.LP +Show the Cache Viewer in the Java Control Panel. .LP .LP -show the Cache Viewer in the java control panel +\f2\-clearcache\fP +.LP +.LP +Remove all non\-installed applications from the cache. .LP -.RE .LP \f2\-userConfig <property name>\fP .LP -.RS 3 - .LP +Clear the specified deployment property. .LP -clear the specified deployment property. -.LP -.RE .LP \f2\-userConfig <property name> <property value>\fP .LP -.RS 3 - .LP +Set the specified deployment property to the specified value. .LP -set the specified deployment property to the specified value. -.LP -.RE .LP \f2\-uninstall\fP .LP -.RS 3 - .LP +Remove all applications from the cache. .LP -remove all applications from the cache. -.LP -.RE .LP \f2\-uninstall <jnlp>\fP .LP -.RS 3 - .LP +Remove the application from the cache. .LP -remove the application from the cache. -.LP -.RE .LP \f2\-import [import\-options] <jnlp>\fP .LP -.RS 3 - .LP +Import the application to the cache. .LP -import the application to the cache. -.LP -.RE -\f3IMPORT\-OPTIONS\fP +.SH "IMPORT\-OPTIONS" .LP .LP \f2\-silent\fP .LP -.RS 3 - .LP +Import silently (with no user interface). .LP -import silently (with no user interface). -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +Import application to the system cache. .LP -import application to the system cache. -.LP -.RE .LP \f2\-codebase <url>\fP .LP -.RS 3 - .LP +Retrieve resources from the given codebase. .LP -retrieve resources from the given codebase. -.LP -.RE .LP \f2\-shortcut\fP .LP -.RS 3 - .LP +Install shortcuts as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. .LP -install shortcuts as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. -.LP -.RE .LP \f2\-association\fP .LP -.RS 3 - .LP +Install associations as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. .LP -install associations as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. -.LP -.RE -.RE -.SS -FILES -.LP -.RS 3 - +.SH "FILES" .LP .LP For information about the user and system cache and deployment.properties files, see .na \f2System\- and User\-Level Properties\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.html. +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/properties.html. .LP -.RE -.SS -MORE INFORMATION -.LP -.RS 3 - +.SH "MORE INFORMATION" .LP .LP For more information about Java Web Start, see .na \f2Java Web Start\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/javaws/index.html. .LP -.RS 3 - -.LP -.LP -\ -.LP -.RE -.RE diff --git a/jdk/src/linux/doc/man/jconsole.1 b/jdk/src/linux/doc/man/jconsole.1 index aafa16475f9..14d87bb83c5 100644 --- a/jdk/src/linux/doc/man/jconsole.1 +++ b/jdk/src/linux/doc/man/jconsole.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "02 Jun 2010" +.TH jconsole 1 "10 May 2011" .LP .SH "Name" jconsole \- Java Monitoring and Management Console .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,41 +38,40 @@ jconsole \- Java Monitoring and Management Console .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 options Options, if used, should follow immediately after the command name. -.br .TP 3 connection = pid | host:port | jmxUrl .RS 3 -\f2pid\fP\ \ \ Process ID of a local Java VM. The Java VM must be running with the same user ID as the user ID running jconsole. See +.TP 2 +o +\f2pid\fP Process ID of a local Java VM. The Java VM must be running with the same user ID as the user ID running jconsole. See .na \f2JMX Monitoring and Management\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. -.br -\f2host\fP:\f2port\fP\ \ Name of the host system on which the Java VM is running and the port number specified by the system property \f2com.sun.management.jmxremote.port\fP when the Java VM was started. See +http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html for details. +.TP 2 +o +\f2host\fP:\f2port\fP Name of the host system on which the Java VM is running and the port number specified by the system property \f2com.sun.management.jmxremote.port\fP when the Java VM was started. See .na \f2JMX Monitoring and Management\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. -.br -\f2jmxUrl\fP\ \ Address of the JMX agent to be connected to as described in +http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html for details. +.TP 2 +o +\f2jmxUrl\fP Address of the JMX agent to be connected to as described in .na \f2JMXServiceURL\fP @ .fi -http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html. +http://download.oracle.com/javase/7/docs/api/javax/management/remote/JMXServiceURL.html. .RE .RE .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jconsole\fP command launches a graphical console tool that enables you to monitor and manage Java applications and virtual machines on a local or remote machine. @@ -83,18 +80,16 @@ The \f3jconsole\fP command launches a graphical console tool that enables you to On Windows, \f3jconsole\fP does not associate with a console window. It will, however, display a dialog box with error information if the \f3jconsole\fP command fails for some reason. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 \-interval=n Set the update interval to \f2n\fP seconds (default is 4 seconds). .TP 3 -\-notile\ +\-notile Do not tile windows initially (for two or more connections). .TP 3 -\-pluginpath\ plugins +\-pluginpath plugins Specify a list of directories or JAR files which are searched for JConsole plugins. The \f2plugins\fP path should contain a provider\-configuration file named: .br .nf @@ -104,20 +99,19 @@ Specify a list of directories or JAR files which are searched for JConsole plugi .fl \fP .fi -.LP containing one line for each plugin specifying the fully qualified class name of the class implementing the .na \f2com.sun.tools.jconsole.JConsolePlugin\fP @ .fi -http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html class. +http://download.oracle.com/javase/7/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html class. .TP 3 -\-version\ +\-version Output version information and exit. .TP 3 -\-help\ +\-help Output help message and exit. .TP 3 -\-J<flag>\ +\-J<flag> Pass <flag> to the Java virtual machine on which jconsole is run. .RE @@ -130,13 +124,13 @@ o .na \f2Using JConsole\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html +http://download.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html .TP 2 o .na \f2Monitoring and Management for Java Platform\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/management/index.html .RE .LP diff --git a/jdk/src/linux/doc/man/jdb.1 b/jdk/src/linux/doc/man/jdb.1 index 6e0b94394b1..e89a60b9748 100644 --- a/jdk/src/linux/doc/man/jdb.1 +++ b/jdk/src/linux/doc/man/jdb.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "02 Jun 2010" +.TH jdb 1 "10 May 2011" .LP .SH "Name" jdb \- The Java Debugger -.LP -.RS 3 - .LP .LP \f3jdb\fP helps you find and fix bugs in Java language programs. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -43,9 +37,6 @@ jdb \- The Java Debugger .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -60,23 +51,17 @@ Arguments passed to the \f2main()\fP method of \f2class\fP. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The Java Debugger, \f3jdb\fP, is a simple command\-line debugger for Java classes. It is a demonstration of the .na \f2Java Platform Debugger Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html that provides inspection and debugging of a local or remote Java Virtual Machine. +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/index.html that provides inspection and debugging of a local or remote Java Virtual Machine. .LP .SS Starting a jdb Session -.LP -.RS 3 - .LP .LP There are many ways to start a jdb session. The most frequently used way is to have \f3jdb\fP launch a new Java Virtual Machine (VM) with the main class of the application to be debugged. This is done by substituting the command \f3jdb\fP for \f3java\fP in the command line. For example, if your application's main class is MyClass, you use the following command to debug it under JDB: @@ -137,7 +122,7 @@ There are many other ways to connect the debugger to a VM, and all of them are s .na \f2documentation\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html on these connection options. For information on starting a J2SE 1.4.2 or early VM for use with \f3jdb\fP see the +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html on these connection options. For information on starting a J2SE 1.4.2 or early VM for use with \f3jdb\fP see the .na \f21.4.2 documentation\fP @ .fi @@ -148,9 +133,6 @@ Basic jdb Commands .LP .LP The following is a list of the basic \f3jdb\fP commands. The Java debugger supports other commands which you can list using \f3jdb\fP's \f2help\fP command. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -164,10 +146,12 @@ cont Continues execution of the debugged application after a breakpoint, exception, or step. .TP 3 print -Displays Java objects and primitive values. For variables or fields of primitive types, the actual value is printed. For objects, a short description is printed. See the \f2dump\fP command below for getting more information about an object. -.LP -\f2NOTE: To display local variables, the containing class must have been compiled with the \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP option. -.LP +Displays Java objects and primitive values. For variables or fields of primitive types, the actual value is printed. For objects, a short description is printed. See the \f2dump\fP command below for getting more information about an object. +.br +.br +\f2NOTE: To display local variables, the containing class must have been compiled with the \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP option. +.br +.br \f2print\fP supports many simple Java expressions including those with method invocations, for example: .RS 3 .TP 2 @@ -188,15 +172,13 @@ o .RE .TP 3 dump -For primitive values, this command is identical to \f2print\fP. For objects, it prints the current value of each field defined in the object. Static and instance fields are included. -.LP -The \f2dump\fP command supports the same set of expressions as the \f2print\fP command. +For primitive values, this command is identical to \f2print\fP. For objects, it prints the current value of each field defined in the object. Static and instance fields are included. +.br +.br +The \f2dump\fP command supports the same set of expressions as the \f2print\fP command. .TP 3 threads List the threads that are currently running. For each thread, its name and current status are printed, as well as an index that can be used for other commands, for example: -.RS 3 - -.LP .nf \f3 .fl @@ -204,25 +186,21 @@ List the threads that are currently running. For each thread, its name and curre .fl \fP .fi -.RE In this example, the thread index is 4, the thread is an instance of java.lang.Thread, the thread name is "main", and it is currently running, .TP 3 thread Select a thread to be the current thread. Many \f3jdb\fP commands are based on the setting of the current thread. The thread is specified with the thread index described in the \f2threads\fP command above. .TP 3 where -\f2where\fP with no arguments dumps the stack of the current thread. \f2where all\fP dumps the stack of all threads in the current thread group. \f2where\fP \f2threadindex\fP dumps the stack of the specified thread. -.LP -If the current thread is suspended (either through an event such as a breakpoint or through the \f2suspend\fP command), local variables and fields can be displayed with the \f2print\fP and \f2dump\fP commands. The \f2up\fP and \f2down\fP commands select which stack frame is current. +\f2where\fP with no arguments dumps the stack of the current thread. \f2where all\fP dumps the stack of all threads in the current thread group. \f2where\fP \f2threadindex\fP dumps the stack of the specified thread. +.br +.br +If the current thread is suspended (either through an event such as a breakpoint or through the \f2suspend\fP command), local variables and fields can be displayed with the \f2print\fP and \f2dump\fP commands. The \f2up\fP and \f2down\fP commands select which stack frame is current. .RE .LP -.RE .SS Breakpoints -.LP -.RS 3 - .LP .LP Breakpoints can be set in \f3jdb\fP at line numbers or at the first instruction of a method, for example: @@ -249,22 +227,14 @@ If a method is overloaded, you must also specify its argument types so that the .LP The \f2clear\fP command removes breakpoints using a syntax as in "\f2clear\ MyClass:45\fP". Using the \f2clear\fP or command with no argument displays a list of all breakpoints currently set. The \f2cont\fP command continues execution. .LP -.RE .SS Stepping -.LP -.RS 3 - .LP .LP The \f2step\fP commands advances execution to the next line whether it is in the current stack frame or a called method. The \f2next\fP command advances execution to the next line in the current stack frame. .LP -.RE .SS Exceptions -.LP -.RS 3 - .LP .LP When an exception occurs for which there isn't a catch statement anywhere in the throwing thread's call stack, the VM normally prints an exception trace and exits. When running under \f3jdb\fP, however, control returns to \f3jdb\fP at the offending throw. You can then use \f3jdb\fP to diagnose the cause of the exception. @@ -278,11 +248,7 @@ The \f2ignore\fP command negates the effect of a previous \f2catch\fP command. .LP \f2NOTE: The \fP\f2ignore\fP command does not cause the debugged VM to ignore specific exceptions, only the debugger. .LP -.RE -.RE .SH "Command Line Options" -.LP - .LP .LP When you use \f3jdb\fP in place of the Java application launcher on the command line, \f3jdb\fP accepts many of the same options as the java command, including \f2\-D\fP, \f2\-classpath\fP, and \f2\-X<option>\fP. @@ -335,7 +301,7 @@ Other options are supported for alternate mechanisms for connecting the debugger .na \f2documentation\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html on these connection alternatives. +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html on these connection alternatives. .LP .SS Options Forwarded to Debuggee Process @@ -357,8 +323,6 @@ Non\-standard target VM option .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), javah(1), javap(1), javadoc(1). diff --git a/jdk/src/linux/doc/man/jhat.1 b/jdk/src/linux/doc/man/jhat.1 index b7412b5ef3d..62c72f68521 100644 --- a/jdk/src/linux/doc/man/jhat.1 +++ b/jdk/src/linux/doc/man/jhat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "02 Jun 2010" +.TH jhat 1 "10 May 2011" .LP .SH "Name" jhat \- Java Heap Analysis Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,18 +38,18 @@ jhat \- Java Heap Analysis Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 options Options, if used, should follow immediately after the command name. -.br .TP 3 heap\-dump\-file Java binary heap dump file to be browsed. For a dump file that contains multiple heap dumps, you may specify which dump in the file by appending "#<number> to the file name, i.e. "foo.hprof#3". -.SH "DESCRIPTION" +.RE + +.LP +.SH "DESCRIPTION" .LP .LP The \f3jhat\fP command parses a java heap dump file and launches a webserver. jhat enables you to browse heap dumps using your favorite webbrowser. jhat supports pre\-designed queries (such as 'show all instances of a known class "Foo"') as well as \f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) \- a SQL\-like query language to query heap dumps. Help on OQL is available from the OQL help page shown by jhat. With the default port, OQL help is available at http://localhost:7000/oqlhelp/ @@ -69,7 +67,7 @@ Use jconsole(1) option to obtain a heap dump via .na \f2HotSpotDiagnosticMXBean\fP @ .fi -http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html at runtime; +http://download.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html at runtime; .TP 2 o Heap dump will be generated when OutOfMemoryError is thrown by specifying \-XX:+HeapDumpOnOutOfMemoryError VM option; @@ -86,7 +84,8 @@ http://java.sun.com/developer/technicalArticles/Programming/HPROF.html. .LP \f3NOTE:\fP This tool is \f3experimental\fP and may \f3not\fP be available in future versions of the JDK. .LP -.SH "OPTIONS" +.SH "OPTIONS" +.LP .RS 3 .TP 3 \-stack false/true @@ -107,21 +106,22 @@ Specify a baseline heap dump. Objects in both heap dumps with the same object ID \-debug int Set debug level for this tool. 0 means no debug output. Set higher values for more verbose modes. .TP 3 -\-version\ +\-version Report version number and exit. .TP 3 -\-h\ +\-h Output help message and exit. .TP 3 -\-help\ +\-help Output help message and exit. .TP 3 -\-J<flag>\ +\-J<flag> Pass <flag> to the Java virtual machine on which jhat is run. For example, \-J\-Xmx512m to use a maximum heap size of 512MB. .RE .LP -.SH "SEE ALSO" +.SH "SEE ALSO" +.LP .RS 3 .TP 2 o @@ -136,5 +136,6 @@ o .fi http://java.sun.com/developer/technicalArticles/Programming/HPROF.html .RE -.RE + +.LP diff --git a/jdk/src/linux/doc/man/jinfo.1 b/jdk/src/linux/doc/man/jinfo.1 index 04133792f13..ea072ffce64 100644 --- a/jdk/src/linux/doc/man/jinfo.1 +++ b/jdk/src/linux/doc/man/jinfo.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "02 Jun 2010" +.TH jinfo 1 "10 May 2011" .LP .SH "Name" jinfo \- Configuration Info .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -42,55 +40,56 @@ jinfo \- Configuration Info .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 option Options are mutually exclusive. Option, if used, should follow immediately after the command name. +.RE + +.LP .RS 3 .TP 3 pid process id for which the configuration info is to be printed. The process must be a Java process. To get a list of Java processes running on a machine, jps(1) may be used. .RE + +.LP .RS 3 .TP 3 executable Java executable from which the core dump was produced. .RE + +.LP .RS 3 .TP 3 core core file for which the configuration info is to be printed. .RE + +.LP .RS 3 .TP 3 remote\-hostname\-or\-IP remote debug server's (see jsadebugd(1)) hostname or IP address. .RE + +.LP .RS 3 .TP 3 server\-id optional unique id, if multiple debug servers are running on the same remote host. .RE -.RE .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jinfo\fP prints Java configuration information for a given Java process or core file or a remote debug server. Configuration information includes Java System properties and Java virtual machine command line flags. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: .br - -.LP -.RS 3 - -.LP jinfo \-J\-d64 \-sysprops pid -.RE +.LP .LP \f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' need to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP .LP @@ -98,8 +97,6 @@ jinfo \-J\-d64 \-sysprops pid \f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 diff --git a/jdk/src/linux/doc/man/jmap.1 b/jdk/src/linux/doc/man/jmap.1 index 6e2469e9faa..f906dedc681 100644 --- a/jdk/src/linux/doc/man/jmap.1 +++ b/jdk/src/linux/doc/man/jmap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "02 Jun 2010" +.TH jmap 1 "10 May 2011" .LP .SH "Name" jmap \- Memory Map .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -42,8 +40,6 @@ jmap \- Memory Map .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -73,14 +69,9 @@ optional unique id, if multiple debug servers are running on the same remote hos .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jmap\fP prints shared object memory maps or heap memory details of a given process or core file or a remote debug server. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: -.LP -.RS 3 - .LP .nf \f3 @@ -89,10 +80,11 @@ jmap \-J\-d64 \-heap pid .fl \fP .fi -.RE .LP -\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +.LP +\f3NOTE: This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +.LP .LP \f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP @@ -100,13 +92,11 @@ jmap \-J\-d64 \-heap pid .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 <no option> -When no option is used \f3jmap\fP prints shared object mappings. For each shared object loaded in the target VM, start address, the size of the mapping, and the full path of the shared object file are printed. This is similar to the Solaris \f3pmap\fP utility. +When no option is used jmap prints shared object mappings. For each shared object loaded in the target VM, start address, the size of the mapping, and the full path of the shared object file are printed. This is similar to the Solaris \f3pmap\fP utility. .br .TP 3 \-dump:[live,]format=b,file=<filename> diff --git a/jdk/src/linux/doc/man/jps.1 b/jdk/src/linux/doc/man/jps.1 index 94af0960db9..1ec15e124ea 100644 --- a/jdk/src/linux/doc/man/jps.1 +++ b/jdk/src/linux/doc/man/jps.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "02 Jun 2010" +.TH jps 1 "10 May 2011" .LP .SH "Name" jps \- Java Virtual Machine Process Status Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,8 +38,6 @@ jps \- Java Virtual Machine Process Status Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -54,8 +50,6 @@ The host identifier of the host for which the process report should be generated .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jps\fP tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. The tool is limited to reporting information on JVMs for which it has the access permissions. @@ -76,8 +70,6 @@ The list of JVMs produced by the \f3jps\fP command may be limited by the permiss \f3NOTE:\fP This utility is unsupported and may not be available in future versions of the JDK. It is not currently available on Windows 98 and Windows ME platforms. .LP .SH "OPTIONS" -.LP - .LP .LP The \f3jps\fP command supports a number of options that modify the output of the command. These options are subject to change or removal in the future. @@ -106,9 +98,6 @@ Pass \f2option\fP to the \f3java\fP launcher called by \f3jps\fP. For example, \ .LP .SS HOST IDENTIFIER -.LP -.RS 3 - .LP .LP The host identifier, or \f2hostid\fP is a string that indicates the target system. The syntax of the \f2hostid\fP string largely corresponds to the syntax of a URI: @@ -140,10 +129,7 @@ The treatment of this parameter depends on the implementation. For the optimized .RE .LP -.RE .SH "OUTPUT FORMAT" -.LP - .LP .LP The output of the \f3jps\fP command follows the following pattern: @@ -168,8 +154,6 @@ Where all output tokens are separated by white space. An \f2arg\fP that includes .LP .SH "EXAMPLES" -.LP - .LP .LP This section provides examples of the \f3jps\fP command. diff --git a/jdk/src/linux/doc/man/jrunscript.1 b/jdk/src/linux/doc/man/jrunscript.1 index 2fdbb9db5dd..7c6548fa794 100644 --- a/jdk/src/linux/doc/man/jrunscript.1 +++ b/jdk/src/linux/doc/man/jrunscript.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "02 Jun 2010" +.TH jrunscript 1 "10 May 2011" .LP .SH "Name" jrunscript \- command line script shell .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -38,8 +36,6 @@ jrunscript \- command line script shell .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -52,8 +48,6 @@ Arguments, if used, should follow immediately after options or command name. .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jrunscript\fP is a command line script shell. jrunscript supports both an interactive (read\-eval\-print) mode and a batch (\-f option) mode of script execution. This is a scripting language independent shell. By default, JavaScript is the language used, but the \-l option can be used to specify a different language. Through Java to scripting language communication, jrunscript supports "exploratory programming" style. @@ -62,8 +56,6 @@ Arguments, if used, should follow immediately after options or command name. \f3NOTE:\fP This tool is \f3experimental\fP and may \f3not\fP be available in future versions of the JDK. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -112,10 +104,8 @@ If [arguments...] are present and if no \f3\-e\fP or \f3\-f\fP option is used, t .LP .SH "EXAMPLES" .LP -\f3Executing inline scripts\fP -.LP -.RS 3 - +.SS +Executing inline scripts .LP .nf \f3 @@ -126,13 +116,10 @@ jrunscript \-e "cat('http://java.sun.com')" .fl \fP .fi -.RE .LP -\f3Use specified language and evaluate given script file\fP -.LP -.RS 3 - +.SS +Use specified language and evaluate given script file .LP .nf \f3 @@ -141,42 +128,42 @@ jrunscript \-l js \-f test.js .fl \fP .fi -.RE .LP -\f3Interactive mode\fP -.LP -.RS 3 - +.SS +Interactive mode .LP .nf \f3 .fl jrunscript .fl -js>print('hello world'); +js> print('Hello World\\n'); .fl -hello world +Hello World .fl -js>34 + 55 +js> 34 + 55 .fl -89 +89.0 .fl -js> thread(function() { print('hello world'); } +js> t = new java.lang.Thread(function() { print('Hello World\\n'); }) .fl -hello world +Thread[Thread\-0,5,main] +.fl +js> t.start() +.fl +js> Hello World +.fl + .fl js> .fl \fP .fi -.RE .LP -\f3Run script file with script arguments\fP -.LP -.RS 3 - +.SS +Run script file with script arguments .LP .nf \f3 @@ -185,13 +172,16 @@ jrunscript test.js arg1 arg2 arg3 .fl \fP .fi -.RE .LP test.js is script file to execute and arg1, arg2 and arg3 are passed to script as script arguments. Script can access these using "arguments" array. .SH "SEE ALSO" .LP .LP -If JavaScript is used, then before evaluating any user defined script, jrunscript initializes certain built\-in functions and objects. These JavaScript built\-ins are documented in jsdocs. +If JavaScript is used, then before evaluating any user defined script, jrunscript initializes certain built\-in functions and objects. These JavaScript built\-ins are documented in +.na +\f2jsdocs\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/tools/share/jsdocs/allclasses\-noframe.html. .LP diff --git a/jdk/src/linux/doc/man/jsadebugd.1 b/jdk/src/linux/doc/man/jsadebugd.1 index 8a94b110eb4..3d77b1d4113 100644 --- a/jdk/src/linux/doc/man/jsadebugd.1 +++ b/jdk/src/linux/doc/man/jsadebugd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "02 Jun 2010" +.TH jsadebugd 1 "10 May 2011" .LP .SH "Name" jsadebugd \- Serviceability Agent Debug Daemon .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,36 +38,17 @@ jsadebugd \- Serviceability Agent Debug Daemon .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 pid process id of the process to which the debug server should attach. The process must be a Java process. To get a list of Java processes running on a machine, jps(1) may be used. At most one instance of the debug server may be attached to a single process. -.RE - -.LP -.RS 3 .TP 3 executable -.RE - -.LP -.RS 3 -.TP 3 Java executable from which the core dump was produced -.RE - -.LP -.RS 3 .TP 3 core Core file to which the debug server should attach. -.RE - -.LP -.RS 3 .TP 3 server\-id Optional unique id, needed if multiple debug servers are started on the same machine. This ID must be used by remote clients to identify the particular debug server to attach. Within a single machine, this ID must be unique. @@ -77,18 +56,13 @@ Optional unique id, needed if multiple debug servers are started on the same mac .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jsadebugd\fP attaches to a Java process or core file and acts as a debug server. Remote clients such as jstack(1), jmap(1), and jinfo(1) can attach to the server using Java Remote Method Invocation (RMI). Before starting \f2jsadebugd\fP, .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi must be started with: -.LP -.RS 3 - +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi must be started with: .LP .nf \f3 @@ -97,17 +71,16 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi must be started .fl \fP .fi -.RE .LP .LP where \f2$JAVA_HOME\fP is the JDK installation directory. If rmiregistry was not started, jsadebugd will start an rmiregistry in a standard (1099) port internally. Debug server may be stopped by sending SIGINT (pressing Ctrl\-C) to it. .LP .LP -\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +\f3NOTE\fP \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \f2PATH\fP environment variable should contain the location of \f2jvm.dll\fP used by the target process or the location from which the Crash Dump file was produced. .LP .LP -\f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +For example, \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "SEE ALSO" .LP @@ -129,7 +102,7 @@ o .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi .RE .LP diff --git a/jdk/src/linux/doc/man/jstack.1 b/jdk/src/linux/doc/man/jstack.1 index 34fdded3baf..e70b10ed5e7 100644 --- a/jdk/src/linux/doc/man/jstack.1 +++ b/jdk/src/linux/doc/man/jstack.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "02 Jun 2010" +.TH jstack 1 "10 May 2011" .LP .SH "Name" @@ -28,8 +28,6 @@ jstack \- Stack Trace .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -44,8 +42,6 @@ jstack \- Stack Trace .LP .SH "PARAMETERS" -.LP - .LP .LP Options are mutually exclusive. Option, if used, should follow immediately after the command name. See OPTIONS. @@ -77,16 +73,11 @@ optional unique id, if multiple debug servers are running on the same remote hos .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jstack\fP prints Java stack traces of Java threads for a given Java process or core file or a remote debug server. For each Java frame, the full class name, method name, 'bci' (byte code index) and line number, if available, are printed. With the \-m option, jstack prints both Java and native frames of all threads along with the 'pc' (program counter). For each native frame, the closest native symbol to 'pc', if available, is printed. C++ mangled names are not demangled. To demangle C++ names, the output of this command may be piped to \f3c++filt\fP. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: .br -.LP -.RS 3 - .LP .nf \f3 @@ -95,7 +86,6 @@ jstack \-J\-d64 \-m pid .fl \fP .fi -.RE .LP .LP @@ -105,8 +95,6 @@ jstack \-J\-d64 \-m pid For example, \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -118,7 +106,7 @@ Long listing. Prints additional information about locks such as list of owned ja .na \f2ownable synchronizers\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html. +http://download.oracle.com/javase/7/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html. .TP 3 \-m prints mixed mode (both Java and native C/C++ frames) stack trace. @@ -153,8 +141,6 @@ jsadebugd(1) .LP .SH "KNOWN BUGS" -.LP - .LP .LP Mixed mode stack trace, the \-m option, does not work with the remote debug server. diff --git a/jdk/src/linux/doc/man/jstat.1 b/jdk/src/linux/doc/man/jstat.1 index 1ecee640ac4..c83d410bef0 100644 --- a/jdk/src/linux/doc/man/jstat.1 +++ b/jdk/src/linux/doc/man/jstat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "02 Jun 2010" +.TH jstat 1 "10 May 2011" .LP .SH "Name" jstat \- Java Virtual Machine Statistics Monitoring Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -38,8 +36,6 @@ jstat \- Java Virtual Machine Statistics Monitoring Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -60,16 +56,14 @@ Virtual machine identifier, a string indicating the target Java virtual machine The syntax of the vmid string largely corresponds to the syntax of a URI. The \f2vmid\fP can vary from a simple integer representing a local JVM to a more complex construction specifying a communications protocol, port number, and other implementation\-specific values. See Virtual Machine Identifier for details. .TP 3 interval[s|ms] -Sampling interval in the specified units, seconds (s) or milliseconds (ms). Default units are milliseconds.\ Must be a positive integer.\ If specified, \f3jstat\fP will produce its output at each interval. +Sampling interval in the specified units, seconds (s) or milliseconds (ms). Default units are milliseconds. Must be a positive integer. If specified, \f3jstat\fP will produce its output at each interval. .TP 3 count -Number of samples to display. Default value is infinity; that is, \f3jstat\fP displays statistics until the target JVM terminates or the \f3jstat\fP command is terminated.\ Must be a positive integer. +Number of samples to display. Default value is infinity; that is, \f3jstat\fP displays statistics until the target JVM terminates or the \f3jstat\fP command is terminated. Must be a positive integer. .RE .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jstat\fP tool displays performance statistics for an instrumented HotSpot Java virtual machine (JVM). The target JVM is identified by its virtual machine identifier, or \f2vmid\fP option described below. @@ -81,9 +75,6 @@ The \f3jstat\fP tool displays performance statistics for an instrumented HotSpot .LP .SS VIRTUAL MACHINE IDENTIFIER -.LP -.RS 3 - .LP .LP The syntax of the \f2vmid\fP string largely corresponds to the syntax of a URI: @@ -115,10 +106,7 @@ The treatment of this parameter depends on implementation. For the optimized loc .RE .LP -.RE .SH "OPTIONS" -.LP - .LP .LP The \f3jstat\fP command supports two types of options, general options and output options. General options cause \f3jstat\fP to display simple usage and version information. Output options determine the content and format of the statistical output. @@ -150,14 +138,11 @@ Display list of statistics options. See the Output Options section below. .SS OUTPUT OPTIONS .LP -.RS 3 - +.LP +If you do not specify a general option, then you can specify output options. Output options determine the content and format of \f3jstat\fP's output, and consist of a single \f2statOption\fP, plus any of the other output options (\-h, \-t, and \-J). The \f2statOption\fP must come first. .LP .LP -If you do not specify a general option, then you can specify output options. Output options determine the content and format of \f3jstat\fP's output, and consist of a single \f2statOption\fP, plus any of the other output options (\-h, \-t, and \-J).\ The \f2statOption\fP must come first. -.LP -.LP -Output is formatted as a table, with columns are separated by spaces. A header row with titles describes the columns.\ Use the \f3\-h\fP option to set the frequency at which the header is displayed.\ Column header names are generally consistent between the different options. In general, if two options provide a column with the same name, then the data source for the two columns are the same. +Output is formatted as a table, with columns are separated by spaces. A header row with titles describes the columns. Use the \f3\-h\fP option to set the frequency at which the header is displayed. Column header names are generally consistent between the different options. In general, if two options provide a column with the same name, then the data source for the two columns are the same. .LP .LP Use the \f3\-t\fP option to display a time stamp column, labeled \f2Timestamp\fP as the first column of output. The \f2Timestamp\fP column contains the elapsed time, in seconds, since startup of the target JVM. The resolution of the time stamp is dependent on various factors and is subject to variation due to delayed thread scheduling on heavily loaded systems. @@ -171,11 +156,10 @@ Use the \f2interval\fP and \f2count\fP parameters to determine how frequently an .RS 3 .TP 3 \-statOption -Determines the statistics information that \f3jstat\fP displays. The following table lists the available options.\ Use the \f3\-options\fP general option to display the list of options for a particular platform installation. +Determines the statistics information that \f3jstat\fP displays. The following table lists the available options. Use the \f3\-options\fP general option to display the list of options for a particular platform installation. .br .br .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -457,7 +441,7 @@ HotSpot compilation method statistics. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 230 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 215 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -683,7 +667,6 @@ HotSpot compilation method statistics. .rm j+ .rm k+ .rm l+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-52 .TP 3 \-h n @@ -697,12 +680,8 @@ Pass \f2javaOption\fP to the \f3java\fP application launcher. For example, \f3\- .RE .LP -.RE .SS STATOPTIONS AND OUTPUT -.LP -.RS 3 - .LP .LP The following tables summarize the columns that \f3jstat\fP outputs for each \f2statOption\fP. @@ -713,7 +692,6 @@ The following tables summarize the columns that \f3jstat\fP outputs for each \f2 \-class Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -825,7 +803,7 @@ Time spent performing class load and unload operations. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 280 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 261 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -910,7 +888,6 @@ Time spent performing class load and unload operations. .rm a+ .rm b+ .rm c+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-21 .LP @@ -918,7 +895,6 @@ Time spent performing class load and unload operations. \-compiler Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -1082,7 +1058,7 @@ Class name and method for the last failed compilation. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 316 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 297 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1210,7 +1186,6 @@ Class name and method for the last failed compilation. .rm d+ .rm e+ .rm f+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-29 .LP @@ -1218,7 +1193,6 @@ Class name and method for the last failed compilation. \-gc Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -1546,7 +1520,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 386 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 367 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1814,7 +1788,6 @@ Total garbage collection time. .rm l+ .rm m+ .rm n+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-63 .LP @@ -1822,7 +1795,6 @@ Total garbage collection time. \-gccapacity Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -2170,7 +2142,7 @@ Number of Young generation GC Events. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 460 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 441 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2455,7 +2427,6 @@ Number of Young generation GC Events. .rm m+ .rm n+ .rm o+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-67 .LP @@ -2466,7 +2437,6 @@ Number of Young generation GC Events. This option displays the same summary of garbage collection statistics as the \f3\-gcutil\fP option, but includes the causes of the last garbage collection event and (if applicable) the current garbage collection event. In addition to the columns listed for \f3\-gcutil\fP, this option adds the following columns: .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -2550,7 +2520,7 @@ Cause of current Garbage Collection. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 483 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 464 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2610,7 +2580,6 @@ Cause of current Garbage Collection. .35 .rm a+ .rm b+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-13 .LP @@ -2618,7 +2587,6 @@ Cause of current Garbage Collection. \-gcnew Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -2866,7 +2834,7 @@ Young generation garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 537 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 518 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3066,7 +3034,6 @@ Young generation garbage collection time. .rm h+ .rm i+ .rm j+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-47 .LP @@ -3074,7 +3041,6 @@ Young generation garbage collection time. \-gcnewcapacity Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -3094,15 +3060,14 @@ Young generation garbage collection time. .rm 80 81 .nr 34 \n(.lu .eo -.am 80 +.am 81 .br .di a+ .35 .ft \n(.f .ll \n(34u*1u/3u -.if \n(.l<\n(80 .ll \n(80u +.if \n(.l<\n(81 .ll \n(81u .in 0 -NGCMN\ \ \ \ \ \ \ \ \ T}~T{ Minimum new generation capacity (KB). .br .di @@ -3262,9 +3227,11 @@ Number of young generation GC events. .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f3Column\fP .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGCMX \ \ \ +.nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGC \ \ \ +.nr 38 \wNGCMX +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wNGC .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0CMX .if \n(80<\n(38 .nr 80 \n(38 @@ -3284,8 +3251,6 @@ Number of young generation GC events. .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 .nr 38 \w\f3Description\fP .if \n(81<\n(38 .nr 81 \n(38 @@ -3293,6 +3258,8 @@ Number of young generation GC events. .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(b- .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(c- @@ -3321,7 +3288,7 @@ Number of young generation GC events. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 593 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 572 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3348,11 +3315,11 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u' +\&\h'|\n(40u'NGCMN\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v -.nr 37 \n(40u +.nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u @@ -3364,7 +3331,7 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGCMX \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGCMX\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3380,7 +3347,7 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGC \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGC\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3521,15 +3488,13 @@ Number of young generation GC events. .rm h+ .rm i+ .rm j+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-49 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-47 .LP .SS \-gcold Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -3717,7 +3682,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 635 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 614 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3866,7 +3831,6 @@ Total garbage collection time. .rm e+ .rm f+ .rm g+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-35 .LP @@ -3874,7 +3838,6 @@ Total garbage collection time. \-gcoldcapacity Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -4062,7 +4025,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 677 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 656 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4211,7 +4174,6 @@ Total garbage collection time. .rm e+ .rm f+ .rm g+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-35 .LP @@ -4219,7 +4181,6 @@ Total garbage collection time. \-gcpermcapacity Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -4407,7 +4368,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 719 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 698 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4556,7 +4517,6 @@ Total garbage collection time. .rm e+ .rm f+ .rm g+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-35 .LP @@ -4564,7 +4524,6 @@ Total garbage collection time. \-gcutil Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -4792,7 +4751,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 769 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 748 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4975,7 +4934,6 @@ Total garbage collection time. .rm g+ .rm h+ .rm i+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-43 .LP @@ -4983,7 +4941,6 @@ Total garbage collection time. \-printcompilation Option .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -5091,7 +5048,7 @@ Class name and method name identifying the compiled method. Class name uses "/" .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 795 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 774 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -5172,14 +5129,10 @@ Class name and method name identifying the compiled method. Class name uses "/" .rm a+ .rm b+ .rm c+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .LP -.SS - -.LP -.SH "" +.SH "EXAMPLES" .LP .LP This section presents some examples of monitoring a local JVM with a \f2lvmid\fP of 21891. @@ -5355,7 +5308,6 @@ This example attaches to \f2lvmid\fP 40496 on the system named \f2remote.domain\ .LP The \f2lvmid\fP is combined with the name of the remote host to construct a \f2vmid\fP of \f240496@remote.domain\fP. This \f2vmid\fP results in the use of the \f3rmi\fP protocol to communicate to the default \f3jstatd\fP server on the remote host. The \f3jstatd\fP server is located using the \f3rmiregistry\fP on \f2remote.domain\fP that is bound to the default \f3rmiregistry\fP port (port 1099). .LP -.RE .SH "SEE ALSO" .LP .RS 3 diff --git a/jdk/src/linux/doc/man/jstatd.1 b/jdk/src/linux/doc/man/jstatd.1 index 79b8b392fd6..fd9b0f7b1e2 100644 --- a/jdk/src/linux/doc/man/jstatd.1 +++ b/jdk/src/linux/doc/man/jstatd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "02 Jun 2010" +.TH jstatd 1 "10 May 2011" .LP .SH "Name" jstatd \- Virtual Machine jstat Daemon .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -41,8 +39,6 @@ jstatd [ \fP\f4options\fP\f3 ]\fP .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -52,8 +48,6 @@ Command\-line options. The options may be in any order. If there are redundant o .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jstatd\fP tool is an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines (JVMs) and provides a interface to allow remote monitoring tools to attach to JVMs running on the local host. @@ -65,8 +59,6 @@ The \f3jstatd\fP server requires the presence of an RMI registry on the local ho \f3NOTE:\fP This utility is unsupported and may or may not be available in future versions of the JDK. It is not currently available on the Windows 98 and Windows ME platforms. .LP .SH "OPTIONS" -.LP - .LP .LP The \f3jstatd\fP command supports the following options: @@ -88,8 +80,6 @@ Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, .LP .SH "SECURITY" -.LP - .LP .LP The \f3jstatd\fP server can only monitor JVMs for which it has the appropriate native access permissions. Therefor the \f3jstatd\fP process must be running with the same user credentials as the target JVMs. Some user credentials, such as the \f2root\fP user in UNIX(TM) based systems, have permission to access the instrumentation exported by any JVM on the system. A \f3jstatd\fP process running with such credentials can monitor any JVM on the system, but introduces additional security concerns. @@ -102,7 +92,7 @@ The \f3jstatd\fP server installs an instance of RMISecurityPolicy if no other se .na \f2Policy File Syntax\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html. .LP .LP The following policy file will allow the \f3jstatd\fP server to run without any security exceptions. This policy is less liberal then granting all permissions to all codebases, but is more liberal than a policy that grants the minimal permissions to run the \f3jstatd\fP server. @@ -144,15 +134,11 @@ jstatd \-J\-Djava.security.policy=jstatd.all.policy\fP For sites with more restrictive security practices, it is possible to use a custom policy file to limit access to specific trusted hosts or networks, though such techniques are subject to IP addreess spoofing attacks. If your security concerns cannot be addressed with a customized policy file, then the safest action is to not run the \f3jstatd\fP server and use the \f3jstat\fP and \f3jps\fP tools locally. .LP .SH "REMOTE INTERFACE" -.LP - .LP .LP The interface exported by the \f3jstatd\fP process is proprietary and is guaranteed to change. Users and developers are discouraged from writing to this interface. .LP .SH "EXAMPLES" -.LP - .LP .LP Here are some examples of starting \f3jstatd\fP. Note that the \f3jstatd\fP scripts automatically start the server in the background. @@ -264,7 +250,7 @@ o .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- the Java Remote Object Registry +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi \- the Java Remote Object Registry .RE .LP diff --git a/jdk/src/linux/doc/man/jvisualvm.1 b/jdk/src/linux/doc/man/jvisualvm.1 new file mode 100644 index 00000000000..eae03edd804 --- /dev/null +++ b/jdk/src/linux/doc/man/jvisualvm.1 @@ -0,0 +1,104 @@ +." Copyright (c) 2008, 2011, 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. +." +.TH jvisualvm 1 "10 May 2011" + +.LP +.SH "Name" +\f2jvisualvm\fP \- Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool +.LP +.SH "SYNOPSIS" +.LP +.nf +\f3 +.fl + \fP\f3jvisualvm\fP [ \f2options\fP ] +.fl +.fi + +.LP +.SH "PARAMETERS" +.LP +.LP +Options, if used, should follow immediately after the command name. Options may be in any order. For a discussion of parameters that apply to a specific option, see OPTIONS below. +.LP +.SH "DESCRIPTION" +.LP +.LP +Java VisualVM is an intuitive graphical user interface that provides detailed information about Java technology\-based applications (Java applications) while they are running on a given Java Virtual Machine (JVM(*)). The name Java VisualVM comes from the fact that Java VisualVM provides information about the JVM software \f2visually\fP. +.LP +.LP +Java VisualVM combines several monitoring, troubleshooting, and profiling utilities into a single tool. For example, most of the functionality offered by the standalone tools \f2jmap\fP, \f2jinfo\fP, \f2jstat\fP and \f2jstack\fP have been integrated into Java VisualVM. Other functionalities, such as some of those offered by the JConsole tool, can be added as optional plug\-ins. +.LP +.SH "OPTIONS" +.LP +.LP +The following option is possible when you launch Java VisualVM. +.LP +.RS 3 +.TP 3 +\-J<jvm_option>\ +Pass this \f2<jvm_option>\fP to the JVM software. +.RE + +.LP +.SH "USAGE" +.LP +.LP +Java VisualVM is useful to Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, perform and monitor garbage collection, and perform lightweight memory and CPU profiling. Plug\-ins also exist that expand the functionality of Java VisualVM. For example, most of the functionality of the JConsole tool is available via the MBeans Tab and JConsole Plug\-in Wrapper plug\-ins. You can choose from a catalog of standard Java VisualVM plug\-ins by selecting 'Tools' | 'Plugins' in the Java VisualVM menus. +.LP +.LP +Start Java VisualVM with the following command: +.LP +.nf +\f3 +.fl +% jvisualvm \fP\f4<options>\fP\f3 +.fl +\fP +.fi + +.LP +.SH "SEE ALSO" +.LP +.LP +For more details about Java VisualVM see the following pages. +.LP +.RS 3 +.TP 2 +o +.na +\f2Java VisualVM developers' site\fP @ +.fi +http://visualvm.java.net +.TP 2 +o +.na +\f2Java VisualVM in Java SE platform documentation\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/visualvm/index.html +.RE + +.LP +.LP +\f2(* The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java platform.)\fP +.LP + diff --git a/jdk/src/linux/doc/man/keytool.1 b/jdk/src/linux/doc/man/keytool.1 index 1b1cd8b0bc7..fbb3da80708 100644 --- a/jdk/src/linux/doc/man/keytool.1 +++ b/jdk/src/linux/doc/man/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2011 keytool tool, 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 @@ -19,20 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "02 Jun 2010" +.TH keytool 1 "10 May 2011" .LP .SH "Name" keytool \- Key and Certificate Management Tool .LP -.RS 3 - .LP Manages a keystore (database) of cryptographic keys, X.509 certificate chains, and trusted certificates. -.RE -.SH "SYNOPSIS" .LP - +.SH "SYNOPSIS" .LP .nf \f3 @@ -46,8 +42,6 @@ Manages a keystore (database) of cryptographic keys, X.509 certificate chains, a The keytool command interface has changed in Java SE 6. See the Changes Section for a detailed description. Note that previously defined commands are still supported. .LP .SH "DESCRIPTION" -.LP - .LP \f3keytool\fP is a key and certificate management utility. It allows users to administer their own public/private key pairs and associated certificates for use in self\-authentication (where the user authenticates himself/herself to other users/services) or data integrity and authentication services, using digital signatures. It also allows users to cache the public keys (in the form of certificates) of their communicating peers. .LP @@ -57,14 +51,12 @@ A \f2certificate\fP is a digitally signed statement from one entity (person, com \f3keytool\fP also enables users to administer secret keys used in symmetric encryption/decryption (e.g. DES). .LP .LP -\f3keytool\fP stores the keys and certificates in a \f2keystore\fP. +\f3keytool\fP stores the keys and certificates in a \f2keystore\fP. .LP .SH "COMMAND AND OPTION NOTES" .LP - .LP -.LP -The various commands and their options are listed and described below . Note: +The various commands and their options are listed and described below. Note: .LP .RS 3 .TP 2 @@ -114,6 +106,7 @@ The \f2\-help\fP command is the default. Thus, the command line .fl \fP .fi +.LP is equivalent to .nf \f3 @@ -128,10 +121,9 @@ is equivalent to .SS Option Defaults .LP -.RS 3 - .LP -Below are the defaults for various option values. +Below are the defaults for various option values. +.LP .nf \f3 .fl @@ -152,12 +144,16 @@ Below are the defaults for various option values. 2048 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "RSA") .fl 1024 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "DSA") +.fl + 256 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "EC") .fl 56 (when using \fP\f3\-genseckey\fP\f3 and \-keyalg is "DES") .fl 168 (when using \fP\f3\-genseckey\fP\f3 and \-keyalg is "DESede") .fl +.fl + .fl \-validity 90 .fl @@ -169,7 +165,7 @@ Below are the defaults for various option values. .fl \-storetype the value of the "keystore.type" property in the security properties file, .fl - which is returned by the static \fP\f4getDefaultType\fP\f3 method in + which is returned by the static \fP\f4getDefaultType\fP\f3 method in .fl \fP\f4java.security.KeyStore\fP\f3 .fl @@ -180,26 +176,40 @@ Below are the defaults for various option values. .fl \-protected false -.fl - .fl \fP .fi .LP -In generating a public/private key pair, the signature algorithm (\f2\-sigalg\fP option) is derived from the algorithm of the underlying private key: If the underlying private key is of type "DSA", the \f2\-sigalg\fP option defaults to "SHA1withDSA", and if the underlying private key is of type "RSA", \f2\-sigalg\fP defaults to "SHA256withRSA". Please consult the +.LP +In generating a public/private key pair, the signature algorithm (\f2\-sigalg\fP option) is derived from the algorithm of the underlying private key: +.LP +.RS 3 +.TP 2 +o +If the underlying private key is of type "DSA", the \f2\-sigalg\fP option defaults to "SHA1withDSA" +.TP 2 +o +If the underlying private key is of type "RSA", the \f2\-sigalg\fP option defaults to "SHA256withRSA". +.TP 2 +o +If the underlying private key is of type "EC", the \f2\-sigalg\fP option defaults to "SHA256withECDSA". +.RE + +.LP +.LP +Please consult the .na \f2Java Cryptography Architecture API Specification & Reference\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA for a full list of \f2\-keyalg\fP and \f2\-sigalg\fP you can choose from. -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA for a full list of \f2\-keyalg\fP and \f2\-sigalg\fP you can choose from. +.LP .SS Common Options .LP -.RS 3 - .LP -The \f2\-v\fP option can appear for all commands except \f2\-help\fP. If it appears, it signifies "verbose" mode; more information will be provided in the output. +The \f2\-v\fP option can appear for all commands except \f2\-help\fP. If it appears, it signifies "verbose" mode; more information will be provided in the output. +.LP .LP There is also a \f2\-J\fP\f2javaoption\fP option that may appear for any command. If it appears, the specified \f2javaoption\fP string is passed through directly to the Java interpreter. This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. .LP @@ -209,46 +219,65 @@ These options may appear for all commands operating on a keystore: .RS 3 .TP 3 \-storetype storetype -This qualifier specifies the type of keystore to be instantiated. +.LP +This qualifier specifies the type of keystore to be instantiated. .TP 3 \-keystore keystore +.LP The keystore location. .LP If the JKS storetype is used and a keystore file does not yet exist, then certain \f3keytool\fP commands may result in a new keystore file being created. For example, if \f2keytool \-genkeypair\fP is invoked and the \f2\-keystore\fP option is not specified, the default keystore file named \f2.keystore\fP in the user's home directory will be created if it does not already exist. Similarly, if the \f2\-keystore \fP\f2ks_file\fP option is specified but \f2ks_file\fP does not exist, then it will be created .LP Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based (for example, if it resides on a hardware token device). .TP 3 -\-storepass storepass +\-storepass[:env|:file] argument +.LP The password which is used to protect the integrity of the keystore. .LP -\f2storepass\fP must be at least 6 characters long. It must be provided to all commands that access the keystore contents. For such commands, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for it. +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP, which must be at least 6 characters long. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +.LP +\f3Note\fP: All other options that require passwords, such as \f2\-keypass\fP, \f2\-srckeypass\fP, \f2\-destkeypass\fP \f2\-srcstorepass\fP, and \f2\-deststorepass\fP, accept the \f2env\fP and \f2file\fP modifiers. (Remember to separate the password option and the modifier with a colon, (\f2:\fP).) +.LP +The password must be provided to all commands that access the keystore contents. For such commands, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for it. .LP When retrieving information from the keystore, the password is optional; if no password is given, the integrity of the retrieved information cannot be checked and a warning is displayed. .TP 3 \-providerName provider_name -Used to identify a cryptographic service provider's name when listed in the security properties file. +.LP +Used to identify a cryptographic service provider's name when listed in the security properties file. .TP 3 \-providerClass provider_class_name -Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file. +.LP +Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file. .TP 3 \-providerArg provider_arg -Used in conjunction with \f2\-providerClass\fP. Represents an optional string input argument for the constructor of \f2provider_class_name\fP. +.LP +Used in conjunction with \f2\-providerClass\fP. Represents an optional string input argument for the constructor of \f2provider_class_name\fP. .TP 3 \-protected +.LP Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader. .LP Note: Since there are two keystores involved in \f2\-importkeystore\fP command, two options, namely, \f2\-srcprotected\fP and \f2\-destprotected\fP are provided for the source keystore and the destination keystore respectively. .TP 3 \-ext {name{:critical}{=value}} -Denotes an X.509 certificate extension. The option can be used in \f2\-genkeypair\fP and \f2\-gencert\fP to embed extensions into the certificate generated, or in \f2\-certreq\fP to show what extensions are requested in the certificate request. The option can appear multiple times. name can be a supported extension name (see below) or an arbitrary OID number. value, if provided, denotes the parameter for the extension; if omitted, denotes the default value (if defined) of the extension or the extension requires no parameter. The \f2":critical"\fP modifier, if provided, means the extension's isCritical attribute is true; otherwise, false. -.RS 3 +.LP +Denotes an X.509 certificate extension. The option can be used in \-genkeypair and \-gencert to embed extensions into the certificate generated, or in \f2\-certreq\fP to show what extensions are requested in the certificate request. The option can appear multiple times. name can be a supported extension name (see below) or an arbitrary OID number. value, if provided, denotes the parameter for the extension; if omitted, denotes the default value (if defined) of the extension or the extension requires no parameter. The \f2:critical\fP modifier, if provided, means the extension's isCritical attribute is true; otherwise, false. You may use \f2:c\fP in place of \f2:critical\fP. +.RE .LP .LP Currently keytool supports these named extensions (case\-insensitive): .LP .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -478,7 +507,7 @@ same as SubjectInfoAccess. method can be "ocsp","caIssuers" or any OID. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 289 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 319 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -649,7 +678,6 @@ same as SubjectInfoAccess. method can be "ocsp","caIssuers" or any OID. .rm h+ .rm i+ .rm j+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-38 .LP @@ -657,7 +685,7 @@ same as SubjectInfoAccess. method can be "ocsp","caIssuers" or any OID. For name as OID, value is the HEX dumped DER encoding of the extnValue for the extension excluding the OCTET STRING type and length bytes. Any extra character other than standard HEX numbers (0\-9, a\-f, A\-F) are ignored in the HEX string. Therefore, both \f2"01:02:03:04"\fP and \f2"01020304"\fP are accepted as identical values. If there's no value, the extension has an empty value field then. .LP .LP -A special name \f2"honored"\fP, used in \-gencert only, denotes how the extensions included in the certificate request should be honored. The value for this name is a comma\-seperated list of \f2"all"\fP (all requested extensions are honored), \f2"name{:[critical|non\-critical]}"\fP (the named extension is honored, but using a different isCritical attribute) and \f2"\-name"\fP (used with all, denotes an exception). Requested extensions are not honored by default. +A special name \f2'honored'\fP, used in \f2\-gencert\fP only, denotes how the extensions included in the certificate request should be honored. The value for this name is a comma separated list of \f2"all"\fP (all requested extensions are honored), \f2"name{:[critical|non\-critical]}"\fP (the named extension is honored, but using a different isCritical attribute) and \f2"\-name"\fP (used with all, denotes an exception). Requested extensions are not honored by default. .LP .LP If, besides the \-ext honored option, another named or OID \-ext option is provided, this extension will be added to those already honored. However, if this name (or OID) also appears in the honored value, its value and criticality overrides the one in the request. @@ -668,32 +696,61 @@ The subjectKeyIdentifier extension is always created. For non self\-signed certi .LP \f3Note:\fP Users should be aware that some combinations of extensions (and other certificate fields) may not conform to the Internet standard. See Warning Regarding Certificate Conformance for details. .LP -.RE -.RE -.RE .SH "COMMANDS" -.LP - .LP .SS Creating or Adding Data to the Keystore -.LP -.RS 3 - .LP .RS 3 .TP 3 -\-gencert {\-infile infile} {\-outfile outfile} {\-dname dname} {\-ext ext}* {\-rfc} {\-alias alias} {\-sigalg sigalg} {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] [\-keypass keypass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-gencert {\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -Generates a certificate as a response to a certificate request file (which can be created by the \f2keytool \-certreq\fP command). The command reads the request from infile (if omitted, from the standard input), signs it using alias's private key, and output the X.509 certificate into outfile (if omitted, to the standard output). If \f2\-rfc\fP is specified, output format is BASE64\-encoded PEM; otherwise, a binary DER is created. +Generates a certificate as a response to a certificate request file (which can be created by the \f2keytool \-certreq\fP command). The command reads the request from \f2infile\fP (if omitted, from the standard input), signs it using alias's private key, and output the X.509 certificate into \f2outfile\fP (if omitted, to the standard output). If \f2\-rfc\fP is specified, output format is BASE64\-encoded PEM; otherwise, a binary DER is created. .LP -\f2sigalg\fP specifies the algorithm that should be used to sign the certificate. valDays tells the number of days for which the certificate should be considered valid. +\f2sigalg\fP specifies the algorithm that should be used to sign the certificate. \f2startdate\fP is the start time/date that the certificate is valid. \f2valDays\fP tells the number of days for which the certificate should be considered valid. .LP If \f2dname\fP is provided, it's used as the subject of the generated certificate. Otherwise, the one from the certificate request is used. .LP -\f2ext\fP shows what X.509 extensions will be embedded in the certificate. Read Common Options for the grammar of \f2\-ext\fP. +\f2ext\fP shows what X.509 extensions will be embedded in the certificate. Read Common Options for the grammar of \f2\-ext\fP. +.LP +The \f2\-gencert\fP command enables you to create certificate chains. The following example creates a certificate, \f2e1\fP, that contains three certificates in its certificate chain. +.LP +The following commands creates four key pairs named \f2ca\fP, \f2ca1\fP, \f2ca2\fP, and \f2e1\fP: +.nf +\f3 +.fl +keytool \-alias ca \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca1 \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca2 \-dname CN=CA \-genkeypair +.fl +keytool \-alias e1 \-dname CN=E1 \-genkeypair +.fl +\fP +.fi +.LP +The following two commands create a chain of signed certificates; \f2ca\fP signs ca1 and \f2ca1 signs ca2\fP, all of which are self\-issued: +.nf +\f3 +.fl +keytool \-alias ca1 \-certreq | keytool \-alias ca \-gencert \-ext san=dns:ca1 | keytool \-alias ca1 \-importcert +.fl +keytool \-alias ca2 \-certreq | $KT \-alias ca1 \-gencert \-ext san=dns:ca2 | $KT \-alias ca2 \-importcert +.fl +\fP +.fi +.LP +The following command creates the certificate \f2e1\fP and stores it in the file \f2e1.cert\fP, which is signed by \f2ca2\fP. As a result, \f2e1\fP should contain \f2ca\fP, \f2ca1\fP, and \f2ca2\fP in its certificate chain: +.nf +\f3 +.fl +keytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1.cert +.fl +\fP +.fi .TP 3 -\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP Generates a key pair (a public key and associated private key). Wraps the public key into an X.509 v3 self\-signed certificate, which is stored as a single\-element certificate chain. This certificate chain and the private key are stored in a new keystore entry identified by \f2alias\fP. .LP @@ -704,30 +761,18 @@ Generates a key pair (a public key and associated private key). Wraps the public \f2keypass\fP is a password used to protect the private key of the generated key pair. If no password is provided, the user is prompted for it. If you press RETURN at the prompt, the key password is set to the same password as that used for the keystore. \f2keypass\fP must be at least 6 characters long. .LP \f2startdate\fP specifies the issue time of the certificate, also known as the "Not Before" value of the X.509 certificate's Validity field. -.RS 3 - -.LP -.LP -The option value can be set in one of these two forms: .LP +The option value can be set in one of these two forms: .RS 3 .TP 3 1. -.LP -([+\-]\f2nnn\fP[ymdHMS])+ +([+\-]\f2nnn\fP[ymdHMS])+ .TP 3 2. -.LP -[yyyy/mm/dd] [HH:MM:SS] +[yyyy/mm/dd] [HH:MM:SS] .RE - -.LP -.LP -With the first form, the issue time is shifted by the specified value from the current time. The value is a concatenation of a sequence of sub values. Inside each sub value, the plus sign ("+") means shifting forward, and the minus sign ("\-") means shifting backward. The time to be shifted is \f2nnn\fP units of years, months, days, hours, minutes, or seconds (denoted by a single character of "y", "m", "d", "H", "M", or "S" respectively). The exact value of the issue time is calculated using the \f2java.util.GregorianCalendar.add(int field, int amount)\fP method on each sub value, from left to right. For example, by specifying \f2"\-startdate \-1y+1m\-1d"\fP, the issue time will be: -.LP -.RS 3 - .LP +With the first form, the issue time is shifted by the specified value from the current time. The value is a concatenation of a sequence of sub values. Inside each sub value, the plus sign ("+") means shifting forward, and the minus sign ("\-") means shifting backward. The time to be shifted is \f2nnn\fP units of years, months, days, hours, minutes, or seconds (denoted by a single character of "y", "m", "d", "H", "M", or "S" respectively). The exact value of the issue time is calculated using the \f2java.util.GregorianCalendar.add(int field, int amount)\fP method on each sub value, from left to right. For example, by specifying \f2"\-startdate \-1y+1m\-1d"\fP, the issue time will be: .nf \f3 .fl @@ -743,16 +788,10 @@ With the first form, the issue time is shifted by the specified value from the c .fl \fP .fi -.RE - .LP +With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local time zone). The user may provide only one part, which means the other part is the same as the current date (or time). User must provide the exact number of digits as shown in the format definition (padding with 0 if shorter). When both the date and time are provided, there is one (and only one) space character between the two parts. The hour should always be provided in 24 hour format. .LP -With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local timezone). The user may provide only one part, which means the other part is the same as the current date (or time). User must provide the exact number of digits as shown in the format definition (padding with 0 if shorter). When both the date and time are provided, there is one (and only one) space character between the two parts. The hour should always be provided in 24 hour format. -.LP -.LP -When the option is not provided, the start date is the current time. The option can be provided at most once. -.LP -.RE +When the option is not provided, the start date is the current time. The option can be provided at most once. .LP \f2valDays\fP specifies the number of days (starting at the date specified by \f2\-startdate\fP, or the current date if \f2\-startdate\fP is not specified) for which the certificate should be considered valid. .LP @@ -790,25 +829,17 @@ Which type of import is intended is indicated by the value of the \f2\-alias\fP \f3If the alias points to a key entry\fP, then \f3keytool\fP assumes you are importing a certificate reply. .RE \f3Importing a New Trusted Certificate\fP -.RS 3 .LP -Before adding the certificate to the keystore, \f3keytool\fP tries to verify it by attempting to construct a chain of trust from that certificate to a self\-signed certificate (belonging to a root CA), using trusted certificates that are already available in the keystore. +Before adding the certificate to the keystore, \f3keytool\fP tries to verify it by attempting to construct a chain of trust from that certificate to a self\-signed certificate (belonging to a root CA), using trusted certificates that are already available in the keystore. .LP +If the \f2\-trustcacerts\fP option has been specified, additional certificates are considered for the chain of trust, namely the certificates in a file named "cacerts". .LP -If the \f2\-trustcacerts\fP option has been specified, additional certificates are considered for the chain of trust, namely the certificates in a file named "cacerts". -.LP -.LP -If \f3keytool\fP fails to establish a trust path from the certificate to be imported up to a self\-signed certificate (either from the keystore or the "cacerts" file), the certificate information is printed out, and the user is prompted to verify it, e.g., by comparing the displayed certificate fingerprints with the fingerprints obtained from some other (trusted) source of information, which might be the certificate owner himself/herself. Be very careful to ensure the certificate is valid prior to importing it as a "trusted" certificate! \-\- see WARNING Regarding Importing Trusted Certificates. The user then has the option of aborting the import operation. If the \f2\-noprompt\fP option is given, however, there will be no interaction with the user. -.LP -.RE +If \f3keytool\fP fails to establish a trust path from the certificate to be imported up to a self\-signed certificate (either from the keystore or the "cacerts" file), the certificate information is printed out, and the user is prompted to verify it, e.g., by comparing the displayed certificate fingerprints with the fingerprints obtained from some other (trusted) source of information, which might be the certificate owner himself/herself. Be very careful to ensure the certificate is valid prior to importing it as a "trusted" certificate! \-\- see WARNING Regarding Importing Trusted Certificates. The user then has the option of aborting the import operation. If the \f2\-noprompt\fP option is given, however, there will be no interaction with the user. \f3Importing a Certificate Reply\fP -.RS 3 .LP -When importing a certificate reply, the certificate reply is validated using trusted certificates from the keystore, and optionally using the certificates configured in the "cacerts" keystore file (if the \f2\-trustcacerts\fP option was specified). -.LP -.LP -The methods of determining whether the certificate reply is trusted are described in the following: +When importing a certificate reply, the certificate reply is validated using trusted certificates from the keystore, and optionally using the certificates configured in the "cacerts" keystore file (if the \f2\-trustcacerts\fP option was specified). .LP +The methods of determining whether the certificate reply is trusted are described in the following: .RS 3 .TP 2 o @@ -817,12 +848,8 @@ o o \f3If the reply is a PKCS#7 formatted certificate chain or a sequence of X.509 certificates\fP, the chain is ordered with the user certificate first followed by zero or more CA certificates. If the chain ends with a self\-signed root CA certificate and \f2\-trustcacerts\fP option was specified, \f3keytool\fP will attempt to match it with any of the trusted certificates in the keystore or the "cacerts" keystore file. If the chain does not end with a self\-signed root CA certificate and the \f2\-trustcacerts\fP option was specified, \f3keytool\fP will try to find one from the trusted certificates in the keystore or the "cacerts" keystore file and add it to the end of the chain. If the certificate is not found and \f2\-noprompt\fP option is not specified, the information of the last certificate in the chain is printed out, and the user is prompted to verify it. .RE - .LP -.LP -If the public key in the certificate reply matches the user's public key already stored with under \f2alias\fP, the old certificate chain is replaced with the new certificate chain in the reply. The old chain can only be replaced if a valid \f2keypass\fP, the password used to protect the private key of the entry, is supplied. If no password is provided, and the private key password is different from the keystore password, the user is prompted for it. -.LP -.RE +If the public key in the certificate reply matches the user's public key already stored with under \f2alias\fP, the old certificate chain is replaced with the new certificate chain in the reply. The old chain can only be replaced if a valid \f2keypass\fP, the password used to protect the private key of the entry, is supplied. If no password is provided, and the private key password is different from the keystore password, the user is prompted for it. .LP This command was named \f2\-import\fP in previous releases. This old name is still supported in this release and will be supported in future releases, but for clarify the new name, \f2\-importcert\fP, is preferred going forward. .TP 3 @@ -842,12 +869,10 @@ Note that if \f2\-noprompt\fP is provided, the user will not be prompted for a n .LP Prints the content of a PKCS #10 format certificate request, which can be generated by the keytool \-certreq command. The command reads the request from file; if omitted, from the standard input. .RE -.RE + +.LP .SS Exporting Data -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -879,12 +904,8 @@ This command was named \f2\-export\fP in previous releases. This old name is sti .RE .LP -.RE .SS Displaying Data -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -896,25 +917,34 @@ This command by default prints the SHA1 fingerprint of a certificate. If the \f2 .LP You cannot specify both \f2\-v\fP and \f2\-rfc\fP. .TP 3 -\-printcert {\-file cert_file | \-sslserver host[:port]} {\-rfc} {\-v} {\-Jjavaoption} +\-printcert {\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption} .LP +Reads the certificate from the file \f2cert_file\fP, the SSL server located at \f2host:port\fP, or the signed JAR file \f2JAR_file\fP (with the option \f2\-jarfile\fP and prints its contents in a human\-readable format. When no port is specified, the standard HTTPS port 443 is assumed. Note that \f2\-sslserver\fP and \f2\-file\fP options cannot be provided at the same time. Otherwise, an error is reported. If neither option is given, the certificate is read from stdin. .LP If \f2\-rfc\fP is specified, keytool prints the certificate in PEM mode as defined by the Internet RFC 1421 standard. .LP If the certificate is read from a file or stdin, it may be either binary encoded or in printable encoding format, as defined by the Internet RFC 1421 standard .LP -If the SSL server is behind a firewall, \f2\-J\-Dhttps.proxyHost=proxyhost\fP and \f2\-J\-Dhttps.proxyPort=proxyport\fP can be specified on the command line for proxy tunneling. See the JSSE Reference Guide for more information. +If the SSL server is behind a firewall, \f2\-J\-Dhttps.proxyHost=proxyhost\fP and \f2\-J\-Dhttps.proxyPort=proxyport\fP can be specified on the command line for proxy tunneling. See the +.na +\f2JSSE Reference Guide\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html for more information. +.LP +\f3Note\fP: This option can be used independently of a keystore. +.TP 3 +\-printcrl \-file crl_ {\-v} +.LP +Reads the certificate revocation list (CRL) from the file \f2crl_file\fP. +.LP +A Certificate Revocation List (CRL) is a list of digital certificates which have been revoked by the Certificate Authority (CA) that issued them. The CA generates \f2crl_file\fP. .LP \f3Note\fP: This option can be used independently of a keystore. .RE .LP -.RE .SS Managing the Keystore -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -940,34 +970,33 @@ Move an existing keystore entry from the specified \f2alias\fP to a new alias, \ .RE .LP -.RE .SS Getting Help -.LP -.RS 3 - .LP .RS 3 .TP 3 \-help .LP -Lists the basic commands and their options. +Lists the basic commands and their options. +.LP +For more information about a specific command, enter the following, where \f2command_name\fP is the name of the command: +.nf +\f3 +.fl + keytool \-\fP\f4command_name\fP\f3 \-help +.fl +\fP +.fi .RE .LP -.RE .SH "EXAMPLES" -.LP - .LP .LP Suppose you want to create a keystore for managing your public/private key pair and certificates from entities you trust. .LP .SS Generating Your Key Pair -.LP -.RS 3 - .LP .LP The first thing you need to do is create a keystore and generate the key pair. You could use a command such as the following: @@ -975,11 +1004,11 @@ The first thing you need to do is create a keystore and generate the key pair. Y .nf \f3 .fl - keytool \-genkeypair \-dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" + keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl - \-alias business \-keypass kpi135 \-keystore /working/mykeystore + \-alias business \-keypass \fP\f4<new password for private key>\fP\f3 \-keystore /working/mykeystore .fl - \-storepass ab987c \-validity 180 + \-storepass \fP\f4<new password for keystore>\fP\f3 \-validity 180 .fl \fP .fi @@ -989,10 +1018,10 @@ The first thing you need to do is create a keystore and generate the key pair. Y (Please note: This must be typed as a single line. Multiple lines are used in the examples just for legibility purposes.) .LP .LP -This command creates the keystore named "mykeystore" in the "working" directory (assuming it doesn't already exist), and assigns it the password "ab987c". It generates a public/private key pair for the entity whose "distinguished name" has a common name of "Mark Jones", organizational unit of "JavaSoft", organization of "Sun" and two\-letter country code of "US". It uses the default "DSA" key generation algorithm to create the keys, both 1024 bits long. +This command creates the keystore named "mykeystore" in the "working" directory (assuming it doesn't already exist), and assigns it the password specified by \f2<new password for keystore>\fP. It generates a public/private key pair for the entity whose "distinguished name" has a common name of "Mark Jones", organizational unit of "Java", organization of "Oracle" and two\-letter country code of "US". It uses the default "DSA" key generation algorithm to create the keys, both 1024 bits long. .LP .LP -It creates a self\-signed certificate (using the default "SHA1withDSA" signature algorithm) that includes the public key and the distinguished name information. This certificate will be valid for 180 days, and is associated with the private key in a keystore entry referred to by the alias "business". The private key is assigned the password "kpi135". +It creates a self\-signed certificate (using the default "SHA1withDSA" signature algorithm) that includes the public key and the distinguished name information. This certificate will be valid for 180 days, and is associated with the private key in a keystore entry referred to by the alias "business". The private key is assigned the password specified by \f2<new password for private key>\fP. .LP .LP The command could be significantly shorter if option defaults were accepted. As a matter of fact, no options are required; defaults are used for unspecified options that have default values, and you are prompted for any required values. Thus, you could simply have the following: @@ -1006,16 +1035,14 @@ The command could be significantly shorter if option defaults were accepted. As .fi .LP -In this case, a keystore entry with alias "mykey" is created, with a newly\-generated key pair and a certificate that is valid for 90 days. This entry is placed in the keystore named ".keystore" in your home directory. (The keystore is created if it doesn't already exist.) You will be prompted for the distinguished name information, the keystore password, and the private key password. .LP -The rest of the examples assume you executed the \f2\-genkeypair\fP command without options specified, and that you responded to the prompts with values equal to those given in the first \f2\-genkeypair\fP command, above (a private key password of "kpi135", etc.) +In this case, a keystore entry with alias "mykey" is created, with a newly\-generated key pair and a certificate that is valid for 90 days. This entry is placed in the keystore named ".keystore" in your home directory. (The keystore is created if it doesn't already exist.) You will be prompted for the distinguished name information, the keystore password, and the private key password. +.LP +.LP +The rest of the examples assume you executed the \f2\-genkeypair\fP command without options specified, and that you responded to the prompts with values equal to those given in the first \f2\-genkeypair\fP command, above (for example, a distinguished name of "cn=Mark Jones, ou=Java, o=Oracle, c=US"). .LP -.RE .SS Requesting a Signed Certificate from a Certification Authority -.LP -.RS 3 - .LP .LP So far all we've got is a self\-signed certificate. A certificate is more likely to be trusted by others if it is signed by a Certification Authority (CA). To get such a signature, you first generate a Certificate Signing Request (CSR), via the following: @@ -1028,14 +1055,12 @@ So far all we've got is a self\-signed certificate. A certificate is more likely \fP .fi +.LP .LP This creates a CSR (for the entity identified by the default alias "mykey") and puts the request in the file named "MarkJ.csr". Submit this file to a CA, such as VeriSign, Inc. The CA will authenticate you, the requestor (usually off\-line), and then will return a certificate, signed by them, authenticating your public key. (In some cases, they will actually return a chain of certificates, each one authenticating the public key of the signer of the previous certificate in the chain.) -.RE +.LP .SS Importing a Certificate for the CA -.LP -.RS 3 - .LP .LP You need to replace your self\-signed certificate with a certificate chain, where each certificate in the chain authenticates the public key of the signer of the previous certificate in the chain, up to a "root" CA. @@ -1054,7 +1079,7 @@ If the certificate reply is a single certificate, you need a certificate for the .LP .LP -The "cacerts" keystore file ships with five VeriSign root CA certificates, so you probably won't need to import a VeriSign certificate as a trusted certificate in your keystore. But if you request a signed certificate from a different CA, and a certificate authenticating that CA's public key hasn't been added to "cacerts", you will need to import a certificate from the CA as a "trusted certificate". +The "cacerts" keystore file ships with several VeriSign root CA certificates, so you probably won't need to import a VeriSign certificate as a trusted certificate in your keystore. But if you request a signed certificate from a different CA, and a certificate authenticating that CA's public key hasn't been added to "cacerts", you will need to import a certificate from the CA as a "trusted certificate". .LP .LP A certificate from a CA is usually either self\-signed, or signed by another CA (in which case you also need a certificate authenticating that CA's public key). Suppose company ABC, Inc., is a CA, and you obtain a file named "ABCCA.cer" that is purportedly a self\-signed certificate from ABC, authenticating that CA's public key. @@ -1073,14 +1098,12 @@ If you trust that the certificate is valid, then you can add it to your keystore \fP .fi +.LP .LP This creates a "trusted certificate" entry in the keystore, with the data from the file "ABCCA.cer", and assigns the alias "abc" to the entry. -.RE +.LP .SS Importing the Certificate Reply from the CA -.LP -.RS 3 - .LP .LP Once you've imported a certificate authenticating the public key of the CA you submitted your certificate signing request to (or there's already such a certificate in the "cacerts" file), you can import the certificate reply and thereby replace your self\-signed certificate with a certificate chain. This chain is the one returned by the CA in response to your request (if the CA reply is a chain), or one constructed (if the CA reply is a single certificate) using the certificate reply and trusted certificates that are already available in the keystore where you import the reply or in the "cacerts" keystore file. @@ -1095,16 +1118,14 @@ For example, suppose you sent your certificate signing request to VeriSign. You .fl \fP .fi -.RE .LP .SS Exporting a Certificate Authenticating Your Public Key .LP -.RS 3 - .LP -Suppose you have used the jarsigner(1) tool to sign a Java ARchive (JAR) file. Clients that want to use the file will want to authenticate your signature. +Suppose you have used the jarsigner(1) tool to sign a Java ARchive (JAR) file. Clients that want to use the file will want to authenticate your signature. +.LP .LP One way they can do this is by first importing your public key certificate into their keystore as a "trusted" entry. You can export the certificate and supply it to your clients. As an example, you can copy your certificate to a file named \f2MJ.cer\fP via the following, assuming the entry is aliased by "mykey": .LP @@ -1116,14 +1137,12 @@ One way they can do this is by first importing your public key certificate into \fP .fi +.LP .LP Given that certificate, and the signed JAR file, a client can use the \f3jarsigner\fP tool to authenticate your signature. -.RE +.LP .SS Importing Keystore -.LP -.RS 3 - .LP .LP The command "importkeystore" is used to import an entire keystore into another keystore, which means all entries from the source keystore, including keys and certificates, are all imported to the destination keystore within a single command. You can use this command to import entries from a different type of keystore. During the import, all new entries in the destination keystore will have the same alias names and protection passwords (for secret keys and private keys). If \f3keytool\fP has difficulties recover the private keys or secret keys from the source keystore, it will prompt you for a password. If it detects alias duplication, it will ask you for a new one, you can specify a new alias or simply allow \f3keytool\fP to overwrite the existing one. @@ -1134,128 +1153,108 @@ For example, to import entries from a normal JKS type keystore key.jks into a PK .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<source keystore password>\fP\f3 \-deststorepass \fP\f4<destination keystore password>\fP\f3 .fl \fP .fi .LP .LP -The importkeystore command can also be used to import a single entry from a source keystore to a destination keystore. In this case, besides the options you see in the above example, you need to specify the alias you want to import. With the srcalias option given, you can also specify the desination alias name in the command line, as well as protection password for a secret/private key and the destination protection password you want. In this way, you can issue a \f3keytool\fP command that will never ask you a question. This makes it very convenient to include a \f3keytool\fP command into a script file, like this: +The importkeystore command can also be used to import a single entry from a source keystore to a destination keystore. In this case, besides the options you see in the above example, you need to specify the alias you want to import. With the srcalias option given, you can also specify the destination alias name in the command line, as well as protection password for a secret/private key and the destination protection password you want. The following command demonstrates this: .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<source keystore password>\fP\f3 \-deststorepass \fP\f4<destination keystore password>\fP\f3 .fl \-srcalias myprivatekey \-destalias myoldprivatekey .fl - \-srckeypass oldkeypass \-destkeypass mynewkeypass + \-srckeypass \fP\f4<source entry password>\fP\f3 \-destkeypass \fP\f4<destination entry password>\fP\f3 .fl \-noprompt .fl \fP .fi -.RE .LP .SS -Generating Certificates for a typical SSL Server -.LP -.RS 3 - +Generating Certificates for a Typical SSL Server .LP .LP -Keytool commands to generate keypairs and certificates for three entities, namely, Root CA (root), Intermadiate CA (ca), and SSL server (server) are as follows: +The following are keytool commands to generate keypairs and certificates for three entities, namely, Root CA (root), Intermediate CA (ca), and SSL server (server). Ensure that you store all the certificates in the same keystore. In these examples, it is recommended that you specify RSA as the key algorithm. .LP .nf \f3 .fl -keytool \-keystore root.jks \-genkeypair \-alias root \-ext bc:c +keytool \-genkeypair \-keystore root.jks \-alias root \-ext bc:c .fl -keytool \-keystore ca.jks \-alias ca +keytool \-genkeypair \-keystore ca.jks \-alias ca \-ext bc:c .fl -keytool \-keystore server.jks \-alias server +keytool \-genkeypair \-keystore server.jks \-alias server .fl - + .fl -keytool \-keystore root.jks \-alias root \-exportcert > root.pem +keytool \-keystore root.jks \-alias root \-exportcert \-rfc > root.pem .fl - + .fl -keytool \-keystore ca.jks \-certreq \-alias ca | keytool \-keystore root.jks \-gencert \-alias root \-ext BC=0 > ca.pem +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-certreq \-alias ca | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore root.jks \-gencert \-alias root \-ext BC=0 \-rfc > ca.pem .fl keytool \-keystore ca.jks \-importcert \-alias ca \-file ca.pem .fl - + .fl -keytool \-keystore server.jks \-certreq \-alias server | keytool \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE >server.pem +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore server.jks \-certreq \-alias server | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE \-rfc > server.pem .fl cat root.pem ca.pem server.pem | keytool \-keystore server.jks \-importcert \-alias server .fl \fP .fi -.RE .LP .SH "TERMINOLOGY and WARNINGS" -.LP - .LP .SS KeyStore .LP -.RS 3 - .LP A keystore is a storage facility for cryptographic keys and certificates. -.RE +.LP .RS 3 .TP 2 o -.TP 2 -o \f3KeyStore Entries\fP -.RS 3 - .LP Keystores may have different types of entries. The two most applicable entry types for \f3keytool\fP include: .RS 3 .TP 3 1. -\f3key entries\fP \- each holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access. Typically, a key stored in this type of entry is a secret key, or a private key accompanied by the certificate "chain" for the corresponding public key. The \f3keytool\fP can handle both types od entry, while \f3jarsigner\fP tool only handle the latter type of entry, that is private keys and their associated certificate chains. +\f3key entries\fP \- each holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access. Typically, a key stored in this type of entry is a secret key, or a private key accompanied by the certificate "chain" for the corresponding public key. The \f3keytool\fP can handle both types of entries, while the \f3jarsigner\fP tool only handle the latter type of entry, that is private keys and their associated certificate chains. .TP 3 2. \f3trusted certificate entries\fP \- each contains a single public key certificate belonging to another party. It is called a "trusted certificate" because the keystore owner trusts that the public key in the certificate indeed belongs to the identity identified by the "subject" (owner) of the certificate. The issuer of the certificate vouches for this, by signing the certificate. .RE - -.LP -.RE .TP 2 o \f3KeyStore Aliases\fP -.RS 3 .LP -All keystore entries (key and trusted certificate entries) are accessed via unique \f2aliases\fP. +All keystore entries (key and trusted certificate entries) are accessed via unique \f2aliases\fP. .LP +An alias is specified when you add an entity to the keystore using the \-genseckey command to generate a secret key, \-genkeypair command to generate a key pair (public and private key) or the \-importcert command to add a certificate or certificate chain to the list of trusted certificates. Subsequent \f3keytool\fP commands must use this same alias to refer to the entity. .LP -An alias is specified when you add an entity to the keystore using the \-genseckey command to generate a secret key, \-genkeypair command to generate a key pair (public and private key) or the \-importcert command to add a certificate or certificate chain to the list of trusted certificates. Subsequent \f3keytool\fP commands must use this same alias to refer to the entity. -.LP -.LP -For example, suppose you use the alias \f2duke\fP to generate a new public/private key pair and wrap the public key into a self\-signed certificate (see Certificate Chains) via the following command: -.LP +For example, suppose you use the alias \f2duke\fP to generate a new public/private key pair and wrap the public key into a self\-signed certificate (see Certificate Chains) via the following command: .nf \f3 .fl @@ -1263,9 +1262,8 @@ For example, suppose you use the alias \f2duke\fP to generate a new public/priva .fl \fP .fi - .LP -This specifies an inital password of "dukekeypasswd" required by subsequent commands to access the private key assocated with the alias \f2duke\fP. If you later want to change duke's private key password, you use a command like the following: +This specifies an initial password of "dukekeypasswd" required by subsequent commands to access the private key associated with the alias \f2duke\fP. If you later want to change duke's private key password, you use a command like the following: .nf \f3 .fl @@ -1273,49 +1271,37 @@ This specifies an inital password of "dukekeypasswd" required by subsequent comm .fl \fP .fi - .LP This changes the password from "dukekeypasswd" to "newpass". .LP -Please note: A password should not actually be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system. If you don't specify a required password option on a command line, you will be prompted for it. -.LP -.RE +Please note: A password should not actually be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system. If you don't specify a required password option on a command line, you will be prompted for it. .TP 2 o \f3KeyStore Implementation\fP -.RS 3 +.LP The \f2KeyStore\fP class provided in the \f2java.security\fP package supplies well\-defined interfaces to access and modify the information in a keystore. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular \f2type\fP of keystore. .LP -Currently, two command\-line tools (\f3keytool\fP and \f3jarsigner\fP) and a GUI\-based tool named \f3Policy Tool\fP make use of keystore implementations. Since \f2KeyStore\fP is publicly available, users can write additional security applications that use it. -.LP -.LP -There is a built\-in default implementation, provided by Sun Microsystems. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password. +Currently, two command\-line tools (\f3keytool\fP and \f3jarsigner\fP) and a GUI\-based tool named \f3Policy Tool\fP make use of keystore implementations. Since \f2KeyStore\fP is publicly available, users can write additional security applications that use it. .LP +There is a built\-in default implementation, provided by Oracle. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password. .LP Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f2KeyStore\fP are implemented in terms of a "Service Provider Interface" (SPI). That is, there is a corresponding abstract \f2KeystoreSpi\fP class, also in the \f2java.security\fP package, which defines the Service Provider Interface methods that "providers" must implement. (The term "provider" refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API.) Thus, to provide a keystore implementation, clients must implement a "provider" and supply a KeystoreSpi subclass implementation, as described in .na \f2How to Implement a Provider for the Java Cryptography Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html. .LP +Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. .LP -Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. +\f3keytool\fP works on any file\-based keystore implementation. (It treats the keystore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. .LP +For \f3keytool\fP and \f3jarsigner\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Keystore" menu. .LP -\f3keytool\fP works on any file\-based keystore implementation. (It treats the keytore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. +If you don't explicitly specify a keystore type, the tools choose a keystore implementation based simply on the value of the \f2keystore.type\fP property specified in the security properties file. The security properties file is called \f2java.security\fP, and it resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). .LP +Each tool gets the \f2keystore.type\fP value and then examines all the currently\-installed providers until it finds one that implements keystores of that type. It then uses the keystore implementation from that provider. .LP -For \f3keytool\fP and \f3jarsigner\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Keystore" menu. -.LP -.LP -If you don't explicitly specify a keystore type, the tools choose a keystore implementation based simply on the value of the \f2keystore.type\fP property specified in the security properties file. The security properties file is called \f2java.security\fP, and it resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). -.LP -.LP -Each tool gets the \f2keystore.type\fP value and then examines all the currently\-installed providers until it finds one that implements keystores of that type. It then uses the keystore implementation from that provider. -.LP -.LP -The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that lets applications and applets retrieve the value of the \f2keystore.type\fP property. The following line of code creates an instance of the default keystore type (as specified in the \f2keystore.type\fP property): -.LP +The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that lets applications and applets retrieve the value of the \f2keystore.type\fP property. The following line of code creates an instance of the default keystore type (as specified in the \f2keystore.type\fP property): .nf \f3 .fl @@ -1323,11 +1309,8 @@ The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that .fl \fP .fi - -.LP -.LP -The default keystore type is "jks" (the proprietary type of the keystore implementation provided by Sun). This is specified by the following line in the security properties file: .LP +The default keystore type is "jks" (the proprietary type of the keystore implementation provided by Oracle). This is specified by the following line in the security properties file: .nf \f3 .fl @@ -1335,14 +1318,10 @@ The default keystore type is "jks" (the proprietary type of the keystore impleme .fl \fP .fi - .LP +To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. .LP -To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. -.LP -.LP -For example, if you have a provider package that supplies a keystore implementation for a keystore type called "pkcs12", change the line to -.LP +For example, if you have a provider package that supplies a keystore implementation for a keystore type called "pkcs12", change the line to .nf \f3 .fl @@ -1350,50 +1329,45 @@ For example, if you have a provider package that supplies a keystore implementat .fl \fP .fi +.LP +Note: case doesn't matter in keystore type designations. For example, "JKS" would be considered the same as "jks". +.RE .LP -Note: case doesn't matter in keystore type designations. For example, "JKS" would be considered the same as "jks". -.RE -.RE .SS Certificate .LP +A \f3certificate\fP (also known as a \f3public\-key certificate\fP) is a digitally signed statement from one entity (the \f2issuer\fP), saying that the public key (and some other information) of another entity (the \f2subject\fP) has some specific value. .RS 3 - -.LP -A \f3certificate\fP (also known as a \f3public\-key certificate\fP) is a digitally signed statement from one entity (the \f2issuer\fP), saying that the public key (and some other information) of another entity (the \f2subject\fP) has some specific value. -.RE -.RS 3 -.TP 2 -o .TP 2 o \f3Certificate Terms\fP .RS 3 - -.LP -.RS 3 .TP 3 Public Keys -These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity. Public keys are used to verify signatures. +.LP +These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity. Public keys are used to verify signatures. .TP 3 Digitally Signed -If some data is \f2digitally signed\fP it has been stored with the "identity" of an entity, and a signature that proves that entity knows about the data. The data is rendered unforgeable by signing with the entity's private key. +.LP +If some data is \f2digitally signed\fP it has been stored with the "identity" of an entity, and a signature that proves that entity knows about the data. The data is rendered unforgeable by signing with the entity's private key. .TP 3 Identity -A known way of addressing an entity. In some systems the identity is the public key, in others it can be anything from a Unix UID to an Email address to an X.509 Distinguished Name. +.LP +A known way of addressing an entity. In some systems the identity is the public key, in others it can be anything from a Unix UID to an Email address to an X.509 Distinguished Name. .TP 3 Signature -A signature is computed over some data using the private key of an entity (the \f2signer\fP, which in the case of a certificate is also known as the \f2issuer\fP). +.LP +A signature is computed over some data using the private key of an entity (the \f2signer\fP, which in the case of a certificate is also known as the \f2issuer\fP). .TP 3 Private Keys -These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it's supposed to be kept secret). Private and public keys exist in pairs in all public key cryptography systems (also referred to as "public key crypto systems"). In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key. Private keys are used to compute signatures. +.LP +These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it's supposed to be kept secret). Private and public keys exist in pairs in all public key cryptography systems (also referred to as "public key crypto systems"). In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key. Private keys are used to compute signatures. .TP 3 Entity -An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree. -.RE - .LP +An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree. +.RE .LP Basically, public key cryptography requires access to users' public keys. In a large\-scale networked environment it is impossible to guarantee that prior relationships between communicating entities have been established or that a trusted repository exists with all used public keys. Certificates were invented as a solution to this public key distribution problem. Now a \f2Certification Authority\fP (CA) can act as a trusted third party. CAs are entities (for example, businesses) that are trusted to sign (issue) certificates for other entities. It is assumed that CAs will only create valid and reliable certificates, as they are bound by legal agreements. There are many public Certification Authorities, such as .na @@ -1407,26 +1381,22 @@ http://www.thawte.com/, .na \f2Entrust\fP @ .fi -http://www.entrust.com/, and so on. You can also run your own Certification Authority using products such as the Netscape/Microsoft Certificate Servers or the Entrust CA product for your organization. +http://www.entrust.com/, and so on. You can also run your own Certification Authority using products such as Microsoft Certificate Server or the Entrust CA product for your organization. .LP +Using \f3keytool\fP, it is possible to display, import, and export certificates. It is also possible to generate self\-signed certificates. .LP -Using \f3keytool\fP, it is possible to display, import, and export certificates. It is also possible to generate self\-signed certificates. -.LP -.LP -\f3keytool\fP currently handles X.509 certificates. -.LP -.RE +\f3keytool\fP currently handles X.509 certificates. .TP 2 o \f3X.509 Certificates\fP -.RS 3 +.LP The X.509 standard defines what information can go into a certificate, and describes how to write it down (the data format). All the data in a certificate is encoded using two related standards called ASN.1/DER. \f2Abstract Syntax Notation 1\fP describes data. The \f2Definite Encoding Rules\fP describe a single way to store and transfer that data. .LP -All X.509 certificates have the following data, in addition to the signature: -.LP +All X.509 certificates have the following data, in addition to the signature: .RS 3 .TP 3 Version +.LP This identifies which version of the X.509 standard applies to this certificate, which affects what information can be specified in it. Thus far, three versions are defined. \f3keytool\fP can import and export v1, v2, and v3 certificates. It generates v3 certificates. .LP \f2X.509 Version 1\fP has been available since 1988, is widely deployed, and is the most generic. @@ -1436,475 +1406,86 @@ This identifies which version of the X.509 standard applies to this certificate, \f2X.509 Version 3\fP is the most recent (1996) and supports the notion of extensions, whereby anyone can define an extension and include it in the certificate. Some common extensions in use today are: \f2KeyUsage\fP (limits the use of the keys to particular purposes such as "signing\-only") and \f2AlternativeNames\fP (allows other identities to also be associated with this public key, e.g. DNS names, Email addresses, IP addresses). Extensions can be marked \f2critical\fP to indicate that the extension should be checked and enforced/used. For example, if a certificate has the KeyUsage extension marked critical and set to "keyCertSign" then if this certificate is presented during SSL communication, it should be rejected, as the certificate extension indicates that the associated private key should only be used for signing certificates and not for SSL use. .TP 3 Serial Number -The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues. This information is used in numerous ways, for example when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL). +.LP +The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues. This information is used in numerous ways, for example when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL). .TP 3 Signature Algorithm Identifier -This identifies the algorithm used by the CA to sign the certificate. +.LP +This identifies the algorithm used by the CA to sign the certificate. .TP 3 Issuer Name -The X.500 Distinguished Name of the entity that signed the certificate. This is normally a CA. Using this certificate implies trusting the entity that signed this certificate. (Note that in some cases, such as \f2root or top\-level\fP CA certificates, the issuer signs its own certificate.) +.LP +The X.500 Distinguished Name of the entity that signed the certificate. This is normally a CA. Using this certificate implies trusting the entity that signed this certificate. (Note that in some cases, such as \f2root or top\-level\fP CA certificates, the issuer signs its own certificate.) .TP 3 Validity Period -Each certificate is valid only for a limited amount of time. This period is described by a start date and time and an end date and time, and can be as short as a few seconds or almost as long as a century. The validity period chosen depends on a number of factors, such as the strength of the private key used to sign the certificate or the amount one is willing to pay for a certificate. This is the expected period that entities can rely on the public value, if the associated private key has not been compromised. +.LP +Each certificate is valid only for a limited amount of time. This period is described by a start date and time and an end date and time, and can be as short as a few seconds or almost as long as a century. The validity period chosen depends on a number of factors, such as the strength of the private key used to sign the certificate or the amount one is willing to pay for a certificate. This is the expected period that entities can rely on the public value, if the associated private key has not been compromised. .TP 3 Subject Name +.LP The name of the entity whose public key the certificate identifies. This name uses the X.500 standard, so it is intended to be unique across the Internet. This is the X.500 Distinguished Name (DN) of the entity, for example, .nf \f3 .fl - CN=Java Duke, OU=Java Software Division, O=Sun Microsystems Inc, C=US + CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US .fl \fP .fi -(These refer to the subject's Common Name, Organizational Unit, Organization, and Country.) +.LP +(These refer to the subject's Common Name, Organizational Unit, Organization, and Country.) .TP 3 Subject Public Key Information -This is the public key of the entity being named, together with an algorithm identifier which specifies which public key crypto system this key belongs to and any associated key parameters. -.RE - .LP +This is the public key of the entity being named, together with an algorithm identifier which specifies which public key crypto system this key belongs to and any associated key parameters. .RE .TP 2 o \f3Certificate Chains\fP -.RS 3 .LP -\f3keytool\fP can create and manage keystore "key" entries that each contain a private key and an associated certificate "chain". The first certificate in the chain contains the public key corresponding to the private key. +\f3keytool\fP can create and manage keystore "key" entries that each contain a private key and an associated certificate "chain". The first certificate in the chain contains the public key corresponding to the private key. .LP +When keys are first generated (see the \-genkeypair command), the chain starts off containing a single element, a \f2self\-signed certificate\fP. A self\-signed certificate is one for which the issuer (signer) is the same as the subject (the entity whose public key is being authenticated by the certificate). Whenever the \f2\-genkeypair\fP command is called to generate a new public/private key pair, it also wraps the public key into a self\-signed certificate. .LP -When keys are first generated (see the \-genkeypair command), the chain starts off containing a single element, a \f2self\-signed certificate\fP. A self\-signed certificate is one for which the issuer (signer) is the same as the subject (the entity whose public key is being authenticated by the certificate). Whenever the \f2\-genkeypair\fP command is called to generate a new public/private key pair, it also wraps the public key into a self\-signed certificate. +Later, after a Certificate Signing Request (CSR) has been generated (see the \-certreq command) and sent to a Certification Authority (CA), the response from the CA is imported (see \-importcert), and the self\-signed certificate is replaced by a chain of certificates. At the bottom of the chain is the certificate (reply) issued by the CA authenticating the subject's public key. The next certificate in the chain is one that authenticates the \f2CA\fP's public key. .LP +In many cases, this is a self\-signed certificate (that is, a certificate from the CA authenticating its own public key) and the last certificate in the chain. In other cases, the CA may return a chain of certificates. In this case, the bottom certificate in the chain is the same (a certificate signed by the CA, authenticating the public key of the key entry), but the second certificate in the chain is a certificate signed by a \f2different\fP CA, authenticating the public key of the CA you sent the CSR to. Then, the next certificate in the chain will be a certificate authenticating the second CA's key, and so on, until a self\-signed "root" certificate is reached. Each certificate in the chain (after the first) thus authenticates the public key of the signer of the previous certificate in the chain. .LP -Later, after a Certificate Signing Request (CSR) has been generated (see the \-certreq command) and sent to a Certification Authority (CA), the response from the CA is imported (see \-importcert), and the self\-signed certificate is replaced by a chain of certificates. At the bottom of the chain is the certificate (reply) issued by the CA authenticating the subject's public key. The next certificate in the chain is one that authenticates the \f2CA\fP's public key. +Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs). In this case, the certificate chain must be established from trusted certificate information already stored in the keystore. .LP +A different reply format (defined by the PKCS#7 standard) also includes the supporting certificate chain, in addition to the issued certificate. Both reply formats can be handled by \f3keytool\fP. .LP -In many cases, this is a self\-signed certificate (that is, a certificate from the CA authenticating its own public key) and the last certificate in the chain. In other cases, the CA may return a chain of certificates. In this case, the bottom certificate in the chain is the same (a certificate signed by the CA, authenticating the public key of the key entry), but the second certificate in the chain is a certificate signed by a \f2different\fP CA, authenticating the public key of the CA you sent the CSR to. Then, the next certificate in the chain will be a certificate authenticating the second CA's key, and so on, until a self\-signed "root" certificate is reached. Each certificate in the chain (after the first) thus authenticates the public key of the signer of the previous certificate in the chain. -.LP -.LP -Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs). In this case, the certificate chain must be established from trusted certificate information already stored in the keystore. -.LP -.LP -A different reply format (defined by the PKCS#7 standard) also includes the supporting certificate chain, in addition to the issued certificate. Both reply formats can be handled by \f3keytool\fP. -.LP -.LP -The top\-level (root) CA certificate is self\-signed. However, the trust into the root's public key does not come from the root certificate itself (anybody could generate a self\-signed certificate with the distinguished name of say, the VeriSign root CA!), but from other sources like a newspaper. The root CA public key is widely known. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only used as a "vehicle" to transport the root CA's public key. Before you add the root CA certificate to your keystore, you should view it (using the \f2\-printcert\fP option) and compare the displayed fingerprint with the well\-known fingerprint (obtained from a newspaper, the root CA's webpage, etc.). -.LP -.RE +The top\-level (root) CA certificate is self\-signed. However, the trust into the root's public key does not come from the root certificate itself (anybody could generate a self\-signed certificate with the distinguished name of say, the VeriSign root CA!), but from other sources like a newspaper. The root CA public key is widely known. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only used as a "vehicle" to transport the root CA's public key. Before you add the root CA certificate to your keystore, you should view it (using the \f2\-printcert\fP option) and compare the displayed fingerprint with the well\-known fingerprint (obtained from a newspaper, the root CA's Web page, etc.). .TP 2 o \f3The cacerts Certificates File\fP -.RS 3 .LP -A certificates file named \f3"cacerts"\fP resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). +A certificates file named \f3"cacerts"\fP resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). .LP +The "cacerts" file represents a system\-wide keystore with CA certificates. System administrators can configure and manage that file using \f3keytool\fP, specifying "jks" as the keystore type. The "cacerts" keystore file ships with a default set of root CA certificates; list them with the following command: +.nf +\f3 +.fl +keytool \-list \-keystore \fP\f4java.home\fP\f3/lib/security/cacerts +.fl +\fP +.fi .LP -The "cacerts" file represents a system\-wide keystore with CA certificates. System administrators can configure and manage that file using \f3keytool\fP, specifying "jks" as the keystore type. The "cacerts" keystore file ships with several root CA certificates with the following aliases and X.500 owner distinguished names: +The initial password of the "cacerts" keystore file is "changeit". System administrators should change that password and the default access permission of that file upon installing the SDK. .LP -.RS 3 -.TP 2 -* -\f3Alias\fP: thawtepersonalfreemailca -.br -\f3Owner DN\fP: EmailAddress=personal\-freemail@thawte.com, -.br -CN=Thawte Personal Freemail CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepersonalbasicca -.br -\f3Owner DN\fP: EmailAddress=personal\-basic@thawte.com, -.br -CN=Thawte Personal Basic CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepersonalpremiumca -.br -\f3Owner DN\fP: EmailAddress=personal\-premium@thawte.com, -.br -CN=Thawte Personal Premium CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawteserverca -.br -\f3Owner DN\fP: EmailAddress=server\-certs@thawte.com, -.br -CN=Thawte Server CA, OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepremiumserverca -.br -\f3Owner DN\fP: EmailAddress=premium\-server@thawte.com, -.br -CN=Thawte Premium Server CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: verisignclass1ca -.br -\f3Owner DN\fP: OU=Class 1 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2ca -.br -\f3Owner DN\fP: OU=Class 2 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3ca -.br -\f3Owner DN\fP: OU=Class 3 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignserverca -.br -\f3Owner DN\fP: OU=Secure Server Certification Authority, -.br -O="RSA Data Security, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass1g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 1 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass1g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 1 Public Primary Certification Authority \- G3, OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 2 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 2 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 3 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 3 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: baltimorecodesigningca -.br -\f3Owner DN\fP: CN=Baltimore CyberTrust Code Signing Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP: gtecybertrustglobalca -.br -\f3Owner DN\fP: CN=GTE CyberTrust Global Root, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP: baltimorecybertrustca -.br -\f3Owner DN\fP: CN=Baltimore CyberTrust Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP: gtecybertrust5ca -.br -\f3Owner DN\fP: CN=GTE CyberTrust Root 5, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP: entrustclientca -.br -\f3Owner DN\fP: CN=Entrust.net Client Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/Client_CA_Info/CPS incorp. by ref. limits liab., -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP: entrustglobalclientca -.br -\f3Owner DN\fP: CN=Entrust.net Client Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/GCCA_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: entrust2048ca -.br -\f3Owner DN\fP: CN=Entrust.net Certification Authority (2048), -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: entrustsslca -.br -\f3Owner DN\fP: CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP: entrustgsslca -.br -\f3Owner DN\fP: CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/SSL_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: godaddyclass2ca -.br -\f3Owner DN\fP: OU=Go Daddy Class 2 Certification Authority, -.br -O="The Go Daddy Group, Inc.", C=US -.TP 2 -* -\f3Alias\fP: starfieldclass2ca -.br -\f3Owner DN\fP: OU=Starfield Class 2 Certification Authority, -.br -O="Starfield Technologies, Inc.", C=US -.TP 2 -* -\f3Alias\fP: valicertclass2ca -.br -\f3Owner DN\fP: EMAILADDRESS=info@valicert.com, -.br -CN=http://www.valicert.com/, -.br -OU=ValiCert Class 2 Policy Validation Authority, -.br -O="ValiCert, Inc.", L=ValiCert Validation Network -.TP 2 -* -\f3Alias\fP: geotrustglobalca -.br -\f3Owner DN\fP: CN=GeoTrust Global CA, -.br -O=GeoTrust Inc., C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureca -.br -\f3Owner DN\fP: OU=Equifax Secure Certificate Authority, -.br -O=Equifax, C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureebusinessca1 -.br -\f3Owner DN\fP: CN=Equifax Secure eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureebusinessca2 -.br -\f3Owner DN\fP: OU=Equifax Secure eBusiness CA\-2, -.br -O=Equifax Secure, C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureglobalebusinessca1 -.br -\f3Owner DN\fP: CN=Equifax Secure Global eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP: soneraclass1ca -.br -\f3Owner DN\fP: CN=Sonera Class1 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP: soneraclass2ca -.br -\f3Owner DN\fP: CN=Sonera Class2 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP: comodoaaaca -.br -\f3Owner DN\fP: CN=AAA Certificate Services, -.br -O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB -.TP 2 -* -\f3Alias\fP: addtrustclass1ca -.br -\f3Owner DN\fP: CN=AddTrust Class 1 CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: addtrustexternalca -.br -\f3Owner DN\fP: CN=AddTrust External CA Root, -.br -OU=AddTrust External TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: addtrustqualifiedca -.br -\f3Owner DN\fP: CN=AddTrust Qualified CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: utnuserfirsthardwareca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Hardware, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utnuserfirstclientauthemailca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Client Authentication and Email, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utndatacorpsgcca -.br -\f3Owner DN\fP: CN=UTN \- DATACorp SGC, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utnuserfirstobjectca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Object, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.RE - -.LP -.LP -The initial password of the "cacerts" keystore file is "changeit". System administrators should change that password and the default access permission of that file upon installing the SDK. -.LP -.RS 3 - -.LP - -.LP -\f3IMPORTANT: Verify Your \fP\f4cacerts\fP\f3 File\fP -.br - -.LP -Since you trust the CAs in the \f2cacerts\fP file as entities for signing and issuing certificates to other entities, you must manage the \f2cacerts\fP file carefully. The \f2cacerts\fP file should contain only certificates of the CAs you trust. It is your responsibility to verify the trusted root CA certificates bundled in the \f2cacerts\fP file and make your own trust decisions. To remove an untrusted CA certificate from the \f2cacerts\fP file, use the delete option of the \f2keytool\fP command. You can find the \f2cacerts\fP file in the JRE installation directory. Contact your system administrator if you do not have permission to edit this file. -.br - -.LP -.RE - -.LP -.RE +\f3IMPORTANT: Verify Your \fP\f4cacerts\fP\f3 File\fP: Since you trust the CAs in the \f2cacerts\fP file as entities for signing and issuing certificates to other entities, you must manage the \f2cacerts\fP file carefully. The \f2cacerts\fP file should contain only certificates of the CAs you trust. It is your responsibility to verify the trusted root CA certificates bundled in the \f2cacerts\fP file and make your own trust decisions. To remove an untrusted CA certificate from the \f2cacerts\fP file, use the delete option of the \f2keytool\fP command. You can find the \f2cacerts\fP file in the JRE installation directory. Contact your system administrator if you do not have permission to edit this file. .TP 2 o \f3The Internet RFC 1421 Certificate Encoding Standard\fP -.RS 3 .LP -Certificates are often stored using the printable encoding format defined by the Internet RFC 1421 standard, instead of their binary encoding. This certificate format, also known as "Base 64 encoding", facilitates exporting certificates to other applications by email or through some other mechanism. +Certificates are often stored using the printable encoding format defined by the Internet RFC 1421 standard, instead of their binary encoding. This certificate format, also known as "Base 64 encoding", facilitates exporting certificates to other applications by email or through some other mechanism. .LP +Certificates read by the \f2\-importcert\fP and \f2\-printcert\fP commands can be in either this format or binary encoded. .LP -Certificates read by the \f2\-importcert\fP and \f2\-printcert\fP commands can be in either this format or binary encoded. +The \f2\-exportcert\fP command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, if the \f2\-rfc\fP option is specified. .LP +The \f2\-list\fP command by default prints the SHA1 fingerprint of a certificate. If the \f2\-v\fP option is specified, the certificate is printed in human\-readable format, while if the \f2\-rfc\fP option is specified, the certificate is output in the printable encoding format. .LP -The \f2\-exportcert\fP command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, if the \f2\-rfc\fP option is specified. -.LP -.LP -The \f2\-list\fP command by default prints the SHA1 fingerprint of a certificate. If the \f2\-v\fP option is specified, the certificate is printed in human\-readable format, while if the \f2\-rfc\fP option is specified, the certificate is output in the printable encoding format. -.LP -.LP -In its printable encoding format, the encoded certificate is bounded at the beginning by -.LP +In its printable encoding format, the encoded certificate is bounded at the beginning by .nf \f3 .fl @@ -1912,11 +1493,8 @@ In its printable encoding format, the encoded certificate is bounded at the begi .fl \fP .fi - -.LP -.LP -and at the end by .LP +and at the end by .nf \f3 .fl @@ -1925,23 +1503,21 @@ and at the end by \fP .fi .RE -.RE .LP .SS X.500 Distinguished Names .LP -.RS 3 - .LP -X.500 Distinguished Names are used to identify entities, such as those which are named by the \f2subject\fP and \f2issuer\fP (signer) fields of X.509 certificates. \f3keytool\fP supports the following subparts: +X.500 Distinguished Names are used to identify entities, such as those which are named by the \f2subject\fP and \f2issuer\fP (signer) fields of X.509 certificates. \f3keytool\fP supports the following subparts: +.LP .RS 3 .TP 2 o \f2commonName\fP \- common name of a person, e.g., "Susan Jones" .TP 2 o -\f2organizationUnit\fP \- small organization (e.g, department or division) name, e.g., "Purchasing" +\f2organizationUnit\fP \- small organization (e.g., department or division) name, e.g., "Purchasing" .TP 2 o \f2organizationName\fP \- large organization name, e.g., "ABCSystems, Inc." @@ -1975,7 +1551,7 @@ where all the italicized items represent actual values and the above keywords ar .nf \f3 .fl - CN=commonName + CN=commonName .fl OU=organizationUnit .fl @@ -1997,17 +1573,19 @@ A sample distinguished name string is .nf \f3 .fl -CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US +CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US .fl \fP .fi .LP -and a sample command using such a string is +.LP +and a sample command using such a string is +.LP .nf \f3 .fl -keytool \-genkeypair \-dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, +keytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, .fl S=California, C=US" \-alias mark .fl @@ -2024,7 +1602,7 @@ Order matters; each subcomponent must appear in the designated order. However, i .nf \f3 .fl -CN=Steve Meier, OU=SunSoft, O=Sun, C=US +CN=Steve Meier, OU=Java, O=Oracle, C=US .fl \fP .fi @@ -2036,7 +1614,7 @@ If a distinguished name string value contains a comma, the comma must be escaped .nf \f3 .fl - cn=peter schuster, o=Sun Microsystems\\, Inc., o=sun, c=us + cn=Peter Schuster, ou=Java\\, Product Development, o=Oracle, c=US .fl \fP .fi @@ -2045,14 +1623,12 @@ If a distinguished name string value contains a comma, the comma must be escaped .LP It is never necessary to specify a distinguished name string on a command line. If it is needed for a command, but not supplied on the command line, the user is prompted for each of the subcomponents. In this case, a comma does not need to be escaped by a "\\". .LP -.RE .SS WARNING Regarding Importing Trusted Certificates .LP -.RS 3 - .LP -IMPORTANT: Be sure to check a certificate very carefully before importing it as a trusted certificate! +IMPORTANT: Be sure to check a certificate very carefully before importing it as a trusted certificate! +.LP .LP View it first (using the \f2\-printcert\fP command, or the \f2\-importcert\fP command without the \f2\-noprompt\fP option), and make sure that the displayed certificate fingerprint(s) match the expected ones. For example, suppose someone sends or emails you a certificate, and you put it in a file named \f2/tmp/cert\fP. Before you consider adding the certificate to your list of trusted certificates, you can execute a \f2\-printcert\fP command to view its fingerprints, as in .LP @@ -2083,16 +1659,14 @@ View it first (using the \f2\-printcert\fP command, or the \f2\-importcert\fP co .fi .LP -Then call or otherwise contact the person who sent the certificate, and compare the fingerprint(s) that you see with the ones that they show. Only if the fingerprints are equal is it guaranteed that the certificate has not been replaced in transit with somebody else's (for example, an attacker's) certificate. If such an attack took place, and you did not check the certificate before you imported it, you would end up trusting anything the attacker has signed (for example, a JAR file with malicious class files inside). +.LP +Then call or otherwise contact the person who sent the certificate, and compare the fingerprint(s) that you see with the ones that they show. Only if the fingerprints are equal is it guaranteed that the certificate has not been replaced in transit with somebody else's (for example, an attacker's) certificate. If such an attack took place, and you did not check the certificate before you imported it, you would end up trusting anything the attacker has signed (for example, a JAR file with malicious class files inside). +.LP .LP Note: it is not required that you execute a \f2\-printcert\fP command prior to importing a certificate, since before adding a certificate to the list of trusted certificates in the keystore, the \f2\-importcert\fP command prints out the certificate information and prompts you to verify it. You then have the option of aborting the import operation. Note, however, this is only the case if you invoke the \f2\-importcert\fP command without the \f2\-noprompt\fP option. If the \f2\-noprompt\fP option is given, there is no interaction with the user. .LP -.RE .SS Warning Regarding Passwords -.LP -.RS 3 - .LP .LP Most commands operating on a keystore require the store password. Some commands require a private/secret key password. @@ -2103,12 +1677,8 @@ Passwords can be specified on the command line (in the \f2\-storepass\fP and \f2 .LP If you don't specify a required password option on a command line, you will be prompted for it. .LP -.RE .SS Warning Regarding Certificate Conformance -.LP -.RS 3 - .LP .LP The Internet standard @@ -2117,38 +1687,30 @@ The Internet standard .fi http://tools.ietf.org/rfc/rfc5280.txt has defined a profile on conforming X.509 certificates, which includes what values and value combinations are valid for certificate fields and extensions. \f3keytool\fP has not enforced all these rules so it can generate certificates which do not conform to the standard, and these certificates might be rejected by JRE or other applications. Users should make sure that they provide the correct options for \f2\-dname\fP, \f2\-ext\fP, etc. .LP -.RE .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 o -.LP -jar(1) tool documentation +jar(1) tool documentation .TP 2 o -.LP -jarsigner(1) tool documentation +jarsigner(1) tool documentation .TP 2 o -.LP the .na \f4Security\fP @ .fi -http://java.sun.com/docs/books/tutorial/security/index.html trail of the +http://download.oracle.com/javase/tutorial/security/index.html trail of the .na \f4Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial for examples of the use of \f3keytool\fP +http://download.oracle.com/javase/tutorial/ for examples of the use of \f3keytool\fP .RE .LP .SH "CHANGES" -.LP - .LP .LP The command interface for keytool changed in Java SE 6. @@ -2184,19 +1746,19 @@ o .na \f2\-keyclone\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#keycloneCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#keycloneCmd .TP 2 o .na \f2\-identitydb\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#identitydbCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#identitydbCmd .TP 2 o .na \f2\-selfcert\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#selfcertCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#selfcertCmd .RE .LP diff --git a/jdk/src/linux/doc/man/native2ascii.1 b/jdk/src/linux/doc/man/native2ascii.1 index f455eaf01f3..54beff1d0ab 100644 --- a/jdk/src/linux/doc/man/native2ascii.1 +++ b/jdk/src/linux/doc/man/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "02 Jun 2010" +.TH native2ascii 1 "10 May 2011" .LP .SH "Name" native2ascii \- Native\-to\-ASCII Converter .LP -.RS 3 - .LP +Converts a file with characters in any supported character encoding to one with ASCII and/or Unicode escapes, or visa versa. .LP -Converts a file with native\-encoded characters (characters which are non\-Latin 1 and non\-Unicode) to one with Unicode\-encoded characters. -.LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,31 +40,29 @@ Converts a file with native\-encoded characters (characters which are non\-Latin .LP .SH "DESCRIPTION" .LP - .LP -.LP -The Java compiler and other Java tools can only process files which contain Latin\-1 and/or Unicode\-encoded (\\udddd notation) characters. \f2native2ascii\fP converts files which contain other character encodings into files containing Latin\-1 and/or Unicode\-encoded charaters. +\f2native2ascii\fP converts files that are encoded to any character encoding that is supported by the Java runtime environment to files encoded in ASCII, using Unicode escapes ("\\uxxxx" notation) for all characters that are not part of the ASCII character set. This process is required for properties files containing characters not in ISO\-8859\-1 character sets. The tool can also perform the reverse conversion. .LP .LP If \f2outputfile\fP is omitted, standard output is used for output. If, in addition, \f2inputfile\fP is omitted, standard input is used for input. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 \-reverse -Perform the reverse operation: convert a file with Latin\-1 and/or Unicode encoded characters to one with native\-encoded characters. +Perform the reverse operation: Convert a file encoded in ISO\-8859\-1 with Unicode escapes to a file in any character encoding supported by the Java runtime environment. .br .br .TP 3 \-encoding encoding_name -Specify the encoding name which is used by the conversion procedure. The default encoding is taken from System property \f2file.encoding\fP. The \f2encoding_name\fP string must be taken from the first column of the table of supported encodings in the +Specifies the name of the character encoding to be used by the conversion procedure. If this option is not present, the default character encoding (as determined by the \f2java.nio.charset.Charset.defaultCharset\fP method) is used. The \f2encoding_name\fP string must be the name of a character encoding that is supported by the Java runtime environment \- see the .na \f4Supported Encodings\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html document. +http://download.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html document. +.br +.br .TP 3 \-Joption Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. diff --git a/jdk/src/linux/doc/man/orbd.1 b/jdk/src/linux/doc/man/orbd.1 index 0c2b5bbbe30..108ad9e1ce2 100644 --- a/jdk/src/linux/doc/man/orbd.1 +++ b/jdk/src/linux/doc/man/orbd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,14 +19,11 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "02 Jun 2010" +.TH orbd 1 "10 May 2011" .LP .SH "Name" orbd \- The Object Request Broker Daemon -.LP -.RS 3 - .LP .LP \f3orbd\fP is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment. @@ -36,12 +33,9 @@ orbd \- The Object Request Broker Daemon .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -53,8 +47,6 @@ orbd <\fP\f3options\fP\f3> .LP .SH "DESCRIPTION" -.LP - .LP .LP The Server Manager included with the \f3orbd\fP tool is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment. The persistent servers, while publishing the persistent object references in the Naming Service, include the port number of the ORBD in the object reference instead of the port number of the Server. The inclusion of an ORBD port number in the object reference for persistent object references has the following advantages: @@ -77,7 +69,7 @@ When \f2orbd\fP starts up, it also starts a naming service. For more information .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html. .LP .SH "OPTIONS" .LP @@ -141,11 +133,11 @@ A Naming Service is a CORBA service that allows .na \f2CORBA objects\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object to be named by means of binding a name to an object reference. The +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object to be named by means of binding a name to an object reference. The .na \f2name binding\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20binding may be stored in the naming service, and a client may supply the name to obtain the desired object reference. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#name%20binding may be stored in the naming service, and a client may supply the name to obtain the desired object reference. .LP .LP Prior to running a client or a server, you will start ORBD. ORBD includes a persistent Naming Service and a transient Naming Service, both of which are an implementation of the COS Naming Service. @@ -224,7 +216,7 @@ For more information on the Naming Service included with ORBD, see .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html. .LP .SH "Server Manager" .LP @@ -239,7 +231,7 @@ Using the .na \f2sample tutorial\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.html for our demonstration, you would run the \f2idlj\fP compiler and \f2javac\fP compiler as shown in the tutorial. To run the Server Manager, follow these steps for running the application: +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlExample.html for our demonstration, you would run the \f2idlj\fP compiler and \f2javac\fP compiler as shown in the tutorial. To run the Server Manager, follow these steps for running the application: .LP .LP Start \f2orbd\fP. @@ -362,7 +354,7 @@ o .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html .br .TP 2 o diff --git a/jdk/src/linux/doc/man/pack200.1 b/jdk/src/linux/doc/man/pack200.1 index 299a96f5a22..8f34d6dd51a 100644 --- a/jdk/src/linux/doc/man/pack200.1 +++ b/jdk/src/linux/doc/man/pack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,24 +19,19 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "02 Jun 2010" +.TH pack200 1 "10 May 2011" .LP .SH "Name" pack200 \- JAR Packing tool .LP .SH "SYNOPSIS" -.LP - .LP .LP \f4pack200\fP\f2 [ \fP\f2options\fP ] \f2output\-file\fP \f2JAR\-file\fP .LP .LP Options may be in any order. The last option on the command line or in a properties file supersedes all previously specified options. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -51,10 +46,7 @@ Name of the input file. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f2pack200\fP tool is a Java application that transforms a JAR file into a compressed \f2pack200\fP file using the Java \f2gzip\fP compressor. The \f2pack200\fP files are highly compressed files that can be directly deployed, saving bandwidth and reducing download time. @@ -64,32 +56,20 @@ The \f2pack200\fP tool uses several options to fine\-tune and set the compressio .LP .SS Typical usage: -.LP -.RS 3 - .LP .LP \f2% pack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP In this example, \f2myarchive.pack.gz\fP is produced using the default \f2pack200\fP settings. .LP .SH "OPTIONS" -.LP - .LP .LP \f4\-r \-\-repack\fP -.LP -.RS 3 - .LP .LP Produces a JAR file by packing the file \f2myarchive.jar\fP and unpacking it. The resulting file can be used as an input to the \f2jarsigner(1)\fP tool. -.LP -.RS 3 - .LP .LP \f2% pack200 \-\-repack myarchive\-packer.jar myarchive.jar\fP @@ -97,50 +77,35 @@ Produces a JAR file by packing the file \f2myarchive.jar\fP and unpacking it. Th .LP \f2% pack200 \-\-repack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-g \-\-no\-gzip\fP -.LP -.RS 3 - .LP .LP Produces a \f2pack200\fP file. With this option a suitable compressor must be used, and the target system must use a corresponding decompresser. -.LP -.RS 3 - .LP .LP \f2% pack200 \-\-no\-gzip myarchive.pack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-G \-\-strip\-debug\fP -.LP -.RS 3 - .LP .LP Strips attributes used for debugging from the output. These include \f2SourceFile\fP, \f2LineNumberTable\fP, \f2LocalVariableTable\fP and \f2LocalVariableTypeTable\fP. Removing these attributes reduces the size of both downloads and installations but reduces the usefulness of debuggers. .LP -.RE +.LP +\f4\-\-keep\-file\-order\fP +.LP +.LP +Preserve the order of files in the input file; this is the default behavior. +.LP .LP \f4\-O \-\-no\-keep\-file\-order\fP -.LP -.RS 3 - .LP .LP The packer will reorder and transmit all elements. Additionally, the packer may remove JAR directory names. This will reduce the download size; however, certain JAR file optimizations, such as indexing, may not work correctly. .LP -.RE .LP \f4\-Svalue \-\-segment\-limit=\fP\f2value\fP -.LP -.RS 3 - .LP .LP The value is the estimated target size N (in bytes) of each archive segment. If a single input file requires @@ -151,17 +116,13 @@ more than N bytes, it will be given its own archive segment. As a special case, The size of each segment is estimated by counting the size of each input file to be transmitted in the segment, along with the size of its name and other transmitted properties. .LP .LP -The default is \f21000000\fP (a million bytes). This allows input JAR files of moderate size to be transmitted in one segment. It also puts a limit on memory requirements for packers and unpackers. +The default is \-1, which means the packer will always create a single segment output file. In cases where extremely large output files are generated, users are strongly encouraged to use segmenting or break up the input file into smaller JARs. .LP .LP A 10MB JAR packed without this limit will typically pack about 10% smaller, but the packer may require a larger Java heap (about ten times the segment limit). .LP -.RE .LP \f4\-Evalue \-\-effort=\fP\f2value\fP -.LP -.RS 3 - .LP .LP If the value is set to a single decimal digit, the packer will use the indicated amount of effort in compressing the archive. Level \f21\fP may produce somewhat larger size and faster compression speed, while level \f29\fP will take much longer but may produce better compression. The special value \f20\fP instructs the packer to copy through the original JAR file directly with no compression. The JSR 200 standard requires any unpacker to understand this special case as a pass\-through of the entire archive. @@ -169,12 +130,8 @@ If the value is set to a single decimal digit, the packer will use the indicated .LP The default is \f25\fP, investing a modest amount of time to produce reasonable compression. .LP -.RE .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP -.LP -.RS 3 - .LP .LP Overrides the default, which preserves the input information, but may cause the transmitted archive to be larger. The possible values are: @@ -195,12 +152,8 @@ Preserve deflation hints observed in the input JAR. (This is the default.) .RE .LP -.RE .LP \f4\-mvalue \-\-modification\-time=\fP\f2value\fP -.LP -.RS 3 - .LP .LP The possible values are: @@ -215,22 +168,14 @@ Preserves modification times observed in the input JAR. (This is the default.) .RE .LP -.RE .LP \f4\-Pfile \-\-pass\-file=\fP\f2file\fP -.LP -.RS 3 - .LP .LP Indicates that a file should be passed through bytewise with no compression. By repeating the option, multiple files may be specified. There is no pathname transformation, except that the system file separator is replaced by the JAR file separator "\f2/\fP". The resulting file names must match exactly as strings with their occurrences in the JAR file. If file is a directory name, all files under that directory will be passed. .LP -.RE .LP \f4\-Uaction \-\-unknown\-attribute=\fP\f2action\fP -.LP -.RS 3 - .LP .LP Overrides the default behavior; i.e., the classfile containing the unknown attribute will be passed through with the specified action. The possible values for actions are: @@ -248,7 +193,6 @@ Upon encountering this attribute, the entire class will be transmitted as though .RE .LP -.RE .LP \f4\-Cattribute\-name=\fP\f2layout\fP \f3\-\-class\-attribute=\fP\f2attribute\-name=action\fP .br @@ -257,9 +201,6 @@ Upon encountering this attribute, the entire class will be transmitted as though \f4\-Mattribute\-name=\fP\f2layout\fP \f3\-\-method\-attribute=\fP\f2attribute\-name=action\fP .br \f4\-Dattribute\-name=\fP\f2layout\fP \f3\-\-code\-attribute=\fP\f2attribute\-name=action\fP -.LP -.RS 3 - .LP .LP With the above four options, the attribute layout can be specified for a class entity, such as Class attribute, Field attribute, Method attribute, and Code attribute. The attribute\-name is the name of the attribute for which the layout or action is being defined. The possible values for action are: @@ -282,18 +223,11 @@ Upon encountering this attribute, the attribute will be removed from the output. .LP Example: \f2\-\-class\-attribute=CompilationID=pass\fP will cause the class file containing this attribute to be passed through without further action by the packer. .LP -.RE .LP \f4\-f\fP\f2 \fP\f2pack.properties\fP \f3\-\-config\-file=\fP\f2pack.properties\fP -.LP -.RS 3 - .LP .LP A configuration file, containing Java properties to initialize the packer, may be specified on the command line. -.LP -.RS 3 - .LP .LP \f2% pack200 \-f pack.properties myarchive.pack.gz myarchive.jar\fP @@ -317,62 +251,47 @@ A configuration file, containing Java properties to initialize the packer, may b \f2# Change the segment limit to be unlimited.\fP .br \f2segment.limit=\-1\fP -.LP -.RE -.RE -.RS 3 - .LP .LP \f4\-v \-\-verbose\fP -.LP -.RS 3 - .LP .LP Outputs minimal messages. Multiple specification of this option will output more verbose messages. .LP -.RE .LP \f4\-q \-\-quiet\fP -.LP -.RS 3 - .LP .LP Specifies quiet operation with no messages. .LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP -.LP -.RS 3 - .LP .LP Specifies a log file to output messages. .LP -.RE .LP -\f4\-Joption\fP -.LP -.RS 3 - +\f4\-? \-h \-\-help\fP .LP .LP -Passes option to the Java launcher called by \f2pack200\fP. For example, \f2\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f2\-X\fP, it is not a standard option of \f2pack200\fP. It is a common convention for \f2\-J\fP to pass options to the underlying VM executing applications written in Java. +Prints help information about this command. +.LP +.LP +\f4\-V \-\-version\fP +.LP +.LP +Prints version information about this command. +.LP +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +Passes \f2option\fP to the Java launcher called by \f2pack200\fP. For example, \f2\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f2\-X\fP, it is not a standard option of \f2pack200\fP. It is a common convention for \f2\-J\fP to pass options to the underlying VM executing applications written in Java. .LP -.RE -.RE .SH "EXIT STATUS" -.LP - .LP .LP The following exit values are returned: -.LP -.RS 3 - .LP .LP \f2\ 0\fP for successful completion; @@ -380,7 +299,6 @@ The following exit values are returned: .LP \f2>0\fP if an error occurs. .LP -.RE .SH "SEE ALSO" .LP .RS 3 @@ -392,13 +310,13 @@ o .na \f2Java SE Documentation\fP @ .fi -http://java.sun.com/javase/6/docs/index.html +http://download.oracle.com/javase/7/docs/index.html .TP 2 o .na \f2Java Deployment Guide \- Pack200\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o jar(1) \- Java Archive Tool @@ -412,8 +330,6 @@ o .LP .SH "NOTES" -.LP - .LP .LP This command should not be confused with \f2pack(1)\fP. They are distinctly separate products. diff --git a/jdk/src/linux/doc/man/policytool.1 b/jdk/src/linux/doc/man/policytool.1 index 5d339637f39..8fd33bcdbf4 100644 --- a/jdk/src/linux/doc/man/policytool.1 +++ b/jdk/src/linux/doc/man/policytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "02 Jun 2010" +.TH policytool 1 "10 May 2011" .LP .SH "Name" @@ -27,8 +27,6 @@ policytool \- PolicyTool Administration GUI Utility .LP \f3policytool\fP reads and writes a plain text policy file based on user input via the utility GUI. .SH "SYNOPSIS" -.LP - .LP .RS 3 .TP 3 @@ -57,7 +55,7 @@ The file name .na \f2the Policytool Users Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyGuide.html. .SH "OPTIONS" .RS 3 .TP 3 @@ -67,22 +65,22 @@ Loads \f2filename\fP. .na \f2Default Policy Implementation and Syntax\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html .br .na \f2Policy Tool Users' Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyGuide.html .br .na \f2Security Permissions\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/permissions.html .br .na \f2Security Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/overview/jsoverview.html .br .RE .RE diff --git a/jdk/src/linux/doc/man/rmic.1 b/jdk/src/linux/doc/man/rmic.1 index ffe0b1c04fc..95f166206f2 100644 --- a/jdk/src/linux/doc/man/rmic.1 +++ b/jdk/src/linux/doc/man/rmic.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "02 Jun 2010" +.TH rmic 1 "10 May 2011" .LP .SH "Name" rmic \- The Java RMI Compiler -.LP -.RS 3 - .LP .LP \f3rmic\fP generates stub, skeleton, and tie classes for remote objects using either the JRMP or IIOP protocols. Also generates OMG IDL. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,8 +40,6 @@ rmic [ \fP\f3options\fP\f3 ] \fP\f4package\-qualified\-class\-name(s)\fP\f3 .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmic\fP compiler generates stub and skeleton class files (JRMP protocol) and stub and tie class files (IIOP protocol) for remote objects. These classes files are generated from compiled Java programming language classes that are remote object implementation classes. A remote implementation class is a class that implements the interface \f2java.rmi.Remote\fP. The class names in the \f3rmic\fP command must be for classes that have been compiled successfully with the \f3javac\fP command and must be fully package qualified. For example, running \f3rmic\fP on the class file name \f2HelloImpl\fP as shown here: @@ -80,8 +72,6 @@ By default, \f3rmic\fP generates stub classes that use the 1.2 JRMP stub protoco A stub implements only the remote interfaces, not any local interfaces that the remote object also implements. Because a JRMP stub implements the same set of remote interfaces as the remote object itself, a client can use the Java programming language's built\-in operators for casting and type checking. For IIOP, the \f2PortableRemoteObject.narrow\fP method must be used. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -90,9 +80,6 @@ Overrides location of bootstrap class files .TP 3 \-classpath path Specifies the path \f3rmic\fP uses to look up classes. This option overrides the default or the CLASSPATH environment variable if it is set. Directories are separated by colons. Thus the general format for \f2path\fP is: -.RS 3 - -.LP .nf \f3 .fl @@ -100,11 +87,7 @@ Specifies the path \f3rmic\fP uses to look up classes. This option overrides the .fl \fP .fi -.RE For example: -.RS 3 - -.LP .nf \f3 .fl @@ -112,13 +95,9 @@ For example: .fl \fP .fi -.RE .TP 3 \-d directory Specifies the root destination directory for the generated class hierarchy. You can use this option to specify a destination directory for the stub, skeleton, and tie files. For example, the command -.RS 3 - -.LP .nf \f3 .fl @@ -126,7 +105,6 @@ Specifies the root destination directory for the generated class hierarchy. You .fl \fP .fi -.RE would place the stub and skeleton classes derived from \f2MyClass\fP into the directory \f2/java/classes/foo\fP. If the \f2\-d\fP option is not specified, the default behavior is as if \f2"\-d\ ."\fP were specified: the package hierarchy of the target class is created in the current directory, and stub/tie/skeleton files are placed within it. (Note that in some previous versions of \f3rmic\fP, if \f2\-d\fP was not specified, then the package hierarchy was \f2not\fP created, and all of the output files were placed directly in the current directory.) .br \ @@ -136,16 +114,16 @@ Overrides location of installed extensions .TP 3 \-g Enables generation of all debugging information, including local variables. By default, only line number information is generated. -.LP .TP 3 \-idl Causes \f2rmic\fP to generate OMG IDL for the classes specified and any classes referenced. IDL provides a purely declarative, programming language\-independent way of specifying an object's API. The IDL is used as a specification for methods and data that can be written in and invoked from any language that provides CORBA bindings. This includes Java and C++ among others. See the .na \f2Java Language to IDL Mapping\fP @ .fi -http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) document for a complete description. -.LP -When the \f2\-idl\fP option is used, other options also include: +http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) document for a complete description. +.br +.br +When the \f2\-idl\fP option is used, other options also include: .RS 3 .TP 3 \-always or \-alwaysgenerate @@ -160,31 +138,22 @@ Specifies IDLEntity package mapping. For example:\ \f2\-idlModule foo.bar my::r \-idlFile\ fromJavaPackage[.class]\ toIDLFile Specifies IDLEntity file mapping. For example:\ \f2\-idlFile test.pkg.X TEST16.idl\fP.\ .RE -.LP .TP 3 \-iiop -Causes \f2rmic\fP to generate IIOP stub and tie classes, rather than JRMP stub and skeleton classes. A stub class is a local proxy for a remote object and is used by clients to send calls to a server. Each remote interface requires a stub class, which implements that remote interface. A client's reference to a remote object is actually a reference to a stub. Tie classes are used on the server side to process incoming calls, and dispatch the calls to the proper implementation class. Each implementation class requires a tie class. -.LP +Causes \f2rmic\fP to generate IIOP stub and tie classes, rather than JRMP stub and skeleton classes. A stub class is a local proxy for a remote object and is used by clients to send calls to a server. Each remote interface requires a stub class, which implements that remote interface. A client's reference to a remote object is actually a reference to a stub. Tie classes are used on the server side to process incoming calls, and dispatch the calls to the proper implementation class. Each implementation class requires a tie class. +.br +.br Invoking \f2rmic\fP with the \f2\-iiop\fP generates stubs and ties that conform to this naming convention: -.RS 3 - -.LP .nf \f3 .fl _<implementationName>_stub.class .fl -\fP -.br -\f3 -.fl _<interfaceName>_tie.class .fl \fP .fi -.RE -.LP -When the \f2\-iiop\fP option is used, other options also include: +When the \f2\-iiop\fP option is used, other options also include: .RS 3 .TP 3 \-always or \-alwaysgenerate @@ -197,13 +166,11 @@ Do not create stubs optimized for same\-process clients and servers. Must be used with the \f2\-idl\fP option. Prevents addition of \f2valuetype\fP methods and initializers to emitted IDL. These methods and initializers are optional for \f2valuetype\fPs, and are generated unless the \f2\-noValueMethods\fP option is specified when using the \f2\-idl\fP option. .TP 3 \-poa -Changes the inheritance from \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP to \f2org.omg.PortableServer.Servant\fP. -.LP -The \f2PortableServer\fP module for the +Changes the inheritance from \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP to \f2org.omg.PortableServer.Servant\fP. The \f2PortableServer\fP module for the .na \f2Portable Object Adapter\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. Based on the OMG IDL to Java Language Mapping Specification, CORBA V 2.3.1 ptc/00\-01\-08.pdf. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html (POA) defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. Based on the OMG IDL to Java Language Mapping Specification, CORBA V 2.3.1 ptc/00\-01\-08.pdf. .RE .TP 3 \-J @@ -214,18 +181,18 @@ Retains the generated \f2.java\fP source files for the stub, skeleton, and/or ti .TP 3 \-nowarn Turns off warnings. If used the compiler does not print out any warnings. -.LP +.TP 3 +\-nowrite +Does not write compiled classes to the file system. .TP 3 \-vcompat Generates stub and skeleton classes compatible with both the 1.1 and 1.2 JRMP stub protocol versions. (This option was the default in releases prior to 5.0.) The generated stub classes will use the 1.1 stub protocol version when loaded in a JDK 1.1 virtual machine and will use the 1.2 stub protocol version when loaded into a 1.2 (or later) virtual machine. The generated skeleton classes will support both 1.1 and 1.2 stub protocol versions. The generated classes are relatively large in order to support both modes of operation. .TP 3 \-verbose Causes the compiler and linker to print out messages about what classes are being compiled and what class files are being loaded. -.LP .TP 3 \-v1.1 Generates stub and skeleton classes for the 1.1 JRMP stub protocol version only. Note that this option is only useful for generating stub classes that are serialization\-compatible with pre\-existing, statically\-deployed stub classes that were generated by the \f3rmic\fP tool from JDK 1.1 and that cannot be upgraded (and dynamic class loading is not being used). -.LP .TP 3 \-v1.2 (default) Generates stub classes for the 1.2 JRMP stub protocol version only. No skeleton classes are generated with this option because skeleton classes are not used with the 1.2 stub protocol version. The generated stub classes will not work if they are loaded into a JDK 1.1 virtual machine. @@ -233,16 +200,11 @@ Generates stub and skeleton classes for the 1.1 JRMP stub protocol version only. .LP .SH "ENVIRONMENT VARIABLES" -.LP - .LP .RS 3 .TP 3 CLASSPATH Used to provide the system a path to user\-defined classes. Directories are separated by colons. For example, -.RS 3 - -.LP .nf \f3 .fl @@ -251,18 +213,15 @@ Used to provide the system a path to user\-defined classes. Directories are sepa \fP .fi .RE -.RE .LP .SH "SEE ALSO" -.LP - .LP .LP java(1), javac(1), .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath .LP diff --git a/jdk/src/linux/doc/man/rmid.1 b/jdk/src/linux/doc/man/rmid.1 index 20171febd0e..763ee378af9 100644 --- a/jdk/src/linux/doc/man/rmid.1 +++ b/jdk/src/linux/doc/man/rmid.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "02 Jun 2010" +.TH rmid 1 "10 May 2011" .LP .SH "Name" rmid \- The Java RMI Activation System Daemon -.LP -.RS 3 - .LP .LP \f3rmid\fP starts the activation system daemon that allows objects to be registered and activated in a virtual machine (VM). .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,19 +40,17 @@ rmid [options] .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmid\fP tool starts the activation system daemon. The activation system daemon must be started before activatable objects can be either registered with the activation system or activated in a VM. See the .na \f2Java RMI Specification\fP @ .fi -http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.html and +http://download.oracle.com/javase/7/docs/platform/rmi/spec/rmiTOC.html and .na \f2Activation tutorials\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html for details on how to write programs that use activatable remote objects. +http://download.oracle.com/javase/7/docs/technotes/guides/rmi/activation/overview.html for details on how to write programs that use activatable remote objects. .LP .LP The daemon can be started by executing the \f2rmid\fP command, and specifying a security policy file, as follows: @@ -132,8 +124,6 @@ The \f2\-log\fP option is required. If this option is not specified, \f2rmid\fP See the man pages for \f2inetd\fP (Solaris) or \f2xinetd\fP (Linux) for details on how to configure services to be started on demand. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -169,7 +159,6 @@ Specifies an option that is passed to the \f2java\fP interpreter running \f2rmid .TP 3 \-J\-Dsun.rmi.activation.execPolicy=<policy> Specifies the policy that \f2rmid\fP employs to check commands and command\-line options used to launch the VM in which an activation group runs. Please note that this option exists only in Sun's implementation of the Java RMI activation daemon. If this property is not specified on the command line, the result is the same as if \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP were specified. The possible values of \f2<policy>\fP can be \f2default\fP, \f2<policyClassName>\fP, or \f2none\fP: -.LP .RS 3 .TP 2 o @@ -255,17 +244,9 @@ The first permission granted allow \f2rmid\fP to execute the 1.7.0 version of th The third permission granted, an \f2ExecOptionPermission\fP, allows \f2rmid\fP to launch an activation group that defines the security policy file to be \f2/files/policies/group.policy\fP. The next permission allows the \f2java.security.debug\fP property to be used by an activation group. The last permission allows any property in the \f2sun.rmi\fP property name hierarchy to be used by activation groups. .LP To start \f2rmid\fP with a policy file, the \f2java.security.policy\fP property needs to be specified on \f2rmid\fP's command line, for example: -.RS 3 - -.LP -.LP -\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .LP +\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .RE -.RE -.TP 2 -o -.LP .TP 2 o \f4<policyClassName>\fP @@ -285,7 +266,6 @@ The \f2policyClassName\fP specifies a public class with a public, no\-argument c \fP .fi Before launching an activation group, \f2rmid\fP calls the policy's \f2checkExecCommand\fP method, passing it the activation group descriptor and an array containing the complete command to launch the activation group. If the \f2checkExecCommand\fP throws a \f2SecurityException\fP, \f2rmid\fP will not launch the activation group and an \f2ActivationException\fP will be thrown to the caller attempting to activate the object. -.LP .TP 2 o \f3none\fP @@ -318,9 +298,9 @@ Specifies the port \f2rmid\fP's registry uses. The activation system daemon bind \-stop Stops the current invocation of \f2rmid\fP, for a port specified by the \f2\-port\fP option. If no port is specified, it will stop the \f2rmid\fP running on port 1098. .RE -.SH "ENVIRONMENT VARIABLES" -.LP +.LP +.SH "ENVIRONMENT VARIABLES" .LP .RS 3 .TP 3 @@ -337,14 +317,12 @@ Used to provide the system a path to user\-defined classes. Directories are sepa .LP .SH "SEE ALSO" -.LP - .LP .LP rmic(1), .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath, java(1) +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath, java(1) .LP diff --git a/jdk/src/linux/doc/man/rmiregistry.1 b/jdk/src/linux/doc/man/rmiregistry.1 index f3bc87b0b39..c94d270d623 100644 --- a/jdk/src/linux/doc/man/rmiregistry.1 +++ b/jdk/src/linux/doc/man/rmiregistry.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "02 Jun 2010" +.TH rmiregistry 1 "10 May 2011" .LP .SH "Name" rmiregistry \- The Java Remote Object Registry .LP .RS 3 - -.LP -.LP -The \f3rmiregistry\fP command starts a remote object registry on the specified port on the current host. -.LP +The \f3rmiregistry\fP command starts a remote object registry on the specified port on the current host. .RE -.SH "SYNOPSIS" -.LP +.LP +.SH "SYNOPSIS" .LP .nf \f3 @@ -46,8 +42,6 @@ rmiregistry [\fP\f4port\fP\f3] .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmiregistry\fP command creates and starts a remote object registry on the specified \f2port\fP on the current host. If \f2port\fP is omitted, the registry is started on port 1099. The \f3rmiregistry\fP command produces no output and is typically run in the background. For example: @@ -68,8 +62,6 @@ The methods of the \f2java.rmi.registry.LocateRegistry\fP class are used to get The URL\-based methods of the \f2java.rmi.Naming\fP class operate on a registry and can be used to look up a remote object on any host, and on the local host: bind a simple (string) name to a remote object, rebind a new name to a remote object (overriding the old binding), unbind a remote object, and list the URLs bound in the registry. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -80,17 +72,12 @@ Used in conjunction with any \f2java\fP option, it passes the option following t .LP .SH "SEE ALSO" .LP - -.LP -.LP java(1), .na \f2java.rmi.registry.LocateRegistry\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html and +http://download.oracle.com/javase/7/docs/api/java/rmi/registry/LocateRegistry.html and .na \f2java.rmi.Naming\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html -.LP - +http://download.oracle.com/javase/7/docs/api/java/rmi/Naming.html diff --git a/jdk/src/linux/doc/man/schemagen.1 b/jdk/src/linux/doc/man/schemagen.1 index f23cae2052f..59c4c97ea58 100644 --- a/jdk/src/linux/doc/man/schemagen.1 +++ b/jdk/src/linux/doc/man/schemagen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "02 Jun 2010" +.TH schemagen 1 "10 May 2011" .LP .SH "Name" @@ -30,8 +30,7 @@ schemagen \- Java(TM) Architecture for XML Binding Schema Generator .br \f3Implementation Version:\fP 2.1.3 .LP -.SS -Launching schemagen +.SH "Launching schemagen" .LP .LP The schema generator can be launched using the appropriate \f2schemagen\fP shell script in the \f2bin\fP directory for your platform. @@ -45,9 +44,6 @@ We also provide an Ant task to run the schema generator \- see the instructions \f2using schemagen with Ant\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html. -.LP -.RS 3 - .LP .nf \f3 @@ -58,19 +54,13 @@ Note: Writing schema1.xsd .fl \fP .fi -.RE .LP .LP If your java sources/classes reference other classes, they must be accessable on your system CLASSPATH environment variable, or they need to be given to the tool by using the \f2\-classpath\fP/\f2\-cp\fP options. Otherwise you will see errors when generating your schema. .LP -.RS 3 - -.LP -\f3Command Line Options\fP -.LP -.RS 3 - +.SS +Command Line Options .LP .nf \f3 @@ -79,24 +69,29 @@ Usage: schemagen [\-options ...] <java files> .fl .fl -Options: +Options: .fl - \-d <path> : Specify where to place processor and javac generated class files + \-d <path> : specify where to place processor and javac generated class files .fl - \-cp <path> : Specify where to find user specified files + \-cp <path> : specify where to find user specified files .fl - \-classpath <path> : Specify where to find user specified files + \-classpath <path> : specify where to find user specified files .fl - \-help : Display this usage message + \-encoding <encoding> : specify encoding to be used for apt/javac invocation +.fl + +.fl + \-episode <file> : generate episode file for separate compilation +.fl + \-version : display version information +.fl + \-help : display this usage message .fl \fP .fi -.RE .LP -.RE -.SS -Generated Resource Files +.SH "Generated Resource Files" .LP .LP The current schema generator simply creates a schema file for each namespace referenced in your Java classes. There is no way to control the name of the generated schema files at this time. For that purpose, use @@ -105,7 +100,8 @@ The current schema generator simply creates a schema file for each namespace ref .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html. .LP -.SH "See Also" +.SH "Name" +See Also .LP .RS 3 .TP 2 @@ -124,7 +120,7 @@ o .na \f2Java Architecture for XML Binding (JAXB)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/xml/jaxb/index.html .RE .LP diff --git a/jdk/src/linux/doc/man/serialver.1 b/jdk/src/linux/doc/man/serialver.1 index 5b15b5423a8..cb653146ba7 100644 --- a/jdk/src/linux/doc/man/serialver.1 +++ b/jdk/src/linux/doc/man/serialver.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "02 Jun 2010" +.TH serialver 1 "10 May 2011" .LP .SH "Name" serialver \- The Serial Version Command -.LP -.RS 3 - .LP .LP The \f3serialver\fP command returns the \f2serialVersionUID\fP. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -43,9 +37,6 @@ The \f3serialver\fP command returns the \f2serialVersionUID\fP. .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -57,17 +48,12 @@ One or more class names .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP \f3serialver\fP returns the \f2serialVersionUID\fP for one or more classes in a form suitable for copying into an evolving class. When invoked with no arguments it prints a usage line. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -87,37 +73,25 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "NOTES" -.LP - .LP .LP The \f3serialver\fP command loads and initializes the specified classes in its virtual machine, and by default, it does not set a security manager. If \f3serialver\fP is to be run with untrusted classes, a security manager can be set with the following option: -.LP -.RS 3 - .LP .LP \f2\-J\-Djava.security.manager\fP .LP -.RE .LP and, if necessary, a security policy can be specified with the following option: -.LP -.RS 3 - .LP .LP \f2\-J\-Djava.security.policy=<policy file>\fP .LP -.RE .SH "SEE ALSO" -.LP - .LP .LP .na \f2java.io.ObjectStreamClass\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/io/ObjectStreamClass.html +http://download.oracle.com/javase/7/docs/api/java/io/ObjectStreamClass.html .LP diff --git a/jdk/src/linux/doc/man/servertool.1 b/jdk/src/linux/doc/man/servertool.1 index 5606aa1b7ab..fbb0829a124 100644 --- a/jdk/src/linux/doc/man/servertool.1 +++ b/jdk/src/linux/doc/man/servertool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "02 Jun 2010" +.TH servertool 1 "10 May 2011" .LP .SH "Name" servertool \- The Java(TM) IDL Server Tool .LP -.RS 3 - -.LP -\f3servertool\fP provides a command\-line interface for application programmers to register, unregister, startup, and shutdown a persistent server. -.RE +\f3servertool\fP provides a command\-line interface for application programmers to register, unregister, startup, and shutdown a persistent server. .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -53,15 +47,11 @@ If you enter a command when starting \f2servertool\fP, the Java IDL Server Tool The \f2\-ORBInitialPort\fP \f2nameserverport\fP option is \f3required\fP. The value for \f2nameserverport\fP must specify the port on which \f2orbd\fP is running and listening for incoming requests. When using Solaris software, you must become root to start a process on a port under 1024. For this reason, we recommend that you use a port number greater than or equal to 1024 for the \f2nameserverport\fP. .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f2servertool\fP provides the command\-line interface for the application programmers to register, unregister, startup, and shutdown a persistent server. Other commands are provided to obtain various statistical information about the server. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -74,8 +64,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "COMMANDS" -.LP - .LP .RS 3 .TP 3 @@ -121,7 +109,5 @@ Exit the server tool. .LP .SH "SEE ALSO" -.LP - .LP orbd(1) diff --git a/jdk/src/linux/doc/man/tnameserv.1 b/jdk/src/linux/doc/man/tnameserv.1 index bdafd440d25..2279b17520e 100644 --- a/jdk/src/linux/doc/man/tnameserv.1 +++ b/jdk/src/linux/doc/man/tnameserv.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1999, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "02 Jun 2010" +.TH tnameserv 1 "10 May 2011" .LP .SH "Name" @@ -30,7 +30,7 @@ This document discusses using the Java IDL Transient Naming Service, \f2tnameser .na \f2Java IDL Naming Service Included with ORBD\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html topic. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html topic. .LP .LP Topics in this section include: @@ -120,11 +120,11 @@ For the client and server to find the Naming Service, they must be made aware of .na \f2The Hello World Example Using RMI\-IIOP\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.html. You could also use the command line options \f2\-ORBInitialPort\fP \f2nameserverport#\fP and \f2\-ORBInitialHost\fP \f2nameserverhostname\fP to tell the client and server where to find the Naming Service. +http://download.oracle.com/javase/7/docs/technotes/guides/rmi\-iiop/rmiiiopexample.html. You could also use the command line options \f2\-ORBInitialPort\fP \f2nameserverport#\fP and \f2\-ORBInitialHost\fP \f2nameserverhostname\fP to tell the client and server where to find the Naming Service. .na \f2Java IDL: Running the Hello World Example on TWO Machines\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html shows one way of doing this using the command line option. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/tutorial/jidl2machines.html shows one way of doing this using the command line option. .LP .LP For example, suppose the Transient Naming Service, \f2tnameserv\fP is running on port 1050 on host \f2nameserverhost\fP. The client is running on host \f2clienthost\fP and the server is running on host \f2serverhost\fP. @@ -170,16 +170,12 @@ The \-J option .LP This command\-line option is available for use with \f2tnameserve\fP: .RS 3 - -.LP -.RS 3 .TP 3 \-Joption Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. It is a common convention for \f3\-J\fP to pass options to the underlying virtual machine. .RE .LP -.RE .SH "Stopping the Java\ IDL Transient Naming Service" .LP .LP @@ -190,28 +186,27 @@ To stop the Java\ IDL naming service, use the relevant operating system command, .LP The following sample program illustrates how to add names to the namespace. It is a self\-contained Transient Naming Service client that creates the following simple tree. .LP -.nf -\f3 -.fl -\fP\f3 -.fl - \fP\f4Initial\fP\f3 -.fl - \fP\f4Naming Context\fP\f3 -.fl - / \\ -.fl - / \\ -.fl - plans \fP\f4Personal\fP\f3 -.fl - / \\ -.fl - / \\ -.fl - calendar schedule\fP -.fl -.fi +.RS 3 +.TP 2 +o +\f4Initial Naming Context\fP +.RS 3 +.TP 2 +* +\f3plans\fP +.TP 2 +* +\f4Personal\fP +.RS 3 +.TP 2 +- +\f3calendar\fP +.TP 2 +- +\f3schedule\fP +.RE +.RE +.RE .LP .LP diff --git a/jdk/src/linux/doc/man/unpack200.1 b/jdk/src/linux/doc/man/unpack200.1 index 13ec2b19667..ff6eb224090 100644 --- a/jdk/src/linux/doc/man/unpack200.1 +++ b/jdk/src/linux/doc/man/unpack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,24 +19,19 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "02 Jun 2010" +.TH unpack200 1 "10 May 2011" .LP .SH "Name" unpack200 \- JAR Unpacking tool .LP .SH "SYNOPSIS" -.LP - .LP .LP \f4unpack200\fP\f2 [ \fP\f2options\fP ] \f2input\-file\fP \f2JAR\-file\fP .LP .LP Options may be in any order. The last option on the command line supersedes all previously specified options. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -48,99 +43,71 @@ Name of the output JAR file. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP \f2unpack200\fP is a native implementation that transforms a packed file produced by \f2pack200\fP(1) into a JAR file. Typical usage: -.LP -.RS 3 - .LP .LP \f2% unpack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP In this example, the \f2myarchive.jar\fP is produced from \f2myarchive.pack.gz\fP using the default \f2unpack200\fP settings. .LP .SH "OPTIONS" -.LP -.SS -Standard Options -.LP -.RS 3 - .LP .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP -.LP -.RS 3 - .LP .LP Sets the deflation to be \f2true\fP, \f2false\fP, or \f2keep\fP on all entries within a JAR file. The default mode is \f2keep\fP. If \f2true\fP or \f2false\fP, overrides the default behavior and sets the deflation mode on all entries within the output JAR file. -.LP -.RE -.RE -.SS -Non\-Standard Options -.LP -.RS 3 - .LP .LP \f4\-r \-\-remove\-pack\-file\fP -.LP -.RS 3 - .LP .LP Removes the input packed file. .LP -.RE .LP \f4\-v \-\-verbose\fP -.LP -.RS 3 - .LP .LP Outputs minimal messages. Multiple specification of this option will output more verbose messages. .LP -.RE .LP \f4\-q \-\-quiet\fP -.LP -.RS 3 - .LP .LP Specifies quiet operation with no messages. .LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP -.LP -.RS 3 - .LP .LP Specifies a log file to output messages. .LP -.RE -.RE -.SH "EXIT STATUS" .LP - +\f4\-? \-h \-\-help\fP +.LP +.LP +Prints help information about this command. +.LP +.LP +\f4\-V \-\-version\fP +.LP +.LP +Prints version information about this command. +.LP +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +Passes \f2option\fP to the Java launcher called by \f2unpack200\fP. +.LP +.SH "EXIT STATUS" .LP .LP The following exit values are returned: -.LP -.RS 3 - .LP .LP \f2\ 0\fP if successful completion; @@ -148,7 +115,6 @@ The following exit values are returned: .LP \f2>0\fP if an error occurred. .LP -.RE .SH "SEE ALSO" .LP .RS 3 @@ -160,13 +126,13 @@ o .na \f2Java SE Documentation\fP @ .fi -http://java.sun.com/javase/6/docs/index.html +http://download.oracle.com/javase/7/docs/index.html .TP 2 o .na \f2Java Deployment Guide \- Pack200\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o jar(1) \- Java Archive Tool @@ -180,8 +146,6 @@ o .LP .SH "NOTES" -.LP - .LP .LP This command should not be confused with \f2unpack(1)\fP. They are distinctly separate products. diff --git a/jdk/src/linux/doc/man/wsgen.1 b/jdk/src/linux/doc/man/wsgen.1 index e210f1c2364..b9f7d596a30 100644 --- a/jdk/src/linux/doc/man/wsgen.1 +++ b/jdk/src/linux/doc/man/wsgen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,21 +19,15 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "02 Jun 2010" +.TH wsgen 1 "10 May 2011" .SH "Name" wsgen \- Java(TM) API for XML Web Services (JAX\-WS) 2.0 -.RS 3 - -.LP .LP \f3Specification Version:\fP 2.1 .br \f3Implementation Version:\fP 2.1.1 .LP -.LP The \f2wsgen\fP tool generates JAX\-WS portable artifacts used in JAX\-WS web services. The tool reads a web service endpoint implementation class (SEI) and generates all the required artifacts for web service deployment, and invocation -.LP -.RE .SH "Overview" .LP The \f2wsgen\fP tool generates JAX\-WS portable artifacts used in JAX\-WS web services. The tool reads a web service endpoint class and generates all the required artifacts for web service deployment, and invocation. JAXWS 2.1.1 RI also provides a wsgen ant task, see @@ -83,7 +77,6 @@ wsgen [options] <SEI>\fP The following table lists the \f2wsgen\fP options. .br .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -354,7 +347,7 @@ Used only in conjunction with the \f2\-wsdl\fP option. Used to specify a particu .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 139 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 133 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -571,7 +564,6 @@ Used only in conjunction with the \f2\-wsdl\fP option. Used to specify a particu .rm i+ .rm j+ .rm k+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-53 .LP diff --git a/jdk/src/linux/doc/man/wsimport.1 b/jdk/src/linux/doc/man/wsimport.1 index 6e10e4177aa..153b4986beb 100644 --- a/jdk/src/linux/doc/man/wsimport.1 +++ b/jdk/src/linux/doc/man/wsimport.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "02 Jun 2010" +.TH wsimport 1 "10 May 2011" .SH "Name" wsimport \- Java(TM) API for XML Web Services (JAX\-WS) 2.0 .LP @@ -88,7 +88,6 @@ wsimport [options] <wsdl> .LP The following table lists the \f2wsimport\fP options. .LP -.TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 .ps \n(.s @@ -676,7 +675,6 @@ Generate code as per the given JAX\-WS specification version. version 2.0 will g .rm l+ .rm m+ .rm n+ -.TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-66 .LP Multiple JAX\-WS and JAXB binding files can be specified using \f2\-b\fP option and they can be used to customize various things like package names, bean names, etc. More information on JAX\-WS and JAXB binding files can be found in the @@ -684,15 +682,294 @@ Multiple JAX\-WS and JAXB binding files can be specified using \f2\-b\fP option \f2customization documentation\fP @ .fi https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html. +.LP +The following table lists \f2wsimport\fP non\-standard options: +.LP +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 81 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Map headers not bound to request or response message to Java method parameters. +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +WSDL URI that specifies the file that contains authorization information; this URI is in the following format: http://\f2<user name>\fP:\f2<password>\fP@\f2<host name>\fP/\f2<Web service name>\fP?wsdl +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Print debugging information. +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +\f3\-Xno\-addressing\-databinding\fP +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Enable binding of W3C \f2EndpointReferenceType\fP to Java. +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Do not compile generated Java files. +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3Option\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-XadditionalHeaders\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xauthfile <file>\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xdebug\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xnocompile\fP +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3Description\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(f- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 193 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3Option\fP\h'|\n(41u'\f3Description\fP +.ne \n(a|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-XadditionalHeaders\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(b|u+\n(.Vu +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xauthfile <file>\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xdebug\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xnocompile\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 + .LP .SH "Example" .nf \f3 .fl -\fP\f3wsimport \-p stockquote http://stockquote.xyz/quote?wsdl\fP +\fP\f3wsimport \-p stockquote http://stockquote.example.com/quote?wsdl\fP .fl .fi .LP -This will generate the Java artifacts and compile them by importing the \f2http://stockquote.xyz/quote?wsdl\fP. +This will generate the Java artifacts and compile them by importing the \f2http://stockquote.example.com/quote?wsdl\fP. .br diff --git a/jdk/src/linux/doc/man/xjc.1 b/jdk/src/linux/doc/man/xjc.1 index a739d7d7acb..0425ba6480c 100644 --- a/jdk/src/linux/doc/man/xjc.1 +++ b/jdk/src/linux/doc/man/xjc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,19 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "02 Jun 2010" +.TH xjc 1 "10 May 2011" .LP -.ad c .SH "Name" xjc \- Java(TM) Architecture for XML Binding .br -Binding Compiler +Binding Compiler +.LP .LP \f3Specification Version:\fP 2.1 .br -\f3Reference Implementation (RI) Version:\fP 2.1.3 .ad l - +\f3Reference Implementation (RI) Version:\fP 2.1.3 .LP .SH "Launching xjc" .LP @@ -41,84 +40,87 @@ The binding compiler can be launched using the appropriate \f2xjc\fP shell scrip \f2using the XJC Ant task\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.html. -.LP -.RS 3 - .LP .LP \f2% xjc \-help\fP .LP -.RE -\f3Output\fP -.LP -.RS 3 - +.SS +Output .LP .nf \f3 .fl -Usage: xjc [\-options ...] <schema_file/URL/dir> ... [\-b <bindinfo>] ... +Usage: xjc [\-options ...] <schema file/URL/dir/jar> ... [\-b <bindinfo>] ... +.fl +If dir is specified, all schema files in it will be compiled. +.fl +If jar is specified, /META\-INF/sun\-jaxb.episode binding file will be compiled. .fl Options: .fl - \-nv : do not perform strict validation of the input schema(s) + \-nv : do not perform strict validation of the input schema(s) .fl - \-extension : allow vendor extensions \- do not strictly follow the + \-extension : allow vendor extensions \- do not strictly follow the Compatibility Rules and App E.2 from the JAXB Spec .fl - Compatibility Rules and App E.2 from the JAXB Spec + \-b <file/dir> : specify external bindings files (each <file> must have its own \-b); if a directory is given, **/*.xjb is searched .fl - \-b <file/dir> : specify external bindings files (each <file> must have its own \-b) + \-d <dir> : generated files will go into this directory .fl - If a directory is given, **/*.xjb is searched + \-p <pkg> : specifies the target package .fl - \-d <dir> : generated files will go into this directory + \-httpproxy <proxy> : set HTTP/HTTPS proxy; format is [user[:password]@]proxyHost:proxyPort .fl - \-p <pkg> : specifies the target package + \-httpproxyfile <f> : works like \-httpproxy but takes the argument in a file to protect password .fl - \-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort + \-classpath <arg> : specify where to find user class files .fl - \-httpproxyfile <file>: set the proxy string (same format as above). + \-catalog <file> : specify catalog files to resolve external entity references; support TR9401, XCatalog, and OASIS XML Catalog format .fl - \-classpath <arg> : specify where to find user class files + \-readOnly : generated files will be in read\-only mode .fl - \-catalog <file> : specify catalog files to resolve external entity references + \-npa : suppress generation of package level annotations (**/package\-info.java) .fl - support TR9401, XCatalog, and OASIS XML Catalog format. + \-no\-header : suppress generation of a file header with timestamp .fl - \-readOnly : generated files will be in read\-only mode + \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features .fl - \-npa : suppress generation of package level annotations (**/package\-info.java) + \-xmlschema : treat input as W3C XML Schema (default) .fl - \-no\-header : suppress generation of a file header with timestamp + \-relaxng : treat input as RELAX NG (experimental,unsupported) .fl - \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features. + \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) .fl - \-xmlschema : treat input as W3C XML Schema (default) + \-dtd : treat input as XML DTD (experimental,unsupported) .fl - \-relaxng : treat input as RELAX NG (experimental,unsupported) + \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) .fl - \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) + \-verbose : be extra verbose .fl - \-dtd : treat input as XML DTD (experimental,unsupported) + \-quiet : suppress compiler output .fl - \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) + \-help : display this help message .fl - \-verbose : be extra verbose + \-version : display version information .fl - \-quiet : suppress compiler output + .fl - \-help : display this help message + .fl - \-version : display version information +Extensions: +.fl + \-Xlocator : enable source location support for generated code +.fl + \-Xsync\-methods : generate accessor methods with the 'synchronized' keyword +.fl + \-mark\-generated : mark the generated code as @javax.annotation.Generated +.fl + \-episode <FILE> : generate the episode file for separate compilation .fl \fP .fi -.RE .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -129,15 +131,9 @@ By default, the XJC binding compiler performs strict validation of the source sc By default, the XJC binding compiler strictly enforces the rules outlined in the Compatibility chapter of the JAXB Specification. Appendix E.2 defines a set of W3C XML Schema features that are not completely supported by JAXB v1.0. In some cases, you may be allowed to use them in the "\-extension" mode enabled by this switch. In the default (strict) mode, you are also limited to using only the binding customizations defined in the specification. By using the "\-extension" switch, you will be allowed to use the JAXB Vendor Extensions .TP 3 \-b <file> -Specify one or more external binding files to process. (Each binding file must have its own \f2"\-b"\fP switch.) The syntax of the external binding files is extremely flexible. You may have a single binding file that contains customizations for multiple schemas or you can break the customizations into multiple bindings files: -.RS 3 - -.LP -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP +Specify one or more external binding files to process. (Each binding file must have its own \f2"\-b"\fP switch.) The syntax of the external binding files is extremely flexible. You may have a single binding file that contains customizations for multiple schemas or you can break the customizations into multiple bindings files: \f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP .br -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP -.RE -In addition, the ordering of the schema files and binding files on the command line does not matter. +\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP In addition, the ordering of the schema files and binding files on the command line does not matter. .TP 3 \-d <dir> By default, the XJC binding compiler will generate the Java content classes in the current directory. Use this option to specify an alternate output directory. The output directory must already exist, the XJC binding compiler will not create it for you. @@ -199,11 +195,29 @@ Display the compiler version information. <schema file/URL/dir> Specify one or more schema files to compile. If you specify a directory, then xjc will scan it for all schema files and compile them. .RE + +.LP .SS -Summary of Deprecated and Removed Command Line Options +Non\-Standard Command Line Options .LP .RS 3 +.TP 3 +\-Xlocator +Causes the generated code to expose SAX Locator information about the source XML in the Java bean instances after unmarshalling. +.TP 3 +\-Xsync\-methods +Causes all of the generated method signatures to include the \f2synchronized\fP keyword. +.TP 3 +\-mark\-generated +Mark the generated code with the annotation \f2@javax.annotation.Generated\fP. +.TP 3 +\-episode <file> +Generate the specified episode file for separate compilation. +.RE +.LP +.SS +Deprecated and Removed Command Line Options .LP .RS 3 .TP 3 @@ -215,13 +229,9 @@ Since the JAXB 2.0 specification has defined a portable runtime, it is no longer .TP 3 \-source The \-source compatibility switch was introduced in the first JAXB 2.0 Early Access release. We have decided to remove this switch from future releases of JAXB 2.0. If you need to generate 1.0.x code, please use an installation of the 1.0.x codebase. -.TP 3 -\-Xlocator & \-Xsync\-methods -These switches have been disabled for now. We plan on releasing this functionality as a separate download in the future. .RE .LP -.RE .SS Compiler Restrictions .LP @@ -280,7 +290,7 @@ o .na \f2Java Architecture for XML Binding (JAXB)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/xml/jaxb/index.html .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/appletviewer.1 b/jdk/src/solaris/doc/sun/man/man1/appletviewer.1 index 6f31c4565e2..887abbd66e3 100644 --- a/jdk/src/solaris/doc/sun/man/man1/appletviewer.1 +++ b/jdk/src/solaris/doc/sun/man/man1/appletviewer.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,43 +19,33 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH appletviewer 1 "02 Jun 2010" +.TH appletviewer 1 "10 May 2011" .LP .SH "Name" appletviewer \- The Java Applet Viewer. -.LP -.RS 3 - .LP .LP The \f3appletviewer\fP command allows you to run applets outside of a web browser. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .LP \f4appletviewer\fP \f2[\fP \f2options\fP \f2] \fP\f2urls\fP ... .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3appletviewer\fP command connects to the documents or resources designated by \f2urls\fP and displays each applet referenced by the documents in its own window. Note: if the documents referred to by \f2urls\fP do not reference any applets with the \f2OBJECT\fP, \f2EMBED\fP, or \f2APPLET\fP tag, then \f3appletviewer\fP does nothing. For details on the HTML tags that \f3appletviewer\fP supports, see .na \f2AppletViewer Tags\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/appletviewertags.html. +http://download.oracle.com/javase/7/docs/technotes/tools/appletviewertags.html. .LP .LP \f3Note:\fP The \f3appletviewer\fP requires encoded URLs according to the escaping mechanism defined in RFC2396. Only encoded URLs are supported. However, file names must be unencoded, as specified in RFC2396. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 diff --git a/jdk/src/solaris/doc/sun/man/man1/apt.1 b/jdk/src/solaris/doc/sun/man/man1/apt.1 index 5a7c8b3c9f0..2d77108a5d4 100644 --- a/jdk/src/solaris/doc/sun/man/man1/apt.1 +++ b/jdk/src/solaris/doc/sun/man/man1/apt.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH apt 1 "02 Jun 2010" +.TH apt 1 "10 May 2011" .LP .SH "NAME" @@ -50,21 +50,17 @@ One or more files that list source files or other options .SH "DESCRIPTION" .LP .LP -The tool \f2apt\fP, annotation processing tool, includes a set of new reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP. +\f3Note\fP: The \f2apt\fP tool and its associated API contained in the package \f2com.sun.mirror\fP have been deprecated since JDK 7 and are planned to be removed in the next major JDK release. Use the options available in the \f2javac(1)\fP tool and the APIs contained in the packages \f2javax.annotation.processing\fP and \f2javax.lang.model\fP to process annotations. +.LP +.LP +The tool \f2apt\fP, annotation processing tool, includes reflective APIs and supporting infrastructure to process program annotations. The \f2apt\fP reflective APIs provide a build\-time, source\-based, read\-only view of program structure. These reflective APIs are designed to cleanly model the Java(TM) programming language's type system after the addition of generics. First, \f2apt\fP runs annotation processors that can produce new source code and other files. Next, \f2apt\fP can cause compilation of both original and generated source files, easing development. The reflective APIs and other APIs used to interact with the tool are subpackages of \f2com.sun.mirror\fP. .LP .LP A fuller discussion of how the tool operates as well as instructions for developing with \f2apt\fP are in .na \f4Getting Started with \fP\f4apt\fP. @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/apt/GettingStarted.html -.LP -.RS 3 -.TP 3 -Note: -\f2The functionality of \fP\f2apt\fP has been subsumed by the annotation\-processing infrastructure that is now part of the \f2javac(1)\fP tool and standardized for use by all Java compilers. This new infrastructure relies on the language model and annotation\-processing APIs that are now part of the Java Platform. It is recommended that new annotation processor development be based on the new APIs and the \f2javac\fP tool. -.RE - +http://download.oracle.com/javase/7/docs/technotes/guides/apt/GettingStarted.html .LP .SH "OPTIONS" .LP @@ -90,6 +86,12 @@ Specify where to find annotation processor factories; if this option is used, th .TP 3 \-factory classname Name of annotation processor factory to use; bypasses default discovery process +.TP 3 +\-version +Print version information. +.TP 3 +\-X +Display information about non\-standard options. .RE .LP @@ -109,10 +111,35 @@ Specify where to find user class files and annotation processor factories. If \f .LP Consult the javac(1) man page for information on \f2javac\fP options. .LP +.SS +Non\-Standard Options +.LP +.RS 3 +.TP 3 +\-XListAnnotationTypes +List found annotation types. +.TP 3 +\-XListDeclarations +List specified and included declarations. +.TP 3 +\-XPrintAptRounds +Print information about initial and recursive \f2apt\fP rounds. +.TP 3 +\-XPrintFactoryInfo +Print information about which annotations a factory is asked to process. +.TP 3 +\-XclassesAsDecls +Treat both class and source files as declarations to process. +.RE + +.LP +.LP +\f3Note\fP: Because these options are non\-standard, they are subject to change without notice. +.LP .SH "NOTES" .LP .LP -The functionality of \f2apt\fP has been subsumed by the standard annotation\-processing infrastructure now offered by \f2javac\fP. Support for \f2apt\fP and its associated APIs may be discontinued in some future JDK release. +The \f2apt\fP tool and its associated API contained in the package \f2com.sun.mirror\fP have been deprecated since JDK 7 and are planned to be removed in the next major JDK release. Use the options available in the \f2javac(1)\fP tool and the APIs contained in the packages \f2javax.annotation.processing\fP and \f2javax.lang.model\fP to process annotations. .LP .SH "SEE ALSO" .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/extcheck.1 b/jdk/src/solaris/doc/sun/man/man1/extcheck.1 index 3b1a03ee3fe..9dfe6472adf 100644 --- a/jdk/src/solaris/doc/sun/man/man1/extcheck.1 +++ b/jdk/src/solaris/doc/sun/man/man1/extcheck.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH extcheck 1 "02 Jun 2010" +.TH extcheck 1 "10 May 2011" .LP .SH "Name" extcheck \- A utility to detect jar conflicts -.LP -.RS 3 - .LP .LP \f3extcheck\fP detects version conflicts between a target jar file and currently installed extension jar files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,8 +40,6 @@ extcheck [ \-verbose ] targetfile.jar .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3extcheck\fP utility checks a specified Jar file for title and version conflicts with any extensions installed in the Java(TM) SDK. Before installing an extension, you can use this utility to see if the same or a more recent version of the extension is already installed. @@ -62,8 +54,6 @@ If no conflict is detected, the return code is \f20\fP. If the manifest of any jar file in the extensions directory has the same \f2Specification\-title\fP and the same or a newer \f2Specification\-version\fP number, a non\-zero error code is returned. A non\-zero error code is also returned if \f2targetfile.jar\fP does not have the \f2Specification\-title\fP or \f2Specification\-version\fP attributes in its manifest. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -76,8 +66,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "SEE ALSO" -.LP - .LP .LP jar(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/idlj.1 b/jdk/src/solaris/doc/sun/man/man1/idlj.1 index 4b6ab0ccb09..2ed5652bc63 100644 --- a/jdk/src/solaris/doc/sun/man/man1/idlj.1 +++ b/jdk/src/solaris/doc/sun/man/man1/idlj.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH idlj 1 "02 Jun 2010" +.TH idlj 1 "10 May 2011" .LP .SH "Name" idlj \- The IDL\-to\-Java Compiler .LP -.RS 3 - -.LP -\f3idlj\fP generates Java bindings from a given IDL file. -.RE +\f3idlj\fP generates Java bindings from a given IDL file. .SH "Synopsis" -.LP - .LP .nf \f3 @@ -48,28 +42,62 @@ where \f2idl\-file\fP is the name of a file containing Interface Definition Lang .LP .SH "Description" .LP - .LP The IDL\-to\-Java Compiler generates the Java bindings for a given IDL file.\ For binding details, see the .na \f2OMG IDL to Java Language Language Mapping Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/mapping/jidlMapping.html. Some previous releases of the IDL\-to\-Java compiler were named \f2idltojava\fP. +.LP .SS Emitting Client and Server Bindings .LP -.RS 3 +.LP +To generate Java bindings for an IDL file named My.idl: +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi .LP -To generate Java bindings for an IDL file named My.idl: \f2idlj My.idl\fP .LP -This generates the client\-side bindings and is equivalent to: \f2idlj \fP\f4\-fclient\fP\f2 My.idl\fP +This generates the client\-side bindings and is equivalent to: .LP -The client\-side bindings do not include the server\-side skeleton. If you want to generate the server\-side bindings for the interfaces: \f2idlj \fP\f4\-fserver\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient\fP My.idl +.fl +.fi + .LP -Server\-side bindings include the client\-side bindings plus the skeleton, all of which are \f2POA\fP (that is, Inheritance Model) classes. If you want to generate both client and server\-side bindings, use one of the following (equivalent) commands: \f2idlj \fP\f4\-fclient \-fserver\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP +.LP +The client\-side bindings do not include the server\-side skeleton. If you want to generate the server\-side bindings for the interfaces: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fserver\fP My.idl +.fl +.fi + +.LP +.LP +Server\-side bindings include the client\-side bindings plus the skeleton, all of which are \f2POA\fP (that is, Inheritance Model) classes. If you want to generate both client and server\-side bindings, use one of the following (equivalent) commands: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP My.idl +.fl +idlj \f3\-fall\fP My.idl +.fl +.fi + .LP .LP There are two possible server\-side models: the Inheritance Model and the Tie Delegation Model. @@ -82,31 +110,47 @@ The default server\-side model is the \f2Portable Servant Inheritance Model\fP. .na \f2org.omg.PortableServer.Servant\fP @ .fi -http://java.sun.com/javase/6/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements. +http://download.oracle.com/javase/7/docs/api/org/omg/PortableServer/Servant.html and implements the \f2InvokeHandler\fP interface and the operations interface associated with the IDL interface the skeleton implements. .LP .LP The \f2PortableServer\fP module for the .na \f2Portable Object Adapter (POA)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. .LP .LP Another option for the Inheritance Model is to use the \f2\-oldImplBase\fP flag in order to generate server\-side bindings that are compatible with versions of the Java programming language prior to J2SE 1.4. Note that using the \f2\-oldImplBase\fP flag is non\-standard: these APIs are being deprecated. You would use this flag ONLY for compatibility with existing servers written in J2SE 1.3. In that case, you would need to modify an existing MAKEFILE to add the \f2\-oldImplBase\fP flag to the \f2idlj\fP compiler, otherwise POA\-based server\-side mappings will be generated. To generate server\-side bindings that are backwards compatible: .LP -\f2idlj \fP\f4\-fclient \-fserver\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fall\fP\f2 \fP\f4\-oldImplBase\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fclient \-fserver\fP \f3\-oldImplBase\fP My.idl +.fl +idlj \f3\-fall\fP \f3\-oldImplBase\fP My.idl +.fl +.fi + +.LP +.LP +Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2_MyImplBase.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2_MyImplBase\fP. .LP -Given an interface \f2My\fP defined in \f2My.idl\fP, the file \f2_MyImplBase.java\fP is generated. You must provide the implementation for \f2My\fP and it must inherit from \f2_MyImplBase\fP. .LP The other server\-side model is called the Tie Model. This is a delegation model. Because it is not possible to generate ties and skeletons at the same time, they must be generated separately. The following commands generate the bindings for the Tie Model: .LP -\f2idlj \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-fallTIE\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-fall\fP My.idl +.fl +idlj \f3\-fallTIE\fP My.idl +.fl +.fi + +.LP +.LP +For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. The constructor to \f2MyPOATie\fP takes a \f2delegate\fP. In this example, using the default POA model, the constructor also needs a \f2poa\fP. You must provide the implementation for \f2delegate\fP, but it does not have to inherit from any other class, only the interface \f2MyOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2MyPOATie\fP. For instance: .LP -For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. The constructor to \f2MyPOATie\fP takes a \f2delegate\fP. In this example, using the default POA model, the constructor also needs a \f2poa\fP. You must provide the implementation for \f2delegate\fP, but it does not have to inherit from any other class, only the interface \f2MyOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2MyPOATie\fP. For instance: .nf \f3 .fl @@ -144,13 +188,21 @@ For the interface \f2My\fP, the second command generates \f2MyPOATie.java\fP. Th .fi .LP -You might want to use the Tie model instead of the typical Inheritance model if your implementation must inherit from some other implementation. Java allows any number of interface inheritance, but there is only one slot for class inheritance. If you use the inheritance model, that slot is used up . By using the Tie Model, that slot is freed up for your own use. The drawback is that it introduces a level of indirection: one extra method call occurs when invoking a method. +.LP +You might want to use the Tie model instead of the typical Inheritance model if your implementation must inherit from some other implementation. Java allows any number of interface inheritance, but there is only one slot for class inheritance. If you use the inheritance model, that slot is used up . By using the Tie Model, that slot is freed up for your own use. The drawback is that it introduces a level of indirection: one extra method call occurs when invoking a method. +.LP .LP To generate server\-side, Tie model bindings that are compatible with versions of the IDL to Java language mapping in versions prior to J2SE 1.4. .LP -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fall\fP\f2 My.idl\fP -.br -\f2idlj \fP\f4\-oldImplBase\fP\f2 \fP\f4\-fallTIE\fP\f2 My.idl\fP +.nf +\f3 +.fl +idlj \fP\f3\-oldImplBase\fP \f3\-fall\fP My.idl +.fl +idlj \f3\-oldImplBase\fP \f3\-fallTIE\fP My.idl +.fl +.fi + .LP .LP For the interface \f2My\fP, this will generate \f2My_Tie.java\fP. The constructor to \f2My_Tie\fP takes a \f2impl\fP. You must provide the implementation for \f2impl\fP, but it does not have to inherit from any other class, only the interface \f2HelloOperations\fP. But to use it with the ORB, you must wrap your implementation within \f2My_Tie\fP. For instance: @@ -184,201 +236,383 @@ For the interface \f2My\fP, this will generate \f2My_Tie.java\fP. The constructo .fi .LP -.RE .SS Specifying Alternate Locations for Emitted Files .LP -.RS 3 +.LP +If you want to direct the emitted files to a directory other than the current directory, invoke the compiler as: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-td /altdir\fP My.idl +.fl +.fi .LP -If you want to direct the emitted files to a directory other than the current directory, invoke the compiler as: -.RS 3 - .LP -\f2idlj \fP\f4\-td /altdir\fP\f2 My.idl\fP -.RE For the interface \f2My\fP, the bindings will be emitted to \f2/altdir/My.java\fP, etc., instead of \f2./My.java\fP. -.RE +.LP .SS Specifying Alternate Locations for Include Files .LP -.RS 3 +.LP +If \f2My.idl\fP included another idl file, \f2MyOther.idl\fP, the compiler assumes that \f2MyOther.idl\fP resides in the local directory. If it resides in \f2/includes\fP, for example, then you would invoke the compiler with the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes\fP My.idl +.fl +.fi .LP -If \f2My.idl\fP included another idl file, \f2MyOther.idl\fP, the compiler assumes that \f2MyOther.idl\fP resides in the local directory. If it resides in \f2/includes\fP, for example, then you would invoke the compiler with the following command: \f2idlj \fP\f4\-i /includes\fP\f2 My.idl\fP .LP -If \f2My.idl\fP also included \f2Another.idl\fP that resided in \f2/moreIncludes\fP, for example, then you would invoke the compiler with the following command: \f2idlj \fP\f4\-i /includes \-i /moreIncludes\fP\f2 My.idl\fP +If \f2My.idl\fP also included \f2Another.idl\fP that resided in \f2/moreIncludes\fP, for example, then you would invoke the compiler with the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-i /includes \-i /moreIncludes\fP My.idl +.fl +.fi + +.LP +.LP +Since this form of include can become irritatingly long, another means of indicating to the compiler where to search for included files is provided. This technique is similar to the idea of an environment variable. Create a file named \f2idl.config\fP in a directory that is listed in your CLASSPATH. Inside of \f2idl.config\fP, provide a line with the following form: +.LP +.nf +\f3 +.fl +includes=/includes;/moreIncludes +.fl +\fP +.fi + .LP -Since this form of include can become irritatingly long, another means of indicating to the compiler where to search for included files is provided. This technique is similar to the idea of an environment variable. Create a file named \f2idl.config\fP in a directory that is listed in your CLASSPATH. Inside of \f2idl.config\fP, provide a line with the following form: \f2includes=/includes;/moreIncludes\fP .LP The compiler will find this file and read in the includes list. Note that in this example the separator character between the two directories is a semicolon (;). This separator character is platform dependent. On the Windows platform, use a semicolon, on the Unix platform, use a colon, etc. For more information on \f2includes\fP, see the .na \f2Setting the Classpath\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general. -.RE +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general. +.LP .SS Emitting Bindings for Include Files .LP -.RS 3 +.LP +By default, only those interfaces, structs, etc, that are defined in the idl file on the command line have Java bindings generated for them. The types defined in included files are not generated. For example, assume the following two idl files: +.LP .LP -By default, only those interfaces, structs, etc, that are defined in the idl file on the command line have Java bindings generated for them. The types defined in included files are not generated. For example, assume the following two idl files: \f4My.idl\fP .LP -\f2#include <MyOther.idl>\fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2};\fP -.br -\f4MyOther.idl\fP +\f4My.idl\fP .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\fP\ +.nf +\f3 +.fl +#include <MyOther.idl> +.fl +interface My +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -The following command will only generate the java bindings for \f2My\fP: \f2idlj My.idl\fP + .LP -To generate all of the types in \f2My.idl\fP and all of the types in the files that \f2My.idl\fP includes (in this example, \f2MyOther.idl\fP), use the following command: \f2idlj \fP\f4\-emitAll\fP\f2 My.idl\fP .LP -There is a caveat to the default rule. \f2#include\fP statements which appear at global scope are treated as described. These \f2#include\fP statements can be thought of as import statements. \f2#include\fP statements which appear within some enclosing scope are treated as true \f2#include\fP statements, meaning that the code within the included file is treated as if it appeared in the original file and, therefore, Java bindings are emitted for it. Here is an example: \f4My.idl\fP +\f4MyOther.idl\fP .LP -\f2#include <MyOther.idl>\fP -.br -\f2interface My\fP -.br -\f2{\fP -.br -\f2\ #include <Embedded.idl>\fP -.br -\f2};\ \fP \f4MyOther.idl\fP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + .LP -\f2interface MyOther\fP -.br -\f2{\fP -.br -\f2};\ \fP \f4Embedded.idl\fP + .LP -\f2enum E {one, two, three};\fP\ .LP -Running the following command: \f2idlj My.idl\fP +The following command will only generate the java bindings for \f2My\fP: .LP -will generate the following list of Java files: \f2./MyHolder.java\fP -.br -\f2./MyHelper.java\fP -.br -\f2./_MyStub.java\fP -.br -\f2./MyPackage\fP -.br -\f2./MyPackage/EHolder.java\fP -.br -\f2./MyPackage/EHelper.java\fP -.br -\f2./MyPackage/E.java\fP -.br -\f2./My.java\fP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +To generate all of the types in \f2My.idl\fP and all of the types in the files that \f2My.idl\fP includes (in this example, \f2MyOther.idl\fP), use the following command: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-emitAll\fP My.idl +.fl +.fi + +.LP +.LP +There is a caveat to the default rule. \f2#include\fP statements which appear at global scope are treated as described. These \f2#include\fP statements can be thought of as import statements. \f2#include\fP statements which appear within some enclosing scope are treated as true \f2#include\fP statements, meaning that the code within the included file is treated as if it appeared in the original file and, therefore, Java bindings are emitted for it. Here is an example: +.LP + +.LP +.LP +\f4My.idl\fP +.LP +.nf +\f3 +.fl +#include <MyOther.idl> +.fl +interface My +.fl +{ +.fl + #include <Embedded.idl> +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4MyOther.idl\fP +.LP +.nf +\f3 +.fl +interface MyOther +.fl +{ +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +\f4Embedded.idl\fP +.LP +.nf +\f3 +.fl +enum E {one, two, three}; +.fl +\fP +.fi + +.LP + +.LP +.LP +Running the following command: +.LP +.nf +\f3 +.fl +idlj My.idl +.fl +\fP +.fi + +.LP +.LP +will generate the following list of Java files: +.LP +.nf +\f3 +.fl +./MyHolder.java +.fl +./MyHelper.java +.fl +./_MyStub.java +.fl +./MyPackage +.fl +./MyPackage/EHolder.java +.fl +./MyPackage/EHelper.java +.fl +./MyPackage/E.java +.fl +./My.java +.fl +\fP +.fi + +.LP +.LP +Notice that \f2MyOther.java\fP was not generated because it is defined in an import\-like \f2#include\fP. But \f2E.java\fP \f2was\fP generated because it was defined in a true \f2#include\fP. Also notice that since \f2Embedded.idl\fP was included within the scope of the interface \f2My\fP, it appears within the scope of \f2My\fP (that is,in \f2MyPackage\fP). .LP -Notice that \f2MyOther.java\fP was not generated because it is defined in an import\-like \f2#include\fP. But \f2E.java\fP \f2was\fP generated because it was defined in a true \f2#include\fP. Also notice that since \f2Embedded.idl\fP was included within the scope of the interface \f2My\fP, it appears within the scope of \f2My\fP (that is,in \f2MyPackage\fP). .LP If the \f2\-emitAll\fP flag had been used in the previous example, then all types in all included files would be emitted. .LP -.RE .SS Inserting Package Prefixes .LP -.RS 3 +.LP +Suppose that you work for a company named ABC that has constructed the following IDL file: +.LP .LP -Suppose that you work for a company named ABC that has constructed the following IDL file: -.br -\f4Widgets.idl\fP .LP -\f2module Widgets\fP -.br -\f2{\fP -.br -\f2\ interface W1 {...};\fP -.br -\f2\ interface W2 {...};\fP -.br -\f2};\fP\ +\f4Widgets.idl\fP .LP -Running this file through the IDL\-to\-Java compiler will place the Java bindings for \f2W1\fP and \f2W2\fP within the package \f2Widgets\fP. But there is an industry convention that states that a company's packages should reside within a package named \f2com.<company name>\fP. The \f2Widgets\fP package is not good enough. To follow convention, it should be \f2com.abc.Widgets\fP. To place this package prefix onto the \f2Widgets\fP module, execute the following: \f2idlj \fP\f4\-pkgPrefix Widgets com.abc\fP\f2 Widgets.idl\fP +.nf +\f3 +.fl +module Widgets +.fl +{ +.fl + interface W1 {...}; +.fl + interface W2 {...}; +.fl +}; +.fl +\fP +.fi + +.LP + +.LP +.LP +Running this file through the IDL\-to\-Java compiler will place the Java bindings for \f2W1\fP and \f2W2\fP within the package \f2Widgets\fP. But there is an industry convention that states that a company's packages should reside within a package named \f2com.<company name>\fP. The \f2Widgets\fP package is not good enough. To follow convention, it should be \f2com.abc.Widgets\fP. To place this package prefix onto the \f2Widgets\fP module, execute the following: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-pkgPrefix Widgets com.abc\fP Widgets.idl +.fl +.fi + +.LP +.LP +If you have an IDL file which includes \f2Widgets.idl\fP, the \f2\-pkgPrefix\fP flag must appear in that command also. If it does not, then your IDL file will be looking for a \f2Widgets\fP package rather than a \f2com.abc.Widgets\fP package. .LP -If you have an IDL file which includes \f2Widgets.idl\fP, the \f2\-pkgPrefix\fP flag must appear in that command also. If it does not, then your IDL file will be looking for a \f2Widgets\fP package rather than a \f2com.abc.Widgets\fP package. .LP If you have a number of these packages that require prefixes, it might be easier to place them into the \f2idl.config\fP file described above. Each package prefix line should be of the form: .LP -\f2PkgPrefix.<type>=<prefix>\fP +.nf +\f3 +.fl +PkgPrefix.<type>=<prefix> +.fl +\fP +.fi + .LP -So the line for the above example would be: \f2PkgPrefix.Widgets=com.abc\fP +So the line for the above example would be: +.nf +\f3 +.fl +PkgPrefix.Widgets=com.abc +.fl +\fP +.fi + .LP .LP The use of this option does not affect the Repository ID. .LP -.RE .SS Defining Symbols Before Compilation .LP -.RS 3 +.LP +You may need to define a symbol for compilation that is not defined within the IDL file, perhaps to include debugging code in the bindings. The command +.LP +.nf +\f3 +.fl +idlj \fP\f3\-d\fP MYDEF My.idl +.fl +.fi .LP -You may need to define a symbol for compilation that is not defined within the IDL file, perhaps to include debugging code in the bindings. The command \f2idlj \fP\f4\-d\fP\f2 MYDEF My.idl\fP .LP is the equivalent of putting the line \f2#define MYDEF\fP inside \f2My.idl\fP. -.RE +.LP .SS Preserving Pre\-Existing Bindings .LP -.RS 3 +.LP +If the Java binding files already exist, the \f2\-keep\fP flag will keep the compiler from overwriting them. The default is to generate all files without considering if they already exist. If you've customized those files (which you should not do unless you are very comfortable with their contents), then the \f2\-keep\fP option is very useful. The command +.LP +.nf +\f3 +.fl +idlj \fP\f3\-keep\fP My.idl +.fl +.fi .LP -If the Java binding files already exist, the \f2\-keep\fP flag will keep the compiler from overwriting them. The default is to generate all files without considering if they already exist. If you've customized those files (which you should not do unless you are very comfortable with their contents), then the \f2\-keep\fP option is very useful. The command \f2idlj \fP\f4\-keep\fP\f2 My.idl\fP .LP -emit all client\-side bindings that do not already exist. -.RE +emits all client\-side bindings that do not already exist. +.LP .SS Viewing Progress of Compilation .LP -.RS 3 +.LP +The IDL\-to\-Java compiler will generate status messages as it progresses through its phases of execution. Use the \f2\-v\fP option to activate this "verbose" mode: +.LP +.nf +\f3 +.fl +idlj \fP\f3\-v\fP My.idl +.fl +.fi .LP -The IDL\-to\-Java compiler will generate status messages as it progresses through its phases of execution. Use the \f2\-v\fP option to activate this "verbose" mode: \f2idlj \fP\f4\-v\fP\f2 My.idl\fP .LP By default the compiler does not operate in verbose mode. -.RE +.LP .SS Displaying Version Information -.LP -.RS 3 - .LP .LP To display the build version of the IDL\-to\-Java compiler, specify the \f2\-version\fP option on the command\-line: .LP -.LP -\f2idlj \-version\fP +.nf +\f3 +.fl +idlj \-version +.fl +\fP +.fi + .LP .LP Version information also appears within the bindings generated by the compiler. Any additional options appearing on the command\-line are ignored. .LP -.RE .SH "Options" -.LP - .LP .RS 3 .TP 3 \-d symbol This is equivalent to the following line in an IDL file: -.RS 3 - -.LP .nf \f3 .fl @@ -386,7 +620,6 @@ This is equivalent to the following line in an IDL file: .fl \fP .fi -.RE .TP 3 \-emitAll Emit all types, including those found in \f2#include\fP files. @@ -410,8 +643,9 @@ Generates skeletons compatible with pre\-1.4 JDK ORBs. By default, the POA Inher Wherever \f2type\fP is encountered at file scope, prefix the generated Java package name with \f2prefix\fP for all files generated for that type. The \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module. .TP 3 \-pkgTranslate type package -Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly. -.LP +Whenever the module name \f2type\fP is encountered in an identifier, replace it in the identifier with \f2package\fP for all files in the generated Java package. Note that \f2pkgPrefix\fP changes are made first. \f2type\fP is the simple name of either a top\-level module, or an IDL type defined outside of any module, and must match the full package name exactly. +.br +.br If more than one translation matches an identifier, the longest match is chosen. For example, if the arguments include: .nf \f3 @@ -420,7 +654,6 @@ If more than one translation matches an identifier, the longest match is chosen. .fl \fP .fi -.LP The following translations would occur: .nf \f3 @@ -435,7 +668,6 @@ foo.baz.bar => buzz.fizz.bar .fl \fP .fi -.LP The following package names cannot be translated: .RS 3 .TP 2 @@ -445,8 +677,7 @@ o o \f2org.omg\fP or any subpackages of \f2org.omg\fP .RE -.LP -Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. +Any attempt to translate these packages will result in uncompilable code, and the use of these packages as the first argument after \f2\-pkgTranslate\fP will be treated as an error. .TP 3 \-skeletonName xxx%yyy Use \f2xxx%yyy\fP as the pattern for naming the skeleton. The defaults are: @@ -481,10 +712,10 @@ Display version information and terminate. .RE .LP -See the Description section for more option information. -.SH "Restrictions:" .LP - +See the Description section for more option information. +.LP +.SH "Restrictions:" .LP .RS 3 .TP 2 @@ -497,8 +728,6 @@ The \f2fixed\fP IDL type is not supported. .LP .SH "Known Problems:" -.LP - .LP .RS 3 .TP 2 diff --git a/jdk/src/solaris/doc/sun/man/man1/jar.1 b/jdk/src/solaris/doc/sun/man/man1/jar.1 index acf3ba727e1..cd59f0aa1d3 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jar.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jar.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,16 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jar 1 "02 Jun 2010" +.TH jar 1 "10 May 2011" .LP .SH "Name" jar\-The Java Archive Tool .LP -\f3jar\fP combines multiple files into a single JAR archive file. +\f3jar\fP combines multiple files into a single JAR archive file. .SH "SYNOPSIS" -.LP - .LP .RS 3 .TP 3 @@ -51,9 +49,6 @@ Add index to jar file .LP .LP where: -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -80,10 +75,7 @@ Option to be passed into the Java runtime environment. (There must be no space b .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3jar\fP is a general\-purpose archiving and compression tool, based on ZIP and the .na @@ -92,9 +84,6 @@ The \f3jar\fP tool combines multiple files into a single JAR archive file. \f3ja http://www.gzip.org/zlib/ compression format. However, \f3jar\fP was designed mainly package java applets or applications into a single archive. When the components of an applet or application (files, images and sounds) are combined into a single archive, they can be downloaded by a java agent (like a browser) in a single HTTP transaction, rather than requiring a new connection for each piece. This dramatically improves download times. \f3jar\fP also compresses files and so further improves download time. In addition, it allows individual entries in a file to be signed by the applet author so that their origin can be authenticated. The syntax for the jar tool is almost identical to the syntax for the \f2tar\fP command. A \f3jar\fP archive can be used as a class path entry, whether or not it is compressed. .LP Typical usage to combine files into a jar file is: -.LP -.RS 3 - .LP .nf \f3 @@ -103,19 +92,15 @@ Typical usage to combine files into a jar file is: .fl \fP .fi -.RE .LP In this example, all the class files in the current directory are placed into the file named \f2myFile.jar\fP. The jar tool automatically generates a manifest file entry named \f2META\-INF/MANIFEST.MF\fP. It is always the first entry in the jar file. The manifest file declares meta\-information about the archive, and stores that data as \f2name\ :\ value\fP pairs. Refer to the .na \f2JAR file specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR%20Manifest for details explaining how the jar tool stores meta\-information in the manifest file. .LP If a jar file should include \f2name\ :\ value\fP pairs contained in an existing manifest file, specify that file using the \f2\-m\fP option: -.LP -.RS 3 - .LP .nf \f3 @@ -124,7 +109,6 @@ If a jar file should include \f2name\ :\ value\fP pairs contained in an existing .fl \fP .fi -.RE .LP An existing manifest file must end with a new line character.\ \f3jar\fP does not parse the last line of a manifest file if it does not end with a new line character. @@ -135,9 +119,6 @@ An existing manifest file must end with a new line character.\ \f3jar\fP does n .LP \f3Note:\ \fP A jar command that specifies \f2cfm\fP on the command line instead of \f2cmf\fP (the order of the m and \-f options are reversed), the \f3jar\fP command line must specify the name of the jar archive first, followed by the name of the manifest file: -.RS 3 - -.LP .nf \f3 .fl @@ -145,15 +126,11 @@ An existing manifest file must end with a new line character.\ \f3jar\fP does n .fl \fP .fi -.RE .LP The manifest is in a text format inspired by RFC822 ASCII format, so it is easy to view and process manifest\-file contents. .LP To extract the files from a jar file, use \f2x\fP: -.LP -.RS 3 - .LP .nf \f3 @@ -162,14 +139,10 @@ To extract the files from a jar file, use \f2x\fP: .fl \fP .fi -.RE .LP .LP To extract individual files from a jar file, supply their filenames: -.LP -.RS 3 - .LP .nf \f3 @@ -178,7 +151,6 @@ To extract individual files from a jar file, supply their filenames: .fl \fP .fi -.RE .LP .LP @@ -186,10 +158,7 @@ Beginning with version 1.3 of the JDK, the \f2jar\fP utility supports .na \f2JarIndex\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest. -.LP -.RS 3 - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index, which allows application class loaders to load classes more efficiently from jar files. If an application or applet is bundled into multiple jar files,\ only the necessary jar files will be downloaded and opened to load classes. This performance optimization is enabled by running \f2jar\fP with the \f2\-i\fPoption. It will generate package location information for the specified main jar file and all the jar files it depends on, which need to be specified in the \f2Class\-Path\fP attribute of the main jar file's manifest. .LP .nf \f3 @@ -198,7 +167,6 @@ http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index, whi .fl \fP .fi -.RE .LP .LP @@ -209,9 +177,6 @@ The application class loader uses the information stored in this file for effici .br .br To copy directories, first compress files in \f2dir1\fP to \f2stdout\fP, then extract from \f2stdin\fP to \f2dir2\fP (omitting the \f2\-f\fP option from both \f2jar\fP commands): -.LP -.RS 3 - .LP .nf \f3 @@ -220,7 +185,6 @@ To copy directories, first compress files in \f2dir1\fP to \f2stdout\fP, then ex .fl \fP .fi -.RE .LP .LP @@ -228,11 +192,9 @@ To review command samples which use \f2jar\fP to opeate on jar files and jar fil .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar. +http://download.oracle.com/javase/tutorial/deployment/jar. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -241,9 +203,6 @@ Creates a new archive file named \f2jarfile\fP (if \f2f\fP is specified) or to s .TP 3 u Updates an existing file \f2jarfile\fP (when \f2f\fP is specified) by adding to it files and directories specified by \f2inputfiles\fP. For example: -.RS 3 - -.LP .nf \f3 .fl @@ -251,11 +210,7 @@ jar uf foo.jar foo.class .fl \fP .fi -.RE would add the file \f2foo.class\fP to the existing jar file \f2foo.jar\fP. The \f2\-u\fP option can also update the manifest entry, as given by this example: -.RS 3 - -.LP .nf \f3 .fl @@ -263,7 +218,6 @@ jar umf manifest foo.jar .fl \fP .fi -.RE updates the \f2foo.jar\fP manifest with the \f2name : value\fP pairs in \f2manifest\fP. .TP 3 x @@ -274,9 +228,6 @@ Lists the table of contents from \f2jarfile\fP (if \f2f\fP is specified) or stan .TP 3 i Generate index information for the specified \f2jarfile\fP and its dependent jar files. For example: -.RS 3 - -.LP .nf \f3 .fl @@ -284,9 +235,8 @@ jar i foo.jar .fl \fP .fi -.RE .LP -would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example. +would generate an \f2INDEX.LIST\fP file in \f2foo.jar\fP which contains location information for each package in \f2foo.jar\fP and all the jar files specified in the \f2Class\-Path\fP attribute of \f2foo.jar\fP. See the index example. .TP 3 f Specifies the file \f2jarfile\fP to be created (\f2c\fP), updated (\f2u\fP), extracted (\f2x\fP), indexed (\f2i\fP), or viewed (\f2t\fP). The \f2\-f\fP option and filename \f2jarfile\fP are a pair \-\- if present, they must both appear. Omitting \f2f\fP and \f2jarfile\fP accepts a jar file name from \f2stdin\fP(for x and t) or sends jar file to \f2stdout\fP (for c and u). @@ -301,12 +251,10 @@ M Do not create a manifest file entry (for c and u), or delete a manifest file entry if one exists (for u). .TP 3 m -Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value. -.LP +Includes \f2name : value\fP attribute pairs from the specified manifest file \f2manifest\fP in the file at \f2META\-INF/MANIFEST.MF\fP. \f2jar\fP adds a \f2name\ :\ value\fP pair unless an entry already exists with the same name, in which case \f2jar\fP updates its value. +.br +.br On the command line, the letters \f3m\fP and \f3f\fP must appear in the same order that \f2manifest\fP and \f2jarfile\fP appear. Example use: -.RS 3 - -.LP .nf \f3 .fl @@ -314,22 +262,18 @@ jar cmf myManifestFile myFile.jar *.class .fl \fP .fi -.RE You can add special\-purpose \f2name\ :\ value\fP attribute pairs to the manifest that aren't contained in the default manifest. For example, you can add attributes specifying vendor information, version information, package sealing, or to make JAR\-bundled applications executable. See the .na \f2JAR Files\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option. -.LP +http://download.oracle.com/javase/tutorial/deployment/jar/ trail in the Java Tutorial for examples of using the \f4\-m\fP option. .TP 3 e Sets \f2entrypoint\fP as the application entry point for stand\-alone applications bundled into executable jar file. The use of this option creates or overrides the \f2Main\-Class\fP attribute value in the manifest file. This option can be used during creation of jar file or while updating the jar file. This option specifies the application entry point without editing or creating the manifest file. .br .br +.br For example, this command creates \f2Main.jar\fP where the \f2Main\-Class\fP attribute value in the manifest is set to \f2Main\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -337,12 +281,7 @@ jar cfe Main.jar Main Main.class .fl \fP .fi -.RE -.LP The java runtime can directly invoke this application by running the following command: -.RS 3 - -.LP .nf \f3 .fl @@ -350,11 +289,7 @@ java \-jar Main.jar .fl \fP .fi -.RE If the entrypoint class name is in a package it may use either a dot (".") or slash ("/") character as the delimiter. For example, if \f2Main.class\fP is in a package called \f2foo\fP the entry point can be specified in the following ways: -.RS 3 - -.LP .nf \f3 .fl @@ -362,11 +297,7 @@ jar \-cfe Main.jar foo/Main foo/Main.class .fl \fP .fi -.RE or -.RS 3 - -.LP .nf \f3 .fl @@ -374,18 +305,13 @@ jar \-cfe Main.jar foo.Main foo/Main.class .fl \fP .fi -.RE -\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted. -.LP +\f3Note:\ \fP specifying both \f2\-m\fP and \f2\-e\fP options together when the given manifest also contains the \f2Main\-Class\fP attribute results in an ambigous \f2Main.class\fP specification, leading to an error and the jar creation or update operation is aborted. .TP 3 -\-C \ dir +\-C\ dir Temporarily changes directories (\f2cd\fP\ \f2dir\fP) during execution of the \f2jar\fP command while processing the following \f2inputfiles\fP argument. Its operation is intended to be similar to the \f2\-C\fP option of the UNIX \f2tar\fP utility. .br .br For example, this command changes to the \f2classes\fP directory and adds the \f2bar.class\fP from that directory to \f2foo.jar\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -393,11 +319,7 @@ jar uf foo.jar \-C classes bar.class .fl \fP .fi -.RE This command changes to the \f2classes\fP directory and adds to \f2foo.jar\fP all files within the \f2classes\fP directory (without creating a classes directory in the jar file), then changes back to the original directory before changing to the \f2bin\fP directory to add \f2xyz.class\fP to \f2foo.jar\fP. -.RS 3 - -.LP .nf \f3 .fl @@ -405,11 +327,7 @@ jar uf foo.jar \-C classes . \-C bin xyz.class .fl \fP .fi -.RE If \f2classes\fP holds files \f2bar1\fP and \f2bar2\fP, then here's what the jar file will contain using \f2jar tf foo.jar\fP: -.RS 3 - -.LP .nf \f3 .fl @@ -425,7 +343,6 @@ xyz.class .fl \fP .fi -.RE .LP .TP 3 \-Joption @@ -434,8 +351,6 @@ Pass \f2option\fP to the Java runtime environment, where \f2option\fP is one of .LP .SH "COMMAND LINE ARGUMENT FILES" -.LP - .LP To shorten or simplify the jar command line, you can specify one or more files that themselves contain arguments to the \f2jar\fP command (except \f2\-J\fP options). This enables you to create jar commands of any length, overcoming command line limits imposed by the operating system. .LP @@ -446,9 +361,6 @@ When executing \f2jar\fP, pass in the path and name of each argument file with t .br .br The example below, \f2classes.list\fP holds the names of files output by a \f2find\fP command: -.LP -.RS 3 - .LP .nf \f3 @@ -456,14 +368,10 @@ The example below, \f2classes.list\fP holds the names of files output by a \f2fi % find \fP\f3.\fP \-name '*.class' \-print > classes.list .fl .fi -.RE .LP .LP You can then execute the \f2jar\fP command on \f2Classes.list\fP by passing it to \f2jar\fP using argfile syntax: -.LP -.RS 3 - .LP .nf \f3 @@ -472,13 +380,9 @@ You can then execute the \f2jar\fP command on \f2Classes.list\fP by passing it t .fl \fP .fi -.RE .LP An argument file can specify a path, but any filenames inside the argument file that have relative paths are relative to the current working directory, not to the path passed in. Here is an example: -.RS 3 - -.LP .nf \f3 .fl @@ -486,20 +390,14 @@ An argument file can specify a path, but any filenames inside the argument file .fl \fP .fi -.RE .LP .LP .LP .SH "EXAMPLES" -.LP - .LP To add all the files in a particular directory to an archive (overwriting contents if the archive already exists). Enumerating verbosely (with the \f2\-v\fP option) will tell you more information about the files in the archive, such as their size and last modified date. -.RS 3 - -.LP .nf \f3 .fl @@ -535,13 +433,9 @@ adding: spacemusic.au(in = 3079) (out= 73)(deflated 97%) .fl \fP .fi -.RE .LP If you already have separate subdirectories for images, audio files and classes, you can combine them into a single jar file: -.RS 3 - -.LP .nf \f3 .fl @@ -585,13 +479,9 @@ audio/ bundle.jar classes/ images/ .fl \fP .fi -.RE .LP To see the entry names in the jarfile, use the \f2t\fP option: -.RS 3 - -.LP .nf \f3 .fl @@ -619,7 +509,6 @@ images/at_work.gif .fl \fP .fi -.RE .LP .LP @@ -629,9 +518,6 @@ To add an index file to the jar file for speeding up class loading, use the \f2i Example: .br -.LP -.RS 3 - .LP If you split the inter\-dependent classes for a stock trade application into three jar files: \f2main.jar\fP, \f2buy.jar\fP, and \f2sell.jar\fP. .br @@ -660,38 +546,34 @@ then you can use the \f2\-i\fP option to speed up the class loading time for you .fi .LP -An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources. -.RE +An \f2INDEX.LIST\fP file is inserted to the \f2META\-INF\fP directory. This enables the application class loader to download the specified jar files when it is searching for classes or resources. .SH "SEE ALSO" .LP - .LP .na \f2The Jar Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jarGuide.html -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jarGuide.html +.LP .LP .na \f2The Jar File Specification\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html +.LP .LP .na \f2The JarIndex Spec\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#JAR%20Index -.br - +http://download.oracle.com/javase/7/docs/technotes/guides/jar/jar.html#JAR_Index +.LP .LP .na \f2Jar Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar on the Java Software web site. -.br - +http://download.oracle.com/javase/tutorial/deployment/jar/index.html .LP -pack200(1) +.LP +pack200(1) +.LP + diff --git a/jdk/src/solaris/doc/sun/man/man1/jarsigner.1 b/jdk/src/solaris/doc/sun/man/man1/jarsigner.1 index 090edd2938e..b2f7777af3c 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jarsigner.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jarsigner.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jarsigner 1 "02 Jun 2010" +.TH jarsigner 1 "10 May 2011" .LP .SH "Name" jarsigner \- JAR Signing and Verification Tool -.LP -.RS 3 - .LP .LP Generates signatures for Java ARchive (JAR) files, and verifies the signatures of signed JAR files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -50,8 +44,6 @@ Generates signatures for Java ARchive (JAR) files, and verifies the signatures o The jarsigner \-verify command can take zero or more keystore alias names after the jar filename. When specified, jarsigner will check that the certificate used to verify each signed entry in the jar file matches one of the keystore aliases. The aliases are defined in the keystore specified by \-keystore, or the default keystore. .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jarsigner\fP tool is used for two purposes: @@ -108,9 +100,6 @@ The default \f3jarsigner\fP behavior is to \f2sign\fP a JAR (or zip) file. Use t .LP .SS Keystore Aliases -.LP -.RS 3 - .LP .LP All keystore entities are accessed via unique \f2aliases\fP. @@ -121,23 +110,19 @@ When using \f3jarsigner\fP to sign a JAR file, you must specify the alias for th .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<keystore password>\fP\f3 .fl - \-keypass dukekeypasswd MyJARFile.jar duke + \-keypass \fP\f4<private key password>\fP\f3 MyJARFile.jar duke .fl \fP .fi .LP .LP -Keystores are protected with a password, so the store password (in this case "myspass") must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password (in this case "dukekeypasswd") must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password. +Keystores are protected with a password, so the store password must be specified. You will be prompted for it if you don't specify it on the command line. Similarly, private keys are protected in a keystore with a password, so the private key's password must be specified, and you will be prompted for it if you don't specify it on the command line and it isn't the same as the store password. .LP -.RE .SS Keystore Location -.LP -.RS 3 - .LP .LP \f3jarsigner\fP has a \f2\-keystore\fP option for specifying the URL of the keystore to be used. The keystore is by default stored in a file named \f2.keystore\fP in the user's home directory, as determined by the \f2user.home\fP system property. On Solaris systems \f2user.home\fP defaults to the user's home directory. @@ -145,12 +130,8 @@ Keystore Location .LP Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based, for example, if it resides on a hardware token device. .LP -.RE .SS Keystore Implementation -.LP -.RS 3 - .LP .LP The \f2KeyStore\fP class provided in the \f2java.security\fP package supplies well\-defined interfaces to access and modify the information in a keystore. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular \f2type\fP of keystore. @@ -166,13 +147,13 @@ Keystore implementations are provider\-based. More specifically, the application .na \f2How to Implement a Provider for the Java Cryptography Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html. .LP .LP Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. .LP .LP -\f3keytool\fP works on any file\-based keystore implementation. (It treats the keytore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. +\f3keytool\fP works on any file\-based keystore implementation. (It treats the keystore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. .LP .LP For \f3jarsigner\fP and \f3keytool\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Change Keystore" command in the Edit menu. @@ -227,40 +208,35 @@ Note that if you us the PKCS#11 provider package, you should refer to the .na \f2KeyTool and JarSigner\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details. +http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#KeyToolJarSigner section of the Java PKCS#11 Reference Guide for details. .LP -.RE .SS Supported Algorithms .LP -.RS 3 - .LP -.LP -By default, \f3jarsigner\fP signs a JAR file using either +By default, \f3jarsigner\fP signs a JAR file using one of the following: .LP .RS 3 .TP 2 o -DSA (Digital Signature Algorithm) with the SHA\-1 digest algorithm, or +DSA (Digital Signature Algorithm) with the SHA1 digest algorithm .TP 2 o -the RSA algorithm with the SHA\-256 digest algorithm. +RSA algorithm with the SHA256 digest algorithm. +.TP 2 +o +EC (Elliptic Curve) cryptography algorithm with the SHA256 with ECDSA (Elliptic Curve Digital Signature Algorithm). .RE .LP .LP -That is, if the signer's public and private keys are DSA keys, \f3jarsigner\fP will sign the JAR file using the "SHA1withDSA" algorithm. If the signer's keys are RSA keys, \f3jarsigner\fP will attempt to sign the JAR file using the "SHA256withRSA" algorithm. +That is, if the signer's public and private keys are DSA keys, \f3jarsigner\fP will sign the JAR file using the "SHA1withDSA" algorithm. If the signer's keys are RSA keys, \f3jarsigner\fP will attempt to sign the JAR file using the "SHA256withRSA" algorithm. If the signer's keys are EC keys, \f3jarsigner\fP will sign the JAR file using the "SHA256withECDSA" algorithm. .LP .LP These default signature algorithms can be overridden using the \f2\-sigalg\fP option. .LP -.RE .SS The Signed JAR File -.LP -.RS 3 - .LP .LP When \f3jarsigner\fP is used to sign a JAR file, the output signed JAR file is exactly the same as the input JAR file, except that it has two additional files placed in the META\-INF directory: @@ -271,7 +247,7 @@ o a signature file, with a .SF extension, and .TP 2 o -a signature block file, with a .DSA extension. +a signature block file, with a .DSA, .RSA, or .EC extension. .RE .LP @@ -281,22 +257,19 @@ The base file names for these two files come from the value of the \f2\-sigFile\ .nf \f3 .fl - \-sigFile MKSIGN +\-sigFile MKSIGN .fl \fP .fi .LP .LP -the files are named "MKSIGN.SF" and "MKSIGN.DSA". +The files are named "MKSIGN.SF" and "MKSIGN.DSA". .LP .LP If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not allowed in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. Legal characters include letters, digits, underscores, and hyphens. .LP \f3The Signature (.SF) File\fP -.LP -.RS 3 - .LP .LP A signature file (the .SF file) looks similar to the manifest file that is always included in a JAR file when \f3jarsigner\fP is used to sign the file. That is, for each source file included in the JAR file, the .SF file has three lines, just as in the manifest file, listing the following: @@ -320,25 +293,14 @@ In the manifest file, the SHA digest value for each source file is the digest (h .LP The signature file also, by default, includes a header containing a hash of the whole manifest file. The presence of the header enables verification optimization, as described in JAR File Verification. .LP -.RE -\f3The Signature Block (.DSA) File\fP +\f3The Signature Block File\fP .LP -.RS 3 - -.LP -.LP -The .SF file is signed and the signature is placed in the .DSA file. The .DSA file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. -.LP -.RE -.RE +The .SF file is signed and the signature is placed in the signature block file. This file also contains, encoded inside it, the certificate or certificate chain from the keystore which authenticates the public key corresponding to the private key used for signing. The file has the extension .DSA, .RSA, or .EC depending on the digest algorithm used. .SS Signature Timestamp .LP -.RS 3 - .LP -.LP -\f2jarsigner\fP tool can now generate and store a signature timestamp when signing a JAR file. In addition, \f2jarsigner\fP supports alternative signing mechanisms. This behavior is optional and is controlled by the user at the time of signing through these options: +\f2jarsigner\fP tool can generate and store a signature timestamp when signing a JAR file. In addition, \f2jarsigner\fP supports alternative signing mechanisms. This behavior is optional and is controlled by the user at the time of signing through these options: .LP .RS 3 .TP 2 @@ -359,12 +321,8 @@ o .LP Each of these options is detailed in the Options section below. .LP -.RE .SS JAR File Verification -.LP -.RS 3 - .LP .LP A successful JAR file verification occurs if the signature(s) are valid, and none of the files that were in the JAR file when the signatures were generated have been changed since then. JAR file verification involves the following steps: @@ -372,18 +330,22 @@ A successful JAR file verification occurs if the signature(s) are valid, and non .RS 3 .TP 3 1. -Verify the signature of the .SF file itself. -.LP -That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with. +Verify the signature of the .SF file itself. +.br +.br +That is, the verification ensures that the signature stored in each signature block (.DSA) file was in fact generated using the private key corresponding to the public key whose certificate (or certificate chain) also appears in the .DSA file. It also ensures that the signature is a valid signature of the corresponding signature (.SF) file, and thus the .SF file has not been tampered with. .TP 3 2. -Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest. -.LP -The .SF file by default includes a header containing a hash of the entire manifest file. When the header is present, then the verification can check to see whether or not the hash in the header indeed matches the hash of the manifest file. If that is the case, verification proceeds to the next step. -.LP -If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File). -.LP -One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file. +Verify the digest listed in each entry in the .SF file with each corresponding section in the manifest. +.br +.br +The .SF file by default includes a header containing a hash of the entire manifest file. When the header is present, then the verification can check to see whether or not the hash in the header indeed matches the hash of the manifest file. If that is the case, verification proceeds to the next step. +.br +.br +If that is not the case, a less optimized verification is required to ensure that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file (see The Signature (.SF) File). +.br +.br +One reason the hash of the manifest file that is stored in the .SF file header may not equal the hash of the current manifest file would be because one or more files were added to the JAR file (using the \f2jar\fP tool) after the signature (and thus the .SF file) was generated. When the \f2jar\fP tool is used to add files, the manifest file is changed (sections are added to it for the new files), but the .SF file is not. A verification is still considered successful if none of the files that were in the JAR file when the signature was generated have been changed since then, which is the case if the hashes in the non\-header sections of the .SF file equal the hashes of the corresponding sections in the manifest file. .TP 3 3. Read each file in the JAR file that has an entry in the .SF file. While reading, compute the file's digest, and then compare the result with the digest for this file in the manifest section. The digests should be the same, or verification fails. @@ -393,12 +355,8 @@ Read each file in the JAR file that has an entry in the .SF file. While reading, .LP If any serious verification failures occur during the verification process, the process is stopped and a security exception is thrown. It is caught and displayed by \f3jarsigner\fP. .LP -.RE .SS Multiple Signatures for a JAR File -.LP -.RS 3 - .LP .LP A JAR file can be signed by multiple people simply by running the \f3jarsigner\fP tool on the file multiple times, specifying the alias for a different person each time, as in: @@ -435,10 +393,7 @@ When a JAR file is signed multiple times, there are multiple .SF and .DSA files .LP Note: It is also possible for a JAR file to have mixed signatures, some generated by the JDK 1.1 \f3javakey\fP tool and others by \f3jarsigner\fP. That is, \f3jarsigner\fP can be used to sign JAR files already previously signed using \f3javakey\fP. .LP -.RE .SH "OPTIONS" -.LP - .LP .LP The various \f3jarsigner\fP options are listed and described below. Note: @@ -462,12 +417,15 @@ The \f2\-keystore\fP, \f2\-storepass\fP, \f2\-keypass\fP, \f2\-sigfile\fP, \f2\- .RS 3 .TP 3 \-keystore url -Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property. -.LP -A keystore is required when signing, so you must explicitly specify one if the default keystore does not exist (or you want to use one other than the default). -.LP -A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. -.LP +Specifies the URL that tells the keystore location. This defaults to the file \f2.keystore\fP in the user's home directory, as determined by the "user.home" system property. +.br +.br +A keystore is required when signing, so you must explicitly specify one if the default keystore does not exist (or you want to use one other than the default). +.br +.br +A keystore is \f2not\fP required when verifying, but if one is specified, or the default exists, and the \f2\-verbose\fP option was also specified, additional information is output regarding whether or not any of the certificates used to verify the JAR file are contained in that keystore. +.br +.br Note: the \f2\-keystore\fP argument can actually be a file name (and path) specification rather than a URL, in which case it will be treated the same as a "file:" URL. That is, .nf \f3 @@ -494,79 +452,93 @@ o \f2\-storetype PKCS11\fP .RE For example, this command lists the contents of the configured PKCS#11 token: -.RS 3 - -.LP .nf \f3 .fl jarsigner \-keystore NONE \-storetype PKCS11 \-list .fl - -.fl \fP .fi -.RE .TP 3 \-storetype storetype -Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP. -.LP -The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified. +Specifies the type of keystore to be instantiated. The default keystore type is the one that is specified as the value of the "keystore.type" property in the security properties file, which is returned by the static \f2getDefaultType\fP method in \f2java.security.KeyStore\fP. +.br +.br +The PIN for a PCKS#11 token can also be specified using the \f2\-storepass\fP option. If none has been specified, keytool and jarsigner will prompt for the token PIN. If the token has a protected authentication path (such as a dedicated PIN\-pad or a biometric reader), then the \f2\-protected\fP option must be specified and no password options can be specified. .TP 3 -\-storepass password -Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password. -.LP -Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. +\-storepass[:env | :file] argument +Specifies the password which is required to access the keystore. This is only needed when signing (not verifying) a JAR file. In that case, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for the password. +.br +.br +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .TP 3 -\-keypass password -Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it. -.LP -Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. Also, when typing in a password at the password prompt, the password is echoed (displayed exactly as typed), so be careful not to type it in front of anyone. +\-keypass[:env | :file] argument +Specifies the password used to protect the private key of the keystore entry addressed by the alias specified on the command line. The password is required when using \f3jarsigner\fP to sign a JAR file. If no password is provided on the command line, and the required password is different from the store password, the user is prompted for it. +.br +.br +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +Note: The password shouldn't be specified on the command line or in a script unless it is for testing purposes, or you are on a secure system. .TP 3 \-sigfile file -Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file. -.LP -The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names. -.LP -If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. +Specifies the base file name to be used for the generated .SF and .DSA files. For example, if \f2file\fP is "DUKESIGN", the generated .SF and .DSA files will be named "DUKESIGN.SF" and "DUKESIGN.DSA", and will be placed in the "META\-INF" directory of the signed JAR file. +.br +.br +The characters in \f2file\fP must come from the set "a\-zA\-Z0\-9_\-". That is, only letters, numbers, underscore, and hyphen characters are allowed. Note: All lowercase characters will be converted to uppercase for the .SF and .DSA file names. +.br +.br +If no \f2\-sigfile\fP option appears on the command line, the base file name for the .SF and .DSA files will be the first 8 characters of the alias name specified on the command line, all converted to upper case. If the alias name has fewer than 8 characters, the full alias name is used. If the alias name contains any characters that are not legal in a signature file name, each such character is converted to an underscore ("_") character in forming the file name. .TP 3 \-sigalg algorithm -.RS 3 - -.LP -Specifies the name of the signature algorithm to use to sign the JAR file. -.LP +Specifies the name of the signature algorithm to use to sign the JAR file. +.br +.br See .na \f2Appendix A\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA or SHA256withRSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. -.LP -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard signature algorithm names. This algorithm must be compatible with the private key used to sign the JAR file. If this option is not specified, SHA1withDSA, SHA256withRSA, or SHA256withECDSA will be used depending on the type of private key. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. .TP 3 \-digestalg algorithm -.RS 3 -Specifies the name of the message digest algorithm to use when digesting the entries of a jar file. -.LP +Specifies the name of the message digest algorithm to use when digesting the entries of a jar file. +.br +.br See .na \f2Appendix A\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA\-256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. -.LP -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA of the Java Cryptography Architecture for a list of standard message digest algorithm names. If this option is not specified, SHA256 will be used. There must either be a statically installed provider supplying an implementation of the specified algorithm or the user must specify one with the \f2\-providerClass\fP option, otherwise the command will not succeed. .TP 3 \-signedjar file -Specifies the name to be used for the signed JAR file. -.LP -If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file. +Specifies the name to be used for the signed JAR file. +.br +.br +If no name is specified on the command line, the name used is the same as the input JAR file name (the name of the JAR file to be signed); in other words, that file is overwritten with the signed JAR file. .TP 3 \-verify -If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)" -.LP -It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both. -.LP -For further information on verification, see JAR File Verification. +If this appears on the command line, the specified JAR file will be verified, not signed. If the verification is successful, "jar verified" will be displayed. If you try to verify an unsigned JAR file, or a JAR file signed with an unsupported algorithm (e.g., RSA when you don't have an RSA provider installed), the following is displayed: "jar is unsigned. (signatures missing or not parsable)" +.br +.br +It is possible to verify JAR files signed using either \f3jarsigner\fP or the JDK 1.1 \f3javakey\fP tool, or both. +.br +.br +For further information on verification, see JAR File Verification. .TP 3 \-certs If this appears on the command line, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file. This information includes @@ -578,7 +550,6 @@ the name of the type of certificate (stored in the .DSA file) that certifies the o if the certificate is an X.509 certificate (more specifically, an instance of \f2java.security.cert.X509Certificate\fP): the distinguished name of the signer .RE -.LP The keystore is also examined. If no keystore value is specified on the command line, the default keystore file (if any) will be checked. If the public key certificate for a signer matches an entry in the keystore, then the following information will also be displayed: .RS 3 .TP 2 @@ -596,26 +567,25 @@ If this appears on the command line, it indicates "verbose" mode, which causes \ In the past, the .DSA (signature block) file generated when a JAR file was signed used to include a complete encoded copy of the .SF file (signature file) also generated. This behavior has been changed. To reduce the overall size of the output JAR file, the .DSA file by default doesn't contain a copy of the .SF file anymore. But if \f2\-internalsf\fP appears on the command line, the old behavior is utilized. \f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP .TP 3 \-sectionsonly -If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File . -.LP -By default, this header is added, as an optimization. When the header is present, then whenever the JAR file is verified, the verification can first check to see whether or not the hash in the header indeed matches the hash of the whole manifest file. If so, verification proceeds to the next step. If not, it is necessary to do a less optimized verification that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file. -.LP -For further information, see JAR File Verification. -.LP -\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP +If this appears on the command line, the .SF file (signature file) generated when a JAR file is signed does \f2not\fP include a header containing a hash of the whole manifest file. It just contains information and hashes related to each individual source file included in the JAR file, as described in The Signature (.SF) File . +.br +.br +By default, this header is added, as an optimization. When the header is present, then whenever the JAR file is verified, the verification can first check to see whether or not the hash in the header indeed matches the hash of the whole manifest file. If so, verification proceeds to the next step. If not, it is necessary to do a less optimized verification that the hash in each source file information section in the .SF file equals the hash of its corresponding section in the manifest file. +.br +.br +For further information, see JAR File Verification. +.br +.br +\f3This option is mainly useful for testing; in practice, it should not be used, since doing so eliminates a useful optimization.\fP .TP 3 \-protected Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader. -.RE -.RS 3 .TP 3 -\-provider provider\-class\-name -Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP. -.LP +\-providerClass provider\-class\-name +Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file, \f2java.security\fP. +.br +.br Used in conjunction with the \f2\-providerArg\fP \f2ConfigFilePath\fP option, keytool and jarsigner will install the provider dynamically (where \f2ConfigFilePath\fP is the path to the token configuration file). Here's an example of a command to list a PKCS#11 keystore when the Sun PKCS#11 provider has not been configured in the security properties file. -.RS 3 - -.LP .nf \f3 .fl @@ -629,19 +599,16 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ .fl \fP .fi -.RE .TP 3 \-providerName providerName -If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider. -.LP +If more than one provider has been configured in the \f2java.security\fP security properties file, you can use the \f2\-providerName\fP option to target a specific provider instance. The argument to this option is the name of the provider. +.br +.br For the Sun PKCS#11 provider, \f2providerName\fP is of the form \f2SunPKCS11\-\fP\f2TokenName\fP, where \f2TokenName\fP is the name suffix that the provider instance has been configured with, as detailed in the .na \f2configuration attributes table\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP: -.RS 3 - -.LP +http://download.oracle.com/javase/7/docs/technotes/guides/security/p11guide.html#ATTRS. For example, the following command lists the contents of the PKCS#11 keystore provider instance with name suffix \f2SmartCard\fP: .nf \f3 .fl @@ -653,58 +620,59 @@ jarsigner \-keystore NONE \-storetype PKCS11 \\ .fl \fP .fi -.RE .TP 3 \-Jjavaoption -Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. -.LP +Passes through the specified \f2javaoption\fP string directly to the Java interpreter. (\f3jarsigner\fP is actually a "wrapper" around the interpreter.) This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. .TP 3 \-tsa url -If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore. -.LP +If \f2"\-tsa http://example.tsa.url"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The URL, \f2http://example.tsa.url\fP, identifies the location of the Time Stamping Authority (TSA). It overrides any URL found via the \f2\-tsacert\fP option. The \f2\-tsa\fP option does not require the TSA's public key certificate to be present in the keystore. +.br +.br To generate the timestamp, \f2jarsigner\fP communicates with the TSA using the Time\-Stamp Protocol (TSP) defined in .na \f2RFC 3161\fP @ .fi -http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file. -.LP +http://www.ietf.org/rfc/rfc3161.txt. If successful, the timestamp token returned by the TSA is stored along with the signature in the signature block file. .TP 3 \-tsacert alias -If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. -.LP -The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP. -.LP +If \f2"\-tsacert alias"\fP appears on the command line when signing a JAR file then a timestamp is generated for the signature. The \f2alias\fP identifies the TSA's public key certificate in the keystore that is currently in effect. The entry's certificate is examined for a Subject Information Access extension that contains a URL identifying the location of the TSA. +.br +.br +The TSA's public key certificate must be present in the keystore when using \f2\-tsacert\fP. .TP 3 \-altsigner class -Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism. -.LP -For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP -.LP +Specifies that an alternative signing mechanism be used. The fully\-qualified class name identifies a class file that extends the \f2com.sun.jarsigner.ContentSigner abstract class\fP. The path to this class file is defined by the \f2\-altsignerpath\fP option. If the \f2\-altsigner\fP option is used, \f2jarsigner\fP uses the signing mechanism provided by the specified class. Otherwise, \f2jarsigner\fP uses its default signing mechanism. +.br +.br +For example, to use the signing mechanism provided by a class named \f2com.sun.sun.jarsigner.AuthSigner\fP, use the \f2jarsigner\fP option \f2"\-altsigner com.sun.jarsigner.AuthSigner"\fP .TP 3 \-altsignerpath classpathlist -Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below. -.LP -An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path. -.LP +Specifies the path to the class file (the class file name is specified with the \f2\-altsigner\fP option described above) and any JAR files it depends on. If the class file is in a JAR file, then this specifies the path to that JAR file, as shown in the example below. +.br +.br +An absolute path or a path relative to the current directory may be specified. If \f2classpathlist\fP contains multiple paths or JAR files, they should be separated with a colon (\f2:\fP) on Solaris and a semi\-colon (\f2;\fP) on Windows. This option is not necessary if the class is already in the search path. +.br +.br Example of specifying the path to a jar file that contains the class file: -.RS 3 - -.LP -.LP -\f2\-altsignerpath /home/user/lib/authsigner.jar\fP -.LP -.RE -.LP -Note that the JAR file name is included. -.LP +.nf +\f3 +.fl +\-altsignerpath /home/user/lib/authsigner.jar +.fl +\fP +.fi +Note that the JAR file name is included. +.br +.br Example of specifying the path to the jar file that contains the class file: -.RS 3 -.LP -\f2\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/\fP -.LP -.RE -.LP -Note that the JAR file name is omitted. +.nf +\f3 +.fl +\-altsignerpath /home/user/classes/com/sun/tools/jarsigner/ +.fl +\fP +.fi +Note that the JAR file name is omitted. .TP 3 \-strict During the signing or verifying process, some warning messages may be shown. If this option appears on the command line, the exit code of the tool will reflect the warning messages that are found. Read the "WARNINGS" section for details. @@ -712,25 +680,22 @@ During the signing or verifying process, some warning messages may be shown. If \-verbose:sub\-options For the verifying process, the \f2\-verbose\fP option takes sub\-options to determine how much information will be shown. If \f2\-certs\fP is also specified, the default mode (or sub\-option all) displays each entry as it is being processed and following that, the certificate information for each signer of the JAR file. If \f2\-certs\fP and the \f2\-verbose:grouped\fP sub\-option are specified, entries with the same signer info are grouped and displayed together along with their certificate information. If \f2\-certs\fP and the \f2\-verbose:summary\fP sub\-option are specified, then entries with the same signer info are grouped and displayed together along with their certificate information but details about each entry are summarized and displayed as "one entry (and more)". See the examples section for more information. .RE -.SH "EXAMPLES" -.LP +.LP +.SH "EXAMPLES" .LP .SS Signing a JAR File .LP -.RS 3 - .LP -.LP -Suppose you have a JAR file named "bundle.jar" and you'd like to sign it using the private key of the user whose keystore alias is "jane" in the keystore named "mystore" in the "working" directory. Suppose the keystore password is "myspass" and the password for \f2jane\fP's private key is "j638klm". You can use the following to sign the JAR file and name the signed JAR file "sbundle.jar": +Suppose you have a JAR file named "bundle.jar" and you'd like to sign it using the private key of the user whose keystore alias is "jane" in the keystore named "mystore" in the "working" directory. You can use the following to sign the JAR file and name the signed JAR file "sbundle.jar": .LP .nf \f3 .fl - jarsigner \-keystore /working/mystore \-storepass myspass + jarsigner \-keystore /working/mystore \-storepass \fP\f4<keystore password>\fP\f3 .fl - \-keypass j638klm \-signedjar sbundle.jar bundle.jar jane + \-keypass \fP\f4<private key password>\fP\f3 \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -747,7 +712,7 @@ If you want to be prompted for the store password and the private key password, .fl jarsigner \-keystore /working/mystore .fl - \-signedjar sbundle.jar bundle.jar jane + \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -759,7 +724,7 @@ If the keystore to be used is the default keystore (the one named ".keystore" in .nf \f3 .fl - jarsigner \-signedjar sbundle.jar bundle.jar jane + jarsigner \-signedjar sbundle.jar bundle.jar jane .fl \fP .fi @@ -771,18 +736,14 @@ Finally, if you want the signed JAR file to simply overwrite the input JAR file .nf \f3 .fl - jarsigner bundle.jar jane + jarsigner bundle.jar jane .fl \fP .fi -.RE .LP .SS Verifying a Signed JAR File -.LP -.RS 3 - .LP .LP To verify a signed JAR file, that is, to verify that the signature is valid and the JAR file has not been tampered with, use a command such as the following: @@ -790,7 +751,7 @@ To verify a signed JAR file, that is, to verify that the signature is valid and .nf \f3 .fl - jarsigner \-verify sbundle.jar + jarsigner \-verify sbundle.jar .fl \fP .fi @@ -851,7 +812,7 @@ You can get more information if you use the \f2\-verbose\fP option. A sample use Verification with Certificate Information .LP .LP -If you specify the \f2\-certs\fP option when verifying, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file, including the certificate type, the signer distinguished name information (iff it's an X.509 certificate), and, in parentheses, the keystore alias for the signer if the public key certificate in the JAR file matches that in a keystore entry. For example, +If you specify the \f2\-certs\fP option when verifying, along with the \f2\-verify\fP and \f2\-verbose\fP options, the output includes certificate information for each signer of the JAR file, including the certificate type, the signer distinguished name information (if and only if it's an X.509 certificate), and, in parentheses, the keystore alias for the signer if the public key certificate in the JAR file matches that in a keystore entry. For example, .LP .nf \f3 @@ -961,10 +922,7 @@ When the \f2\-certs\fP option is used, any identity database aliases are shown i .LP Note that the alias "duke" is in brackets to denote that it is an identity database alias, not a keystore alias. .LP -.RE .SH "WARNINGS" -.LP - .LP During the signing/verifying process, jarsigner may display various warnings. These warning codes are defined as follows: .nf @@ -980,25 +938,25 @@ During the signing/verifying process, jarsigner may display various warnings. Th .fl This jar contains entries whose signer certificate has expired. .fl - + .fl notYetValidCert 4 .fl This jar contains entries whose signer certificate is not yet valid. .fl - + .fl chainNotValidated 4 .fl This jar contains entries whose certificate chain cannot be correctly validated. .fl - + .fl badKeyUsage 8 .fl This jar contains entries whose signer certificate's KeyUsage extension doesn't allow code signing. .fl - + .fl badExtendedKeyUsage 8 .fl @@ -1006,33 +964,33 @@ During the signing/verifying process, jarsigner may display various warnings. Th .fl doesn't allow code signing. .fl - + .fl badNetscapeCertType 8 .fl - This jar contains entries whose signer certificate's NetscapeCertType extension + This jar contains entries whose signer certificate's NetscapeCertType extension .fl doesn't allow code signing. .fl - + .fl hasUnsignedEntry 16 .fl This jar contains unsigned entries which have not been integrity\-checked. .fl - + .fl notSignedByAlias 32 .fl This jar contains signed entries which are not signed by the specified alias(es) .fl - + .fl aliasNotInStore 32 .fl This jar contains signed entries that are not signed by alias in this keystore .fl - + .fl \fP .fi @@ -1042,23 +1000,19 @@ During the signing/verifying process, jarsigner may display various warnings. Th When the \f2\-strict\fP option is provided, an OR\-value of warnings detected will be returned as the exit code of the tool. For example, if a certificate used to sign an entry is expired and has a keyUsage extension that does not allow it to sign a file, an exit code 12 (=4+8) will be returned. .LP .LP -\f3Note\fP: Exit codes are reused because only 0\-255 is legal for Unix. In any case, if the signing/verifying process fails, the exit code +\f3Note\fP: Exit codes are reused because only 0\-255 is legal for Unix. In any case, if the signing/verifying process fails, the following exit code will be returned: .LP .nf \f3 .fl -failure 1 +failure 1 .fl \fP .fi .LP -will be returned. .SS Compatibility with JDK 1.1 -.LP -.RS 3 - .LP .LP The \f3keytool\fP and \f3jarsigner\fP tools completely replace the \f3javakey\fP tool provided in JDK 1.1. These new tools provide more features than \f3javakey\fP, including the ability to protect the keystore and private keys with passwords, and the ability to verify signatures in addition to generating them. @@ -1390,7 +1344,7 @@ Default privileges granted to all code plus privileges granted in policy file. ( .nr 44 \n(83+(3*\n(38) .nr 84 +\n(44 .nr TW \n(84 -.if t .if \n(TW>\n(.li .tm Table at line 1128 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1082 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1590,8 +1544,6 @@ Only trusted identities can be imported into Java 2 SDK keystores. .LP .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 @@ -1606,13 +1558,12 @@ the .na \f4Security\fP @ .fi -http://java.sun.com/docs/books/tutorial/security/index.html trail of the +http://download.oracle.com/javase/tutorial/security/index.html trail of the .na \f4Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool +http://download.oracle.com/javase/tutorial/index.html for examples of the use of the \f3jarsigner\fP tool .RE .LP -.RE diff --git a/jdk/src/solaris/doc/sun/man/man1/java.1 b/jdk/src/solaris/doc/sun/man/man1/java.1 index 1f436ff9ebe..2e885083a8b 100644 --- a/jdk/src/solaris/doc/sun/man/man1/java.1 +++ b/jdk/src/solaris/doc/sun/man/man1/java.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH java 1 "02 Jun 2010" +.TH java 1 "10 May 2011" .LP .SH "Name" @@ -36,9 +36,6 @@ java \- the Java application launcher .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -56,10 +53,7 @@ Argument passed to the \f3main\fP function. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f3java\fP tool launches a Java application. It does this by starting a Java runtime environment, loading a specified class, and invoking that class's \f3main\fP method. @@ -70,7 +64,7 @@ The method must be declared public and static, it must not return any value, and .nf \f3 .fl - public static void main(String args[]) +public static void main(String args[]) .fl \fP .fi @@ -86,77 +80,80 @@ The Java runtime searches for the startup class, and other classes used, in thre Non\-option arguments after the class name or JAR file name are passed to the \f3main\fP function. .LP .SH "OPTIONS" -.LP - .LP .LP The launcher has a set of standard options that are supported on the current runtime environment and will be supported in future releases. In addition, the current implementations of the virtual machines support a set of non\-standard options that are subject to change in future releases. .LP .SH "Standard Options" -.LP - .LP .RS 3 .TP 3 \-client -.LP -Select the Java HotSpot Client VM. A 64\-bit capable jdk currently ignores this option and instead uses the Java Hotspot Server VM. -.LP +Select the Java HotSpot Client VM. A 64\-bit capable jdk currently ignores this option and instead uses the Java Hotspot Server VM. +.br +.br For default VM selection, see .na \f2Server\-Class Machine Detection\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html +http://download.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.html .TP 3 \-server -.LP -Select the Java HotSpot Server VM. On a 64\-bit capable jdk only the Java Hotspot Server VM is supported so the \-server option is implicit. -.LP +Select the Java HotSpot Server VM. On a 64\-bit capable jdk only the Java Hotspot Server VM is supported so the \-server option is implicit. +.br +.br For default VM selection, see .na \f2Server\-Class Machine Detection\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/vm/server\-class.html +http://download.oracle.com/javase/7/docs/technotes/guides/vm/server\-class.html .TP 3 \-agentlib:libname[=options] -Load native agent library \f2libname\fP, e.g. -.LP -\-agentlib:hprof -.LP -\-agentlib:jdwp=help -.LP -\-agentlib:hprof=help -.LP +Load native agent library \f2libname\fP, e.g. +.br +.br +\-agentlib:hprof +.br +.br +\-agentlib:jdwp=help +.br +.br +\-agentlib:hprof=help +.br +.br For more information, see .na \f2JVMTI Agent Command Line Options\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting. +http://download.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting. .TP 3 \-agentpath:pathname[=options] Load a native agent library by full pathname. For more information, see .na \f2JVMTI Agent Command Line Options\fP @ .fi -http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#starting. +http://download.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#starting. .TP 3 \-classpath classpath .TP 3 \-cp classpath -Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (\f3:\fP). Specifying \f3\-classpath\fP or \f3\-cp\fP overrides any setting of the \f3CLASSPATH\fP environment variable. -.LP +Specify a list of directories, JAR archives, and ZIP archives to search for class files. Class path entries are separated by colons (\f3:\fP). Specifying \f3\-classpath\fP or \f3\-cp\fP overrides any setting of the \f3CLASSPATH\fP environment variable. +.br +.br If \f3\-classpath\fP and \f3\-cp\fP are not used and \f3CLASSPATH\fP is not set, the user class path consists of the current directory (\f4.\fP). -.LP +.br +.br As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). .br .br For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. -.LP +.br +.br For more information on class paths, see .na \f2Setting the Class Path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath. +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath. .TP 3 \-Dproperty=value Set a system property value. @@ -164,19 +161,23 @@ Set a system property value. \-d32 .TP 3 \-d64 -Request that the program to be run in a 32\-bit or 64\-bit environment, respectively. If the requested environment is not installed or is not supported, an error is reported. -.LP -Currently only the Java HotSpot Server VM supports 64\-bit operation, and the "\-server" option is implicit with the use of \-d64. And the "\-client" option is ignored with the use of \-d64. This is subject to change in a future release. -.LP -If neither \f3\-d32\fP nor \f3\-d64\fP is specified, the default is to run in a 32\-bit environment, except for 64\-bit only systems. This is subject to change in a future release. +Request that the program to be run in a 32\-bit or 64\-bit environment, respectively. If the requested environment is not installed or is not supported, an error is reported. +.br +.br +Currently only the Java HotSpot Server VM supports 64\-bit operation, and the "\-server" option is implicit with the use of \-d64. And the "\-client" option is ignored with the use of \-d64. This is subject to change in a future release. +.br +.br +If neither \f3\-d32\fP nor \f3\-d64\fP is specified, the default is to run in a 32\-bit environment, except for 64\-bit only systems. This is subject to change in a future release. .TP 3 \-enableassertions[:<package name>"..." | :<class name> ] .TP 3 \-ea[:<package name>"..." | :<class name> ] -Enable assertions. Assertions are disabled by default. -.LP -With no arguments, \f3enableassertions\fP or \f3\-ea\fP enables assertions. With one argument ending in \f2"..."\fP, the switch enables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch enables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch enables assertions in the specified class. -.LP +Enable assertions. Assertions are disabled by default. +.br +.br +With no arguments, \f3enableassertions\fP or \f3\-ea\fP enables assertions. With one argument ending in \f2"..."\fP, the switch enables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch enables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch enables assertions in the specified class. +.br +.br If a single command line contains multiple instances of these switches, they are processed in order before loading any classes. So, for example, to run a program with assertions enabled only in package \f2com.wombat.fruitbat\fP (and any subpackages), the following command could be used: .nf \f3 @@ -185,26 +186,26 @@ java \-ea:com.wombat.fruitbat... <Main Class> .fl \fP .fi -.LP -The \f3\-enableassertions\fP and \f3\-ea\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-enablesystemassertions\fP below. +The \f3\-enableassertions\fP and \f3\-ea\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-enablesystemassertions\fP below. .TP 3 \-disableassertions[:<package name>"..." | :<class name> ] .TP 3 \-da[:<package name>"..." | :<class name> ] -Disable assertions. This is the default. -.LP -With no arguments, \f3disableassertions\fP or \f3\-da\fP disables assertions. With one argument ending in \f2"..."\fP, the switch disables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch disables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch disables assertions in the specified class. -.LP +Disable assertions. This is the default. +.br +.br +With no arguments, \f3disableassertions\fP or \f3\-da\fP disables assertions. With one argument ending in \f2"..."\fP, the switch disables assertions in the specified package and any subpackages. If the argument is simply \f2"..."\fP, the switch disables assertions in the unnamed package in the current working directory. With one argument not ending in \f2"..."\fP, the switch disables assertions in the specified class. +.br +.br To run a program with assertions enabled in package \f2com.wombat.fruitbat\fP but disabled in class \f2com.wombat.fruitbat.Brickbat\fP, the following command could be used: .nf \f3 .fl -java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat <Main Class> +java \-ea:com.wombat.fruitbat... \-da:com.wombat.fruitbat.Brickbat \fP\f4<Main Class>\fP\f3 .fl \fP .fi -.LP -The \f3\-disableassertions\fP and \f3\-da\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-disablesystemassertions\fP below. +The \f3\-disableassertions\fP and \f3\-da\fP switches apply to \f2all\fP class loaders and to system classes (which do not have a class loader). There is one exception to this rule: in their no\-argument form, the switches do \f2not\fP apply to system. This makes it easy to turn on asserts in all classes except for system classes. A separate switch is provided to enable asserts in all system classes; see \f3\-disablesystemassertions\fP below. .TP 3 \-enablesystemassertions .TP 3 @@ -215,29 +216,36 @@ Enable asserts in all system classes (sets the \f2default assertion status\fP fo .TP 3 \-dsa Disables asserts in all system classes. -.LP .TP 3 \-jar Execute a program encapsulated in a JAR file. The first argument is the name of a JAR file instead of a startup class name. In order for this option to work, the manifest of the JAR file must contain a line of the form \f3Main\-Class: \fP\f4classname\fP. Here, \f2classname\fP identifies the class having the \f2public\ static\ void\ main(String[]\ args)\fP method that serves as your application's starting point. See the jar(1) and the Jar trail of the .na \f2Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial/jar for information about working with Jar files and Jar\-file manifests. -.LP -When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. -.LP +http://download.oracle.com/javase/tutorial/deployment/jar for information about working with Jar files and Jar\-file manifests. +.br +.br +When you use this option, the JAR file is the source of all user classes, and other user class path settings are ignored. +.br +.br Note that JAR files that can be run with the "java \-jar" option can have their execute permissions set so they can be run without using "java \-jar". Refer to .na \f2Java Archive (JAR) Files\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jar/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/jar/index.html. .TP 3 \-javaagent:jarpath[=options] Load a Java programming language agent, see .na \f2java.lang.instrument\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/lang/instrument/package\-summary.html. +http://download.oracle.com/javase/7/docs/api/java/lang/instrument/package\-summary.html. +.TP 3 +\-jre\-restrict\-search +Include user\-private JREs in the version search. +.TP 3 +\-no\-jre\-restrict\-search +Exclude user\-private JREs in the version search. .TP 3 \-verbose .TP 3 @@ -254,8 +262,9 @@ Report information about use of native methods and other Java Native Interface a Display version information and exit. .TP 3 \-version:release -Specifies that the version specified by \f2release\fP is required by the class or jar file specified on the command line. If the version of the java command invoked does not meet this specification and an appropriate implementation is found on the system, the appropriate implementation will be used. -.LP +Specifies that the version specified by \f2release\fP is required by the class or jar file specified on the command line. If the version of the java command invoked does not meet this specification and an appropriate implementation is found on the system, the appropriate implementation will be used. +.br +.br \f2release\fP not only can specify an exact version, but can also specify a list of versions called a version string. A version string is an ordered list of version ranges separated by spaces. A version range is either a version\-id, a version\-id followed by a star (*), a version\-id followed by a plus sign (+) , or two version\-ranges combined using an ampersand (&). The star means prefix match, the plus sign means this version or greater, and the ampersand means the logical anding of the two version\-ranges. For example: .nf \f3 @@ -264,11 +273,13 @@ Specifies that the version specified by \f2release\fP is required by the class o .fl \fP .fi -The meaning of the above is that the class or jar file requires either version 1.6.0_13, or a version with 1.6 as a version\-id prefix and that is not less than 1.6.0_10.. The exact syntax and definition of version strings may be found in Appendix A of the Java Network Launching Protocol & API Specification (JSR\-56). -.LP -For jar files, the usual preference is to specify version requirements in the jar file manifest rather than on the command line. -.LP -See the following NOTES section for important policy information on the use of this option. +The meaning of the above is that the class or jar file requires either version 1.6.0_13, or a version with 1.6 as a version\-id prefix and that is not less than 1.6.0_10.. The exact syntax and definition of version strings may be found in Appendix A of the Java Network Launching Protocol & API Specification (JSR\-56). +.br +.br +For jar files, the usual preference is to specify version requirements in the jar file manifest rather than on the command line. +.br +.br +See the following NOTES section for important policy information on the use of this option. .TP 3 \-showversion Display version information and continue. @@ -278,6 +289,9 @@ Display version information and continue. \-help Display usage information and exit. .TP 3 +\-splash:imagepath +Show splash screen with image specified by \f2imagepath\fP. +.TP 3 \-X Display information about non\-standard options and exit. .RE @@ -285,9 +299,6 @@ Display information about non\-standard options and exit. .LP .SS Non\-Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -319,18 +330,20 @@ Disable class garbage collection. Use of this option will prevent memory recover Enable the incremental garbage collector. The incremental garbage collector, which is off by default, will reduce the occasional long garbage\-collection pauses during program execution. The incremental garbage collector will at times execute concurrently with the program and during such times will reduce the processor capacity available to the program. .TP 3 \-Xloggc:file -Report on each garbage collection event, as with \-verbose:gc, but log this data to \f2file\fP. In addition to the information \f2\-verbose:gc\fP gives, each reported event will be preceeded by the time (in seconds) since the first garbage\-collection event. -.LP -Always use a local file system for storage of this file to avoid stalling the JVM due to network latency. The file may be truncated in the case of a full file system and logging will continue on the truncated file. This option overrides \f2\-verbose:gc\fP if both are given on the command line. -.LP +Report on each garbage collection event, as with \-verbose:gc, but log this data to \f2file\fP. In addition to the information \f2\-verbose:gc\fP gives, each reported event will be preceeded by the time (in seconds) since the first garbage\-collection event. +.br +.br +Always use a local file system for storage of this file to avoid stalling the JVM due to network latency. The file may be truncated in the case of a full file system and logging will continue on the truncated file. This option overrides \f2\-verbose:gc\fP if both are given on the command line. .TP 3 \-Xmsn -Specify the initial size, in bytes, of the memory allocation pool. This value must be a multiple of 1024 greater than 1MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics +Specify the initial size, in bytes, of the memory allocation pool. This value must be a multiple of 1024 greater than 1MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.html +.br .br Examples: -.RS 3 - -.LP .nf \f3 .fl @@ -340,19 +353,20 @@ Examples: .fl \-Xms6m .fl - + .fl \fP .fi -.RE .TP 3 \-Xmxn -Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see HotSpot Ergonomics +Specify the maximum size, in bytes, of the memory allocation pool. This value must a multiple of 1024 greater than 2MB. Append the letter \f2k\fP or \f2K\fP to indicate kilobytes, or \f2m\fP or \f2M\fP to indicate megabytes. The default value is chosen at runtime based on system configuration. For more information, see +.na +\f2HotSpot Ergonomics\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/vm/gc\-ergonomics.html +.br .br Examples: -.RS 3 - -.LP .nf \f3 .fl @@ -362,28 +376,31 @@ Examples: .fl \-Xmx80m .fl - + .fl \fP .fi -.RE On Solaris 7 and Solaris 8 SPARC platforms, the upper limit for this value is approximately 4000m minus overhead amounts. On Solaris 2.6 and x86 platforms, the upper limit is approximately 2000m minus overhead amounts. On Linux platforms, the upper limit is approximately 2000m minus overhead amounts. .TP 3 \-Xprof Profiles the running program, and sends profiling data to standard output. This option is provided as a utility that is useful in program development and is not intended to be used in production systems. -.LP .TP 3 \-Xrs -Reduces use of operating\-system signals by the Java virtual machine (JVM). -.LP -In a previous release, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly. -.LP -Sun's JVM catches signals to implement shutdown hooks for abnormal JVM termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running of shutdown hooks. -.LP -The JVM uses a similar mechanism to implement the pre\-1.2 feature of dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform thread dumps. -.LP -Applications embedding the JVM frequently need to trap signals like SIGINT or SIGTERM, which can lead to interference with the JVM's own signal handlers. The \f3\-Xrs\fP command\-line option is available to address this issue. When \f3\-Xrs\fP is used on Sun's JVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by the JVM, and signal handlers for these signals are not installed. -.LP +Reduces use of operating\-system signals by the Java virtual machine (JVM). +.br +.br +In a previous release, the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. The intent was to allow user cleanup code (such as closing database connections) to run at shutdown, even if the JVM terminates abruptly. +.br +.br +Sun's JVM catches signals to implement shutdown hooks for abnormal JVM termination. The JVM uses SIGHUP, SIGINT, and SIGTERM to initiate the running of shutdown hooks. +.br +.br +The JVM uses a similar mechanism to implement the pre\-1.2 feature of dumping thread stacks for debugging purposes. Sun's JVM uses SIGQUIT to perform thread dumps. +.br +.br +Applications embedding the JVM frequently need to trap signals like SIGINT or SIGTERM, which can lead to interference with the JVM's own signal handlers. The \f3\-Xrs\fP command\-line option is available to address this issue. When \f3\-Xrs\fP is used on Sun's JVM, the signal masks for SIGINT, SIGTERM, SIGHUP, and SIGQUIT are not changed by the JVM, and signal handlers for these signals are not installed. +.br +.br There are two consequences of specifying \f3\-Xrs\fP: .RS 3 .TP 2 @@ -402,12 +419,11 @@ The VM uses \f2SIGUSR1\fP and \f2SIGUSR2\fP by default, which can sometimes conf .RE .LP -.RE .SH "NOTES" .LP - .LP -The \f3\-version:\fP\f2release\fP command line option places no restrictions on the complexity of the release specification. However, only a restricted subset of the possible release specifications represent sound policy and only these are fully supported. These policies are: +The \f3\-version:\fP\f2release\fP command line option places no restrictions on the complexity of the release specification. However, only a restricted subset of the possible release specifications represent sound policy and only these are fully supported. These policies are: +.LP .RS 3 .TP 3 1. @@ -422,8 +438,7 @@ Any version greater than an arbitrarily precise version\-id. For example: .fl \fP .fi -.LP -Would utilize any version greater than 1.6.0_10. This is useful for a case where an interface was introduced (or a bug fixed) in the release specified. +This would utilize any version greater than \f21.6.0_10\fP. This is useful for a case where an interface was introduced (or a bug fixed) in the release specified. .TP 3 3. A version greater than an arbitrarily precise version\-id, bounded by the upper bound of that release family. For example: @@ -448,9 +463,22 @@ Similar to item 2. this is useful when a change was introduced in a release (1.7 .RE .LP -.SH "SEE ALSO" +.SH "EXIT STATUS" .LP +.LP +The following exit values are generally returned by the launcher, typically when the launcher is called with the wrong arguments, serious errors, or exceptions thrown from the Java Virtual Machine. However, a Java application may choose to return any value using the API call \f2System.exit(exitValue)\fP. +.LP +.RS 3 +.TP 2 +o +\f20\fP: Successful completion +.TP 2 +o +\f2>0\fP: An error occurred +.RE +.LP +.SH "SEE ALSO" .LP .RS 3 .TP 2 @@ -470,13 +498,13 @@ o .na \f2The Java Extensions Framework\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/extensions/index.html .TP 2 o .na \f2Security Features\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/index.html. .TP 2 o .na diff --git a/jdk/src/solaris/doc/sun/man/man1/javac.1 b/jdk/src/solaris/doc/sun/man/man1/javac.1 index 7e01a50e989..3f3b5733f0a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/javac.1 +++ b/jdk/src/solaris/doc/sun/man/man1/javac.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,31 +19,26 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javac 1 "02 Jun 2010" +.TH javac 1 "10 May 2011" .LP .SH "Name" javac \- Java programming language compiler .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl \fP\f3javac\fP [ options ] [ sourcefiles ] [ classes ] [ @argfiles ] .fl - + .fl .fi .LP .LP Arguments may be in any order. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -61,10 +56,7 @@ One or more files that lists options and source files. The \f2\-J\fP options are .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f3javac\fP tool reads class and interface definitions, written in the Java programming language, and compiles them into bytecode class files. It can also process annotations in Java source files and classes. @@ -95,17 +87,12 @@ You should arrange source files in a directory tree that reflects their package By default, the compiler puts each class file in the same directory as its source file. You can specify a separate destination directory with \f3\-d\fP (see Options, below). .LP .SH "OPTIONS" -.LP - .LP .LP The compiler has a set of standard options that are supported on the current development environment and will be supported in future releases. An additional set of non\-standard options are specific to the current virtual machine and compiler implementations and are subject to change in the future. Non\-standard options begin with \f3\-X\fP. .LP .SS Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -113,20 +100,13 @@ Standard Options Options to pass to annotation processors. These are not interpreted by javac directly, but are made available for use by individual processors. \f2key\fP should be one or more identifiers separated by ".". .TP 3 \-cp path or \-classpath path -Specify where to find user class files, and (optionally) annotation processors and source files. This classpath overrides the user class path in the \f3CLASSPATH\fP environment variable. If neither \f3CLASSPATH\fP, \f3\-cp\fP nor \f3\-classpath\fP is specified, the user class path consists of the current directory. See -.na -\f2Setting the Class Path\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath for more details. -.LP -If the \f3\-sourcepath\fP option is not specified, the user class path is also searched for source files. -.LP -If the \f3\-processorpath\fP option is not specified, the classpath is also searched for annotation processors. -.LP -As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP. +Specify where to find user class files, and (optionally) annotation processors and source files. This class path overrides the user class path in the \f3CLASSPATH\fP environment variable. If neither \f3CLASSPATH\fP, \f3\-cp\fP nor \f3\-classpath\fP is specified, the user class path consists of the current directory. See Setting the Class Path for more details. .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. \f3Note:\fP \ Depending of the configuration of your command line environment, you may have to quote the wild card character, for example, \f2javac \-cp "*.jar" MyClass.java\fP. +>If the \f3\-sourcepath\fP option is not specified, the user class path is also searched for source files. +.br +.br +If the \f3\-processorpath\fP option is not specified, the class path is also searched for annotation processors. .TP 3 \-Djava.ext.dirs=directories Override the location of installed extensions. @@ -135,17 +115,28 @@ Override the location of installed extensions. Override the location of endorsed standards path. .TP 3 \-d directory -Set the destination directory for class files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, \f3javac\fP puts the class file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-d /home/myclasses\fP and the class is called \f2com.mypackage.MyClass\fP, then the class file is called \f2/home/myclasses/com/mypackage/MyClass.class\fP. -.LP -If \f3\-d\fP is not specified, \f3javac\fP puts each class files in the same directory as the source file from which it was generated. -.LP -\f3Note:\fP \ The directory specified by \f3\-d\fP is not automatically added to your user class path. +Set the destination directory for class files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, \f3javac\fP puts the class file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-d /home/myclasses\fP and the class is called \f2com.mypackage.MyClass\fP, then the class file is called \f2/home/myclasses/com/mypackage/MyClass.class\fP. +.br +.br +If \f3\-d\fP is not specified, \f3javac\fP puts each class files in the same directory as the source file from which it was generated. +.br +.br +\f3Note:\fP The directory specified by \f3\-d\fP is not automatically added to your user class path. .TP 3 \-deprecation Show a description of each use or override of a deprecated member or class. Without \f3\-deprecation\fP, \f3javac\fP shows a summary of the source files that use or override deprecated members or classes. \f3\-deprecation\fP is shorthand for \f3\-Xlint:deprecation\fP. .TP 3 \-encoding encoding -Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used. +Set the source file encoding name, such as \f2EUC\-JP and UTF\-8\fP. If \f3\-encoding\fP is not specified, the platform default converter is used. +.TP 3 +\-endorseddirs directories +Override the location of endorsed standards path. +.TP 3 +\-extdirs directories +Overrides the location of the \f2ext\fP directory. The \f2directories\fP variable is a colon\-separated list of directories. Each JAR archive in the specified directories is searched for class files. All JAR archives found are automatically part of the class path. +.br +.br +If you are cross\-compiling (compiling classes against bootstrap and extension classes of a different Java platform implementation), this option specifies the directories that contain the extension classes. See Cross\-Compilation Options for more information. .TP 3 \-g Generate all debugging information, including local variables. By default, only line number and source file information is generated. @@ -171,7 +162,13 @@ Local variable debugging information Print a synopsis of standard options. .TP 3 \-implicit:{class,none} -Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types. +Controls the generation of class files for implicitly loaded source files. To automatically generate class files, use \f3\-implicit:class\fP. To suppress class file generation, use \f3\-implicit:none\fP. If this option is not specified, the default is to automatically generate class files. In this case, the compiler will issue a warning if any such class files are generated when also doing annotation processing. The warning will not be issued if this option is set explicitly. See Searching For Types. +.TP 3 +\-Joption +Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. It is a common convention for \f3\-J\fP to pass options to the underlying VM executing applications written in Java. +.br +.br +\f3Note:\fP \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher. .TP 3 \-nowarn Disable warning messages. This has the same meaning as \f3\-Xlint:none\fP. @@ -183,7 +180,7 @@ Controls whether annotation processing and/or compilation is done. \f3\-proc:non Names of the annotation processors to run. This bypasses the default discovery process. .TP 3 \-processorpath path -Specify where to find annotation processors; if this option is not used, the classpath will be searched for processors. +Specify where to find annotation processors; if this option is not used, the class path will be searched for processors. .TP 3 \-s dir Specify the directory where to place generated source files. The directory must already exist; \f3javac\fP will not create it. If a class is part of a package, the compiler puts the source file in a subdirectory reflecting the package name, creating directories as needed. For example, if you specify \f3\-s /home/mysrc\fP and the class is called \f2com.mypackage.MyClass\fP, then the source file will be placed in \f2/home/mysrc/com/mypackage/MyClass.java\fP. @@ -218,27 +215,27 @@ Synonym for 1.7. .RE .TP 3 \-sourcepath sourcepath -Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name. -.LP -\f3Note:\fP \ Classes found through the classpath may be subject to automatic recompilation if their sources are also found. See Searching For Types. +Specify the source code path to search for class or interface definitions. As with the user class path, source path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. If packages are used, the local path name within the directory or archive must reflect the package name. +.br +.br +\f3Note:\fP Classes found through the class path may be subject to automatic recompilation if their sources are also found. See Searching For Types. .TP 3 \-verbose Verbose output. This includes information about each class loaded and each source file compiled. .TP 3 \-version -Print version information. +Print version information. +.TP 3 +\-Werror +Terminate compilation if warnings occur. .TP 3 \-X Display information about non\-standard options and exit. .RE .LP -.RE .SS Cross\-Compilation Options -.LP -.RS 3 - .LP .LP By default, classes are compiled against the bootstrap and extension classes of the platform that \f3javac\fP shipped with. But \f3javac\fP also supports \f2cross\-compiling\fP, where classes are compiled against a bootstrap and extension classes of a different Java platform implementation. It is important to use \f3\-bootclasspath\fP and \f3\-extdirs\fP when cross\-compiling; see Cross\-Compilation Example below. @@ -246,13 +243,14 @@ By default, classes are compiled against the bootstrap and extension classes of .RS 3 .TP 3 \-target version -Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP \f31.2\fP \f31.3\fP \f31.4\fP \f31.5\fP (also \f35\fP) \f31.6\fP (also \f36\fP) and \f31.7\fP (also \f37\fP). -.LP +Generate class files that target a specified version of the VM. Class files will run on the specified target and on later versions, but not on earlier versions of the VM. Valid targets are \f31.1\fP \f31.2\fP \f31.3\fP \f31.4\fP \f31.5\fP (also \f35\fP) \f31.6\fP (also \f36\fP) and \f31.7\fP (also \f37\fP). +.br +.br The default for \f3\-target\fP depends on the value of \f3\-source\fP: .RS 3 .TP 2 o -If \-source is \f3not specified\fP, the value of \-target is \f31.6\fP +If \-source is \f3not specified\fP, the value of \-target is \f31.7\fP .TP 2 o If \-source is \f31.2\fP, the value of \-target is \f31.4\fP @@ -261,23 +259,16 @@ o If \-source is \f31.3\fP, the value of \-target is \f31.4\fP .TP 2 o -For \f3all other values\fP of \-source, the value of \-target is the value of \f3\-source\fP. +For \f3all other values\fP of \-source, the value of \f3\-target\fP is the value of \f3\-source\fP. .RE .TP 3 \-bootclasspath bootclasspath Cross\-compile against the specified set of boot classes. As with the user class path, boot class path entries are separated by colons (\f3:\fP) and can be directories, JAR archives, or ZIP archives. -.TP 3 -\-extdirs directories -Cross\-compile against the specified extension directories. \f2Directories\fP is a colon\-separated list of directories. Each JAR archive in the specified directories is searched for class files. .RE .LP -.RE .SS Non\-Standard Options -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -291,54 +282,19 @@ Append to the bootstrap class path. Override location of bootstrap class files. .TP 3 \-Xlint -Enable all recommended warnings. In this release, all available warnings are recommended. +Enable all recommended warnings. In this release, enabling all available warnings is recommended. +.TP 3 +\-Xlint:all +Enable all recommended warnings. In this release, enabling all available warnings is recommended. .TP 3 \-Xlint:none -Disable all warnings not mandated by the Java Language Specification. +Disable all warnings. +.TP 3 +\-Xlint:name +Enable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can enable with this option. .TP 3 \-Xlint:\-name -Disable warning \f2name\fP, where \f2name\fP is one of the warning names supported for \f3\-Xlint:\fP\f2name\fP, below. -.TP 3 -\-Xlint:unchecked -Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. -.TP 3 -\-Xlint:path -Warn about nonexistent path (classpath, sourcepath, etc) directories. -.TP 3 -\-Xlint:serial -Warn about missing \f2serialVersionUID\fP definitions on serializable classes. -.TP 3 -\-Xlint:finally -Warn about \f2finally\fP clauses that cannot complete normally. -.TP 3 -\-Xlint:fallthrough -Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement: -.RS 3 - -.LP -.nf -\f3 -.fl -switch (x) { -.fl -case 1: -.fl - System.out.println("1"); -.fl - // No break; statement here. -.fl -case 2: -.fl - System.out.println("2"); -.fl -} -.fl - -.fl -\fP -.fi -.RE -If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question. +Disable warning \f2name\fP. See the section Warnings That Can Be Enabled or Disabled with \-Xlint Option for a list of warnings you can disable with this option. .TP 3 \-Xmaxerrs number Set the maximum number of errors to print. @@ -350,7 +306,10 @@ Set the maximum number of warnings to print. Send compiler messages to the named file. By default, compiler messages go to \f2System.err\fP. .TP 3 \-Xprefer:{newer,source} -Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP. +Specify which file to read when both a source file and class file are found for a type. (See Searching For Types). If \f2\-Xprefer:newer\fP is used, it reads the newer of the source or class file for a type (default). If the \f2\-Xprefer:source\fP option is used, it reads source file. Use \f2\-Xprefer:source\fP when you want to be sure that any annotation processors can access annotations declared with a retention policy of \f2SOURCE\fP. +.TP 3 +\-Xpkginfo:{always,legacy,nonempty} +Specify handling of package\-info files .TP 3 \-Xprint Print out textual representation of specified types for debugging purposes; perform neither annotation processing nor compilation. The format of the output may change. @@ -363,26 +322,419 @@ Print information about initial and subsequent annotation processing rounds. .RE .LP -.RE .SS -The \-J Option +Warnings That Can Be Enabled or Disabled with \-Xlint Option .LP -.RS 3 - +.LP +Enable warning \f2name\fP with the option \f3\-Xlint:\fP\f2name\fP, where \f2name\fP is one of the following warning names. Similarly, you can disable warning \f2name\fP with the option \f3\-Xlint:\-\fP\f2name\fP: .LP .RS 3 .TP 3 -\-Joption -Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f3\-X\fP, it is not a `standard option' of \f3javac\fP. It is a common convention for \f3\-J\fP to pass options to the underlying VM executing applications written in Java. -.LP -\f3Note:\fP \ \f3CLASSPATH\fP, \f3\-classpath\fP, \f3\-bootclasspath\fP, and \f3\-extdirs\fP do \f2not\fP specify the classes used to run \f3javac\fP. Fiddling with the implementation of the compiler in this way is usually pointless and always risky. If you do need to do this, use the \f3\-J\fP option to pass through options to the underlying \f3java\fP launcher. +cast +Warn about unnecessary and redundant casts. For example: +.nf +\f3 +.fl +String s = (String)"Hello!" +.fl +\fP +.fi +.TP 3 +classfile +Warn about issues related to classfile contents. +.TP 3 +deprecation +Warn about use of deprecated items. For example: +.nf +\f3 +.fl + java.util.Date myDate = new java.util.Date(); +.fl + int currentDay = myDate.getDay(); +.fl +\fP +.fi +The method \f2java.util.Date.getDay\fP has been deprecated since JDK 1.1. +.TP 3 +dep\-ann +Warn about items that are documented with an \f2@deprecated\fP Javadoc comment, but do not have a \f2@Deprecated\fP annotation. For example: +.nf +\f3 +.fl + /** +.fl + * @deprecated As of Java SE 7, replaced by {@link #newMethod()} +.fl + */ +.fl + +.fl + public static void deprecatedMethood() { } +.fl + +.fl + public static void newMethod() { } +.fl +\fP +.fi +.TP 3 +divzero +Warn about division by constant integer 0. For example: +.nf +\f3 +.fl + int divideByZero = 42 / 0; +.fl +\fP +.fi +.TP 3 +empty +Warn about empty statements after \f2if\fP statements. For example: +.nf +\f3 +.fl +class E { +.fl + void m() { +.fl + if (true) ; +.fl + } +.fl +} +.fl +\fP +.fi +.TP 3 +fallthrough +Check \f2switch\fP blocks for fall\-through cases and provide a warning message for any that are found. Fall\-through cases are cases in a \f2switch\fP block, other than the last case in the block, whose code does not include a \f2break\fP statement, allowing code execution to "fall through" from that case to the next case. For example, the code following the \f2case 1\fP label in this \f2switch\fP block does not end with a \f2break\fP statement: +.nf +\f3 +.fl +switch (x) { +.fl +case 1: +.fl + System.out.println("1"); +.fl + // No break statement here. +.fl +case 2: +.fl + System.out.println("2"); +.fl +} +.fl +\fP +.fi +If the \f2\-Xlint:fallthrough\fP flag were used when compiling this code, the compiler would emit a warning about "possible fall\-through into case," along with the line number of the case in question. +.TP 3 +finally +Warn about \f2finally\fP clauses that cannot complete normally. For example: +.nf +\f3 +.fl + public static int m() { +.fl + try { +.fl + throw new NullPointerException(); +.fl + } catch (NullPointerException e) { +.fl + System.err.println("Caught NullPointerException."); +.fl + return 1; +.fl + } finally { +.fl + return 0; +.fl + } +.fl + } +.fl +\fP +.fi +The compiler generates a warning for \f2finally\fP block in this example. When this method is called, it returns a value of \f20\fP, not \f21\fP. A \f2finally\fP block always executes when the \f2try\fP block exits. In this example, if control is transferred to the \f2catch\fP, then the method exits. However, the \f2finally\fP block must be executed, so it is executed, even though control has already been transferred outside the method. +.TP 3 +options +Warn about issues relating to the use of command line options. See Cross\-Compilation Example for an example of this kind of warning. +.TP 3 +overrides +Warn about issues regarding method overrides. For example, consider the following two classes: +.nf +\f3 +.fl +public class ClassWithVarargsMethod { +.fl + void varargsMethod(String... s) { } +.fl +} +.fl +\fP +.fi +.nf +\f3 +.fl +public class ClassWithOverridingMethod extends ClassWithVarargsMethod { +.fl + @Override +.fl + void varargsMethod(String[] s) { } +.fl +} +.fl +\fP +.fi +The compiler generates a warning similar to the following: +.br +.br +\f2warning: [override] varargsMethod(String[]) in ClassWithOverridingMethod overrides varargsMethod(String...) in ClassWithVarargsMethod; overriding method is missing '...'\fP +.br +.br +When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. In the method \f2ClassWithVarargsMethod.varargsMethod\fP, the compiler translates the varargs formal parameter \f2String... s\fP to the formal parameter \f2String[] s\fP, an array, which matches the formal parameter of the method \f2ClassWithOverridingMethod.varargsMethod\fP. Consequently, this example compiles. +.TP 3 +path +Warn about invalid path elements and nonexistent path directories on the command line (with regards to the class path, the source path, and other paths). Such warnings cannot be suppressed with the \f2@SuppressWarnings\fP annotation. For example: +.nf +\f3 +.fl +javac \-Xlint:path \-classpath /nonexistentpath Example.java +.fl +\fP +.fi +.TP 3 +processing +Warn about issues regarding annotation processing. The compiler generates this warning if you have a class that has an annotation, and you use an annotation processor that cannot handle that type of exception. For example, the following is a simple annotation processor: +.br +.br +\f3Source file \fP\f4AnnoProc.java\fP: +.nf +\f3 +.fl +import java.util.*; +.fl +import javax.annotation.processing.*; +.fl +import javax.lang.model.*; +.fl +import javax.lang.model.element.*; +.fl + +.fl +@SupportedAnnotationTypes("NotAnno") +.fl +public class AnnoProc extends AbstractProcessor { +.fl + public boolean process(Set<? extends TypeElement> elems, RoundEnvironment renv) { +.fl + return true; +.fl + } +.fl + +.fl + public SourceVersion getSupportedSourceVersion() { +.fl + return SourceVersion.latest(); +.fl + } +.fl +} +.fl +\fP +.fi +\f3Source file \fP\f4AnnosWithoutProcessors.java\fP\f3:\fP +.nf +\f3 +.fl +@interface Anno { } +.fl + +.fl +@Anno +.fl +class AnnosWithoutProcessors { } +.fl +\fP +.fi +The following commands compile the annotation processor \f2AnnoProc\fP, then run this annotation processor against the source file \f2AnnosWithoutProcessors.java\fP: +.nf +\f3 +.fl +% javac AnnoProc.java +.fl +% javac \-cp . \-Xlint:processing \-processor AnnoProc \-proc:only AnnosWithoutProcessors.java +.fl +\fP +.fi +When the compiler runs the annotation processor against the source file \f2AnnosWithoutProcessors.java\fP, it generates the following warning: +.br +.br +\f2warning: [processing] No processor claimed any of these annotations: Anno\fP +.br +.br +To resolve this issue, you can rename the annotation defined and used in the class \f2AnnosWithoutProcessors\fP from \f2Anno\fP to \f2NotAnno\fP. +.TP 3 +rawtypes +Warn about unchecked operations on raw types. The following statement generates a \f2rawtypes\fP warning: +.nf +\f3 +.fl +void countElements(List l) { ... } +.fl +\fP +.fi +The following does not generate a \f2rawtypes\fP warning: +.nf +\f3 +.fl +void countElements(List<?> l) { ... } +.fl +\fP +.fi +\f2List\fP is a raw type. However, \f2List<?>\fP is a unbounded wildcard parameterized type. Because \f2List\fP is a parameterized interface, you should always specify its type argument. In this example, the \f2List\fP formal argument is specified with a unbounded wildcard (\f2?\fP) as its formal type parameter, which means that the \f2countElements\fP method can accept any instantiation of the \f2List\fP interface. +.TP 3 +serial +Warn about missing \f2serialVersionUID\fP definitions on serializable classes. For example: +.nf +\f3 +.fl +public class PersistentTime implements Serializable +.fl +{ +.fl + private Date time; +.fl + +.fl + public PersistentTime() { +.fl + time = Calendar.getInstance().getTime(); +.fl + } +.fl + +.fl + public Date getTime() { +.fl + return time; +.fl + } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning: +.br +.br +\f2warning: [serial] serializable class PersistentTime has no definition of serialVersionUID\fP +.br +.br +If a serializable class does not explicitly declare a field named \f2serialVersionUID\fP, then the serialization runtime will calculate a default \f2serialVersionUID\fP value for that class based on various aspects of the class, as described in the Java Object Serialization Specification. However, it is strongly recommended that all serializable classes explicitly declare \f2serialVersionUID\fP values because the default process of computing \f2serialVersionUID\fP vales is highly sensitive to class details that may vary depending on compiler implementations, and can thus result in unexpected \f2InvalidClassExceptions\fP during deserialization. Therefore, to guarantee a consistent \f2serialVersionUID\fP value across different Java compiler implementations, a serializable class must declare an explicit \f2serialVersionUID\fP value. +.TP 3 +static +Warn about issues relating to use of statics. For example: +.nf +\f3 +.fl +class XLintStatic { +.fl + static void m1() { } +.fl + void m2() { this.m1(); } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning: +.nf +\f3 +.fl +warning: [static] static method should be qualified by type name, XLintStatic, instead of by an expression +.fl +\fP +.fi +To resolve this issue, you can call the static method \f2m1\fP as follows: +.nf +\f3 +.fl +XLintStatic.m1(); +.fl +\fP +.fi +Alternatively, you can remove the \f2static\fP keyword from the declaration of the method \f2m1\fP. +.TP 3 +try +Warn about issues relating to use of \f2try\fP blocks, including try\-with\-resources statements. For example, a warning is generated for the following statement because the resource \f2ac\fP declared in the \f2try\fP statement is not used: +.nf +\f3 +.fl +try ( AutoCloseable ac = getResource() ) { +.fl + // do nothing +.fl +} +.fl +\fP +.fi +.TP 3 +unchecked +Give more detail for unchecked conversion warnings that are mandated by the Java Language Specification. For example: +.nf +\f3 +.fl + List l = new ArrayList<Number>(); +.fl + List<String> ls = l; // unchecked warning +.fl +\fP +.fi +During type erasure, the types \f2ArrayList<Number>\fP and \f2List<String>\fP become \f2ArrayList\fP and \f2List\fP, respectively. +.br +.br +The variable \f2ls\fP has the parameterized type \f2List<String>\fP. When the \f2List\fP referenced by \f2l\fP is assigned to \f2ls\fP, the compiler generates an unchecked warning; the compiler is unable to determine at compile time, and moreover knows that the JVM will not be able to determine at runtime, if \f2l\fP refers to a \f2List<String>\fP type; it does not. Consequently, heap pollution occurs. +.br +.br +In detail, a heap pollution situation occurs when the \f2List\fP object \f2l\fP, whose static type is \f2List<Number>\fP, is assigned to another \f2List\fP object, \f2ls\fP, that has a different static type, \f2List<String>\fP. However, the compiler still allows this assignment. It must allow this assignment to preserve backwards compatibility with versions of Java SE that do not support generics. Because of type erasure, \f2List<Number>\fP and \f2List<String>\fP both become \f2List\fP. Consequently, the compiler allows the assignment of the object \f2l\fP, which has a raw type of \f2List\fP, to the object \f2ls\fP. +.TP 3 +varargs +Warn about unsafe usages of variable arguments (varargs) methods, in particular, those that contain non\-reifiable arguments. For example: +.nf +\f3 +.fl +public class ArrayBuilder { +.fl + public static <T> void addToList (List<T> listArg, T... elements) { +.fl + for (T x : elements) { +.fl + listArg.add(x); +.fl + } +.fl + } +.fl +} +.fl +\fP +.fi +The compiler generates the following warning for the definition of the method \f2ArrayBuilder.addToList\fP: +.nf +\f3 +.fl +warning: [varargs] Possible heap pollution from parameterized vararg type T +.fl +\fP +.fi +When the compiler encounters a varargs method, it translates the varargs formal parameter into an array. However, the Java programming language does not permit the creation of arrays of parameterized types. In the method \f2ArrayBuilder.addToList\fP, the compiler translates the varargs formal parameter \f2T... elements\fP to the formal parameter \f2T[] elements\fP, an array. However, because of type erasure, the compiler converts the varargs formal parameter to \f2Object[] elements\fP. Consequently, there is a possibility of heap pollution. .RE .LP -.RE .SH "COMMAND LINE ARGUMENT FILES" -.LP - .LP .LP To shorten or simplify the javac command line, you can specify one or more files that themselves contain arguments to the \f2javac\fP command (except \f2\-J\fP options). This enables you to create javac commands of any length on any operating system. @@ -405,9 +757,7 @@ You could use a single argument file named "\f2argfile\fP" to hold all javac arg .nf \f3 .fl - % \fP\f3javac @argfile\fP -.fl - +% \fP\f3javac @argfile\fP .fl .fi @@ -433,7 +783,7 @@ Create a file named "\f2options\fP" containing: .fl \-sourcepath /java/pubs/ws/1.3/src/share/classes .fl - + .fl \fP .fi @@ -451,7 +801,7 @@ Create a file named "\f2classes\fP" containing: .fl MyClass3.java .fl - + .fl \fP .fi @@ -465,7 +815,7 @@ You would then run \f3javac\fP with: .fl % \fP\f3javac @options @classes\fP .fl - + .fl .fi @@ -479,16 +829,12 @@ The argument files can have paths, but any filenames inside the files are relati .nf \f3 .fl - % \fP\f3javac @path1/options @path2/classes\fP -.fl - +% \fP\f3javac @path1/options @path2/classes\fP .fl .fi .LP .SH "ANNOTATION PROCESSING" -.LP - .LP .LP \f3javac\fP provides direct support for annotation processing, superseding the need for the separate annotation processing tool, \f3apt\fP. @@ -500,11 +846,7 @@ The API for annotation processors is defined in the \f2javax.annotation.processi Overview of annotation processing .LP .LP -Unless annotation processing is disabled with the \f3\-proc:none\fP option, the compiler searches for any annotation processors that are available. The search path can be specified with the \f3\-processorpath\fP option; if it is not given, the user class path is used. Processors are located by means of service provider\-configuration files named -.br -\f2\ META\-INF/services/javax.annotation.processing.Processor\fP -.br -on the search path. Such files should contain the names of any annotation processors to be used, listed one per line. Alternatively, processors can be specified explicitly, using the \f3\-processor\fP option. +Unless annotation processing is disabled with the \f3\-proc:none\fP option, the compiler searches for any annotation processors that are available. The search path can be specified with the \f3\-processorpath\fP option; if it is not given, the user class path is used. Processors are located by means of service provider\-configuration files named \f2META\-INF/services/javax.annotation.processing.Processor\fP on the search path. Such files should contain the names of any annotation processors to be used, listed one per line. Alternatively, processors can be specified explicitly, using the \f3\-processor\fP option. .LP .LP After scanning the source files and classes on the command line to determine what annotations are present, the compiler queries the processors to determine what annotations they process. When a match is found, the processor will be invoked. A processor may "claim" the annotations it processes, in which case no further attempt is made to find any processors for those annotations. Once all annotations have been claimed, the compiler does not look for additional processors. @@ -522,8 +864,6 @@ Implicitly loaded source files To compile a set of source files, the compiler may need to implicitly load additional source files. (See Searching For Types). Such files are currently not subject to annotation processing. By default, the compiler will give a warning if annotation processing has occurred and any implicitly loaded source files are compiled. See the \-implicit option for ways to suppress the warning. .LP .SH "SEARCHING FOR TYPES" -.LP - .LP .LP When compiling a source file, the compiler often needs information about a type whose definition did not appear in the source files given on the command line. The compiler needs type information for every class or interface used, extended, or implemented in the source file. This includes classes and interfaces not explicitly mentioned in the source file but which provide information through inheritance. @@ -532,11 +872,7 @@ When compiling a source file, the compiler often needs information about a type For example, when you subclass \f3java.applet.Applet\fP, you are also using \f3Applet's\fP ancestor classes: \f3java.awt.Panel\fP, \f3java.awt.Container\fP, \f3java.awt.Component\fP, and \f3java.lang.Object\fP. .LP .LP -When the compiler needs type information, it looks for a source file or class file which defines the type. The compiler searches for class files first in the bootstrap and extension classes, then in the user class path (which by default is the current directory). The user class path is defined by setting the \f3CLASSPATH\fP environment variable or by using the \f3\-classpath\fP command line option. (For details, see -.na -\f2Setting the Class Path\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath). +When the compiler needs type information, it looks for a source file or class file which defines the type. The compiler searches for class files first in the bootstrap and extension classes, then in the user class path (which by default is the current directory). The user class path is defined by setting the \f3CLASSPATH\fP environment variable or by using the \f3\-classpath\fP command line option. (For details, see Setting the Class Path). .LP .LP If you set the \-sourcepath option, the compiler searches the indicated path for source files; otherwise the compiler searches the user class path for both class files and source files. @@ -554,8 +890,6 @@ If a type search finds a source file for a required type, either by itself, or a The compiler may not discover the need for some type information until after annotation processing is complete. If the type information is found in a source file and no \f3\-implicit\fP option is given, the compiler will give a warning that the file is being compiled without being subject to annotation processing. To disable the warning, either specify the file on the command line (so that it will be subject to annotation processing) or use the \f3\-implicit\fP option to specify whether or not class files should be generated for such source files. .LP .SH "PROGRAMMATIC INTERFACE" -.LP - .LP .LP \f3javac\fP supports the new Java Compiler API defined by the classes and interfaces in the \f2javax.tools\fP package. @@ -572,8 +906,6 @@ To perform a compilation using arguments as you would give on the command line, JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); .fl int rc = javac.run(null, null, null, args); -.fl - .fl \fP .fi @@ -588,11 +920,8 @@ You can use other methods on the \f2javax.tools.JavaCompiler\fP interface to han .SS Old Interface .LP -.RS 3 - .LP -.LP -\f3Note:\fP \ This API is retained for backwards compatibility only; all new code should use the Java Compiler API, described above. +\f3Note:\fP This API is retained for backwards compatibility only; all new code should use the Java Compiler API, described above. .LP .LP The \f2com.sun.tools.javac.Main\fP class provides two static methods to invoke the compiler from a program: @@ -603,8 +932,6 @@ The \f2com.sun.tools.javac.Main\fP class provides two static methods to invoke t public static int compile(String[] args); .fl public static int compile(String[] args, PrintWriter out); -.fl - .fl \fP .fi @@ -622,20 +949,13 @@ The return value is equivalent to the exit value from \f3javac\fP. .LP Note that all \f3other\fP classes and methods found in a package whose name starts with \f2com.sun.tools.javac\fP (informally known as sub\-packages of \f2com.sun.tools.javac\fP) are strictly internal and subject to change at any time. .LP -.RE .SH "EXAMPLES" .LP .SS Compiling a Simple Program -.LP -.RS 3 - .LP .LP One source file, \f2Hello.java\fP, defines a class called \f3greetings.Hello\fP. The \f2greetings\fP directory is the package directory both for the source file and the class file and is off the current directory. This allows us to use the default user class path. It also makes it unnecessary to specify a separate destination directory with \f3\-d\fP. -.LP -.RS 3 - .LP .nf \f3 @@ -681,25 +1001,15 @@ Hello World Hello Universe .fl Hello Everyone -.fl - .fl .fi -.RE .LP -.RE .SS Compiling Multiple Source Files -.LP -.RS 3 - .LP .LP This example compiles all the source files in the package \f2greetings\fP. -.LP -.RS 3 - .LP .nf \f3 @@ -719,27 +1029,15 @@ Aloha.java GutenTag.java Hello.java Hi.java Aloha.class GutenTag.class Hello.class Hi.class .fl Aloha.java GutenTag.java Hello.java Hi.java -.fl - -.fl - .fl .fi -.RE .LP -.RE .SS Specifying a User Class Path -.LP -.RS 3 - .LP .LP Having changed one of the source files in the previous example, we recompile it: -.LP -.RS 3 - .LP .nf \f3 @@ -749,35 +1047,23 @@ Having changed one of the source files in the previous example, we recompile it: /examples .fl % \f3javac greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP Since \f2greetings.Hi\fP refers to other classes in the \f2greetings\fP package, the compiler needs to find these other classes. The example above works, because our default user class path happens to be the directory containing the package directory. But suppose we want to recompile this file and not worry about which directory we're in? Then we need to add \f2/examples\fP to the user class path. We can do this by setting \f3CLASSPATH\fP, but here we'll use the \f3\-classpath\fP option. -.LP -.RS 3 - .LP .nf \f3 .fl % \fP\f3javac \-classpath /examples /examples/greetings/Hi.java\fP -.fl - .fl .fi -.RE .LP .LP If we change \f2greetings.Hi\fP again, to use a banner utility, that utility also needs to be accessible through the user class path. -.LP -.RS 3 - .LP .nf \f3 @@ -786,41 +1072,25 @@ If we change \f2greetings.Hi\fP again, to use a banner utility, that utility als .fl /examples/greetings/Hi.java\fP .fl - -.fl .fi -.RE .LP .LP To execute a class in \f2greetings\fP, we need access both to \f2greetings\fP and to the classes it uses. -.LP -.RS 3 - .LP .nf \f3 .fl % \fP\f3java \-classpath /examples:/lib/Banners.jar greetings.Hi\fP -.fl - .fl .fi -.RE .LP -.RE .SS Separating Source Files and Class Files -.LP -.RS 3 - .LP .LP It often makes sense to keep source files and class files in separate directories, especially on large projects. We use \f3\-d\fP to indicate the separate class file destination. Since the source files are not in the user class path, we use \f3\-sourcepath\fP to help the compiler find them. -.LP -.RS 3 - .LP .nf \f3 @@ -854,54 +1124,49 @@ farewells/ % \f3ls classes/farewells\fP .fl Base.class GoodBye.class -.fl - -.fl - .fl .fi -.RE .LP .LP -\f3Note:\fP \ The compiler compiled \f2src/farewells/Base.java\fP, even though we didn't specify it on the command line. To trace automatic compiles, use the \f3\-verbose\fP option. +\f3Note:\fP The compiler compiled \f2src/farewells/Base.java\fP, even though we didn't specify it on the command line. To trace automatic compiles, use the \f3\-verbose\fP option. .LP -.RE .SS Cross\-Compilation Example .LP -.RS 3 - .LP -.LP -Here we use \f3javac\fP to compile code that will run on a 1.7 VM. -.LP -.RS 3 - +Here we use \f3javac\fP to compile code that will run on a 1.6 VM. .LP .nf \f3 .fl -% \fP\f3javac \-target 1.7 \-bootclasspath jdk1.7.0/lib/rt.jar \\ +% \fP\f3javac \-source 1.6 \-target 1.6 \-bootclasspath jdk1.6.0/lib/rt.jar \\ .fl \-extdirs "" OldCode.java\fP .fl - +.fi + +.LP +.LP +The \f2\-source 1.6\fP option specifies that version 1.6 (or 6) of the Java programming language be used to compile \f2OldCode.java\fP. The option \f3\-target 1.6\fP option ensures that the generated class files will be compatible with 1.6 VMs. Note that in most cases, the value of the \f3\-target\fP option is the value of the \f3\-source\fP option; in this example, you can omit the \f3\-target\fP option. +.LP +.LP +You must specify the \f3\-bootclasspath\fP option to specify the correct version of the bootstrap classes (the \f2rt.jar\fP library). If not, the compiler generates a warning: +.LP +.nf +\f3 +.fl +% \fP\f3javac \-source 1.6 OldCode.java\fP +.fl +warning: [options] bootstrap class path not set in conjunction with \-source 1.6 .fl .fi -.RE .LP .LP -The \f3\-target 1.7\fP option ensures that the generated class files will be compatible with 1.7 VMs. By default, \f3javac\fP compiles for JDK 6. +If you do not specify the correct version of bootstrap classes, the compiler will use the old language rules (in this example, it will use version 1.6 of the Java programming language) combined with the new bootstrap classes, which can result in class files that do not work on the older platform (in this case, Java SE 6) because reference to non\-existent methods can get included. .LP -.LP -The Java Platform JDK's \f3javac\fP would also by default compile against its own bootstrap classes, so we need to tell \f3javac\fP to compile against JDK 1.7 bootstrap classes instead. We do this with \f3\-bootclasspath\fP and \f3\-extdirs\fP. Failing to do this might allow compilation against a Java Platform API that would not be present on a 1.7 VM and would fail at runtime. -.LP -.RE .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 @@ -909,7 +1174,7 @@ o .na \f2The javac Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javac/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/javac/index.html .TP 2 o java(1) \- the Java Application Launcher @@ -933,7 +1198,7 @@ o .na \f2The Java Extensions Framework\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/extensions/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/extensions/index.html .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/javadoc.1 b/jdk/src/solaris/doc/sun/man/man1/javadoc.1 index 16e6a9a1fbf..6fa939b6b24 100644 --- a/jdk/src/solaris/doc/sun/man/man1/javadoc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/javadoc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,27 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javadoc 1 "02 Jun 2010" +.TH javadoc 1 "10 May 2011" .SH "Name" javadoc \- The Java API Documentation Generator -.RS 3 - .LP -.LP -Generates HTML pages of API documentation from Java source files. This document contains Javadoc examples for Sun Solaris. -.LP -.RE +Generates HTML pages of API documentation from Java source files. This document contains Javadoc examples for Solaris. .SH "SYNOPSIS" .LP -.LP \f4javadoc\fP\f2\ [\ \fP\f2options\fP\f2\ ]\ [\ packagenames\ ]\ [\ sourcefilenames\ ]\ [\ \-subpackages\fP\ \f2pkg1:pkg2:...\fP\f2\ ]\ [\ \fP\f2@argfiles\fP\f2\ ]\fP .LP -.LP Arguments can be in any order. See processing of Source Files for details on how the Javadoc tool determines which "\f2.java\fP" files to process. -.LP -.RS 3 - -.LP .RS 3 .TP 3 options @@ -49,11 +38,7 @@ packagenames A series of names of packages, separated by spaces, such as \f2java.lang\ java.lang.reflect\ java.awt\fP. You must separately specify each package you want to document. Wildcards are not allowed; use \-subpackages for recursion. The Javadoc tool uses \f2\-sourcepath\fP to look for these package names. See Example \- Documenting One or More Packages .TP 3 sourcefilenames -A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes +A series of source file names, separated by spaces, each of which can begin with a path and contain a wildcard such as asterisk (*). The Javadoc tool will process every file whose name ends with ".java", and whose name, when stripped of that suffix, is actually a legal class name (see the Java Language Specification). Therefore, you can name files with dashes (such as \f2X\-Buffer\fP), or other illegal characters, to prevent them from being documented. This is useful for test files and template files The path that precedes the source file name determines where javadoc will look for the file. (The Javadoc tool does \f2not\fP use \f2\-sourcepath\fP to look for these source file names.) Relative paths are relative to the current directory, so passing in \f2Button.java\fP is identical to \f2./Button.java\fP. A source file name with an absolute path and a wildcard, for example, is \f2/home/src/java/awt/Graphics*.java\fP. See Example\ \-\ Documenting One or More Classes. You can also mix packagenames and sourcefilenames, as in Example\ \-\ Documenting Both Packages and Classes .TP 3 \-subpackages pkg1:pkg2:... Generates documentation from source files in the specified packages and recursively in their subpackages. An alternative to supplying packagenames or sourcefilenames. @@ -61,31 +46,19 @@ Generates documentation from source files in the specified packages and recursiv @argfiles One or more files that contain a list of Javadoc options, packagenames and sourcefilenames in any order. Wildcards (*) and \f2\-J\fP options are not allowed in these files. .RE - -.LP -.RE .SH "DESCRIPTION" .LP -.LP The \f3Javadoc\fP tool parses the declarations and documentation comments in a set of Java source files and produces a corresponding set of HTML pages describing (by default) the public and protected classes, nested classes (but not anonymous inner classes), interfaces, constructors, methods, and fields. You can use it to generate the API (Application Programming Interface) documentation or the implementation documentation for a set of source files. .LP -.LP You can run the Javadoc tool on entire packages, individual source files, or both. When documenting entire packages, you can either use \f2\-subpackages\fP for traversing recursively down from a top\-level directory, or pass in an explicit list of package names. When documenting individual source files, you pass in a list of source (\f2.java\fP) filenames. Examples are given at the end of this document. How Javadoc processes source files is covered next. -.LP .SS Processing of source files .LP -.LP The Javadoc tool processes files that end in "\f2.java\fP" plus other files described under Source Files. If you run the Javadoc tool by explicitly passing in individual source filenames, you can determine exactly which "\f2.java\fP" files are processed. However, that is not how most developers want to work, as it is simpler to pass in package names. The Javadoc tool can be run three ways without explicitly specifying the source filenames. You can (1) pass in package names, (2) use \f2\-subpackages\fP, and (3) use wildcards with source filenames (\f2*.java\fP). In these cases, the Javadoc tool processes a "\f2.java\fP" file only if it fulfills all of the following requirements: -.LP .RS 3 .TP 2 o -Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625 for legal characters) +Its name, after stripping off the "\f2.java\fP" suffix, is actually a legal class name (see the Java Language Specification for legal characters) .TP 2 o Its directory path relative to the root of the source tree is actually a legal package name (after converting its separators to dots) @@ -93,11 +66,8 @@ Its directory path relative to the root of the source tree is actually a legal p o Its package statement contains the legal package name (specified in the previous bullet) .RE - -.LP .LP \f3Processing of links\fP \- During a run, the Javadoc tool automatically adds cross\-reference links to package, class and member names that are being documented as part of that run. Links appear in several places: -.LP .RS 3 .TP 2 o @@ -124,69 +94,50 @@ Package and class inheritance trees o The index .RE - -.LP .LP You can add hyperlinks to existing text for classes not included on the command line (but generated separately) by way of the \f2\-link\fP and \f2\-linkoffline\fP options. .LP -.LP \f3Other processing details\fP \- The Javadoc tool produces one complete document each time it is run; it cannot do incremental builds \-\- that is, it cannot modify or \f2directly\fP incorporate results from previous runs of the Javadoc tool. However, it can link to results from other runs, as just mentioned. .LP -.LP As implemented, the Javadoc tool requires and relies on the java compiler to do its job. The Javadoc tool calls part of \f2javac\fP to compile the declarations, ignoring the member implementation. It builds a rich internal representation of the classes, including the class hierarchy, and "use" relationships, then generates the HTML from that. The Javadoc tool also picks up user\-supplied documentation from documentation comments in the source code. .LP -.LP In fact, the Javadoc tool will run on \f2.java\fP source files that are pure stub files with no method bodies. This means you can write documentation comments and run the Javadoc tool in the earliest stages of design while creating the API, before writing the implementation. .LP -.LP -Relying on the compiler ensures that the HTML output corresponds exactly with the actual implementation, which may rely on implicit, rather than explicit, source code. For example, the Javadoc tool documents -.na -\f2default constructors\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#36154 (section 8.6.7 of \f2Java Language Specification\fP) that are present in the \f2.class\fP files but not in the source code. -.LP +Relying on the compiler ensures that the HTML output corresponds exactly with the actual implementation, which may rely on implicit, rather than explicit, source code. For example, the Javadoc tool documents default constructors (see Java Language Specification) that are present in the \f2.class\fP files but not in the source code. .LP In many cases, the Javadoc tool allows you to generate documentation for source files whose code is incomplete or erroneous. This is a benefit that enables you to generate documentation before all debugging and troubleshooting is done. For example, according to the \f2Java Language Specification\fP, a class that contains an abstract method should itself be declared abstract. The Javadoc tool does not check for this, and would proceed without a warning, whereas the javac compiler stops on this error. The Javadoc tool does do some primitive checking of doc comments. Use the DocCheck doclet to check the doc comments more thoroughly. .LP -.LP When the Javadoc tool builds its internal structure for the documentation, it loads all referenced classes. Because of this, the Javadoc tool must be able to find all referenced classes, whether bootstrap classes, extensions, or user classes. For more about this, see .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path. -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. Generally speaking, classes you create must either be loaded as an extension or in the Javadoc tool's class path. .SS Javadoc Doclets .LP -.LP You can customize the content and format of the Javadoc tool's output by using doclets. The Javadoc tool has a default "built\-in" doclet, called the standard doclet, that generates HTML\-formatted API documentation. You can modify or subclass the standard doclet, or write your own doclet to generate HTML, XML, MIF, RTF or whatever output format you'd like. Information about doclets and their use is at the following locations: -.LP .RS 3 .TP 2 o .na \f2Javadoc Doclets\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html .TP 2 o The \f2\-doclet\fP command\-line option .RE - -.LP .LP When a custom doclet is not specified with the \f2\-doclet\fP command line option, the Javadoc tool will use the default standard doclet. The javadoc tool has several command line options that are available regardless of which doclet is being used. The standard doclet adds a supplementary set of command line options. Both sets of options are described below in the options section. -.LP .SS Related Documentation and Doclets -.LP .RS 3 .TP 2 o .na \f2Javadoc Enhancements\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc. +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/index.html for details about improvements added in Javadoc. .TP 2 o .na @@ -198,7 +149,7 @@ o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html for more information about Sun conventions for writing documentation comments. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html for more information about Sun conventions for writing documentation comments. .TP 2 o .na @@ -216,22 +167,18 @@ o .na \f2DocCheck Doclet\fP @ .fi -http://java.sun.com/javadoc/doccheck \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Sun Doc Check Utilities. +http://www.oracle.com/technetwork/java/javase/documentation/index\-141437.html \- Checks doc comments in source files and generates a report listing the errors and irregularities it finds. It is part of the Doc Check Utilities. .TP 2 o .na \f2MIF Doclet\fP @ .fi -http://java.sun.com/javadoc/mifdoclet \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format. +http://java.sun.com/j2se/javadoc/mifdoclet/ \- Can automate the generation of API documentation in MIF, FrameMaker and PDF formats. MIF is Adobe FrameMaker's interchange format. .RE - -.LP .SS Terminology .LP -.LP The terms \f2documentation comment\fP, \f2doc comment\fP, \f2main description\fP, \f2tag\fP, \f2block tag\fP, and \f2in\-line tag\fP are described at Documentation Comments. These other terms have specific meanings within the context of the Javadoc tool: -.LP .RS 3 .TP 3 generated document @@ -259,34 +206,25 @@ The classes and interfaces that are explicitly referred to in the definition (im .na \f21.3\fP @ .fi -http://java.sun.com/j2se/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members. +http://download.oracle.com/javase/1.3/docs/tooldocs/solaris/javadoc.html#referencedclasses.) When the Javadoc tool is run, it should load into memory all of the referenced classes in javadoc's bootclasspath and classpath. (The Javadoc tool prints a "Class not found" warning for referenced classes not found.) The Javadoc tool can derive enough information from the .class files to determine their existence and the fully\-qualified names of their members. .LP .TP 3 external referenced classes The referenced classes whose documentation is not being generated during a javadoc run. In other words, these classes are not passed into the Javadoc tool on the command line. Links in the generated documentation to those classes are said to be \f2external references\fP or \f2external links\fP. For example, if you run the Javadoc tool on only the \f2java.awt\fP package, then any class in \f2java.lang\fP, such as \f2Object\fP, is an external referenced class. External referenced classes can be linked to using the \f2\-link\fP and \f2\-linkoffline\fP options. An important property of an external referenced class is that its source comments are normally not available to the Javadoc run. In this case, these comments cannot be inherited. .RE - -.LP .SH "SOURCE FILES" .LP -.LP The Javadoc tool will generate output originating from four different types of "source" files: Java language source files for classes (\f2.java\fP), package comment files, overview comment files, and miscellaneous unprocessed files. This section also covers test files and template files that can also be in the source tree, but which you want to be sure not to document. -.LP .SS Class Source Code Files .LP -.LP Each class or interface and its members can have their own documentation comments, contained in a \f2.java\fP file. For more details about these doc comments, see Documentation Comments. -.LP .SS Package Comment Files .LP -.LP Each package can have its own documentation comment, contained in its own "source" file, that the Javadoc tool will merge into the package summary page that it generates. You typically include in this comment any documentation that applies to the entire package. .LP -.LP To create a package comment file, you have a choice of two files to place your comments: -.LP .RS 3 .TP 2 o @@ -295,52 +233,18 @@ o o \f2package.html\fP \- Can contain only package comments and Javadoc tags, no package annotations. .RE - -.LP .LP A package may have a single \f2package.html\fP file or a single \f2package\-info.java\fP file but not both. Place either file in the package directory in the source tree along with your \f2.java\fP files. .LP -.LP \f4package\-info.java\fP \- This file can contain a package comment of the following structure \-\- the comment is placed before the package declaration: .LP -.LP File: \f2java/applet/package\-info.java\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 .nf \f3 .fl /** .fl - * Provides the classes necessary to create an + * Provides the classes necessary to create an .fl * applet and the classes an applet uses .fl @@ -372,105 +276,12 @@ package java.lang.applet; .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 352 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - -.LP .LP Note that while the comment separators \f2/**\fP and \f2/*\fP must be present, the leading asterisks on the intermediate lines can be omitted. .LP -.LP \f4package.html\fP \- This file can contain a package comment of the following structure \-\- the comment is placed in the \f2<body>\fP element: .LP -.LP File: \f2java/applet/package.html\fP -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 .nf \f3 .fl @@ -478,7 +289,7 @@ File: \f2java/applet/package.html\fP .fl <BODY> .fl -Provides the classes necessary to create an applet and the +Provides the classes necessary to create an applet and the .fl classes an applet uses to communicate with its applet context. .fl @@ -506,77 +317,14 @@ initialize, start, and stop the applet. .fl \fP .fi -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 405 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-40 - -.LP .LP Notice this is just a normal HTML file and does not include a package declaration. The content of the package comment file is written in HTML, like all other comments, with one exception: The documentation comment should not include the comment separators \f2/**\fP and \f2*/\fP or leading asterisks. When writing the comment, you should make the first sentence a summary about the package, and not put a title or any other text between \f2<body>\fP and the first sentence. You can include package tags; as with any documentation comment, all block tags must appear after the main description. If you add a \f2@see\fP tag in a package comment file, it must have a fully\-qualified name. For more details, see the .na \f2example of \fP\f2package.html\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#packagecomments. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#packagecomments. .LP \f3Processing of package comment file\fP \- When the Javadoc tool runs, it will automatically look for the package comment file; if found, the Javadoc tool does the following: -.LP .RS 3 .TP 2 o @@ -590,35 +338,27 @@ Inserts the processed text at the bottom of the package summary page it generate .na \f2Package Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/applet/package\-summary.html. +http://download.oracle.com/javase/7/docs/api/java/applet/package\-summary.html. .TP 2 o Copies the first sentence of the package comment to the top of the package summary page. It also adds the package name and this first sentence to the list of packages on the overview page, as shown in .na \f2Overview Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions. +http://download.oracle.com/javase/7/docs/api/overview\-summary.html. The end\-of\-sentence is determined by the same rules used for the end of the first sentence of class and member main descriptions. .RE - -.LP .SS Overview Comment File .LP -.LP Each application or set of packages that you are documenting can have its own overview documentation comment, kept in its own "source" file, that the Javadoc tool will merge into the overview page that it generates. You typically include in this comment any documentation that applies to the entire application or set of packages. .LP -.LP To create an overview comment file, you can name the file anything you want, typically \f4overview.html\fP and place it anywhere, typically at the top level of the source tree. For example, if the source files for the \f2java.applet\fP package are contained in \f2/home/user/src/java/applet\fP directory, you could create an overview comment file at \f2/home/user/src/overview.html\fP. .LP -.LP Notice you can have multiple overview comment files for the same set of source files, in case you want to run javadoc multiple times on different sets of packages. For example, you could run javadoc once with \-private for internal documentation and again without that option for public documentation. In this case, you could describe the documentation as public or internal in the first sentence of each overview comment file. .LP -.LP The content of the overview comment file is one big documentation comment, written in HTML, like the package comment file described previously. See that description for details. To re\-iterate, when writing the comment, you should make the first sentence a summary about the application or set of packages, and not put a title or any other text between \f2<body>\fP and the first sentence. You can include overview tags; as with any documentation comment, all tags except in\-line tags, such as \f2{@link}\fP, must appear after the main description. If you add a \f2@see\fP tag, it must have a fully\-qualified name. .LP -.LP When you run the Javadoc tool, you specify the overview comment file name with the \-overview option. The file is then processed similar to that of a package comment file. -.LP .RS 3 .TP 2 o @@ -632,25 +372,19 @@ Inserts the processed text at the bottom of the overview page it generates, as s .na \f2Overview Summary\fP @ .fi -http://java.sun.com/javase/6/docs/api/overview\-summary.html. +http://download.oracle.com/javase/7/docs/api/overview\-summary.html. .TP 2 o Copies the first sentence of the overview comment to the top of the overview summary page. .RE - -.LP .SS Miscellaneous Unprocessed Files .LP -.LP You can also include in your source any miscellaneous files that you want the Javadoc tool to copy to the destination directory. These typically includes graphic files, example Java source (.java) and class (.class) files, and self\-standing HTML files whose content would overwhelm the documentation comment of a normal Java source file. .LP -.LP To include unprocessed files, put them in a directory called \f4doc\-files\fP which can be a subdirectory of any package directory that contains source files. You can have one such subdirectory for each package. You might include images, example code, source files, .class files, applets and HTML files. For example, if you want to include the image of a button \f2button.gif\fP in the \f2java.awt.Button\fP class documentation, you place that file in the \f2/home/user/src/java/awt/doc\-files/\fP directory. Notice the \f2doc\-files\fP directory should not be located at \f2/home/user/src/java/doc\-files\fP because \f2java\fP is not a package \-\- that is, it does not directly contain any source files. .LP -.LP All links to these unprocessed files must be hard\-coded, because the Javadoc tool does not look at the files \-\- it simply copies the directory and all its contents to the destination. For example, the link in the \f2Button.java\fP doc comment might look like: -.LP .nf \f3 .fl @@ -664,23 +398,16 @@ All links to these unprocessed files must be hard\-coded, because the Javadoc to .fl \fP .fi - -.LP .SS Test Files and Template Files .LP -.LP Some developers have indicated they want to store test files and templates files in the source tree near their corresponding source files. That is, they would like to put them in the same directory, or a subdirectory, of those source files. .LP -.LP If you run the Javadoc tool by explicitly passing in individual source filenames, you can deliberately omit test and templates files and prevent them from being processed. However, if you are passing in package names or wildcards, you need to follow certain rules to ensure these test files and templates files are not processed. .LP -.LP Test files differ from template files in that the former are legal, compilable source files, while the latter are not, but may end with ".java". .LP -.LP \f3Test files\fP \- Often developers want to put compilable, runnable test files for a given package in the \f2same\fP directory as the source files for that package. But they want the test files to belong to a package other than the source file package, such as the unnamed package (so the test files have no package statement or a different package statement from the source). In this scenario, when the source is being documented by specifying its package name specified on the command line, the test files will cause warnings or errors. You need to put such test files in a subdirectory. For example, if you want to add test files for source files in \f2com.package1\fP, put them in a subdirectory that would be an invalid package name (because it contains a hyphen): -.LP .nf \f3 .fl @@ -688,29 +415,17 @@ Test files differ from template files in that the former are legal, compilable s .fl \fP .fi - -.LP .LP The test directory will be skipped by the Javadoc tool with no warnings. .LP -.LP If your test files contain doc comments, you can set up a separate run of the Javadoc tool to produce documentation of the test files by passing in their test source filenames with wildcards, such as \f2com/package1/test\-files/*.java\fP. .LP -.LP -\f3Templates for source files\fP \- Template files have names that often end in ".java" and are not compilable. If you have a template for a source file that you want to keep in the source directory, you can name it with a dash (such as \f2Buffer\-Template.java\fP), or any other illegal Java character, to prevent it from being processed. This relies on the fact that the Javadoc tool will only process source files whose name, when stripped of the ".java" suffix, is actually a legal class name (see -.na -\f2Identifiers\fP @ -.fi -http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#40625). -.LP +\f3Templates for source files\fP \- Template files have names that often end in ".java" and are not compilable. If you have a template for a source file that you want to keep in the source directory, you can name it with a dash (such as \f2Buffer\-Template.java\fP), or any other illegal Java character, to prevent it from being processed. This relies on the fact that the Javadoc tool will only process source files whose name, when stripped of the ".java" suffix, is actually a legal class name (see information about Identifiers in the Java Language Specification). .SH "GENERATED FILES" .LP -.LP By default, javadoc uses a standard doclet that generates HTML\-formatted documentation. This doclet generates the following kinds of files (where each HTML "page" corresponds to a separate file). Note that javadoc generates files with two types of names: those named after classes/interfaces, and those that are not (such as \f2package\-summary.html\fP). Files in the latter group contain hyphens to prevent filename conflicts with those in the former group. .LP -.LP \f3Basic Content Pages\fP -.LP .RS 3 .TP 2 o @@ -722,11 +437,8 @@ One \f3package page\fP (\f2package\-summary.html\fP) for each package it is docu o One \f3overview page\fP (\f2overview\-summary.html\fP) for the entire set of packages. This is the front page of the generated document. The Javadoc tool will include any HTML text provided in a file specified with the \f2\-overview\fP option. Note that this file is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) .RE - -.LP .LP \f3Cross\-Reference Pages\fP -.LP .RS 3 .TP 2 o @@ -750,15 +462,12 @@ A \f3serialized form page\fP (\f2serialized\-form.html\fP) for information about o An \f3index\fP (\f2index\-*.html\fP) of all class, interface, constructor, field and method names, alphabetically arranged. This is internationalized for Unicode and can be generated as a single file or as a separate file for each starting character (such as A\-Z for English). .RE - -.LP .LP \f3Support Files\fP -.LP .RS 3 .TP 2 o -A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP. +A \f3help page\fP (\f2help\-doc.html\fP) that describes the navigation bar and the above pages. You can provide your own custom help file to override the default using \f2\-helpfile\fP. .TP 2 o One \f3index.html file\fP which creates the HTML frames for display. This is the file you load to display the front page with frames. This file itself contains no text content. @@ -775,45 +484,14 @@ A \f3style sheet\fP file (\f2stylesheet.css\fP) that controls a limited amount o o A \f3doc\-files\fP directory that holds any image, example, source code or other files that you want copied to the destination directory. These files are not processed by the Javadoc tool in any manner \-\- that is, any javadoc tags in them will be ignored. This directory is not generated unless it exists in the source tree. .RE - -.LP .LP \f3HTML Frames\fP .LP -.LP The Javadoc tool will generate either two or three HTML frames, as shown in the figure below. It creates the minimum necessary number of frames by omitting the list of packages if there is only one package (or no packages). That is, when you pass a single package name or source files (*.java) belonging to a single package as arguments into the javadoc command, it will create only one frame (C) in the left\-hand column \-\- the list of classes. When you pass into javadoc two or more package names, it creates a third frame (P) listing all packages, as well as an overview page (Detail). This overview page has the filename \f2overview\-summary.html\fP. Thus, this file is created only if you pass in two or more package names. You can bypass frames by clicking on the "No Frames" link or entering at overview\-summary.html. .LP -.LP If you are unfamiliar with HTML frames, you should be aware that frames can have \f2focus\fP for printing and scrolling. To give a frame focus, click on it. Then on many browsers the arrow keys and page keys will scroll that frame, and the print menu command will print it. .LP -.nf -\f3 -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - |C| Detail | |P| Detail | -.fl - | | | | | | -.fl - | | | |\-| | -.fl - | | | |C| | -.fl - | | | | | | -.fl - | | | | | | -.fl - \-\-\-\-\-\-\-\-\-\-\-\- \-\-\-\-\-\-\-\-\-\-\-\- -.fl - javadoc *.java javadoc java.lang java.awt -.fl -\fP -.fi - -.LP -.LP Load one of the following two files as the starting page depending on whether you want HTML frames or not: -.LP .RS 3 .TP 2 o @@ -822,24 +500,14 @@ o o \f2overview\-summary.html\fP (for no frames) .RE - -.LP .LP \f3Generated File Structure\fP .LP -.LP The generated class and interface files are organized in the same directory hierarchy that Java source files and class files are organized. This structure is one directory per subpackage. .LP -.LP For example, the document generated for the class \f2java.applet.Applet\fP class would be located at \f2java/applet/Applet.html\fP. The file structure for the java.applet package follows, given that the destination directory is named \f2apidocs\fP. All files that contain the word "frame" appear in the upper\-left or lower\-left frames, as noted. All other HTML files appear in the right\-hand frame. .LP -.RS 3 - -.LP -.LP NOTE \- Directories are shown in \f3bold\fP. The asterisks (\f2*\fP) indicate the files and directories that are \f2omitted\fP when the arguments to javadoc are source filenames (*.java) rather than package names. Also when arguments are source filenames, \f2package\-list\fP is created but is empty. The doc\-files directory will not be created in the destination unless it exists in the source tree. -.LP -.RE .nf \f3 .fl @@ -922,44 +590,31 @@ NOTE \- Directories are shown in \f3bold\fP. The asterisks (\f2*\fP) indicate th AudioClip.html Page for AudioClip source code .fl .fi - -.LP .SS Generated API Declarations .LP -.LP The Javadoc tool generates a declaration at the start of each class, interface, field, constructor, and method description for that API item. For example, the declaration for the \f2Boolean\fP class is: .LP -.LP \f2public final class Boolean\fP .br \f2extends Object\fP .br \f2implements Serializable\fP .LP -.LP and the declaration for the \f2Boolean.valueOf\fPmethod is: .LP -.LP \f2public static Boolean valueOf(String s)\fP .LP -.LP The Javadoc tool can include the modifiers \f2public\fP, \f2protected\fP, \f2private\fP, \f2abstract\fP, \f2final\fP, \f2static\fP, \f2transient\fP, and \f2volatile\fP, but not \f2synchronized\fP or \f2native\fP. These last two modifiers are considered implementation detail and not part of the API specification. .LP -.LP Rather than relying on the keyword \f2synchronized\fP, APIs should document their concurrency semantics in the comment's main description, as in "a single \f2Enumeration\fP cannot be used by multiple threads concurrently". The document should not describe how to achieve these semantics. As another example, while \f2Hashtable\fP should be thread\-safe, there's no reason to specify that we achieve this by synchronizing all of its exported methods. We should reserve the right to synchronize internally at the bucket level, thus offering higher concurrency. -.LP .SH "DOCUMENTATION COMMENTS" .LP -.LP The original "Documentation Comment Specification" can be found under related documentation. -.LP .SS Commenting the Source Code .LP -.LP You can include \f2documentation comments\fP ("doc comments") in the source code, ahead of declarations for any class, interface, method, constructor, or field. You can also create doc comments for each package and another one for the overview, though their syntax is slightly different. Doc comments are also known informally as "Javadoc comments" (but this term violates its trademark usage). A doc comment consists of the characters between the characters \f2/**\fP that begin the comment and the characters \f2*/\fP that end it. Leading asterisks are allowed on each line and are described further below. The text in a comment can continue onto multiple lines. -.LP .nf \f3 .fl @@ -973,11 +628,8 @@ You can include \f2documentation comments\fP ("doc comments") in the source code .fl \fP .fi - -.LP .LP To save space you can put a comment on one line: -.LP .nf \f3 .fl @@ -985,14 +637,10 @@ To save space you can put a comment on one line: .fl \fP .fi - -.LP .LP \f3Placement of comments\fP \- Documentation comments are recognized only when placed immediately before class, interface, constructor, method, or field declarations \-\- see the class example, method example, and field example. Documentation comments placed in the body of a method are ignored. Only one documentation comment per declaration statement is recognized by the Javadoc tool. .LP -.LP A common mistake is to put an \f2import\fP statement between the class comment and the class declaration. Avoid this, as the Javadoc tool will ignore the class comment. -.LP .nf \f3 .fl @@ -1014,11 +662,8 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3A doc comment is composed of a \fP\f4main description\fP\f3 followed by a \fP\f4tag section\fP \- The \f2main description\fP begins after the starting delimiter \f2/**\fP and continues until the tag section. The \f2tag section\fP starts with the first block tag, which is defined by the first \f2@\fP character that begins a line (ignoring leading asterisks, white space, and leading separator \f2/**\fP). It is possible to have a comment with only a tag section and no main description. The main description cannot continue after the tag section begins. The argument to a tag can span multiple lines. There can be any number of tags \-\- some types of tags can be repeated while others cannot. For example, this \f2@see\fP starts the tag section: -.LP .nf \f3 .fl @@ -1032,11 +677,8 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3Block tags and in\-line tags\fP \- A \f2tag\fP is a special keyword within a doc comment that the Javadoc tool can process. There are two kinds of tags: block tags, which appear as \f2@tag\fP (also known as "standalone tags"), and in\-line tags, which appear within curly braces, as \f2{@tag}\fP. To be interpreted, a block tag must appear at the beginning of a line, ignoring leading asterisks, white space, and separator (\f2/**\fP). This means you can use the \f2@\fP character elsewhere in the text and it will not be interpreted as the start of a tag. If you want to start a line with the \f2@\fP character and not have it be interpreted, use the HTML entity \f2@\fP. Each block tag has associated text, which includes any text following the tag up to, but not including, either the next tag, or the end of the doc comment. This associated text can span multiple lines. An in\-line tag is allowed and interpreted anywhere that text is allowed. The following example contains the block tag \f2@deprecated\fP and in\-line tag \f2{@link}\fP. -.LP .nf \f3 .fl @@ -1048,17 +690,12 @@ A common mistake is to put an \f2import\fP statement between the class comment a .fl \fP .fi - -.LP .LP \f3Comments are written in HTML\fP \- The text must be written in HTML, in that they should use HTML entities and can use HTML tags. You can use whichever version of HTML your browser supports; we have written the standard doclet to generate HTML 3.2\-compliant code elsewhere (outside of the documentation comments) with the inclusion of cascading style sheets and frames. (We preface each generated file with "HTML 4.0" because of the frame sets.) .LP -.LP For example, entities for the less\-than (\f2<\fP) and greater\-than (\f2>\fP) symbols should be written \f2<\fP and \f2>\fP. Likewise, the ampersand (\f2&\fP) should be written \f2&\fP. The bold HTML tag \f2<b>\fP is shown in the following example. .LP -.LP Here is a doc comment: -.LP .nf \f3 .fl @@ -1072,20 +709,12 @@ Here is a doc comment: .fl \fP .fi - -.LP .LP \f3Leading asterisks\fP \- When javadoc parses a doc comment, leading asterisk (\f2*\fP) characters on each line are discarded; blanks and tabs preceding the initial asterisk (\f2*\fP) characters are also discarded. Starting with 1.4, if you omit the leading asterisk on a line, the leading white space is no longer removed. This enables you to paste code examples directly into a doc comment inside a \f2<PRE>\fP tag, and its indentation will be honored. Spaces are generally interpreted by browsers more uniformly than tabs. Indentation is relative to the left margin (rather than the separator \f2/**\fP or \f2<PRE>\fP tag). .LP -.LP \f3First sentence\fP \- The first sentence of each doc comment should be a summary sentence, containing a concise but complete description of the declared entity. This sentence ends at the first period that is followed by a blank, tab, or line terminator, or at the first block tag. The Javadoc tool copies this first sentence to the member summary at the top of the HTML page. .LP -.LP \f3Declaration with multiple fields\fP \- Java allows declaring multiple fields in a single statement, but this statement can have only one documentation comment, which is copied for all fields. Therefore if you want individual documentation comments for each field, you must declare each field in a separate statement. For example, the following documentation comment doesn't make sense written as a single declaration and would be better handled as two declarations: -.LP -.RS 3 - -.LP .nf \f3 .fl @@ -1099,51 +728,32 @@ public int x, y; // Avoid this .fl \fP .fi -.RE - -.LP .LP The Javadoc tool generates the following documentation from the above code: -.LP -.RS 3 - -.LP .nf \f3 .fl public int \fP\f3x\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP .nf \f3 .fl public int \fP\f3y\fP .fl .fi - -.LP .RS 3 The horizontal and vertical distances of point (x,y) .RE - -.LP -.RE .LP \f3Use header tags carefully\fP \- When writing documentation comments for members, it's best not to use HTML heading tags such as <H1> and <H2>, because the Javadoc tool creates an entire structured document and these structural tags might interfere with the formatting of the generated document. However, it is fine to use these headings in class and package comments to provide your own structure. -.LP .SS Automatic Copying of Method Comments .LP -.LP The Javadoc tool has the ability to copy or "inherit" method comments in classes and interfaces under the following two circumstances. Constructors, fields and nested classes do not inherit doc comments. -.LP .RS 3 .TP 2 o @@ -1156,14 +766,10 @@ This behavior contrasts with version 1.3 and earlier, where the presence of any o \f3Explicitly inherit comment with {@inheritDoc} tag\fP \- Insert the inline tag \f2{@inheritDoc}\fP in a method main description or \f2@return\fP, \f2@param\fP or \f2@throws\fP tag comment \-\- the corresponding inherited main description or tag comment is copied into that spot. .RE - -.LP .LP The source file for the inherited method need only be on the path specified by \-sourcepath for the doc comment to actually be available to copy. Neither the class nor its package needs to be passed in on the command line. This contrasts with 1.3.x and earlier releases, where the class had to be a documented class .LP -.LP \f3Inherit from classes and interfaces\fP \- Inheriting of comments occurs in all three possible cases of inheritance from classes and interfaces: -.LP .RS 3 .TP 2 o @@ -1175,17 +781,12 @@ When a method in an interface overrides a method in a superinterface o When a method in a class implements a method in an interface .RE - -.LP .LP In the first two cases, for method overrides, the Javadoc tool generates a subheading "Overrides" in the documentation for the overriding method, with a link to the method it is overriding, whether or not the comment is inherited. .LP -.LP In the third case, when a method in a given class implements a method in an interface, the Javadoc tool generates a subheading "Specified by" in the documentation for the overriding method, with a link to the method it is implementing. This happens whether or not the comment is inherited. .LP -.LP \f3Algorithm for Inheriting Method Comments\fP \- If a method does not have a doc comment, or has an {@inheritDoc} tag, the Javadoc tool searches for an applicable comment using the following algorithm, which is designed to find the most specific applicable doc comment, giving preference to interfaces over superclasses: -.LP .RS 3 .TP 3 1. @@ -1205,16 +806,11 @@ b. If step 3a failed to find a doc comment, recursively apply this entire algorithm to the superclass. .RE .RE - -.LP .SH "JAVADOC TAGS" .LP -.LP The Javadoc tool parses special tags when they are embedded within a Java doc comment. These doc tags enable you to autogenerate a complete, well\-formatted API from your source code. The tags start with an "at" sign (\f2@\fP) and are case\-sensitive \-\- they must be typed with the uppercase and lowercase letters as shown. A tag must start at the beginning of a line (after any leading spaces and an optional asterisk) or it is treated as normal text. By convention, tags with the same name are grouped together. For example, put all \f2@see\fP tags together. .LP -.LP Tags come in two types: -.LP .RS 3 .TP 2 o @@ -1223,8 +819,6 @@ o o \f3Inline tags\fP \- Can be placed anywhere in the main description or in the comments for block tags. Inline tags are denoted by curly braces: \f2{@tag}\fP. .RE - -.LP .LP For information about tags we might introduce in future releases, see .na @@ -1232,13 +826,8 @@ For information about tags we might introduce in future releases, see .fi http://java.sun.com/j2se/javadoc/proposed\-tags.html. .LP -.LP The current tags are: .LP -.RS 3 - -.LP -.LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 @@ -1350,7 +939,7 @@ The current tags are: .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 1122 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 873 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1450,53 +1039,34 @@ The current tags are: .35 .TE .if \n-(b.=0 .nr c. \n(.c-\n(d.-42 - -.LP .LP For custom tags, see the \-tag option. -.LP -.RE .RS 3 .TP 3 @author\ name\-text Adds an "Author" entry with the specified \f2name\-text\fP to the generated docs when the \-author option is used. A doc comment may contain multiple \f2@author\fP tags. You can specify one name per \f2@author\fP tag or multiple names per tag. In the former case, the Javadoc tool inserts a comma (\f2,\fP) and space between names. In the latter case, the entire text is simply copied to the generated document without being parsed. Therefore, you can use multiple names per line if you want a localized name separator other than comma. +.RE .LP For more details, see Where Tags Can Be Used and .na \f2writing @author tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@author. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@author. .LP +.RS 3 .TP 3 -@deprecated\ deprecated\-text -.RS 3 - -.LP -.LP -Note: You can deprecate a program element using the -.na -\f2@Deprecated annotation\fP @ -.fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/deprecation.html. -.LP +@deprecated\ deprecated\-text Note: You can deprecate a program element using the @Deprecated annotation. .RE -.RE -.RS 3 - -.LP .LP Adds a comment indicating that this API should no longer be used (even though it may continue to work). The Javadoc tool moves the \f2deprecated\-text\fP ahead of the main description, placing it in italics and preceding it with a bold warning: "Deprecated". This tag is valid in all doc comments: overview, package, class, interface, constructor, method and field. .LP -.LP The first sentence of \f2deprecated\-text\fP should at least tell the user when the API was deprecated and what to use as a replacement. The Javadoc tool copies just the first sentence to the summary section and index. Subsequent sentences can also explain why it has been deprecated. You should include a \f2{@link}\fP tag (for Javadoc 1.2 or later) that points to the replacement API: .LP -.LP For more details, see .na \f2writing @deprecated tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@deprecated. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@deprecated. .RS 3 .TP 2 o @@ -1518,19 +1088,13 @@ For Javadoc 1.2 and later, use a \f2{@link}\fP tag. This creates the link in\-li o For Javadoc 1.1, the standard format is to create a \f2@see\fP tag (which cannot be in\-line) for each \f2@deprecated\fP tag. .RE - -.LP .LP For more about deprecation, see .na \f2The @deprecated tag\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/deprecation/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/deprecation/index.html. .LP -.LP - -.LP -.RE .RS 3 .TP 3 {@code\ text} @@ -1700,7 +1264,7 @@ For more details, see .na \f2writing {@link} tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#{@link}. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#{@link}. .LP .TP 3 {@linkplain\ package.class#member\ label} @@ -1716,13 +1280,8 @@ Identical to \f2{@link}\fP, except the link's label is displayed in plain text t .fi .LP This would display as: -.RS 3 - .LP -.LP -Refer to the overridden method. -.LP -.RE +Refer to the overridden method. .LP .TP 3 {@literal\ text} @@ -1799,7 +1358,7 @@ For more details, see .na \f2writing @param tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@param. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@param. .LP .TP 3 @return\ description @@ -1809,7 +1368,7 @@ For more details, see .na \f2writing @return tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@return. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@return. .LP .TP 3 @see\ reference @@ -1834,18 +1393,12 @@ This generates text such as: .RS 3 .RS 3 .RS 3 - -.LP -.RS 3 .RS 3 .TP 3 See Also: "The Java Programming Language" .RE .RE - -.LP -.RE .TP 3 @see <a href="URL#value">label</a> Adds a link as defined by \f2URL\fP#\f2value\fP. The \f2URL\fP#\f2value\fP is a relative or absolute URL. The Javadoc tool distinguishes this from other cases by looking for a less\-than symbol (\f2<\fP) as the first character. For example: @@ -1858,14 +1411,10 @@ Adds a link as defined by \f2URL\fP#\f2value\fP. The \f2URL\fP#\f2value\fP is a .fi This generates a link such as: .RS 3 -.RS 3 .TP 3 See Also: Java Spec .RE - -.LP -.RE .TP 3 @see\ package.class#member\ label Adds a link, with visible text \f2label\fP, that points to the documentation for the specified name in the Java Language that is referenced. The \f2label\fP is optional; if omitted, the name appears instead as the visible text, suitably shortened \-\- see How a name is displayed. Use \-noqualifier to globally remove the package name from this visible text. Use the label when you want the visible text to be different from the auto\-generated visible text. @@ -1885,7 +1434,6 @@ A space is the delimiter between \f2package.class\fP\f2#\fP\f2member\fP and \f2l .RE .LP \f3Example\fP \- In this example, an \f2@see\fP tag (in the \f2Character\fP class) refers to the \f2equals\fP method in the \f2String\fP class. The tag includes both arguments: the name "\f2String#equals(Object)\fP" and the label "\f2equals\fP". -.RS 3 .nf \f3 .fl @@ -1897,11 +1445,7 @@ A space is the delimiter between \f2package.class\fP\f2#\fP\f2member\fP and \f2l .fl \fP .fi -.RE The standard doclet produces HTML something like this: -.RS 3 - -.LP .nf \f3 .fl @@ -1915,19 +1459,12 @@ The standard doclet produces HTML something like this: .fl \fP .fi -.RE Which looks something like this in a browser, where the label is the visible link text: .RS 3 - -.LP -.RS 3 .TP 3 See Also: equals .RE - -.LP -.RE .LP \f3Specifying a name\fP \- This \f2package.class\fP\f2#\fP\f2member\fP name can be either fully\-qualified, such as \f2java.lang.String#toUpperCase()\fP or not, such as \f2String#toUpperCase()\fP or \f2#toUpperCase()\fP. If less than fully\-qualified, the Javadoc tool uses the normal Java compiler search order to find it, further described below in Search order for @see. The name can contain whitespace within parentheses, such as between method arguments. .LP @@ -2079,7 +1616,7 @@ Of course the advantage of providing shorter, "partially\-qualified" names is th .nr 40 \n(79+(0*\n(38) .nr 80 +\n(40 .nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1665 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1364 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2186,7 +1723,7 @@ As stated, the hash character (\f2#\fP), rather than a dot (\f2.\fP) separates a .LP \f3Search order for @see\fP \- the Javadoc tool will process a \f2@see\fP tag that appears in a source file (.java), package file (package.html or package\-info.java) or overview file (overview.html). In the latter two files, you must fully\-qualify the name you supply with \f2@see\fP. In a source file, you can specify a name that is fully\-qualified or partially\-qualified. .LP -When the Javadoc tool encounters a \f2@see\fP tag in a \f2.java\fP file that is \f2not\fP fully qualified, it searches for the specified name in the same order as the Java compiler would (except the Javadoc tool will not detect certain namespace ambiguities, since it assumes the source code is free of these errors). This search order is formally defined in Chapter 6, "Names" of the \f2Java Language Specification\fP, Second Edition. The Javadoc tool searches for that name through all related and imported classes and packages. In particular, it searches in this order: +When the Javadoc tool encounters a \f2@see\fP tag in a \f2.java\fP file that is \f2not\fP fully qualified, it searches for the specified name in the same order as the Java compiler would (except the Javadoc tool will not detect certain namespace ambiguities, since it assumes the source code is free of these errors). This search order is formally defined in the \f2Java Language Specification\fP. The Javadoc tool searches for that name through all related and imported classes and packages. In particular, it searches in this order: .RS 3 .TP 3 1. @@ -2425,7 +1962,7 @@ Use \-noqualifier to globally remove the package names. .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 1741 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 1440 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2598,14 +2135,9 @@ For more details, see .na \f2writing @see tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@see. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@see. .RE .RE -.RS 3 - -.LP -.LP - .LP .RS 3 .TP 3 @@ -2634,11 +2166,11 @@ For more information about how to use these tags, along with an example, see " .na \f2Documenting Serializable Fields and Data for a Class\fP @ .fi -http://java.sun.com/javase/6/docs/platform/serialization/spec/serial\-arch.html," Section 1.6 of the \f2Java Object Serialization Specification\fP. Also see the +http://download.oracle.com/javase/7/docs/platform/serialization/spec/serial\-arch.html," Section 1.6 of the \f2Java Object Serialization Specification\fP. Also see the .na \f2Serialization FAQ\fP @ .fi -http://java.sun.com/products/jdk/serialization/faq/#javadoc_warn_missing, which covers common questions, such as "Why do I see javadoc warnings stating that I am missing @serial tags for private fields if I am not running javadoc with the \-private switch?". Also see +http://java.sun.com/javase/technologies/core/basic/serializationFAQ.jsp#javadoc_warn_missing, which covers common questions, such as "Why do I see javadoc warnings stating that I am missing @serial tags for private fields if I am not running javadoc with the \-private switch?". Also see .na \f2Sun's criteria\fP @ .fi @@ -2681,7 +2213,7 @@ For more details, see .na \f2writing @throws tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@exception. +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@exception. .LP .TP 3 {@value\ package.class#field} @@ -2727,7 +2259,7 @@ These values of these constants are also displayed on the .na \f2Constant Field Values\fP @ .fi -http://java.sun.com/javase/6/docs/api/constant\-values.html page. +http://download.oracle.com/javase/7/docs/api/constant\-values.html page. .LP .TP 3 @version\ version\-text @@ -2739,376 +2271,111 @@ For more details, see .na \f2writing @version tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#@version. -.RE - -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#@version. .RE .SS Where Tags Can Be Used .LP -.LP The following sections describe where the tags can be used. Note that these tags can be used in all doc comments: \f2@see\fP, \f2@since\fP, \f2@deprecated\fP, \f2{@link}\fP, \f2{@linkplain}\fP, and \f2{@docroot}\fP. -.LP -.RS 3 - -.LP .SS Overview Documentation Tags .LP -.LP Overview tags are tags that can appear in the documentation comment for the overview page (which resides in the source file typically named \f2overview.html\fP). Like in any other documentation comments, these tags must appear after the main description. .LP -.LP \f3NOTE\fP \- The \f2{@link}\fP tag has a bug in overview documents in version 1.2 \-\- the text appears properly but has no link. The \f2{@docRoot}\fP tag does not currently work in overview documents. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Overview Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1962 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Overview Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-20 - -.LP +\f3Overview Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE .SS Package Documentation Tags .LP -.LP Package tags are tags that can appear in the documentation comment for a package (which resides in the source file named \f2package.html\fP or \f2package\-info.java\fP). The \f2@serial\fP tag can only be used here with the \f2include\fP or \f2exclude\fP argument. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Package Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 1994 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Package Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-22 - -.LP +\f3Package Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE .SS Class and Interface Documentation Tags .LP -.LP The following are tags that can appear in the documentation comment for a class or interface. The \f2@serial\fP tag can only be used here with the \f2include\fP or \f2exclude\fP argument. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@author\fP -.br -\f2@version\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Class/Interface Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2028 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Class/Interface Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +\f3Class/Interface Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@author\fP +.TP 2 +o +\f2@version\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE \f3An example of a class comment:\fP -.LP .nf \f3 .fl @@ -3146,129 +2413,42 @@ class Window extends BaseWindow { .fl \fP .fi - -.LP .SS Field Documentation Tags .LP +The following are the tags that can appear in .LP -The following are the tags that can appear in the documentation comment for a field. -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@serial\fP -.br -\f2@serialField\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@docRoot}\fP -.br -\f2{@value}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Field Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2103 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Field Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-24 - -.LP +\f3Field Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@serial\fP +.TP 2 +o +\f2@serialField\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@docRoot}\fP +.TP 2 +o +\f2{@value}\fP +.RE \f3An example of a field comment:\fP -.LP .nf \f3 .fl @@ -3286,133 +2466,48 @@ The following are the tags that can appear in the documentation comment for a fi .fl \fP .fi - -.LP .SS Constructor and Method Documentation Tags .LP -.LP The following are the tags that can appear in the documentation comment for a constructor or method, except for \f2@return\fP, which cannot appear in a constructor, and \f2{@inheritDoc}\fP, which has certain restrictions. The \f2@serialData\fP tag can only be used in the doc comment for certain serialization methods. .LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 34 \n(.lu -.eo -.am 80 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/2u -.if \n(.l<\n(80 .ll \n(80u -.in 0 -\f2@see\fP -.br -\f2@since\fP -.br -\f2@deprecated\fP -.br -\f2@param\fP -.br -\f2@return\fP -.br -\f2@throws\fP and \f2@exception\fP -.br -\f2@serialData\fP -.br -\f2{@link}\fP -.br -\f2{@linkplain}\fP -.br -\f2{@inheritDoc}\fP -.br -\f2{@docRoot}\fP -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 38 \w\f3Method/Constructor Tags\fP -.if \n(80<\n(38 .nr 80 \n(38 -.80 -.rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 2162 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f3Method/Constructor Tags\fP -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(80u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(40u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-28 - -.LP +\f3Method/Constructor Tags\fP +.RS 3 +.TP 2 +o +\f2@see\fP +.TP 2 +o +\f2@since\fP +.TP 2 +o +\f2@deprecated\fP +.TP 2 +o +\f2@param\fP +.TP 2 +o +\f2@return\fP +.TP 2 +o +\f2@throws\fP and \f2@exception\fP +.TP 2 +o +\f2@serialData\fP +.TP 2 +o +\f2{@link}\fP +.TP 2 +o +\f2{@linkplain}\fP +.TP 2 +o +\f2{@inheritDoc}\fP +.TP 2 +o +\f2{@docRoot}\fP +.RE \f3An example of a method doc comment:\fP -.LP .nf \f3 .fl @@ -3446,23 +2541,12 @@ The following are the tags that can appear in the documentation comment for a co .fl \fP .fi -.RE - -.LP .SH "OPTIONS" .LP - -.LP -.LP The javadoc tool uses doclets to determine its output. The Javadoc tool uses the default standard doclet unless a custom doclet is specified with the \-doclet option. The Javadoc tool provides a set of command\-line options that can be used with any doclet \-\- these options are described below under the sub\-heading Javadoc Options. The standard doclet provides an additional set of command\-line options that are described below under the sub\-heading Options Provided by the Standard Doclet. All option names are case\-insensitive, though their arguments can be case\-sensitive. .LP -.LP The options are: .LP -.RS 3 - -.LP -.LP .TS .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 .de 35 @@ -3615,6 +2699,8 @@ The options are: .br \-\f2sourcepath\fP .br +\-sourcetab +.br \-splitindex .br \-stylesheetfile @@ -3627,6 +2713,8 @@ The options are: .br \-tagletpath .br +\-top +.br \-title .br \-use @@ -3673,7 +2761,7 @@ The options are: .nr 42 \n(81+(3*\n(38) .nr 82 +\n(42 .nr TW \n(82 -.if t .if \n(TW>\n(.li .tm Table at line 2340 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 2015 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3729,53 +2817,47 @@ The options are: .rm b+ .rm c+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-123 - -.LP -.RE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-127 .LP Options shown in \f2italic\fP are the Javadoc core options, which are provided by the front end of the Javadoc tool and are available to all doclets. The standard doclet itself provides the non\-italic options. -.LP .SS Javadoc Options -.LP .RS 3 .TP 3 \-overview \ path/filename -Specifies that javadoc should retrieve the text for the overview documentation from the "source" file specified by \f2path/filename\fP and place it on the Overview page (\f2overview\-summary.html\fP). The \f2path/filename\fP is relative to the \f2\-sourcepath\fP. -.LP -While you can use any name you want for \f2filename\fP and place it anywhere you want for \f2path\fP, a typical thing to do is to name it \f2overview.html\fP and place it in the source tree at the directory that contains the topmost package directories. In this location, no \f2path\fP is needed when documenting packages, since \f2\-sourcepath\fP will point to this file. For example, if the source tree for the \f2java.lang\fP package is \f2/src/classes/java/lang/\fP, then you could place the overview file at \f2/src/classes/overview.html\fP. See Real World Example. -.LP -For information about the file specified by \f2path/filename\fP, see overview comment file. -.LP -Note that the overview page is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) -.LP -The title on the overview page is set by \f2\-doctitle\fP. -.LP +Specifies that javadoc should retrieve the text for the overview documentation from the "source" file specified by \f2path/filename\fP and place it on the Overview page (\f2overview\-summary.html\fP). The \f2path/filename\fP is relative to the current directory. +.br +.br +While you can use any name you want for \f2filename\fP and place it anywhere you want for \f2path\fP, a typical thing to do is to name it \f2overview.html\fP and place it in the source tree at the directory that contains the topmost package directories. In this location, no \f2path\fP is needed when documenting packages, since \f2\-sourcepath\fP will point to this file. For example, if the source tree for the \f2java.lang\fP package is \f2/src/classes/java/lang/\fP, then you could place the overview file at \f2/src/classes/overview.html\fP. See Real World Example. +.br +.br +For information about the file specified by \f2path/filename\fP, see overview comment file. +.br +.br +Note that the overview page is created only if you pass into javadoc two or more package names. For further explanation, see HTML Frames.) +.br +.br +The title on the overview page is set by \f2\-doctitle\fP. .TP 3 \-public -Shows only public classes and members. -.LP +Shows only public classes and members. .TP 3 \-protected -Shows only protected and public classes and members. This is the default. -.LP +Shows only protected and public classes and members. This is the default. .TP 3 \-package -Shows only package, protected, and public classes and members. -.LP +Shows only package, protected, and public classes and members. .TP 3 \-private -Shows all classes and members. -.LP +Shows all classes and members. .TP 3 \-help -Displays the online help, which lists these javadoc and doclet command line options. -.LP +Displays the online help, which lists these javadoc and doclet command line options. .TP 3 \-doclet\ class -Specifies the class file that starts the doclet used in generating the documentation. Use the fully\-qualified name. This doclet defines the content and formats the output. If the \f4\-doclet\fP option is not used, javadoc uses the standard doclet for generating the default HTML format. This class must contain the \f2start(Root)\fP method. The path to this starting class is defined by the \f2\-docletpath\fP option. -.LP +Specifies the class file that starts the doclet used in generating the documentation. Use the fully\-qualified name. This doclet defines the content and formats the output. If the \f4\-doclet\fP option is not used, javadoc uses the standard doclet for generating the default HTML format. This class must contain the \f2start(Root)\fP method. The path to this starting class is defined by the \f2\-docletpath\fP option. +.br +.br For example, to call the MIF doclet, use: .nf \f3 @@ -3784,17 +2866,16 @@ For example, to call the MIF doclet, use: .fl \fP .fi -.LP For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. .TP 3 \-docletpath\ classpathlist -Specifies the path to the doclet starting class file (specified with the \f2\-doclet\fP option) and any jar files it depends on. If the starting class file is in a jar file, then this specifies the path to that jar file, as shown in the example below. You can specify an absolute path or a path relative to the current directory. If \f2classpathlist\fP contains multiple paths or jar files, they should be separated with a colon (:) on Solaris and a semi\-colon (;) on Windows. This option is not necessary if the doclet starting class is already in the search path. -.LP +Specifies the path to the doclet starting class file (specified with the \f2\-doclet\fP option) and any jar files it depends on. If the starting class file is in a jar file, then this specifies the path to that jar file, as shown in the example below. You can specify an absolute path or a path relative to the current directory. If \f2classpathlist\fP contains multiple paths or jar files, they should be separated with a colon (:) on Solaris and a semi\-colon (;) on Windows. This option is not necessary if the doclet starting class is already in the search path. +.br +.br Example of path to jar file that contains the starting doclet class file. Notice the jar filename is included. .nf \f3 @@ -3815,207 +2896,33 @@ For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi -http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP +http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. .TP 3 \-1.1 -\f2This feature has been removed from Javadoc 1.4. There is no replacement for it. This option created documentation with the appearance and functionality of documentation generated by Javadoc 1.1 (it never supported nested classes). If you need this option, use Javadoc 1.2 or 1.3 instead.\fP -.LP +\f2This feature has been removed from Javadoc 1.4. There is no replacement for it. This option created documentation with the appearance and functionality of documentation generated by Javadoc 1.1 (it never supported nested classes). If you need this option, use Javadoc 1.2 or 1.3 instead.\fP .TP 3 \-source release Specifies the version of source code accepted. The following values for \f2release\fP are allowed: -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 81 -.nr 34 \n(.lu -.eo -.am 81 -.br -.di a+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc accepts code containing generics and other language features introduced in JDK 1.5. The compiler defaults to the 1.5 behavior if the \f3\-source\fP flag is not used. -.br -.di -.nr a| \n(dn -.nr a- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di b+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc accepts code containing assertions, which were introduced in JDK 1.4. -.br -.di -.nr b| \n(dn -.nr b- \n(dl -.. -.ec \ -.eo -.am 81 -.br -.di c+ -.35 -.ft \n(.f -.ll \n(34u*1u/3u -.if \n(.l<\n(81 .ll \n(81u -.in 0 -javadoc does \f2not\fP support assertions, generics, or other language features introduced after JDK 1.3. -.br -.di -.nr c| \n(dn -.nr c- \n(dl -.. -.ec \ -.35 -.nf -.ll \n(34u -.nr 80 0 -.nr 31 0 -.nr 32 0 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.5\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.4\fP -.if \n(32<\n(38 .nr 32 \n(38 -.nr 38 \w\f31 -.if \n(31<\n(38 .nr 31 \n(38 -.nr 38 \w.3\fP -.if \n(32<\n(38 .nr 32 \n(38 -.80 -.rm 80 -.nr 60 \n(31 -.nr 38 \n(60+\n(32 -.if \n(38>\n(80 .nr 80 \n(38 -.if \n(38<\n(80 .nr 60 +(\n(80-\n(38)/2 -.nr 81 0 -.81 -.rm 81 -.nr 38 \n(a- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(b- -.if \n(81<\n(38 .nr 81 \n(38 -.nr 38 \n(c- -.if \n(81<\n(38 .nr 81 \n(38 -.35 -.nf -.ll \n(34u -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr 60 +\n(40 -.nr 41 \n(80+(3*\n(38) -.nr 81 +\n(41 -.nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 2450 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.ne \n(a|u+\n(.Vu -.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.5\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.a+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(b|u+\n(.Vu -.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.4\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.b+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.ne \n(c|u+\n(.Vu -.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) -.ta \n(60u \n(80u \n(81u -.nr 31 \n(.f -.nr 35 1m -\&\h'|\n(40u'\f31.3\fP\h'|\n(41u' -.mk ## -.nr 31 \n(## -.sp |\n(##u-1v -.nr 37 \n(41u -.in +\n(37u -.c+ -.in -\n(37u -.mk 32 -.if \n(32>\n(31 .nr 31 \n(32 -.sp |\n(31u -.fc -.nr T. 1 -.T# 1 -.35 -.rm a+ -.rm b+ -.rm c+ -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-14 -.LP -Use the value of \f2release\fP corresponding to that used when compiling the code with javac. -.LP +.RS 3 +.TP 2 +o +\f31.5\fP \- javadoc accepts code containing generics and other language features introduced in JDK 1.5. The compiler defaults to the 1.5 behavior if the \f3\-source\fP flag is not used. +.TP 2 +o +\f31.4\fP \- javadoc accepts code containing assertions, which were introduced in JDK 1.4. +.TP 2 +o +\f31.3\fP \- javadoc does \f2not\fP support assertions, generics, or other language features introduced after JDK 1.3. +.RE +Use the value of \f2release\fP corresponding to that used when compiling the code with javac. .TP 3 \-sourcepath\ sourcepathlist -Specifies the search paths for finding source files (\f2.java\fP) when passing package names or \f2\-subpackages\fP into the \f2javadoc\fP command. The \f2sourcepathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Note that this option is not only used to locate the source files being documented, but also to find source files that are not being documented but whose comments are inherited by the source files being documented. -.LP -Note that you can use the \f2\-sourcepath\fP option only when passing package names into the javadoc command \-\- it will not locate \f2.java\fP files passed into the \f2javadoc\fP command. (To locate \f2.java\fP files, cd to that directory or include the path ahead of each file, as shown at Documenting One or More Classes.) If \f2\-sourcepath\fP is omitted, javadoc uses the class path to find the source files (see \-classpath). Therefore, the default \-sourcepath is the value of class path. If \-classpath is omitted and you are passing package names into javadoc, it looks in the current directory (and subdirectories) for the source files. -.LP +Specifies the search paths for finding source files (\f2.java\fP) when passing package names or \f2\-subpackages\fP into the \f2javadoc\fP command. The \f2sourcepathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Note that this option is not only used to locate the source files being documented, but also to find source files that are not being documented but whose comments are inherited by the source files being documented. +.br +.br +Note that you can use the \f2\-sourcepath\fP option only when passing package names into the javadoc command \-\- it will not locate \f2.java\fP files passed into the \f2javadoc\fP command. (To locate \f2.java\fP files, cd to that directory or include the path ahead of each file, as shown at Documenting One or More Classes.) If \f2\-sourcepath\fP is omitted, javadoc uses the class path to find the source files (see \-classpath). Therefore, the default \-sourcepath is the value of class path. If \-classpath is omitted and you are passing package names into javadoc, it looks in the current directory (and subdirectories) for the source files. +.br +.br Set \f2sourcepathlist\fP to the root directory of the source tree for the package you are documenting. For example, suppose you want to document a package called \f2com.mypackage\fP whose source files are located at: .nf \f3 @@ -4031,8 +2938,9 @@ In this case you would specify the \f2sourcepath\fP to \f2/home/user/src\fP, the % \fP\f3javadoc \-sourcepath /home/user/src/ com.mypackage\fP .fl .fi -This is easy to remember by noticing that if you concatenate the value of sourcepath and the package name together and change the dot to a slash "/", you end up with the full path to the package: \f2/home/user/src/com/mypackage\fP. -.LP +This is easy to remember by noticing that if you concatenate the value of sourcepath and the package name together and change the dot to a slash "/", you end up with the full path to the package: \f2/home/user/src/com/mypackage\fP. +.br +.br To point to two source paths: .nf \f3 @@ -4040,17 +2948,18 @@ To point to two source paths: % \fP\f3javadoc \-sourcepath /home/user1/src:/home/user2/src com.mypackage\fP .fl .fi -.LP .TP 3 \-classpath\ classpathlist Specifies the paths where javadoc will look for referenced classes (\f2.class\fP files) \-\- these are the documented classes plus any classes referenced by those classes. The \f2classpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. Follow the instructions in .na \f2class path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general documentation for specifying \f2classpathlist\fP. -.LP -If \f2\-sourcepath\fP is omitted, the Javadoc tool uses \f2\-classpath\fP to find the source files as well as class files (for backward compatibility). Therefore, if you want to search for source and class files in separate paths, use both \f2\-sourcepath\fP and \f2\-classpath\fP. -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general documentation for specifying \f2classpathlist\fP. +.br +.br +If \f2\-sourcepath\fP is omitted, the Javadoc tool uses \f2\-classpath\fP to find the source files as well as class files (for backward compatibility). Therefore, if you want to search for source and class files in separate paths, use both \f2\-sourcepath\fP and \f2\-classpath\fP. +.br +.br For example, if you want to document \f2com.mypackage\fP, whose source files reside in the directory \f2/home/user/src/com/mypackage\fP, and if this package relies on a library in \f2/home/user/lib\fP, you would specify: .nf \f3 @@ -4058,23 +2967,25 @@ For example, if you want to document \f2com.mypackage\fP, whose source files res % \fP\f3javadoc \-classpath /home/user/lib \-sourcepath /home/user/src com.mypackage\fP .fl .fi -As with other tools, if you do not specify \f2\-classpath\fP, the Javadoc tool uses the CLASSPATH environment variable, if it is set. If both are not set, the Javadoc tool searches for classes from the current directory. -.LP +As with other tools, if you do not specify \f2\-classpath\fP, the Javadoc tool uses the CLASSPATH environment variable, if it is set. If both are not set, the Javadoc tool searches for classes from the current directory. +.br +.br For an in\-depth description of how the Javadoc tool uses \f2\-classpath\fP to find user classes as it relates to extension classes and bootstrap classes, see .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html. -.LP -As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html. .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. -.LP +As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a Java program cannot tell the difference between the two invocations). +.br +.br +For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. .TP 3 \-subpackages\ \ package1:package2:... -Generates documentation from source files in the specified packages and recursively in their subpackages. This option is useful when adding new subpackages to the source code, as they are automatically included. Each \f2package\fP argument is any top\-level subpackage (such as \f2java\fP) or fully qualified package (such as \f2javax.swing\fP) that does not need to contain source files. Arguments are separated by colons (on all operating systmes). Wildcards are not needed or allowed. Use \f2\-sourcepath\fP to specify where to find the packages. This option is smart about not processing source files that are in the source tree but do not belong to the packages, as described at processing of source files. -.LP +Generates documentation from source files in the specified packages and recursively in their subpackages. This option is useful when adding new subpackages to the source code, as they are automatically included. Each \f2package\fP argument is any top\-level subpackage (such as \f2java\fP) or fully qualified package (such as \f2javax.swing\fP) that does not need to contain source files. Arguments are separated by colons (on all operating systmes). Wildcards are not needed or allowed. Use \f2\-sourcepath\fP to specify where to find the packages. This option is smart about not processing source files that are in the source tree but do not belong to the packages, as described at processing of source files. +.br +.br For example: .nf \f3 @@ -4082,10 +2993,10 @@ For example: % \fP\f3javadoc \-d docs \-sourcepath /home/user/src \-subpackages java:javax.swing\fP .fl .fi -This command generates documentation for packages named "java" and "javax.swing" and all their subpackages. -.LP -You can use \f2\-subpackages\fP in conjunction with \f2\-exclude\fP to exclude specific packages. -.LP +This command generates documentation for packages named "java" and "javax.swing" and all their subpackages. +.br +.br +You can use \f2\-subpackages\fP in conjunction with \f2\-exclude\fP to exclude specific packages. .TP 3 \-exclude\ \ packagename1:packagename2:... Unconditionally excludes the specified packages and their subpackages from the list formed by \f2\-subpackages\fP. It excludes those packages even if they would otherwise be included by some previous or later \f2\-subpackages\fP option. For example: @@ -4095,36 +3006,32 @@ Unconditionally excludes the specified packages and their subpackages from the l % \fP\f3javadoc \-sourcepath /home/user/src \-subpackages java \-exclude java.net:java.lang\fP .fl .fi -would include \f2java.io\fP, \f2java.util\fP, and \f2java.math\fP (among others), but would exclude packages rooted at \f2java.net\fP and \f2java.lang\fP. Notice this excludes \f2java.lang.ref\fP, a subpackage of \f2java.lang\fP). -.LP +would include \f2java.io\fP, \f2java.util\fP, and \f2java.math\fP (among others), but would exclude packages rooted at \f2java.net\fP and \f2java.lang\fP. Notice this excludes \f2java.lang.ref\fP, a subpackage of \f2java.lang\fP). .TP 3 \-bootclasspath\ classpathlist Specifies the paths where the boot classes reside. These are nominally the Java platform classes. The bootclasspath is part of the search path the Javadoc tool will use to look up source and class files. See .na \f2How Classes Are Found\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles. for more details. Separate directories in \f2classpathlist\fP with colons (:). -.LP +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html#srcfiles. for more details. Separate directories in \f2classpathlist\fP with colons (:). .TP 3 \-extdirs\ dirlist -Specifies the directories where extension classes reside. These are any classes that use the Java Extension mechanism. The extdirs is part of the search path the Javadoc tool will use to look up source and class files. See \f2\-classpath\fP (above) for more details. Separate directories in \f2dirlist\fP with colons (:). -.LP +Specifies the directories where extension classes reside. These are any classes that use the Java Extension mechanism. The extdirs is part of the search path the Javadoc tool will use to look up source and class files. See \f2\-classpath\fP (above) for more details. Separate directories in \f2dirlist\fP with colons (:). .TP 3 \-verbose -Provides more detailed messages while javadoc is running. Without the verbose option, messages appear for loading the source files, generating the documentation (one message per source file), and sorting. The verbose option causes the printing of additional messages specifying the number of milliseconds to parse each java source file. -.LP +Provides more detailed messages while javadoc is running. Without the verbose option, messages appear for loading the source files, generating the documentation (one message per source file), and sorting. The verbose option causes the printing of additional messages specifying the number of milliseconds to parse each java source file. .TP 3 \-quiet -Shuts off non\-error and non\-warning messages, leaving only the warnings and errors appear, making them easier to view. Also suppresses the version string. -.LP +Shuts off non\-error and non\-warning messages, leaving only the warnings and errors appear, making them easier to view. Also suppresses the version string. .TP 3 \-breakiterator\ Uses the internationalized sentence boundary of .na \f2java.text.BreakIterator\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/text/BreakIterator.html to determine the end of the first sentence for English (all other locales already use \f2BreakIterator\fP), rather than an English language, locale\-specific algorithm. By \f2first sentence\fP, we mean the first sentence in the main description of a package, class or member. This sentence is copied to the package, class or member summary, and to the alphabetic index. -.LP +http://download.oracle.com/javase/7/docs/api/java/text/BreakIterator.html to determine the end of the first sentence for English (all other locales already use \f2BreakIterator\fP), rather than an English language, locale\-specific algorithm. By \f2first sentence\fP, we mean the first sentence in the main description of a package, class or member. This sentence is copied to the package, class or member summary, and to the alphabetic index. +.br +.br From JDK 1.2 forward, the BreakIterator class is already used to determine the end of sentence for all languages but English. Therefore, the \f2\-breakiterator\fP option has no effect except for English from 1.2 forward. English has its own default algorithm: .RS 3 .TP 2 @@ -4134,31 +3041,22 @@ English default sentence\-break algorithm \- Stops at a period followed by a spa o Breakiterator sentence\-break algorithm \- In general, stops at a period, question mark or exclamation mark followed by a space if the next word starts with a capital letter. This is meant to handle most abbreviations (such as "The serial no. is valid", but won't handle "Mr. Smith"). Doesn't stop at HTML tags or sentences that begin with numbers or symbols. Stops at the last period in "../filename", even if embedded in an HTML tag. .RE -.RS 3 - -.LP -.LP -NOTE: We have removed from 1.5.0 the breakiterator warning messages that were in 1.4.x and have left the default sentence\-break algorithm unchanged. That is, the \-breakiterator option is not the default in 1.5.0, nor do we expect it to become the default. This is a reversal from our former intention that the default would change in the "next major release" (1.5.0). This means if you have not modified your source code to eliminate the breakiterator warnings in 1.4.x, then you don't have to do anything, and the warnings go away starting with 1.5.0. The reason for this reversal is because any benefit to having breakiterator become the default would be outweighed by the incompatible source change it would require. We regret any extra work and confusion this has caused. -.LP -.RE +NOTE: We have removed from 1.5.0 the breakiterator warning messages that were in 1.4.x and have left the default sentence\-break algorithm unchanged. That is, the \-breakiterator option is not the default in 1.5.0, nor do we expect it to become the default. This is a reversal from our former intention that the default would change in the "next major release" (1.5.0). This means if you have not modified your source code to eliminate the breakiterator warnings in 1.4.x, then you don't have to do anything, and the warnings go away starting with 1.5.0. The reason for this reversal is because any benefit to having breakiterator become the default would be outweighed by the incompatible source change it would require. We regret any extra work and confusion this has caused. .TP 3 \-locale\ language_country_variant -.RS 3 -.LP \f3Important\fP \- The \f2\-locale\fP option must be placed \f2ahead\fP (to the left) of any options provided by the standard doclet or any other doclet. Otherwise, the navigation bars will appear in English. This is the only command\-line option that is order\-dependent. -.LP -.RE -.LP -Specifies the locale that javadoc uses when generating documentation. The argument is the name of the locale, as described in java.util.Locale documentation, such as \f2en_US\fP (English, United States) or \f2en_US_WIN\fP (Windows variant). -.LP -Specifying a locale causes javadoc to choose the resource files of that locale for messages (strings in the navigation bar, headings for lists and tables, help file contents, comments in stylesheet.css, and so forth). It also specifies the sorting order for lists sorted alphabetically, and the sentence separator to determine the end of the first sentence. It does not determine the locale of the doc comment text specified in the source files of the documented classes. -.LP +.br +.br +Specifies the locale that javadoc uses when generating documentation. The argument is the name of the locale, as described in java.util.Locale documentation, such as \f2en_US\fP (English, United States) or \f2en_US_WIN\fP (Windows variant). +.br +.br +Specifying a locale causes javadoc to choose the resource files of that locale for messages (strings in the navigation bar, headings for lists and tables, help file contents, comments in stylesheet.css, and so forth). It also specifies the sorting order for lists sorted alphabetically, and the sentence separator to determine the end of the first sentence. It does not determine the locale of the doc comment text specified in the source files of the documented classes. .TP 3 \-encoding\ name -Specifies the encoding name of the source files, such as \f2EUCJIS/SJIS\fP. If this option is not specified, the platform default converter is used. -.LP -Also see \-docencoding and \-charset. -.LP +Specifies the encoding name of the source files, such as \f2EUCJIS/SJIS\fP. If this option is not specified, the platform default converter is used. +.br +.br +Also see \-docencoding and \-charset. .TP 3 \-Jflag Passes \f2flag\fP directly to the runtime system java that runs javadoc. Notice there must be no space between the \f2J\fP and the \f2flag\fP. For example, if you need to ensure that the system sets aside 32 megabytes of memory in which to process the generated documentation, then you would call the \f2\-Xmx\fP option of java as follows (\f2\-Xms\fP is optional, as it only sets the size of initial memory, which is useful if you know the minimum amount of memory required): @@ -4183,12 +3081,12 @@ To tell what version of javadoc you are using, call the "\f2\-version\fP" option .RE .SS Options Provided by the Standard Doclet -.LP .RS 3 .TP 3 \-d\ directory -Specifies the destination directory where javadoc saves the generated HTML files. (The "d" means "destination.") Omitting this option causes the files to be saved to the current directory. The value \f2directory\fP can be absolute, or relative to the current working directory. As of 1.4, the destination directory is automatically created when javadoc is run. -.LP +Specifies the destination directory where javadoc saves the generated HTML files. (The "d" means "destination.") Omitting this option causes the files to be saved to the current directory. The value \f2directory\fP can be absolute, or relative to the current working directory. As of 1.4, the destination directory is automatically created when javadoc is run. +.br +.br For example, the following generates the documentation for the package \f2com.mypackage\fP and saves the results in the \f2/home/user/doc/\fP directory: .nf \f3 @@ -4196,28 +3094,27 @@ For example, the following generates the documentation for the package \f2com.my % \fP\f3javadoc \-d /home/user/doc com.mypackage\fP .fl .fi -.LP .TP 3 \-use -Includes one "Use" page for each documented class and package. The page describes what packages, classes, methods, constructors and fields use any API of the given class or package. Given class C, things that use class C would include subclasses of C, fields declared as C, methods that return C, and methods and constructors with parameters of type C. -.LP -For example, let us look at what might appear on the "Use" page for String. The \f2getName()\fP method in the \f2java.awt.Font\fP class returns type \f2String\fP. Therefore, \f2getName()\fP uses \f2String\fP, and you will find that method on the "Use" page for \f2String\fP. -.LP -Note that this documents only uses of the API, not the implementation. If a method uses \f2String\fP in its implementation but does not take a string as an argument or return a string, that is not considered a "use" of \f2String\fP. -.LP -You can access the generated "Use" page by first going to the class or package, then clicking on the "Use" link in the navigation bar. +Includes one "Use" page for each documented class and package. The page describes what packages, classes, methods, constructors and fields use any API of the given class or package. Given class C, things that use class C would include subclasses of C, fields declared as C, methods that return C, and methods and constructors with parameters of type C. +.br +.br +For example, let us look at what might appear on the "Use" page for String. The \f2getName()\fP method in the \f2java.awt.Font\fP class returns type \f2String\fP. Therefore, \f2getName()\fP uses \f2String\fP, and you will find that method on the "Use" page for \f2String\fP. +.br +.br +Note that this documents only uses of the API, not the implementation. If a method uses \f2String\fP in its implementation but does not take a string as an argument or return a string, that is not considered a "use" of \f2String\fP. +.br +.br +You can access the generated "Use" page by first going to the class or package, then clicking on the "Use" link in the navigation bar. .TP 3 \-version -Includes the @version text in the generated docs. This text is omitted by default. To tell what version of the Javadoc tool you are using, use the \f2\-J\-version\fP option. -.LP +Includes the @version text in the generated docs. This text is omitted by default. To tell what version of the Javadoc tool you are using, use the \f2\-J\-version\fP option. .TP 3 \-author -Includes the @author text in the generated docs. -.LP +Includes the @author text in the generated docs. .TP 3 \-splitindex -Splits the index file into multiple files, alphabetically, one file per letter, plus a file for any index entries that start with non\-alphabetical characters. -.LP +Splits the index file into multiple files, alphabetically, one file per letter, plus a file for any index entries that start with non\-alphabetical characters. .TP 3 \-windowtitle\ title Specifies the title to be placed in the HTML <title> tag. This appears in the window title and in any browser bookmarks (favorite places) that someone creates for this page. This title should not contain any HTML tags, as the browser will not properly interpret them. Any internal quotation marks within \f2title\fP may have to be escaped. If \-windowtitle is omitted, the Javadoc tool uses the value of \-doctitle for this option. @@ -4238,8 +3135,7 @@ Specifies the title to be placed near the top of the overview summary file. The .fi .TP 3 \-title\ title -\f3This option no longer exists.\fP It existed only in Beta versions of Javadoc 1.2. It has been renamed to \f2\-doctitle\fP. This option is being renamed to make it clear that it defines the document title rather than the window title. -.LP +\f3This option no longer exists.\fP It existed only in Beta versions of Javadoc 1.2. It has been renamed to \f2\-doctitle\fP. This option is being renamed to make it clear that it defines the document title rather than the window title. .TP 3 \-header\ header Specifies the header text to be placed at the top of each output file. The header will be placed to the right of the upper navigation bar. \f2header\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2header\fP may have to be escaped. @@ -4249,28 +3145,30 @@ Specifies the header text to be placed at the top of each output file. The heade % \fP\f3javadoc \-header "<b>Java 2 Platform </b><br>v1.4" com.mypackage\fP .fl .fi -.LP .TP 3 \-footer\ footer Specifies the footer text to be placed at the bottom of each output file. The footer will be placed to the right of the lower navigation bar. \f2footer\fP may contain html tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2footer\fP may have to be escaped. -.LP +.TP 3 +\-top +Specifies the text to be placed at the top of each output file. .TP 3 \-bottom\ text -Specifies the text to be placed at the bottom of each output file. The text will be placed at the bottom of the page, below the lower navigation bar. The \f2text\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2text\fP may have to be escaped. -.LP +Specifies the text to be placed at the bottom of each output file. The text will be placed at the bottom of the page, below the lower navigation bar. The \f2text\fP may contain HTML tags and white space, though if it does, it must be enclosed in quotes. Any internal quotation marks within \f2text\fP may have to be escaped. .TP 3 \-link\ extdocURL -Creates links to existing javadoc\-generated documentation of external referenced classes. It takes one argument: -.LP +Creates links to existing javadoc\-generated documentation of external referenced classes. It takes one argument: .RS 3 .TP 2 o -\f4extdocURL\fP is the absolute or relative URL of the directory containing the external javadoc\-generated documentation you want to link to. Examples are shown below. The package\-list file must be found in this directory (otherwise, use \f2\-linkoffline\fP). The Javadoc tool reads the package names from the \f2package\-list\fP file and then links to those packages at that URL. When the Javadoc tool is run, the \f2extdocURL\fP value is copied literally into the \f2<A HREF>\fP links that are created. Therefore, \f2extdocURL\fP must be the URL to the \f2directory\fP, not to a file. -.LP -You can use an absolute link for \f2extdocURL\fP to enable your docs to link to a document on any website, or can use a relative link to link only to a relative location. If relative, the value you pass in should be the relative path from the destination directory (specified with \f2\-d\fP) to the directory containing the packages being linked to. -.LP -When specifying an absolute link you normally use an \f2http:\fP link. However, if you want to link to a file system that has no web server, you can use a \f2file:\fP link \-\- however, do this only if everyone wanting to access the generated documentation shares the same file system. -.LP +\f4extdocURL\fP is the absolute or relative URL of the directory containing the external javadoc\-generated documentation you want to link to. Examples are shown below. The package\-list file must be found in this directory (otherwise, use \f2\-linkoffline\fP). The Javadoc tool reads the package names from the \f2package\-list\fP file and then links to those packages at that URL. When the Javadoc tool is run, the \f2extdocURL\fP value is copied literally into the \f2<A HREF>\fP links that are created. Therefore, \f2extdocURL\fP must be the URL to the \f2directory\fP, not to a file. +.br +.br +You can use an absolute link for \f2extdocURL\fP to enable your docs to link to a document on any website, or can use a relative link to link only to a relative location. If relative, the value you pass in should be the relative path from the destination directory (specified with \f2\-d\fP) to the directory containing the packages being linked to. +.br +.br +When specifying an absolute link you normally use an \f2http:\fP link. However, if you want to link to a file system that has no web server, you can use a \f2file:\fP link \-\- however, do this only if everyone wanting to access the generated documentation shares the same file system. +.br +.br In all cases, and on all operating systems, you should use a forward slash as the separator, whether the URL is absolute or relative, and "http:" or "file:" based (as specified in the .na \f2URL Memo\fP @ @@ -4288,8 +3186,11 @@ Relative link: \f2\-link <directory>/<directory>/.../<name>\fP .RE .RE -.LP -You can specify multiple \f2\-link\fP options in a given javadoc run to link to multiple documents. \f3Choosing between \-linkoffline and \-link\fP: +You can specify multiple \f2\-link\fP options in a given javadoc run to link to multiple documents. +.br +.br +\f3Choosing between \-linkoffline and \-link\fP: +.br .br Use \f2\-link\fP: .RS 3 @@ -4306,16 +3207,17 @@ Use \f2\-linkoffline\fP: o when using an absolute URL to the external API document, if your shell \f2does not allow\fP a program to open a connection to that URL for reading. This can occur if you are behind a firewall and the document you want to link to is on the other side. .RE -.LP +.br +.br \f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java Platform packages at .na -\f2http://java.sun.com/javase/6/docs/api/\fP @ +\f2http://download.oracle.com/javase/7/docs/api/\fP @ .fi -http://java.sun.com/javase/6/docs/api. The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other options, such as \f2\-sourcepath\fP and \f2\-d\fP, are not shown.) +http://download.oracle.com/javase/7/docs/api/. The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other options, such as \f2\-sourcepath\fP and \f2\-d\fP, are not shown.) .nf \f3 .fl - % \fP\f3javadoc \-link http://java.sun.com/javase/6/docs/api com.mypackage\fP + % \fP\f3javadoc \-link http://download.oracle.com/javase/7/docs/api/ com.mypackage\fP .fl .fi \f3Example using relative links to the external docs\fP \- Let us say you have two packages whose docs are generated in different runs of the Javadoc tool, and those docs are separated by a relative path. In this example, the packages are \f2com.apipackage\fP, an API, and \f2com.spipackage\fP, an SPI (Service Provide Interface). You want the documentation to reside in \f2docs/api/com/apipackage\fP and \f2docs/spi/com/spipackage\fP. Assuming the API package documentation is already generated, and that \f2docs\fP is the current directory, you would document the SPI package with links to the API documentation by running: @@ -4325,17 +3227,21 @@ http://java.sun.com/javase/6/docs/api. The following command generates documenta % \fP\f3javadoc \-d ./spi \-link ../api com.spipackage\fP .fl .fi -.LP -Notice the \f2\-link\fP argument is relative to the destination directory (\f2docs/spi\fP). -.LP -\f3Details\fP \- The \f2\-link\fP option enables you to link to classes referenced to by your code but \f2not\fP documented in the current javadoc run. For these links to go to valid pages, you must know where those HTML pages are located, and specify that location with \f2extdocURL\fP. This allows, for instance, third party documentation to link to \f2java.*\fP documentation on \f2http://java.sun.com\fP. -.LP -Omit the \f2\-link\fP option for javadoc to create links only to API within the documentation it is generating in the current run. (Without the \f2\-link\fP option, the Javadoc tool does not create links to documentation for external references, because it does not know if or where that documentation exists.) -.LP -This option can create links in several places in the generated documentation. -.LP -Another use is for cross\-links between sets of packages: Execute javadoc on one set of packages, then run javadoc again on another set of packages, creating links both ways between both sets. -.LP +Notice the \f2\-link\fP argument is relative to the destination directory (\f2docs/spi\fP). +.br +.br +\f3Details\fP \- The \f2\-link\fP option enables you to link to classes referenced to by your code but \f2not\fP documented in the current javadoc run. For these links to go to valid pages, you must know where those HTML pages are located, and specify that location with \f2extdocURL\fP. This allows, for instance, third party documentation to link to \f2java.*\fP documentation on \f2http://java.sun.com\fP. +.br +.br +Omit the \f2\-link\fP option for javadoc to create links only to API within the documentation it is generating in the current run. (Without the \f2\-link\fP option, the Javadoc tool does not create links to documentation for external references, because it does not know if or where that documentation exists.) +.br +.br +This option can create links in several places in the generated documentation. +.br +.br +Another use is for cross\-links between sets of packages: Execute javadoc on one set of packages, then run javadoc again on another set of packages, creating links both ways between both sets. +.br +.br \f3How a Class Must be Referenced\fP \- For a link to an external referenced class to actually appear (and not just its text label), the class must be referenced in the following way. It is not sufficient for it to be referenced in the body of a method. It must be referenced in either an \f2import\fP statement or in a declaration. Here are examples of how the class \f2java.io.File\fP can be referenced: .RS 3 .TP 2 @@ -4353,16 +3259,17 @@ In a declaration: .br The reference and be in the return type or parameter type of a method, constructor, field, class or interface, or in an \f2implements\fP, \f2extends\fP or \f2throws\fP statement. .RE -.LP -An important corollary is that when you use the \f2\-link\fP option, there may be many links that unintentionally do not appear due to this constraint. (The text would appear without a hypertext link.) You can detect these by the warnings they emit. The most innocuous way to properly reference a class and thereby add the link would be to import that class, as shown above. -.LP -\f3Package List\fP \- The \f2\-link\fP option requires that a file named \f2package\-list\fP, which is generated by the Javadoc tool, exist at the URL you specify with \f2\-link\fP. The \f2package\-list\fP file is a simple text file that lists the names of packages documented at that location. In the earlier example, the Javadoc tool looks for a file named \f2package\-list\fP at the given URL, reads in the package names and then links to those packages at that URL. -.LP +An important corollary is that when you use the \f2\-link\fP option, there may be many links that unintentionally do not appear due to this constraint. (The text would appear without a hypertext link.) You can detect these by the warnings they emit. The most innocuous way to properly reference a class and thereby add the link would be to import that class, as shown above. +.br +.br +\f3Package List\fP \- The \f2\-link\fP option requires that a file named \f2package\-list\fP, which is generated by the Javadoc tool, exist at the URL you specify with \f2\-link\fP. The \f2package\-list\fP file is a simple text file that lists the names of packages documented at that location. In the earlier example, the Javadoc tool looks for a file named \f2package\-list\fP at the given URL, reads in the package names and then links to those packages at that URL. +.br +.br For example, the package list for the Java SE 6 API is located at .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list. and starts as follows: +http://download.oracle.com/javase/7/docs/api/package\-list. and starts as follows: .nf \f3 .fl @@ -4384,31 +3291,39 @@ http://java.sun.com/javase/6/docs/api/package\-list. and starts as follows: .fl \fP .fi -.LP -When javadoc is run without the \f2\-link\fP option, when it encounters a name that belongs to an external referenced class, it prints the name with no link. However, when the \f2\-link\fP option is used, the Javadoc tool searches the \f2package\-list\fP file at the specified \f2extdocURL\fP location for that package name. If it finds the package name, it prefixes the name with \f2extdocURL\fP. -.LP -In order for there to be no broken links, all of the documentation for the external references must exist at the specified URLs. The Javadoc tool will not check that these pages exist \-\- only that the package\-list exists. -.LP -\f3Multiple Links\fP \- You can supply multiple \f2\-link\fP options to link to any number of external generated documents. \ Javadoc 1.2 has a known bug which prevents you from supplying more than one \f2\-link\fP command. This was fixed in 1.2.2. -.LP -Specify a different link option for each external document to link to: -.LP -\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP -.LP -where \f2extdocURL1\fP,\ \f2extdocURL2\fP,\ ... \f2extdocURLn\fP point respectively to the roots of external documents, each of which contains a file named \f2package\-list\fP. -.LP -\f3Cross\-links\fP \- Note that "bootstrapping" may be required when cross\-linking two or more documents that have not previously been generated. In other words, if \f2package\-list\fP does not exist for either document, when you run the Javadoc tool on the first document, the \f2package\-list\fP will not yet exist for the second document. Therefore, to create the external links, you must re\-generate the first document after generating the second document. -.LP -In this case, the purpose of first generating a document is to create its \f2package\-list\fP (or you can create it by hand it if you're certain of the package names). Then generate the second document with its external links. The Javadoc tool prints a warning if a needed external \f2package\-list\fP file does not exist. -.LP +When javadoc is run without the \f2\-link\fP option, when it encounters a name that belongs to an external referenced class, it prints the name with no link. However, when the \f2\-link\fP option is used, the Javadoc tool searches the \f2package\-list\fP file at the specified \f2extdocURL\fP location for that package name. If it finds the package name, it prefixes the name with \f2extdocURL\fP. +.br +.br +In order for there to be no broken links, all of the documentation for the external references must exist at the specified URLs. The Javadoc tool will not check that these pages exist \-\- only that the package\-list exists. +.br +.br +\f3Multiple Links\fP \- You can supply multiple \f2\-link\fP options to link to any number of external generated documents. \ Javadoc 1.2 has a known bug which prevents you from supplying more than one \f2\-link\fP command. This was fixed in 1.2.2. +.br +.br +Specify a different link option for each external document to link to: +.br +.br +\ \ \f2% \fP\f4javadoc \-link\fP \f2extdocURL1\fP \f4\-link\fP \f2extdocURL2\fP \f2... \fP\f4\-link\fP \f2extdocURLn\fP \f4com.mypackage\fP +.br +.br +where \f2extdocURL1\fP,\ \f2extdocURL2\fP,\ ... \f2extdocURLn\fP point respectively to the roots of external documents, each of which contains a file named \f2package\-list\fP. +.br +.br +\f3Cross\-links\fP \- Note that "bootstrapping" may be required when cross\-linking two or more documents that have not previously been generated. In other words, if \f2package\-list\fP does not exist for either document, when you run the Javadoc tool on the first document, the \f2package\-list\fP will not yet exist for the second document. Therefore, to create the external links, you must re\-generate the first document after generating the second document. +.br +.br +In this case, the purpose of first generating a document is to create its \f2package\-list\fP (or you can create it by hand it if you're certain of the package names). Then generate the second document with its external links. The Javadoc tool prints a warning if a needed external \f2package\-list\fP file does not exist. .TP 3 \-linkoffline\ extdocURL\ packagelistLoc -This option is a variation of \f2\-link\fP; they both create links to javadoc\-generated documentation for external referenced classes. Use the \f2\-linkoffline\fP option when linking to a document on the web when the Javadoc tool itself is "offline" \-\- that is, it cannot access the document through a web connection. -.LP -More specifically, use \f2\-linkoffline\fP if the external document's \f2package\-list\fP file is not accessible or does not exist at the \f2extdocURL\fP location but does exist at a different location, which can be specified by \f2packageListLoc\fP (typically local). Thus, if \f2extdocURL\fP is accessible only on the World Wide Web, \f2\-linkoffline\fP removes the constraint that the Javadoc tool have a web connection when generating the documentation. -.LP -Another use is as a "hack" to update docs: After you have run javadoc on a full set of packages, then you can run javadoc again on onlya smaller set of changed packages, so that the updated files can be inserted back into the original set. Examples are given below. -.LP +This option is a variation of \f2\-link\fP; they both create links to javadoc\-generated documentation for external referenced classes. Use the \f2\-linkoffline\fP option when linking to a document on the web when the Javadoc tool itself is "offline" \-\- that is, it cannot access the document through a web connection. +.br +.br +More specifically, use \f2\-linkoffline\fP if the external document's \f2package\-list\fP file is not accessible or does not exist at the \f2extdocURL\fP location but does exist at a different location, which can be specified by \f2packageListLoc\fP (typically local). Thus, if \f2extdocURL\fP is accessible only on the World Wide Web, \f2\-linkoffline\fP removes the constraint that the Javadoc tool have a web connection when generating the documentation. +.br +.br +Another use is as a "hack" to update docs: After you have run javadoc on a full set of packages, then you can run javadoc again on onlya smaller set of changed packages, so that the updated files can be inserted back into the original set. Examples are given below. +.br +.br The \f2\-linkoffline\fP option takes two arguments \-\- the first for the string to be embedded in the \f2<a href>\fP links, the second telling it where to find \f2package\-list\fP: .RS 3 .TP 2 @@ -4418,35 +3333,39 @@ o o \f4packagelistLoc\fP is the path or URL to the directory containing the \f2package\-list\fP file for the external documentation. This can be a URL (http: or file:) or file path, and can be absolute or relative. If relative, make it relative to the \f2current\fP directory from where javadoc was run. Do not include the \f2package\-list\fP filename. .RE -.LP -You can specify multiple \f2\-linkoffline\fP options in a given javadoc run. (Prior to 1.2.2, it could be specified only once.) -.LP -\f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java SE Platform packages at \f2http://java.sun.com/javase/6/docs/api\fP, but your shell does not have web access. You could open the \f2package\-list\fP file in a browser at +You can specify multiple \f2\-linkoffline\fP options in a given javadoc run. (Prior to 1.2.2, it could be specified only once.) +.br +.br +\f3Example using absolute links to the external docs\fP \- Let us say you want to link to the \f2java.lang\fP, \f2java.io\fP and other Java SE Platform packages at \f2http://download.oracle.com/javase/7/docs/api/\fP, but your shell does not have web access. You could open the \f2package\-list\fP file in a browser at .na -\f2http://java.sun.com/javase/6/docs/api/package\-list\fP @ +\f2http://download.oracle.com/javase/7/docs/api/package\-list\fP @ .fi -http://java.sun.com/javase/6/docs/api/package\-list, save it to a local directory, and point to this local copy with the second argument, \f2packagelistLoc\fP. In this example, the package list file has been saved to the current directory "\f2.\fP" . The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other necessary options, such as \f2\-sourcepath\fP, are not shown.) +http://download.oracle.com/javase/7/docs/api/package\-list, save it to a local directory, and point to this local copy with the second argument, \f2packagelistLoc\fP. In this example, the package list file has been saved to the current directory "\f2.\fP" . The following command generates documentation for the package \f2com.mypackage\fP with links to the Java SE Platform packages. The generated documentation will contain links to the \f2Object\fP class, for example, in the class trees. (Other necessary options, such as \f2\-sourcepath\fP, are not shown.) .nf \f3 .fl -% \fP\f3javadoc \-linkoffline http://java.sun.com/javase/6/docs/api . com.mypackage\fP +% \fP\f3javadoc \-linkoffline http://download.oracle.com/javase/7/docs/api/ . com.mypackage\fP .fl .fi -.LP -\f3Example using relative links to the external docs\fP \- It's not very common to use \f2\-linkoffline\fP with relative paths, for the simple reason that \f2\-link\fP usually suffices. When using \f2\-linkoffline\fP, the \f2package\-list\fP file is generally local, and when using relative links, the file you are linking to is also generally local. So it is usually unnecessary to give a different path for the two arguments to \f2\-linkoffline\fP. When the two arguments are identical, you can use \f2\-link\fP. See the \f2\-link\fP relative example. -.LP -\f3Manually Creating a \fP\f4package\-list\fP\f3 File\fP \- If a \f2package\-list\fP file does not yet exist, but you know what package names your document will link to, you can create your own copy of this file by hand and specify its path with \f2packagelistLoc\fP. An example would be the previous case where the package list for \f2com.spipackage\fP did not exist when \f2com.apipackage\fP was first generated. This technique is useful when you need to generate documentation that links to new external documentation whose package names you know, but which is not yet published. This is also a way of creating \f2package\-list\fP files for packages generated with Javadoc 1.0 or 1.1, where \f2package\-list\fP files were not generated. Likewise, two companies can share their unpublished \f2package\-list\fP files, enabling them to release their cross\-linked documentation simultaneously. -.LP -\f3Linking to Multiple Documents\fP \- You can include \f2\-linkoffline\fP once for each generated document you want to refer to (each option is shown on a separate line for clarity): -.LP +\f3Example using relative links to the external docs\fP \- It's not very common to use \f2\-linkoffline\fP with relative paths, for the simple reason that \f2\-link\fP usually suffices. When using \f2\-linkoffline\fP, the \f2package\-list\fP file is generally local, and when using relative links, the file you are linking to is also generally local. So it is usually unnecessary to give a different path for the two arguments to \f2\-linkoffline\fP. When the two arguments are identical, you can use \f2\-link\fP. See the \f2\-link\fP relative example. +.br +.br +\f3Manually Creating a \fP\f4package\-list\fP\f3 File\fP \- If a \f2package\-list\fP file does not yet exist, but you know what package names your document will link to, you can create your own copy of this file by hand and specify its path with \f2packagelistLoc\fP. An example would be the previous case where the package list for \f2com.spipackage\fP did not exist when \f2com.apipackage\fP was first generated. This technique is useful when you need to generate documentation that links to new external documentation whose package names you know, but which is not yet published. This is also a way of creating \f2package\-list\fP files for packages generated with Javadoc 1.0 or 1.1, where \f2package\-list\fP files were not generated. Likewise, two companies can share their unpublished \f2package\-list\fP files, enabling them to release their cross\-linked documentation simultaneously. +.br +.br +\f3Linking to Multiple Documents\fP \- You can include \f2\-linkoffline\fP once for each generated document you want to refer to (each option is shown on a separate line for clarity): +.br +.br \f2% \fP\f4javadoc \-linkoffline\fP \f2extdocURL1\fP \f2packagelistLoc1\fP \f2\\\fP .br \f2\ \ \ \ \ \ \ \ \ \ \fP\f4\-linkoffline\fP \f2extdocURL2\fP \f2packagelistLoc2\fP \f2\\\fP .br -\f2\ \ \ \ \ \ \ \ \ \ ...\fP -.LP -\f3Updating docs\fP \- Another use for \f2\-linkoffline\fP option is useful if your project has dozens or hundreds of packages, if you have already run javadoc on the entire tree, and now, in a separate run, you want to quickly make some small changes and re\-run javadoc on just a small portion of the source tree. This is somewhat of a hack in that it works properly only if your changes are only to doc comments and not to declarations. If you were to add, remove or change any declarations from the source code, then broken links could show up in the index, package tree, inherited member lists, use page, and other places. -.LP +\f2\ \ \ \ \ \ \ \ \ \ ...\fP +.br +.br +\f3Updating docs\fP \- Another use for \f2\-linkoffline\fP option is useful if your project has dozens or hundreds of packages, if you have already run javadoc on the entire tree, and now, in a separate run, you want to quickly make some small changes and re\-run javadoc on just a small portion of the source tree. This is somewhat of a hack in that it works properly only if your changes are only to doc comments and not to declarations. If you were to add, remove or change any declarations from the source code, then broken links could show up in the index, package tree, inherited member lists, use page, and other places. +.br +.br First, you create a new destination directory (call it \f2update\fP) for this new small run. Let us say the original destination directory was named \f2html\fP. In the simplest example, cd to the parent of \f2html\fP. Set the first argument of \f2\-linkoffline\fP to the current directory "." and set the second argument to the relative path to \f2html\fP, where it can find \f2package\-list\fP, and pass in only the package names of the packages you want to update: .nf \f3 @@ -4454,14 +3373,15 @@ First, you create a new destination directory (call it \f2update\fP) for this ne % \fP\f3javadoc \-d update \-linkoffline . html com.mypackage\fP .fl .fi -When the Javadoc tool is done, copy these generated class pages in \f2update/com/package\fP (not the overview or index), over the original files in \f2html/com/package\fP. -.LP +When the Javadoc tool is done, copy these generated class pages in \f2update/com/package\fP (not the overview or index), over the original files in \f2html/com/package\fP. .TP 3 \-linksource\ -Creates an HTML version of each source file (with line numbers) and adds links to them from the standard HTML documentation. Links are created for classes, interfaces, constructors, methods and fields whose declarations are in a source file. Otherwise, links are not created, such as for default constructors and generated classes. -.LP -\f3This option exposes \fP\f4all\fP\f3 private implementation details in the included source files, including private classes, private fields, and the bodies of private methods, \fP\f4regardless of the \fP\f4\-public\fP\f3, \fP\f4\-package\fP\f3, \fP\f4\-protected\fP\f3 and \fP\f4\-private\fP\f3 options.\fP Unless you also use the \f2\-private\fP option, not all private classes or interfaces will necessarily be accessible via links. -.LP +Creates an HTML version of each source file (with line numbers) and adds links to them from the standard HTML documentation. Links are created for classes, interfaces, constructors, methods and fields whose declarations are in a source file. Otherwise, links are not created, such as for default constructors and generated classes. +.br +.br +\f3This option exposes \fP\f4all\fP\f3 private implementation details in the included source files, including private classes, private fields, and the bodies of private methods, \fP\f4regardless of the \fP\f4\-public\fP\f3, \fP\f4\-package\fP\f3, \fP\f4\-protected\fP\f3 and \fP\f4\-private\fP\f3 options.\fP Unless you also use the \f2\-private\fP option, not all private classes or interfaces will necessarily be accessible via links. +.br +.br Each link appears on the name of the identifier in its declaration. For example, the link to the source code of the \f2Button\fP class would be on the word "Button": .nf \f3 @@ -4482,7 +3402,6 @@ and the link to the source code of the \f2getLabel()\fP method in the Button cla .fl \fP .fi -.LP .TP 3 \-group\ groupheading\ packagepattern:packagepattern:... Separates packages on the overview page into whatever groups you specify, one group per table. You specify each group with a different \f2\-group\fP option. The groups appear on the page in the order specified on the command line; packages are alphabetized within a group. For a given \f2\-group\fP option, the packages matching the list of \f2packagepattern\fP expressions appear in a table with the heading \f2groupheading\fP. @@ -4494,16 +3413,12 @@ o o \f4packagepattern\fP can be any package name, or can be the start of any package name followed by an asterisk (\f2*\fP). The asterisk is a wildcard meaning "match any characters". This is the only wildcard allowed. Multiple patterns can be included in a group by separating them with colons (\f2:\fP). .RE -.RS 3 - -.LP -.LP \f3NOTE: If using an asterisk in a pattern or pattern list, the pattern list must be inside quotes, such as \fP\f4"java.lang*:java.util"\fP -.LP -.RE -.LP -If you do not supply any \f2\-group\fP option, all packages are placed in one group with the heading "Packages". If the all groups do not include all documented packages, any leftover packages appear in a separate group with the heading "Other Packages". -.LP +.br +.br +If you do not supply any \f2\-group\fP option, all packages are placed in one group with the heading "Packages". If the all groups do not include all documented packages, any leftover packages appear in a separate group with the heading "Other Packages". +.br +.br For example, the following option separates the four documented packages into core, extension and other packages. Notice the trailing "dot" does not appear in "java.lang*" \-\- including the dot, such as "java.lang.*" would omit the java.lang package. .nf \f3 @@ -4517,7 +3432,6 @@ For example, the following option separates the four documented packages into co .fi This results in the groupings: .RS 3 -.RS 3 .TP 3 Core Packages \f2java.lang\fP @@ -4530,38 +3444,27 @@ Extension Packages Other Packages \f2java.new\fP .RE - -.LP -.RE -.LP .TP 3 \-nodeprecated -Prevents the generation of any deprecated API at all in the documentation. This does what \-nodeprecatedlist does, plus it does not generate any deprecated API throughout the rest of the documentation. This is useful when writing code and you don't want to be distracted by the deprecated code. -.LP +Prevents the generation of any deprecated API at all in the documentation. This does what \-nodeprecatedlist does, plus it does not generate any deprecated API throughout the rest of the documentation. This is useful when writing code and you don't want to be distracted by the deprecated code. .TP 3 \-nodeprecatedlist -Prevents the generation of the file containing the list of deprecated APIs (deprecated\-list.html) and the link in the navigation bar to that page. (However, javadoc continues to generate the deprecated API throughout the rest of the document.) This is useful if your source code contains no deprecated API, and you want to make the navigation bar cleaner. -.LP +Prevents the generation of the file containing the list of deprecated APIs (deprecated\-list.html) and the link in the navigation bar to that page. (However, javadoc continues to generate the deprecated API throughout the rest of the document.) This is useful if your source code contains no deprecated API, and you want to make the navigation bar cleaner. .TP 3 \-nosince -Omits from the generated docs the "Since" sections associated with the @since tags. -.LP +Omits from the generated docs the "Since" sections associated with the @since tags. .TP 3 \-notree -Omits the class/interface hierarchy pages from the generated docs. These are the pages you reach using the "Tree" button in the navigation bar. The hierarchy is produced by default. -.LP +Omits the class/interface hierarchy pages from the generated docs. These are the pages you reach using the "Tree" button in the navigation bar. The hierarchy is produced by default. .TP 3 \-noindex -Omits the index from the generated docs. The index is produced by default. -.LP +Omits the index from the generated docs. The index is produced by default. .TP 3 \-nohelp -Omits the HELP link in the navigation bars at the top and bottom of each page of output. -.LP +Omits the HELP link in the navigation bars at the top and bottom of each page of output. .TP 3 \-nonavbar -Prevents the generation of the navigation bar, header and footer, otherwise found at the top and bottom of the generated pages. Has no affect on the "bottom" option. The \f2\-nonavbar\fP option is useful when you are interested only in the content and have no need for navigation, such as converting the files to PostScript or PDF for print only. -.LP +Prevents the generation of the navigation bar, header and footer, otherwise found at the top and bottom of the generated pages. Has no affect on the "bottom" option. The \f2\-nonavbar\fP option is useful when you are interested only in the content and have no need for navigation, such as converting the files to PostScript or PDF for print only. .TP 3 \-helpfile\ path/filename Specifies the path of an alternate help file \f2path/filename\fP that the HELP link in the top and bottom navigation bars link to. Without this option, the Javadoc tool automatically creates a help file \f2help\-doc.html\fP that is hard\-coded in the Javadoc tool. This option enables you to override this default. The \f2filename\fP can be any name and is not restricted to \f2help\-doc.html\fP \-\- the Javadoc tool will adjust the links in the navigation bar accordingly. For example: @@ -4582,8 +3485,7 @@ Specifies the path of an alternate HTML stylesheet file. Without this option, th .fi .TP 3 \-serialwarn -Generates compile\-time warnings for missing @serial tags. By default, Javadoc 1.2.2 (and later versions) generates no serial warnings. (This is a reversal from earlier versions.) Use this option to display the serial warnings, which helps to properly document default serializable fields and \f2writeExternal\fP methods. -.LP +Generates compile\-time warnings for missing @serial tags. By default, Javadoc 1.2.2 (and later versions) generates no serial warnings. (This is a reversal from earlier versions.) Use this option to display the serial warnings, which helps to properly document default serializable fields and \f2writeExternal\fP methods. .TP 3 \-charset\ name Specifies the HTML character set for this document. The name should be a preferred MIME name as given in the @@ -4609,10 +3511,10 @@ This META tag is described in the .na \f2HTML standard\fP @ .fi -http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2. (4197265 and 4137321) -.LP +http://www.w3.org/TR/REC\-html40/charset.html#h\-5.2.2. (4197265 and 4137321) +.br +.br Also see \-encoding and \-docencoding. -.LP .TP 3 \-docencoding\ name Specifies the encoding of the generated HTML files. The name should be a preferred MIME name as given in the @@ -4626,12 +3528,12 @@ http://www.iana.org/assignments/character\-sets. If you omit this option but use % \fP\f3javadoc \-docencoding "ISO\-8859\-1" mypackage\fP .fl .fi -Also see \-encoding and \-charset. -.LP +Also see \-encoding and \-charset. .TP 3 \-keywords -Adds HTML meta keyword tags to the generated file for each class. These tags can help the page be found by search engines that look for meta tags. (Most search engines that search the entire Internet do not look at meta tags, because pages can misuse them; but search engines offered by companies that confine their search to their own website can benefit by looking at meta tags.) -.LP +Adds HTML meta keyword tags to the generated file for each class. These tags can help the page be found by search engines that look for meta tags. (Most search engines that search the entire Internet do not look at meta tags, because pages can misuse them; but search engines offered by companies that confine their search to their own website can benefit by looking at meta tags.) +.br +.br The meta tags include the fully qualified name of the class and the unqualified names of the fields and methods. Constructors are not included because they are identical to the class name. For example, the class String starts with these keywords: .nf \f3 @@ -4646,16 +3548,21 @@ The meta tags include the fully qualified name of the class and the unqualified .fl \fP .fi -.LP .TP 3 \-tag\ \ tagname:Xaoptcmf:"taghead" -Enables the Javadoc tool to interpret a simple, one\-argument custom block tag \f2@\fP\f2tagname\fP in doc comments. So the Javadoc tool can "spell\-check" tag names, it is important to include a \f2\-tag\fP option for every custom tag that is present in the source code, disabling (with \f2X\fP) those that are not being output in the current run. -.LP -The colon (\f4:\fP) is always the separator. To use a colon in \f2tagname\fP, see Use of Colon in Tag Name. -.LP -The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed on the next line by the text from its single argument, as shown in the example below. Like any block tag, this argument's text can contain inline tags, which are also interpreted. The output is similar to standard one\-argument tags, such as \f2@return\fP and \f2@author\fP. Omitting \f2taghead\fP causes \f2tagname\fP to appear as the heading. -.LP -\f3Placement of tags\fP \- The \f4Xaoptcmf\fP part of the argument determines where in the source code the tag is allowed to be placed, and whether the tag can be disabled (using \f2X\fP). You can supply either \f4a\fP, to allow the tag in all places, or any combination of the other letters: \f4X\fP (disable tag) +Enables the Javadoc tool to interpret a simple, one\-argument custom block tag \f2@\fP\f2tagname\fP in doc comments. So the Javadoc tool can "spell\-check" tag names, it is important to include a \f2\-tag\fP option for every custom tag that is present in the source code, disabling (with \f2X\fP) those that are not being output in the current run. +.br +.br +The colon (\f4:\fP) is always the separator. To use a colon in \f2tagname\fP, see Use of Colon in Tag Name. +.br +.br +The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed on the next line by the text from its single argument, as shown in the example below. Like any block tag, this argument's text can contain inline tags, which are also interpreted. The output is similar to standard one\-argument tags, such as \f2@return\fP and \f2@author\fP. Omitting \f2taghead\fP causes \f2tagname\fP to appear as the heading. +.br +.br +\f3Placement of tags\fP \- The \f4Xaoptcmf\fP part of the argument determines where in the source code the tag is allowed to be placed, and whether the tag can be disabled (using \f2X\fP). You can supply either \f4a\fP, to allow the tag in all places, or any combination of the other letters: +.br +.br +\f4X\fP (disable tag) .br \f4a\fP (all) .br @@ -4670,7 +3577,8 @@ The \f2\-tag\fP option outputs the tag's heading \f2taghead\fP in bold, followed \f4m\fP (methods) .br \f4f\fP (fields) -.LP +.br +.br \f3Examples of single tags\fP \- An example of a tag option for a tag that can be used anywhere in the source code is: .nf \f3 @@ -4715,8 +3623,9 @@ use this tag option: .fl \fP .fi -\f3Spell\-checking tag names (Disabling tags)\fP \- Some developers put custom tags in the source code that they don't always want to output. In these cases, it is important to list all tags that are present in the source code, enabling the ones you want to output and disabling the ones you don't want to output. The presence of \f2X\fP disables the tag, while its absence enables the tag. This gives the Javadoc tool enough information to know if a tag it encounters is unknown, probably the results of a typo or a misspelling. It prints a warning in these cases. -.LP +\f3Spell\-checking tag names (Disabling tags)\fP \- Some developers put custom tags in the source code that they don't always want to output. In these cases, it is important to list all tags that are present in the source code, enabling the ones you want to output and disabling the ones you don't want to output. The presence of \f2X\fP disables the tag, while its absence enables the tag. This gives the Javadoc tool enough information to know if a tag it encounters is unknown, probably the results of a typo or a misspelling. It prints a warning in these cases. +.br +.br You can add \f2X\fP to the placement values already present, so that when you want to enable the tag, you can simply delete the \f2X\fP. For example, if @todo is a tag that you want to suppress on output, you would use: .nf \f3 @@ -4733,13 +3642,15 @@ or, if you'd rather keep it simple: .fl \fP .fi -.LP -The syntax \f2\-tag todo:X\fP works even if \f2@todo\fP is defined by a taglet. -.LP -\f3Order of tags\fP \- The order of the \f2\-tag\fP (and \f2\-taglet\fP) options determine the order the tags are output. You can mix the custom tags with the standard tags to intersperse them. The tag options for standard tags are placeholders only for determining the order \-\- they take only the standard tag's name. (Subheadings for standard tags cannot be altered.) This is illustrated in the following example. -.LP -If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its order. If they are both present, then whichever appears last on the command line determines its order. (This happens because the tags and taglets are processed in the order that they appear on the command line. For example, if \f2\-taglet\fP and \f2\-tag\fP both have the name "todo", the one that appears last on the command line will determine its order. -.LP +The syntax \f2\-tag todo:X\fP works even if \f2@todo\fP is defined by a taglet. +.br +.br +\f3Order of tags\fP \- The order of the \f2\-tag\fP (and \f2\-taglet\fP) options determine the order the tags are output. You can mix the custom tags with the standard tags to intersperse them. The tag options for standard tags are placeholders only for determining the order \-\- they take only the standard tag's name. (Subheadings for standard tags cannot be altered.) This is illustrated in the following example. +.br +.br +If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its order. If they are both present, then whichever appears last on the command line determines its order. (This happens because the tags and taglets are processed in the order that they appear on the command line. For example, if \f2\-taglet\fP and \f2\-tag\fP both have the name "todo", the one that appears last on the command line will determine its order. +.br +.br \f3Example of a complete set of tags\fP \- This example inserts "To Do" after "Parameters" and before "Throws" in the output. By using "X", it also specifies that @example is a tag that might be encountered in the source code that should not be output during this run. Notice that if you use @argfile, you can put the tags on separate lines in an argument file like this (no line continuation characters needed): .nf \f3 @@ -4758,21 +3669,23 @@ If \f2\-tag\fP is missing, then the position of \f2\-taglet\fP determines its or .fl \fP .fi -.LP -When javadoc parses the doc comments, any tag encountered that is neither a standard tag nor passed in with \f2\-tag\fP or \f2\-taglet\fP is considered unknown, and a warning is thrown. -.LP -The standard tags are initially stored internally in a list in their default order. Whenever \f2\-tag\fP options are used, those tags get appended to this list \-\- standard tags are moved from their default position. Therefore, if a \f2\-tag\fP option is omitted for a standard tag, it remains in its default position. -.LP -\f3Avoiding Conflicts\fP \- If you want to slice out your own namespace, you can use a dot\-separated naming convention similar to that used for packages: \f2com.mycompany.todo\fP. Sun will continue to create standard tags whose names do not contain dots. Any tag you create will override the behavior of a tag by the same name defined by Sun. In other words, if you create a tag or taglet \f2@todo\fP, it will always have the same behavior you define, even if Sun later creates a standard tag of the same name. -.LP +When javadoc parses the doc comments, any tag encountered that is neither a standard tag nor passed in with \f2\-tag\fP or \f2\-taglet\fP is considered unknown, and a warning is thrown. +.br +.br +The standard tags are initially stored internally in a list in their default order. Whenever \f2\-tag\fP options are used, those tags get appended to this list \-\- standard tags are moved from their default position. Therefore, if a \f2\-tag\fP option is omitted for a standard tag, it remains in its default position. +.br +.br +\f3Avoiding Conflicts\fP \- If you want to slice out your own namespace, you can use a dot\-separated naming convention similar to that used for packages: \f2com.mycompany.todo\fP. Oracle will continue to create standard tags whose names do not contain dots. Any tag you create will override the behavior of a tag by the same name defined by Oracle. In other words, if you create a tag or taglet \f2@todo\fP, it will always have the same behavior you define, even if Oracle later creates a standard tag of the same name. +.br +.br \f3Annotations vs. Javadoc Tags\fP \- In general, if the markup you want to add is intended to affect or produce documentation, it should probably be a javadoc tag; otherwise, it should be an annotation. See .na \f2Comparing Annotations and Javadoc Tags\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html#annotations -.LP -You can also create more complex block tags, or custom inline tags with the \-taglet option. -.LP +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html#annotations< +.br +.br +You can also create more complex block tags, or custom inline tags with the \-taglet option. .TP 3 \-taglet\ \ class Specifies the class file that starts the taglet used in generating the documentation for that tag. Use the fully\-qualified name for \f2class\fP. This taglet also defines the number of text arguments that the custom tag has. The taglet accepts those arguments, processes them, and generates the output. For extensive documentation with example taglets, see: @@ -4782,13 +3695,14 @@ o .na \f2Taglet Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/taglet/overview.html +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/taglet/overview.html .RE -.LP -Taglets are useful for block or inline tags. They can have any number of arguments and implement custom behavior, such as making text bold, formatting bullets, writing out the text to a file, or starting other processes. -.LP -Taglets can only determine where a tag should appear and in what form. All other decisions are made by the doclet. So a taglet cannot do things such as remove a class name from the list of included classes. However, it can execute side effects, such as printing the tag's text to a file or triggering another process. -.LP +Taglets are useful for block or inline tags. They can have any number of arguments and implement custom behavior, such as making text bold, formatting bullets, writing out the text to a file, or starting other processes. +.br +.br +Taglets can only determine where a tag should appear and in what form. All other decisions are made by the doclet. So a taglet cannot do things such as remove a class name from the list of included classes. However, it can execute side effects, such as printing the tag's text to a file or triggering another process. +.br +.br Use the \f2\-tagletpath\fP option to specify the path to the taglet. Here is an example that inserts the "To Do" taglet after "Parameters" and ahead of "Throws" in the generated pages: .nf \f3 @@ -4809,25 +3723,21 @@ Use the \f2\-tagletpath\fP option to specify the path to the taglet. Here is an .fl \fP .fi -.LP -Alternatively, you can use the \f2\-taglet\fP option in place of its \f2\-tag\fP option, but that may be harder to read. -.LP +Alternatively, you can use the \f2\-taglet\fP option in place of its \f2\-tag\fP option, but that may be harder to read. .TP 3 \-tagletpath\ \ tagletpathlist -Specifies the search paths for finding taglet class files (.class). The \f2tagletpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. -.LP +Specifies the search paths for finding taglet class files (.class). The \f2tagletpathlist\fP can contain multiple paths by separating them with a colon (\f2:\fP). The Javadoc tool will search in all subdirectories of the specified paths. .TP 3 \-docfilessubdirs\ -Enables deep copying of "\f2doc\-files\fP" directories. In other words, subdirectories and all contents are recursively copied to the destination. For example, the directory \f2doc\-files/example/images\fP and all its contents would now be copied. There is also an option to exclude subdirectories. -.LP +Enables deep copying of "\f2doc\-files\fP" directories. In other words, subdirectories and all contents are recursively copied to the destination. For example, the directory \f2doc\-files/example/images\fP and all its contents would now be copied. There is also an option to exclude subdirectories. .TP 3 \-excludedocfilessubdir\ \ name1:name2... -Excludes any "\f2doc\-files\fP" subdirectories with the given names. This prevents the copying of SCCS and other source\-code\-control subdirectories. -.LP +Excludes any "\f2doc\-files\fP" subdirectories with the given names. This prevents the copying of SCCS and other source\-code\-control subdirectories. .TP 3 \-noqualifier\ \ all\ | \ packagename1:packagename2:... -Omits qualifying package name from ahead of class names in output. The argument to \f2\-noqualifier\fP is either "\f2all\fP" (all package qualifiers are omitted) or a colon\-separate list of packages, with wildcards, to be removed as qualifiers. The package name is removed from places where class or interface names appear. -.LP +Omits qualifying package name from ahead of class names in output. The argument to \f2\-noqualifier\fP is either "\f2all\fP" (all package qualifiers are omitted) or a colon\-separate list of packages, with wildcards, to be removed as qualifiers. The package name is removed from places where class or interface names appear. +.br +.br The following example omits all package qualifiers: .nf \f3 @@ -4852,8 +3762,7 @@ The following example omits package qualifiers starting with "java", and "com.su .fl \fP .fi -Where a package qualifier would appear due to the above behavior, the name can be suitably shortened \-\- see How a name is displayed. This rule is in effect whether or not \f2\-noqualifier\fP is used. -.LP +Where a package qualifier would appear due to the above behavior, the name can be suitably shortened \-\- see How a name is displayed. This rule is in effect whether or not \f2\-noqualifier\fP is used. .TP 3 \-notimestamp\ Suppresses the timestamp, which is hidden in an HTML comment in the generated HTML near the top of each page. Useful when you want to run javadoc on two source bases and diff them, as it prevents timestamps from causing a diff (which would otherwise be a diff on every page). The timestamp includes the javadoc version number, and currently looks like this: @@ -4864,53 +3773,40 @@ Suppresses the timestamp, which is hidden in an HTML comment in the generated HT .fl \fP .fi -.LP .TP 3 \-nocomment\ Suppress the entire comment body, including the main description and all tags, generating only declarations. This option enables re\-using source files originally intended for a different purpose, to produce skeleton HTML documentation at the early stages of a new project. +.TP 3 +\-sourcetab tabLength +Specify the number of spaces each tab takes up in the source. .RE .SH "COMMAND LINE ARGUMENT FILES" .LP - -.LP -.LP To shorten or simplify the javadoc command line, you can specify one or more files that themselves contain arguments to the \f2javadoc\fP command (except \f2\-J\fP options). This enables you to create javadoc commands of any length on any operating system. .LP -.LP An argument file can include javac options and source filenames in any combination. The arguments within a file can be space\-separated or newline\-separated. If a filename contains embedded spaces, put the whole filename in double quotes. .LP -.LP Filenames within an argument file are relative to the current directory, not the location of the argument file. Wildcards (*) are not allowed in these lists (such as for specifying \f2*.java\fP). Use of the '\f2@\fP' character to recursively interpret files is not supported. The \f2\-J\fP options are not supported because they are passed to the launcher, which does not support argument files. .LP -.LP When executing javadoc, pass in the path and name of each argument file with the '\f2@\fP' leading character. When javadoc encounters an argument beginning with the character `\f2@\fP', it expands the contents of that file into the argument list. -.LP .SS Example \- Single Arg File .LP -.LP You could use a single argument file named "\f2argfile\fP" to hold all Javadoc arguments: -.LP .nf \f3 .fl % \fP\f3javadoc @argfile\fP .fl .fi - -.LP .LP This argument file could contain the contents of both files shown in the next example. -.LP .SS Example \- Two Arg Files .LP -.LP You can create two argument files \-\- one for the Javadoc options and the other for the package names or source filenames: (Notice the following lists have no line\-continuation characters.) .LP -.LP Create a file named "\f2options\fP" containing: -.LP .nf \f3 .fl @@ -4920,13 +3816,13 @@ Create a file named "\f2options\fP" containing: .fl \-splitindex .fl - \-windowtitle 'Java(TM) SE 7 API Specification' + \-windowtitle 'Java SE 7 API Specification' .fl - \-doctitle 'Java(TM) SE 7 API Specification' + \-doctitle 'Java SE 7 API Specification' .fl - \-header '<b>Java(TM); SE 7' + \-header '<b>Java(TM) SE 7</b>' .fl - \-bottom 'Copyright 1993\-2009 Sun Microsystems, Inc. All Rights Reserved.' + \-bottom 'Copyright © 1993\-2011 Oracle and/or its affiliates. All rights reserved.' .fl \-group "Core Packages" "java.*" .fl @@ -4936,11 +3832,8 @@ Create a file named "\f2options\fP" containing: .fl \fP .fi - -.LP .LP Create a file named "\f2packages\fP" containing: -.LP .nf \f3 .fl @@ -4952,120 +3845,85 @@ Create a file named "\f2packages\fP" containing: .fl \fP .fi - -.LP .LP You would then run javadoc with: -.LP .nf \f3 .fl % \fP\f3javadoc @options @packages\fP .fl .fi - -.LP .SS Example \- Arg Files with Paths .LP -.LP The argument files can have paths, but any filenames inside the files are relative to the current working directory (not \f2path1\fP or \f2path2\fP): -.LP .nf \f3 .fl % \fP\f3javadoc @path1/options @path2/packages\fP .fl .fi - -.LP .SS Example \- Option Arguments .LP -.LP Here's an example of saving just an argument to a javadoc option in an argument file. We'll use the \f2\-bottom\fP option, since it can have a lengthy argument. You could create a file named "\f2bottom\fP" containing its text argument: -.LP .nf \f3 .fl -'<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit a +<font size="\-1"> .fl -bug or feature</a><br><br>Java is a trademark or registered trademark of + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl -Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-2000 Sun + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl -All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font> .fl \fP .fi - -.LP .LP Then run the Javadoc tool with: -.LP .nf \f3 .fl % \fP\f3javadoc \-bottom @bottom @packages\fP .fl .fi - -.LP .LP Or you could include the \f2\-bottom\fP option at the start of the argument file, and then just run it as: -.LP .nf \f3 .fl % \fP\f3javadoc @bottom @packages\fP .fl .fi - -.LP - -.LP .SH "Name" Running -.LP .SH "RUNNING JAVADOC" .LP - -.LP -.LP \f3Version Numbers\fP \- The version number of javadoc can be determined using \f3javadoc \-J\-version\fP. The version number of the standard doclet appears in its output stream. It can be turned off with \f2\-quiet\fP. .LP -.LP \f3Public programmatic interface\fP \- To invoke the Javadoc tool from within programs written in the Java language. This interface is in \f2com.sun.tools.javadoc.Main\fP (and javadoc is re\-entrant). For more details, see .na \f2Standard Doclet\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically. -.LP +http://download.oracle.com/javase/7/docs/technotes/guides/javadoc/standard\-doclet.html#runningprogrammatically. .LP \f3Running Doclets\fP \- The instructions given below are for invoking the standard HTML doclet. To invoke a custom doclet, use the \-doclet and \-docletpath options. For full, working examples of running a particular doclet, see the .na \f2MIF Doclet documentation\fP @ .fi http://java.sun.com/j2se/javadoc/mifdoclet/docs/mifdoclet.html. -.LP .SH "SIMPLE EXAMPLES" .LP - -.LP -.LP You can run javadoc on entire packages or individual source files. Each package name has a corresponding directory name. In the following examples, the source files are located at \f2/home/src/java/awt/*.java\fP. The destination directory is \f2/home/html\fP. -.LP .SS Documenting One or More Packages .LP -.LP To document a package, the source files (\f2*.java\fP) for that package must be located in a directory having the same name as the package. If a package name is made up of several identifiers (separated by dots, such as \f2java.awt.color\fP), each subsequent identifier must correspond to a deeper subdirectory (such as \f2java/awt/color\fP). You may split the source files for a single package among two such directory trees located at different places, as long as \f2\-sourcepath\fP points to them both \-\- for example \f2src1/java/awt/color\fP and \f2src2/java/awt/color\fP. .LP -.LP You can run javadoc either by changing directories (with \f2cd\fP) or by using \f2\-sourcepath\fP option. The examples below illustrate both alternatives. -.LP .RS 3 .TP 2 o @@ -5108,17 +3966,12 @@ o .fl .fi .RE - -.LP .LP Result: All cases generate HTML\-formatted documentation for the public and protected classes and interfaces in packages \f2java.awt\fP and \f2java.awt.event\fP and save the HTML files in the specified destination directory (\f2/home/html\fP). Because two or more packages are being generated, the document has three HTML frames \-\- for the list of packages, the list of classes, and the main class pages. -.LP .SS Documenting One or More Classes .LP -.LP The second way to run the Javadoc tool is by passing in one or more source files (\f2.java\fP). You can run javadoc either of the following two ways \-\- by changing directories (with \f2cd\fP) or by fully\-specifying the path to the \f2.java\fP files. Relative paths are relative to the current directory. The \f2\-sourcepath\fP option is ignored when passing in source files. You can use command line wildcards, such as asterisk (*), to specify groups of classes. -.LP .RS 3 .TP 2 o @@ -5155,93 +4008,76 @@ o .fi This example generates HTML\-formatted documentation for the class \f2Button\fP and classes beginning with \f2Graphics\fP. .RE - -.LP .SS Documenting Both Packages and Classes .LP -.LP You can document entire packages and individual classes at the same time. Here's an example that mixes two of the previous examples. You can use \f2\-sourcepath\fP for the path to the packages but not for the path to the individual classes. -.LP .nf \f3 .fl % \fP\f3javadoc \-d /home/html \-sourcepath /home/src java.awt /home/src/java/applet/Applet.java\fP .fl .fi - -.LP .LP This example generates HTML\-formatted documentation for the package \f2java.awt\fP and class \f2Applet\fP. (The Javadoc tool determines the package name for \f2Applet\fP from the package declaration, if any, in the \f2Applet.java\fP source file.) -.LP .SH "REAL WORLD EXAMPLE" .LP - -.LP -.LP The Javadoc tool has many useful options, some of which are more commonly used than others. Here is effectively the command we use to run the Javadoc tool on the Java platform API. We use 180MB of memory to generate the documentation for the 1500 (approx.) public and protected classes in the Java SE Platform, Standard Edition, v1.2. .LP -.LP The same example is shown twice \-\- first as executed on the command line, then as executed from a makefile. It uses absolute paths in the option arguments, which enables the same \f2javadoc\fP command to be run from any directory. -.LP .SS Command Line Example .LP -.LP -This command line example is over 900 characters, which is too long for some shells, such as DOS. You can use a command line argument file (or write a shell script) to workaround this limitation. -.LP +The following example may be too long for some shells such as DOS. You can use a command line argument file (or write a shell script) to workaround this limitation. .nf \f3 .fl -% javadoc \-sourcepath /java/jdk/src/share/classes \\ +% javadoc \-sourcepath /java/jdk/src/share/classes \\ .fl - \-overview /java/jdk/src/share/classes/overview.html \\ + \-overview /java/jdk/src/share/classes/overview.html \\ .fl - \-d /java/jdk/build/api \\ + \-d /java/jdk/build/api \\ .fl - \-use \\ + \-use \\ .fl - \-splitIndex \\ + \-splitIndex \\ .fl - \-windowtitle 'Java(TM) Platform, Standard Edition 7 API Specification' \\ + \-windowtitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-doctitle 'Java(TM) Platform, Standard Edition 7 API Specification' \\ + \-doctitle 'Java Platform, Standard Edition 7 API Specification' \\ .fl - \-header '<b>Java(TM) SE </b><br><font size="\-1">7</font>' \\ + \-header '<b>Java(TM) SE 7</b>' \\ .fl - \-bottom '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit + \-bottom '<font size="\-1"> .fl -a bug or feature</a><br><br>Java is a trademark or registered trademark of Sun Microsystems, + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl -Inc. in the US and other countries.<br>Copyright 1993\-1999 Sun Microsystems, Inc. + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl -901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. All Rights Reserved.</font>' \\ + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. +.fl + Other names may be trademarks of their respective owners.</font>' \\ .fl \-group "Core Packages" "java.*:com.sun.java.*:org.omg.*" \\ .fl - \-group "Extension Packages" "javax.*" \\ + \-group "Extension Packages" "javax.*" \\ .fl - \-J\-Xmx180m \\ + \-J\-Xmx180m \\ .fl @packages .fl \fP .fi - -.LP .LP where \f2packages\fP is the name of a file containing the packages to process, such as \f2java.applet java.lang\fP. None of the options should contain any newline characters between the single quotes. (For example, if you copy and paste this example, delete the newline characters from the \f2\-bottom\fP option.) See the other notes listed below. -.LP .SS Makefile Example .LP -.LP This is an example of a GNU makefile. For an example of a Windows makefile, see .na \f2creating a makefile for Windows\fP @ .fi http://java.sun.com/j2se/javadoc/faq/index.html#makefiles. -.LP .nf \f3 .fl @@ -5283,15 +4119,15 @@ DOCTITLE = 'Java(TM) Platform Standard Edition 7 API Specification' .fl HEADER = '<b>Java(TM) SE 7</font>' .fl -BOTTOM = '<font size="\-1"><a href="http://java.sun.com/cgi\-bin/bugreport.cgi">Submit +BOTTOM = '<font size="\-1"> .fl - a bug or feature</a><br><br>Java is a trademark or registered trademark + <a href="http://bugreport.sun.com/bugreport/">Submit a bug or feature</a><br/> .fl - of Sun Microsystems, Inc. in the US and other countries.<br>Copyright 1993\-1999 + Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.<br/> .fl - Sun Microsystems, Inc. 901 San Antonio Road,<br>Palo Alto, California, 94303, U.S.A. + Oracle is a registered trademark of Oracle Corporation and/or its affiliates. .fl - All Rights Reserved.</font>' + Other names may be trademarks of their respective owners.</font>' .fl GROUPCORE = '"Core Packages" "java.*:com.sun.java.*:org.omg.*"' .fl @@ -5301,14 +4137,10 @@ SRCDIR = '/java/jdk/1.7.0/src/share/classes' .fl \fP .fi - -.LP .LP Single quotes are used to surround makefile arguments. .LP -.LP \f3NOTES\fP -.LP .RS 3 .TP 2 o @@ -5320,15 +4152,9 @@ If you omit the \f2\-footer\fP option, as done here, the Javadoc tool copies the o Other important options you might want to use but not needed in this example are \-\f2classpath\fP and \-\f2link\fP. .RE - -.LP .SH "TROUBLESHOOTING" -.LP - -.LP .SS General Troubleshooting -.LP .RS 3 .TP 2 o @@ -5347,37 +4173,23 @@ o o \f3Documents only legal classes\fP \- When documenting a package, javadoc only reads files whose names are composed of legal class names. You can prevent javadoc from parsing a file by including, for example, a hyphen "\-" in its filename. .RE - -.LP .SS Errors and Warnings .LP -.LP Error and warning messages contain the filename and line number to the declaration line rather than to the particular line in the doc comment. -.LP .RS 3 .TP 2 o \f2"error: cannot read: Class1.java"\fP the Javadoc tool is trying to load the class Class1.java in the current directory. The class name is shown with its path (absolute or relative), which in this case is the same as \f2./Class1.java\fP. .RE - -.LP .SH "ENVIRONMENT" -.LP - -.LP .RS 3 .TP 3 CLASSPATH Environment variable that provides the path which javadoc uses to find user class files. This environment variable is overridden by the \f2\-classpath\fP option. Separate directories with a colon, for example: .:/home/classes:/usr/local/java/classes .RE - -.LP .SH "SEE ALSO" -.LP - -.LP .RS 3 .TP 2 o @@ -5399,75 +4211,24 @@ o .na \f2Javadoc Home Page\fP @ .fi -http://java.sun.com/j2se/javadoc/index.jsp +http://www.oracle.com/technetwork/java/javase/documentation/index\-jsp\-135444.html .TP 2 o .na \f2How to Write Doc Comments for Javadoc\fP @ .fi -http://java.sun.com/j2se/javadoc/writingdoccomments/index.html +http://www.oracle.com/technetwork/java/javase/documentation/index\-137868.html .TP 2 o .na \f2Setting the Class Path\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#general +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#general .TP 2 o .na \f2How Javac and Javadoc Find Classes\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) +http://download.oracle.com/javase/7/docs/technotes/tools/findingclasses.html#srcfiles (tools.jar) .RE - -.LP -.LP -.TS -.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 -.de 35 -.ps \n(.s -.vs \n(.vu -.in \n(.iu -.if \n(.u .fi -.if \n(.j .ad -.if \n(.j=0 .na -.. -.nf -.nr #~ 0 -.if n .nr #~ 0.6n -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.fc -.nr 33 \n(.s -.rm 80 -.nr 80 0 -.80 -.rm 80 -.nr 38 1n -.nr 79 0 -.nr 40 \n(79+(0*\n(38) -.nr 80 +\n(40 -.nr TW \n(80 -.if t .if \n(TW>\n(.li .tm Table at line 3869 file Input is too wide - \n(TW units -.fc   -.nr #T 0-1 -.nr #a 0-1 -.eo -.de T# -.ds #d .d -.if \(ts\n(.z\(ts\(ts .ds #d nl -.mk ## -.nr ## -1v -.ls 1 -.ls -.. -.ec -.fc -.nr T. 1 -.T# 1 -.35 -.TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-3 - -.LP diff --git a/jdk/src/solaris/doc/sun/man/man1/javah.1 b/jdk/src/solaris/doc/sun/man/man1/javah.1 index 60a51c37af6..16dfa9bcc93 100644 --- a/jdk/src/solaris/doc/sun/man/man1/javah.1 +++ b/jdk/src/solaris/doc/sun/man/man1/javah.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,37 +19,27 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javah 1 "02 Jun 2010" +.TH javah 1 "10 May 2011" .LP .SH "Name" javah \- C Header and Stub File Generator -.LP -.RS 3 - .LP .LP \f3javah\fP produces C header files and C source files from a Java class. These files provide the connective glue that allow your Java and C code to interact. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl javah [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . .fl -javah_g [ \fP\f3options\fP\f3 ] fully\-qualified\-classname. . . -.fl \fP .fi .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3javah\fP generates C header and source files that are needed to implement native methods. The generated header and source files are used by C programs to reference an object's instance variables from native source code. The .h file contains a struct definition whose layout parallels the layout of the corresponding class. The fields in the struct correspond to instance variables in the class. @@ -63,12 +53,7 @@ By default \f3javah\fP creates a header file for each class listed on the comman .LP The new native method interface, Java Native Interface (JNI), does not require header information or stub files. \f3javah\fP can still be used to generate native method function proptotypes needed for JNI\-style native methods. \f3javah\fP produces JNI\-style output by default, and places the result in the .h file. .LP -.LP -\f3javah_g\fP is a non\-optimized version of \f3javah\fP suitable for use with debuggers like jdb(1). -.LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -110,11 +95,10 @@ For example: .fl \fP .fi -.LP As a special convenience, a class path element containing a basename of \f2*\fP is considered equivalent to specifying a list of all the files in the directory with the extension \f2.jar\fP or \f2.JAR\fP (a java program cannot tell the difference between the two invocations). .br .br -For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. +For example, if directory \f2foo\fP contains \f2a.jar\fP and \f2b.JAR\fP, then the class path element \f2foo/*\fP is expanded to a \f2A.jar:b.JAR\fP, except that the order of jar files is unspecified. All jar files in the specified directory, even hidden ones, are included in the list. A classpath entry consisting simply of \f2*\fP expands to a list of all the jar files in the current directory. The \f2CLASSPATH\fP environment variable, where defined, will be similarly expanded. Any classpath wildcard expansion occurs before the Java virtual machine is started \-\- no Java program will ever see unexpanded wildcards except by querying the environment. For example; by invoking \f2System.getenv("CLASSPATH")\fP. .TP 3 \-bootclasspath path Specifies path from which to load bootstrap classes. By default, the bootstrap classes are the classes implementing the core Java 2 platform located in \f2jre/lib/rt.jar\fP and several other jar files. @@ -131,8 +115,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "ENVIRONMENT VARIABLES" -.LP - .LP .RS 3 .TP 3 @@ -149,8 +131,6 @@ Used to provide the system a path to user\-defined classes. Directories are sepa .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), jdb(1), javap(1), javadoc(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/javap.1 b/jdk/src/solaris/doc/sun/man/man1/javap.1 index 33518779b69..aa6e8d0114c 100644 --- a/jdk/src/solaris/doc/sun/man/man1/javap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/javap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1994, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1994, 2011, 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 @@ -19,27 +19,21 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javap 1 "02 Jun 2010" +.TH javap 1 "10 May 2011" .LP .SH "Name" javap \- The Java Class File Disassembler -.LP -.RS 3 - .LP .LP Disassembles class files. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 .fl -javap [ \fP\f3options\fP\f3 ] class. . . +javap [ \fP\f3options\fP\f3 ] classes .fl \fP .fi @@ -47,13 +41,21 @@ javap [ \fP\f3options\fP\f3 ] class. . . .LP .SH "DESCRIPTION" .LP - .LP -.LP -The \f3javap\fP command disassembles a class file. Its output depends on the options used. If no options are used, \f3javap\fP prints out the package, protected, and public fields and methods of the classes passed to it. \f3javap\fP prints its output to stdout. For example, compile the following class declaration: +The \f3javap\fP command disassembles one or more class files. Its output depends on the options used. If no options are used, \f3javap\fP prints out the package, protected, and public fields and methods of the classes passed to it. \f3javap\fP prints its output to stdout. .LP .RS 3 +.TP 3 +options +Command\-line options. +.TP 3 +classes +List of one or more classes (separated by spaces) to be processed for annotations (such as \f2DocFooter.class\fP). You may specify a class that can be found in the class path, by its file name (for example, \f2/home/user/myproject/src/DocFooter.class\fP), or with a URL (for example, \f2file:///home/user/myproject/src/DocFooter.class\fP). +.RE +.LP +.LP +For example, compile the following class declaration: .LP .nf \f3 @@ -96,166 +98,160 @@ public class DocFooter extends Applet { .fl \fP .fi -.RE .LP .LP -The output from \f3javap DocFooter\fP yields: -.LP -.RS 3 - +The output from \f3javap DocFooter.class\fP yields: .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + java.lang.String email; .fl - public DocFooter(); + public DocFooter(); .fl - public void init(); + public void init(); .fl - public void paint(java.awt.Graphics); + public void paint(java.awt.Graphics); .fl } .fl \fP .fi -.RE .LP .LP -The output from \f3javap \-c DocFooter\fP yields: -.LP -.RS 3 - +The output from \f3javap \-c DocFooter.class\fP yields: .LP .nf \f3 .fl -Compiled from DocFooter.java +Compiled from "DocFooter.java" .fl public class DocFooter extends java.applet.Applet { .fl - java.lang.String date; + java.lang.String date; .fl - java.lang.String email; + .fl - public DocFooter(); + java.lang.String email; .fl - public void init(); + .fl - public void paint(java.awt.Graphics); + public DocFooter(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: invokespecial #1 // Method java/applet/Applet."<init>":()V +.fl + 4: return +.fl + +.fl + public void init(); +.fl + Code: +.fl + 0: aload_0 +.fl + 1: sipush 500 +.fl + 4: bipush 100 +.fl + 6: invokevirtual #2 // Method resize:(II)V +.fl + 9: aload_0 +.fl + 10: aload_0 +.fl + 11: ldc #3 // String LAST_UPDATED +.fl + 13: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 16: putfield #5 // Field date:Ljava/lang/String; +.fl + 19: aload_0 +.fl + 20: aload_0 +.fl + 21: ldc #6 // String EMAIL +.fl + 23: invokevirtual #4 // Method getParameter:(Ljava/lang/String;)Ljava/lang/String; +.fl + 26: putfield #7 // Field email:Ljava/lang/String; +.fl + 29: return +.fl + +.fl + public void paint(java.awt.Graphics); +.fl + Code: +.fl + 0: aload_1 +.fl + 1: new #8 // class java/lang/StringBuilder +.fl + 4: dup +.fl + 5: invokespecial #9 // Method java/lang/StringBuilder."<init>":()V +.fl + 8: aload_0 +.fl + 9: getfield #5 // Field date:Ljava/lang/String; +.fl + 12: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 15: ldc #11 // String by +.fl + 17: invokevirtual #10 // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; +.fl + 20: invokevirtual #12 // Method java/lang/StringBuilder.toString:()Ljava/lang/String; +.fl + 23: bipush 100 +.fl + 25: bipush 15 +.fl + 27: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 30: aload_1 +.fl + 31: aload_0 +.fl + 32: getfield #7 // Field email:Ljava/lang/String; +.fl + 35: sipush 290 +.fl + 38: bipush 15 +.fl + 40: invokevirtual #13 // Method java/awt/Graphics.drawString:(Ljava/lang/String;II)V +.fl + 43: return .fl } .fl - -.fl -Method DocFooter() -.fl - 0 aload_0 -.fl - 1 invokespecial #1 <Method java.applet.Applet()> -.fl - 4 return -.fl - -.fl -Method void init() -.fl - 0 aload_0 -.fl - 1 sipush 500 -.fl - 4 bipush 100 -.fl - 6 invokevirtual #2 <Method void resize(int, int)> -.fl - 9 aload_0 -.fl - 10 aload_0 -.fl - 11 ldc #3 <String "LAST_UPDATED"> -.fl - 13 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)> -.fl - 16 putfield #5 <Field java.lang.String date> -.fl - 19 aload_0 -.fl - 20 aload_0 -.fl - 21 ldc #6 <String "EMAIL"> -.fl - 23 invokevirtual #4 <Method java.lang.String getParameter(java.lang.String)> -.fl - 26 putfield #7 <Field java.lang.String email> -.fl - 29 return -.fl - -.fl -Method void paint(java.awt.Graphics) -.fl - 0 aload_1 -.fl - 1 new #8 <Class java.lang.StringBuffer> -.fl - 4 dup -.fl - 5 invokespecial #9 <Method java.lang.StringBuffer()> -.fl - 8 aload_0 -.fl - 9 getfield #5 <Field java.lang.String date> -.fl - 12 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)> -.fl - 15 ldc #11 <String " by "> -.fl - 17 invokevirtual #10 <Method java.lang.StringBuffer append(java.lang.String)> -.fl - 20 invokevirtual #12 <Method java.lang.String toString()> -.fl - 23 bipush 100 -.fl - 25 bipush 15 -.fl - 27 invokevirtual #13 <Method void drawString(java.lang.String, int, int)> -.fl - 30 aload_1 -.fl - 31 aload_0 -.fl - 32 getfield #7 <Field java.lang.String email> -.fl - 35 sipush 290 -.fl - 38 bipush 15 -.fl - 40 invokevirtual #13 <Method void drawString(java.lang.String, int, int)> -.fl - 43 return -.fl \fP .fi -.RE .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 -\-help +\-help \-\-help \-? Prints out help message for \f3javap\fP. .TP 3 +\-version +Prints out version information. +.TP 3 \-l Prints out line and local variable tables. .TP 3 @@ -268,14 +264,11 @@ Shows only protected and public classes and members. \-package Shows only package, protected, and public classes and members. This is the default. .TP 3 -\-private +\-private \-p Shows all classes and members. .TP 3 \-Jflag Pass \f2flag\fP directly to the runtime system. Some examples: -.RS 3 - -.LP .nf \f3 .fl @@ -285,11 +278,16 @@ javap \-J\-Djava.security.manager \-J\-Djava.security.policy=MyPolicy MyClassNam .fl \fP .fi -.RE .TP 3 \-s Prints internal type signatures. .TP 3 +\-sysinfo +Shows system information (path, size, date, MD5 hash) of the class being processed. +.TP 3 +\-constants +Shows static final constants. +.TP 3 \-c Prints out disassembled code, i.e., the instructions that comprise the Java bytecodes, for each of the methods in the class. These are documented in the .na @@ -301,22 +299,7 @@ http://java.sun.com/docs/books/vmspec/. Prints stack size, number of \f2locals\fP and \f2args\fP for methods. .TP 3 \-classpath path -Specifies the path \f3javap\fP uses to look up classes. Overrides the default or the CLASSPATH environment variable if it is set. Directories are separated by colons. Thus the general format for \f2path\fP is: -.nf -\f3 -.fl - .:<your_path> -.fl -\fP -.fi -For example: -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi +Specifies the path \f3javap\fP uses to look up classes. Overrides the default or the CLASSPATH environment variable if it is set. .TP 3 \-bootclasspath path Specifies path from which to load bootstrap classes. By default, the bootstrap classes are the classes implementing the core Java platform located in \f2jre/lib/rt.jar\fP and several other jar files. @@ -325,32 +308,8 @@ Specifies path from which to load bootstrap classes. By default, the bootstrap c Overrides location at which installed extensions are searched for. The default location for extensions is the value of \f2java.ext.dirs\fP. .RE -.LP -.SH "ENVIRONMENT VARIABLES" -.LP - -.LP -.RS 3 -.TP 3 -CLASSPATH -Used to provide the system a path to user\-defined classes. Directories are separated by colons, for example, For example: -.RS 3 - -.LP -.nf -\f3 -.fl -.:/home/avh/classes:/usr/local/java/classes -.fl -\fP -.fi -.RE -.RE - .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), jdb(1), javah(1), javadoc(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/javaws.1 b/jdk/src/solaris/doc/sun/man/man1/javaws.1 index 281046c1072..a73df25c0db 100644 --- a/jdk/src/solaris/doc/sun/man/man1/javaws.1 +++ b/jdk/src/solaris/doc/sun/man/man1/javaws.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2003, 2011, 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 @@ -19,30 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH javaws 1 "02 Jun 2010" +.TH javaws 1 "10 May 2011" .LP .SH "Name" \f2javaws\fP Command Line .LP -.LP -\ -.LP -.SS -NAME -.LP -.RS 3 - +.SH "NAME" .LP .LP \f2javaws\fP \- Java Web Start launcher command .LP -.RE -.SS -SYNOPSIS -.LP -.RS 3 - +.SH "SYNOPSIS" .LP .LP \f2javaws [run\-options] <jnlp>\fP @@ -50,49 +38,27 @@ SYNOPSIS .LP \f2javaws [control\-options]\fP .LP -.RE -.SS -PARAMETERS -.LP -.RS 3 - +.SH "PARAMETERS" .LP .LP \f2[run\-options]\fP -.LP -.RS 3 - .LP .LP Command\-line run\-options. run\-options may be in any order. For a discussion of the various run\-options, see RUN\-OPTIONS below. .LP -.RE .LP \f2<jnlp>\fP -.LP -.RS 3 - .LP .LP This can be either the path of, or the Uniform Resource Locater (URL) of the JNLP (Java Network Launching Protocol) file. .LP -.RE .LP \f2[control\-options]\fP -.LP -.RS 3 - .LP .LP Command\-line control\-options. control\-options may be in any order. For a discussion of the various control\-options, see CONTROL\-OPTIONS below. .LP -.RE -.RE -.SS -DESCRIPTION -.LP -.RS 3 - +.SH "DESCRIPTION" .LP .LP The \f2javaws\fP command launches Java Web Start, which is the reference implementation of the Java Network Launching Protocol (JNLP). Java Web Start launches Java applications/applets hosted on a network. @@ -103,256 +69,154 @@ If a JNLP file is specified, \f2javaws\fP will launch the Java application/apple .LP The \f2javaws\fP launcher has a set of options that are supported in the current release. However, the options may be removed in a future release. .LP -.RE -.SS -RUN\-OPTIONS -.LP -.RS 3 - +.SH "RUN\-OPTIONS" .LP .LP \f2\-offline\fP .LP -.RS 3 - .LP +Run Java Web Start in offline mode. .LP -run Java Web Start in offline mode. -.LP -.RE .LP \f2\-Xnosplash\fP .LP -.RS 3 - .LP +Do not display the initial splash screen. .LP -disable the display of the initial splash screen. -.LP -.RE .LP \f2\-open <arguments>\fP -.LP -.RS 3 - .LP .LP If specified, replaces the arguments in the jnlp file with \f2\-open <arguments>\fP. .LP -.RE .LP \f2\-print <arguments>\fP -.LP -.RS 3 - .LP .LP If specified, replaces the arguments in the jnlp file with \f2\-print <arguments>\fP. .LP -.RE .LP \f2\-online\fP .LP -.RS 3 - .LP +Use online mode (default behavior). .LP -run in online mode (default behavior). -.LP -.RE .LP \f2\-wait\fP .LP -.RS 3 - .LP +If specified, the \f2javaws\fP process will not exit until the application exits. This option does not function as described on Windows platforms. .LP -If specified, the \f2javaws\fP process will not exit until the application exits. -.LP -.RE .LP \f2\-verbose\fP .LP -.RS 3 - .LP +Display additional output. .LP -display additional output. -.LP -.RE .LP \f2\-J<option>\fP .LP -.RS 3 - .LP +Supply options to the VM. .LP -supply options to the vm. -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +Run the application from the system cache only. .LP -run the application from the system cache only. -.LP -.RE -.RE -.SS -CONTROL\-OPTIONS -.LP -.RS 3 - +.SH "CONTROL\-OPTIONS" .LP .LP \f2\-viewer\fP .LP -.RS 3 - +.LP +Show the Cache Viewer in the Java Control Panel. .LP .LP -show the Cache Viewer in the java control panel +\f2\-clearcache\fP +.LP +.LP +Remove all non\-installed applications from the cache. .LP -.RE .LP \f2\-userConfig <property name>\fP .LP -.RS 3 - .LP +Clear the specified deployment property. .LP -clear the specified deployment property. -.LP -.RE .LP \f2\-userConfig <property name> <property value>\fP .LP -.RS 3 - .LP +Set the specified deployment property to the specified value. .LP -set the specified deployment property to the specified value. -.LP -.RE .LP \f2\-uninstall\fP .LP -.RS 3 - .LP +Remove all applications from the cache. .LP -remove all applications from the cache. -.LP -.RE .LP \f2\-uninstall <jnlp>\fP .LP -.RS 3 - .LP +Remove the application from the cache. .LP -remove the application from the cache. -.LP -.RE .LP \f2\-import [import\-options] <jnlp>\fP .LP -.RS 3 - .LP +Import the application to the cache. .LP -import the application to the cache. -.LP -.RE -\f3IMPORT\-OPTIONS\fP +.SH "IMPORT\-OPTIONS" .LP .LP \f2\-silent\fP .LP -.RS 3 - .LP +Import silently (with no user interface). .LP -import silently (with no user interface). -.LP -.RE .LP \f2\-system\fP .LP -.RS 3 - .LP +Import application to the system cache. .LP -import application to the system cache. -.LP -.RE .LP \f2\-codebase <url>\fP .LP -.RS 3 - .LP +Retrieve resources from the given codebase. .LP -retrieve resources from the given codebase. -.LP -.RE .LP \f2\-shortcut\fP .LP -.RS 3 - .LP +Install shortcuts as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. .LP -install shortcuts as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. -.LP -.RE .LP \f2\-association\fP .LP -.RS 3 - .LP +Install associations as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. .LP -install associations as if user allowed prompt. This option has no effect unless \f2\-silent\fP option is also used. -.LP -.RE -.RE -.SS -FILES -.LP -.RS 3 - +.SH "FILES" .LP .LP For information about the user and system cache and deployment.properties files, see .na \f2System\- and User\-Level Properties\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/properties.html. +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/properties.html. .LP -.RE -.SS -MORE INFORMATION -.LP -.RS 3 - +.SH "MORE INFORMATION" .LP .LP For more information about Java Web Start, see .na \f2Java Web Start\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/javaws/index.html. +http://download.oracle.com/javase/7/docs/technotes/guides/javaws/index.html. .LP -.RS 3 - -.LP -.LP -\ -.LP -.RE -.RE diff --git a/jdk/src/solaris/doc/sun/man/man1/jconsole.1 b/jdk/src/solaris/doc/sun/man/man1/jconsole.1 index aafa16475f9..14d87bb83c5 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jconsole.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jconsole.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jconsole 1 "02 Jun 2010" +.TH jconsole 1 "10 May 2011" .LP .SH "Name" jconsole \- Java Monitoring and Management Console .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,41 +38,40 @@ jconsole \- Java Monitoring and Management Console .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 options Options, if used, should follow immediately after the command name. -.br .TP 3 connection = pid | host:port | jmxUrl .RS 3 -\f2pid\fP\ \ \ Process ID of a local Java VM. The Java VM must be running with the same user ID as the user ID running jconsole. See +.TP 2 +o +\f2pid\fP Process ID of a local Java VM. The Java VM must be running with the same user ID as the user ID running jconsole. See .na \f2JMX Monitoring and Management\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. -.br -\f2host\fP:\f2port\fP\ \ Name of the host system on which the Java VM is running and the port number specified by the system property \f2com.sun.management.jmxremote.port\fP when the Java VM was started. See +http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html for details. +.TP 2 +o +\f2host\fP:\f2port\fP Name of the host system on which the Java VM is running and the port number specified by the system property \f2com.sun.management.jmxremote.port\fP when the Java VM was started. See .na \f2JMX Monitoring and Management\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html for details. -.br -\f2jmxUrl\fP\ \ Address of the JMX agent to be connected to as described in +http://download.oracle.com/javase/7/docs/technotes/guides/management/agent.html for details. +.TP 2 +o +\f2jmxUrl\fP Address of the JMX agent to be connected to as described in .na \f2JMXServiceURL\fP @ .fi -http://java.sun.com/javase/6/docs/api/javax/management/remote/JMXServiceURL.html. +http://download.oracle.com/javase/7/docs/api/javax/management/remote/JMXServiceURL.html. .RE .RE .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jconsole\fP command launches a graphical console tool that enables you to monitor and manage Java applications and virtual machines on a local or remote machine. @@ -83,18 +80,16 @@ The \f3jconsole\fP command launches a graphical console tool that enables you to On Windows, \f3jconsole\fP does not associate with a console window. It will, however, display a dialog box with error information if the \f3jconsole\fP command fails for some reason. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 \-interval=n Set the update interval to \f2n\fP seconds (default is 4 seconds). .TP 3 -\-notile\ +\-notile Do not tile windows initially (for two or more connections). .TP 3 -\-pluginpath\ plugins +\-pluginpath plugins Specify a list of directories or JAR files which are searched for JConsole plugins. The \f2plugins\fP path should contain a provider\-configuration file named: .br .nf @@ -104,20 +99,19 @@ Specify a list of directories or JAR files which are searched for JConsole plugi .fl \fP .fi -.LP containing one line for each plugin specifying the fully qualified class name of the class implementing the .na \f2com.sun.tools.jconsole.JConsolePlugin\fP @ .fi -http://java.sun.com/javase/6/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html class. +http://download.oracle.com/javase/7/docs/jdk/api/jconsole/spec/com/sun/tools/jconsole/JConsolePlugin.html class. .TP 3 -\-version\ +\-version Output version information and exit. .TP 3 -\-help\ +\-help Output help message and exit. .TP 3 -\-J<flag>\ +\-J<flag> Pass <flag> to the Java virtual machine on which jconsole is run. .RE @@ -130,13 +124,13 @@ o .na \f2Using JConsole\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/jconsole.html +http://download.oracle.com/javase/7/docs/technotes/guides/management/jconsole.html .TP 2 o .na \f2Monitoring and Management for Java Platform\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/management/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/management/index.html .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/jdb.1 b/jdk/src/solaris/doc/sun/man/man1/jdb.1 index 6e0b94394b1..e89a60b9748 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jdb.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jdb.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1995, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jdb 1 "02 Jun 2010" +.TH jdb 1 "10 May 2011" .LP .SH "Name" jdb \- The Java Debugger -.LP -.RS 3 - .LP .LP \f3jdb\fP helps you find and fix bugs in Java language programs. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -43,9 +37,6 @@ jdb \- The Java Debugger .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -60,23 +51,17 @@ Arguments passed to the \f2main()\fP method of \f2class\fP. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The Java Debugger, \f3jdb\fP, is a simple command\-line debugger for Java classes. It is a demonstration of the .na \f2Java Platform Debugger Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/index.html that provides inspection and debugging of a local or remote Java Virtual Machine. +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/index.html that provides inspection and debugging of a local or remote Java Virtual Machine. .LP .SS Starting a jdb Session -.LP -.RS 3 - .LP .LP There are many ways to start a jdb session. The most frequently used way is to have \f3jdb\fP launch a new Java Virtual Machine (VM) with the main class of the application to be debugged. This is done by substituting the command \f3jdb\fP for \f3java\fP in the command line. For example, if your application's main class is MyClass, you use the following command to debug it under JDB: @@ -137,7 +122,7 @@ There are many other ways to connect the debugger to a VM, and all of them are s .na \f2documentation\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html on these connection options. For information on starting a J2SE 1.4.2 or early VM for use with \f3jdb\fP see the +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html on these connection options. For information on starting a J2SE 1.4.2 or early VM for use with \f3jdb\fP see the .na \f21.4.2 documentation\fP @ .fi @@ -148,9 +133,6 @@ Basic jdb Commands .LP .LP The following is a list of the basic \f3jdb\fP commands. The Java debugger supports other commands which you can list using \f3jdb\fP's \f2help\fP command. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -164,10 +146,12 @@ cont Continues execution of the debugged application after a breakpoint, exception, or step. .TP 3 print -Displays Java objects and primitive values. For variables or fields of primitive types, the actual value is printed. For objects, a short description is printed. See the \f2dump\fP command below for getting more information about an object. -.LP -\f2NOTE: To display local variables, the containing class must have been compiled with the \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP option. -.LP +Displays Java objects and primitive values. For variables or fields of primitive types, the actual value is printed. For objects, a short description is printed. See the \f2dump\fP command below for getting more information about an object. +.br +.br +\f2NOTE: To display local variables, the containing class must have been compiled with the \fP\f2javac(1)\fP\f2 \fP\f2\-g\fP option. +.br +.br \f2print\fP supports many simple Java expressions including those with method invocations, for example: .RS 3 .TP 2 @@ -188,15 +172,13 @@ o .RE .TP 3 dump -For primitive values, this command is identical to \f2print\fP. For objects, it prints the current value of each field defined in the object. Static and instance fields are included. -.LP -The \f2dump\fP command supports the same set of expressions as the \f2print\fP command. +For primitive values, this command is identical to \f2print\fP. For objects, it prints the current value of each field defined in the object. Static and instance fields are included. +.br +.br +The \f2dump\fP command supports the same set of expressions as the \f2print\fP command. .TP 3 threads List the threads that are currently running. For each thread, its name and current status are printed, as well as an index that can be used for other commands, for example: -.RS 3 - -.LP .nf \f3 .fl @@ -204,25 +186,21 @@ List the threads that are currently running. For each thread, its name and curre .fl \fP .fi -.RE In this example, the thread index is 4, the thread is an instance of java.lang.Thread, the thread name is "main", and it is currently running, .TP 3 thread Select a thread to be the current thread. Many \f3jdb\fP commands are based on the setting of the current thread. The thread is specified with the thread index described in the \f2threads\fP command above. .TP 3 where -\f2where\fP with no arguments dumps the stack of the current thread. \f2where all\fP dumps the stack of all threads in the current thread group. \f2where\fP \f2threadindex\fP dumps the stack of the specified thread. -.LP -If the current thread is suspended (either through an event such as a breakpoint or through the \f2suspend\fP command), local variables and fields can be displayed with the \f2print\fP and \f2dump\fP commands. The \f2up\fP and \f2down\fP commands select which stack frame is current. +\f2where\fP with no arguments dumps the stack of the current thread. \f2where all\fP dumps the stack of all threads in the current thread group. \f2where\fP \f2threadindex\fP dumps the stack of the specified thread. +.br +.br +If the current thread is suspended (either through an event such as a breakpoint or through the \f2suspend\fP command), local variables and fields can be displayed with the \f2print\fP and \f2dump\fP commands. The \f2up\fP and \f2down\fP commands select which stack frame is current. .RE .LP -.RE .SS Breakpoints -.LP -.RS 3 - .LP .LP Breakpoints can be set in \f3jdb\fP at line numbers or at the first instruction of a method, for example: @@ -249,22 +227,14 @@ If a method is overloaded, you must also specify its argument types so that the .LP The \f2clear\fP command removes breakpoints using a syntax as in "\f2clear\ MyClass:45\fP". Using the \f2clear\fP or command with no argument displays a list of all breakpoints currently set. The \f2cont\fP command continues execution. .LP -.RE .SS Stepping -.LP -.RS 3 - .LP .LP The \f2step\fP commands advances execution to the next line whether it is in the current stack frame or a called method. The \f2next\fP command advances execution to the next line in the current stack frame. .LP -.RE .SS Exceptions -.LP -.RS 3 - .LP .LP When an exception occurs for which there isn't a catch statement anywhere in the throwing thread's call stack, the VM normally prints an exception trace and exits. When running under \f3jdb\fP, however, control returns to \f3jdb\fP at the offending throw. You can then use \f3jdb\fP to diagnose the cause of the exception. @@ -278,11 +248,7 @@ The \f2ignore\fP command negates the effect of a previous \f2catch\fP command. .LP \f2NOTE: The \fP\f2ignore\fP command does not cause the debugged VM to ignore specific exceptions, only the debugger. .LP -.RE -.RE .SH "Command Line Options" -.LP - .LP .LP When you use \f3jdb\fP in place of the Java application launcher on the command line, \f3jdb\fP accepts many of the same options as the java command, including \f2\-D\fP, \f2\-classpath\fP, and \f2\-X<option>\fP. @@ -335,7 +301,7 @@ Other options are supported for alternate mechanisms for connecting the debugger .na \f2documentation\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/jpda/conninv.html on these connection alternatives. +http://download.oracle.com/javase/7/docs/technotes/guides/jpda/conninv.html on these connection alternatives. .LP .SS Options Forwarded to Debuggee Process @@ -357,8 +323,6 @@ Non\-standard target VM option .LP .SH "SEE ALSO" -.LP - .LP .LP javac(1), java(1), javah(1), javap(1), javadoc(1). diff --git a/jdk/src/solaris/doc/sun/man/man1/jhat.1 b/jdk/src/solaris/doc/sun/man/man1/jhat.1 index b7412b5ef3d..62c72f68521 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jhat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jhat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jhat 1 "02 Jun 2010" +.TH jhat 1 "10 May 2011" .LP .SH "Name" jhat \- Java Heap Analysis Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,18 +38,18 @@ jhat \- Java Heap Analysis Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 options Options, if used, should follow immediately after the command name. -.br .TP 3 heap\-dump\-file Java binary heap dump file to be browsed. For a dump file that contains multiple heap dumps, you may specify which dump in the file by appending "#<number> to the file name, i.e. "foo.hprof#3". -.SH "DESCRIPTION" +.RE + +.LP +.SH "DESCRIPTION" .LP .LP The \f3jhat\fP command parses a java heap dump file and launches a webserver. jhat enables you to browse heap dumps using your favorite webbrowser. jhat supports pre\-designed queries (such as 'show all instances of a known class "Foo"') as well as \f3OQL\fP (\f3O\fPbject \f3Q\fPuery \f3L\fPanguage) \- a SQL\-like query language to query heap dumps. Help on OQL is available from the OQL help page shown by jhat. With the default port, OQL help is available at http://localhost:7000/oqlhelp/ @@ -69,7 +67,7 @@ Use jconsole(1) option to obtain a heap dump via .na \f2HotSpotDiagnosticMXBean\fP @ .fi -http://java.sun.com/javase/6/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html at runtime; +http://download.oracle.com/javase/7/docs/jre/api/management/extension/com/sun/management/HotSpotDiagnosticMXBean.html at runtime; .TP 2 o Heap dump will be generated when OutOfMemoryError is thrown by specifying \-XX:+HeapDumpOnOutOfMemoryError VM option; @@ -86,7 +84,8 @@ http://java.sun.com/developer/technicalArticles/Programming/HPROF.html. .LP \f3NOTE:\fP This tool is \f3experimental\fP and may \f3not\fP be available in future versions of the JDK. .LP -.SH "OPTIONS" +.SH "OPTIONS" +.LP .RS 3 .TP 3 \-stack false/true @@ -107,21 +106,22 @@ Specify a baseline heap dump. Objects in both heap dumps with the same object ID \-debug int Set debug level for this tool. 0 means no debug output. Set higher values for more verbose modes. .TP 3 -\-version\ +\-version Report version number and exit. .TP 3 -\-h\ +\-h Output help message and exit. .TP 3 -\-help\ +\-help Output help message and exit. .TP 3 -\-J<flag>\ +\-J<flag> Pass <flag> to the Java virtual machine on which jhat is run. For example, \-J\-Xmx512m to use a maximum heap size of 512MB. .RE .LP -.SH "SEE ALSO" +.SH "SEE ALSO" +.LP .RS 3 .TP 2 o @@ -136,5 +136,6 @@ o .fi http://java.sun.com/developer/technicalArticles/Programming/HPROF.html .RE -.RE + +.LP diff --git a/jdk/src/solaris/doc/sun/man/man1/jinfo.1 b/jdk/src/solaris/doc/sun/man/man1/jinfo.1 index 04133792f13..ea072ffce64 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jinfo.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jinfo.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jinfo 1 "02 Jun 2010" +.TH jinfo 1 "10 May 2011" .LP .SH "Name" jinfo \- Configuration Info .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -42,55 +40,56 @@ jinfo \- Configuration Info .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 option Options are mutually exclusive. Option, if used, should follow immediately after the command name. +.RE + +.LP .RS 3 .TP 3 pid process id for which the configuration info is to be printed. The process must be a Java process. To get a list of Java processes running on a machine, jps(1) may be used. .RE + +.LP .RS 3 .TP 3 executable Java executable from which the core dump was produced. .RE + +.LP .RS 3 .TP 3 core core file for which the configuration info is to be printed. .RE + +.LP .RS 3 .TP 3 remote\-hostname\-or\-IP remote debug server's (see jsadebugd(1)) hostname or IP address. .RE + +.LP .RS 3 .TP 3 server\-id optional unique id, if multiple debug servers are running on the same remote host. .RE -.RE .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jinfo\fP prints Java configuration information for a given Java process or core file or a remote debug server. Configuration information includes Java System properties and Java virtual machine command line flags. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: .br - -.LP -.RS 3 - -.LP jinfo \-J\-d64 \-sysprops pid -.RE +.LP .LP \f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' need to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP .LP @@ -98,8 +97,6 @@ jinfo \-J\-d64 \-sysprops pid \f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 diff --git a/jdk/src/solaris/doc/sun/man/man1/jmap.1 b/jdk/src/solaris/doc/sun/man/man1/jmap.1 index 6e2469e9faa..f906dedc681 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jmap.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jmap.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jmap 1 "02 Jun 2010" +.TH jmap 1 "10 May 2011" .LP .SH "Name" jmap \- Memory Map .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -42,8 +40,6 @@ jmap \- Memory Map .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -73,14 +69,9 @@ optional unique id, if multiple debug servers are running on the same remote hos .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jmap\fP prints shared object memory maps or heap memory details of a given process or core file or a remote debug server. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: -.LP -.RS 3 - .LP .nf \f3 @@ -89,10 +80,11 @@ jmap \-J\-d64 \-heap pid .fl \fP .fi -.RE .LP -\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +.LP +\f3NOTE: This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +.LP .LP \f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP @@ -100,13 +92,11 @@ jmap \-J\-d64 \-heap pid .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 <no option> -When no option is used \f3jmap\fP prints shared object mappings. For each shared object loaded in the target VM, start address, the size of the mapping, and the full path of the shared object file are printed. This is similar to the Solaris \f3pmap\fP utility. +When no option is used jmap prints shared object mappings. For each shared object loaded in the target VM, start address, the size of the mapping, and the full path of the shared object file are printed. This is similar to the Solaris \f3pmap\fP utility. .br .TP 3 \-dump:[live,]format=b,file=<filename> diff --git a/jdk/src/solaris/doc/sun/man/man1/jps.1 b/jdk/src/solaris/doc/sun/man/man1/jps.1 index 94af0960db9..1ec15e124ea 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jps.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jps.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jps 1 "02 Jun 2010" +.TH jps 1 "10 May 2011" .LP .SH "Name" jps \- Java Virtual Machine Process Status Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,8 +38,6 @@ jps \- Java Virtual Machine Process Status Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -54,8 +50,6 @@ The host identifier of the host for which the process report should be generated .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jps\fP tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. The tool is limited to reporting information on JVMs for which it has the access permissions. @@ -76,8 +70,6 @@ The list of JVMs produced by the \f3jps\fP command may be limited by the permiss \f3NOTE:\fP This utility is unsupported and may not be available in future versions of the JDK. It is not currently available on Windows 98 and Windows ME platforms. .LP .SH "OPTIONS" -.LP - .LP .LP The \f3jps\fP command supports a number of options that modify the output of the command. These options are subject to change or removal in the future. @@ -106,9 +98,6 @@ Pass \f2option\fP to the \f3java\fP launcher called by \f3jps\fP. For example, \ .LP .SS HOST IDENTIFIER -.LP -.RS 3 - .LP .LP The host identifier, or \f2hostid\fP is a string that indicates the target system. The syntax of the \f2hostid\fP string largely corresponds to the syntax of a URI: @@ -140,10 +129,7 @@ The treatment of this parameter depends on the implementation. For the optimized .RE .LP -.RE .SH "OUTPUT FORMAT" -.LP - .LP .LP The output of the \f3jps\fP command follows the following pattern: @@ -168,8 +154,6 @@ Where all output tokens are separated by white space. An \f2arg\fP that includes .LP .SH "EXAMPLES" -.LP - .LP .LP This section provides examples of the \f3jps\fP command. diff --git a/jdk/src/solaris/doc/sun/man/man1/jrunscript.1 b/jdk/src/solaris/doc/sun/man/man1/jrunscript.1 index 2fdbb9db5dd..7c6548fa794 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jrunscript.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jrunscript.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2006, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jrunscript 1 "02 Jun 2010" +.TH jrunscript 1 "10 May 2011" .LP .SH "Name" jrunscript \- command line script shell .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -38,8 +36,6 @@ jrunscript \- command line script shell .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -52,8 +48,6 @@ Arguments, if used, should follow immediately after options or command name. .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jrunscript\fP is a command line script shell. jrunscript supports both an interactive (read\-eval\-print) mode and a batch (\-f option) mode of script execution. This is a scripting language independent shell. By default, JavaScript is the language used, but the \-l option can be used to specify a different language. Through Java to scripting language communication, jrunscript supports "exploratory programming" style. @@ -62,8 +56,6 @@ Arguments, if used, should follow immediately after options or command name. \f3NOTE:\fP This tool is \f3experimental\fP and may \f3not\fP be available in future versions of the JDK. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -112,10 +104,8 @@ If [arguments...] are present and if no \f3\-e\fP or \f3\-f\fP option is used, t .LP .SH "EXAMPLES" .LP -\f3Executing inline scripts\fP -.LP -.RS 3 - +.SS +Executing inline scripts .LP .nf \f3 @@ -126,13 +116,10 @@ jrunscript \-e "cat('http://java.sun.com')" .fl \fP .fi -.RE .LP -\f3Use specified language and evaluate given script file\fP -.LP -.RS 3 - +.SS +Use specified language and evaluate given script file .LP .nf \f3 @@ -141,42 +128,42 @@ jrunscript \-l js \-f test.js .fl \fP .fi -.RE .LP -\f3Interactive mode\fP -.LP -.RS 3 - +.SS +Interactive mode .LP .nf \f3 .fl jrunscript .fl -js>print('hello world'); +js> print('Hello World\\n'); .fl -hello world +Hello World .fl -js>34 + 55 +js> 34 + 55 .fl -89 +89.0 .fl -js> thread(function() { print('hello world'); } +js> t = new java.lang.Thread(function() { print('Hello World\\n'); }) .fl -hello world +Thread[Thread\-0,5,main] +.fl +js> t.start() +.fl +js> Hello World +.fl + .fl js> .fl \fP .fi -.RE .LP -\f3Run script file with script arguments\fP -.LP -.RS 3 - +.SS +Run script file with script arguments .LP .nf \f3 @@ -185,13 +172,16 @@ jrunscript test.js arg1 arg2 arg3 .fl \fP .fi -.RE .LP test.js is script file to execute and arg1, arg2 and arg3 are passed to script as script arguments. Script can access these using "arguments" array. .SH "SEE ALSO" .LP .LP -If JavaScript is used, then before evaluating any user defined script, jrunscript initializes certain built\-in functions and objects. These JavaScript built\-ins are documented in jsdocs. +If JavaScript is used, then before evaluating any user defined script, jrunscript initializes certain built\-in functions and objects. These JavaScript built\-ins are documented in +.na +\f2jsdocs\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/tools/share/jsdocs/allclasses\-noframe.html. .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 b/jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 index 8a94b110eb4..3d77b1d4113 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jsadebugd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jsadebugd 1 "02 Jun 2010" +.TH jsadebugd 1 "10 May 2011" .LP .SH "Name" jsadebugd \- Serviceability Agent Debug Daemon .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -40,36 +38,17 @@ jsadebugd \- Serviceability Agent Debug Daemon .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 pid process id of the process to which the debug server should attach. The process must be a Java process. To get a list of Java processes running on a machine, jps(1) may be used. At most one instance of the debug server may be attached to a single process. -.RE - -.LP -.RS 3 .TP 3 executable -.RE - -.LP -.RS 3 -.TP 3 Java executable from which the core dump was produced -.RE - -.LP -.RS 3 .TP 3 core Core file to which the debug server should attach. -.RE - -.LP -.RS 3 .TP 3 server\-id Optional unique id, needed if multiple debug servers are started on the same machine. This ID must be used by remote clients to identify the particular debug server to attach. Within a single machine, this ID must be unique. @@ -77,18 +56,13 @@ Optional unique id, needed if multiple debug servers are started on the same mac .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jsadebugd\fP attaches to a Java process or core file and acts as a debug server. Remote clients such as jstack(1), jmap(1), and jinfo(1) can attach to the server using Java Remote Method Invocation (RMI). Before starting \f2jsadebugd\fP, .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi must be started with: -.LP -.RS 3 - +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi must be started with: .LP .nf \f3 @@ -97,17 +71,16 @@ http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi must be started .fl \fP .fi -.RE .LP .LP where \f2$JAVA_HOME\fP is the JDK installation directory. If rmiregistry was not started, jsadebugd will start an rmiregistry in a standard (1099) port internally. Debug server may be stopped by sending SIGINT (pressing Ctrl\-C) to it. .LP .LP -\f3NOTE \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \fP\f4PATH\fP\f3 environment variable should contain the location of \fP\f4jvm.dll\fP\f3 used by the target process or the location from which the Crash Dump file was produced.\fP +\f3NOTE\fP \- This utility is unsupported and may or may not be available in future versions of the JDK. In Windows Systems where dbgeng.dll is not present, 'Debugging Tools For Windows' needs to be installed to have these tools working. Also, \f2PATH\fP environment variable should contain the location of \f2jvm.dll\fP used by the target process or the location from which the Crash Dump file was produced. .LP .LP -\f3For example, \fP\f4set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP +For example, \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "SEE ALSO" .LP @@ -129,7 +102,7 @@ o .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/jstack.1 b/jdk/src/solaris/doc/sun/man/man1/jstack.1 index 34fdded3baf..e70b10ed5e7 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jstack.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jstack.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstack 1 "02 Jun 2010" +.TH jstack 1 "10 May 2011" .LP .SH "Name" @@ -28,8 +28,6 @@ jstack \- Stack Trace .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -44,8 +42,6 @@ jstack \- Stack Trace .LP .SH "PARAMETERS" -.LP - .LP .LP Options are mutually exclusive. Option, if used, should follow immediately after the command name. See OPTIONS. @@ -77,16 +73,11 @@ optional unique id, if multiple debug servers are running on the same remote hos .LP .SH "DESCRIPTION" -.LP - .LP .LP \f3jstack\fP prints Java stack traces of Java threads for a given Java process or core file or a remote debug server. For each Java frame, the full class name, method name, 'bci' (byte code index) and line number, if available, are printed. With the \-m option, jstack prints both Java and native frames of all threads along with the 'pc' (program counter). For each native frame, the closest native symbol to 'pc', if available, is printed. C++ mangled names are not demangled. To demangle C++ names, the output of this command may be piped to \f3c++filt\fP. If the given process is running on a 64\-bit VM, you may need to specify the \f2\-J\-d64\fP option, e.g.: .br -.LP -.RS 3 - .LP .nf \f3 @@ -95,7 +86,6 @@ jstack \-J\-d64 \-m pid .fl \fP .fi -.RE .LP .LP @@ -105,8 +95,6 @@ jstack \-J\-d64 \-m pid For example, \f2set PATH=<jdk>\\jre\\bin\\client;%PATH%\fP .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -118,7 +106,7 @@ Long listing. Prints additional information about locks such as list of owned ja .na \f2ownable synchronizers\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html. +http://download.oracle.com/javase/7/docs/api/java/util/concurrent/locks/AbstractOwnableSynchronizer.html. .TP 3 \-m prints mixed mode (both Java and native C/C++ frames) stack trace. @@ -153,8 +141,6 @@ jsadebugd(1) .LP .SH "KNOWN BUGS" -.LP - .LP .LP Mixed mode stack trace, the \-m option, does not work with the remote debug server. diff --git a/jdk/src/solaris/doc/sun/man/man1/jstat.1 b/jdk/src/solaris/doc/sun/man/man1/jstat.1 index 1ecee640ac4..d874d440d13 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jstat.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jstat.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstat 1 "02 Jun 2010" +.TH jstat 1 "10 May 2011" .LP .SH "Name" jstat \- Java Virtual Machine Statistics Monitoring Tool .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -38,8 +36,6 @@ jstat \- Java Virtual Machine Statistics Monitoring Tool .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -60,16 +56,14 @@ Virtual machine identifier, a string indicating the target Java virtual machine The syntax of the vmid string largely corresponds to the syntax of a URI. The \f2vmid\fP can vary from a simple integer representing a local JVM to a more complex construction specifying a communications protocol, port number, and other implementation\-specific values. See Virtual Machine Identifier for details. .TP 3 interval[s|ms] -Sampling interval in the specified units, seconds (s) or milliseconds (ms). Default units are milliseconds.\ Must be a positive integer.\ If specified, \f3jstat\fP will produce its output at each interval. +Sampling interval in the specified units, seconds (s) or milliseconds (ms). Default units are milliseconds. Must be a positive integer. If specified, \f3jstat\fP will produce its output at each interval. .TP 3 count -Number of samples to display. Default value is infinity; that is, \f3jstat\fP displays statistics until the target JVM terminates or the \f3jstat\fP command is terminated.\ Must be a positive integer. +Number of samples to display. Default value is infinity; that is, \f3jstat\fP displays statistics until the target JVM terminates or the \f3jstat\fP command is terminated. Must be a positive integer. .RE .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jstat\fP tool displays performance statistics for an instrumented HotSpot Java virtual machine (JVM). The target JVM is identified by its virtual machine identifier, or \f2vmid\fP option described below. @@ -81,9 +75,6 @@ The \f3jstat\fP tool displays performance statistics for an instrumented HotSpot .LP .SS VIRTUAL MACHINE IDENTIFIER -.LP -.RS 3 - .LP .LP The syntax of the \f2vmid\fP string largely corresponds to the syntax of a URI: @@ -115,10 +106,7 @@ The treatment of this parameter depends on implementation. For the optimized loc .RE .LP -.RE .SH "OPTIONS" -.LP - .LP .LP The \f3jstat\fP command supports two types of options, general options and output options. General options cause \f3jstat\fP to display simple usage and version information. Output options determine the content and format of the statistical output. @@ -150,14 +138,11 @@ Display list of statistics options. See the Output Options section below. .SS OUTPUT OPTIONS .LP -.RS 3 - +.LP +If you do not specify a general option, then you can specify output options. Output options determine the content and format of \f3jstat\fP's output, and consist of a single \f2statOption\fP, plus any of the other output options (\-h, \-t, and \-J). The \f2statOption\fP must come first. .LP .LP -If you do not specify a general option, then you can specify output options. Output options determine the content and format of \f3jstat\fP's output, and consist of a single \f2statOption\fP, plus any of the other output options (\-h, \-t, and \-J).\ The \f2statOption\fP must come first. -.LP -.LP -Output is formatted as a table, with columns are separated by spaces. A header row with titles describes the columns.\ Use the \f3\-h\fP option to set the frequency at which the header is displayed.\ Column header names are generally consistent between the different options. In general, if two options provide a column with the same name, then the data source for the two columns are the same. +Output is formatted as a table, with columns are separated by spaces. A header row with titles describes the columns. Use the \f3\-h\fP option to set the frequency at which the header is displayed. Column header names are generally consistent between the different options. In general, if two options provide a column with the same name, then the data source for the two columns are the same. .LP .LP Use the \f3\-t\fP option to display a time stamp column, labeled \f2Timestamp\fP as the first column of output. The \f2Timestamp\fP column contains the elapsed time, in seconds, since startup of the target JVM. The resolution of the time stamp is dependent on various factors and is subject to variation due to delayed thread scheduling on heavily loaded systems. @@ -171,7 +156,7 @@ Use the \f2interval\fP and \f2count\fP parameters to determine how frequently an .RS 3 .TP 3 \-statOption -Determines the statistics information that \f3jstat\fP displays. The following table lists the available options.\ Use the \f3\-options\fP general option to display the list of options for a particular platform installation. +Determines the statistics information that \f3jstat\fP displays. The following table lists the available options. Use the \f3\-options\fP general option to display the list of options for a particular platform installation. .br .br .LP @@ -457,7 +442,7 @@ HotSpot compilation method statistics. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 230 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 215 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -697,12 +682,8 @@ Pass \f2javaOption\fP to the \f3java\fP application launcher. For example, \f3\- .RE .LP -.RE .SS STATOPTIONS AND OUTPUT -.LP -.RS 3 - .LP .LP The following tables summarize the columns that \f3jstat\fP outputs for each \f2statOption\fP. @@ -825,7 +806,7 @@ Time spent performing class load and unload operations. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 280 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 261 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1082,7 +1063,7 @@ Class name and method for the last failed compilation. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 316 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 297 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -1546,7 +1527,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 386 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 367 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2170,7 +2151,7 @@ Number of Young generation GC Events. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 460 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 441 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2550,7 +2531,7 @@ Cause of current Garbage Collection. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 483 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 464 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -2866,7 +2847,7 @@ Young generation garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 537 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 518 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3094,15 +3075,14 @@ Young generation garbage collection time. .rm 80 81 .nr 34 \n(.lu .eo -.am 80 +.am 81 .br .di a+ .35 .ft \n(.f .ll \n(34u*1u/3u -.if \n(.l<\n(80 .ll \n(80u +.if \n(.l<\n(81 .ll \n(81u .in 0 -NGCMN\ \ \ \ \ \ \ \ \ T}~T{ Minimum new generation capacity (KB). .br .di @@ -3262,9 +3242,11 @@ Number of young generation GC events. .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \w\f3Column\fP .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGCMX \ \ \ +.nr 38 \wNGCMN .if \n(80<\n(38 .nr 80 \n(38 -.nr 38 \wNGC \ \ \ +.nr 38 \wNGCMX +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \wNGC .if \n(80<\n(38 .nr 80 \n(38 .nr 38 \wS0CMX .if \n(80<\n(38 .nr 80 \n(38 @@ -3284,8 +3266,6 @@ Number of young generation GC events. .if \n(80<\n(38 .nr 80 \n(38 .80 .rm 80 -.nr 38 \n(a- -.if \n(80<\n(38 .nr 80 \n(38 .nr 81 0 .nr 38 \w\f3Description\fP .if \n(81<\n(38 .nr 81 \n(38 @@ -3293,6 +3273,8 @@ Number of young generation GC events. .if \n(81<\n(38 .nr 81 \n(38 .81 .rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(b- .if \n(81<\n(38 .nr 81 \n(38 .nr 38 \n(c- @@ -3321,7 +3303,7 @@ Number of young generation GC events. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 593 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 572 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -3348,11 +3330,11 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'\h'|\n(41u' +\&\h'|\n(40u'NGCMN\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v -.nr 37 \n(40u +.nr 37 \n(41u .in +\n(37u .a+ .in -\n(37u @@ -3364,7 +3346,7 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGCMX \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGCMX\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3380,7 +3362,7 @@ Number of young generation GC events. .ta \n(80u \n(81u .nr 31 \n(.f .nr 35 1m -\&\h'|\n(40u'NGC \ \ \\h'|\n(41u' +\&\h'|\n(40u'NGC\h'|\n(41u' .mk ## .nr 31 \n(## .sp |\n(##u-1v @@ -3522,7 +3504,7 @@ Number of young generation GC events. .rm i+ .rm j+ .TE -.if \n-(b.=0 .nr c. \n(.c-\n(d.-49 +.if \n-(b.=0 .nr c. \n(.c-\n(d.-47 .LP .SS @@ -3717,7 +3699,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 635 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 614 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4062,7 +4044,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 677 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 656 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4407,7 +4389,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 719 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 698 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -4792,7 +4774,7 @@ Total garbage collection time. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 769 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 748 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -5091,7 +5073,7 @@ Class name and method name identifying the compiled method. Class name uses "/" .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 795 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 774 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -5176,10 +5158,7 @@ Class name and method name identifying the compiled method. Class name uses "/" .if \n-(b.=0 .nr c. \n(.c-\n(d.-19 .LP -.SS - -.LP -.SH "" +.SH "EXAMPLES" .LP .LP This section presents some examples of monitoring a local JVM with a \f2lvmid\fP of 21891. @@ -5355,7 +5334,6 @@ This example attaches to \f2lvmid\fP 40496 on the system named \f2remote.domain\ .LP The \f2lvmid\fP is combined with the name of the remote host to construct a \f2vmid\fP of \f240496@remote.domain\fP. This \f2vmid\fP results in the use of the \f3rmi\fP protocol to communicate to the default \f3jstatd\fP server on the remote host. The \f3jstatd\fP server is located using the \f3rmiregistry\fP on \f2remote.domain\fP that is bound to the default \f3rmiregistry\fP port (port 1099). .LP -.RE .SH "SEE ALSO" .LP .RS 3 diff --git a/jdk/src/solaris/doc/sun/man/man1/jstatd.1 b/jdk/src/solaris/doc/sun/man/man1/jstatd.1 index 79b8b392fd6..fd9b0f7b1e2 100644 --- a/jdk/src/solaris/doc/sun/man/man1/jstatd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/jstatd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,15 +19,13 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH jstatd 1 "02 Jun 2010" +.TH jstatd 1 "10 May 2011" .LP .SH "Name" jstatd \- Virtual Machine jstat Daemon .LP .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -41,8 +39,6 @@ jstatd [ \fP\f4options\fP\f3 ]\fP .LP .SH "PARAMETERS" -.LP - .LP .RS 3 .TP 3 @@ -52,8 +48,6 @@ Command\-line options. The options may be in any order. If there are redundant o .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3jstatd\fP tool is an RMI server application that monitors for the creation and termination of instrumented HotSpot Java virtual machines (JVMs) and provides a interface to allow remote monitoring tools to attach to JVMs running on the local host. @@ -65,8 +59,6 @@ The \f3jstatd\fP server requires the presence of an RMI registry on the local ho \f3NOTE:\fP This utility is unsupported and may or may not be available in future versions of the JDK. It is not currently available on the Windows 98 and Windows ME platforms. .LP .SH "OPTIONS" -.LP - .LP .LP The \f3jstatd\fP command supports the following options: @@ -88,8 +80,6 @@ Pass \f2option\fP to the \f3java\fP launcher called by \f3javac\fP. For example, .LP .SH "SECURITY" -.LP - .LP .LP The \f3jstatd\fP server can only monitor JVMs for which it has the appropriate native access permissions. Therefor the \f3jstatd\fP process must be running with the same user credentials as the target JVMs. Some user credentials, such as the \f2root\fP user in UNIX(TM) based systems, have permission to access the instrumentation exported by any JVM on the system. A \f3jstatd\fP process running with such credentials can monitor any JVM on the system, but introduces additional security concerns. @@ -102,7 +92,7 @@ The \f3jstatd\fP server installs an instance of RMISecurityPolicy if no other se .na \f2Policy File Syntax\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html. .LP .LP The following policy file will allow the \f3jstatd\fP server to run without any security exceptions. This policy is less liberal then granting all permissions to all codebases, but is more liberal than a policy that grants the minimal permissions to run the \f3jstatd\fP server. @@ -144,15 +134,11 @@ jstatd \-J\-Djava.security.policy=jstatd.all.policy\fP For sites with more restrictive security practices, it is possible to use a custom policy file to limit access to specific trusted hosts or networks, though such techniques are subject to IP addreess spoofing attacks. If your security concerns cannot be addressed with a customized policy file, then the safest action is to not run the \f3jstatd\fP server and use the \f3jstat\fP and \f3jps\fP tools locally. .LP .SH "REMOTE INTERFACE" -.LP - .LP .LP The interface exported by the \f3jstatd\fP process is proprietary and is guaranteed to change. Users and developers are discouraged from writing to this interface. .LP .SH "EXAMPLES" -.LP - .LP .LP Here are some examples of starting \f3jstatd\fP. Note that the \f3jstatd\fP scripts automatically start the server in the background. @@ -264,7 +250,7 @@ o .na \f2rmiregistry\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#rmi \- the Java Remote Object Registry +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#rmi \- the Java Remote Object Registry .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/jvisualvm.1 b/jdk/src/solaris/doc/sun/man/man1/jvisualvm.1 new file mode 100644 index 00000000000..eae03edd804 --- /dev/null +++ b/jdk/src/solaris/doc/sun/man/man1/jvisualvm.1 @@ -0,0 +1,104 @@ +." Copyright (c) 2008, 2011, 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. +." +.TH jvisualvm 1 "10 May 2011" + +.LP +.SH "Name" +\f2jvisualvm\fP \- Java Virtual Machine Monitoring, Troubleshooting, and Profiling Tool +.LP +.SH "SYNOPSIS" +.LP +.nf +\f3 +.fl + \fP\f3jvisualvm\fP [ \f2options\fP ] +.fl +.fi + +.LP +.SH "PARAMETERS" +.LP +.LP +Options, if used, should follow immediately after the command name. Options may be in any order. For a discussion of parameters that apply to a specific option, see OPTIONS below. +.LP +.SH "DESCRIPTION" +.LP +.LP +Java VisualVM is an intuitive graphical user interface that provides detailed information about Java technology\-based applications (Java applications) while they are running on a given Java Virtual Machine (JVM(*)). The name Java VisualVM comes from the fact that Java VisualVM provides information about the JVM software \f2visually\fP. +.LP +.LP +Java VisualVM combines several monitoring, troubleshooting, and profiling utilities into a single tool. For example, most of the functionality offered by the standalone tools \f2jmap\fP, \f2jinfo\fP, \f2jstat\fP and \f2jstack\fP have been integrated into Java VisualVM. Other functionalities, such as some of those offered by the JConsole tool, can be added as optional plug\-ins. +.LP +.SH "OPTIONS" +.LP +.LP +The following option is possible when you launch Java VisualVM. +.LP +.RS 3 +.TP 3 +\-J<jvm_option>\ +Pass this \f2<jvm_option>\fP to the JVM software. +.RE + +.LP +.SH "USAGE" +.LP +.LP +Java VisualVM is useful to Java application developers to troubleshoot applications and to monitor and improve the applications' performance. Java VisualVM can allow developers to generate and analyse heap dumps, track down memory leaks, perform and monitor garbage collection, and perform lightweight memory and CPU profiling. Plug\-ins also exist that expand the functionality of Java VisualVM. For example, most of the functionality of the JConsole tool is available via the MBeans Tab and JConsole Plug\-in Wrapper plug\-ins. You can choose from a catalog of standard Java VisualVM plug\-ins by selecting 'Tools' | 'Plugins' in the Java VisualVM menus. +.LP +.LP +Start Java VisualVM with the following command: +.LP +.nf +\f3 +.fl +% jvisualvm \fP\f4<options>\fP\f3 +.fl +\fP +.fi + +.LP +.SH "SEE ALSO" +.LP +.LP +For more details about Java VisualVM see the following pages. +.LP +.RS 3 +.TP 2 +o +.na +\f2Java VisualVM developers' site\fP @ +.fi +http://visualvm.java.net +.TP 2 +o +.na +\f2Java VisualVM in Java SE platform documentation\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/visualvm/index.html +.RE + +.LP +.LP +\f2(* The terms "Java Virtual Machine" and "JVM" mean a Virtual Machine for the Java platform.)\fP +.LP + diff --git a/jdk/src/solaris/doc/sun/man/man1/keytool.1 b/jdk/src/solaris/doc/sun/man/man1/keytool.1 index 1b1cd8b0bc7..13ede598e5a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/keytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/keytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998-2011 keytool tool, 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 @@ -19,20 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH keytool 1 "02 Jun 2010" +.TH keytool 1 "10 May 2011" .LP .SH "Name" keytool \- Key and Certificate Management Tool .LP -.RS 3 - .LP Manages a keystore (database) of cryptographic keys, X.509 certificate chains, and trusted certificates. -.RE -.SH "SYNOPSIS" .LP - +.SH "SYNOPSIS" .LP .nf \f3 @@ -46,8 +42,6 @@ Manages a keystore (database) of cryptographic keys, X.509 certificate chains, a The keytool command interface has changed in Java SE 6. See the Changes Section for a detailed description. Note that previously defined commands are still supported. .LP .SH "DESCRIPTION" -.LP - .LP \f3keytool\fP is a key and certificate management utility. It allows users to administer their own public/private key pairs and associated certificates for use in self\-authentication (where the user authenticates himself/herself to other users/services) or data integrity and authentication services, using digital signatures. It also allows users to cache the public keys (in the form of certificates) of their communicating peers. .LP @@ -57,14 +51,12 @@ A \f2certificate\fP is a digitally signed statement from one entity (person, com \f3keytool\fP also enables users to administer secret keys used in symmetric encryption/decryption (e.g. DES). .LP .LP -\f3keytool\fP stores the keys and certificates in a \f2keystore\fP. +\f3keytool\fP stores the keys and certificates in a \f2keystore\fP. .LP .SH "COMMAND AND OPTION NOTES" .LP - .LP -.LP -The various commands and their options are listed and described below . Note: +The various commands and their options are listed and described below. Note: .LP .RS 3 .TP 2 @@ -114,6 +106,7 @@ The \f2\-help\fP command is the default. Thus, the command line .fl \fP .fi +.LP is equivalent to .nf \f3 @@ -128,10 +121,9 @@ is equivalent to .SS Option Defaults .LP -.RS 3 - .LP -Below are the defaults for various option values. +Below are the defaults for various option values. +.LP .nf \f3 .fl @@ -152,12 +144,16 @@ Below are the defaults for various option values. 2048 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "RSA") .fl 1024 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "DSA") +.fl + 256 (when using \fP\f3\-genkeypair\fP\f3 and \-keyalg is "EC") .fl 56 (when using \fP\f3\-genseckey\fP\f3 and \-keyalg is "DES") .fl 168 (when using \fP\f3\-genseckey\fP\f3 and \-keyalg is "DESede") .fl +.fl + .fl \-validity 90 .fl @@ -169,7 +165,7 @@ Below are the defaults for various option values. .fl \-storetype the value of the "keystore.type" property in the security properties file, .fl - which is returned by the static \fP\f4getDefaultType\fP\f3 method in + which is returned by the static \fP\f4getDefaultType\fP\f3 method in .fl \fP\f4java.security.KeyStore\fP\f3 .fl @@ -180,26 +176,40 @@ Below are the defaults for various option values. .fl \-protected false -.fl - .fl \fP .fi .LP -In generating a public/private key pair, the signature algorithm (\f2\-sigalg\fP option) is derived from the algorithm of the underlying private key: If the underlying private key is of type "DSA", the \f2\-sigalg\fP option defaults to "SHA1withDSA", and if the underlying private key is of type "RSA", \f2\-sigalg\fP defaults to "SHA256withRSA". Please consult the +.LP +In generating a public/private key pair, the signature algorithm (\f2\-sigalg\fP option) is derived from the algorithm of the underlying private key: +.LP +.RS 3 +.TP 2 +o +If the underlying private key is of type "DSA", the \f2\-sigalg\fP option defaults to "SHA1withDSA" +.TP 2 +o +If the underlying private key is of type "RSA", the \f2\-sigalg\fP option defaults to "SHA256withRSA". +.TP 2 +o +If the underlying private key is of type "EC", the \f2\-sigalg\fP option defaults to "SHA256withECDSA". +.RE + +.LP +.LP +Please consult the .na \f2Java Cryptography Architecture API Specification & Reference\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA for a full list of \f2\-keyalg\fP and \f2\-sigalg\fP you can choose from. -.RE +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/CryptoSpec.html#AppA for a full list of \f2\-keyalg\fP and \f2\-sigalg\fP you can choose from. +.LP .SS Common Options .LP -.RS 3 - .LP -The \f2\-v\fP option can appear for all commands except \f2\-help\fP. If it appears, it signifies "verbose" mode; more information will be provided in the output. +The \f2\-v\fP option can appear for all commands except \f2\-help\fP. If it appears, it signifies "verbose" mode; more information will be provided in the output. +.LP .LP There is also a \f2\-J\fP\f2javaoption\fP option that may appear for any command. If it appears, the specified \f2javaoption\fP string is passed through directly to the Java interpreter. This option should not contain any spaces. It is useful for adjusting the execution environment or memory usage. For a list of possible interpreter options, type \f2java \-h\fP or \f2java \-X\fP at the command line. .LP @@ -209,39 +219,59 @@ These options may appear for all commands operating on a keystore: .RS 3 .TP 3 \-storetype storetype -This qualifier specifies the type of keystore to be instantiated. +.LP +This qualifier specifies the type of keystore to be instantiated. .TP 3 \-keystore keystore +.LP The keystore location. .LP If the JKS storetype is used and a keystore file does not yet exist, then certain \f3keytool\fP commands may result in a new keystore file being created. For example, if \f2keytool \-genkeypair\fP is invoked and the \f2\-keystore\fP option is not specified, the default keystore file named \f2.keystore\fP in the user's home directory will be created if it does not already exist. Similarly, if the \f2\-keystore \fP\f2ks_file\fP option is specified but \f2ks_file\fP does not exist, then it will be created .LP Note that the input stream from the \f2\-keystore\fP option is passed to the \f2KeyStore.load\fP method. If \f2NONE\fP is specified as the URL, then a null stream is passed to the \f2KeyStore.load\fP method. \f2NONE\fP should be specified if the \f2KeyStore\fP is not file\-based (for example, if it resides on a hardware token device). .TP 3 -\-storepass storepass +\-storepass[:env|:file] argument +.LP The password which is used to protect the integrity of the keystore. .LP -\f2storepass\fP must be at least 6 characters long. It must be provided to all commands that access the keystore contents. For such commands, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for it. +If the modifier \f2env\fP or \f2file\fP is not specified, then the password has the value \f2argument\fP, which must be at least 6 characters long. Otherwise, the password is retrieved as follows: +.RS 3 +.TP 2 +o +\f2env\fP: Retrieve the password from the environment variable named \f2argument\fP +.TP 2 +o +\f2file\fP: Retrieve the password from the file named \f2argument\fP +.RE +.LP +\f3Note\fP: All other options that require passwords, such as \f2\-keypass\fP, \f2\-srckeypass\fP, \f2\-destkeypass\fP \f2\-srcstorepass\fP, and \f2\-deststorepass\fP, accept the \f2env\fP and \f2file\fP modifiers. (Remember to separate the password option and the modifier with a colon, (\f2:\fP).) +.LP +The password must be provided to all commands that access the keystore contents. For such commands, if a \f2\-storepass\fP option is not provided at the command line, the user is prompted for it. .LP When retrieving information from the keystore, the password is optional; if no password is given, the integrity of the retrieved information cannot be checked and a warning is displayed. .TP 3 \-providerName provider_name -Used to identify a cryptographic service provider's name when listed in the security properties file. +.LP +Used to identify a cryptographic service provider's name when listed in the security properties file. .TP 3 \-providerClass provider_class_name -Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file. +.LP +Used to specify the name of cryptographic service provider's master class file when the service provider is not listed in the security properties file. .TP 3 \-providerArg provider_arg -Used in conjunction with \f2\-providerClass\fP. Represents an optional string input argument for the constructor of \f2provider_class_name\fP. +.LP +Used in conjunction with \f2\-providerClass\fP. Represents an optional string input argument for the constructor of \f2provider_class_name\fP. .TP 3 \-protected +.LP Either \f2true\fP or \f2false\fP. This value should be specified as \f2true\fP if a password must be given via a protected authentication path such as a dedicated PIN reader. .LP Note: Since there are two keystores involved in \f2\-importkeystore\fP command, two options, namely, \f2\-srcprotected\fP and \f2\-destprotected\fP are provided for the source keystore and the destination keystore respectively. .TP 3 \-ext {name{:critical}{=value}} -Denotes an X.509 certificate extension. The option can be used in \f2\-genkeypair\fP and \f2\-gencert\fP to embed extensions into the certificate generated, or in \f2\-certreq\fP to show what extensions are requested in the certificate request. The option can appear multiple times. name can be a supported extension name (see below) or an arbitrary OID number. value, if provided, denotes the parameter for the extension; if omitted, denotes the default value (if defined) of the extension or the extension requires no parameter. The \f2":critical"\fP modifier, if provided, means the extension's isCritical attribute is true; otherwise, false. -.RS 3 +.LP +Denotes an X.509 certificate extension. The option can be used in \-genkeypair and \-gencert to embed extensions into the certificate generated, or in \f2\-certreq\fP to show what extensions are requested in the certificate request. The option can appear multiple times. name can be a supported extension name (see below) or an arbitrary OID number. value, if provided, denotes the parameter for the extension; if omitted, denotes the default value (if defined) of the extension or the extension requires no parameter. The \f2:critical\fP modifier, if provided, means the extension's isCritical attribute is true; otherwise, false. You may use \f2:c\fP in place of \f2:critical\fP. +.RE .LP .LP @@ -478,7 +508,7 @@ same as SubjectInfoAccess. method can be "ocsp","caIssuers" or any OID. .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 289 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 319 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 @@ -657,7 +687,7 @@ same as SubjectInfoAccess. method can be "ocsp","caIssuers" or any OID. For name as OID, value is the HEX dumped DER encoding of the extnValue for the extension excluding the OCTET STRING type and length bytes. Any extra character other than standard HEX numbers (0\-9, a\-f, A\-F) are ignored in the HEX string. Therefore, both \f2"01:02:03:04"\fP and \f2"01020304"\fP are accepted as identical values. If there's no value, the extension has an empty value field then. .LP .LP -A special name \f2"honored"\fP, used in \-gencert only, denotes how the extensions included in the certificate request should be honored. The value for this name is a comma\-seperated list of \f2"all"\fP (all requested extensions are honored), \f2"name{:[critical|non\-critical]}"\fP (the named extension is honored, but using a different isCritical attribute) and \f2"\-name"\fP (used with all, denotes an exception). Requested extensions are not honored by default. +A special name \f2'honored'\fP, used in \f2\-gencert\fP only, denotes how the extensions included in the certificate request should be honored. The value for this name is a comma separated list of \f2"all"\fP (all requested extensions are honored), \f2"name{:[critical|non\-critical]}"\fP (the named extension is honored, but using a different isCritical attribute) and \f2"\-name"\fP (used with all, denotes an exception). Requested extensions are not honored by default. .LP .LP If, besides the \-ext honored option, another named or OID \-ext option is provided, this extension will be added to those already honored. However, if this name (or OID) also appears in the honored value, its value and criticality overrides the one in the request. @@ -668,32 +698,61 @@ The subjectKeyIdentifier extension is always created. For non self\-signed certi .LP \f3Note:\fP Users should be aware that some combinations of extensions (and other certificate fields) may not conform to the Internet standard. See Warning Regarding Certificate Conformance for details. .LP -.RE -.RE -.RE .SH "COMMANDS" -.LP - .LP .SS Creating or Adding Data to the Keystore -.LP -.RS 3 - .LP .RS 3 .TP 3 -\-gencert {\-infile infile} {\-outfile outfile} {\-dname dname} {\-ext ext}* {\-rfc} {\-alias alias} {\-sigalg sigalg} {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] [\-keypass keypass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-gencert {\-rfc} {\-infile infile} {\-outfile outfile} {\-alias alias} {\-sigalg sigalg} {\-dname dname} {\-startdate startdate {\-ext ext}* {\-validity valDays} [\-keypass keypass] {\-keystore keystore} [\-storepass storepass] {\-storetype storetype} {\-providername provider_name} {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP -Generates a certificate as a response to a certificate request file (which can be created by the \f2keytool \-certreq\fP command). The command reads the request from infile (if omitted, from the standard input), signs it using alias's private key, and output the X.509 certificate into outfile (if omitted, to the standard output). If \f2\-rfc\fP is specified, output format is BASE64\-encoded PEM; otherwise, a binary DER is created. +Generates a certificate as a response to a certificate request file (which can be created by the \f2keytool \-certreq\fP command). The command reads the request from \f2infile\fP (if omitted, from the standard input), signs it using alias's private key, and output the X.509 certificate into \f2outfile\fP (if omitted, to the standard output). If \f2\-rfc\fP is specified, output format is BASE64\-encoded PEM; otherwise, a binary DER is created. .LP -\f2sigalg\fP specifies the algorithm that should be used to sign the certificate. valDays tells the number of days for which the certificate should be considered valid. +\f2sigalg\fP specifies the algorithm that should be used to sign the certificate. \f2startdate\fP is the start time/date that the certificate is valid. \f2valDays\fP tells the number of days for which the certificate should be considered valid. .LP If \f2dname\fP is provided, it's used as the subject of the generated certificate. Otherwise, the one from the certificate request is used. .LP -\f2ext\fP shows what X.509 extensions will be embedded in the certificate. Read Common Options for the grammar of \f2\-ext\fP. +\f2ext\fP shows what X.509 extensions will be embedded in the certificate. Read Common Options for the grammar of \f2\-ext\fP. +.LP +The \f2\-gencert\fP command enables you to create certificate chains. The following example creates a certificate, \f2e1\fP, that contains three certificates in its certificate chain. +.LP +The following commands creates four key pairs named \f2ca\fP, \f2ca1\fP, \f2ca2\fP, and \f2e1\fP: +.nf +\f3 +.fl +keytool \-alias ca \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca1 \-dname CN=CA \-genkeypair +.fl +keytool \-alias ca2 \-dname CN=CA \-genkeypair +.fl +keytool \-alias e1 \-dname CN=E1 \-genkeypair +.fl +\fP +.fi +.LP +The following two commands create a chain of signed certificates; \f2ca\fP signs ca1 and \f2ca1 signs ca2\fP, all of which are self\-issued: +.nf +\f3 +.fl +keytool \-alias ca1 \-certreq | keytool \-alias ca \-gencert \-ext san=dns:ca1 | keytool \-alias ca1 \-importcert +.fl +keytool \-alias ca2 \-certreq | $KT \-alias ca1 \-gencert \-ext san=dns:ca2 | $KT \-alias ca2 \-importcert +.fl +\fP +.fi +.LP +The following command creates the certificate \f2e1\fP and stores it in the file \f2e1.cert\fP, which is signed by \f2ca2\fP. As a result, \f2e1\fP should contain \f2ca\fP, \f2ca1\fP, and \f2ca2\fP in its certificate chain: +.nf +\f3 +.fl +keytool \-alias e1 \-certreq | keytool \-alias ca2 \-gencert > e1.cert +.fl +\fP +.fi .TP 3 -\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} +\-genkeypair {\-alias alias} {\-keyalg keyalg} {\-keysize keysize} {\-sigalg sigalg} [\-dname dname] [\-keypass keypass] {\-startdate value} {\-ext ext}* {\-validity valDays} {\-storetype storetype} {\-keystore keystore} [\-storepass storepass] {\-providerClass provider_class_name {\-providerArg provider_arg}} {\-v} {\-protected} {\-Jjavaoption} .LP Generates a key pair (a public key and associated private key). Wraps the public key into an X.509 v3 self\-signed certificate, which is stored as a single\-element certificate chain. This certificate chain and the private key are stored in a new keystore entry identified by \f2alias\fP. .LP @@ -704,30 +763,18 @@ Generates a key pair (a public key and associated private key). Wraps the public \f2keypass\fP is a password used to protect the private key of the generated key pair. If no password is provided, the user is prompted for it. If you press RETURN at the prompt, the key password is set to the same password as that used for the keystore. \f2keypass\fP must be at least 6 characters long. .LP \f2startdate\fP specifies the issue time of the certificate, also known as the "Not Before" value of the X.509 certificate's Validity field. -.RS 3 - -.LP -.LP -The option value can be set in one of these two forms: .LP +The option value can be set in one of these two forms: .RS 3 .TP 3 1. -.LP -([+\-]\f2nnn\fP[ymdHMS])+ +([+\-]\f2nnn\fP[ymdHMS])+ .TP 3 2. -.LP -[yyyy/mm/dd] [HH:MM:SS] +[yyyy/mm/dd] [HH:MM:SS] .RE - -.LP -.LP -With the first form, the issue time is shifted by the specified value from the current time. The value is a concatenation of a sequence of sub values. Inside each sub value, the plus sign ("+") means shifting forward, and the minus sign ("\-") means shifting backward. The time to be shifted is \f2nnn\fP units of years, months, days, hours, minutes, or seconds (denoted by a single character of "y", "m", "d", "H", "M", or "S" respectively). The exact value of the issue time is calculated using the \f2java.util.GregorianCalendar.add(int field, int amount)\fP method on each sub value, from left to right. For example, by specifying \f2"\-startdate \-1y+1m\-1d"\fP, the issue time will be: -.LP -.RS 3 - .LP +With the first form, the issue time is shifted by the specified value from the current time. The value is a concatenation of a sequence of sub values. Inside each sub value, the plus sign ("+") means shifting forward, and the minus sign ("\-") means shifting backward. The time to be shifted is \f2nnn\fP units of years, months, days, hours, minutes, or seconds (denoted by a single character of "y", "m", "d", "H", "M", or "S" respectively). The exact value of the issue time is calculated using the \f2java.util.GregorianCalendar.add(int field, int amount)\fP method on each sub value, from left to right. For example, by specifying \f2"\-startdate \-1y+1m\-1d"\fP, the issue time will be: .nf \f3 .fl @@ -743,16 +790,10 @@ With the first form, the issue time is shifted by the specified value from the c .fl \fP .fi -.RE - .LP +With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local time zone). The user may provide only one part, which means the other part is the same as the current date (or time). User must provide the exact number of digits as shown in the format definition (padding with 0 if shorter). When both the date and time are provided, there is one (and only one) space character between the two parts. The hour should always be provided in 24 hour format. .LP -With the second form, the user sets the exact issue time in two parts, year/month/day and hour:minute:second (using the local timezone). The user may provide only one part, which means the other part is the same as the current date (or time). User must provide the exact number of digits as shown in the format definition (padding with 0 if shorter). When both the date and time are provided, there is one (and only one) space character between the two parts. The hour should always be provided in 24 hour format. -.LP -.LP -When the option is not provided, the start date is the current time. The option can be provided at most once. -.LP -.RE +When the option is not provided, the start date is the current time. The option can be provided at most once. .LP \f2valDays\fP specifies the number of days (starting at the date specified by \f2\-startdate\fP, or the current date if \f2\-startdate\fP is not specified) for which the certificate should be considered valid. .LP @@ -790,25 +831,17 @@ Which type of import is intended is indicated by the value of the \f2\-alias\fP \f3If the alias points to a key entry\fP, then \f3keytool\fP assumes you are importing a certificate reply. .RE \f3Importing a New Trusted Certificate\fP -.RS 3 .LP -Before adding the certificate to the keystore, \f3keytool\fP tries to verify it by attempting to construct a chain of trust from that certificate to a self\-signed certificate (belonging to a root CA), using trusted certificates that are already available in the keystore. +Before adding the certificate to the keystore, \f3keytool\fP tries to verify it by attempting to construct a chain of trust from that certificate to a self\-signed certificate (belonging to a root CA), using trusted certificates that are already available in the keystore. .LP +If the \f2\-trustcacerts\fP option has been specified, additional certificates are considered for the chain of trust, namely the certificates in a file named "cacerts". .LP -If the \f2\-trustcacerts\fP option has been specified, additional certificates are considered for the chain of trust, namely the certificates in a file named "cacerts". -.LP -.LP -If \f3keytool\fP fails to establish a trust path from the certificate to be imported up to a self\-signed certificate (either from the keystore or the "cacerts" file), the certificate information is printed out, and the user is prompted to verify it, e.g., by comparing the displayed certificate fingerprints with the fingerprints obtained from some other (trusted) source of information, which might be the certificate owner himself/herself. Be very careful to ensure the certificate is valid prior to importing it as a "trusted" certificate! \-\- see WARNING Regarding Importing Trusted Certificates. The user then has the option of aborting the import operation. If the \f2\-noprompt\fP option is given, however, there will be no interaction with the user. -.LP -.RE +If \f3keytool\fP fails to establish a trust path from the certificate to be imported up to a self\-signed certificate (either from the keystore or the "cacerts" file), the certificate information is printed out, and the user is prompted to verify it, e.g., by comparing the displayed certificate fingerprints with the fingerprints obtained from some other (trusted) source of information, which might be the certificate owner himself/herself. Be very careful to ensure the certificate is valid prior to importing it as a "trusted" certificate! \-\- see WARNING Regarding Importing Trusted Certificates. The user then has the option of aborting the import operation. If the \f2\-noprompt\fP option is given, however, there will be no interaction with the user. \f3Importing a Certificate Reply\fP -.RS 3 .LP -When importing a certificate reply, the certificate reply is validated using trusted certificates from the keystore, and optionally using the certificates configured in the "cacerts" keystore file (if the \f2\-trustcacerts\fP option was specified). -.LP -.LP -The methods of determining whether the certificate reply is trusted are described in the following: +When importing a certificate reply, the certificate reply is validated using trusted certificates from the keystore, and optionally using the certificates configured in the "cacerts" keystore file (if the \f2\-trustcacerts\fP option was specified). .LP +The methods of determining whether the certificate reply is trusted are described in the following: .RS 3 .TP 2 o @@ -817,12 +850,8 @@ o o \f3If the reply is a PKCS#7 formatted certificate chain or a sequence of X.509 certificates\fP, the chain is ordered with the user certificate first followed by zero or more CA certificates. If the chain ends with a self\-signed root CA certificate and \f2\-trustcacerts\fP option was specified, \f3keytool\fP will attempt to match it with any of the trusted certificates in the keystore or the "cacerts" keystore file. If the chain does not end with a self\-signed root CA certificate and the \f2\-trustcacerts\fP option was specified, \f3keytool\fP will try to find one from the trusted certificates in the keystore or the "cacerts" keystore file and add it to the end of the chain. If the certificate is not found and \f2\-noprompt\fP option is not specified, the information of the last certificate in the chain is printed out, and the user is prompted to verify it. .RE - .LP -.LP -If the public key in the certificate reply matches the user's public key already stored with under \f2alias\fP, the old certificate chain is replaced with the new certificate chain in the reply. The old chain can only be replaced if a valid \f2keypass\fP, the password used to protect the private key of the entry, is supplied. If no password is provided, and the private key password is different from the keystore password, the user is prompted for it. -.LP -.RE +If the public key in the certificate reply matches the user's public key already stored with under \f2alias\fP, the old certificate chain is replaced with the new certificate chain in the reply. The old chain can only be replaced if a valid \f2keypass\fP, the password used to protect the private key of the entry, is supplied. If no password is provided, and the private key password is different from the keystore password, the user is prompted for it. .LP This command was named \f2\-import\fP in previous releases. This old name is still supported in this release and will be supported in future releases, but for clarify the new name, \f2\-importcert\fP, is preferred going forward. .TP 3 @@ -842,12 +871,10 @@ Note that if \f2\-noprompt\fP is provided, the user will not be prompted for a n .LP Prints the content of a PKCS #10 format certificate request, which can be generated by the keytool \-certreq command. The command reads the request from file; if omitted, from the standard input. .RE -.RE + +.LP .SS Exporting Data -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -879,12 +906,8 @@ This command was named \f2\-export\fP in previous releases. This old name is sti .RE .LP -.RE .SS Displaying Data -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -896,25 +919,34 @@ This command by default prints the SHA1 fingerprint of a certificate. If the \f2 .LP You cannot specify both \f2\-v\fP and \f2\-rfc\fP. .TP 3 -\-printcert {\-file cert_file | \-sslserver host[:port]} {\-rfc} {\-v} {\-Jjavaoption} +\-printcert {\-file cert_file | \-sslserver host[:port]} {\-jarfile JAR_file {\-rfc} {\-v} {\-Jjavaoption} .LP +Reads the certificate from the file \f2cert_file\fP, the SSL server located at \f2host:port\fP, or the signed JAR file \f2JAR_file\fP (with the option \f2\-jarfile\fP and prints its contents in a human\-readable format. When no port is specified, the standard HTTPS port 443 is assumed. Note that \f2\-sslserver\fP and \f2\-file\fP options cannot be provided at the same time. Otherwise, an error is reported. If neither option is given, the certificate is read from stdin. .LP If \f2\-rfc\fP is specified, keytool prints the certificate in PEM mode as defined by the Internet RFC 1421 standard. .LP If the certificate is read from a file or stdin, it may be either binary encoded or in printable encoding format, as defined by the Internet RFC 1421 standard .LP -If the SSL server is behind a firewall, \f2\-J\-Dhttps.proxyHost=proxyhost\fP and \f2\-J\-Dhttps.proxyPort=proxyport\fP can be specified on the command line for proxy tunneling. See the JSSE Reference Guide for more information. +If the SSL server is behind a firewall, \f2\-J\-Dhttps.proxyHost=proxyhost\fP and \f2\-J\-Dhttps.proxyPort=proxyport\fP can be specified on the command line for proxy tunneling. See the +.na +\f2JSSE Reference Guide\fP @ +.fi +http://download.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html for more information. +.LP +\f3Note\fP: This option can be used independently of a keystore. +.TP 3 +\-printcrl \-file crl_ {\-v} +.LP +Reads the certificate revocation list (CRL) from the file \f2crl_file\fP. +.LP +A Certificate Revocation List (CRL) is a list of digital certificates which have been revoked by the Certificate Authority (CA) that issued them. The CA generates \f2crl_file\fP. .LP \f3Note\fP: This option can be used independently of a keystore. .RE .LP -.RE .SS Managing the Keystore -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -940,34 +972,33 @@ Move an existing keystore entry from the specified \f2alias\fP to a new alias, \ .RE .LP -.RE .SS Getting Help -.LP -.RS 3 - .LP .RS 3 .TP 3 \-help .LP -Lists the basic commands and their options. +Lists the basic commands and their options. +.LP +For more information about a specific command, enter the following, where \f2command_name\fP is the name of the command: +.nf +\f3 +.fl + keytool \-\fP\f4command_name\fP\f3 \-help +.fl +\fP +.fi .RE .LP -.RE .SH "EXAMPLES" -.LP - .LP .LP Suppose you want to create a keystore for managing your public/private key pair and certificates from entities you trust. .LP .SS Generating Your Key Pair -.LP -.RS 3 - .LP .LP The first thing you need to do is create a keystore and generate the key pair. You could use a command such as the following: @@ -975,11 +1006,11 @@ The first thing you need to do is create a keystore and generate the key pair. Y .nf \f3 .fl - keytool \-genkeypair \-dname "cn=Mark Jones, ou=JavaSoft, o=Sun, c=US" + keytool \-genkeypair \-dname "cn=Mark Jones, ou=Java, o=Oracle, c=US" .fl - \-alias business \-keypass kpi135 \-keystore /working/mykeystore + \-alias business \-keypass \fP\f4<new password for private key>\fP\f3 \-keystore /working/mykeystore .fl - \-storepass ab987c \-validity 180 + \-storepass \fP\f4<new password for keystore>\fP\f3 \-validity 180 .fl \fP .fi @@ -989,10 +1020,10 @@ The first thing you need to do is create a keystore and generate the key pair. Y (Please note: This must be typed as a single line. Multiple lines are used in the examples just for legibility purposes.) .LP .LP -This command creates the keystore named "mykeystore" in the "working" directory (assuming it doesn't already exist), and assigns it the password "ab987c". It generates a public/private key pair for the entity whose "distinguished name" has a common name of "Mark Jones", organizational unit of "JavaSoft", organization of "Sun" and two\-letter country code of "US". It uses the default "DSA" key generation algorithm to create the keys, both 1024 bits long. +This command creates the keystore named "mykeystore" in the "working" directory (assuming it doesn't already exist), and assigns it the password specified by \f2<new password for keystore>\fP. It generates a public/private key pair for the entity whose "distinguished name" has a common name of "Mark Jones", organizational unit of "Java", organization of "Oracle" and two\-letter country code of "US". It uses the default "DSA" key generation algorithm to create the keys, both 1024 bits long. .LP .LP -It creates a self\-signed certificate (using the default "SHA1withDSA" signature algorithm) that includes the public key and the distinguished name information. This certificate will be valid for 180 days, and is associated with the private key in a keystore entry referred to by the alias "business". The private key is assigned the password "kpi135". +It creates a self\-signed certificate (using the default "SHA1withDSA" signature algorithm) that includes the public key and the distinguished name information. This certificate will be valid for 180 days, and is associated with the private key in a keystore entry referred to by the alias "business". The private key is assigned the password specified by \f2<new password for private key>\fP. .LP .LP The command could be significantly shorter if option defaults were accepted. As a matter of fact, no options are required; defaults are used for unspecified options that have default values, and you are prompted for any required values. Thus, you could simply have the following: @@ -1006,16 +1037,14 @@ The command could be significantly shorter if option defaults were accepted. As .fi .LP -In this case, a keystore entry with alias "mykey" is created, with a newly\-generated key pair and a certificate that is valid for 90 days. This entry is placed in the keystore named ".keystore" in your home directory. (The keystore is created if it doesn't already exist.) You will be prompted for the distinguished name information, the keystore password, and the private key password. .LP -The rest of the examples assume you executed the \f2\-genkeypair\fP command without options specified, and that you responded to the prompts with values equal to those given in the first \f2\-genkeypair\fP command, above (a private key password of "kpi135", etc.) +In this case, a keystore entry with alias "mykey" is created, with a newly\-generated key pair and a certificate that is valid for 90 days. This entry is placed in the keystore named ".keystore" in your home directory. (The keystore is created if it doesn't already exist.) You will be prompted for the distinguished name information, the keystore password, and the private key password. +.LP +.LP +The rest of the examples assume you executed the \f2\-genkeypair\fP command without options specified, and that you responded to the prompts with values equal to those given in the first \f2\-genkeypair\fP command, above (for example, a distinguished name of "cn=Mark Jones, ou=Java, o=Oracle, c=US"). .LP -.RE .SS Requesting a Signed Certificate from a Certification Authority -.LP -.RS 3 - .LP .LP So far all we've got is a self\-signed certificate. A certificate is more likely to be trusted by others if it is signed by a Certification Authority (CA). To get such a signature, you first generate a Certificate Signing Request (CSR), via the following: @@ -1028,14 +1057,12 @@ So far all we've got is a self\-signed certificate. A certificate is more likely \fP .fi +.LP .LP This creates a CSR (for the entity identified by the default alias "mykey") and puts the request in the file named "MarkJ.csr". Submit this file to a CA, such as VeriSign, Inc. The CA will authenticate you, the requestor (usually off\-line), and then will return a certificate, signed by them, authenticating your public key. (In some cases, they will actually return a chain of certificates, each one authenticating the public key of the signer of the previous certificate in the chain.) -.RE +.LP .SS Importing a Certificate for the CA -.LP -.RS 3 - .LP .LP You need to replace your self\-signed certificate with a certificate chain, where each certificate in the chain authenticates the public key of the signer of the previous certificate in the chain, up to a "root" CA. @@ -1054,7 +1081,7 @@ If the certificate reply is a single certificate, you need a certificate for the .LP .LP -The "cacerts" keystore file ships with five VeriSign root CA certificates, so you probably won't need to import a VeriSign certificate as a trusted certificate in your keystore. But if you request a signed certificate from a different CA, and a certificate authenticating that CA's public key hasn't been added to "cacerts", you will need to import a certificate from the CA as a "trusted certificate". +The "cacerts" keystore file ships with several VeriSign root CA certificates, so you probably won't need to import a VeriSign certificate as a trusted certificate in your keystore. But if you request a signed certificate from a different CA, and a certificate authenticating that CA's public key hasn't been added to "cacerts", you will need to import a certificate from the CA as a "trusted certificate". .LP .LP A certificate from a CA is usually either self\-signed, or signed by another CA (in which case you also need a certificate authenticating that CA's public key). Suppose company ABC, Inc., is a CA, and you obtain a file named "ABCCA.cer" that is purportedly a self\-signed certificate from ABC, authenticating that CA's public key. @@ -1073,14 +1100,12 @@ If you trust that the certificate is valid, then you can add it to your keystore \fP .fi +.LP .LP This creates a "trusted certificate" entry in the keystore, with the data from the file "ABCCA.cer", and assigns the alias "abc" to the entry. -.RE +.LP .SS Importing the Certificate Reply from the CA -.LP -.RS 3 - .LP .LP Once you've imported a certificate authenticating the public key of the CA you submitted your certificate signing request to (or there's already such a certificate in the "cacerts" file), you can import the certificate reply and thereby replace your self\-signed certificate with a certificate chain. This chain is the one returned by the CA in response to your request (if the CA reply is a chain), or one constructed (if the CA reply is a single certificate) using the certificate reply and trusted certificates that are already available in the keystore where you import the reply or in the "cacerts" keystore file. @@ -1095,16 +1120,14 @@ For example, suppose you sent your certificate signing request to VeriSign. You .fl \fP .fi -.RE .LP .SS Exporting a Certificate Authenticating Your Public Key .LP -.RS 3 - .LP -Suppose you have used the jarsigner(1) tool to sign a Java ARchive (JAR) file. Clients that want to use the file will want to authenticate your signature. +Suppose you have used the jarsigner(1) tool to sign a Java ARchive (JAR) file. Clients that want to use the file will want to authenticate your signature. +.LP .LP One way they can do this is by first importing your public key certificate into their keystore as a "trusted" entry. You can export the certificate and supply it to your clients. As an example, you can copy your certificate to a file named \f2MJ.cer\fP via the following, assuming the entry is aliased by "mykey": .LP @@ -1116,14 +1139,12 @@ One way they can do this is by first importing your public key certificate into \fP .fi +.LP .LP Given that certificate, and the signed JAR file, a client can use the \f3jarsigner\fP tool to authenticate your signature. -.RE +.LP .SS Importing Keystore -.LP -.RS 3 - .LP .LP The command "importkeystore" is used to import an entire keystore into another keystore, which means all entries from the source keystore, including keys and certificates, are all imported to the destination keystore within a single command. You can use this command to import entries from a different type of keystore. During the import, all new entries in the destination keystore will have the same alias names and protection passwords (for secret keys and private keys). If \f3keytool\fP has difficulties recover the private keys or secret keys from the source keystore, it will prompt you for a password. If it detects alias duplication, it will ask you for a new one, you can specify a new alias or simply allow \f3keytool\fP to overwrite the existing one. @@ -1134,128 +1155,108 @@ For example, to import entries from a normal JKS type keystore key.jks into a PK .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<source keystore password>\fP\f3 \-deststorepass \fP\f4<destination keystore password>\fP\f3 .fl \fP .fi .LP .LP -The importkeystore command can also be used to import a single entry from a source keystore to a destination keystore. In this case, besides the options you see in the above example, you need to specify the alias you want to import. With the srcalias option given, you can also specify the desination alias name in the command line, as well as protection password for a secret/private key and the destination protection password you want. In this way, you can issue a \f3keytool\fP command that will never ask you a question. This makes it very convenient to include a \f3keytool\fP command into a script file, like this: +The importkeystore command can also be used to import a single entry from a source keystore to a destination keystore. In this case, besides the options you see in the above example, you need to specify the alias you want to import. With the srcalias option given, you can also specify the destination alias name in the command line, as well as protection password for a secret/private key and the destination protection password you want. The following command demonstrates this: .LP .nf \f3 .fl -keytool \-importkeystore + keytool \-importkeystore .fl \-srckeystore key.jks \-destkeystore NONE .fl \-srcstoretype JKS \-deststoretype PKCS11 .fl - \-srcstorepass changeit \-deststorepass topsecret + \-srcstorepass \fP\f4<source keystore password>\fP\f3 \-deststorepass \fP\f4<destination keystore password>\fP\f3 .fl \-srcalias myprivatekey \-destalias myoldprivatekey .fl - \-srckeypass oldkeypass \-destkeypass mynewkeypass + \-srckeypass \fP\f4<source entry password>\fP\f3 \-destkeypass \fP\f4<destination entry password>\fP\f3 .fl \-noprompt .fl \fP .fi -.RE .LP .SS -Generating Certificates for a typical SSL Server -.LP -.RS 3 - +Generating Certificates for a Typical SSL Server .LP .LP -Keytool commands to generate keypairs and certificates for three entities, namely, Root CA (root), Intermadiate CA (ca), and SSL server (server) are as follows: +The following are keytool commands to generate keypairs and certificates for three entities, namely, Root CA (root), Intermediate CA (ca), and SSL server (server). Ensure that you store all the certificates in the same keystore. In these examples, it is recommended that you specify RSA as the key algorithm. .LP .nf \f3 .fl -keytool \-keystore root.jks \-genkeypair \-alias root \-ext bc:c +keytool \-genkeypair \-keystore root.jks \-alias root \-ext bc:c .fl -keytool \-keystore ca.jks \-alias ca +keytool \-genkeypair \-keystore ca.jks \-alias ca \-ext bc:c .fl -keytool \-keystore server.jks \-alias server +keytool \-genkeypair \-keystore server.jks \-alias server .fl - + .fl -keytool \-keystore root.jks \-alias root \-exportcert > root.pem +keytool \-keystore root.jks \-alias root \-exportcert \-rfc > root.pem .fl - + .fl -keytool \-keystore ca.jks \-certreq \-alias ca | keytool \-keystore root.jks \-gencert \-alias root \-ext BC=0 > ca.pem +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-certreq \-alias ca | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore root.jks \-gencert \-alias root \-ext BC=0 \-rfc > ca.pem .fl keytool \-keystore ca.jks \-importcert \-alias ca \-file ca.pem .fl - + .fl -keytool \-keystore server.jks \-certreq \-alias server | keytool \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE >server.pem +keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore server.jks \-certreq \-alias server | keytool \-storepass \fP\f4<storepass>\fP\f3 \-keystore ca.jks \-gencert \-alias ca \-ext ku:c=dig,kE \-rfc > server.pem .fl cat root.pem ca.pem server.pem | keytool \-keystore server.jks \-importcert \-alias server .fl \fP .fi -.RE .LP .SH "TERMINOLOGY and WARNINGS" -.LP - .LP .SS KeyStore .LP -.RS 3 - .LP A keystore is a storage facility for cryptographic keys and certificates. -.RE +.LP .RS 3 .TP 2 o -.TP 2 -o \f3KeyStore Entries\fP -.RS 3 - .LP Keystores may have different types of entries. The two most applicable entry types for \f3keytool\fP include: .RS 3 .TP 3 1. -\f3key entries\fP \- each holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access. Typically, a key stored in this type of entry is a secret key, or a private key accompanied by the certificate "chain" for the corresponding public key. The \f3keytool\fP can handle both types od entry, while \f3jarsigner\fP tool only handle the latter type of entry, that is private keys and their associated certificate chains. +\f3key entries\fP \- each holds very sensitive cryptographic key information, which is stored in a protected format to prevent unauthorized access. Typically, a key stored in this type of entry is a secret key, or a private key accompanied by the certificate "chain" for the corresponding public key. The \f3keytool\fP can handle both types of entries, while the \f3jarsigner\fP tool only handle the latter type of entry, that is private keys and their associated certificate chains. .TP 3 2. \f3trusted certificate entries\fP \- each contains a single public key certificate belonging to another party. It is called a "trusted certificate" because the keystore owner trusts that the public key in the certificate indeed belongs to the identity identified by the "subject" (owner) of the certificate. The issuer of the certificate vouches for this, by signing the certificate. .RE - -.LP -.RE .TP 2 o \f3KeyStore Aliases\fP -.RS 3 .LP -All keystore entries (key and trusted certificate entries) are accessed via unique \f2aliases\fP. +All keystore entries (key and trusted certificate entries) are accessed via unique \f2aliases\fP. .LP +An alias is specified when you add an entity to the keystore using the \-genseckey command to generate a secret key, \-genkeypair command to generate a key pair (public and private key) or the \-importcert command to add a certificate or certificate chain to the list of trusted certificates. Subsequent \f3keytool\fP commands must use this same alias to refer to the entity. .LP -An alias is specified when you add an entity to the keystore using the \-genseckey command to generate a secret key, \-genkeypair command to generate a key pair (public and private key) or the \-importcert command to add a certificate or certificate chain to the list of trusted certificates. Subsequent \f3keytool\fP commands must use this same alias to refer to the entity. -.LP -.LP -For example, suppose you use the alias \f2duke\fP to generate a new public/private key pair and wrap the public key into a self\-signed certificate (see Certificate Chains) via the following command: -.LP +For example, suppose you use the alias \f2duke\fP to generate a new public/private key pair and wrap the public key into a self\-signed certificate (see Certificate Chains) via the following command: .nf \f3 .fl @@ -1263,9 +1264,8 @@ For example, suppose you use the alias \f2duke\fP to generate a new public/priva .fl \fP .fi - .LP -This specifies an inital password of "dukekeypasswd" required by subsequent commands to access the private key assocated with the alias \f2duke\fP. If you later want to change duke's private key password, you use a command like the following: +This specifies an initial password of "dukekeypasswd" required by subsequent commands to access the private key associated with the alias \f2duke\fP. If you later want to change duke's private key password, you use a command like the following: .nf \f3 .fl @@ -1273,49 +1273,37 @@ This specifies an inital password of "dukekeypasswd" required by subsequent comm .fl \fP .fi - .LP This changes the password from "dukekeypasswd" to "newpass". .LP -Please note: A password should not actually be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system. If you don't specify a required password option on a command line, you will be prompted for it. -.LP -.RE +Please note: A password should not actually be specified on a command line or in a script unless it is for testing purposes, or you are on a secure system. If you don't specify a required password option on a command line, you will be prompted for it. .TP 2 o \f3KeyStore Implementation\fP -.RS 3 +.LP The \f2KeyStore\fP class provided in the \f2java.security\fP package supplies well\-defined interfaces to access and modify the information in a keystore. It is possible for there to be multiple different concrete implementations, where each implementation is that for a particular \f2type\fP of keystore. .LP -Currently, two command\-line tools (\f3keytool\fP and \f3jarsigner\fP) and a GUI\-based tool named \f3Policy Tool\fP make use of keystore implementations. Since \f2KeyStore\fP is publicly available, users can write additional security applications that use it. -.LP -.LP -There is a built\-in default implementation, provided by Sun Microsystems. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password. +Currently, two command\-line tools (\f3keytool\fP and \f3jarsigner\fP) and a GUI\-based tool named \f3Policy Tool\fP make use of keystore implementations. Since \f2KeyStore\fP is publicly available, users can write additional security applications that use it. .LP +There is a built\-in default implementation, provided by Oracle. It implements the keystore as a file, utilizing a proprietary keystore type (format) named "JKS". It protects each private key with its individual password, and also protects the integrity of the entire keystore with a (possibly different) password. .LP Keystore implementations are provider\-based. More specifically, the application interfaces supplied by \f2KeyStore\fP are implemented in terms of a "Service Provider Interface" (SPI). That is, there is a corresponding abstract \f2KeystoreSpi\fP class, also in the \f2java.security\fP package, which defines the Service Provider Interface methods that "providers" must implement. (The term "provider" refers to a package or a set of packages that supply a concrete implementation of a subset of services that can be accessed by the Java Security API.) Thus, to provide a keystore implementation, clients must implement a "provider" and supply a KeystoreSpi subclass implementation, as described in .na \f2How to Implement a Provider for the Java Cryptography Architecture\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/crypto/HowToImplAProvider.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/crypto/HowToImplAProvider.html. .LP +Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. .LP -Applications can choose different \f2types\fP of keystore implementations from different providers, using the "getInstance" factory method supplied in the \f2KeyStore\fP class. A keystore type defines the storage and data format of the keystore information, and the algorithms used to protect private/secret keys in the keystore and the integrity of the keystore itself. Keystore implementations of different types are not compatible. +\f3keytool\fP works on any file\-based keystore implementation. (It treats the keystore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. .LP +For \f3keytool\fP and \f3jarsigner\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Keystore" menu. .LP -\f3keytool\fP works on any file\-based keystore implementation. (It treats the keytore location that is passed to it at the command line as a filename and converts it to a FileInputStream, from which it loads the keystore information.) The \f3jarsigner\fP and \f3policytool\fP tools, on the other hand, can read a keystore from any location that can be specified using a URL. +If you don't explicitly specify a keystore type, the tools choose a keystore implementation based simply on the value of the \f2keystore.type\fP property specified in the security properties file. The security properties file is called \f2java.security\fP, and it resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). .LP +Each tool gets the \f2keystore.type\fP value and then examines all the currently\-installed providers until it finds one that implements keystores of that type. It then uses the keystore implementation from that provider. .LP -For \f3keytool\fP and \f3jarsigner\fP, you can specify a keystore type at the command line, via the \f2\-storetype\fP option. For \f3Policy Tool\fP, you can specify a keystore type via the "Keystore" menu. -.LP -.LP -If you don't explicitly specify a keystore type, the tools choose a keystore implementation based simply on the value of the \f2keystore.type\fP property specified in the security properties file. The security properties file is called \f2java.security\fP, and it resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). -.LP -.LP -Each tool gets the \f2keystore.type\fP value and then examines all the currently\-installed providers until it finds one that implements keystores of that type. It then uses the keystore implementation from that provider. -.LP -.LP -The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that lets applications and applets retrieve the value of the \f2keystore.type\fP property. The following line of code creates an instance of the default keystore type (as specified in the \f2keystore.type\fP property): -.LP +The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that lets applications and applets retrieve the value of the \f2keystore.type\fP property. The following line of code creates an instance of the default keystore type (as specified in the \f2keystore.type\fP property): .nf \f3 .fl @@ -1323,11 +1311,8 @@ The \f2KeyStore\fP class defines a static method named \f2getDefaultType\fP that .fl \fP .fi - -.LP -.LP -The default keystore type is "jks" (the proprietary type of the keystore implementation provided by Sun). This is specified by the following line in the security properties file: .LP +The default keystore type is "jks" (the proprietary type of the keystore implementation provided by Oracle). This is specified by the following line in the security properties file: .nf \f3 .fl @@ -1335,14 +1320,10 @@ The default keystore type is "jks" (the proprietary type of the keystore impleme .fl \fP .fi - .LP +To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. .LP -To have the tools utilize a keystore implementation other than the default, you can change that line to specify a different keystore type. -.LP -.LP -For example, if you have a provider package that supplies a keystore implementation for a keystore type called "pkcs12", change the line to -.LP +For example, if you have a provider package that supplies a keystore implementation for a keystore type called "pkcs12", change the line to .nf \f3 .fl @@ -1350,50 +1331,45 @@ For example, if you have a provider package that supplies a keystore implementat .fl \fP .fi +.LP +Note: case doesn't matter in keystore type designations. For example, "JKS" would be considered the same as "jks". +.RE .LP -Note: case doesn't matter in keystore type designations. For example, "JKS" would be considered the same as "jks". -.RE -.RE .SS Certificate .LP +A \f3certificate\fP (also known as a \f3public\-key certificate\fP) is a digitally signed statement from one entity (the \f2issuer\fP), saying that the public key (and some other information) of another entity (the \f2subject\fP) has some specific value. .RS 3 - -.LP -A \f3certificate\fP (also known as a \f3public\-key certificate\fP) is a digitally signed statement from one entity (the \f2issuer\fP), saying that the public key (and some other information) of another entity (the \f2subject\fP) has some specific value. -.RE -.RS 3 -.TP 2 -o .TP 2 o \f3Certificate Terms\fP .RS 3 - -.LP -.RS 3 .TP 3 Public Keys -These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity. Public keys are used to verify signatures. +.LP +These are numbers associated with a particular entity, and are intended to be known to everyone who needs to have trusted interactions with that entity. Public keys are used to verify signatures. .TP 3 Digitally Signed -If some data is \f2digitally signed\fP it has been stored with the "identity" of an entity, and a signature that proves that entity knows about the data. The data is rendered unforgeable by signing with the entity's private key. +.LP +If some data is \f2digitally signed\fP it has been stored with the "identity" of an entity, and a signature that proves that entity knows about the data. The data is rendered unforgeable by signing with the entity's private key. .TP 3 Identity -A known way of addressing an entity. In some systems the identity is the public key, in others it can be anything from a Unix UID to an Email address to an X.509 Distinguished Name. +.LP +A known way of addressing an entity. In some systems the identity is the public key, in others it can be anything from a Unix UID to an Email address to an X.509 Distinguished Name. .TP 3 Signature -A signature is computed over some data using the private key of an entity (the \f2signer\fP, which in the case of a certificate is also known as the \f2issuer\fP). +.LP +A signature is computed over some data using the private key of an entity (the \f2signer\fP, which in the case of a certificate is also known as the \f2issuer\fP). .TP 3 Private Keys -These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it's supposed to be kept secret). Private and public keys exist in pairs in all public key cryptography systems (also referred to as "public key crypto systems"). In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key. Private keys are used to compute signatures. +.LP +These are numbers, each of which is supposed to be known only to the particular entity whose private key it is (that is, it's supposed to be kept secret). Private and public keys exist in pairs in all public key cryptography systems (also referred to as "public key crypto systems"). In a typical public key crypto system, such as DSA, a private key corresponds to exactly one public key. Private keys are used to compute signatures. .TP 3 Entity -An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree. -.RE - .LP +An entity is a person, organization, program, computer, business, bank, or something else you are trusting to some degree. +.RE .LP Basically, public key cryptography requires access to users' public keys. In a large\-scale networked environment it is impossible to guarantee that prior relationships between communicating entities have been established or that a trusted repository exists with all used public keys. Certificates were invented as a solution to this public key distribution problem. Now a \f2Certification Authority\fP (CA) can act as a trusted third party. CAs are entities (for example, businesses) that are trusted to sign (issue) certificates for other entities. It is assumed that CAs will only create valid and reliable certificates, as they are bound by legal agreements. There are many public Certification Authorities, such as .na @@ -1407,26 +1383,22 @@ http://www.thawte.com/, .na \f2Entrust\fP @ .fi -http://www.entrust.com/, and so on. You can also run your own Certification Authority using products such as the Netscape/Microsoft Certificate Servers or the Entrust CA product for your organization. +http://www.entrust.com/, and so on. You can also run your own Certification Authority using products such as Microsoft Certificate Server or the Entrust CA product for your organization. .LP +Using \f3keytool\fP, it is possible to display, import, and export certificates. It is also possible to generate self\-signed certificates. .LP -Using \f3keytool\fP, it is possible to display, import, and export certificates. It is also possible to generate self\-signed certificates. -.LP -.LP -\f3keytool\fP currently handles X.509 certificates. -.LP -.RE +\f3keytool\fP currently handles X.509 certificates. .TP 2 o \f3X.509 Certificates\fP -.RS 3 +.LP The X.509 standard defines what information can go into a certificate, and describes how to write it down (the data format). All the data in a certificate is encoded using two related standards called ASN.1/DER. \f2Abstract Syntax Notation 1\fP describes data. The \f2Definite Encoding Rules\fP describe a single way to store and transfer that data. .LP -All X.509 certificates have the following data, in addition to the signature: -.LP +All X.509 certificates have the following data, in addition to the signature: .RS 3 .TP 3 Version +.LP This identifies which version of the X.509 standard applies to this certificate, which affects what information can be specified in it. Thus far, three versions are defined. \f3keytool\fP can import and export v1, v2, and v3 certificates. It generates v3 certificates. .LP \f2X.509 Version 1\fP has been available since 1988, is widely deployed, and is the most generic. @@ -1436,475 +1408,86 @@ This identifies which version of the X.509 standard applies to this certificate, \f2X.509 Version 3\fP is the most recent (1996) and supports the notion of extensions, whereby anyone can define an extension and include it in the certificate. Some common extensions in use today are: \f2KeyUsage\fP (limits the use of the keys to particular purposes such as "signing\-only") and \f2AlternativeNames\fP (allows other identities to also be associated with this public key, e.g. DNS names, Email addresses, IP addresses). Extensions can be marked \f2critical\fP to indicate that the extension should be checked and enforced/used. For example, if a certificate has the KeyUsage extension marked critical and set to "keyCertSign" then if this certificate is presented during SSL communication, it should be rejected, as the certificate extension indicates that the associated private key should only be used for signing certificates and not for SSL use. .TP 3 Serial Number -The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues. This information is used in numerous ways, for example when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL). +.LP +The entity that created the certificate is responsible for assigning it a serial number to distinguish it from other certificates it issues. This information is used in numerous ways, for example when a certificate is revoked its serial number is placed in a Certificate Revocation List (CRL). .TP 3 Signature Algorithm Identifier -This identifies the algorithm used by the CA to sign the certificate. +.LP +This identifies the algorithm used by the CA to sign the certificate. .TP 3 Issuer Name -The X.500 Distinguished Name of the entity that signed the certificate. This is normally a CA. Using this certificate implies trusting the entity that signed this certificate. (Note that in some cases, such as \f2root or top\-level\fP CA certificates, the issuer signs its own certificate.) +.LP +The X.500 Distinguished Name of the entity that signed the certificate. This is normally a CA. Using this certificate implies trusting the entity that signed this certificate. (Note that in some cases, such as \f2root or top\-level\fP CA certificates, the issuer signs its own certificate.) .TP 3 Validity Period -Each certificate is valid only for a limited amount of time. This period is described by a start date and time and an end date and time, and can be as short as a few seconds or almost as long as a century. The validity period chosen depends on a number of factors, such as the strength of the private key used to sign the certificate or the amount one is willing to pay for a certificate. This is the expected period that entities can rely on the public value, if the associated private key has not been compromised. +.LP +Each certificate is valid only for a limited amount of time. This period is described by a start date and time and an end date and time, and can be as short as a few seconds or almost as long as a century. The validity period chosen depends on a number of factors, such as the strength of the private key used to sign the certificate or the amount one is willing to pay for a certificate. This is the expected period that entities can rely on the public value, if the associated private key has not been compromised. .TP 3 Subject Name +.LP The name of the entity whose public key the certificate identifies. This name uses the X.500 standard, so it is intended to be unique across the Internet. This is the X.500 Distinguished Name (DN) of the entity, for example, .nf \f3 .fl - CN=Java Duke, OU=Java Software Division, O=Sun Microsystems Inc, C=US + CN=Java Duke, OU=Java Software Division, O=Oracle Corporation, C=US .fl \fP .fi -(These refer to the subject's Common Name, Organizational Unit, Organization, and Country.) +.LP +(These refer to the subject's Common Name, Organizational Unit, Organization, and Country.) .TP 3 Subject Public Key Information -This is the public key of the entity being named, together with an algorithm identifier which specifies which public key crypto system this key belongs to and any associated key parameters. -.RE - .LP +This is the public key of the entity being named, together with an algorithm identifier which specifies which public key crypto system this key belongs to and any associated key parameters. .RE .TP 2 o \f3Certificate Chains\fP -.RS 3 .LP -\f3keytool\fP can create and manage keystore "key" entries that each contain a private key and an associated certificate "chain". The first certificate in the chain contains the public key corresponding to the private key. +\f3keytool\fP can create and manage keystore "key" entries that each contain a private key and an associated certificate "chain". The first certificate in the chain contains the public key corresponding to the private key. .LP +When keys are first generated (see the \-genkeypair command), the chain starts off containing a single element, a \f2self\-signed certificate\fP. A self\-signed certificate is one for which the issuer (signer) is the same as the subject (the entity whose public key is being authenticated by the certificate). Whenever the \f2\-genkeypair\fP command is called to generate a new public/private key pair, it also wraps the public key into a self\-signed certificate. .LP -When keys are first generated (see the \-genkeypair command), the chain starts off containing a single element, a \f2self\-signed certificate\fP. A self\-signed certificate is one for which the issuer (signer) is the same as the subject (the entity whose public key is being authenticated by the certificate). Whenever the \f2\-genkeypair\fP command is called to generate a new public/private key pair, it also wraps the public key into a self\-signed certificate. +Later, after a Certificate Signing Request (CSR) has been generated (see the \-certreq command) and sent to a Certification Authority (CA), the response from the CA is imported (see \-importcert), and the self\-signed certificate is replaced by a chain of certificates. At the bottom of the chain is the certificate (reply) issued by the CA authenticating the subject's public key. The next certificate in the chain is one that authenticates the \f2CA\fP's public key. .LP +In many cases, this is a self\-signed certificate (that is, a certificate from the CA authenticating its own public key) and the last certificate in the chain. In other cases, the CA may return a chain of certificates. In this case, the bottom certificate in the chain is the same (a certificate signed by the CA, authenticating the public key of the key entry), but the second certificate in the chain is a certificate signed by a \f2different\fP CA, authenticating the public key of the CA you sent the CSR to. Then, the next certificate in the chain will be a certificate authenticating the second CA's key, and so on, until a self\-signed "root" certificate is reached. Each certificate in the chain (after the first) thus authenticates the public key of the signer of the previous certificate in the chain. .LP -Later, after a Certificate Signing Request (CSR) has been generated (see the \-certreq command) and sent to a Certification Authority (CA), the response from the CA is imported (see \-importcert), and the self\-signed certificate is replaced by a chain of certificates. At the bottom of the chain is the certificate (reply) issued by the CA authenticating the subject's public key. The next certificate in the chain is one that authenticates the \f2CA\fP's public key. +Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs). In this case, the certificate chain must be established from trusted certificate information already stored in the keystore. .LP +A different reply format (defined by the PKCS#7 standard) also includes the supporting certificate chain, in addition to the issued certificate. Both reply formats can be handled by \f3keytool\fP. .LP -In many cases, this is a self\-signed certificate (that is, a certificate from the CA authenticating its own public key) and the last certificate in the chain. In other cases, the CA may return a chain of certificates. In this case, the bottom certificate in the chain is the same (a certificate signed by the CA, authenticating the public key of the key entry), but the second certificate in the chain is a certificate signed by a \f2different\fP CA, authenticating the public key of the CA you sent the CSR to. Then, the next certificate in the chain will be a certificate authenticating the second CA's key, and so on, until a self\-signed "root" certificate is reached. Each certificate in the chain (after the first) thus authenticates the public key of the signer of the previous certificate in the chain. -.LP -.LP -Many CAs only return the issued certificate, with no supporting chain, especially when there is a flat hierarchy (no intermediates CAs). In this case, the certificate chain must be established from trusted certificate information already stored in the keystore. -.LP -.LP -A different reply format (defined by the PKCS#7 standard) also includes the supporting certificate chain, in addition to the issued certificate. Both reply formats can be handled by \f3keytool\fP. -.LP -.LP -The top\-level (root) CA certificate is self\-signed. However, the trust into the root's public key does not come from the root certificate itself (anybody could generate a self\-signed certificate with the distinguished name of say, the VeriSign root CA!), but from other sources like a newspaper. The root CA public key is widely known. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only used as a "vehicle" to transport the root CA's public key. Before you add the root CA certificate to your keystore, you should view it (using the \f2\-printcert\fP option) and compare the displayed fingerprint with the well\-known fingerprint (obtained from a newspaper, the root CA's webpage, etc.). -.LP -.RE +The top\-level (root) CA certificate is self\-signed. However, the trust into the root's public key does not come from the root certificate itself (anybody could generate a self\-signed certificate with the distinguished name of say, the VeriSign root CA!), but from other sources like a newspaper. The root CA public key is widely known. The only reason it is stored in a certificate is because this is the format understood by most tools, so the certificate in this case is only used as a "vehicle" to transport the root CA's public key. Before you add the root CA certificate to your keystore, you should view it (using the \f2\-printcert\fP option) and compare the displayed fingerprint with the well\-known fingerprint (obtained from a newspaper, the root CA's Web page, etc.). .TP 2 o \f3The cacerts Certificates File\fP -.RS 3 .LP -A certificates file named \f3"cacerts"\fP resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). +A certificates file named \f3"cacerts"\fP resides in the security properties directory, \f2java.home\fP/lib/security, where \f2java.home\fP is the runtime environment's directory (the \f2jre\fP directory in the SDK or the top\-level directory of the Java 2 Runtime Environment). .LP +The "cacerts" file represents a system\-wide keystore with CA certificates. System administrators can configure and manage that file using \f3keytool\fP, specifying "jks" as the keystore type. The "cacerts" keystore file ships with a default set of root CA certificates; list them with the following command: +.nf +\f3 +.fl +keytool \-list \-keystore \fP\f4java.home\fP\f3/lib/security/cacerts +.fl +\fP +.fi .LP -The "cacerts" file represents a system\-wide keystore with CA certificates. System administrators can configure and manage that file using \f3keytool\fP, specifying "jks" as the keystore type. The "cacerts" keystore file ships with several root CA certificates with the following aliases and X.500 owner distinguished names: +The initial password of the "cacerts" keystore file is "changeit". System administrators should change that password and the default access permission of that file upon installing the SDK. .LP -.RS 3 -.TP 2 -* -\f3Alias\fP: thawtepersonalfreemailca -.br -\f3Owner DN\fP: EmailAddress=personal\-freemail@thawte.com, -.br -CN=Thawte Personal Freemail CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepersonalbasicca -.br -\f3Owner DN\fP: EmailAddress=personal\-basic@thawte.com, -.br -CN=Thawte Personal Basic CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepersonalpremiumca -.br -\f3Owner DN\fP: EmailAddress=personal\-premium@thawte.com, -.br -CN=Thawte Personal Premium CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawteserverca -.br -\f3Owner DN\fP: EmailAddress=server\-certs@thawte.com, -.br -CN=Thawte Server CA, OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: thawtepremiumserverca -.br -\f3Owner DN\fP: EmailAddress=premium\-server@thawte.com, -.br -CN=Thawte Premium Server CA, -.br -OU=Certification Services Division, -.br -O=Thawte Consulting cc, L=Cape Town, ST=Western Cape, C=ZA -.TP 2 -* -\f3Alias\fP: verisignclass1ca -.br -\f3Owner DN\fP: OU=Class 1 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2ca -.br -\f3Owner DN\fP: OU=Class 2 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3ca -.br -\f3Owner DN\fP: OU=Class 3 Public Primary Certification Authority, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignserverca -.br -\f3Owner DN\fP: OU=Secure Server Certification Authority, -.br -O="RSA Data Security, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass1g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 1 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass1g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 1 Public Primary Certification Authority \- G3, OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 2 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass2g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 2 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3g2ca -.br -\f3Owner DN\fP: OU=VeriSign Trust Network, -.br -OU="(c) 1998 VeriSign, Inc. \- For authorized use only", -.br -OU=Class 3 Public Primary Certification Authority \- G2, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: verisignclass3g3ca -.br -\f3Owner DN\fP: CN=VeriSign Class 3 Public Primary Certification Authority \- G3, -.br -OU="(c) 1999 VeriSign, Inc. \- For authorized use only", -.br -OU=VeriSign Trust Network, -.br -O="VeriSign, Inc.", C=US -.TP 2 -* -\f3Alias\fP: baltimorecodesigningca -.br -\f3Owner DN\fP: CN=Baltimore CyberTrust Code Signing Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP: gtecybertrustglobalca -.br -\f3Owner DN\fP: CN=GTE CyberTrust Global Root, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP: baltimorecybertrustca -.br -\f3Owner DN\fP: CN=Baltimore CyberTrust Root, -.br -OU=CyberTrust, O=Baltimore, C=IE -.TP 2 -* -\f3Alias\fP: gtecybertrust5ca -.br -\f3Owner DN\fP: CN=GTE CyberTrust Root 5, -.br -OU="GTE CyberTrust Solutions, Inc.", O=GTE Corporation, C=US -.TP 2 -* -\f3Alias\fP: entrustclientca -.br -\f3Owner DN\fP: CN=Entrust.net Client Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/Client_CA_Info/CPS incorp. by ref. limits liab., -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP: entrustglobalclientca -.br -\f3Owner DN\fP: CN=Entrust.net Client Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/GCCA_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: entrust2048ca -.br -\f3Owner DN\fP: CN=Entrust.net Certification Authority (2048), -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: entrustsslca -.br -\f3Owner DN\fP: CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 1999 Entrust.net Limited, -.br -OU=www.entrust.net/CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net, C=US -.TP 2 -* -\f3Alias\fP: entrustgsslca -.br -\f3Owner DN\fP: CN=Entrust.net Secure Server Certification Authority, -.br -OU=(c) 2000 Entrust.net Limited, -.br -OU=www.entrust.net/SSL_CPS incorp. by ref. (limits liab.), -.br -O=Entrust.net -.TP 2 -* -\f3Alias\fP: godaddyclass2ca -.br -\f3Owner DN\fP: OU=Go Daddy Class 2 Certification Authority, -.br -O="The Go Daddy Group, Inc.", C=US -.TP 2 -* -\f3Alias\fP: starfieldclass2ca -.br -\f3Owner DN\fP: OU=Starfield Class 2 Certification Authority, -.br -O="Starfield Technologies, Inc.", C=US -.TP 2 -* -\f3Alias\fP: valicertclass2ca -.br -\f3Owner DN\fP: EMAILADDRESS=info@valicert.com, -.br -CN=http://www.valicert.com/, -.br -OU=ValiCert Class 2 Policy Validation Authority, -.br -O="ValiCert, Inc.", L=ValiCert Validation Network -.TP 2 -* -\f3Alias\fP: geotrustglobalca -.br -\f3Owner DN\fP: CN=GeoTrust Global CA, -.br -O=GeoTrust Inc., C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureca -.br -\f3Owner DN\fP: OU=Equifax Secure Certificate Authority, -.br -O=Equifax, C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureebusinessca1 -.br -\f3Owner DN\fP: CN=Equifax Secure eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureebusinessca2 -.br -\f3Owner DN\fP: OU=Equifax Secure eBusiness CA\-2, -.br -O=Equifax Secure, C=US -.TP 2 -* -\f3Alias\fP: equifaxsecureglobalebusinessca1 -.br -\f3Owner DN\fP: CN=Equifax Secure Global eBusiness CA\-1, -.br -O=Equifax Secure Inc., C=US -.TP 2 -* -\f3Alias\fP: soneraclass1ca -.br -\f3Owner DN\fP: CN=Sonera Class1 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP: soneraclass2ca -.br -\f3Owner DN\fP: CN=Sonera Class2 CA, O=Sonera, C=FI -.TP 2 -* -\f3Alias\fP: comodoaaaca -.br -\f3Owner DN\fP: CN=AAA Certificate Services, -.br -O=Comodo CA Limited, L=Salford, ST=Greater Manchester, C=GB -.TP 2 -* -\f3Alias\fP: addtrustclass1ca -.br -\f3Owner DN\fP: CN=AddTrust Class 1 CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: addtrustexternalca -.br -\f3Owner DN\fP: CN=AddTrust External CA Root, -.br -OU=AddTrust External TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: addtrustqualifiedca -.br -\f3Owner DN\fP: CN=AddTrust Qualified CA Root, -.br -OU=AddTrust TTP Network, O=AddTrust AB, C=SE -.TP 2 -* -\f3Alias\fP: utnuserfirsthardwareca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Hardware, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utnuserfirstclientauthemailca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Client Authentication and Email, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utndatacorpsgcca -.br -\f3Owner DN\fP: CN=UTN \- DATACorp SGC, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.TP 2 -* -\f3Alias\fP: utnuserfirstobjectca -.br -\f3Owner DN\fP: CN=UTN\-USERFirst\-Object, -.br -OU=http://www.usertrust.com, O=The USERTRUST Network, -.br -L=Salt Lake City, ST=UT, C=US -.RE - -.LP -.LP -The initial password of the "cacerts" keystore file is "changeit". System administrators should change that password and the default access permission of that file upon installing the SDK. -.LP -.RS 3 - -.LP - -.LP -\f3IMPORTANT: Verify Your \fP\f4cacerts\fP\f3 File\fP -.br - -.LP -Since you trust the CAs in the \f2cacerts\fP file as entities for signing and issuing certificates to other entities, you must manage the \f2cacerts\fP file carefully. The \f2cacerts\fP file should contain only certificates of the CAs you trust. It is your responsibility to verify the trusted root CA certificates bundled in the \f2cacerts\fP file and make your own trust decisions. To remove an untrusted CA certificate from the \f2cacerts\fP file, use the delete option of the \f2keytool\fP command. You can find the \f2cacerts\fP file in the JRE installation directory. Contact your system administrator if you do not have permission to edit this file. -.br - -.LP -.RE - -.LP -.RE +\f3IMPORTANT: Verify Your \fP\f4cacerts\fP\f3 File\fP: Since you trust the CAs in the \f2cacerts\fP file as entities for signing and issuing certificates to other entities, you must manage the \f2cacerts\fP file carefully. The \f2cacerts\fP file should contain only certificates of the CAs you trust. It is your responsibility to verify the trusted root CA certificates bundled in the \f2cacerts\fP file and make your own trust decisions. To remove an untrusted CA certificate from the \f2cacerts\fP file, use the delete option of the \f2keytool\fP command. You can find the \f2cacerts\fP file in the JRE installation directory. Contact your system administrator if you do not have permission to edit this file. .TP 2 o \f3The Internet RFC 1421 Certificate Encoding Standard\fP -.RS 3 .LP -Certificates are often stored using the printable encoding format defined by the Internet RFC 1421 standard, instead of their binary encoding. This certificate format, also known as "Base 64 encoding", facilitates exporting certificates to other applications by email or through some other mechanism. +Certificates are often stored using the printable encoding format defined by the Internet RFC 1421 standard, instead of their binary encoding. This certificate format, also known as "Base 64 encoding", facilitates exporting certificates to other applications by email or through some other mechanism. .LP +Certificates read by the \f2\-importcert\fP and \f2\-printcert\fP commands can be in either this format or binary encoded. .LP -Certificates read by the \f2\-importcert\fP and \f2\-printcert\fP commands can be in either this format or binary encoded. +The \f2\-exportcert\fP command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, if the \f2\-rfc\fP option is specified. .LP +The \f2\-list\fP command by default prints the SHA1 fingerprint of a certificate. If the \f2\-v\fP option is specified, the certificate is printed in human\-readable format, while if the \f2\-rfc\fP option is specified, the certificate is output in the printable encoding format. .LP -The \f2\-exportcert\fP command by default outputs a certificate in binary encoding, but will instead output a certificate in the printable encoding format, if the \f2\-rfc\fP option is specified. -.LP -.LP -The \f2\-list\fP command by default prints the SHA1 fingerprint of a certificate. If the \f2\-v\fP option is specified, the certificate is printed in human\-readable format, while if the \f2\-rfc\fP option is specified, the certificate is output in the printable encoding format. -.LP -.LP -In its printable encoding format, the encoded certificate is bounded at the beginning by -.LP +In its printable encoding format, the encoded certificate is bounded at the beginning by .nf \f3 .fl @@ -1912,11 +1495,8 @@ In its printable encoding format, the encoded certificate is bounded at the begi .fl \fP .fi - -.LP -.LP -and at the end by .LP +and at the end by .nf \f3 .fl @@ -1925,23 +1505,21 @@ and at the end by \fP .fi .RE -.RE .LP .SS X.500 Distinguished Names .LP -.RS 3 - .LP -X.500 Distinguished Names are used to identify entities, such as those which are named by the \f2subject\fP and \f2issuer\fP (signer) fields of X.509 certificates. \f3keytool\fP supports the following subparts: +X.500 Distinguished Names are used to identify entities, such as those which are named by the \f2subject\fP and \f2issuer\fP (signer) fields of X.509 certificates. \f3keytool\fP supports the following subparts: +.LP .RS 3 .TP 2 o \f2commonName\fP \- common name of a person, e.g., "Susan Jones" .TP 2 o -\f2organizationUnit\fP \- small organization (e.g, department or division) name, e.g., "Purchasing" +\f2organizationUnit\fP \- small organization (e.g., department or division) name, e.g., "Purchasing" .TP 2 o \f2organizationName\fP \- large organization name, e.g., "ABCSystems, Inc." @@ -1975,7 +1553,7 @@ where all the italicized items represent actual values and the above keywords ar .nf \f3 .fl - CN=commonName + CN=commonName .fl OU=organizationUnit .fl @@ -1997,17 +1575,19 @@ A sample distinguished name string is .nf \f3 .fl -CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, S=California, C=US +CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, S=California, C=US .fl \fP .fi .LP -and a sample command using such a string is +.LP +and a sample command using such a string is +.LP .nf \f3 .fl -keytool \-genkeypair \-dname "CN=Mark Smith, OU=JavaSoft, O=Sun, L=Cupertino, +keytool \-genkeypair \-dname "CN=Mark Smith, OU=Java, O=Oracle, L=Cupertino, .fl S=California, C=US" \-alias mark .fl @@ -2024,7 +1604,7 @@ Order matters; each subcomponent must appear in the designated order. However, i .nf \f3 .fl -CN=Steve Meier, OU=SunSoft, O=Sun, C=US +CN=Steve Meier, OU=Java, O=Oracle, C=US .fl \fP .fi @@ -2036,7 +1616,7 @@ If a distinguished name string value contains a comma, the comma must be escaped .nf \f3 .fl - cn=peter schuster, o=Sun Microsystems\\, Inc., o=sun, c=us + cn=Peter Schuster, ou=Java\\, Product Development, o=Oracle, c=US .fl \fP .fi @@ -2045,14 +1625,12 @@ If a distinguished name string value contains a comma, the comma must be escaped .LP It is never necessary to specify a distinguished name string on a command line. If it is needed for a command, but not supplied on the command line, the user is prompted for each of the subcomponents. In this case, a comma does not need to be escaped by a "\\". .LP -.RE .SS WARNING Regarding Importing Trusted Certificates .LP -.RS 3 - .LP -IMPORTANT: Be sure to check a certificate very carefully before importing it as a trusted certificate! +IMPORTANT: Be sure to check a certificate very carefully before importing it as a trusted certificate! +.LP .LP View it first (using the \f2\-printcert\fP command, or the \f2\-importcert\fP command without the \f2\-noprompt\fP option), and make sure that the displayed certificate fingerprint(s) match the expected ones. For example, suppose someone sends or emails you a certificate, and you put it in a file named \f2/tmp/cert\fP. Before you consider adding the certificate to your list of trusted certificates, you can execute a \f2\-printcert\fP command to view its fingerprints, as in .LP @@ -2083,16 +1661,14 @@ View it first (using the \f2\-printcert\fP command, or the \f2\-importcert\fP co .fi .LP -Then call or otherwise contact the person who sent the certificate, and compare the fingerprint(s) that you see with the ones that they show. Only if the fingerprints are equal is it guaranteed that the certificate has not been replaced in transit with somebody else's (for example, an attacker's) certificate. If such an attack took place, and you did not check the certificate before you imported it, you would end up trusting anything the attacker has signed (for example, a JAR file with malicious class files inside). +.LP +Then call or otherwise contact the person who sent the certificate, and compare the fingerprint(s) that you see with the ones that they show. Only if the fingerprints are equal is it guaranteed that the certificate has not been replaced in transit with somebody else's (for example, an attacker's) certificate. If such an attack took place, and you did not check the certificate before you imported it, you would end up trusting anything the attacker has signed (for example, a JAR file with malicious class files inside). +.LP .LP Note: it is not required that you execute a \f2\-printcert\fP command prior to importing a certificate, since before adding a certificate to the list of trusted certificates in the keystore, the \f2\-importcert\fP command prints out the certificate information and prompts you to verify it. You then have the option of aborting the import operation. Note, however, this is only the case if you invoke the \f2\-importcert\fP command without the \f2\-noprompt\fP option. If the \f2\-noprompt\fP option is given, there is no interaction with the user. .LP -.RE .SS Warning Regarding Passwords -.LP -.RS 3 - .LP .LP Most commands operating on a keystore require the store password. Some commands require a private/secret key password. @@ -2103,12 +1679,8 @@ Passwords can be specified on the command line (in the \f2\-storepass\fP and \f2 .LP If you don't specify a required password option on a command line, you will be prompted for it. .LP -.RE .SS Warning Regarding Certificate Conformance -.LP -.RS 3 - .LP .LP The Internet standard @@ -2117,38 +1689,30 @@ The Internet standard .fi http://tools.ietf.org/rfc/rfc5280.txt has defined a profile on conforming X.509 certificates, which includes what values and value combinations are valid for certificate fields and extensions. \f3keytool\fP has not enforced all these rules so it can generate certificates which do not conform to the standard, and these certificates might be rejected by JRE or other applications. Users should make sure that they provide the correct options for \f2\-dname\fP, \f2\-ext\fP, etc. .LP -.RE .SH "SEE ALSO" -.LP - .LP .RS 3 .TP 2 o -.LP -jar(1) tool documentation +jar(1) tool documentation .TP 2 o -.LP -jarsigner(1) tool documentation +jarsigner(1) tool documentation .TP 2 o -.LP the .na \f4Security\fP @ .fi -http://java.sun.com/docs/books/tutorial/security/index.html trail of the +http://download.oracle.com/javase/tutorial/security/index.html trail of the .na \f4Java Tutorial\fP @ .fi -http://java.sun.com/docs/books/tutorial for examples of the use of \f3keytool\fP +http://download.oracle.com/javase/tutorial/ for examples of the use of \f3keytool\fP .RE .LP .SH "CHANGES" -.LP - .LP .LP The command interface for keytool changed in Java SE 6. @@ -2184,19 +1748,19 @@ o .na \f2\-keyclone\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#keycloneCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#keycloneCmd .TP 2 o .na \f2\-identitydb\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#identitydbCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#identitydbCmd .TP 2 o .na \f2\-selfcert\fP @ .fi -http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html#selfcertCmd +http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/keytool.html#selfcertCmd .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/native2ascii.1 b/jdk/src/solaris/doc/sun/man/man1/native2ascii.1 index f455eaf01f3..54beff1d0ab 100644 --- a/jdk/src/solaris/doc/sun/man/man1/native2ascii.1 +++ b/jdk/src/solaris/doc/sun/man/man1/native2ascii.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH native2ascii 1 "02 Jun 2010" +.TH native2ascii 1 "10 May 2011" .LP .SH "Name" native2ascii \- Native\-to\-ASCII Converter .LP -.RS 3 - .LP +Converts a file with characters in any supported character encoding to one with ASCII and/or Unicode escapes, or visa versa. .LP -Converts a file with native\-encoded characters (characters which are non\-Latin 1 and non\-Unicode) to one with Unicode\-encoded characters. -.LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,31 +40,29 @@ Converts a file with native\-encoded characters (characters which are non\-Latin .LP .SH "DESCRIPTION" .LP - .LP -.LP -The Java compiler and other Java tools can only process files which contain Latin\-1 and/or Unicode\-encoded (\\udddd notation) characters. \f2native2ascii\fP converts files which contain other character encodings into files containing Latin\-1 and/or Unicode\-encoded charaters. +\f2native2ascii\fP converts files that are encoded to any character encoding that is supported by the Java runtime environment to files encoded in ASCII, using Unicode escapes ("\\uxxxx" notation) for all characters that are not part of the ASCII character set. This process is required for properties files containing characters not in ISO\-8859\-1 character sets. The tool can also perform the reverse conversion. .LP .LP If \f2outputfile\fP is omitted, standard output is used for output. If, in addition, \f2inputfile\fP is omitted, standard input is used for input. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 \-reverse -Perform the reverse operation: convert a file with Latin\-1 and/or Unicode encoded characters to one with native\-encoded characters. +Perform the reverse operation: Convert a file encoded in ISO\-8859\-1 with Unicode escapes to a file in any character encoding supported by the Java runtime environment. .br .br .TP 3 \-encoding encoding_name -Specify the encoding name which is used by the conversion procedure. The default encoding is taken from System property \f2file.encoding\fP. The \f2encoding_name\fP string must be taken from the first column of the table of supported encodings in the +Specifies the name of the character encoding to be used by the conversion procedure. If this option is not present, the default character encoding (as determined by the \f2java.nio.charset.Charset.defaultCharset\fP method) is used. The \f2encoding_name\fP string must be the name of a character encoding that is supported by the Java runtime environment \- see the .na \f4Supported Encodings\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/intl/encoding.doc.html document. +http://download.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html document. +.br +.br .TP 3 \-Joption Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for the java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. diff --git a/jdk/src/solaris/doc/sun/man/man1/orbd.1 b/jdk/src/solaris/doc/sun/man/man1/orbd.1 index 0c2b5bbbe30..108ad9e1ce2 100644 --- a/jdk/src/solaris/doc/sun/man/man1/orbd.1 +++ b/jdk/src/solaris/doc/sun/man/man1/orbd.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,14 +19,11 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH orbd 1 "02 Jun 2010" +.TH orbd 1 "10 May 2011" .LP .SH "Name" orbd \- The Object Request Broker Daemon -.LP -.RS 3 - .LP .LP \f3orbd\fP is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment. @@ -36,12 +33,9 @@ orbd \- The Object Request Broker Daemon .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -53,8 +47,6 @@ orbd <\fP\f3options\fP\f3> .LP .SH "DESCRIPTION" -.LP - .LP .LP The Server Manager included with the \f3orbd\fP tool is used to enable clients to transparently locate and invoke persistent objects on servers in the CORBA environment. The persistent servers, while publishing the persistent object references in the Naming Service, include the port number of the ORBD in the object reference instead of the port number of the Server. The inclusion of an ORBD port number in the object reference for persistent object references has the following advantages: @@ -77,7 +69,7 @@ When \f2orbd\fP starts up, it also starts a naming service. For more information .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html. .LP .SH "OPTIONS" .LP @@ -141,11 +133,11 @@ A Naming Service is a CORBA service that allows .na \f2CORBA objects\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object to be named by means of binding a name to an object reference. The +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#CORBA%20object to be named by means of binding a name to an object reference. The .na \f2name binding\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlGlossary.html#name%20binding may be stored in the naming service, and a client may supply the name to obtain the desired object reference. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlGlossary.html#name%20binding may be stored in the naming service, and a client may supply the name to obtain the desired object reference. .LP .LP Prior to running a client or a server, you will start ORBD. ORBD includes a persistent Naming Service and a transient Naming Service, both of which are an implementation of the COS Naming Service. @@ -224,7 +216,7 @@ For more information on the Naming Service included with ORBD, see .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html. .LP .SH "Server Manager" .LP @@ -239,7 +231,7 @@ Using the .na \f2sample tutorial\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlExample.html for our demonstration, you would run the \f2idlj\fP compiler and \f2javac\fP compiler as shown in the tutorial. To run the Server Manager, follow these steps for running the application: +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlExample.html for our demonstration, you would run the \f2idlj\fP compiler and \f2javac\fP compiler as shown in the tutorial. To run the Server Manager, follow these steps for running the application: .LP .LP Start \f2orbd\fP. @@ -362,7 +354,7 @@ o .na \f2Naming Service\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html .br .TP 2 o diff --git a/jdk/src/solaris/doc/sun/man/man1/pack200.1 b/jdk/src/solaris/doc/sun/man/man1/pack200.1 index 299a96f5a22..8f34d6dd51a 100644 --- a/jdk/src/solaris/doc/sun/man/man1/pack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/pack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,24 +19,19 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH pack200 1 "02 Jun 2010" +.TH pack200 1 "10 May 2011" .LP .SH "Name" pack200 \- JAR Packing tool .LP .SH "SYNOPSIS" -.LP - .LP .LP \f4pack200\fP\f2 [ \fP\f2options\fP ] \f2output\-file\fP \f2JAR\-file\fP .LP .LP Options may be in any order. The last option on the command line or in a properties file supersedes all previously specified options. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -51,10 +46,7 @@ Name of the input file. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP The \f2pack200\fP tool is a Java application that transforms a JAR file into a compressed \f2pack200\fP file using the Java \f2gzip\fP compressor. The \f2pack200\fP files are highly compressed files that can be directly deployed, saving bandwidth and reducing download time. @@ -64,32 +56,20 @@ The \f2pack200\fP tool uses several options to fine\-tune and set the compressio .LP .SS Typical usage: -.LP -.RS 3 - .LP .LP \f2% pack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP In this example, \f2myarchive.pack.gz\fP is produced using the default \f2pack200\fP settings. .LP .SH "OPTIONS" -.LP - .LP .LP \f4\-r \-\-repack\fP -.LP -.RS 3 - .LP .LP Produces a JAR file by packing the file \f2myarchive.jar\fP and unpacking it. The resulting file can be used as an input to the \f2jarsigner(1)\fP tool. -.LP -.RS 3 - .LP .LP \f2% pack200 \-\-repack myarchive\-packer.jar myarchive.jar\fP @@ -97,50 +77,35 @@ Produces a JAR file by packing the file \f2myarchive.jar\fP and unpacking it. Th .LP \f2% pack200 \-\-repack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-g \-\-no\-gzip\fP -.LP -.RS 3 - .LP .LP Produces a \f2pack200\fP file. With this option a suitable compressor must be used, and the target system must use a corresponding decompresser. -.LP -.RS 3 - .LP .LP \f2% pack200 \-\-no\-gzip myarchive.pack myarchive.jar\fP .LP -.RE -.RE .LP \f4\-G \-\-strip\-debug\fP -.LP -.RS 3 - .LP .LP Strips attributes used for debugging from the output. These include \f2SourceFile\fP, \f2LineNumberTable\fP, \f2LocalVariableTable\fP and \f2LocalVariableTypeTable\fP. Removing these attributes reduces the size of both downloads and installations but reduces the usefulness of debuggers. .LP -.RE +.LP +\f4\-\-keep\-file\-order\fP +.LP +.LP +Preserve the order of files in the input file; this is the default behavior. +.LP .LP \f4\-O \-\-no\-keep\-file\-order\fP -.LP -.RS 3 - .LP .LP The packer will reorder and transmit all elements. Additionally, the packer may remove JAR directory names. This will reduce the download size; however, certain JAR file optimizations, such as indexing, may not work correctly. .LP -.RE .LP \f4\-Svalue \-\-segment\-limit=\fP\f2value\fP -.LP -.RS 3 - .LP .LP The value is the estimated target size N (in bytes) of each archive segment. If a single input file requires @@ -151,17 +116,13 @@ more than N bytes, it will be given its own archive segment. As a special case, The size of each segment is estimated by counting the size of each input file to be transmitted in the segment, along with the size of its name and other transmitted properties. .LP .LP -The default is \f21000000\fP (a million bytes). This allows input JAR files of moderate size to be transmitted in one segment. It also puts a limit on memory requirements for packers and unpackers. +The default is \-1, which means the packer will always create a single segment output file. In cases where extremely large output files are generated, users are strongly encouraged to use segmenting or break up the input file into smaller JARs. .LP .LP A 10MB JAR packed without this limit will typically pack about 10% smaller, but the packer may require a larger Java heap (about ten times the segment limit). .LP -.RE .LP \f4\-Evalue \-\-effort=\fP\f2value\fP -.LP -.RS 3 - .LP .LP If the value is set to a single decimal digit, the packer will use the indicated amount of effort in compressing the archive. Level \f21\fP may produce somewhat larger size and faster compression speed, while level \f29\fP will take much longer but may produce better compression. The special value \f20\fP instructs the packer to copy through the original JAR file directly with no compression. The JSR 200 standard requires any unpacker to understand this special case as a pass\-through of the entire archive. @@ -169,12 +130,8 @@ If the value is set to a single decimal digit, the packer will use the indicated .LP The default is \f25\fP, investing a modest amount of time to produce reasonable compression. .LP -.RE .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP -.LP -.RS 3 - .LP .LP Overrides the default, which preserves the input information, but may cause the transmitted archive to be larger. The possible values are: @@ -195,12 +152,8 @@ Preserve deflation hints observed in the input JAR. (This is the default.) .RE .LP -.RE .LP \f4\-mvalue \-\-modification\-time=\fP\f2value\fP -.LP -.RS 3 - .LP .LP The possible values are: @@ -215,22 +168,14 @@ Preserves modification times observed in the input JAR. (This is the default.) .RE .LP -.RE .LP \f4\-Pfile \-\-pass\-file=\fP\f2file\fP -.LP -.RS 3 - .LP .LP Indicates that a file should be passed through bytewise with no compression. By repeating the option, multiple files may be specified. There is no pathname transformation, except that the system file separator is replaced by the JAR file separator "\f2/\fP". The resulting file names must match exactly as strings with their occurrences in the JAR file. If file is a directory name, all files under that directory will be passed. .LP -.RE .LP \f4\-Uaction \-\-unknown\-attribute=\fP\f2action\fP -.LP -.RS 3 - .LP .LP Overrides the default behavior; i.e., the classfile containing the unknown attribute will be passed through with the specified action. The possible values for actions are: @@ -248,7 +193,6 @@ Upon encountering this attribute, the entire class will be transmitted as though .RE .LP -.RE .LP \f4\-Cattribute\-name=\fP\f2layout\fP \f3\-\-class\-attribute=\fP\f2attribute\-name=action\fP .br @@ -257,9 +201,6 @@ Upon encountering this attribute, the entire class will be transmitted as though \f4\-Mattribute\-name=\fP\f2layout\fP \f3\-\-method\-attribute=\fP\f2attribute\-name=action\fP .br \f4\-Dattribute\-name=\fP\f2layout\fP \f3\-\-code\-attribute=\fP\f2attribute\-name=action\fP -.LP -.RS 3 - .LP .LP With the above four options, the attribute layout can be specified for a class entity, such as Class attribute, Field attribute, Method attribute, and Code attribute. The attribute\-name is the name of the attribute for which the layout or action is being defined. The possible values for action are: @@ -282,18 +223,11 @@ Upon encountering this attribute, the attribute will be removed from the output. .LP Example: \f2\-\-class\-attribute=CompilationID=pass\fP will cause the class file containing this attribute to be passed through without further action by the packer. .LP -.RE .LP \f4\-f\fP\f2 \fP\f2pack.properties\fP \f3\-\-config\-file=\fP\f2pack.properties\fP -.LP -.RS 3 - .LP .LP A configuration file, containing Java properties to initialize the packer, may be specified on the command line. -.LP -.RS 3 - .LP .LP \f2% pack200 \-f pack.properties myarchive.pack.gz myarchive.jar\fP @@ -317,62 +251,47 @@ A configuration file, containing Java properties to initialize the packer, may b \f2# Change the segment limit to be unlimited.\fP .br \f2segment.limit=\-1\fP -.LP -.RE -.RE -.RS 3 - .LP .LP \f4\-v \-\-verbose\fP -.LP -.RS 3 - .LP .LP Outputs minimal messages. Multiple specification of this option will output more verbose messages. .LP -.RE .LP \f4\-q \-\-quiet\fP -.LP -.RS 3 - .LP .LP Specifies quiet operation with no messages. .LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP -.LP -.RS 3 - .LP .LP Specifies a log file to output messages. .LP -.RE .LP -\f4\-Joption\fP -.LP -.RS 3 - +\f4\-? \-h \-\-help\fP .LP .LP -Passes option to the Java launcher called by \f2pack200\fP. For example, \f2\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f2\-X\fP, it is not a standard option of \f2pack200\fP. It is a common convention for \f2\-J\fP to pass options to the underlying VM executing applications written in Java. +Prints help information about this command. +.LP +.LP +\f4\-V \-\-version\fP +.LP +.LP +Prints version information about this command. +.LP +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +Passes \f2option\fP to the Java launcher called by \f2pack200\fP. For example, \f2\-J\-Xms48m\fP sets the startup memory to 48 megabytes. Although it does not begin with \f2\-X\fP, it is not a standard option of \f2pack200\fP. It is a common convention for \f2\-J\fP to pass options to the underlying VM executing applications written in Java. .LP -.RE -.RE .SH "EXIT STATUS" -.LP - .LP .LP The following exit values are returned: -.LP -.RS 3 - .LP .LP \f2\ 0\fP for successful completion; @@ -380,7 +299,6 @@ The following exit values are returned: .LP \f2>0\fP if an error occurs. .LP -.RE .SH "SEE ALSO" .LP .RS 3 @@ -392,13 +310,13 @@ o .na \f2Java SE Documentation\fP @ .fi -http://java.sun.com/javase/6/docs/index.html +http://download.oracle.com/javase/7/docs/index.html .TP 2 o .na \f2Java Deployment Guide \- Pack200\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o jar(1) \- Java Archive Tool @@ -412,8 +330,6 @@ o .LP .SH "NOTES" -.LP - .LP .LP This command should not be confused with \f2pack(1)\fP. They are distinctly separate products. diff --git a/jdk/src/solaris/doc/sun/man/man1/policytool.1 b/jdk/src/solaris/doc/sun/man/man1/policytool.1 index 5d339637f39..8fd33bcdbf4 100644 --- a/jdk/src/solaris/doc/sun/man/man1/policytool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/policytool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH policytool 1 "02 Jun 2010" +.TH policytool 1 "10 May 2011" .LP .SH "Name" @@ -27,8 +27,6 @@ policytool \- PolicyTool Administration GUI Utility .LP \f3policytool\fP reads and writes a plain text policy file based on user input via the utility GUI. .SH "SYNOPSIS" -.LP - .LP .RS 3 .TP 3 @@ -57,7 +55,7 @@ The file name .na \f2the Policytool Users Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html. +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyGuide.html. .SH "OPTIONS" .RS 3 .TP 3 @@ -67,22 +65,22 @@ Loads \f2filename\fP. .na \f2Default Policy Implementation and Syntax\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyFiles.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyFiles.html .br .na \f2Policy Tool Users' Guide\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/PolicyGuide.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/PolicyGuide.html .br .na \f2Security Permissions\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/permissions.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/permissions.html .br .na \f2Security Overview\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/security/overview/jsoverview.html +http://download.oracle.com/javase/7/docs/technotes/guides/security/overview/jsoverview.html .br .RE .RE diff --git a/jdk/src/solaris/doc/sun/man/man1/rmic.1 b/jdk/src/solaris/doc/sun/man/man1/rmic.1 index ffe0b1c04fc..95f166206f2 100644 --- a/jdk/src/solaris/doc/sun/man/man1/rmic.1 +++ b/jdk/src/solaris/doc/sun/man/man1/rmic.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmic 1 "02 Jun 2010" +.TH rmic 1 "10 May 2011" .LP .SH "Name" rmic \- The Java RMI Compiler -.LP -.RS 3 - .LP .LP \f3rmic\fP generates stub, skeleton, and tie classes for remote objects using either the JRMP or IIOP protocols. Also generates OMG IDL. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,8 +40,6 @@ rmic [ \fP\f3options\fP\f3 ] \fP\f4package\-qualified\-class\-name(s)\fP\f3 .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmic\fP compiler generates stub and skeleton class files (JRMP protocol) and stub and tie class files (IIOP protocol) for remote objects. These classes files are generated from compiled Java programming language classes that are remote object implementation classes. A remote implementation class is a class that implements the interface \f2java.rmi.Remote\fP. The class names in the \f3rmic\fP command must be for classes that have been compiled successfully with the \f3javac\fP command and must be fully package qualified. For example, running \f3rmic\fP on the class file name \f2HelloImpl\fP as shown here: @@ -80,8 +72,6 @@ By default, \f3rmic\fP generates stub classes that use the 1.2 JRMP stub protoco A stub implements only the remote interfaces, not any local interfaces that the remote object also implements. Because a JRMP stub implements the same set of remote interfaces as the remote object itself, a client can use the Java programming language's built\-in operators for casting and type checking. For IIOP, the \f2PortableRemoteObject.narrow\fP method must be used. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -90,9 +80,6 @@ Overrides location of bootstrap class files .TP 3 \-classpath path Specifies the path \f3rmic\fP uses to look up classes. This option overrides the default or the CLASSPATH environment variable if it is set. Directories are separated by colons. Thus the general format for \f2path\fP is: -.RS 3 - -.LP .nf \f3 .fl @@ -100,11 +87,7 @@ Specifies the path \f3rmic\fP uses to look up classes. This option overrides the .fl \fP .fi -.RE For example: -.RS 3 - -.LP .nf \f3 .fl @@ -112,13 +95,9 @@ For example: .fl \fP .fi -.RE .TP 3 \-d directory Specifies the root destination directory for the generated class hierarchy. You can use this option to specify a destination directory for the stub, skeleton, and tie files. For example, the command -.RS 3 - -.LP .nf \f3 .fl @@ -126,7 +105,6 @@ Specifies the root destination directory for the generated class hierarchy. You .fl \fP .fi -.RE would place the stub and skeleton classes derived from \f2MyClass\fP into the directory \f2/java/classes/foo\fP. If the \f2\-d\fP option is not specified, the default behavior is as if \f2"\-d\ ."\fP were specified: the package hierarchy of the target class is created in the current directory, and stub/tie/skeleton files are placed within it. (Note that in some previous versions of \f3rmic\fP, if \f2\-d\fP was not specified, then the package hierarchy was \f2not\fP created, and all of the output files were placed directly in the current directory.) .br \ @@ -136,16 +114,16 @@ Overrides location of installed extensions .TP 3 \-g Enables generation of all debugging information, including local variables. By default, only line number information is generated. -.LP .TP 3 \-idl Causes \f2rmic\fP to generate OMG IDL for the classes specified and any classes referenced. IDL provides a purely declarative, programming language\-independent way of specifying an object's API. The IDL is used as a specification for methods and data that can be written in and invoked from any language that provides CORBA bindings. This includes Java and C++ among others. See the .na \f2Java Language to IDL Mapping\fP @ .fi -http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) document for a complete description. -.LP -When the \f2\-idl\fP option is used, other options also include: +http://www.omg.org/technology/documents/formal/java_language_mapping_to_omg_idl.htm (OMG) document for a complete description. +.br +.br +When the \f2\-idl\fP option is used, other options also include: .RS 3 .TP 3 \-always or \-alwaysgenerate @@ -160,31 +138,22 @@ Specifies IDLEntity package mapping. For example:\ \f2\-idlModule foo.bar my::r \-idlFile\ fromJavaPackage[.class]\ toIDLFile Specifies IDLEntity file mapping. For example:\ \f2\-idlFile test.pkg.X TEST16.idl\fP.\ .RE -.LP .TP 3 \-iiop -Causes \f2rmic\fP to generate IIOP stub and tie classes, rather than JRMP stub and skeleton classes. A stub class is a local proxy for a remote object and is used by clients to send calls to a server. Each remote interface requires a stub class, which implements that remote interface. A client's reference to a remote object is actually a reference to a stub. Tie classes are used on the server side to process incoming calls, and dispatch the calls to the proper implementation class. Each implementation class requires a tie class. -.LP +Causes \f2rmic\fP to generate IIOP stub and tie classes, rather than JRMP stub and skeleton classes. A stub class is a local proxy for a remote object and is used by clients to send calls to a server. Each remote interface requires a stub class, which implements that remote interface. A client's reference to a remote object is actually a reference to a stub. Tie classes are used on the server side to process incoming calls, and dispatch the calls to the proper implementation class. Each implementation class requires a tie class. +.br +.br Invoking \f2rmic\fP with the \f2\-iiop\fP generates stubs and ties that conform to this naming convention: -.RS 3 - -.LP .nf \f3 .fl _<implementationName>_stub.class .fl -\fP -.br -\f3 -.fl _<interfaceName>_tie.class .fl \fP .fi -.RE -.LP -When the \f2\-iiop\fP option is used, other options also include: +When the \f2\-iiop\fP option is used, other options also include: .RS 3 .TP 3 \-always or \-alwaysgenerate @@ -197,13 +166,11 @@ Do not create stubs optimized for same\-process clients and servers. Must be used with the \f2\-idl\fP option. Prevents addition of \f2valuetype\fP methods and initializers to emitted IDL. These methods and initializers are optional for \f2valuetype\fPs, and are generated unless the \f2\-noValueMethods\fP option is specified when using the \f2\-idl\fP option. .TP 3 \-poa -Changes the inheritance from \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP to \f2org.omg.PortableServer.Servant\fP. -.LP -The \f2PortableServer\fP module for the +Changes the inheritance from \f2org.omg.CORBA_2_3.portable.ObjectImpl\fP to \f2org.omg.PortableServer.Servant\fP. The \f2PortableServer\fP module for the .na \f2Portable Object Adapter\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/POA.html (POA) defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. Based on the OMG IDL to Java Language Mapping Specification, CORBA V 2.3.1 ptc/00\-01\-08.pdf. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/POA.html (POA) defines the native \f2Servant\fP type. In the Java programming language, the \f2Servant\fP type is mapped to the Java \f2org.omg.PortableServer.Servant\fP class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. Based on the OMG IDL to Java Language Mapping Specification, CORBA V 2.3.1 ptc/00\-01\-08.pdf. .RE .TP 3 \-J @@ -214,18 +181,18 @@ Retains the generated \f2.java\fP source files for the stub, skeleton, and/or ti .TP 3 \-nowarn Turns off warnings. If used the compiler does not print out any warnings. -.LP +.TP 3 +\-nowrite +Does not write compiled classes to the file system. .TP 3 \-vcompat Generates stub and skeleton classes compatible with both the 1.1 and 1.2 JRMP stub protocol versions. (This option was the default in releases prior to 5.0.) The generated stub classes will use the 1.1 stub protocol version when loaded in a JDK 1.1 virtual machine and will use the 1.2 stub protocol version when loaded into a 1.2 (or later) virtual machine. The generated skeleton classes will support both 1.1 and 1.2 stub protocol versions. The generated classes are relatively large in order to support both modes of operation. .TP 3 \-verbose Causes the compiler and linker to print out messages about what classes are being compiled and what class files are being loaded. -.LP .TP 3 \-v1.1 Generates stub and skeleton classes for the 1.1 JRMP stub protocol version only. Note that this option is only useful for generating stub classes that are serialization\-compatible with pre\-existing, statically\-deployed stub classes that were generated by the \f3rmic\fP tool from JDK 1.1 and that cannot be upgraded (and dynamic class loading is not being used). -.LP .TP 3 \-v1.2 (default) Generates stub classes for the 1.2 JRMP stub protocol version only. No skeleton classes are generated with this option because skeleton classes are not used with the 1.2 stub protocol version. The generated stub classes will not work if they are loaded into a JDK 1.1 virtual machine. @@ -233,16 +200,11 @@ Generates stub and skeleton classes for the 1.1 JRMP stub protocol version only. .LP .SH "ENVIRONMENT VARIABLES" -.LP - .LP .RS 3 .TP 3 CLASSPATH Used to provide the system a path to user\-defined classes. Directories are separated by colons. For example, -.RS 3 - -.LP .nf \f3 .fl @@ -251,18 +213,15 @@ Used to provide the system a path to user\-defined classes. Directories are sepa \fP .fi .RE -.RE .LP .SH "SEE ALSO" -.LP - .LP .LP java(1), javac(1), .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/rmid.1 b/jdk/src/solaris/doc/sun/man/man1/rmid.1 index 20171febd0e..763ee378af9 100644 --- a/jdk/src/solaris/doc/sun/man/man1/rmid.1 +++ b/jdk/src/solaris/doc/sun/man/man1/rmid.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1998, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmid 1 "02 Jun 2010" +.TH rmid 1 "10 May 2011" .LP .SH "Name" rmid \- The Java RMI Activation System Daemon -.LP -.RS 3 - .LP .LP \f3rmid\fP starts the activation system daemon that allows objects to be registered and activated in a virtual machine (VM). .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -46,19 +40,17 @@ rmid [options] .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmid\fP tool starts the activation system daemon. The activation system daemon must be started before activatable objects can be either registered with the activation system or activated in a VM. See the .na \f2Java RMI Specification\fP @ .fi -http://java.sun.com/javase/6/docs/platform/rmi/spec/rmiTOC.html and +http://download.oracle.com/javase/7/docs/platform/rmi/spec/rmiTOC.html and .na \f2Activation tutorials\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi/activation/overview.html for details on how to write programs that use activatable remote objects. +http://download.oracle.com/javase/7/docs/technotes/guides/rmi/activation/overview.html for details on how to write programs that use activatable remote objects. .LP .LP The daemon can be started by executing the \f2rmid\fP command, and specifying a security policy file, as follows: @@ -132,8 +124,6 @@ The \f2\-log\fP option is required. If this option is not specified, \f2rmid\fP See the man pages for \f2inetd\fP (Solaris) or \f2xinetd\fP (Linux) for details on how to configure services to be started on demand. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -169,7 +159,6 @@ Specifies an option that is passed to the \f2java\fP interpreter running \f2rmid .TP 3 \-J\-Dsun.rmi.activation.execPolicy=<policy> Specifies the policy that \f2rmid\fP employs to check commands and command\-line options used to launch the VM in which an activation group runs. Please note that this option exists only in Sun's implementation of the Java RMI activation daemon. If this property is not specified on the command line, the result is the same as if \f2\-J\-Dsun.rmi.activation.execPolicy=default\fP were specified. The possible values of \f2<policy>\fP can be \f2default\fP, \f2<policyClassName>\fP, or \f2none\fP: -.LP .RS 3 .TP 2 o @@ -255,17 +244,9 @@ The first permission granted allow \f2rmid\fP to execute the 1.7.0 version of th The third permission granted, an \f2ExecOptionPermission\fP, allows \f2rmid\fP to launch an activation group that defines the security policy file to be \f2/files/policies/group.policy\fP. The next permission allows the \f2java.security.debug\fP property to be used by an activation group. The last permission allows any property in the \f2sun.rmi\fP property name hierarchy to be used by activation groups. .LP To start \f2rmid\fP with a policy file, the \f2java.security.policy\fP property needs to be specified on \f2rmid\fP's command line, for example: -.RS 3 - -.LP -.LP -\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .LP +\f2rmid \-J\-Djava.security.policy=rmid.policy\fP .RE -.RE -.TP 2 -o -.LP .TP 2 o \f4<policyClassName>\fP @@ -285,7 +266,6 @@ The \f2policyClassName\fP specifies a public class with a public, no\-argument c \fP .fi Before launching an activation group, \f2rmid\fP calls the policy's \f2checkExecCommand\fP method, passing it the activation group descriptor and an array containing the complete command to launch the activation group. If the \f2checkExecCommand\fP throws a \f2SecurityException\fP, \f2rmid\fP will not launch the activation group and an \f2ActivationException\fP will be thrown to the caller attempting to activate the object. -.LP .TP 2 o \f3none\fP @@ -318,9 +298,9 @@ Specifies the port \f2rmid\fP's registry uses. The activation system daemon bind \-stop Stops the current invocation of \f2rmid\fP, for a port specified by the \f2\-port\fP option. If no port is specified, it will stop the \f2rmid\fP running on port 1098. .RE -.SH "ENVIRONMENT VARIABLES" -.LP +.LP +.SH "ENVIRONMENT VARIABLES" .LP .RS 3 .TP 3 @@ -337,14 +317,12 @@ Used to provide the system a path to user\-defined classes. Directories are sepa .LP .SH "SEE ALSO" -.LP - .LP .LP rmic(1), .na \f2CLASSPATH\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/tools/index.html#classpath, java(1) +http://download.oracle.com/javase/7/docs/technotes/tools/index.html#classpath, java(1) .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/rmiregistry.1 b/jdk/src/solaris/doc/sun/man/man1/rmiregistry.1 index f3bc87b0b39..c94d270d623 100644 --- a/jdk/src/solaris/doc/sun/man/man1/rmiregistry.1 +++ b/jdk/src/solaris/doc/sun/man/man1/rmiregistry.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH rmiregistry 1 "02 Jun 2010" +.TH rmiregistry 1 "10 May 2011" .LP .SH "Name" rmiregistry \- The Java Remote Object Registry .LP .RS 3 - -.LP -.LP -The \f3rmiregistry\fP command starts a remote object registry on the specified port on the current host. -.LP +The \f3rmiregistry\fP command starts a remote object registry on the specified port on the current host. .RE -.SH "SYNOPSIS" -.LP +.LP +.SH "SYNOPSIS" .LP .nf \f3 @@ -46,8 +42,6 @@ rmiregistry [\fP\f4port\fP\f3] .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f3rmiregistry\fP command creates and starts a remote object registry on the specified \f2port\fP on the current host. If \f2port\fP is omitted, the registry is started on port 1099. The \f3rmiregistry\fP command produces no output and is typically run in the background. For example: @@ -68,8 +62,6 @@ The methods of the \f2java.rmi.registry.LocateRegistry\fP class are used to get The URL\-based methods of the \f2java.rmi.Naming\fP class operate on a registry and can be used to look up a remote object on any host, and on the local host: bind a simple (string) name to a remote object, rebind a new name to a remote object (overriding the old binding), unbind a remote object, and list the URLs bound in the registry. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -80,17 +72,12 @@ Used in conjunction with any \f2java\fP option, it passes the option following t .LP .SH "SEE ALSO" .LP - -.LP -.LP java(1), .na \f2java.rmi.registry.LocateRegistry\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/registry/LocateRegistry.html and +http://download.oracle.com/javase/7/docs/api/java/rmi/registry/LocateRegistry.html and .na \f2java.rmi.Naming\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/rmi/Naming.html -.LP - +http://download.oracle.com/javase/7/docs/api/java/rmi/Naming.html diff --git a/jdk/src/solaris/doc/sun/man/man1/schemagen.1 b/jdk/src/solaris/doc/sun/man/man1/schemagen.1 index f23cae2052f..59c4c97ea58 100644 --- a/jdk/src/solaris/doc/sun/man/man1/schemagen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/schemagen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH schemagen 1 "02 Jun 2010" +.TH schemagen 1 "10 May 2011" .LP .SH "Name" @@ -30,8 +30,7 @@ schemagen \- Java(TM) Architecture for XML Binding Schema Generator .br \f3Implementation Version:\fP 2.1.3 .LP -.SS -Launching schemagen +.SH "Launching schemagen" .LP .LP The schema generator can be launched using the appropriate \f2schemagen\fP shell script in the \f2bin\fP directory for your platform. @@ -45,9 +44,6 @@ We also provide an Ant task to run the schema generator \- see the instructions \f2using schemagen with Ant\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html. -.LP -.RS 3 - .LP .nf \f3 @@ -58,19 +54,13 @@ Note: Writing schema1.xsd .fl \fP .fi -.RE .LP .LP If your java sources/classes reference other classes, they must be accessable on your system CLASSPATH environment variable, or they need to be given to the tool by using the \f2\-classpath\fP/\f2\-cp\fP options. Otherwise you will see errors when generating your schema. .LP -.RS 3 - -.LP -\f3Command Line Options\fP -.LP -.RS 3 - +.SS +Command Line Options .LP .nf \f3 @@ -79,24 +69,29 @@ Usage: schemagen [\-options ...] <java files> .fl .fl -Options: +Options: .fl - \-d <path> : Specify where to place processor and javac generated class files + \-d <path> : specify where to place processor and javac generated class files .fl - \-cp <path> : Specify where to find user specified files + \-cp <path> : specify where to find user specified files .fl - \-classpath <path> : Specify where to find user specified files + \-classpath <path> : specify where to find user specified files .fl - \-help : Display this usage message + \-encoding <encoding> : specify encoding to be used for apt/javac invocation +.fl + +.fl + \-episode <file> : generate episode file for separate compilation +.fl + \-version : display version information +.fl + \-help : display this usage message .fl \fP .fi -.RE .LP -.RE -.SS -Generated Resource Files +.SH "Generated Resource Files" .LP .LP The current schema generator simply creates a schema file for each namespace referenced in your Java classes. There is no way to control the name of the generated schema files at this time. For that purpose, use @@ -105,7 +100,8 @@ The current schema generator simply creates a schema file for each namespace ref .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/schemagenTask.html. .LP -.SH "See Also" +.SH "Name" +See Also .LP .RS 3 .TP 2 @@ -124,7 +120,7 @@ o .na \f2Java Architecture for XML Binding (JAXB)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/xml/jaxb/index.html .RE .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/serialver.1 b/jdk/src/solaris/doc/sun/man/man1/serialver.1 index 5b15b5423a8..cb653146ba7 100644 --- a/jdk/src/solaris/doc/sun/man/man1/serialver.1 +++ b/jdk/src/solaris/doc/sun/man/man1/serialver.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1997, 2011, 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 @@ -19,22 +19,16 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH serialver 1 "02 Jun 2010" +.TH serialver 1 "10 May 2011" .LP .SH "Name" serialver \- The Serial Version Command -.LP -.RS 3 - .LP .LP The \f3serialver\fP command returns the \f2serialVersionUID\fP. .LP -.RE .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -43,9 +37,6 @@ The \f3serialver\fP command returns the \f2serialVersionUID\fP. .fl .fi -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -57,17 +48,12 @@ One or more class names .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP \f3serialver\fP returns the \f2serialVersionUID\fP for one or more classes in a form suitable for copying into an evolving class. When invoked with no arguments it prints a usage line. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -87,37 +73,25 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "NOTES" -.LP - .LP .LP The \f3serialver\fP command loads and initializes the specified classes in its virtual machine, and by default, it does not set a security manager. If \f3serialver\fP is to be run with untrusted classes, a security manager can be set with the following option: -.LP -.RS 3 - .LP .LP \f2\-J\-Djava.security.manager\fP .LP -.RE .LP and, if necessary, a security policy can be specified with the following option: -.LP -.RS 3 - .LP .LP \f2\-J\-Djava.security.policy=<policy file>\fP .LP -.RE .SH "SEE ALSO" -.LP - .LP .LP .na \f2java.io.ObjectStreamClass\fP @ .fi -http://java.sun.com/javase/6/docs/api/java/io/ObjectStreamClass.html +http://download.oracle.com/javase/7/docs/api/java/io/ObjectStreamClass.html .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/servertool.1 b/jdk/src/solaris/doc/sun/man/man1/servertool.1 index 5606aa1b7ab..fbb0829a124 100644 --- a/jdk/src/solaris/doc/sun/man/man1/servertool.1 +++ b/jdk/src/solaris/doc/sun/man/man1/servertool.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2001, 2011, 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 @@ -19,20 +19,14 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH servertool 1 "02 Jun 2010" +.TH servertool 1 "10 May 2011" .LP .SH "Name" servertool \- The Java(TM) IDL Server Tool .LP -.RS 3 - -.LP -\f3servertool\fP provides a command\-line interface for application programmers to register, unregister, startup, and shutdown a persistent server. -.RE +\f3servertool\fP provides a command\-line interface for application programmers to register, unregister, startup, and shutdown a persistent server. .SH "SYNOPSIS" -.LP - .LP .nf \f3 @@ -53,15 +47,11 @@ If you enter a command when starting \f2servertool\fP, the Java IDL Server Tool The \f2\-ORBInitialPort\fP \f2nameserverport\fP option is \f3required\fP. The value for \f2nameserverport\fP must specify the port on which \f2orbd\fP is running and listening for incoming requests. When using Solaris software, you must become root to start a process on a port under 1024. For this reason, we recommend that you use a port number greater than or equal to 1024 for the \f2nameserverport\fP. .LP .SH "DESCRIPTION" -.LP - .LP .LP The \f2servertool\fP provides the command\-line interface for the application programmers to register, unregister, startup, and shutdown a persistent server. Other commands are provided to obtain various statistical information about the server. .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -74,8 +64,6 @@ Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the .LP .SH "COMMANDS" -.LP - .LP .RS 3 .TP 3 @@ -121,7 +109,5 @@ Exit the server tool. .LP .SH "SEE ALSO" -.LP - .LP orbd(1) diff --git a/jdk/src/solaris/doc/sun/man/man1/tnameserv.1 b/jdk/src/solaris/doc/sun/man/man1/tnameserv.1 index bdafd440d25..2279b17520e 100644 --- a/jdk/src/solaris/doc/sun/man/man1/tnameserv.1 +++ b/jdk/src/solaris/doc/sun/man/man1/tnameserv.1 @@ -1,4 +1,4 @@ -." Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 1999, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH tnameserv 1 "02 Jun 2010" +.TH tnameserv 1 "10 May 2011" .LP .SH "Name" @@ -30,7 +30,7 @@ This document discusses using the Java IDL Transient Naming Service, \f2tnameser .na \f2Java IDL Naming Service Included with ORBD\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/jidlNaming.html topic. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/jidlNaming.html topic. .LP .LP Topics in this section include: @@ -120,11 +120,11 @@ For the client and server to find the Naming Service, they must be made aware of .na \f2The Hello World Example Using RMI\-IIOP\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/rmi\-iiop/rmiiiopexample.html. You could also use the command line options \f2\-ORBInitialPort\fP \f2nameserverport#\fP and \f2\-ORBInitialHost\fP \f2nameserverhostname\fP to tell the client and server where to find the Naming Service. +http://download.oracle.com/javase/7/docs/technotes/guides/rmi\-iiop/rmiiiopexample.html. You could also use the command line options \f2\-ORBInitialPort\fP \f2nameserverport#\fP and \f2\-ORBInitialHost\fP \f2nameserverhostname\fP to tell the client and server where to find the Naming Service. .na \f2Java IDL: Running the Hello World Example on TWO Machines\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/idl/tutorial/jidl2machines.html shows one way of doing this using the command line option. +http://download.oracle.com/javase/7/docs/technotes/guides/idl/tutorial/jidl2machines.html shows one way of doing this using the command line option. .LP .LP For example, suppose the Transient Naming Service, \f2tnameserv\fP is running on port 1050 on host \f2nameserverhost\fP. The client is running on host \f2clienthost\fP and the server is running on host \f2serverhost\fP. @@ -170,16 +170,12 @@ The \-J option .LP This command\-line option is available for use with \f2tnameserve\fP: .RS 3 - -.LP -.RS 3 .TP 3 \-Joption Pass \f2option\fP to the Java virtual machine, where \f2option\fP is one of the options described on the reference page for java(1). For example, \f3\-J\-Xms48m\fP sets the startup memory to 48 megabytes. It is a common convention for \f3\-J\fP to pass options to the underlying virtual machine. .RE .LP -.RE .SH "Stopping the Java\ IDL Transient Naming Service" .LP .LP @@ -190,28 +186,27 @@ To stop the Java\ IDL naming service, use the relevant operating system command, .LP The following sample program illustrates how to add names to the namespace. It is a self\-contained Transient Naming Service client that creates the following simple tree. .LP -.nf -\f3 -.fl -\fP\f3 -.fl - \fP\f4Initial\fP\f3 -.fl - \fP\f4Naming Context\fP\f3 -.fl - / \\ -.fl - / \\ -.fl - plans \fP\f4Personal\fP\f3 -.fl - / \\ -.fl - / \\ -.fl - calendar schedule\fP -.fl -.fi +.RS 3 +.TP 2 +o +\f4Initial Naming Context\fP +.RS 3 +.TP 2 +* +\f3plans\fP +.TP 2 +* +\f4Personal\fP +.RS 3 +.TP 2 +- +\f3calendar\fP +.TP 2 +- +\f3schedule\fP +.RE +.RE +.RE .LP .LP diff --git a/jdk/src/solaris/doc/sun/man/man1/unpack200.1 b/jdk/src/solaris/doc/sun/man/man1/unpack200.1 index 13ec2b19667..ff6eb224090 100644 --- a/jdk/src/solaris/doc/sun/man/man1/unpack200.1 +++ b/jdk/src/solaris/doc/sun/man/man1/unpack200.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2004, 2011, 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 @@ -19,24 +19,19 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH unpack200 1 "02 Jun 2010" +.TH unpack200 1 "10 May 2011" .LP .SH "Name" unpack200 \- JAR Unpacking tool .LP .SH "SYNOPSIS" -.LP - .LP .LP \f4unpack200\fP\f2 [ \fP\f2options\fP ] \f2input\-file\fP \f2JAR\-file\fP .LP .LP Options may be in any order. The last option on the command line supersedes all previously specified options. -.LP -.RS 3 - .LP .RS 3 .TP 3 @@ -48,99 +43,71 @@ Name of the output JAR file. .RE .LP -.RE .SH "DESCRIPTION" -.LP - .LP .LP \f2unpack200\fP is a native implementation that transforms a packed file produced by \f2pack200\fP(1) into a JAR file. Typical usage: -.LP -.RS 3 - .LP .LP \f2% unpack200 myarchive.pack.gz myarchive.jar\fP .LP -.RE .LP In this example, the \f2myarchive.jar\fP is produced from \f2myarchive.pack.gz\fP using the default \f2unpack200\fP settings. .LP .SH "OPTIONS" -.LP -.SS -Standard Options -.LP -.RS 3 - .LP .LP \f4\-Hvalue \-\-deflate\-hint=\fP\f2value\fP -.LP -.RS 3 - .LP .LP Sets the deflation to be \f2true\fP, \f2false\fP, or \f2keep\fP on all entries within a JAR file. The default mode is \f2keep\fP. If \f2true\fP or \f2false\fP, overrides the default behavior and sets the deflation mode on all entries within the output JAR file. -.LP -.RE -.RE -.SS -Non\-Standard Options -.LP -.RS 3 - .LP .LP \f4\-r \-\-remove\-pack\-file\fP -.LP -.RS 3 - .LP .LP Removes the input packed file. .LP -.RE .LP \f4\-v \-\-verbose\fP -.LP -.RS 3 - .LP .LP Outputs minimal messages. Multiple specification of this option will output more verbose messages. .LP -.RE .LP \f4\-q \-\-quiet\fP -.LP -.RS 3 - .LP .LP Specifies quiet operation with no messages. .LP -.RE .LP \f4\-lfilename \-\-log\-file=\fP\f2filename\fP -.LP -.RS 3 - .LP .LP Specifies a log file to output messages. .LP -.RE -.RE -.SH "EXIT STATUS" .LP - +\f4\-? \-h \-\-help\fP +.LP +.LP +Prints help information about this command. +.LP +.LP +\f4\-V \-\-version\fP +.LP +.LP +Prints version information about this command. +.LP +.LP +\f4\-J\fP\f2option\fP +.LP +.LP +Passes \f2option\fP to the Java launcher called by \f2unpack200\fP. +.LP +.SH "EXIT STATUS" .LP .LP The following exit values are returned: -.LP -.RS 3 - .LP .LP \f2\ 0\fP if successful completion; @@ -148,7 +115,6 @@ The following exit values are returned: .LP \f2>0\fP if an error occurred. .LP -.RE .SH "SEE ALSO" .LP .RS 3 @@ -160,13 +126,13 @@ o .na \f2Java SE Documentation\fP @ .fi -http://java.sun.com/javase/6/docs/index.html +http://download.oracle.com/javase/7/docs/index.html .TP 2 o .na \f2Java Deployment Guide \- Pack200\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/deployment/deployment\-guide/pack200.html +http://download.oracle.com/javase/7/docs/technotes/guides/deployment/deployment\-guide/pack200.html .TP 2 o jar(1) \- Java Archive Tool @@ -180,8 +146,6 @@ o .LP .SH "NOTES" -.LP - .LP .LP This command should not be confused with \f2unpack(1)\fP. They are distinctly separate products. diff --git a/jdk/src/solaris/doc/sun/man/man1/wsgen.1 b/jdk/src/solaris/doc/sun/man/man1/wsgen.1 index e210f1c2364..49acb9efd07 100644 --- a/jdk/src/solaris/doc/sun/man/man1/wsgen.1 +++ b/jdk/src/solaris/doc/sun/man/man1/wsgen.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,21 +19,15 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsgen 1 "02 Jun 2010" +.TH wsgen 1 "10 May 2011" .SH "Name" wsgen \- Java(TM) API for XML Web Services (JAX\-WS) 2.0 -.RS 3 - -.LP .LP \f3Specification Version:\fP 2.1 .br \f3Implementation Version:\fP 2.1.1 .LP -.LP The \f2wsgen\fP tool generates JAX\-WS portable artifacts used in JAX\-WS web services. The tool reads a web service endpoint implementation class (SEI) and generates all the required artifacts for web service deployment, and invocation -.LP -.RE .SH "Overview" .LP The \f2wsgen\fP tool generates JAX\-WS portable artifacts used in JAX\-WS web services. The tool reads a web service endpoint class and generates all the required artifacts for web service deployment, and invocation. JAXWS 2.1.1 RI also provides a wsgen ant task, see @@ -354,7 +348,7 @@ Used only in conjunction with the \f2\-wsdl\fP option. Used to specify a particu .nr 41 \n(80+(3*\n(38) .nr 81 +\n(41 .nr TW \n(81 -.if t .if \n(TW>\n(.li .tm Table at line 139 file Input is too wide - \n(TW units +.if t .if \n(TW>\n(.li .tm Table at line 133 file Input is too wide - \n(TW units .fc   .nr #T 0-1 .nr #a 0-1 diff --git a/jdk/src/solaris/doc/sun/man/man1/wsimport.1 b/jdk/src/solaris/doc/sun/man/man1/wsimport.1 index 6e10e4177aa..424a4cb98d9 100644 --- a/jdk/src/solaris/doc/sun/man/man1/wsimport.1 +++ b/jdk/src/solaris/doc/sun/man/man1/wsimport.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,7 +19,7 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH wsimport 1 "02 Jun 2010" +.TH wsimport 1 "10 May 2011" .SH "Name" wsimport \- Java(TM) API for XML Web Services (JAX\-WS) 2.0 .LP @@ -684,15 +684,296 @@ Multiple JAX\-WS and JAXB binding files can be specified using \f2\-b\fP option \f2customization documentation\fP @ .fi https://jax\-ws.dev.java.net/nonav/2.1.1/docs/customizations.html. +.LP +The following table lists \f2wsimport\fP non\-standard options: +.LP +.TS +.if \n+(b.=1 .nr d. \n(.c-\n(c.-1 +.de 35 +.ps \n(.s +.vs \n(.vu +.in \n(.iu +.if \n(.u .fi +.if \n(.j .ad +.if \n(.j=0 .na +.. +.nf +.nr #~ 0 +.if n .nr #~ 0.6n +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.fc +.nr 33 \n(.s +.rm 80 81 +.nr 34 \n(.lu +.eo +.am 81 +.br +.di a+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Map headers not bound to request or response message to Java method parameters. +.br +.di +.nr a| \n(dn +.nr a- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di b+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +WSDL URI that specifies the file that contains authorization information; this URI is in the following format: http://\f2<user name>\fP:\f2<password>\fP@\f2<host name>\fP/\f2<Web service name>\fP?wsdl +.br +.di +.nr b| \n(dn +.nr b- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di c+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Print debugging information. +.br +.di +.nr c| \n(dn +.nr c- \n(dl +.. +.ec \ +.eo +.am 80 +.br +.di d+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(80 .ll \n(80u +.in 0 +\f3\-Xno\-addressing\-databinding\fP +.br +.di +.nr d| \n(dn +.nr d- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di e+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Enable binding of W3C \f2EndpointReferenceType\fP to Java. +.br +.di +.nr e| \n(dn +.nr e- \n(dl +.. +.ec \ +.eo +.am 81 +.br +.di f+ +.35 +.ft \n(.f +.ll \n(34u*1u/3u +.if \n(.l<\n(81 .ll \n(81u +.in 0 +Do not compile generated Java files. +.br +.di +.nr f| \n(dn +.nr f- \n(dl +.. +.ec \ +.35 +.nf +.ll \n(34u +.nr 80 0 +.nr 38 \w\f3Option\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-XadditionalHeaders\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xauthfile <file>\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xdebug\fP +.if \n(80<\n(38 .nr 80 \n(38 +.nr 38 \w\f3\-Xnocompile\fP +.if \n(80<\n(38 .nr 80 \n(38 +.80 +.rm 80 +.nr 38 \n(d- +.if \n(80<\n(38 .nr 80 \n(38 +.nr 81 0 +.nr 38 \w\f3Description\fP +.if \n(81<\n(38 .nr 81 \n(38 +.81 +.rm 81 +.nr 38 \n(a- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(b- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(c- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(e- +.if \n(81<\n(38 .nr 81 \n(38 +.nr 38 \n(f- +.if \n(81<\n(38 .nr 81 \n(38 +.35 +.nf +.ll \n(34u +.nr 38 1n +.nr 79 0 +.nr 40 \n(79+(0*\n(38) +.nr 80 +\n(40 +.nr 41 \n(80+(3*\n(38) +.nr 81 +\n(41 +.nr TW \n(81 +.if t .if \n(TW>\n(.li .tm Table at line 193 file Input is too wide - \n(TW units +.fc   +.nr #T 0-1 +.nr #a 0-1 +.eo +.de T# +.ds #d .d +.if \(ts\n(.z\(ts\(ts .ds #d nl +.mk ## +.nr ## -1v +.ls 1 +.ls +.. +.ec +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3Option\fP\h'|\n(41u'\f3Description\fP +.ne \n(a|u+\n(.Vu +.if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-XadditionalHeaders\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.a+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(b|u+\n(.Vu +.if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xauthfile <file>\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.b+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(c|u+\n(.Vu +.if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xdebug\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.c+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(d|u+\n(.Vu +.ne \n(e|u+\n(.Vu +.if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) +.if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(40u +.in +\n(37u +.d+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.e+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.ne \n(f|u+\n(.Vu +.if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) +.ta \n(80u \n(81u +.nr 31 \n(.f +.nr 35 1m +\&\h'|\n(40u'\f3\-Xnocompile\fP\h'|\n(41u' +.mk ## +.nr 31 \n(## +.sp |\n(##u-1v +.nr 37 \n(41u +.in +\n(37u +.f+ +.in -\n(37u +.mk 32 +.if \n(32>\n(31 .nr 31 \n(32 +.sp |\n(31u +.fc +.nr T. 1 +.T# 1 +.35 +.rm a+ +.rm b+ +.rm c+ +.rm d+ +.rm e+ +.rm f+ +.TE +.if \n-(b.=0 .nr c. \n(.c-\n(d.-26 + .LP .SH "Example" .nf \f3 .fl -\fP\f3wsimport \-p stockquote http://stockquote.xyz/quote?wsdl\fP +\fP\f3wsimport \-p stockquote http://stockquote.example.com/quote?wsdl\fP .fl .fi .LP -This will generate the Java artifacts and compile them by importing the \f2http://stockquote.xyz/quote?wsdl\fP. +This will generate the Java artifacts and compile them by importing the \f2http://stockquote.example.com/quote?wsdl\fP. .br diff --git a/jdk/src/solaris/doc/sun/man/man1/xjc.1 b/jdk/src/solaris/doc/sun/man/man1/xjc.1 index a739d7d7acb..0425ba6480c 100644 --- a/jdk/src/solaris/doc/sun/man/man1/xjc.1 +++ b/jdk/src/solaris/doc/sun/man/man1/xjc.1 @@ -1,4 +1,4 @@ -." Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +." Copyright (c) 2005, 2011, 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 @@ -19,19 +19,18 @@ ." or visit www.oracle.com if you need additional information or have any ." questions. ." -.TH xjc 1 "02 Jun 2010" +.TH xjc 1 "10 May 2011" .LP -.ad c .SH "Name" xjc \- Java(TM) Architecture for XML Binding .br -Binding Compiler +Binding Compiler +.LP .LP \f3Specification Version:\fP 2.1 .br -\f3Reference Implementation (RI) Version:\fP 2.1.3 .ad l - +\f3Reference Implementation (RI) Version:\fP 2.1.3 .LP .SH "Launching xjc" .LP @@ -41,84 +40,87 @@ The binding compiler can be launched using the appropriate \f2xjc\fP shell scrip \f2using the XJC Ant task\fP @ .fi https://jaxb.dev.java.net/nonav/2.1.3/docs/xjcTask.html. -.LP -.RS 3 - .LP .LP \f2% xjc \-help\fP .LP -.RE -\f3Output\fP -.LP -.RS 3 - +.SS +Output .LP .nf \f3 .fl -Usage: xjc [\-options ...] <schema_file/URL/dir> ... [\-b <bindinfo>] ... +Usage: xjc [\-options ...] <schema file/URL/dir/jar> ... [\-b <bindinfo>] ... +.fl +If dir is specified, all schema files in it will be compiled. +.fl +If jar is specified, /META\-INF/sun\-jaxb.episode binding file will be compiled. .fl Options: .fl - \-nv : do not perform strict validation of the input schema(s) + \-nv : do not perform strict validation of the input schema(s) .fl - \-extension : allow vendor extensions \- do not strictly follow the + \-extension : allow vendor extensions \- do not strictly follow the Compatibility Rules and App E.2 from the JAXB Spec .fl - Compatibility Rules and App E.2 from the JAXB Spec + \-b <file/dir> : specify external bindings files (each <file> must have its own \-b); if a directory is given, **/*.xjb is searched .fl - \-b <file/dir> : specify external bindings files (each <file> must have its own \-b) + \-d <dir> : generated files will go into this directory .fl - If a directory is given, **/*.xjb is searched + \-p <pkg> : specifies the target package .fl - \-d <dir> : generated files will go into this directory + \-httpproxy <proxy> : set HTTP/HTTPS proxy; format is [user[:password]@]proxyHost:proxyPort .fl - \-p <pkg> : specifies the target package + \-httpproxyfile <f> : works like \-httpproxy but takes the argument in a file to protect password .fl - \-httpproxy <proxy> : set HTTP/HTTPS proxy. Format is [user[:password]@]proxyHost:proxyPort + \-classpath <arg> : specify where to find user class files .fl - \-httpproxyfile <file>: set the proxy string (same format as above). + \-catalog <file> : specify catalog files to resolve external entity references; support TR9401, XCatalog, and OASIS XML Catalog format .fl - \-classpath <arg> : specify where to find user class files + \-readOnly : generated files will be in read\-only mode .fl - \-catalog <file> : specify catalog files to resolve external entity references + \-npa : suppress generation of package level annotations (**/package\-info.java) .fl - support TR9401, XCatalog, and OASIS XML Catalog format. + \-no\-header : suppress generation of a file header with timestamp .fl - \-readOnly : generated files will be in read\-only mode + \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features .fl - \-npa : suppress generation of package level annotations (**/package\-info.java) + \-xmlschema : treat input as W3C XML Schema (default) .fl - \-no\-header : suppress generation of a file header with timestamp + \-relaxng : treat input as RELAX NG (experimental,unsupported) .fl - \-target 2.0 : behave like XJC 2.0 and generate code that doesnt use any 2.1 features. + \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) .fl - \-xmlschema : treat input as W3C XML Schema (default) + \-dtd : treat input as XML DTD (experimental,unsupported) .fl - \-relaxng : treat input as RELAX NG (experimental,unsupported) + \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) .fl - \-relaxng\-compact : treat input as RELAX NG compact syntax (experimental,unsupported) + \-verbose : be extra verbose .fl - \-dtd : treat input as XML DTD (experimental,unsupported) + \-quiet : suppress compiler output .fl - \-wsdl : treat input as WSDL and compile schemas inside it (experimental,unsupported) + \-help : display this help message .fl - \-verbose : be extra verbose + \-version : display version information .fl - \-quiet : suppress compiler output + .fl - \-help : display this help message + .fl - \-version : display version information +Extensions: +.fl + \-Xlocator : enable source location support for generated code +.fl + \-Xsync\-methods : generate accessor methods with the 'synchronized' keyword +.fl + \-mark\-generated : mark the generated code as @javax.annotation.Generated +.fl + \-episode <FILE> : generate the episode file for separate compilation .fl \fP .fi -.RE .LP .SH "OPTIONS" -.LP - .LP .RS 3 .TP 3 @@ -129,15 +131,9 @@ By default, the XJC binding compiler performs strict validation of the source sc By default, the XJC binding compiler strictly enforces the rules outlined in the Compatibility chapter of the JAXB Specification. Appendix E.2 defines a set of W3C XML Schema features that are not completely supported by JAXB v1.0. In some cases, you may be allowed to use them in the "\-extension" mode enabled by this switch. In the default (strict) mode, you are also limited to using only the binding customizations defined in the specification. By using the "\-extension" switch, you will be allowed to use the JAXB Vendor Extensions .TP 3 \-b <file> -Specify one or more external binding files to process. (Each binding file must have its own \f2"\-b"\fP switch.) The syntax of the external binding files is extremely flexible. You may have a single binding file that contains customizations for multiple schemas or you can break the customizations into multiple bindings files: -.RS 3 - -.LP -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP +Specify one or more external binding files to process. (Each binding file must have its own \f2"\-b"\fP switch.) The syntax of the external binding files is extremely flexible. You may have a single binding file that contains customizations for multiple schemas or you can break the customizations into multiple bindings files: \f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings123.xjb\fP .br -\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP -.RE -In addition, the ordering of the schema files and binding files on the command line does not matter. +\f2xjc schema1.xsd schema2.xsd schema3.xsd \-b bindings1.xjb \-b bindings2.xjb \-b bindings3.xjb\fP In addition, the ordering of the schema files and binding files on the command line does not matter. .TP 3 \-d <dir> By default, the XJC binding compiler will generate the Java content classes in the current directory. Use this option to specify an alternate output directory. The output directory must already exist, the XJC binding compiler will not create it for you. @@ -199,11 +195,29 @@ Display the compiler version information. <schema file/URL/dir> Specify one or more schema files to compile. If you specify a directory, then xjc will scan it for all schema files and compile them. .RE + +.LP .SS -Summary of Deprecated and Removed Command Line Options +Non\-Standard Command Line Options .LP .RS 3 +.TP 3 +\-Xlocator +Causes the generated code to expose SAX Locator information about the source XML in the Java bean instances after unmarshalling. +.TP 3 +\-Xsync\-methods +Causes all of the generated method signatures to include the \f2synchronized\fP keyword. +.TP 3 +\-mark\-generated +Mark the generated code with the annotation \f2@javax.annotation.Generated\fP. +.TP 3 +\-episode <file> +Generate the specified episode file for separate compilation. +.RE +.LP +.SS +Deprecated and Removed Command Line Options .LP .RS 3 .TP 3 @@ -215,13 +229,9 @@ Since the JAXB 2.0 specification has defined a portable runtime, it is no longer .TP 3 \-source The \-source compatibility switch was introduced in the first JAXB 2.0 Early Access release. We have decided to remove this switch from future releases of JAXB 2.0. If you need to generate 1.0.x code, please use an installation of the 1.0.x codebase. -.TP 3 -\-Xlocator & \-Xsync\-methods -These switches have been disabled for now. We plan on releasing this functionality as a separate download in the future. .RE .LP -.RE .SS Compiler Restrictions .LP @@ -280,7 +290,7 @@ o .na \f2Java Architecture for XML Binding (JAXB)\fP @ .fi -http://java.sun.com/javase/6/docs/technotes/guides/xml/jaxb/index.html +http://download.oracle.com/javase/7/docs/technotes/guides/xml/jaxb/index.html .RE .LP From 0852628421f4147c34b21eee80d8444ee60961cb Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 11 May 2011 12:53:13 -0700 Subject: [PATCH 144/147] 7004603: L10n needed for newly added codes in LocaleNames Reviewed-by: naoto --- .../util/resources/LocaleNames_de.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_es.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_fr.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_it.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_ja.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_ko.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_sv.properties | 673 +++++++++++++++++- .../util/resources/LocaleNames_zh.properties | 671 ++++++++++++++++- .../resources/LocaleNames_zh_TW.properties | 671 ++++++++++++++++- 9 files changed, 6040 insertions(+), 13 deletions(-) diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_de.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_de.properties index 09cfb15af70..158dd8a29f6 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_de.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_de.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=Zhuang zh=Chinesisch zu=Zulu +# key is ISO 639.2 language code +aar=Afar +abk=Abchasisch +ace=Aceh-Sprache +ach=Acholi-Sprache +ada=Adangme +ady=Adygeisch +afa=Afro-Asiatisch +afh=Afrihili +afr=Afrikaans +ain=Ainu-Sprache +aka=Akan +akk=Akkadisch +alb=Albanisch +ale=Aleutisch +alg=Algonkin-Sprache +alt=S\u00FCd-Altaisch +amh=Amharisch +ang=Altenglisch +anp=Angika +apa=Apache-Sprache +ara=Arabisch +arc=Aram\u00E4isch +arg=Aragonisch +arm=Armenisch +arn=Araukanisch +arp=Arapaho +art=Kunstsprache +arw=Arawak-Sprache +asm=Assamesisch +ast=Asturianisch +ath=Athapaskisch +aus=Australisch +ava=Avarisch +ave=Avestisch +awa=Awadhi +aym=Aymara +aze=Aserbaidschanisch +bad=Banda +bai=Bamileke-Sprache +bak=Baschkirisch +bal=Belutschisch +bam=Bambara +ban=Balinesisch +baq=Baskisch +bas=Basaa-Sprache +bat=Baltisch +bej=Bedauye +bel=Belorussisch +bem=Bemba-Sprache +ben=Bengalisch +ber=Berber-Sprache +bho=Bodschpuri +bih=Biharisch +bik=Bikol-Sprache +bin=Bini-Sprache +bis=Bislamisch +bla=Blackfoot-Sprache +bnt=Bantu-Sprache +bos=Bosnisch +bra=Braj-Bhakha +bre=Bretonisch +btk=Battakisch +bua=Burjatisch +bug=Buginesisch +bul=Bulgarisch +bur=Burmesisch +byn=Blin +cad=Caddo +cai=Zentralamerikanische Indianersprache +car=Karibisch +cat=Katalanisch +cau=Kaukasisch +ceb=Cebuano +cel=Keltisch +cha=Chamorro +chb=Chibcha-Sprache +che=Tschetschenisch +chg=Tschagataisch +chi=Chinesisch +chk=Trukesisch +chm=Tscheremissisch +chn=Chinook +cho=Choctaw +chp=Chipewyan +chr=Cherokee +chu=Kirchenslawisch +chv=Chuvash +chy=Cheyenne +cmc=Cham-Sprache +cop=Koptisch +cor=Cornish +cos=Korsisch +cpe=Kreolisch-Englische Sprache +cpf=Kreolisch-Franz\u00F6sische Sprache +cpp=Kreolisch-Portugiesische Sprache +cre=Cree +crh=Krimtatarisch +crp=Kreolische Sprache +csb=Kaschubisch +cus=Kuschitisch +cze=Tschechisch +dak=Dakota-Sprache +dan=D\u00E4nisch +dar=Darginisch +day=Dajak +del=Delaware-Sprache +den=Slave +dgr=Dogrib +din=Dinka-Sprache +div=Divehi +doi=Dogri +dra=Drawidisch +dsb=Niedersorbisch +dua=Duala +dum=Mittelniederl\u00E4ndisch +dut=Niederl\u00E4ndisch +dyu=Dyula-Sprache +dzo=Bhutani +efi=Efik +egy=\u00C4gyptisch +eka=Ekajuk +elx=Elamisch +eng=Englisch +enm=Mittelenglisch +epo=Esperanto +est=Estnisch +ewe=Ewe +ewo=Ewondo +fan=Pangwe-Sprache +fao=F\u00E4r\u00F6isch +fat=Fanti-Sprache +fij=Fidschi +fil=Philippinisch +fin=Finnisch +fiu=Finnougrisch +fon=Fon-Sprache +fre=Franz\u00F6sisch +frm=Mittelfranz\u00F6sisch +fro=Altfranz\u00F6sisch +frr=Nordfriesisch +frs=Ostfriesisch +fry=Westfriesisch +ful=Fulah +fur=Friulisch +gaa=Ga-Sprache +gay=Gayo +gba=Gbaya-Sprache +gem=Germanisch +geo=Georgisch +ger=Deutsch +gez=Geez +gil=Gilbertesisch +gla=G\u00E4lisch +gle=Irisch +glg=Galizisch +glv=Manx +gmh=Mittelhochdeutsch +goh=Althochdeutsch +gon=Gondi-Sprache +gor=Mongondou +got=Gotisch +grb=Grebo-Sprache +grc=Altgriechisch +gre=Modernes Griechisch (1453-) +grn=Guarani +gsw=Schweizerdeutsch +guj=Gujaratisch +gwi=Kutchin-Sprache +hai=Haida-Sprache +hat=Haitisch +hau=Haussa +haw=Hawaiisch +heb=Hebr\u00E4isch +her=Herero +hil=Hiligaynon-Sprache +him=Himachali +hin=Hindi +hit=Hethitisch +hmn=Miao-Sprache +hmo=Hiri Motu +hrv=Kroatisch +hsb=Obersorbisch +hun=Ungarisch +hup=Hupa +iba=Iban +ibo=Igbo +ice=Isl\u00E4ndisch +ido=Ido +iii=Sichuan Yi +ijo=Ijo-Sprache +iku=Inuktitut +ile=Interlingue +ilo=Ilokano-Sprache +ina=Interlingua (Internationale Hilfssprache, Vereinigung) +inc=Indoarisch +ind=Indonesisch +ine=Indogermanisch +inh=Inguschisch +ipk=Inupiak +ira=Iranische Sprache +iro=Irokesische Sprache +ita=Italienisch +jav=Javanesisch +jbo=Lojban +jpn=Japanisch +jpr=J\u00FCdisch-Persisch +jrb=J\u00FCdisch-Arabisch +kaa=Karakalpakisch +kab=Kabylisch +kac=Kachin-Sprache +kal=Kalaallisut (Gr\u00F6nl\u00E4ndisch) +kam=Kamba +kan=Kannada +kar=Karenisch +kas=Kaschmirisch +kau=Kanuri +kaw=Kawi +kaz=Kasachisch +kbd=Kabardinisch +kha=Khasi-Sprache +khi=Khoisan-Sprache +khm=Khmerisch, Zentral +kho=Sakisch +kik=Kikuyu +kin=Kinyarwanda +kir=Kirgisisch +kmb=Kimbundu-Sprache +kok=Konkani +kom=Komi +kon=Kongo +kor=Koreanisch +kos=Kosraeanisch +kpe=Kpelle-Sprache +krc=Karatschaiisch-Balkarisch +krl=Karelisch +kro=Kru-Sprache +kru=Oraon-Sprache +kua=Kuanyama +kum=Kumykisch +kur=Kurdisch +kut=Kutenai-Sprache +lad=Ladino +lah=Lahnda +lam=Lamba-Sprache +lao=Laotisch +lat=Lateinisch +lav=Lettisch +lez=Lesgisch +lim=Limburgisch +lin=Lingalisch +lit=Litauisch +lol=Mongo +loz=Rotse-Sprache +ltz=Luxemburgisch +lua=Luba-Lulua +lub=Luba-Katanga +lug=Ganda +lui=Luiseno-Sprache +lun=Lunda-Sprache +luo=Luo-Sprache +lus=Lushai-Sprache +mac=Mazedonisch +mad=Maduresisch +mag=Khotta +mah=Marshall +mai=Maithili +mak=Makassarisch +mal=Malaysisch +man=Manding-Sprache +mao=Maorisch +map=Austronesisch +mar=Marathi +mas=Massai-Sprache +may=Malay +mdf=Moksha +mdr=Mandaresisch +men=Mende-Sprache +mga=Mittelirisch (900-1200) +mic=Micmac-Sprache +min=Minangkabau-Sprache +mis=(andere Sprache) +mkh=Mon-Khmer-Sprache +mlg=Malagasisch +mlt=Maltesisch +mnc=Mandschurisch +mni=Meithei-Sprache +mno=Manobo-Sprache +moh=Mohawk-Sprache +mon=Mongolisch +mos=Mossi-Sprache +mul=Mehrsprachig +mun=Munda-Sprache +mus=Muskogee-Sprache +mwl=Mirandesisch +mwr=Marwari +myn=Maya-Sprache +myv=Ersja-Mordwinisch +nah=Nahuatl +nai=Nordamerikanische Indianersprache +nap=Neapolitanisch +nau=Nauru +nav=Navajo +nbl=Ndebele, S\u00FCd +nde=Ndebele, Nord +ndo=Ndonga +nds=Niederdeutsch +nep=Nepalesisch +new=Newan +nia=Nias-Sprache +nic=Cordoba +niu=Niue-Sprache +nno=Norwegisch, Nynorsk +nob=Bokmal, Norwegisch +nog=Nogai +non=Altnordisch +nor=Norwegisch +nqo=N'Ko +nso=Nord-Sotho-Sprache +nub=Nubisch +nwc=Alt-Newari +nya=Chichewa +nym=Nyamwezi-Sprache +nyn=Nyankole +nyo=Nyoro +nzi=Nzima +oci=Okzitanisch (nach 1500) +oji=Ojibwa +ori=Orija +orm=Oromo (Afan) +osa=Osage-Sprache +oss=Ossetisch +ota=Osmanisch +oto=Otomangue-Sprache +paa=Papuasprache +pag=Pangasinan-Sprache +pal=Mittelpersisch +pam=Pampanggan-Sprache +pan=Pundjabisch +pap=Papiamento +pau=Palau +peo=Altpersisch +per=Persisch +phi=Philippinisch +phn=Ph\u00F6nikisch +pli=Pali +pol=Polnisch +pon=Ponapeanisch +por=Portugiesisch +pra=Prakrit +pro=Altprovenzalisch +pus=Paschtunisch +que=Quechua +raj=Rajasthani +rap=Osterinsel-Sprache +rar=Rarotonganisch +roa=Romanische Sprache +roh=Romantsch +rom=Romani +rum=Rum\u00E4nisch +run=Kirundisch +rup=Aromunisch +rus=Russisch +sad=Sandawe-Sprache +sag=Sango +sah=Jakutisch +sai=S\u00FCdamerikanische Indianersprache +sal=Salish-Sprache +sam=Samaritanisch +san=Sanskrit +sas=Sasak +sat=Santali +scn=Sizilianisch +sco=Schottisch +sel=Selkupisch +sem=Semitisch +sga=Altirisch +sgn=Geb\u00E4rdensprache +shn=Schan-Sprache +sid=Sidamo +sin=Singhalesisch +sio=Sioux-Sprache +sit=Tolar +sla=Slawisch +slo=Slowakisch +slv=Slowenisch +sma=S\u00FCd-Samisch +sme=Nord-Samisch +smi=Lappisch +smj=Lule-Lappisch +smn=Inari-Lappisch +smo=Samoanisch +sms=Skolt-Lappisch +sna=Schonisch +snd=Zinti-Sprache +snk=Soninke-Sprache +sog=Sogdisch +som=Somalisch +son=Songhai-Sprache +sot=S\u00FCd-Sotho +spa=Spanisch +srd=Sardisch +srn=Srananisch +srp=Serbisch +srr=Serer-Sprache +ssa=Nilosaharanisch +ssw=Swasil\u00E4ndisch +suk=Sukuma-Sprache +sun=Sundanesisch +sus=Susu +sux=Sumerisch +swa=Suaheli +swe=Schwedisch +syc=Altsyrisch +syr=Syrisch +tah=Tahitisch +tai=Tai-Sprache +tam=Tsongaisch +tat=Tatarisch +tel=Telugu +tem=Temne +ter=Tereno-Sprache +tet=Tetum-Sprache +tgk=Tadschikisch +tgl=Tagalog +tha=Thai +tib=Tibetanisch +tig=Tigre +tir=Tigrinja +tiv=Tiv-Sprache +tkl=Tokelauanisch +tlh=Klingonisch +tli=Tlingit-Sprache +tmh=Tamaseq +tog=Tsonga-Sprache +ton=Tonga (Tonga-Inseln) +tpi=Neumelanesisch +tsi=Tsimshian-Sprache +tsn=Sezuan +tso=Tsonga +tuk=Turkmenisch +tum=Tumbuka-Sprache +tup=Tupi-Sprache +tur=T\u00FCrkisch +tut=Altaisch +tvl=Elliceanisch +twi=Twi +tyv=Tuwinisch +udm=Udmurtisch +uga=Ugaritisch +uig=Uigurisch +ukr=Ukrainisch +umb=Mbundu-Sprache +und=Unbestimmte Sprache +urd=Urdu +uzb=Usbekisch +vai=Vai-Sprache +ven=Venda +vie=Vietnamesisch +vol=Volap\u00FCk +vot=Wotisch +wak=Wakashanisch +wal=Walamo-Sprache +war=Waray +was=Washo-Sprache +wel=Walisisch +wen=Sorbisch +wln=Wallonisch +wol=Wolof +xal=Kalm\u00FCckisch +xho=Xhosa +yao=Yao-Sprache +yap=Yapesisch +yid=Jiddish +yor=Joruba +ypk=Yupik-Sprache +zap=Zapotekisch +zbl=Bliss-Symbole +zen=Zenaga +zha=Zhuang +znd=Zande-Sprache +zul=Zulu +zun=Zuni-Sprache +zxx=Keine Sprachinhalte +zza=Zaza + +# script names +# key is ISO 15924 script code + +Arab=Arabisch +Armi=Armi +Armn=Armenisch +Avst=Avestisch +Bali=Balinesisch +Bamu=Bamum +Bass=Bassa VHA +Batk=Battakisch +Beng=Bengalisch +Blis=Bliss-Symbole +Bopo=Bopomofo +Brah=Brahmi +Brai=Blindenschrift +Bugi=Buginesisch +Buhd=Buhid +Cakm=Cakm +Cans=UCAS +Cari=Karisch +Cham=Cham +Cher=Cherokee +Cirt=Cirth +Copt=Koptisch +Cprt=Zypriotisch +Cyrl=Kyrillisch +Cyrs=Altkirchenslawisch +Deva=Devanagari +Dsrt=Deseret +Dupl=Duployan Shorthand +Egyd=\u00C4gyptisch - Demotisch +Egyh=\u00C4gyptisch - Hieratisch +Egyp=\u00C4gyptische Hieroglyphen +Elba=Elbasan +Ethi=\u00C4thiopisch +Geok=Khutsuri +Geor=Georgisch +Glag=Glagolitisch +Goth=Gotisch +Gran=Grantha +Grek=Griechisch +Gujr=Gujaratisch +Guru=Gurmukhi +Hang=Hangul +Hani=Chinesisch +Hano=Hanunoo +Hans=Vereinfachte Chinesische Schrift +Hant=Traditionelle Chinesische Schrift +Hebr=Hebr\u00E4isch +Hira=Hiragana +Hmng=Pahawh Hmong +Hrkt=Katakana oder Hiragana +Hung=Altungarisch +Inds=Indus-Schrift +Ital=Altitalienisch +Java=Javanesisch +Jpan=Japanisch +Kali=Kayah Li +Kana=Katakana +Khar=Kharoshthi +Khmr=Kambodschanisch +Knda=Kannada +Kore=Koreanisch +Kpel=Kpelle-Sprache +Kthi=Kthi +Lana=Lanna +Laoo=Laotisch +Latf=Lateinisch - Fraktur-Variante +Latg=Lateinisch - G\u00E4lische Variante +Latn=Lateinisch +Lepc=Lepcha +Limb=Limbu +Lina=Linear A +Linb=Linear B +Lisu=Lisu +Loma=Loma +Lyci=Lykisch +Lydi=Lydisch +Mand=Mand\u00E4isch +Mani=Manich\u00E4nisch +Maya=Maya-Hieroglyphen +Mend=Mende-Sprache +Merc=Meroitisch, kursiv +Mero=Meroitisch +Mlym=Malaysisch +Mong=Mongolisch +Moon=Moon +Mtei=Meitei Mayek +Mymr=Birmanisch +Narb=Altes Nordarabisch +Nbat=Nabat\u00E4isch +Nkgb=Nakhi Geba +Nkoo=N'Ko +Ogam=Ogham +Olck=Ol Chiki +Orkh=Orchon-Runen +Orya=Orija +Osma=Osmanisch +Palm=Palmyrenisch +Perm=Altpermisch +Phag=Phags-pa +Phli=Phli +Phlp=Phlp +Phlv=Pahlavi +Phnx=Ph\u00F6nizisch +Plrd=Pollard Phonetisch +Prti=Prti +Rjng=Rejang +Roro=Rongorongo +Runr=Runenschrift +Samr=Samaritanisch +Sara=Sarati +Sarb=Alts\u00FCdarabisch +Saur=Saurashtra +Sgnw=Geb\u00E4rdensprache +Shaw=Shaw-Alphabet +Sind=Zinti-Sprache +Sinh=Sinhala +Sund=Sundanesisch +Sylo=Syloti Nagri +Syrc=Syrisch +Syre=Syrisch - Estrangelo-Variante +Syrj=Westsyrisch +Syrn=Ostsyrisch +Tagb=Tagbanwa +Tale=Tai Le +Talu=Tai Lue +Taml=Tsongaisch +Tavt=Tavt +Telu=Telugu +Teng=Tengwar +Tfng=Tifinagh +Tglg=Tagalog +Thaa=Thaana +Thai=Thai +Tibt=Tibetanisch +Ugar=Ugaritisch +Vaii=Vai-Sprache +Visp=Sichtbare Sprache +Wara=Warang Citi +Xpeo=Altpersisch +Xsux=Sumerisch-akkadische Keilschrift +Yiii=Yi +Zinh=Geerbter Schriftwert +Zmth=Zmth +Zsym=Zsym +Zxxx=Schriftlos +Zyyy=Unbestimmt +Zzzz=Uncodierte Schrift + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=Mayotte ZA=S\u00fcdafrika ZM=Sambia ZW=Simbabwe + +# territory names +# key is UN M.49 country and area code + +001=Welt +002=Afrika +003=Nordamerika +005=S\u00FCdamerika +009=Ozeanien +011=Westafrika +013=Mittelamerika +014=Ostafrika +015=Nordafrika +017=Zentralafrika +018=S\u00FCdafrika +019=Amerika +021=N\u00F6rdliches Amerika +029=Karibik +030=Ostasien +034=S\u00FCdasien +035=S\u00FCdostasien +039=S\u00FCdeuropa +053=Australien und Neuseeland +054=Melanesien +057=Mikronesisches Inselgebiet +061=Polynesien +142=Asien +143=Zentralasien +145=Westasien +150=Europa +151=Osteuropa +154=Nordeuropa +155=Westeuropa +419=Lateinamerika und Karibik diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_es.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_es.properties index f58047243cf..ad64421e08c 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_es.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_es.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=zhuang zh=chino zu=zul\u00fa +# key is ISO 639.2 language code +aar=afar +abk=Abjasio +ace=acehn\u00E9s +ach=acoli +ada=adangme +ady=adigeo +afa=afgani (1927-2002) +afh=afrihili +afr=Afrikaans +ain=ainu +aka=Acano +akk=acadio +alb=Alban\u00E9s +ale=aleutiano +alg=lenguas algonquinas +alt=alt\u00E1i meridional +amh=Am\u00E1rico +ang=florines de las Antillas Neerlandesas +anp=angika +apa=lenguas apache +ara=australes argentinos +arc=arameo +arg=Aragon\u00E9s +arm=Armenio +arn=araucano +arp=pesos argentinos (ARP) +art=lengua artificial +arw=arahuaco +asm=Asam\u00E9s +ast=asturiano +ath=lenguas atabascas +aus=lenguas australianas +ava=\u00C1varo +ave=Av\u00E9stico +awa=avadhi +aym=Aimara +aze=Azerbaiyano +bad=dinares bosnios +bai=lenguas bamileke +bak=Bashkir +bal=baluchi +bam=marcos convertibles de Bosnia-Herzegovina +ban=balin\u00E9s +baq=Vasco +bas=basa +bat=lengua b\u00E1ltica +bej=beja +bel=francos belgas (financieros) +bem=bemba +ben=Bengal\u00ED +ber=bereber +bho=bhojpuri +bih=Bihar\u00ED +bik=bicol +bin=bini +bis=Bislama +bla=siksika +bnt=bant\u00FA +bos=Bosnio +bra=braj +bre=cruceiros brasile\u00F1os (BRE) +btk=batak +bua=buriat +bug=Buguin\u00E9s +bul=B\u00FAlgaro +bur=Birmano +byn=blin +cad=d\u00F3lares canadienses +cai=lengua india centroamericana +car=caribe +cat=Catal\u00E1n +cau=lengua cauc\u00E1sica +ceb=cebuano +cel=lengua celta +cha=Chamorro +chb=chibcha +che=euros WIR +chg=chagat\u00E1i +chi=Chino +chk=truk\u00E9s +chm=mar\u00ED +chn=jerga chinuk +cho=choctaw +chp=chipewyan +chr=cherokee +chu=Eslavo Eclesi\u00E1stico +chv=Chuvacho +chy=cheyene +cmc=lenguas ch\u00E1micas +cop=pesos colombianos +cor=C\u00F3rnico +cos=corso +cpe=lengua criolla o pidgin basada en el ingl\u00E9s +cpf=lengua criolla o pidgin basada en el franc\u00E9s +cpp=lengua criolla o pidgin basada en el portugu\u00E9s +cre=cree +crh=t\u00E1rtaro de Crimea +crp=lengua criolla o pidgin +csb=casubio +cus=lengua cusita +cze=checo +dak=dakota +dan=dan\u00E9s +dar=dargva +day=dayak +del=delaware +den=slave +dgr=dogrib +din=dinka +div=Dhivehi +doi=dogri +dra=lengua drav\u00EDdica +dsb=sorbio inferior +dua=duala +dum=neerland\u00E9s medieval +dut=Holand\u00E9s +dyu=diula +dzo=Dzongkha +efi=efik +egy=egipcio antiguo +eka=ekajuk +elx=elamita +eng=Ingl\u00E9s +enm=ingl\u00E9s medieval +epo=Esperanto +est=Estonio +ewe=Ef\u00E9 +ewo=ewondo +fan=fang +fao=Faro\u00E9s +fat=fanti +fij=fidjiano +fil=filipino +fin=Finland\u00E9s +fiu=lengua fino\u00FAgria +fon=fon +fre=franc\u00E9s +frm=franc\u00E9s medieval +fro=franc\u00E9s antiguo +frr=fris\u00F3n septentrional +frs=fris\u00F3n oriental +fry=Frisio del Oeste +ful=Fula +fur=friulano +gaa=ga +gay=gayo +gba=gbaya +gem=lengua germ\u00E1nica +geo=Georgiano +ger=Alem\u00E1n +gez=geez +gil=gilbert\u00E9s +gla=Ga\u00E9lico +gle=Irland\u00E9s +glg=Gallego +glv=Man\u00E9s +gmh=alem\u00E1n de la alta edad media +goh=alem\u00E1n de la alta edad antigua +gon=gondi +gor=gorontalo +got=g\u00F3tico +grb=grebo +grc=griego antiguo +gre=Griego moderno (1453-) +grn=Guaran\u00ED +gsw=alem\u00E1n suizo +guj=Gujarati +gwi=kutchin +hai=haida +hat=Haitiano +hau=Hausa +haw=hawaiano +heb=hebreo +her=herero +hil=hiligaynon +him=himachali +hin=hindi +hit=hitita +hmn=hmong +hmo=Hiri motu +hrv=Croata +hsb=sorbio superior +hun=h\u00FAngaro +hup=hupa +iba=iban +ibo=Ibo +ice=Island\u00E9s +ido=Ido +iii=Yi de Sichu\u00E1n +ijo=ijo +iku=Inuktitut +ile=Interling\u00FCe +ilo=ilocano +ina=Interlingua (IALA, del ingl\u00E9s International Auxiliary Language Association) +inc=lengua \u00EDndica +ind=Indonesio +ine=lengua indoeuropea +inh=ingush +ipk=I\u00F1upiaq +ira=lengua irania +iro=lenguas iroquesas +ita=Italiano +jav=Javan\u00E9s +jbo=lojban +jpn=Japon\u00E9s +jpr=judeo-persa +jrb=judeo-\u00E1rabe +kaa=karakalpako +kab=cabila +kac=kachin +kal=Kalaallisut +kam=kamba +kan=Canar\u00E9s +kar=karen +kas=Cachemir\u00ED +kau=Kanuri +kaw=kawi +kaz=Kazajo +kbd=kabardiano +kha=khasi +khi=lengua joisana +khm=Jemer Central +kho=kotan\u00E9s +kik=Kikuyu +kin=Ruand\u00E9s +kir=kirghiz +kmb=kimbundu +kok=konkani +kom=Komi +kon=Congo +kor=Coreano +kos=kosraeano +kpe=kpelle +krc=karachay-balkar +krl=carelio +kro=kru +kru=kurukh +kua=Kuanyama +kum=kumyk +kur=Curdo +kut=kutenai +lad=ladino +lah=lahnda +lam=lamba +lao=Laosiano +lat=lat\u00EDn +lav=Let\u00F3n +lez=lezgiano +lim=Limburgu\u00E9s +lin=Lingala +lit=Lituano +lol=mongo +loz=lozi +ltz=Luxemburgu\u00E9s +lua=luba-lulua +lub=Luba-katanga +lug=Luganda +lui=luise\u00F1o +lun=lunda +luo=luo +lus=lushai +mac=Macedonio +mad=dirhams marroqu\u00EDes +mag=magahi +mah=marshal\u00E9s +mai=maithili +mak=macasar +mal=Malayalam +man=mandingo +mao=Maor\u00ED +map=lengua austronesia +mar=Marathi +mas=masai +may=malayo +mdf=moksha +mdr=mandar +men=mende +mga=ariary malgache +mic=micmac +min=minangkabau +mis=lenguas varias +mkh=lengua mon-jemer +mlg=Malgache +mlt=Malt\u00E9s +mnc=manch\u00FA +mni=manipuri +mno=lenguas manobo +moh=mohawk +mon=Mongol +mos=mossi +mul=lenguas m\u00FAltiples +mun=lenguas munda +mus=creek +mwl=mirand\u00E9s +mwr=marwari +myn=maya +myv=erzya +nah=n\u00E1huatl +nai=lengua india norteamericana +nap=napolitano +nau=Nauruano +nav=Navajo +nbl=Ndebele del Sur +nde=ndebele septentrional +ndo=Ndonga +nds=bajo alem\u00E1n +nep=Nepal\u00ED +new=newari +nia=nias +nic=c\u00F3rdobas nicarag\u00FCenses +niu=niueano +nno=Noruego Nynorsk +nob=Noruego Bokmal +nog=nogai +non=n\u00F3rdico antiguo +nor=Noruego +nqo=n'ko +nso=sotho septentrional +nub=lenguas nubias +nwc=newari cl\u00E1sico +nya=Chichewa +nym=nyamwezi +nyn=nyankole +nyo=nyoro +nzi=nzima +oci=Occitano (posterior a 1500) +oji=Ojibwa +ori=oriya +orm=Oromo +osa=osage +oss=Os\u00E9tico +ota=turco otomano +oto=lenguas otomanas +paa=lengua pap\u00FA +pag=pangasin\u00E1n +pal=pahlavi +pam=pampanga +pan=Penyab\u00ED +pap=papiamento +pau=palauano +peo=persa antiguo +per=Persa +phi=lengua filipina +phn=fenicio +pli=Pali +pol=Polaco +pon=pohnpeiano +por=Portugu\u00E9s +pra=lenguas pr\u00E1critas +pro=provenzal antiguo +pus=Pushto; Pashto +que=Quechua +raj=rajasthani +rap=rapanui +rar=rarotongano +roa=lengua romance +roh=Romansh +rom=roman\u00ED +rum=rumano +run=Rund\u00ED +rup=arrumano +rus=Ruso +sad=sandawe +sag=Sango +sah=yakut +sai=lengua india sudamericana +sal=lenguas salish +sam=arameo samaritano +san=S\u00E1nscrito +sas=sasak +sat=santali +scn=siciliano +sco=escoc\u00E9s +sel=selkup +sem=lengua sem\u00EDtica +sga=irland\u00E9s antiguo +sgn=lenguajes de signos +shn=shan +sid=sidamo +sin=Cingal\u00E9s +sio=lenguas sioux +sit=t\u00F3lares eslovenos +sla=lengua eslava +slo=Eslovaco +slv=Esloveno +sma=sami meridional +sme=Sami del Norte +smi=lengua sami +smj=sami lule +smn=sami inari +smo=Samoano +sms=sami skolt +sna=shona +snd=Sindhi +snk=sonink\u00E9 +sog=sogdiano +som=Somal\u00ED +son=songhai +sot=Sotho del Sur +spa=Espa\u00F1ol +srd=d\u00F3lar surinam\u00E9s +srn=sranan tongo +srp=serbio +srr=serer +ssa=lengua nilo-sahariana +ssw=Suazi +suk=sukuma +sun=sudan\u00E9s +sus=sus\u00FA +sux=sumerio +swa=Swahili +swe=Sueco +syc=sir\u00EDaco cl\u00E1sico +syr=siriaco +tah=tahitiano +tai=lengua tai +tam=Tamil +tat=Tatar +tel=Telugu +tem=temne +ter=tereno +tet=tet\u00FAn +tgk=Tajik +tgl=Tagalo +tha=Tailand\u00E9s +tib=Tibetano +tig=tigr\u00E9 +tir=Tigrinya +tiv=tiv +tkl=tokelauano +tlh=klingon +tli=tlingit +tmh=tamashek +tog=tonga del Nyasa +ton=Tongano (Islas Tonga) +tpi=tok pisin +tsi=tsimshiano +tsn=Tswana +tso=Tsonga +tuk=Turcomano +tum=tumbuka +tup=lenguas tup\u00ED +tur=Turco +tut=lengua altaica +tvl=tuvaluano +twi=Tui +tyv=tuviniano +udm=udmurt +uga=ugar\u00EDtico +uig=Uiguro +ukr=Ucraniano +umb=umbundu +und=indeterminada +urd=Urdu +uzb=Uzbeco +vai=vai +ven=Venda +vie=vietnamita +vol=Volapuk +vot=v\u00F3tico +wak=lenguas wakasha +wal=walamo +war=waray +was=washo +wel=Gal\u00E9s +wen=lenguas sorbias +wln=val\u00F3n +wol=Uolof +xal=kalmyk +xho=Xhosa +yao=yao +yap=yap\u00E9s +yid=Y\u00EDdish +yor=Yoruba +ypk=lenguas yupik +zap=zapoteco +zbl=s\u00EDmbolos bliss +zen=zenaga +zha=Zhuang +znd=zande +zul=Zul\u00FA +zun=zun\u00ED +zxx=sin contenido ling\u00FC\u00EDstico +zza=zazaki + +# script names +# key is ISO 15924 script code + +Arab=\u00E1rabe +Armi=Arameo Imperial +Armn=armenio +Avst=av\u00E9stico +Bali=balin\u00E9s +Bamu=Bamum +Bass=Bassa Vah +Batk=batak +Beng=bengal\u00ED +Blis=s\u00EDmbolos bliss +Bopo=bopomofo +Brah=brahm\u00ED +Brai=braille +Bugi=bugin\u00E9s +Buhd=buhid +Cakm=Chakma +Cans=s\u00EDmbolos abor\u00EDgenes canadienses unificados +Cari=cario +Cham=cham +Cher=cherokee +Cirt=cirth +Copt=copto +Cprt=chipriota +Cyrl=cir\u00EDlico +Cyrs=cir\u00EDlico del antiguo eslavo eclesi\u00E1stico +Deva=devanagari +Dsrt=deseret +Dupl=Taquigraf\u00EDa Duploy\u00E9 +Egyd=egipcio dem\u00F3tico +Egyh=egipcio hier\u00E1tico +Egyp=jerogl\u00EDficos egipcios +Elba=Elbasan +Ethi=eti\u00F3pico +Geok=georgiano eclesi\u00E1stico +Geor=georgiano +Glag=glagol\u00EDtico +Goth=g\u00F3tico +Gran=Grantha +Grek=griego +Gujr=gujarati +Guru=gurmuji +Hang=hangul +Hani=han +Hano=hanunoo +Hans=han simplificado +Hant=han tradicional +Hebr=hebreo +Hira=hiragana +Hmng=pahawh hmong +Hrkt=katakana o hiragana +Hung=h\u00FAngaro antiguo +Inds=Indio (harappan) +Ital=antigua bastardilla +Java=javan\u00E9s +Jpan=japon\u00E9s +Kali=kayah li +Kana=katakana +Khar=kharoshthi +Khmr=jemer +Knda=canar\u00E9s +Kore=coreano +Kpel=Kpelle +Kthi=Kaithi +Lana=lanna +Laoo=lao +Latf=latino fraktur +Latg=latino ga\u00E9lico +Latn=lat\u00EDn +Lepc=lepcha +Limb=limbu +Lina=lineal A +Linb=lineal B +Lisu=Lisu +Loma=Loma +Lyci=licio +Lydi=lidio +Mand=mandeo +Mani=Manique\u00EDsmo +Maya=jerogl\u00EDficos mayas +Mend=Mend\u00E9 +Merc=Mero\u00EDtico Cursivo +Mero=mero\u00EDtico +Mlym=malay\u00E1lam +Mong=mongol +Moon=Luna +Mtei=manipuri +Mymr=birmano +Narb=\u00C1rabe del Norte Antiguo +Nbat=Nabateo +Nkgb=Nakhi Geba +Nkoo=n'Ko +Ogam=ogham +Olck=ol chiki +Orkh=orkhon +Orya=oriya +Osma=osmaniya +Palm=Palmire\u00F1o +Perm=permiano antiguo +Phag=phags-pa +Phli=Pahlavi, Inscripciones +Phlp=Pahlavi, Salterio +Phlv=Pahlavi, Libros +Phnx=fenicio +Plrd=Pollard Miao +Prti=Parto, Inscripciones +Rjng=Rejang +Roro=Rongorongo +Runr=r\u00FAnico +Samr=Samaritano +Sara=Sarati +Sarb=\u00C1rabe del Sur Antiguo +Saur=Saurashtra +Sgnw=Escritura de Signos +Shaw=shaviano +Sind=Sindhi +Sinh=binhala +Sund=sudan\u00E9s +Sylo=Syloti Nagri +Syrc=siriaco +Syre=siriaco estrangelo +Syrj=siriaco occidental +Syrn=siriaco oriental +Tagb=tagban\u00FAa +Tale=tai le +Talu=Nuevo Tai Lue +Taml=tamil +Tavt=Tai Viet +Telu=telugu +Teng=tengwar +Tfng=Tifinagh +Tglg=tagalo +Thaa=thaana +Thai=tailand\u00E9s +Tibt=tibetano +Ugar=ugar\u00EDtico +Vaii=Vai +Visp=lenguaje visible +Wara=Warang Citi +Xpeo=persa antiguo +Xsux=Sumerio-Acadio Cuneiforme +Yiii=yi +Zinh=heredado +Zmth=Notaci\u00F3n Matem\u00E1tica +Zsym=s\u00EDmbolos +Zxxx=no escrito +Zyyy=com\u00FAn +Zzzz=escritura desconocida o no v\u00E1lida + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=Mayotte ZA=Sud\u00e1frica ZM=Zambia ZW=Zimbabue + +# territory names +# key is UN M.49 country and area code + +001=Mundo +002=\u00C1frica +003=Am\u00E9rica del Norte +005=Suram\u00E9rica +009=Ocean\u00EDa +011=\u00C1frica occidental +013=Centroam\u00E9rica +014=\u00C1frica oriental +015=\u00C1frica septentrional +017=\u00C1frica central +018=\u00C1frica meridional +019=Am\u00E9ricas +021=Norteam\u00E9rica +029=Caribe +030=Asia oriental +034=Asia meridional +035=Sudeste asi\u00E1tico +039=Europa meridional +053=Australia y Nueva Zelanda +054=Melanesia +057=Micronesia [057] +061=Polinesia +142=Asia +143=Asia central +145=Asia occidental +150=Europa +151=Europa oriental +154=Europa septentrional +155=Europa occidental +419=Latinoam\u00E9rica y el Caribe diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_fr.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_fr.properties index 9ff9cca7511..de6d2998b81 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_fr.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_fr.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=zhuang zh=chinois zu=zoulou +# key is ISO 639.2 language code +aar=Afar +abk=Abkhaze +ace=Achinais +ach=Acoli +ada=Adangme +ady=Adygh\u00E9en +afa=Afro-asiatique +afh=Afrihili +afr=Afrikaans +ain=A\u00EFnou +aka=Akan +akk=Akkadien +alb=Albanais +ale=Al\u00E9oute +alg=Langue algonquienne +alt=Alta\u00EF du Sud +amh=Amharique +ang=Vieil anglais (environ 450-1100) +anp=Angika +apa=Langue apache +ara=Arabe +arc=Aram\u00E9en officiel (700-300 av. J.-C.) +arg=Aragonais +arm=Arm\u00E9nien +arn=Mapudungun +arp=Arapaho +art=Langue artificielle +arw=Arawak +asm=Assamais +ast=Asturien +ath=Langue athapascane +aus=Langue australienne +ava=Avar +ave=Avestique +awa=Awadhi +aym=Aymara +aze=Az\u00E9ri +bad=Banda +bai=Langue bamil\u00E9k\u00E9e +bak=Bachkir +bal=Baloutchi +bam=Bambara +ban=Balinais +baq=Basque +bas=Bassa +bat=Langue balte +bej=Bedja +bel=Bi\u00E9lorusse +bem=Bemba +ben=Bengali +ber=Berb\u00E8re +bho=Bhojpuri +bih=Bihari +bik=Bikol +bin=Bini +bis=Bichlamar +bla=Siksika +bnt=Bantou +bos=Bosniaque +bra=Braj +bre=Breton +btk=Batak +bua=Bouriate +bug=Bouguinais +bul=Bulgare +bur=Birman +byn=Blin +cad=Caddo +cai=Langue am\u00E9rindienne centrale +car=Galibi Caribe +cat=Catalan +cau=Langue caucasienne +ceb=Cebuano +cel=Langue celtique +cha=Chamorro +chb=Chibcha +che=Tch\u00E9tch\u00E8ne +chg=Tchaghata\u00EF +chi=Chinois +chk=Chuuk +chm=Mari +chn=Jargon chinook +cho=Choctaw +chp=Chipewyan +chr=Cherokee +chu=Slavon liturgique +chv=Tchouvache +chy=Cheyenne +cmc=Langue chame +cop=Copte +cor=Cornouaillais +cos=Corse +cpe=Cr\u00E9ole ou pidgin anglais +cpf=Cr\u00E9ole ou pidgin fran\u00E7ais +cpp=Cr\u00E9ole ou pidgin portugais +cre=Cri +crh=Turc de Crim\u00E9e +crp=Cr\u00E9ole ou pidgin +csb=Kachoube +cus=Langue couchitique +cze=Tch\u00E8que +dak=Dakota +dan=Danois +dar=Dargwa +day=Dayak +del=Delaware +den=Slave (Athapascan) +dgr=Dogrib +din=Dinka +div=Divehi +doi=Dogri +dra=Langue dravidienne +dsb=Bas-sorabe +dua=Douala +dum=Moyen n\u00E9erlandais +dut=N\u00E9erlandais +dyu=Dioula +dzo=Dzongkha +efi=Efik +egy=Egyptien ancien +eka=Ekajuk +elx=Elamite +eng=Anglais +enm=Moyen anglais +epo=Esp\u00E9ranto +est=Estonien +ewe=Ewe +ewo=Ewondo +fan=Fang +fao=F\u00E9ro\u00EFen +fat=Fanti +fij=Fidjien +fil=Filipino +fin=Finnois +fiu=Langue finno-ougrienne +fon=Fon +fre=Fran\u00E7ais +frm=Moyen fran\u00E7ais +fro=Ancien fran\u00E7ais +frr=Frison du Nord +frs=Frison oriental +fry=Frison occidental +ful=Peul +fur=Frioulan +gaa=Ga +gay=Gayo +gba=Gbaya +gem=Langue germanique +geo=G\u00E9orgien +ger=Allemand +gez=Gu\u00E8ze +gil=Gilbertais +gla=Gallois +gle=Irlandais +glg=Galicien +glv=Mannois +gmh=Moyen haut-allemand +goh=Ancien haut-allemand +gon=Gondi +gor=Gorontalo +got=Gothique +grb=Grebo +grc=Grec ancien +gre=Grec, moderne (1453 -) +grn=Guarani +gsw=Al\u00E9manique +guj=Goudjarati +gwi=Gwich'in +hai=Haida +hat=Ha\u00EFtien +hau=Haoussa +haw=Hawa\u00EFen +heb=H\u00E9breu +her=Herero +hil=Hiligaynon +him=Himachali +hin=Hindi +hit=Hittite +hmn=Hmong +hmo=Hiri Motu +hrv=Croate +hsb=Haut-sorabe +hun=Hongrois +hup=Hupa +iba=Iban +ibo=Igbo +ice=Islandais +ido=Ido +iii=Yi de Sichuan +ijo=Ijo +iku=Inuktitut +ile=Interlingue +ilo=Ilokano +ina=Interlingua (International Auxiliary Language Association) +inc=Langue indo-aryenne +ind=Indon\u00E9sien +ine=Langue indo-europ\u00E9enne +inh=Ingouche +ipk=Inupiaq +ira=Langue iranienne +iro=Langue iroquoienne +ita=Italien +jav=Javanais +jbo=Lojban +jpn=Japonais +jpr=Jud\u00E9o-persan +jrb=Jud\u00E9o-arabe +kaa=Karakalpak +kab=Kabyle +kac=Kachin +kal=Groenlandais +kam=Kamba +kan=Kannada +kar=Karen +kas=Kashmiri +kau=Kanuri +kaw=Kawi +kaz=Kazakh +kbd=Kabardin +kha=Khasi +khi=Langue kho\u00EFsan +khm=Khmer central +kho=Khotanais +kik=Kikuyu +kin=Kinyarwanda +kir=Kirghize +kmb=Kimbundu +kok=Konkani +kom=Komi +kon=Kikongo +kor=Cor\u00E9en +kos=Kosrae +kpe=Kpell\u00E9 +krc=Karatcha\u00EF balkar +krl=Car\u00E9lien +kro=Krou +kru=Kurukh +kua=Kwanyama +kum=Koumyk +kur=Kurde +kut=Kutenai +lad=Ladino +lah=Lahnda +lam=Lamba +lao=Laotien +lat=Latin +lav=Letton +lez=Lezghien +lim=Limburgan +lin=Lingala +lit=Lituanien +lol=Mongo +loz=Lozi +ltz=Luxembourgeois +lua=Luba-Lulua +lub=Luba-Katanga +lug=Ganda +lui=Luiseno +lun=Lunda +luo=Luo +lus=Lushai +mac=Mac\u00E9donien +mad=Madurais +mag=Magahi +mah=Marshallais +mai=Maithili +mak=Makassar +mal=Malayalam +man=Mandingue +mao=Maori +map=Malayo-polyn\u00E9sien +mar=Marathi +mas=Masai +may=Malais +mdf=Moksa +mdr=Mandar +men=Mend\u00E9 +mga=Irlandais, moyen (900 - 1200) +mic=Micmac +min=Minangkabau +mis=Non cod\u00E9 +mkh=Langue mon-khm\u00E8re +mlg=Malgache +mlt=Maltais +mnc=Mandchou +mni=Manipuri +mno=Langue manobo +moh=Mohawk +mon=Mongol +mos=Mor\u00E9 +mul=Multilingue +mun=Langue mounda +mus=Creek +mwl=Mirandais +mwr=Marwari +myn=Langue maya +myv=Erzya +nah=Nahuatl +nai=Langue am\u00E9rindienne du Nord +nap=Napolitain +nau=Nauruan +nav=Navajo +nbl=Ndebele, Sud +nde=Ndebele, nord +ndo=Ndonga +nds=Bas-allemand +nep=N\u00E9palais +new=Newari +nia=Nias +nic=Niger-kordofanian +niu=Niue +nno=Norv\u00E9gien nynorsk +nob=Bokmal, Norv\u00E9gien +nog=Noga\u00EF +non=Vieux norrois +nor=Norv\u00E9gien +nqo=N'Ko +nso=Pedi +nub=Langue nubienne +nwc=Newari classique +nya=Chichewa +nym=Nyamwezi +nyn=Nyankole +nyo=Nyoro +nzi=Nzema +oci=Occitan (apr\u00E8s 1500) +oji=Ojibwa +ori=Oriya +orm=Oromo +osa=Osage +oss=Oss\u00E8te +ota=Turc ottoman +oto=Langue otomangue +paa=Langue papoue +pag=Pangasinan +pal=Pahlavi +pam=Pampangan +pan=Panjabi +pap=Papiamento +pau=Palau +peo=Persan ancien +per=Persan +phi=Langue philippine +phn=Ph\u00E9nicien +pli=Pali +pol=Polonais +pon=Pohnpei +por=Portugais +pra=Langues pr\u00E2krit +pro=Proven\u00E7al ancien +pus=Pushto ; Pashto +que=Quechua +raj=Rajasthani +rap=Rapanui +rar=Rarotongien +roa=Langue romane +roh=Romanche +rom=Romani +rum=Roumain +run=Rundi +rup=Aroumain +rus=Russe +sad=Sandawe +sag=Sango +sah=Yakoute +sai=Langue am\u00E9rindienne du Sud +sal=Langue salishenne +sam=Aram\u00E9en samaritain +san=Sanscrit +sas=Sasak +sat=Santal +scn=Sicilien +sco=Ecossais +sel=Selkoupe +sem=Langue s\u00E9mitique +sga=Ancien irlandais +sgn=Langue des signes +shn=Shan +sid=Sidamo +sin=Sinhala +sio=Langue sioux +sit=Sino-tib\u00E9tain +sla=Langue slave +slo=Slovaque +slv=Slov\u00E8ne +sma=Sami du sud +sme=Sami du Nord +smi=Langue samie +smj=Sami de Lule +smn=Sami d'Inari +smo=Samoan +sms=Sami skolt +sna=Shona +snd=Sindhi +snk=Sonink\u00E9 +sog=Sogdien +som=Somali +son=Songhai +sot=Sotho, sud +spa=Espagnol +srd=Sarde +srn=Sranan Tongo +srp=Serbe +srr=S\u00E9r\u00E8re +ssa=Langue nilo-saharienne +ssw=Swati +suk=Sukuma +sun=Soundanais +sus=Soussou +sux=Sum\u00E9rien +swa=Souah\u00E9li +swe=Su\u00E9dois +syc=Syriaque classique +syr=Syriaque +tah=Tahitien +tai=Langue ta\u00EF +tam=Tamoul +tat=Tatar +tel=T\u00E9lougou +tem=Temne +ter=Tereno +tet=Tetum +tgk=Tadjik +tgl=Tagalog +tha=Tha\u00EF +tib=Tib\u00E9tain +tig=Tigre +tir=Tigrigna +tiv=Tiv +tkl=Tokelau +tlh=Klingon +tli=Tlingit +tmh=Tamacheq +tog=Tonga nyasa +ton=Tonga (Iles Tonga) +tpi=Tok Pisin +tsi=Tsimshian +tsn=Tswana +tso=Tsonga +tuk=Turkm\u00E8ne +tum=Tumbuka +tup=Langue tupi +tur=Turc +tut=Langue alta\u00EFque +tvl=Tuvalu +twi=Twi +tyv=Touva +udm=Oudmourte +uga=Ougaritique +uig=Ou\u00EFgour +ukr=Ukrainien +umb=Umbundu +und=Ind\u00E9termin\u00E9 +urd=Ourdou +uzb=Ouzbek +vai=Va\u00EF +ven=Venda +vie=Vietnamien +vol=Volapuk +vot=Vote +wak=Langues wakashennes +wal=Wolaitta +war=Waray +was=Washo +wel=Gallois +wen=Langue sorabe +wln=Wallon +wol=Wolof +xal=Kalmouk +xho=Xhosa +yao=Yao +yap=Yap +yid=Yiddish +yor=Yoruba +ypk=Langues yupik +zap=Zapot\u00E8que +zbl=Symboles Bliss +zen=Zenaga +zha=Zhuang +znd=Zande +zul=Zoulou +zun=Zuni +zxx=Sans contenu linguistique +zza=Zazaki + +# script names +# key is ISO 15924 script code + +Arab=Arabe +Armi=Aram\u00E9en imp\u00E9rial +Armn=Arm\u00E9nien +Avst=Avestique +Bali=Balinais +Bamu=Bamoun +Bass=Bassa Vah +Batk=Batak +Beng=Bengali +Blis=Symboles Bliss +Bopo=Bopomofo +Brah=Brahmi +Brai=Braille +Bugi=Bouguis +Buhd=Bouhide +Cakm=Chakma +Cans=Syllabaire autochtone canadien unifi\u00E9 +Cari=Carien +Cham=Cham +Cher=Cherokee +Cirt=Cirth +Copt=Copte +Cprt=Syllabaire chypriote +Cyrl=Cyrillique +Cyrs=Cyrillique (variante slavonne) +Deva=Devanagari +Dsrt=Deseret +Dupl=St\u00E9nographie Duploy\u00E9 +Egyd=D\u00E9motique \u00E9gyptien +Egyh=Hi\u00E9ratique \u00E9gyptien +Egyp=Hi\u00E9roglyphes \u00E9gyptiens +Elba=Elbasan +Ethi=Ethiopique +Geok=G\u00E9orgien khoutsouri +Geor=G\u00E9orgien +Glag=Glagolitique +Goth=Gothique +Gran=Grantha +Grek=Grec +Gujr=Goudjarati +Guru=Gourmoukh\u00EE +Hang=Hangul +Hani=Id\u00E9ogrammes han +Hano=Hanunoo +Hans=Id\u00E9ogrammes han simplifi\u00E9s +Hant=Id\u00E9ogrammes han traditionnels +Hebr=H\u00E9breu +Hira=Hiragana +Hmng=Pahawh Hmong +Hrkt=Katakana ou Hiragana +Hung=Ancien hongrois +Inds=Indus +Ital=Ancien italique +Java=Javanais +Jpan=Japonais +Kali=Kayah Li +Kana=Katakana +Khar=Kharoshthi +Khmr=Khmer +Knda=Kannada +Kore=Cor\u00E9en +Kpel=Kpelle +Kthi=Kaithi +Lana=Tai Tham +Laoo=Laotien +Latf=Latin (variante bris\u00E9e) +Latg=Latin (variante ga\u00E9lique) +Latn=Latin +Lepc=Lepcha +Limb=Limbou +Lina=Lin\u00E9aire A +Linb=Lin\u00E9aire B +Lisu=Lisu +Loma=Loma +Lyci=Lycien +Lydi=Lydien +Mand=Mand\u00E9en +Mani=Manich\u00E9en +Maya=Hi\u00E9roglyphes mayas +Mend=Mend\u00E9 +Merc=Cursive m\u00E9ro\u00EFtique +Mero=M\u00E9ro\u00EFtique +Mlym=Malayalam +Mong=Mongol +Moon=Moon +Mtei=Meitei Mayek +Mymr=Myanmar +Narb=Arabe ancien du Nord +Nbat=Nabat\u00E9en +Nkgb=Nakhi Geba +Nkoo=N'Ko +Ogam=Ogam +Olck=Ol tchiki +Orkh=Orkhon +Orya=Oriya +Osma=Osmanais +Palm=Palmyr\u00E9en +Perm=Ancien permien +Phag=Phags pa +Phli=Pehlevi des inscriptions +Phlp=Pehlevi des psautiers +Phlv=Pehlevi des livres +Phnx=Ph\u00E9nicien +Plrd=Miao +Prti=Parthe des inscriptions +Rjng=Rejang +Roro=Rongorongo +Runr=Runique +Samr=Samaritain +Sara=Sarati +Sarb=Arabe ancien du Sud +Saur=Saurashtra +Sgnw=Ecriture des signes +Shaw=Shavian +Sind=Sindhi +Sinh=Singhalais +Sund=Soundanais +Sylo=Syloti Nagri +Syrc=Syriaque +Syre=Syriaque estrangh\u00E9lo +Syrj=Syriaque occidental +Syrn=Syriaque oriental +Tagb=Tagbanoua +Tale=Ta\u00EF-le +Talu=Nouveau ta\u00EF-lue +Taml=Tamoul +Tavt=Ta\u00EF Viet +Telu=T\u00E9lougou +Teng=Tengwar +Tfng=Tifinagh +Tglg=Tagalog +Thaa=Th\u00E2na +Thai=Tha\u00EF +Tibt=Tib\u00E9tain +Ugar=Ougaritique +Vaii=Va\u00EF +Visp=Langage visuel +Wara=Warang Citi +Xpeo=Cun\u00E9iforme pers\u00E9politain +Xsux=Cun\u00E9iforme sum\u00E9ro-akkadien +Yiii=Yi +Zinh=H\u00E9rit\u00E9 +Zmth=Notation math\u00E9matique +Zsym=Symboles +Zxxx=Non \u00E9crit +Zyyy=Script non d\u00E9termin\u00E9 +Zzzz=Ecriture inconnue ou non valide + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=Mayotte ZA=Afrique du Sud ZM=Zambie ZW=Zimbabwe + +# territory names +# key is UN M.49 country and area code + +001=Monde +002=Afrique +003=Am\u00E9rique du Nord +005=Am\u00E9rique du Sud +009=Oc\u00E9anie +011=Afrique occidentale +013=Am\u00E9rique centrale +014=Afrique orientale +015=Afrique septentrionale +017=Afrique centrale +018=Afrique australe +019=Am\u00E9riques +021=Am\u00E9rique septentrionale +029=Cara\u00EFbes +030=Asie orientale +034=Asie du Sud +035=Asie du Sud-Est +039=Europe m\u00E9ridionale +053=Australie et Nouvelle-Z\u00E9lande +054=M\u00E9lan\u00E9sie +057=R\u00E9gion micron\u00E9sienne +061=Polyn\u00E9sie +142=Asie +143=Asie centrale +145=Asie occidentale +150=Europe +151=Europe orientale +154=Europe septentrionale +155=Europe occidentale +419=Am\u00E9rique latine et Cara\u00EFbes diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_it.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_it.properties index 6b1176359b9..6cbf7cf688c 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_it.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_it.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=zhuang zh=cinese zu=zulu +# key is ISO 639.2 language code +aar=Afar +abk=Abkhaso +ace=Accinese +ach=Acioli +ada=Adangme +ady=Adyghe +afa=Lingua afroasiatica +afh=Afrihili +afr=Afrikaans +ain=Ainu +aka=Akan +akk=Accado +alb=Albanese +ale=Aleuto +alg=Lingue algonchine +alt=Altai del sud +amh=Amarico +ang=Inglese antico (dal 450 al 1100 c.a.) +anp=Angika +apa=Lingue apache +ara=Arabo +arc=Aramaico ufficiale (dal 700 al 300 AC) +arg=Aragonese +arm=Armeno +arn=Mapudungun +arp=Arapaho +art=Lingua artificiale +arw=Aruaco +asm=Assamese +ast=Asturiano +ath=Lingue Athapascan +aus=Australiano +ava=Avaro +ave=Avestano +awa=Awadhi +aym=Aymara +aze=Azero +bad=Banda +bai=Lingue bamileke +bak=Baschiro +bal=Beluci +bam=Bambara +ban=Balinese +baq=Basco +bas=Basa +bat=Lingua baltica +bej=Begia +bel=Bielorusso +bem=Wemba +ben=Bengalese +ber=Berbero +bho=Bhojpuri +bih=Bihari +bik=Bicol +bin=Bini +bis=Bislama +bla=Siksika +bnt=Bantu +bos=Bosniaco +bra=Braj +bre=Bretone +btk=Batak +bua=Buriat +bug=Buginese +bul=Bulgaro +bur=Birmano +byn=Blin +cad=Caddo +cai=Lingua indiana dell'America centrale +car=Caribe (Galibi) +cat=Catalano +cau=Lingua caucasica +ceb=Cebuano +cel=Lingua celtica +cha=Chamorro +chb=Chibcha +che=Ceceno +chg=Chagataico +chi=Cinese +chk=Chuukese +chm=Mari +chn=Gergo chinook +cho=Choctaw +chp=Chipewyan +chr=Cherokee +chu=Slavo ecclesiastico +chv=Chuvash +chy=Cheyenne +cmc=Lingue chamic +cop=Copto +cor=Cornico +cos=Corso +cpe=Creolo e pidgin basato sull'inglese +cpf=Creolo e pidgin basato sul francese +cpp=Creolo e pidgin basato sul portoghese +cre=Cree +crh=Turco crimeo +crp=Creolo e pidgin +csb=Kashubian +cus=Lingua cuscitica +cze=Ceco +dak=Dakota +dan=Danese +dar=Dargwa +day=Land Dayak +del=Delaware +den=Slave (Athapascan) +dgr=Dogrib +din=Dinca +div=Divehi +doi=Dogri +dra=Lingua dravidica +dsb=Basso sorabo +dua=Duala +dum=Olandese medio (dal 1050 al 1350 c.a.) +dut=Olandese +dyu=Diula +dzo=Dzongkha +efi=Efik +egy=Egiziano antico +eka=Ekajuka +elx=Elamitico +eng=Inglese +enm=Inglese medio (dal 1100 al 1500) +epo=Esperanto +est=Estone +ewe=Ewe +ewo=Ewondo +fan=Fang +fao=Faroese +fat=Fanti +fij=Figiano +fil=Filippino +fin=Finlandese +fiu=Lingua ungrofinnica +fon=Fon +fre=Francese +frm=Francese medio (dal 1400 al 1600 c.a.) +fro=Francese antico (dal 842 al 1400 c.a.) +frr=Frisone settentrionale +frs=Frisone orientale +fry=Frisone occidentale +ful=Fulah +fur=Friulano +gaa=Ga +gay=Gayo +gba=Gbaya +gem=Lingua germanica +geo=Georgiano +ger=Tedesco +gez=Geez +gil=Gilbertese +gla=Gaelico +gle=Irlandese +glg=Galiziano +glv=Manx +gmh=Tedesco medio alto (dal 1050 al 1500 c.a.) +goh=Tedesco antico alto (dal 750 al 1050 c.a.) +gon=Gondi +gor=Gorontalo +got=Gotico +grb=Grebo +grc=Greco antico (fino al 1453) +gre=Greco moderno (dal 1453) +grn=Guaran\u00EC +gsw=Tedesco svizzero +guj=Gujarati +gwi=Gwich'in +hai=Haida +hat=Haitiano +hau=Hausa +haw=Hawaiano +heb=Ebraico +her=Herero +hil=Hiligaynon +him=Himachali +hin=Hindi +hit=Hittite +hmn=Hmong +hmo=Hiri Motu +hrv=Croato +hsb=Alto sorabo +hun=Ungherese +hup=Hupa +iba=Iban +ibo=Igbo +ice=Islandese +ido=Ido +iii=Sichuan Yi +ijo=Ijo +iku=Inuktitut +ile=Interlingue +ilo=Ilocano +ina=Interlingua (Associazione internazionale per la lingua ausiliaria) +inc=Lingua indiana +ind=Indonesiano +ine=Lingua indoeuropea +inh=Ingush +ipk=Inupiaq +ira=Iraniano +iro=Lingue irochesi +ita=Italiano +jav=Giavanese +jbo=Lojban +jpn=Giapponese +jpr=Giudeo persiano +jrb=Giudeo arabo +kaa=Kara-Kalpak +kab=Kabyle +kac=Kachin +kal=Kalaallisut +kam=Kamba +kan=Kannada +kar=Karen +kas=Kashmiri +kau=Kanuri +kaw=Kawi +kaz=Kazako +kbd=Kabardia +kha=Khasi +khi=Lingua khoisan +khm=Khmer centrale +kho=Khotanese +kik=Kikuyu +kin=Kinyarwanda +kir=Kirghiso +kmb=Kimbundu +kok=Konkani +kom=Komi +kon=Kongo +kor=Coreano +kos=Kosraean +kpe=Kpelle +krc=Karachay-Balkar +krl=Careliano +kro=Kru +kru=Kurukh +kua=Kuanyama +kum=Kumyk +kur=Curdo +kut=Kutenai +lad=Ladino +lah=Lahnda +lam=Lamba +lao=Lao +lat=Latino +lav=Lettone +lez=Lezghian +lim=Limburgese +lin=Lingala +lit=Lituano +lol=Mongo +loz=Lozi +ltz=Lussemburghese +lua=Luba-Lulua +lub=Luba-Katanga +lug=Ganda +lui=Luiseno +lun=Lunda +luo=Luo (Kenya e Tanzania) +lus=Lushai +mac=Macedone +mad=Madurese +mag=Magahi +mah=Marshallese +mai=Maithili +mak=Makasar +mal=Malayalam +man=Mandingo +mao=Maori +map=Austronesiano +mar=Marathi +mas=Masai +may=Malese +mdf=Moksha +mdr=Mandar +men=Mende +mga=Irlandese medio (dal 900 al 1200) +mic=Mi'kmaq +min=Minangkabau +mis=Lingue non codificate +mkh=Lingua mon-khmer +mlg=Malgascio +mlt=Maltese +mnc=Manchu +mni=Manipuri +mno=Manobo +moh=Mohawk +mon=Mongolo +mos=Mossi +mul=Multilingua +mun=Lingua munda +mus=Creek +mwl=Mirandese +mwr=Marwari +myn=Lingue maya +myv=Erzya +nah=Nahuatl +nai=Lingua indiana del Nord America +nap=Napoletano +nau=Nauruano +nav=Navajo +nbl=Ndebele del sud +nde=Ndebele del nord +ndo=Ndonga +nds=Basso tedesco +nep=Nepalese +new=Nepal Bhasa +nia=Nias +nic=Lingua niger-cordofan +niu=Niue +nno=Norvegese nynorsk +nob=Norvegese bokm\u00E5l +nog=Nogai +non=Norse antico +nor=Norvegese +nqo=N'Ko +nso=Pedi +nub=Nubiano +nwc=Newari classico +nya=Chichewa +nym=Nyamwezi +nyn=Nyankole +nyo=Nyoro +nzi=Nzima +oci=Occitano (dopo il 1500) +oji=Ojibwa +ori=Oriya +orm=Oromo +osa=Osage +oss=Ossetico +ota=Turco, ottomano (1500-1928) +oto=Lingue otomi +paa=Lingua papuana +pag=Pangasinan +pal=Pahlavi +pam=Pampanga +pan=Punjabi +pap=Papiamento +pau=Palau +peo=Persiano antico (dal 600 al 400 AC) +per=Persiano +phi=Lingua filippina +phn=Fenicio +pli=Pali +pol=Polacco +pon=Pohnpeiano +por=Portoghese +pra=Pracrito +pro=Provenzale antico (fino al 1500) +pus=Pushto; Pashto +que=Quechua +raj=Rajasthani +rap=Rapanui +rar=Rarotonga +roa=Lingua romanza +roh=Romancio +rom=Romani +rum=Romeno +run=Kirundi +rup=Aromaniano +rus=Russo +sad=Sandawe +sag=Sango +sah=Yakut +sai=Lingua indiana del Sud America +sal=Lingue salish +sam=Aramaico samaritano +san=Sanscrito +sas=Sasak +sat=Santali +scn=Siciliano +sco=Scozzese +sel=Selkup +sem=Lingua semitica +sga=Irlandese antico (fino al 900) +sgn=Lingua dei segni +shn=Shan +sid=Sidamo +sin=Singalese +sio=Lingue sioux +sit=Lingua sino-tibetana +sla=Lingua slava +slo=Slovacco +slv=Sloveno +sma=Sami del sud +sme=Sami del nord +smi=Sami +smj=Sami lule +smn=Sami inari +smo=Samoano +sms=Sami skolt +sna=Shona +snd=Sindhi +snk=Soninke +sog=Sogdiano +som=Somalo +son=Songhai +sot=Sotho del sud +spa=Spagnolo +srd=Sardo +srn=Sranan Tongo +srp=Serbo +srr=Serer +ssa=Lingua nilo-sahariana +ssw=Swati +suk=Sukuma +sun=Sundanese +sus=Susu +sux=Sumero +swa=Swahili +swe=Svedese +syc=Siriaco classico +syr=Siriaco +tah=Taitiano +tai=Tai +tam=Tamil +tat=Tataro +tel=Telugu +tem=Temne +ter=Tereno +tet=Tetum +tgk=Tagiko +tgl=Tagalog +tha=Tailandese +tib=Tibetano +tig=Tigre +tir=Tigrinya +tiv=Tiv +tkl=Tokelau +tlh=Klingon +tli=Tlingit +tmh=Tamashek +tog=Tonga (Nyasa) +ton=Tonga (Isole Tonga) +tpi=Tok pisin +tsi=Tsimshian +tsn=Tswana +tso=Tsonga +tuk=Turkmeno +tum=Tumbuka +tup=Lingue tupi +tur=Turco +tut=Lingua altaica +tvl=Tuvalu +twi=Twi +tyv=Tuvinian +udm=Udmurt +uga=Ugaritico +uig=Uiguro +ukr=Ucraino +umb=Umbundu +und=Lingua imprecisata +urd=Urdu +uzb=Uzbeko +vai=Vai +ven=Venda +vie=Vietnamita +vol=Volapuk +vot=Voto +wak=Lingue wakash +wal=Walamo +war=Waray +was=Washo +wel=Gallese +wen=Sorabo +wln=Vallone +wol=Wolof +xal=Kalmyk +xho=Xhosa +yao=Yao +yap=Yapese +yid=Yiddish +yor=Yoruba +ypk=Lingue Yupik +zap=Zapotec +zbl=Simboli bliss +zen=Zenaga +zha=Zhuang +znd=Zande +zul=Zulu +zun=Zuni +zxx=Nessun contenuto linguistico +zza=Zazaki + +# script names +# key is ISO 15924 script code + +Arab=Arabo +Armi=Aramaico imperiale +Armn=Armeno +Avst=Avestano +Bali=Balinese +Bamu=Bamum +Bass=Bassa Vah +Batk=Batak +Beng=Bengalese +Blis=Simboli bliss +Bopo=Bopomofo +Brah=Brahmi +Brai=Braille +Bugi=Buginese +Buhd=Buhid +Cakm=Chakma +Cans=Simboli aborigeni canadesi unificati +Cari=Cario +Cham=Cham +Cher=Cherokee +Cirt=Cirth +Copt=Copto +Cprt=Cipriota +Cyrl=Cirillico +Cyrs=Cirillico (antico slavo ecclesiastico) +Deva=Devanagari +Dsrt=Deseret +Dupl=Stenografia duployan +Egyd=Egiziano demotico +Egyh=Ieratico egiziano +Egyp=Geroglifici egiziani +Elba=Elbasan +Ethi=Etiope +Geok=Khutsuri +Geor=Georgiano +Glag=Glagolitico +Goth=Gotico +Gran=Grantha +Grek=Greco +Gujr=Gujarati +Guru=Gurmukhi +Hang=Hangul +Hani=Han +Hano=Hanunoo +Hans=Han semplificato +Hant=Han tradizionale +Hebr=Ebraico +Hira=Hiragana +Hmng=Pahawh Hmong +Hrkt=Katakana o Hiragana +Hung=Ungherese antico +Inds=Ind\u00F9 +Ital=Italico antico +Java=Giavanese +Jpan=Giapponese +Kali=Kayah Li +Kana=Katakana +Khar=Kharoshthi +Khmr=Khmer +Knda=Kannada +Kore=Coreano +Kpel=Kpelle +Kthi=Kaithi +Lana=Tai Tham +Laoo=Lao +Latf=Variante fraktur del latino +Latg=Latino gaelico +Latn=Latino +Lepc=Lepcha +Limb=Limbu +Lina=Lineare A +Linb=Lineare B +Lisu=Lisu +Loma=Loma +Lyci=Licio +Lydi=Lidio +Mand=Mandaico +Mani=Manicheo +Maya=Geroglifici maya +Mend=Mende +Merc=Corsivo meroitico +Mero=Meoitico +Mlym=Malayalam +Mong=Mongolo +Moon=Moon +Mtei=Meitei Mayek +Mymr=Myanmar +Narb=Arabo antico del nord +Nbat=Lingua nabatea +Nkgb=Nakhi Geba +Nkoo=N'Ko +Ogam=Ogamico +Olck=Ol Chiki +Orkh=Orkhon +Orya=Oriya +Osma=Osmanya +Palm=Palmyrene +Perm=Permiano antico +Phag=Phags-pa +Phli=Pahlavi (Inscriptional) +Phlp=Pahlavi (Psalter) +Phlv=Pahlavi (Book) +Phnx=Fenicio +Plrd=Miao +Prti=Partico (iscrizioni) +Rjng=Rejang +Roro=Rongorongo +Runr=Runico +Samr=Samaritano +Sara=Sarati +Sarb=Arabo antico del sud +Saur=Saurashtra +Sgnw=SignWriting +Shaw=Shaviano +Sind=Sindhi +Sinh=Singalese +Sund=Sundanese +Sylo=Syloti Nagri +Syrc=Siriaco +Syre=Siriaco estrangelo +Syrj=Siriaco occidentale +Syrn=Siriaco orientale +Tagb=Tagbanwa +Tale=Tai Le +Talu=Tai Lue semplificato +Taml=Tamil +Tavt=Tai Viet +Telu=Telugu +Teng=Tengwar +Tfng=Tifinagh +Tglg=Tagalog +Thaa=Thaana +Thai=Tailandese +Tibt=Tibetano +Ugar=Ugaritico +Vaii=Vai +Visp=Discorso visibile +Wara=Warang Citi +Xpeo=Persiano antico +Xsux=Cuneiforme sumero-accadico +Yiii=Yi +Zinh=Script ereditato +Zmth=Notazione matematica +Zsym=Simboli +Zxxx=Non scritto +Zyyy=Script indeterminato +Zzzz=Script non codificato + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=Mayotta ZA=Sudafrica ZM=Zambia ZW=Zimbabwe + +# territory names +# key is UN M.49 country and area code + +001=Mondo +002=Africa +003=America del Nord +005=America del Sud +009=Oceania +011=Africa occidentale +013=America centrale +014=Africa orientale +015=Africa settentrionale +017=Africa centrale +018=Africa meridionale +019=Americhe +021=America settentrionale +029=Caraibi +030=Asia orientale +034=Asia meridionale +035=Asia sudorientale +039=Europa meridionale +053=Australia e Nuova Zelanda +054=Melanesia +057=Regione Micronesiana +061=Polinesia +142=Asia +143=Asia centrale +145=Asia occidentale +150=Europa +151=Europa orientale +154=Europa settentrionale +155=Europa occidentale +419=America Latina e Caraibi diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_ja.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_ja.properties index f2ea4471a7a..b52d16ff518 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_ja.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_ja.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=\u30c1\u30ef\u30f3\u8a9e zh=\u4e2d\u56fd\u8a9e zu=\u30ba\u30fc\u30eb\u30fc\u8a9e +# key is ISO 639.2 language code +aar=\u30A2\u30D5\u30A1\u30EB\u8A9E +abk=\u30A2\u30D6\u30CF\u30FC\u30BA\u8A9E +ace=\u30A2\u30C1\u30A7\u30FC\u8A9E +ach=\u30A2\u30C1\u30E7\u30EA\u8A9E +ada=\u30A2\u30C0\u30F3\u30B0\u30E1\u8A9E +ady=\u30A2\u30C7\u30A3\u30B2\u8A9E +afa=\u30A2\u30D5\u30AC\u30CB\u30FC (1927-2002) +afh=\u30A2\u30D5\u30EA\u30D2\u30EA\u8A9E +afr=\u30A2\u30D5\u30EA\u30AB\u30FC\u30F3\u30B9\u8A9E +ain=\u30A2\u30A4\u30CC\u8A9E +aka=\u30A2\u30AB\u30F3\u8A9E +akk=\u30A2\u30C3\u30AB\u30C9\u8A9E +alb=\u30A2\u30EB\u30D0\u30CB\u30A2\u8A9E +ale=\u30A2\u30EC\u30A6\u30C8\u8A9E +alg=\u30A2\u30EB\u30B4\u30F3\u30AD\u30A2\u30F3\u8A9E\u65CF +alt=\u5357\u30A2\u30EB\u30BF\u30A4\u8A9E +amh=\u30A2\u30E0\u30CF\u30E9\u8A9E +ang=\u30AA\u30E9\u30F3\u30C0\u9818\u30A2\u30F3\u30C6\u30A3\u30EB \u30AE\u30EB\u30C0\u30FC +anp=\u30A2\u30F3\u30AE\u30AB\u8A9E +apa=\u30A2\u30D1\u30C3\u30C1\u8A9E\u65CF +ara=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3 \u30A2\u30A5\u30B9\u30C8\u30E9\u30FC\u30EB +arc=\u30A2\u30E9\u30E0\u8A9E +arg=\u30A2\u30E9\u30B4\u30F3\u8A9E +arm=\u30A2\u30EB\u30E1\u30CB\u30A2\u8A9E +arn=\u30A2\u30E9\u30A6\u30AB\u30F3\u8A9E +arp=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3 \u30DA\u30BD (1983-1985) +art=\u4EBA\u5DE5\u8AF8\u8A9E +arw=\u30A2\u30E9\u30EF\u30AF\u8A9E +asm=\u30A2\u30C3\u30B5\u30E0\u8A9E +ast=\u30A2\u30B9\u30C8\u30A5\u30EA\u30A2\u30B9\u8A9E +ath=\u30A2\u30B5\u30D1\u30B9\u30AB\u30F3\u8A9E\u65CF +aus=\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2\u8A9E\u65CF +ava=\u30A2\u30F4\u30A1\u30EB\u8A9E +ave=\u30A2\u30F4\u30A7\u30B9\u30BF\u8A9E +awa=\u30A2\u30EF\u30C7\u30A3\u30FC\u8A9E +aym=\u30A2\u30A4\u30DE\u30E9\u8A9E +aze=\u30A2\u30BC\u30EB\u30D0\u30A4\u30B8\u30E3\u30F3\u8A9E +bad=\u30DC\u30B9\u30CB\u30A2 \u30C7\u30A3\u30CA\u30FC\u30EB +bai=\u30D0\u30DF\u30EC\u30B1\u8A9E\u65CF +bak=\u30D0\u30B7\u30AD\u30FC\u30EB\u8A9E +bal=\u30D0\u30EB\u30FC\u30C1\u30FC\u8A9E +bam=\u30DC\u30B9\u30CB\u30A2 \u30DE\u30EB\u30AF (BAM) +ban=\u30D0\u30EA\u8A9E +baq=\u30D0\u30B9\u30AF\u8A9E +bas=\u30D0\u30B5\u8A9E +bat=\u30D0\u30EB\u30C8\u8AF8\u8A9E +bej=\u30D9\u30B8\u30E3\u8A9E +bel=\u30D9\u30EB\u30AE\u30FC \u30D5\u30E9\u30F3 (BEL) +bem=\u30D9\u30F3\u30D0\u8A9E +ben=\u30D9\u30F3\u30AC\u30EB\u8A9E +ber=\u30D9\u30EB\u30D9\u30EB\u8AF8\u8A9E +bho=\u30DC\u30FC\u30B8\u30D7\u30EA\u30FC\u8A9E +bih=\u30D3\u30CF\u30FC\u30EB\u8A9E +bik=\u30D3\u30B3\u30EB\u8A9E +bin=\u30D3\u30CB\u8A9E +bis=\u30D3\u30B9\u30E9\u30DE\u8A9E +bla=\u30B7\u30AF\u30B7\u30AB\u8A9E +bnt=\u30D0\u30F3\u30C8\u30A5\u8AF8\u8A9E +bos=\u30DC\u30B9\u30CB\u30A2\u8A9E +bra=\u30D6\u30E9\u30B8\u8A9E +bre=\u30D6\u30E9\u30B8\u30EB \u30AF\u30EB\u30BC\u30A4\u30ED (1990-1993) +btk=\u30D0\u30BF\u30AF\u8A9E +bua=\u30D6\u30EA\u30E4\u30FC\u30C8\u8A9E +bug=\u30D6\u30AE\u8A9E +bul=\u30D6\u30EB\u30AC\u30EA\u30A2\u8A9E +bur=\u30D3\u30EB\u30DE\u8A9E +byn=\u30D3\u30EA\u30F3\u8A9E +cad=\u30AB\u30CA\u30C0 \u30C9\u30EB +cai=\u4E2D\u7C73\u30A4\u30F3\u30C7\u30A3\u30A2\u30F3\u8AF8\u8A9E +car=\u30AB\u30EA\u30D6\u8A9E +cat=\u30AB\u30BF\u30ED\u30CB\u30A2\u8A9E +cau=\u30B3\u30FC\u30AB\u30B5\u30B9\u8AF8\u8A9E +ceb=\u30BB\u30D6\u30A2\u30CE\u8A9E +cel=\u30B1\u30EB\u30C8\u8AF8\u8A9E +cha=\u30C1\u30E3\u30E2\u30ED\u8A9E +chb=\u30C1\u30D6\u30C1\u30E3\u8A9E +che=\u30C1\u30A7\u30C1\u30A7\u30F3\u8A9E +chg=\u30C1\u30E3\u30AC\u30BF\u30A4\u8A9E +chi=\u4E2D\u56FD\u8A9E +chk=\u30C1\u30E5\u30FC\u30AF\u8A9E +chm=\u30DE\u30EA\u8A9E +chn=\u30D3\u30FC\u30C1\u30FB\u30E9\u30FB\u30DE\u30FC \u7B49 +cho=\u30C1\u30E7\u30AF\u30C8\u30FC\u8A9E +chp=\u30C1\u30DA\u30EF\u30A4\u30A2\u30F3\u8A9E +chr=\u30C1\u30A7\u30ED\u30AD\u30FC\u8A9E +chu=\u6559\u4F1A\u30B9\u30E9\u30D6\u8A9E +chv=\u30C1\u30E5\u30F4\u30A1\u30B7\u30E5\u8A9E +chy=\u30B7\u30E3\u30A4\u30A2\u30F3\u8A9E +cmc=\u30C1\u30E3\u30E0\u8A9E\u65CF +cop=\u30B3\u30ED\u30F3\u30D3\u30A2 \u30DA\u30BD +cor=\u30B3\u30FC\u30F3\u30A6\u30A9\u30FC\u30EB\u8A9E +cos=\u30B3\u30EB\u30B7\u30AB\u8A9E +cpe=\u82F1\u8A9E\u304C\u57FA\u76E4\u306E\u6DF7\u6210\u8A9E\u30FB\u6DF7\u5408\u8A9E +cpf=\u30D5\u30E9\u30F3\u30B9\u8A9E\u304C\u57FA\u76E4\u306E\u6DF7\u6210\u8A9E\u30FB\u6DF7\u5408\u8A9E +cpp=\u30DD\u30EB\u30C8\u30AC\u30EB\u8A9E\u304C\u57FA\u76E4\u306E\u6DF7\u6210\u8A9E\u30FB\u6DF7\u5408\u8A9E +cre=\u30AF\u30EA\u30FC\u8A9E +crh=\u30AF\u30EA\u30DF\u30A2\u30FB\u30BF\u30BF\u30FC\u30EB\u8A9E +crp=\u305D\u306E\u4ED6\u306E\u6DF7\u6210\u8A9E\u30FB\u6DF7\u5408\u8A9E +csb=\u30AB\u30B7\u30E5\u30FC\u30D6\u8A9E +cus=\u30AF\u30B7\u30E5\u8AF8\u8A9E +cze=\u30C1\u30A7\u30B3\u8A9E +dak=\u30C0\u30B3\u30BF\u8A9E +dan=\u30C7\u30F3\u30DE\u30FC\u30AF\u8A9E +dar=\u30C0\u30EB\u30AC\u30F3\u8A9E +day=\u30C0\u30E4\u30AF\u8A9E +del=\u30C7\u30E9\u30A6\u30A7\u30A2\u8A9E +den=\u30B9\u30EC\u30A4\u30D3\u30FC\u8A9E +dgr=\u30C9\u30B0\u30EA\u30D6\u8A9E +din=\u30C7\u30A3\u30F3\u30AB\u8A9E +div=\u30C7\u30A3\u30D9\u30D2\u8A9E +doi=\u30C9\u30B0\u30EA\u8A9E +dra=\u30C9\u30E9\u30F4\u30A3\u30C0\u8AF8\u8A9E +dsb=\u4F4E\u30BD\u30EB\u30D3\u30A2\u8A9E +dua=\u30C9\u30A5\u30A2\u30E9\u8A9E +dum=\u4E2D\u4E16\u30AA\u30E9\u30F3\u30C0\u8A9E +dut=\u30AA\u30E9\u30F3\u30C0\u8A9E +dyu=\u30C7\u30A5\u30A6\u30E9\u8A9E +dzo=\u30BE\u30F3\u30AB\u8A9E +efi=\u30A8\u30D5\u30A3\u30C3\u30AF\u8A9E +egy=\u53E4\u4EE3\u30A8\u30B8\u30D7\u30C8\u8A9E +eka=\u30A8\u30AB\u30B8\u30E5\u30AF\u8A9E +elx=\u30A8\u30E9\u30E0\u8A9E +eng=\u82F1\u8A9E +enm=\u4E2D\u4E16\u82F1\u8A9E +epo=\u30A8\u30B9\u30DA\u30E9\u30F3\u30C8\u8A9E +est=\u30A8\u30B9\u30C8\u30CB\u30A2\u8A9E +ewe=\u30A8\u30A6\u30A7\u8A9E +ewo=\u30A8\u30A6\u30A9\u30F3\u30C9\u8A9E +fan=\u30D5\u30A1\u30F3\u30B0\u8A9E +fao=\u30D5\u30A7\u30ED\u30FC\u8A9E +fat=\u30D5\u30A1\u30F3\u30C6\u30A3\u30FC\u8A9E +fij=\u30D5\u30A3\u30B8\u30FC\u8A9E +fil=\u30D5\u30A3\u30EA\u30D4\u30CE\u8A9E +fin=\u30D5\u30A3\u30F3\u30E9\u30F3\u30C9\u8A9E +fiu=\u30D5\u30A3\u30F3\u30FB\u30A6\u30B4\u30EB\u8AF8\u8A9E +fon=\u30D5\u30A9\u30F3\u8A9E +fre=\u30D5\u30E9\u30F3\u30B9\u8A9E +frm=\u4E2D\u671F\u30D5\u30E9\u30F3\u30B9\u8A9E +fro=\u53E4\u30D5\u30E9\u30F3\u30B9\u8A9E +frr=\u5317\u30D5\u30EA\u30B8\u30A2\u8A9E +frs=\u6771\u30D5\u30EA\u30B8\u30A2\u8A9E +fry=\u897F\u30D5\u30EA\u30B8\u30A2\u8A9E +ful=\u30D5\u30E9\u8A9E +fur=\u30D5\u30EA\u30A6\u30EA\u8A9E +gaa=\u30AC\u8A9E +gay=\u30AC\u30E8\u8A9E +gba=\u30D0\u30E4\u8A9E +gem=\u30B2\u30EB\u30DE\u30F3\u8AF8\u8A9E +geo=\u30B0\u30EB\u30B8\u30A2\u8A9E +ger=\u30C9\u30A4\u30C4\u8A9E +gez=\u30B2\u30A8\u30BA\u8A9E +gil=\u30AD\u30EA\u30D0\u30B9\u8A9E +gla=\u30B2\u30FC\u30EB\u8A9E +gle=\u30A2\u30A4\u30EB\u30E9\u30F3\u30C9\u8A9E +glg=\u30AC\u30EA\u30B7\u30A2\u8A9E +glv=\u30DE\u30F3\u5CF6\u8A9E +gmh=\u4E2D\u9AD8\u30C9\u30A4\u30C4\u8A9E +goh=\u53E4\u9AD8\u30C9\u30A4\u30C4\u8A9E +gon=\u30B4\u30FC\u30F3\u30C7\u30A3\u30FC\u8A9E +gor=\u30B4\u30ED\u30F3\u30BF\u30ED\u8A9E +got=\u30B4\u30FC\u30C8\u8A9E +grb=\u30B0\u30EC\u30DC\u8A9E +grc=\u53E4\u4EE3\u30AE\u30EA\u30B7\u30E3\u8A9E +gre=\u73FE\u4EE3\u30AE\u30EA\u30B7\u30E3\u8A9E(1453-) +grn=\u30B0\u30A2\u30E9\u30CB\u30FC\u8A9E +gsw=\u30B9\u30A4\u30B9\u30C9\u30A4\u30C4\u8A9E\uFF08\u30B9\u30A4\u30B9\uFF09 +guj=\u30B0\u30B8\u30E3\u30E9\u30C8\u8A9E +gwi=\u30B0\u30A6\u30A3\u30C3\u30C1\u30F3\u8A9E +hai=\u30CF\u30A4\u30C0\u8A9E +hat=\u30CF\u30A4\u30C1\u8A9E +hau=\u30CF\u30A6\u30B5\u8A9E +haw=\u30CF\u30EF\u30A4\u8A9E +heb=\u30D8\u30D6\u30E9\u30A4\u8A9E +her=\u30D8\u30EC\u30ED\u8A9E +hil=\u30D2\u30EA\u30AC\u30A4\u30CE\u30F3\u8A9E +him=\u30D2\u30DE\u30C1\u30E3\u30EB\u8A9E +hin=\u30D2\u30F3\u30C7\u30A3\u30FC\u8A9E +hit=\u30D2\u30C3\u30BF\u30A4\u30C8\u8A9E +hmn=\u30D5\u30E2\u30F3\u8A9E +hmo=\u30D2\u30EA\u30E2\u30C8\u30A5\u8A9E +hrv=\u30AF\u30ED\u30A2\u30C1\u30A2\u8A9E +hsb=\u4E0A\u30BD\u30EB\u30D3\u30A2\u8A9E +hun=\u30CF\u30F3\u30AC\u30EA\u30FC\u8A9E +hup=\u30A2\u30BF\u30D1\u30B9\u30AB\u8A9E +iba=\u30A4\u30D0\u30F3\u8A9E +ibo=\u30A4\u30DC\u8A9E +ice=\u30A2\u30A4\u30B9\u30E9\u30F3\u30C9\u8A9E +ido=\u30A4\u30C9\u8A9E +iii=\u56DB\u5DDD\u30A4(\u5F5D)\u8A9E +ijo=\u30A4\u30B8\u30E7\u30FC\u8A9E +iku=\u30A4\u30CC\u30AF\u30A6\u30C6\u30A3\u30C8\u30C3\u30C8\u8A9E +ile=\u30A4\u30F3\u30BF\u30FC\u30EA\u30F3\u30B0 +ilo=\u30A4\u30ED\u30AB\u30CE\u8A9E +ina=\u30A4\u30F3\u30BF\u30FC\u30EA\u30F3\u30B0\u30A2\u8A9E(\u56FD\u969B\u88DC\u52A9\u8A9E\u5354\u4F1A) +inc=\u30A4\u30F3\u30C9\u8AF8\u8A9E +ind=\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u8A9E +ine=\u5370\u6B27\u8AF8\u8A9E +inh=\u30A4\u30F3\u30B0\u30B7\u8A9E +ipk=\u30A4\u30CC\u30D4\u30A2\u30C3\u30AF\u8A9E +ira=\u30A4\u30E9\u30F3\u8A9E +iro=\u30A4\u30ED\u30B3\u30A4\u8A9E\u65CF +ita=\u30A4\u30BF\u30EA\u30A2\u8A9E +jav=\u30B8\u30E3\u30EF\u8A9E +jbo=\u30ED\u30B8\u30D0\u30F3\u8A9E +jpn=\u65E5\u672C\u8A9E +jpr=\u30E6\u30C0\u30E4\u30FB\u30DA\u30EB\u30B7\u30A2\u8A9E +jrb=\u30E6\u30C0\u30E4\u30FB\u30A2\u30E9\u30D3\u30A2\u8A9E +kaa=\u30AB\u30E9\u30FB\u30AB\u30EB\u30D1\u30AF\u8A9E +kab=\u30AB\u30D3\u30EB\u8A9E +kac=\u30AB\u30C1\u30F3\u8A9E +kal=\u30AB\u30E9\u30A2\u30EA\u30B9\u8A9E +kam=\u30AB\u30F3\u30D0\u8A9E +kan=\u30AB\u30F3\u30CA\u30C0\u8A9E +kar=\u30AB\u30EC\u30F3\u8A9E +kas=\u30AB\u30B7\u30DF\u30FC\u30EB\u8A9E +kau=\u30AB\u30CC\u30EA\u8A9E +kaw=\u30AB\u30A6\u30A3\u8A9E +kaz=\u30AB\u30B6\u30D5\u8A9E +kbd=\u30AB\u30D0\u30EB\u30C9\u8A9E +kha=\u30AB\u30B7\u8A9E +khi=\u30B3\u30A4\u30B5\u30F3\u8AF8\u8A9E +khm=\u4E2D\u592E\u30AF\u30E1\u30FC\u30EB\u8A9E +kho=\u30B3\u30FC\u30BF\u30F3\u8A9E +kik=\u30AD\u30AF\u30E6\u8A9E +kin=\u30AD\u30CB\u30E4\u30EB\u30EF\u30F3\u30C0\u8A9E +kir=\u30AD\u30EB\u30AE\u30B9\u8A9E +kmb=\u30AD\u30F3\u30D6\u30F3\u30C9\u30A5\u8A9E +kok=\u30B3\u30F3\u30AB\u30CB\u8A9E +kom=\u30B3\u30DF\u8A9E +kon=\u30B3\u30F3\u30B4\u8A9E +kor=\u97D3\u56FD\u8A9E +kos=\u30B3\u30B7\u30E3\u30A8\u8A9E +kpe=\u30AF\u30DA\u30EC\u8A9E +krc=\u30AB\u30E9\u30C1\u30E3\u30A4\u8A9E +krl=\u30AB\u30EC\u30EA\u30A2\u8A9E +kro=\u30AF\u30EB\u30FC\u8A9E +kru=\u30AF\u30EB\u30AF\u8A9E +kua=\u30AF\u30A2\u30CB\u30E3\u30DE\u8A9E +kum=\u30AF\u30E0\u30AF\u8A9E +kur=\u30AF\u30EB\u30C9\u8A9E +kut=\u30AF\u30C6\u30CA\u30A4\u8A9E +lad=\u30E9\u30B8\u30CE\u8A9E +lah=\u30E9\u30D5\u30F3\u30C0\u30FC\u8A9E +lam=\u30E9\u30F3\u30D0\u8A9E +lao=\u30E9\u30AA\u8A9E +lat=\u30E9\u30C6\u30F3\u8A9E +lav=\u30E9\u30C8\u30D3\u30A2\u8A9E +lez=\u30EC\u30BA\u30AE\u8A9E +lim=\u30EA\u30F3\u30D6\u30EB\u30D5\u8A9E +lin=\u30EA\u30F3\u30AC\u30E9\u8A9E +lit=\u30EA\u30C8\u30A2\u30CB\u30A2\u8A9E +lol=\u30E2\u30F3\u30B4\u8A9E +loz=\u30ED\u30BA\u30A3\u8A9E +ltz=\u30EB\u30AF\u30BB\u30F3\u30D6\u30EB\u30B0\u8A9E +lua=\u30EB\u30D0\u30FB\u30EB\u30EB\u30A2\u8A9E +lub=\u30EB\u30D0\u30FB\u30AB\u30BF\u30F3\u30AC\u8A9E +lug=\u30AC\u30F3\u30C0\u8A9E +lui=\u30EB\u30A4\u30BB\u30FC\u30CB\u30E7\u8A9E +lun=\u30EB\u30F3\u30C0\u8A9E +luo=\u30EB\u30AA\u8A9E +lus=\u30EB\u30B7\u30E3\u30A4\u8A9E +mac=\u30DE\u30B1\u30C9\u30CB\u30A2\u8A9E +mad=\u30E2\u30ED\u30C3\u30B3 \u30C7\u30A3\u30EB\u30CF\u30E0 +mag=\u30DE\u30AC\u30D2\u30FC\u8A9E +mah=\u30DE\u30FC\u30B7\u30E3\u30EB\u8A9E +mai=\u30DE\u30A4\u30C6\u30A3\u30EA\u30FC\u8A9E +mak=\u30DE\u30AB\u30C3\u30B5\u30EB\u8A9E +mal=\u30DE\u30E9\u30E4\u30FC\u30E9\u30E0\u8A9E +man=\u30DE\u30F3\u30C7\u30A3\u30F3\u30B4\u8A9E +mao=\u30DE\u30AA\u30EA\u8A9E +map=\u30AA\u30FC\u30B9\u30C8\u30ED\u30CD\u30B7\u30A2\u8AF8\u8A9E +mar=\u30DE\u30E9\u30C6\u30A3\u30FC\u8A9E +mas=\u30DE\u30B5\u30A4\u8A9E +may=\u30DE\u30EC\u30FC\u8A9E +mdf=\u30E2\u30AF\u30B7\u30E3\u8A9E +mdr=\u30DE\u30F3\u30C0\u30EB\u8A9E +men=\u30E1\u30F3\u30C7\u8A9E +mga=\u30DE\u30C0\u30AC\u30B9\u30AB\u30EB \u30A2\u30EA\u30A2\u30EA +mic=\u30DF\u30AF\u30DE\u30AF\u8A9E +min=\u30DF\u30CA\u30F3\u30AB\u30D0\u30A6\u8A9E +mis=\u305D\u306E\u4ED6\u306E\u8A00\u8A9E +mkh=\u30E2\u30F3\u30FB\u30AF\u30E1\u30FC\u30EB\u8AF8\u8A9E +mlg=\u30DE\u30C0\u30AC\u30B9\u30AB\u30EB\u8A9E +mlt=\u30DE\u30EB\u30BF\u8A9E +mnc=\u6E80\u5DDE\u8A9E +mni=\u30DE\u30CB\u30D7\u30EB\u8A9E +mno=\u30DE\u30CE\u30DC\u8A9E\u65CF +moh=\u30E2\u30FC\u30DB\u30FC\u30AF\u8A9E +mon=\u30E2\u30F3\u30B4\u30EB\u8A9E +mos=\u30E2\u30B7\u8A9E +mul=\u8907\u6570\u8A00\u8A9E +mun=\u30E0\u30F3\u30C0\u8A9E\u65CF +mus=\u30AF\u30EA\u30FC\u30AF\u8A9E +mwl=\u30DF\u30E9\u30F3\u30C0\u8A9E +mwr=\u30DE\u30FC\u30EB\u30EF\u30FC\u30EA\u30FC\u8A9E +myn=\u30DE\u30E4\u8A9E\u65CF +myv=\u30A8\u30EB\u30B8\u30E3\u8A9E +nah=\u30CA\u30EF\u30C8\u30EB\u8A9E +nai=\u5317\u7C73\u30A4\u30F3\u30C7\u30A3\u30A2\u30F3\u8AF8\u8A9E +nap=\u30CA\u30DD\u30EA\u8A9E +nau=\u30CA\u30A6\u30EB\u8A9E +nav=\u30CA\u30D0\u30DB\u8A9E +nbl=\u5357\u30F3\u30C7\u30D9\u30EC\u8A9E +nde=\u5317\u30F3\u30C7\u30D9\u30EC\u8A9E +ndo=\u30F3\u30C9\u30F3\u30AC\u8A9E +nds=\u4F4E\u5730\u30C9\u30A4\u30C4\u8A9E\u3001\u4F4E\u5730\u30B5\u30AF\u30BD\u30F3\u8A9E +nep=\u30CD\u30D1\u30FC\u30EB\u8A9E +new=\u30CD\u30EF\u30FC\u30EB\u8A9E +nia=\u30CB\u30A2\u30B9\u8A9E +nic=\u30CB\u30AB\u30E9\u30B0\u30A2 \u30B3\u30EB\u30C9\u30D0 +niu=\u30CB\u30A6\u30FC\u30A8\u30A4\u8A9E +nno=\u30CE\u30EB\u30A6\u30A7\u30FC\u8A9E(\u30CB\u30FC\u30CE\u30B7\u30AF) +nob=\u30CE\u30EB\u30A6\u30A7\u30FC\u8A9E(\u30D6\u30FC\u30AF\u30E2\u30FC\u30EB) +nog=\u30CE\u30AC\u30A4\u8A9E +non=\u53E4\u30CE\u30EB\u30C9\u8A9E +nor=\u30CE\u30EB\u30A6\u30A7\u30FC\u8A9E +nqo=\u30F3\u30B3\u8A9E +nso=\u5317\u90E8\u30BD\u30C8\u8A9E +nub=\u30CC\u30D3\u30A2\u8A9E\u65CF +nwc=\u53E4\u5178\u30CD\u30EF\u30FC\u30EB\u8A9E +nya=\u30C1\u30C1\u30A7\u30EF\u8A9E +nym=\u30CB\u30E3\u30E0\u30A6\u30A7\u30B8\u8A9E +nyn=\u30CB\u30E3\u30F3\u30B3\u30EC\u8A9E +nyo=\u30CB\u30E7\u30ED\u8A9E +nzi=\u30F3\u30BC\u30DE\u8A9E +oci=\u30AA\u30C3\u30AF\u8A9E(1500\u4EE5\u5F8C) +oji=\u30AA\u30B8\u30D6\u30EF\u8A9E +ori=\u30AA\u30EA\u30E4\u30FC\u8A9E +orm=\u30AA\u30ED\u30E2\u8A9E +osa=\u30AA\u30BB\u30FC\u30B8\u8A9E +oss=\u30AA\u30BB\u30C3\u30C8\u8A9E +ota=\u30AA\u30B9\u30DE\u30F3\u30C8\u30EB\u30B3\u8A9E +oto=\u30AA\u30C8\u30DF\u8A9E\u65CF +paa=\u30D1\u30D7\u30A2\u8AF8\u8A9E +pag=\u30D1\u30F3\u30AC\u30B7\u30CA\u30F3\u8A9E +pal=\u30D1\u30D5\u30E9\u30F4\u30A3\u8A9E +pam=\u30D1\u30F3\u30D1\u30F3\u30AC\u8A9E +pan=\u30D1\u30F3\u30B8\u30E3\u30D6\u8A9E +pap=\u30D1\u30D4\u30A2\u30E1\u30F3\u30C8\u8A9E +pau=\u30D1\u30E9\u30AA\u8A9E +peo=\u53E4\u4EE3\u30DA\u30EB\u30B7\u30A2\u8A9E +per=\u30DA\u30EB\u30B7\u30A2\u8A9E +phi=\u30D5\u30A3\u30EA\u30D4\u30F3\u8AF8\u8A9E +phn=\u30D5\u30A7\u30CB\u30AD\u30A2\u8A9E +pli=\u30D1\u30FC\u30EA\u8A9E +pol=\u30DD\u30FC\u30E9\u30F3\u30C9\u8A9E +pon=\u30DD\u30F3\u30DA\u30A4\u8A9E +por=\u30DD\u30EB\u30C8\u30AC\u30EB\u8A9E +pra=\u30D7\u30E9\u30FC\u30AF\u30EA\u30C3\u30C8\u8A9E\u65CF +pro=\u53E4\u671F\u30D7\u30ED\u30D0\u30F3\u30B9\u8A9E +pus=\u30D7\u30B7\u30E5\u30C8\u30A5\u30FC\u8A9E\u3001\u30D1\u30B7\u30E5\u30C8\u30A5\u30FC\u8A9E +que=\u30B1\u30C1\u30E5\u30A2\u8A9E +raj=\u30E9\u30FC\u30B8\u30E3\u30B9\u30BF\u30FC\u30F3\u8A9E +rap=\u30E9\u30D1\u30CC\u30A4\u8A9E +rar=\u30E9\u30ED\u30C8\u30AC\u8A9E +roa=\u30ED\u30DE\u30F3\u30B9\u8AF8\u8A9E +roh=\u30ED\u30DE\u30F3\u30B7\u30E5\u8A9E +rom=\u30ED\u30DE\u30FC\u30CB\u30FC\u8A9E +rum=\u30EB\u30FC\u30DE\u30CB\u30A2\u8A9E +run=\u30EB\u30F3\u30C7\u30A3\u8A9E +rup=\u30A2\u30EB\u30FC\u30DE\u30CB\u30A2\u8A9E +rus=\u30ED\u30B7\u30A2\u8A9E +sad=\u30B5\u30F3\u30C0\u30A6\u30A7\u8A9E +sag=\u30B5\u30F3\u30B4\u8A9E +sah=\u30E4\u30AF\u30FC\u30C8\u8A9E +sai=\u5357\u7C73\u30A4\u30F3\u30C7\u30A3\u30A2\u30F3\u8AF8\u8A9E +sal=\u30BB\u30A4\u30EA\u30C3\u30B7\u30E5\u8A9E\u65CF +sam=\u30B5\u30DE\u30EA\u30A2\u30FB\u30A2\u30E9\u30E0\u8A9E +san=\u30B5\u30F3\u30B9\u30AF\u30EA\u30C3\u30C8\u8A9E +sas=\u30B5\u30B5\u30AF\u8A9E +sat=\u30B5\u30F3\u30BF\u30FC\u30EA\u30FC\u8A9E +scn=\u30B7\u30C1\u30EA\u30A2\u8A9E +sco=\u30B9\u30B3\u30C3\u30C8\u30E9\u30F3\u30C9\u8A9E +sel=\u30BB\u30EA\u30AF\u30D7\u8A9E +sem=\u30BB\u30E0\u8AF8\u8A9E +sga=\u53E4\u671F\u30A2\u30A4\u30EB\u30E9\u30F3\u30C9\u8A9E +sgn=\u624B\u307E\u306D\u8A00\u8A9E +shn=\u30B7\u30E3\u30F3\u8A9E +sid=\u30B7\u30C0\u30E2\u8A9E +sin=\u30B7\u30F3\u30CF\u30E9\u8A9E +sio=\u30B9\u30FC\u8A9E\u65CF +sit=\u30B9\u30ED\u30D9\u30CB\u30A2 \u30C8\u30E9\u30FC\u30EB +sla=\u30B9\u30E9\u30D6\u8AF8\u8A9E +slo=\u30B9\u30ED\u30D0\u30AD\u30A2\u8A9E +slv=\u30B9\u30ED\u30D9\u30CB\u30A2\u8A9E +sma=\u5357\u30B5\u30FC\u30DF\u8A9E +sme=\u5317\u30B5\u30FC\u30DF\u8A9E +smi=\u30B5\u30FC\u30DF\u8AF8\u8A9E +smj=\u30EB\u30EC\u30FB\u30B5\u30FC\u30DF\u8A9E +smn=\u30A4\u30CA\u30EA\u30FB\u30B5\u30FC\u30DF\u8A9E +smo=\u30B5\u30E2\u30A2\u8A9E +sms=\u30B9\u30B3\u30EB\u30C8\u30FB\u30B5\u30FC\u30DF\u8A9E +sna=\u30B7\u30E7\u30CA\u8A9E +snd=\u30B7\u30F3\u30C9\u8A9E +snk=\u30BD\u30CB\u30F3\u30B1\u8A9E +sog=\u30BD\u30B0\u30C9\u8A9E +som=\u30BD\u30DE\u30EA\u8A9E +son=\u30BD\u30F3\u30AC\u30A4\u8A9E +sot=\u5357\u90E8\u30BD\u30C8\u8A9E +spa=\u30B9\u30DA\u30A4\u30F3\u8A9E +srd=\u30B9\u30EA\u30CA\u30E0 \u30C9\u30EB +srn=\u30B9\u30EA\u30CA\u30E0\u8A9E +srp=\u30BB\u30EB\u30D3\u30A2\u8A9E +srr=\u30BB\u30EC\u30EB\u8A9E +ssa=\u30CA\u30A4\u30EB\u30FB\u30B5\u30CF\u30E9\u8AF8\u8A9E +ssw=\u30B7\u30B9\u30EF\u30C6\u30A3\u8A9E +suk=\u30B9\u30AF\u30DE\u8A9E +sun=\u30B9\u30F3\u30C0\u8A9E +sus=\u30B9\u30B9\u8A9E +sux=\u30B7\u30E5\u30E1\u30FC\u30EB\u8A9E +swa=\u30B9\u30EF\u30D2\u30EA\u8A9E +swe=\u30B9\u30A6\u30A7\u30FC\u30C7\u30F3\u8A9E +syc=\u53E4\u5178\u30B7\u30EA\u30A2\u8A9E +syr=\u30B7\u30EA\u30A2\u8A9E +tah=\u30BF\u30D2\u30C1\u8A9E +tai=\u30BF\u30A4\u8AF8\u8A9E +tam=\u30BF\u30DF\u30EB\u8A9E +tat=\u30BF\u30BF\u30FC\u30EB\u8A9E +tel=\u30C6\u30EB\u30B0\u8A9E +tem=\u30C6\u30E0\u30CD\u8A9E +ter=\u30C6\u30EC\u30FC\u30CE\u8A9E +tet=\u30C6\u30C8\u30A5\u30F3\u8A9E +tgk=\u30BF\u30B8\u30AF\u8A9E +tgl=\u30BF\u30AC\u30ED\u30B0\u8A9E +tha=\u30BF\u30A4\u8A9E +tib=\u30C1\u30D9\u30C3\u30C8\u8A9E +tig=\u30C6\u30A3\u30B0\u30EC\u8A9E +tir=\u30C6\u30A3\u30B0\u30EA\u30CB\u30E3\u8A9E +tiv=\u30C6\u30A3\u30D6\u8A9E +tkl=\u30C8\u30B1\u30E9\u30A6\u8A9E +tlh=\u30AF\u30EA\u30F3\u30B4\u30F3\u8A9E +tli=\u30C8\u30EA\u30F3\u30AE\u30C3\u30C8\u8A9E +tmh=\u30BF\u30DE\u30B7\u30A7\u30AF\u8A9E +tog=\u30C8\u30F3\u30AC\u8A9E (\u30CB\u30A2\u30B5) +ton=\u30C8\u30F3\u30AC\u8A9E(\u30C8\u30F3\u30AC\u8AF8\u5CF6) +tpi=\u30C8\u30AF\u30FB\u30D4\u30B7\u30F3\u8A9E +tsi=\u30C1\u30E0\u30B7\u30E5\u8A9E +tsn=\u30C4\u30EF\u30CA\u8A9E +tso=\u30C4\u30A9\u30F3\u30AC\u8A9E +tuk=\u30C8\u30EB\u30AF\u30E1\u30F3\u8A9E +tum=\u30C8\u30A5\u30F3\u30D6\u30AB\u8A9E +tup=\u30C8\u30A5\u30D4\u8A9E\u65CF +tur=\u30C8\u30EB\u30B3\u8A9E +tut=\u30A2\u30EB\u30BF\u30A4\u8AF8\u8A9E +tvl=\u30C4\u30D0\u30EB\u8A9E +twi=\u30C8\u30A6\u30A3\u8A9E +tyv=\u30C8\u30A5\u30F4\u30A1\u8A9E +udm=\u30A6\u30C9\u30E0\u30EB\u30C8\u8A9E +uga=\u30A6\u30AC\u30EA\u30C8\u8A9E +uig=\u30A6\u30A4\u30B0\u30EB\u8A9E +ukr=\u30A6\u30AF\u30E9\u30A4\u30CA\u8A9E +umb=\u30A6\u30F3\u30D6\u30F3\u30C9\u30A5\u8A9E +und=\u975E\u78BA\u5B9A +urd=\u30A6\u30EB\u30C9\u30A5\u30FC\u8A9E +uzb=\u30A6\u30BA\u30D9\u30AF\u8A9E +vai=\u30F4\u30A1\u30A4\u8A9E +ven=\u30D9\u30F3\u30C0\u8A9E +vie=\u30D9\u30C8\u30CA\u30E0\u8A9E +vol=\u30F4\u30A9\u30E9\u30D4\u30E5\u30FC\u30AF\u8A9E +vot=\u30DC\u30FC\u30C8\u8A9E +wak=\u30EF\u30AB\u30B7\u8A9E\u65CF +wal=\u30EF\u30C3\u30E9\u30E2\u8A9E +war=\u30EF\u30E9\u30A4\u8A9E +was=\u30EF\u30B7\u30E7\u8A9E +wel=\u30A6\u30A7\u30FC\u30EB\u30BA\u8A9E +wen=\u30BD\u30EB\u30D3\u30A2\u8A9E\u65CF +wln=\u30EF\u30ED\u30F3\u8A9E +wol=\u30A6\u30A9\u30ED\u30D5\u8A9E +xal=\u30AB\u30EB\u30E0\u30A4\u30AF\u8A9E +xho=\u30B3\u30FC\u30B5\u8A9E +yao=\u30E4\u30AA\u8A9E +yap=\u30E4\u30C3\u30D7\u8A9E +yid=\u30A4\u30C7\u30A3\u30C3\u30B7\u30E5\u8A9E +yor=\u30E8\u30EB\u30D0\u8A9E +ypk=\u30E6\u30D4\u30C3\u30AF\u8A9E\u65CF +zap=\u30B6\u30DD\u30C6\u30C3\u30AF\u8A9E +zbl=\u30D6\u30EA\u30B9\u30B7\u30F3\u30DC\u30EB +zen=\u30BC\u30CA\u30AC\u8A9E +zha=\u30C1\u30E5\u30EF\u30F3\u8A9E +znd=\u30B6\u30F3\u30C7\u8A9E +zul=\u30BA\u30FC\u30EB\u30FC\u8A9E +zun=\u30BA\u30CB\u8A9E +zxx=\u8A00\u8A9E\u5185\u5BB9\u306A\u3057 +zza=\u30B6\u30B6\u8A9E + +# script names +# key is ISO 15924 script code + +Arab=\u30A2\u30E9\u30D3\u30A2\u6587\u5B57 +Armi=\u5E1D\u56FD\u30A2\u30E9\u30E0\u8A9E +Armn=\u30A2\u30EB\u30E1\u30CB\u30A2\u6587\u5B57 +Avst=\u30A2\u30F4\u30A7\u30B9\u30BF\u8A9E +Bali=\u30D0\u30EA\u6587\u5B57 +Bamu=\u30D0\u30E0\u30F3\u8A9E +Bass=\u30D0\u30B5\u8A9E(\u30D0\u30FC) +Batk=\u30D0\u30BF\u30AF\u6587\u5B57 +Beng=\u30D9\u30F3\u30AC\u30EB\u6587\u5B57 +Blis=\u30D6\u30EA\u30B9\u30B7\u30F3\u30DC\u30EB +Bopo=\u6CE8\u97F3\u5B57\u6BCD +Brah=\u30D6\u30E9\u30FC\u30D5\u30DF\u30FC\u6587\u5B57 +Brai=\u30D6\u30E9\u30A4\u30E6\u70B9\u5B57 +Bugi=\u30D6\u30AE\u30B9\u6587\u5B57 +Buhd=\u30D6\u30D2\u30C3\u30C9\u6587\u5B57 +Cakm=\u30C1\u30E3\u30AF\u30DE\u8A9E +Cans=\u7D71\u5408\u30AB\u30CA\u30C0\u5148\u4F4F\u6C11\u8A18\u53F7 +Cari=\u30AB\u30EA\u6587\u5B57 +Cham=\u30C1\u30E3\u30E0\u6587\u5B57 +Cher=\u30C1\u30A7\u30ED\u30AD\u30FC\u6587\u5B57 +Cirt=\u30AD\u30A2\u30B9\u6587\u5B57 +Copt=\u30B3\u30D7\u30C8\u6587\u5B57 +Cprt=\u30AD\u30D7\u30ED\u30B9\u6587\u5B57 +Cyrl=\u30AD\u30EA\u30EB\u6587\u5B57 +Cyrs=\u30AD\u30EA\u30EB\u6587\u5B57 (\u53E4\u4EE3\u6559\u4F1A\u30B9\u30E9\u30D6\u8A9E\u306E\u6587\u5B57) +Deva=\u30C7\u30FC\u30D0\u30CA\u30FC\u30AC\u30EA\u30FC\u6587\u5B57 +Dsrt=\u30C7\u30BB\u30EC\u30C3\u30C8\u6587\u5B57 +Dupl=\u30C7\u30E5\u30D7\u30ED\u30EF\u30A8\u5F0F\u901F\u8A18 +Egyd=\u30A8\u30B8\u30D7\u30C8\u6C11\u8846\u6587\u5B57 +Egyh=\u30A8\u30B8\u30D7\u30C8\u795E\u5B98\u6587\u5B57 +Egyp=\u30A8\u30B8\u30D7\u30C8\u8056\u523B\u6587\u5B57 +Elba=\u30A8\u30EB\u30D0\u30B5\u30F3\u6587\u5B57 +Ethi=\u30A8\u30C1\u30AA\u30D4\u30A2\u6587\u5B57 +Geok=\u30B0\u30EB\u30B8\u30A2\u6587\u5B57\uFF08\u30D5\u30C4\u30EA\uFF09 +Geor=\u30B0\u30EB\u30B8\u30A2\u6587\u5B57 +Glag=\u30B0\u30E9\u30B4\u30FC\u30EB\u6587\u5B57 +Goth=\u30B4\u30FC\u30C8\u6587\u5B57 +Gran=\u30B0\u30E9\u30F3\u30BF\u6587\u5B57 +Grek=\u30AE\u30EA\u30B7\u30E3\u6587\u5B57 +Gujr=\u30B0\u30B8\u30E3\u30E9\u30FC\u30C8\u6587\u5B57 +Guru=\u30B0\u30EB\u30E0\u30AD\u30FC\u6587\u5B57 +Hang=\u30CF\u30F3\u30B0\u30EB +Hani=\u6F22\u5B57 +Hano=\u30CF\u30CC\u30CE\u30AA\u6587\u5B57 +Hans=\u7C21\u4F53\u5B57 +Hant=\u7E41\u4F53\u5B57 +Hebr=\u30D8\u30D6\u30E9\u30A4\u6587\u5B57 +Hira=\u3072\u3089\u304C\u306A +Hmng=\u30D1\u30CF\u30A6\u30FB\u30D5\u30E2\u30F3\u6587\u5B57 +Hrkt=\u30AB\u30BF\u30AB\u30CA\u3068\u3072\u3089\u304C\u306A +Hung=\u53E4\u4EE3\u30CF\u30F3\u30AC\u30EA\u30FC\u6587\u5B57 +Inds=\u30A4\u30F3\u30C0\u30B9\u6587\u5B57 (\u30CF\u30E9\u30C3\u30D1\u6587\u5B57) +Ital=\u53E4\u4EE3\u30A4\u30BF\u30EA\u30A2\u306E\u6587\u5B57 +Java=\u30B8\u30E3\u30EF\u6587\u5B57 +Jpan=\u65E5\u672C\u8A9E\u306E\u6587\u5B57 +Kali=\u30AB\u30E4\u30FC\u6587\u5B57 +Kana=\u30AB\u30BF\u30AB\u30CA +Khar=\u30AB\u30ED\u30FC\u30B7\u30E5\u30C6\u30A3\u30FC\u6587\u5B57 +Khmr=\u30AF\u30E1\u30FC\u30EB\u6587\u5B57 +Knda=\u30AB\u30F3\u30CA\u30C0\u6587\u5B57 +Kore=\u97D3\u56FD\u8A9E\u306E\u6587\u5B57 +Kpel=\u30AF\u30DA\u30EC\u8A9E +Kthi=\u30AB\u30A4\u30C6\u30A3\u30FC\u6587\u5B57 +Lana=\u30BF\u30A4\u30FB\u30BF\u30E0\u6587\u5B57 +Laoo=\u30E9\u30AA\u6587\u5B57 +Latf=\u30E9\u30C6\u30F3\u6587\u5B57 (\u30C9\u30A4\u30C4\u6587\u5B57) +Latg=\u30E9\u30C6\u30F3\u6587\u5B57(\u30B2\u30FC\u30EB\u8A9E) +Latn=\u30E9\u30C6\u30F3\u6587\u5B57 +Lepc=\u30EC\u30D7\u30C1\u30E3\u6587\u5B57 (\u30ED\u30F3\u6587\u5B57) +Limb=\u30EA\u30F3\u30D6\u6587\u5B57 +Lina=\u7DDA\u6587\u5B57A +Linb=\u7DDA\u6587\u5B57B +Lisu=\u30EA\u30B9\u6587\u5B57 +Loma=\u30ED\u30DE\u6587\u5B57 +Lyci=\u30EA\u30E5\u30AD\u30A2\u6587\u5B57 +Lydi=\u30EA\u30C7\u30A3\u30A2\u6587\u5B57 +Mand=\u30DE\u30F3\u30C0\u6587\u5B57 +Mani=\u30DE\u30CB\u6587\u5B57 +Maya=\u30DE\u30E4\u8C61\u5F62\u6587\u5B57 +Mend=\u30E1\u30F3\u30C7\u8A9E +Merc=\u30E1\u30ED\u30A8\u6587\u5B57\u8349\u66F8\u4F53 +Mero=\u30E1\u30ED\u30A8\u6587\u5B57 +Mlym=\u30DE\u30E9\u30E4\u30FC\u30E9\u30E0\u6587\u5B57 +Mong=\u30E2\u30F3\u30B4\u30EB\u6587\u5B57 +Moon=\u30E0\u30FC\u30F3\u6587\u5B57 +Mtei=\u30E1\u30A4\u30C6\u30A4\u6587\u5B57 +Mymr=\u30DF\u30E3\u30F3\u30DE\u30FC\u6587\u5B57 +Narb=\u53E4\u4EE3\u5317\u30A2\u30E9\u30D3\u30A2\u8A9E +Nbat=\u30CA\u30D0\u30C6\u30A2\u8A9E +Nkgb=Nakhi Geba\u6587\u5B57 +Nkoo=\u30F3\u30B3\u6587\u5B57 +Ogam=\u30AA\u30AC\u30E0\u6587\u5B57 +Olck=\u30AA\u30EB\u30C1\u30AD\u6587\u5B57 +Orkh=\u30AA\u30EB\u30DB\u30F3\u6587\u5B57 +Orya=\u30AA\u30EA\u30E4\u30FC\u6587\u5B57 +Osma=\u30AA\u30B9\u30DE\u30CB\u30A2\u6587\u5B57 +Palm=\u30D1\u30EB\u30DF\u30E9\u6587\u5B57 +Perm=\u53E4\u30DA\u30EB\u30DF\u30C3\u30AF\u6587\u5B57 +Phag=\u30D1\u30B9\u30D1\u6587\u5B57 +Phli=\u7891\u6587\u306E\u30D1\u30D5\u30E9\u30F4\u30A3\u30FC\u6587\u5B57 +Phlp=\u8A69\u7BC7\u306E\u30D1\u30D5\u30E9\u30F4\u30A3\u30FC\u6587\u5B57 +Phlv=\u66F8\u7C4D\u306E\u30D1\u30D5\u30E9\u30F4\u30A3\u30FC\u6587\u5B57 +Phnx=\u30D5\u30A7\u30CB\u30AD\u30A2\u6587\u5B57 +Plrd=\u30DD\u30E9\u30FC\u30C9\u97F3\u58F0\u8A18\u53F7 +Prti=\u7891\u6587\u306E\u30D1\u30EB\u30C6\u30A3\u30A2\u6587\u5B57 +Rjng=\u30EC\u30B8\u30E3\u30F3\u8A9E +Roro=\u30ED\u30F3\u30B4\u30ED\u30F3\u30B4\u6587\u5B57 +Runr=\u30EB\u30FC\u30F3\u6587\u5B57 +Samr=\u30B5\u30DE\u30EA\u30A2\u8A9E +Sara=\u30B5\u30E9\u30C6\u30A3\u6587\u5B57 +Sarb=\u53E4\u4EE3\u5357\u30A2\u30E9\u30D3\u30A2\u8A9E +Saur=\u30B5\u30A4\u30E9\u30B7\u30E5\u30C8\u30E9\u8A9E +Sgnw=\u624B\u8A71\u8A18\u8FF0 +Shaw=\u30B7\u30E7\u30FC\u6587\u5B57 +Sind=\u30B7\u30F3\u30C9\u8A9E +Sinh=\u30B7\u30F3\u30CF\u30E9\u6587\u5B57 +Sund=\u30B9\u30F3\u30C0\u8A9E +Sylo=\u30B7\u30ED\u30C6\u30A3\u30FB\u30CA\u30B0\u30EA\u6587\u5B57 +Syrc=\u30B7\u30EA\u30A2\u6587\u5B57 +Syre=\u30B7\u30EA\u30A2\u6587\u5B57 (\u30A8\u30B9\u30C8\u30E9\u30F3\u30B2\u30ED\u6587\u5B57) +Syrj=\u30B7\u30EA\u30A2\u6587\u5B57 (\u897F\u65B9\u30B7\u30EA\u30A2\u6587\u5B57) +Syrn=\u30B7\u30EA\u30A2\u6587\u5B57 (\u6771\u65B9\u30B7\u30EA\u30A2\u6587\u5B57) +Tagb=\u30BF\u30B0\u30D0\u30F3\u30EF\u6587\u5B57 +Tale=\u30BF\u30A4\u30EC\u6587\u5B57 +Talu=\u65B0\u30BF\u30A4\u30FB\u30EB\u30FC\u6587\u5B57 +Taml=\u30BF\u30DF\u30FC\u30EB\u6587\u5B57 +Tavt=\u30BF\u30A4\u30FB\u30F4\u30A7\u30C8\u6587\u5B57 +Telu=\u30C6\u30EB\u30B0\u6587\u5B57 +Teng=\u30C6\u30F3\u30B0\u30EF\u30FC\u30EB\u6587\u5B57 +Tfng=\u30AF\u30E1\u30FC\u30EB\u8A9E +Tglg=\u30BF\u30AC\u30ED\u30B0\u6587\u5B57 +Thaa=\u30BF\u30FC\u30CA\u6587\u5B57 +Thai=\u30BF\u30A4\u6587\u5B57 +Tibt=\u30C1\u30D9\u30C3\u30C8\u6587\u5B57 +Ugar=\u30A6\u30AC\u30EA\u30C8\u6587\u5B57 +Vaii=\u30F4\u30A1\u30A4\u6587\u5B57 +Visp=\u8996\u8A71\u6CD5 +Wara=\u30EF\u30E9\u30F3\u30B0\u30FB\u30AF\u30B7\u30C6\u30A3\u6587\u5B57 +Xpeo=\u53E4\u4EE3\u30DA\u30EB\u30B7\u30A2\u6587\u5B57 +Xsux=\u30B7\u30E5\u30E1\u30FC\u30EB\uFF1D\u30A2\u30C3\u30AB\u30C9\u8A9E\u6954\u5F62\u6587\u5B57 +Yiii=\u30A4\u6587\u5B57 +Zinh=\u7D99\u627F\u7528\u5B57 +Zmth=\u6570\u5B66\u8A18\u53F7 +Zsym=\u8A18\u53F7 +Zxxx=\u53E3\u627F\u8A00\u8A9E\u306E\u30B3\u30FC\u30C9 +Zyyy=\u5171\u901A\u30B3\u30FC\u30C9 +Zzzz=\u7528\u5B57\u672A\u30B3\u30FC\u30C9\u5316 + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=\u30de\u30e8\u30c3\u30c8\u5cf6 ZA=\u5357\u30a2\u30d5\u30ea\u30ab ZM=\u30b6\u30f3\u30d3\u30a2 ZW=\u30b8\u30f3\u30d0\u30d6\u30a8 + +# territory names +# key is UN M.49 country and area code + +001=\u4E16\u754C +002=\u30A2\u30D5\u30EA\u30AB +003=\u5317\u7C73 +005=\u5357\u30A2\u30E1\u30EA\u30AB +009=\u30AA\u30BB\u30A2\u30CB\u30A2 +011=\u897F\u30A2\u30D5\u30EA\u30AB +013=\u4E2D\u592E\u30A2\u30E1\u30EA\u30AB +014=\u6771\u30A2\u30D5\u30EA\u30AB +015=\u5317\u30A2\u30D5\u30EA\u30AB +017=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB +018=\u5357\u90E8\u30A2\u30D5\u30EA\u30AB +019=\u30A2\u30E1\u30EA\u30AB\u5927\u9678 +021=\u5317\u30A2\u30E1\u30EA\u30AB +029=\u30AB\u30EA\u30D6\u6D77 +030=\u6771\u30A2\u30B8\u30A2 +034=\u5357\u30A2\u30B8\u30A2 +035=\u6771\u5357\u30A2\u30B8\u30A2 +039=\u5357\u30E8\u30FC\u30ED\u30C3\u30D1 +053=\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2\u30FB\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9 +054=\u30E1\u30E9\u30CD\u30B7\u30A2 +057=\u30DF\u30AF\u30ED\u30CD\u30B7\u30A2\u5730\u57DF +061=\u30DD\u30EA\u30CD\u30B7\u30A2 +142=\u30A2\u30B8\u30A2 +143=\u4E2D\u592E\u30A2\u30B8\u30A2 +145=\u897F\u30A2\u30B8\u30A2 +150=\u30E8\u30FC\u30ED\u30C3\u30D1 +151=\u6771\u30E8\u30FC\u30ED\u30C3\u30D1 +154=\u5317\u30E8\u30FC\u30ED\u30C3\u30D1 +155=\u897F\u30E8\u30FC\u30ED\u30C3\u30D1 +419=\u30E9\u30C6\u30F3\u30A2\u30E1\u30EA\u30AB\u30FB\u30AB\u30EA\u30D6\u5730\u57DF diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_ko.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_ko.properties index 566552733b1..67eb5acc7f2 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_ko.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_ko.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=\uc8fc\uc559\uc5b4 zh=\uc911\uad6d\uc5b4 zu=\uc904\ub8e8\uc5b4 +# key is ISO 639.2 language code +aar=\uC544\uD30C\uB974\uC5B4 +abk=\uC544\uBE0C\uD558\uC988\uC5B4 +ace=\uC544\uCCB4\uC5B4 +ach=\uC544\uCF5C\uB9AC\uC5B4 +ada=\uC544\uB2F9\uBA54\uC5B4 +ady=\uC544\uB2E5\uD5E4\uC5B4 +afa=\uC544\uD504\uAC00\uB2C8(1927-2002) +afh=\uC544\uD504\uB9AC\uD788\uB9AC\uC5B4 +afr=\uB0A8\uC544\uACF5 \uACF5\uC6A9\uC5B4 +ain=\uC544\uC774\uB204\uC5B4 +aka=\uC544\uCE78\uC5B4 +akk=\uC544\uCE74\uB4DC\uC5B4 +alb=\uC54C\uBC14\uB2C8\uC544\uC5B4 +ale=\uC54C\uB958\uD2B8\uC5B4 +alg=\uC54C\uACF5\uD0A8\uC5B4\uC871 +alt=\uB0A8\uBD80 \uC54C\uD0C0\uC774\uC81C\uC5B4 +amh=\uC554\uD558\uB77C\uC5B4 +ang=\uB124\uB35C\uB780\uB4DC\uB839 \uC548\uD2F8\uB808\uC2A4 \uAE38\uB354 +anp=\uC559\uAC00\uC5B4 +apa=\uC544\uD30C\uCE58\uC5B4 +ara=\uC544\uB78D\uC5B4 +arc=\uC544\uB78C\uC5B4 +arg=\uC544\uB77C\uACE4\uC5B4 +arm=\uC544\uB974\uBA54\uB2C8\uC544\uC5B4 +arn=\uC544\uB77C\uC6B0\uCE78\uC5B4 +arp=\uC544\uB77C\uD30C\uD638\uC5B4 +art=\uAE30\uACC4\uC5B4(\uAE30\uD0C0) +arw=\uC544\uB77C\uC640\uD06C\uC5B4 +asm=\uC544\uC0D8\uC5B4 +ast=\uC544\uC2A4\uD22C\uB9AC\uC544\uC5B4 +ath=\uC544\uD0C0\uD30C\uC2A4\uCE74\uC5B4\uAD70 +aus=\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544\uC5B4\uC871 +ava=\uC544\uBC14\uB974\uC5B4 +ave=\uC544\uBCA0\uC2A4\uD0C0\uC5B4 +awa=\uC544\uC640\uD788\uC5B4 +aym=\uC544\uC774\uB9C8\uB77C\uC5B4 +aze=\uC544\uC81C\uB974\uBC14\uC774\uC794\uC5B4 +bad=\uBCF4\uC2A4\uB2C8\uC544-\uD5E4\uB974\uCCB4\uACE0\uBE44\uB098 \uB514\uB098\uB974 +bai=\uBC14\uBC00\uB808\uCF00\uC5B4\uC871 +bak=\uBC14\uC288\uD0A4\uB974\uC5B4 +bal=\uBC1C\uB8E8\uCE58\uC5B4 +bam=\uBC24\uBC14\uB77C\uC5B4 +ban=\uBC1C\uB9AC\uC5B4 +baq=\uBC14\uC2A4\uD06C\uC5B4 +bas=\uBC14\uC0AC\uC5B4 +bat=\uBC1C\uD2B8\uC5B4(\uAE30\uD0C0) +bej=\uBCA0\uC790\uC5B4 +bel=\uBCA8\uB77C\uB8E8\uC2A4\uC5B4 +bem=\uBCB0\uBC14\uC5B4 +ben=\uBCB5\uACE8\uC5B4 +ber=\uBCA0\uB974\uBCA0\uB974\uC5B4 +bho=\uD638\uC988\uD478\uB9AC\uC5B4 +bih=\uBE44\uD558\uB974\uC5B4 +bik=\uBE44\uCF5C\uC5B4 +bin=\uBE44\uB2C8\uC5B4 +bis=\uBE44\uC2AC\uB77C\uB9C8\uC5B4 +bla=\uC2DD\uC2DC\uCE74\uC5B4 +bnt=\uBC18\uD22C\uC5B4 +bos=\uBCF4\uC2A4\uB2C8\uC544\uC5B4 +bra=\uBE0C\uB77C\uC9C0\uC5B4 +bre=\uBE0C\uB77C\uC9C8 \uD06C\uB8E8\uC81C\uC774\uB8E8 (1990-1993) +btk=\uBC14\uD0C0\uD06C\uC5B4 +bua=\uBD80\uB9AC\uC544\uD0C0 +bug=\uBD80\uAE30\uC5B4 +bul=\uBD88\uAC00\uB9AC\uC544\uC5B4 +bur=\uBC84\uB9C8\uC5B4 +byn=\uBE0C\uB9B0\uC5B4 +cad=\uCE74\uB3C4\uC5B4 +cai=\uC911\uC559 \uC544\uBA54\uB9AC\uCE74 \uC778\uB514\uC548\uC5B4(\uAE30\uD0C0) +car=\uCE74\uB9AC\uBE0C\uC5B4 +cat=\uCE74\uD0C8\uB85C\uB2C8\uC544\uC5B4 +cau=\uCE74\uD504\uCE74\uC2A4\uC5B4(\uAE30\uD0C0) +ceb=\uC138\uBD80\uC544\uB178\uC5B4 +cel=\uCF08\uD2B8\uC5B4(\uAE30\uD0C0) +cha=\uCC28\uBAA8\uB85C\uC5B4 +chb=\uCE58\uBE0C\uCC28\uC5B4 +che=\uCCB4\uCCB8\uC5B4 +chg=\uCC28\uAC00\uD0C0\uC774\uC5B4 +chi=\uC911\uAD6D\uC5B4 +chk=\uCD94\uD06C\uC5B4 +chm=\uB9C8\uB9AC\uC5B4 +chn=\uCE58\uB204\uD06C\uC5B4\uC640 \uC601\uC5B4 \uD504\uB791\uC2A4\uC5B4\uC758 \uD63C\uC131\uC5B4 +cho=\uCD09\uD1A0\uC5B4 +chp=\uCE58\uD398\uC6B0\uC580 +chr=\uCCB4\uB85C\uD0A4 \uBB38\uC790 +chu=\uAD50\uD68C \uC2AC\uB77C\uBE0C\uC5B4 +chv=\uCD94\uBC14\uC26C\uC5B4 +chy=\uC0E4\uC774\uC5D4\uC5B4 +cmc=\uCC38\uC5B4\uAD70 +cop=\uCF65\uD2B8 \uBB38\uC790 +cor=\uCF58\uC6D4\uC5B4 +cos=\uCF54\uB974\uC2DC\uCE74\uC5B4 +cpe=\uD06C\uB9AC\uC62C\uC5B4 \uBC0F \uD53C\uC9C4\uC5B4(\uC601\uC5B4\uB97C \uAE30\uBC18\uC73C\uB85C \uD55C \uAE30\uD0C0) +cpf=\uD06C\uB9AC\uC62C\uC5B4 \uBC0F \uD53C\uC9C4\uC5B4(\uD504\uB791\uC2A4\uC5B4\uB97C \uAE30\uBC18\uC73C\uB85C \uD55C \uAE30\uD0C0) +cpp=\uD06C\uB9AC\uC62C\uC5B4 \uBC0F \uD53C\uC9C4\uC5B4(\uD3EC\uB974\uD22C\uCE7C\uC5B4\uB97C \uAE30\uBC18\uC73C\uB85C \uD55C \uAE30\uD0C0) +cre=\uD06C\uB9AC\uC5B4 +crh=\uD06C\uB9AC\uBBFC \uD130\uD0A4\uC5B4; \uD06C\uB9AC\uBBFC \uD0C0\uD0C0\uB974\uC5B4 +crp=\uD06C\uB9AC\uC62C\uC5B4 \uBC0F \uD53C\uC9C4\uC5B4 (\uAE30\uD0C0) +csb=\uCE74\uC288\uBE44\uC544\uC5B4 +cus=\uCFE0\uC2DC\uC5B4\uC871 +cze=\uCCB4\uCF54\uC5B4 +dak=\uB2E4\uCF54\uD0C0\uC5B4 +dan=\uB374\uB9C8\uD06C\uC5B4 +dar=\uB2E4\uB974\uADF8\uC640\uC5B4 +day=\uB2E4\uC57C\uD06C\uC5B4 +del=\uB378\uB77C\uC6E8\uC5B4\uC5B4 +den=\uC2AC\uB77C\uBE0C\uC5B4 +dgr=\uB3C4\uADF8\uB9AC\uBE0C\uC5B4 +din=\uB529\uCE74\uC5B4 +div=\uB514\uBCA0\uD788\uC5B4 +doi=\uB3C4\uADF8\uB9AC\uC5B4 +dra=\uB4DC\uB77C\uBE44\uB2E4\uC5B4 (\uAE30\uD0C0) +dsb=\uC800\uC9C0 \uC18C\uB974\uBE44\uC544\uC5B4 +dua=\uB4DC\uC640\uB77C\uC5B4 +dum=\uC911\uC138 \uB124\uB35C\uB780\uB4DC\uC5B4 +dut=\uB124\uB35C\uB780\uB4DC\uC5B4 +dyu=\uB4DC\uC728\uB77C\uC5B4 +dzo=\uBD80\uD0C4\uC5B4 +efi=\uC774\uD53D\uC5B4 +egy=\uC774\uC9D1\uD2B8\uC5B4 (\uACE0\uB300) +eka=\uC774\uCE74\uC8FD\uC5B4 +elx=\uC5D8\uB78C\uC5B4 +eng=\uC601\uC5B4 +enm=\uC601\uC5B4, \uC911\uC138(1100 - 1500) +epo=\uC5D0\uC2A4\uD398\uB780\uD1A0\uC5B4 +est=\uC5D0\uC2A4\uD1A0\uB2C8\uC544\uC5B4 +ewe=\uC5D0\uC6E8\uC5B4 +ewo=\uC774\uC6D0\uB3C4\uC5B4 +fan=\uD321\uADF8\uC5B4 +fao=\uD398\uB85C\uC2A4\uC5B4 +fat=\uD310\uD2F0\uC5B4 +fij=\uD53C\uC9C0\uC5B4 +fil=\uD544\uB9AC\uD540\uC5B4 +fin=\uD540\uB780\uB4DC\uC5B4 +fiu=\uD53C\uB178\uC6B0\uADF8\uB9AC\uC544\uC5B4(\uAE30\uD0C0) +fon=\uD3F0\uC5B4 +fre=\uD504\uB791\uC2A4\uC5B4 +frm=\uC911\uC138 \uD504\uB791\uC2A4\uC5B4 +fro=\uACE0\uB300 \uD504\uB791\uC2A4\uC5B4 +frr=\uBD81\uBD80 \uD504\uB9AC\uC2AC\uB780\uB4DC\uC5B4 +frs=\uB3D9\uBD80 \uD504\uB9AC\uC2AC\uB780\uB4DC\uC5B4 +fry=\uC11C\uBD80 \uD504\uB9AC\uC2AC\uB780\uB4DC\uC5B4 +ful=\uD480\uB77C\uB2C8\uC5B4 +fur=\uD504\uB9AC\uC6B0\uB9AC\uC548\uC5B4 +gaa=\uAC00\uC5B4 +gay=\uAC00\uC694\uC5B4 +gba=\uADF8\uBC14\uC57C\uC5B4 +gem=\uB3C5\uC77C\uC5B4(\uAE30\uD0C0) +geo=\uADF8\uB8E8\uC9C0\uC57C\uC5B4 +ger=\uB3C5\uC77C\uC5B4 +gez=\uAC8C\uC774\uC988\uC5B4 +gil=\uD0A4\uB9AC\uBC14\uC2DC\uC5B4 +gla=\uAC8C\uC77C\uC5B4 +gle=\uC544\uC77C\uB79C\uB4DC\uC5B4 +glg=\uAC08\uB9AC\uC2DC\uC544\uC5B4 +glv=\uB9F9\uD06C\uC2A4\uC5B4 +gmh=\uC911\uC138 \uACE0\uC9C0 \uB3C5\uC77C\uC5B4 +goh=\uACE0\uB300 \uACE0\uC9C0 \uB3C5\uC77C\uC5B4 +gon=\uACE4\uB514\uC5B4 +gor=\uACE0\uB860\uD0C8\uB85C\uC5B4 +got=\uACE0\uD2B8\uC5B4 +grb=\uAC8C\uB974\uBCF4\uC5B4 +grc=\uADF8\uB9AC\uC2A4\uC5B4, \uACE0\uB300 (1453\uB144\uAE4C\uC9C0) +gre=\uADF8\uB9AC\uC2A4\uC5B4, \uADFC\uC138(1453\uB144\uBD80\uD130) +grn=\uAD6C\uC544\uB77C\uB2C8\uC5B4 +gsw=\uB3C5\uC77C\uC5B4(\uC2A4\uC704\uC2A4) +guj=\uAD6C\uC790\uB77C\uD2B8\uC5B4 +gwi=\uADF8\uC704\uCE5C\uC5B4 +hai=\uD558\uC774\uB2E4\uC5B4 +hat=\uC544\uC774\uD2F0\uC5B4 +hau=\uD558\uC6B0\uC790\uC5B4 +haw=\uD558\uC640\uC774\uC5B4 +heb=\uD788\uBE0C\uB9AC \uBB38\uC790 +her=\uD5E4\uB808\uB85C\uC5B4 +hil=\uD5E4\uB9AC\uAC00\uB1EC\uC5B4 +him=\uD788\uB9C8\uCC28\uB9AC\uC5B4 +hin=\uD78C\uB514\uC5B4 +hit=\uD558\uD0C0\uC774\uD2B8\uC5B4 +hmn=\uD788\uBAB8\uC5B4 +hmo=\uD788\uB9AC\uBAA8\uD22C\uC5B4 +hrv=\uD06C\uB85C\uC544\uD2F0\uC544\uC5B4 +hsb=\uACE0\uC9C0 \uC18C\uB974\uBE44\uC544\uC5B4 +hun=\uD5DD\uAC00\uB9AC\uC5B4 +hup=\uD6C4\uD30C\uC5B4 +iba=\uC774\uBC18\uC5B4 +ibo=\uC774\uADF8\uBCF4\uC5B4 +ice=\uC544\uC774\uC2AC\uB780\uB4DC\uC5B4 +ido=\uC774\uB3C4\uC5B4 +iii=\uC4F0\uCD28 \uC774\uC5B4 +ijo=\uC774\uC870\uC5B4 +iku=\uC774\uB205\uD2F0\uD22C\uD2B8\uC5B4 +ile=\uC778\uD130\uB9C1\uAC8C\uC5B4 +ilo=\uC774\uB85C\uCF54\uC5B4 +ina=\uC778\uD130\uB9C1\uAC70(\uAD6D\uC81C \uBCF4\uC870 \uC5B8\uC5B4 \uD611\uD68C) +inc=\uC778\uB3C4\uC5B4(\uAE30\uD0C0) +ind=\uC778\uB3C4\uB124\uC2DC\uC544\uC5B4 +ine=\uC778\uB3C4\uC720\uB7FD\uC5B4(\uAE30\uD0C0) +inh=\uC778\uADC0\uC2DC\uC5B4 +ipk=\uC774\uB204\uD53C\uC544\uD06C\uC5B4 +ira=\uC774\uB780\uC5B4 [ira] +iro=\uC774\uB7EC\uCFFC\uC774\uC5B4 +ita=\uC774\uD0C8\uB9AC\uC544\uC5B4 +jav=\uC790\uBC14\uC5B4 +jbo=\uB85C\uBC18\uC5B4 +jpn=\uC77C\uBCF8\uC5B4 +jpr=\uC720\uB300-\uD398\uB974\uC2DC\uC544\uC5B4 +jrb=\uC720\uB300-\uC544\uB77C\uBE44\uC544\uC5B4 +kaa=\uCE74\uB77C\uCE7C\uD30C\uD06C\uC5B4 +kab=\uCEE4\uBC14\uC77C\uC5B4 +kac=\uCE74\uCE5C\uC5B4 +kal=\uCE7C\uB784\uB9AC\uC218\uD2B8 +kam=\uCE84\uBC14\uC5B4 +kan=\uCE78\uB098\uB2E4 \uBB38\uC790 +kar=\uCE74\uB80C\uC5B4 +kas=\uCE74\uC288\uBBF8\uB974\uC5B4 +kau=\uCE74\uB204\uB9AC\uC5B4 +kaw=\uCE74\uC704\uC5B4 +kaz=\uCE74\uC790\uD750\uC5B4 +kbd=\uCE74\uBC14\uB974\uB514\uC5B4 +kha=\uCE74\uC2DC\uC5B4 +khi=\uCF54\uC774\uC0B0\uC5B4 +khm=\uC911\uC559 \uD06C\uBA54\uB974 \uBB38\uC790 +kho=\uD638\uD0C4\uC5B4 +kik=\uD0A4\uCFE0\uC720\uC5B4 +kin=\uBC18\uD22C\uC5B4(\uB8E8\uC644\uB2E4) +kir=\uD0A4\uB974\uAE30\uC2A4\uC5B4 +kmb=\uD0B4\uBD84\uB450\uC5B4 +kok=\uCF54\uCE74\uB2C8\uC5B4 +kom=\uCF54\uBBF8\uC5B4 +kon=\uCF69\uACE0\uC5B4 +kor=\uD55C\uAD6D\uC5B4 +kos=\uCF54\uC2A4\uB77C\uC774\uC5D4\uC5B4 +kpe=\uD06C\uD3A0\uB808\uC5B4 +krc=\uCE74\uB77C\uCC60\uC774-\uBC1C\uCE74\uB974\uC5B4 +krl=\uCE74\uB810\uB9AC\uC57C\uC5B4 +kro=\uD06C\uB8E8\uC5B4 +kru=\uCFE0\uB974\uD06C\uC5B4 +kua=\uCFE0\uC548\uC57C\uB9C8\uC5B4 +kum=\uCFE0\uBBF9\uC5B4 +kur=\uD06C\uB974\uB4DC\uC5B4 +kut=\uCFE0\uD14C\uB124\uC5B4 +lad=\uB77C\uB514\uB178\uC5B4 +lah=\uB77C\uD55C\uB2E4\uC5B4 +lam=\uB78C\uBC14\uC5B4 +lao=\uB77C\uC624\uC5B4 +lat=\uB77C\uD2F4\uC5B4 +lav=\uB77C\uD2B8\uBE44\uC544\uC5B4 +lez=\uB808\uC988\uAE30\uC548\uC5B4 +lim=\uB9BC\uBC84\uADF8\uC5B4 +lin=\uB9C1\uAC08\uB77C\uC5B4 +lit=\uB9AC\uD22C\uC544\uB2C8\uC544\uC5B4 +lol=\uBABD\uAD6C\uC5B4 +loz=\uB85C\uC9C0\uC5B4 +ltz=\uB8E9\uC148\uBD80\uB974\uD06C\uC5B4 +lua=\uB8E8\uBC14-\uB8F0\uB8E8\uC544\uC5B4 +lub=\uB8E8\uBC14\uC5B4(\uCE74\uD0D5\uAC00) +lug=\uAC04\uB2E4\uC5B4 +lui=\uB8E8\uC774\uC138\uB178\uC5B4 +lun=\uB8EC\uB2E4\uC5B4 +luo=\uB8E8\uC624\uC5B4 +lus=\uB8E8\uC0E4\uC774\uC5B4 +mac=\uB9C8\uCF00\uB3C4\uB2C8\uC544\uC5B4 +mad=\uBAA8\uB85C\uCF54 \uB514\uB818 +mag=\uB9C8\uAC00\uD788 +mah=\uB9D0\uC0B4\uB808\uC2A4\uC5B4 +mai=\uB9C8\uC774\uD2F8\uB9AC +mak=\uB9C8\uCE74\uC0AC\uC5B4 +mal=\uB9D0\uB77C\uC584\uB78C\uC5B4 +man=\uB9CC\uB529\uACE0\uC5B4 +mao=\uB9C8\uC624\uB9AC\uC5B4 +map=\uB0A8\uB3C4\uC5B4 +mar=\uB9C8\uB77C\uD2F0\uC5B4 +mas=\uB9C8\uC0AC\uC774\uC5B4 +may=\uB9D0\uB808\uC774\uC5B4 +mdf=\uBAA8\uD06C\uC0E4\uC5B4 +mdr=\uB9CC\uB2E4\uB974\uC5B4 +men=\uBA58\uB370\uC5B4 +mga=\uC544\uC77C\uB79C\uB4DC\uC5B4, \uC911\uC138(900 - 1200\uB144) +mic=\uBBF8\uD06C\uB9E5\uC5B4 +min=\uBBF8\uB0AD\uCE74\uBC14\uC6B0 +mis=\uAE30\uD0C0 \uC5B8\uC5B4 +mkh=\uBAAC\uD06C\uBA54\uB974\uC5B4 (\uAE30\uD0C0) +mlg=\uB9C8\uB2E4\uAC00\uC2A4\uCE74\uB974\uC5B4 +mlt=\uBAB0\uD0C0\uC5B4 +mnc=\uB9CC\uC8FC\uC5B4 +mni=\uB9C8\uB2C8\uD478\uB9AC\uC5B4 +mno=\uB9C8\uB178\uBCF4\uC5B4 +moh=\uBAA8\uD638\uD06C\uC5B4 +mon=\uBABD\uACE8\uC5B4 +mos=\uBAA8\uC2DC\uC5B4 +mul=\uB2E4\uC911 \uC5B8\uC5B4 +mun=\uBB38\uB2E4\uC5B4 +mus=\uD06C\uB9AC\uD06C\uC5B4 +mwl=\uBBF8\uB780\uB370\uC5B4 +mwr=\uB9C8\uB974\uC640\uB9AC\uC5B4 +myn=\uB9C8\uC57C\uC5B4 +myv=\uC5D8\uC988\uC57C\uC5B4 +nah=\uB098\uC6B0\uC544\uD2C0\uC5B4 +nai=\uBD81\uC544\uBA54\uB9AC\uCE74 \uC778\uB514\uC5B8\uC5B4 (\uAE30\uD0C0) +nap=\uB098\uD3F4\uB9AC\uC5B4 +nau=\uB098\uC6B0\uB8E8\uC5B4 +nav=\uB098\uBC14\uD638\uC5B4 +nbl=\uB370\uBCA0\uB808\uC5B4, \uB0A8\uBD80 +nde=\uB370\uBCA0\uB808\uC5B4, \uBD81\uBD80 +ndo=\uC740\uB3D9\uAC00\uC5B4 +nds=\uC800\uC9C0 \uB3C5\uC77C\uC5B4 +nep=\uB124\uD314\uC5B4 +new=\uB124\uC640\uB974\uC5B4 +nia=\uB2C8\uC544\uC2A4\uC5B4 +nic=\uB2C8\uCE74\uB77C\uACFC \uCF54\uB974\uB3C4\uBC14 +niu=\uB2C8\uC6E8\uC5B8\uC5B4 +nno=\uB178\uB974\uC6E8\uC774\uC5B4(\uB2C8\uB178\uB974\uC2A4\uD06C) +nob=\uB178\uB974\uC6E8\uC774\uC5B4(\uBD81\uBAB0) +nog=\uB178\uAC00\uC774\uC5B4 +non=\uB178\uB974\uC6E8\uC774, \uACE0\uB300 +nor=\uB178\uB974\uC6E8\uC774\uC5B4 +nqo=\uC751\uCF54\uC5B4 +nso=\uC18C\uD1A0\uC5B4(\uBD81\uBD80) +nub=\uB204\uBE44\uC548\uC5B4 +nwc=\uB124\uC640\uB974\uC5B4 (\uACE0\uC804) +nya=\uCE58\uCCB4\uC640\uC5B4 +nym=\uB2C8\uC554\uC6E8\uC9C0\uC5B4 +nyn=\uB2C8\uC548\uCF5C\uC5B4 +nyo=\uB274\uB85C\uC5B4 +nzi=\uB290\uC9C0\uB9C8\uC5B4 +oci=\uC625\uC2DC\uD2B8\uC5B4(1500\uB144 \uC774\uD6C4) +oji=\uC624\uC9C0\uBE0C\uC640\uC5B4 +ori=\uC624\uB9AC\uC57C\uC5B4 +orm=\uC624\uB85C\uBAA8\uC5B4 +osa=\uC624\uC138\uC774\uC9C0\uC5B4 +oss=\uC624\uC138\uD2F0\uC548\uC5B4 +ota=\uD130\uD0A4\uC5B4, \uC624\uC2A4\uB9CC(1500-1928) +oto=\uC624\uD1A0\uBBF8\uC548\uC5B4 +paa=\uD30C\uD478\uC544\uC5B4(\uAE30\uD0C0) +pag=\uD310\uAC00\uC2DC\uB09C\uC5B4 +pal=\uD314\uB808\uBE44\uC5B4 +pam=\uD31C\uD321\uAC00\uC5B4 +pan=\uD380\uC7A1\uC5B4 +pap=\uD30C\uD53C\uC544\uBA3C\uD1A0\uC5B4 +pau=\uD30C\uB77C\uC6B0\uC548\uC5B4 +peo=\uACE0\uB300 \uD398\uB974\uC2DC\uC544\uC5B4 +per=\uD398\uB974\uC2DC\uC544\uC5B4 +phi=\uD544\uB9AC\uD540\uC5B4(\uAE30\uD0C0) +phn=\uD398\uB2C8\uD0A4\uC544\uC5B4 +pli=\uD314\uB9AC\uC5B4 +pol=\uD3F4\uB780\uB4DC\uC5B4 +pon=\uD3FC\uD398\uC774\uC5B4 +por=\uD3EC\uB974\uD22C\uCE7C\uC5B4 +pra=\uD504\uB77C\uD06C\uB9AC\uD2B8\uC5B4 +pro=\uACE0\uB300 \uD504\uB85C\uBC29\uC2A4\uC5B4 +pus=\uD30C\uC288\uD1A0(\uD30C\uC288\uD1A0\uC5B4) +que=\uCF00\uCD94\uC544\uC5B4 +raj=\uB77C\uC790\uC2A4\uD0C4\uC5B4 +rap=\uB77C\uD30C\uB274\uC774 +rar=\uB77C\uB85C\uD1B5\uAC00\uC5B4 +roa=\uB85C\uB9DD\uC2A4\uC5B4(\uAE30\uD0C0) +roh=\uB85C\uB9DD\uC288\uC5B4 +rom=\uC9D1\uC2DC\uC5B4 +rum=\uB8E8\uB9C8\uB2C8\uC544\uC5B4 +run=\uB8EC\uB514\uC5B4 +rup=\uC544\uB85C\uB9C8\uB2C8\uC544\uC5B4 +rus=\uB7EC\uC2DC\uC544\uC5B4 +sad=\uC0B0\uB2E4\uC6E8\uC5B4 +sag=\uC0B0\uACE0\uC5B4 +sah=\uC57C\uD050\uD2B8\uC5B4 +sai=\uB0A8\uC544\uBA54\uB9AC\uCE74 \uC778\uB514\uC5B8\uC5B4 (\uAE30\uD0C0) +sal=\uC0D0\uB9AC\uC2DC\uC5B4\uC5B4 +sam=\uC0AC\uB9C8\uB9AC\uC544 \uC544\uB78D\uC5B4 +san=\uC0B0\uC2A4\uD06C\uB9AC\uD2B8\uC5B4 +sas=\uC0AC\uC0AC\uD06C\uC5B4 +sat=\uC0B0\uD0C8\uB9AC\uC5B4 +scn=\uC2DC\uCE60\uB9AC\uC544\uC5B4 +sco=\uC2A4\uCF54\uD2C0\uB79C\uB4DC\uC5B4 +sel=\uC140\uCFE0\uD504\uC5B4 +sem=\uC148\uC5B4(\uAE30\uD0C0) +sga=\uC544\uC77C\uB79C\uB4DC, \uACE0\uB300 (900\uB144\uAE4C\uC9C0) +sgn=\uC218\uD654 +shn=\uC0E8\uC5B4 +sid=\uC2DC\uB2E4\uBAA8\uC5B4 +sin=\uC2A4\uB9AC\uB791\uCE74\uC5B4 +sio=\uC218\uC871\uC5B4 +sit=\uC2AC\uB85C\uBCA0\uB2C8\uC544 \uD1A8\uB77C\uB974 +sla=\uC2AC\uB77C\uBE0C\uC5B4 +slo=\uC2AC\uB85C\uBC14\uD0A4\uC544\uC5B4 +slv=\uC2AC\uB85C\uBCA0\uB2C8\uC544\uC5B4 +sma=\uB0A8\uBD80 \uC0AC\uBBF8\uC5B4 +sme=\uBD81\uBD80 \uC0AC\uBBF8\uC5B4 +smi=\uC0AC\uBBF8\uC5B4 (\uAE30\uD0C0) +smj=\uB8F0\uB808 \uC0AC\uBBF8\uC5B4 +smn=\uC774\uB098\uB9AC \uC0AC\uBBF8\uC5B4 +smo=\uC0AC\uBAA8\uC544\uC5B4 +sms=\uC2A4\uCF5C\uD2B8 \uC0AC\uBBF8\uC5B4 +sna=\uC1FC\uB098\uC5B4 +snd=\uC2E0\uB514\uC5B4 +snk=\uC18C\uB2CC\uCF00\uC5B4 +sog=\uC18C\uADF8\uB514\uC5D4\uC5B4 +som=\uC18C\uB9D0\uB9AC\uC544\uC5B4 +son=\uC1A1\uAC00\uC774\uC871\uC5B4 +sot=\uC18C\uD1A0\uC5B4, \uB0A8\uBD80 +spa=\uC2A4\uD398\uC778\uC5B4 +srd=\uC0AC\uB974\uB514\uB2C8\uC544\uC5B4 +srn=\uC2A4\uB77C\uB09C \uD1B5\uAC00\uC5B4 +srp=\uC138\uB974\uBE44\uC544\uC5B4 +srr=\uC138\uB808\uB974\uC5B4 +ssa=\uB2C8\uB85C-\uC0AC\uD558\uB78C\uC5B4 (\uAE30\uD0C0) +ssw=\uC2DC\uC2A4\uC640\uD2F0\uC5B4 +suk=\uC218\uCFE0\uB9C8\uC871\uC5B4 +sun=\uC21C\uB2E8\uC5B4 +sus=\uC218\uC218\uC5B4 +sux=\uC218\uBA54\uB974\uC5B4 +swa=\uC2A4\uC640\uD790\uB9AC\uC5B4 +swe=\uC2A4\uC6E8\uB374\uC5B4 +syc=\uC2DC\uB9AC\uC544\uC5B4(\uACE0\uC804) +syr=\uC2DC\uB9AC\uC544\uC5B4 +tah=\uD0C0\uD788\uD2F0\uC548\uC5B4 +tai=\uD0DC\uAD6D\uC5B4(\uAE30\uD0C0) +tam=\uD0C0\uBC00\uC5B4 +tat=\uD0C0\uD0C0\uB974\uC5B4 +tel=\uD154\uB8E8\uAD6C\uC5B4 +tem=\uD300\uB2C8\uC5B4 +ter=\uD14C\uB808\uB178\uC5B4 +tet=\uD14C\uD23C\uC5B4 +tgk=\uD0C0\uC9C0\uD0A4\uC2A4\uD0C4\uC5B4 +tgl=\uD0C0\uAC08\uB85C\uADF8\uC5B4 +tha=\uD0DC\uAD6D\uC5B4 +tib=\uD2F0\uBCA0\uD2B8\uC5B4 +tig=\uD2F0\uADF8\uB808\uC5B4 +tir=\uD2F0\uADF8\uB9AC\uB0D0\uC5B4 +tiv=\uD2F0\uBE44\uC5B4 +tkl=\uD1A0\uCF08\uB77C\uC6B0\uC81C\uB3C4 +tlh=\uD074\uB9C1\uC628\uC5B4 +tli=\uD2C0\uB9C1\uAE43\uC871\uC5B4 +tmh=\uD0C0\uB9C8\uC139\uC5B4 +tog=\uD1B5\uAC00\uC5B4(\uB2C8\uC544\uC0B4\uB79C\uB4DC) +ton=\uD1B5\uAC00\uC5B4(\uD1B5\uAC00 \uC12C) +tpi=\uD1A0\uD06C \uD53C\uC2E0\uC5B4 +tsi=\uD2B8\uC2EC\uC2DC\uC548\uC5B4 +tsn=\uC138\uCE20\uC640\uB098\uC5B4 +tso=\uD1B5\uAC00\uC5B4 +tuk=\uD22C\uB974\uD06C\uBA58\uC5B4 +tum=\uD23C\uBD80\uCE74\uC5B4 +tup=\uD22C\uD53C\uC5B4 +tur=\uD130\uD0A4\uC5B4 +tut=\uC54C\uD0C0\uC774\uC81C\uC5B4 (\uAE30\uD0C0) +tvl=\uD22C\uBC1C\uB8E8\uC5B4 +twi=\uD2B8\uC704\uC5B4 +tyv=\uD22C\uBE44\uB2C8\uC548\uC5B4 +udm=\uC6B0\uB4DC\uB9D0\uD2B8\uC5B4 +uga=\uC6B0\uAC00\uB9AC\uD2B8 \uBB38\uC790 +uig=\uC704\uAD6C\uB974\uC5B4 +ukr=\uC6B0\uD06C\uB77C\uC774\uB098\uC5B4 +umb=\uC724\uBC88\uB450\uC5B4 +und=\uACB0\uC815\uB418\uC9C0\uC54A\uC74C +urd=\uC6B0\uB974\uB450\uC5B4 +uzb=\uC6B0\uC988\uBCA0\uD06C\uC5B4 +vai=\uBC14\uC774 \uBB38\uC790 +ven=\uBCA4\uB2E4\uC5B4 +vie=\uBCA0\uD2B8\uB0A8\uC5B4 +vol=\uBCFC\uB77C\uD4CC\uD06C\uC5B4 +vot=\uBCF4\uD2F1\uC5B4 +wak=\uC640\uCE74\uC0E8\uC5B4 +wal=\uC640\uB77C\uBAA8\uC5B4 +war=\uC640\uB77C\uC774\uC5B4 +was=\uC640\uC1FC\uC5B4 +wel=\uC6E8\uC77C\uC2A4\uC5B4 +wen=\uC18C\uB974\uBE0C\uC5B4 +wln=\uC648\uB8EC\uC5B4 +wol=\uC62C\uB85C\uD504\uC5B4 +xal=\uCE7C\uBBF8\uD06C\uC5B4 +xho=\uBC18\uD22C\uC5B4(\uB0A8\uC544\uD504\uB9AC\uCE74) +yao=\uC57C\uC624\uC871\uC5B4 +yap=\uC58D\uD398\uC138\uC5B4 +yid=\uC774\uB514\uC2DC\uC5B4 +yor=\uC694\uB8E8\uBC14\uC5B4 +ypk=\uC57C\uD53D\uC5B4 +zap=\uC0AC\uD3EC\uD14C\uD06C\uC5B4 +zbl=\uBE14\uB9AC\uC2A4\uAE30\uD638 \uBB38\uC790 +zen=\uC81C\uB098\uAC00\uC5B4 +zha=\uC8FC\uC559\uC5B4 +znd=\uC544\uC794\uB370\uC871\uC5B4 +zul=\uC904\uB8E8\uC5B4 +zun=\uC8FC\uB2C8\uC5B4 +zxx=\uC5B8\uC5B4 \uCF58\uD150\uCE20 \uC5C6\uC74C +zza=\uC790\uC790\uC5B4 + +# script names +# key is ISO 15924 script code + +Arab=\uC544\uB78D \uBB38\uC790 +Armi=\uC81C\uAD6D \uC544\uB78C\uC5B4 +Armn=\uC544\uB974\uBA54\uB2C8\uC544 \uBB38\uC790 +Avst=\uC544\uBCA0\uC2A4\uD0C0\uC5B4 +Bali=\uBC1C\uB9AC \uBB38\uC790 +Bamu=\uBC14\uBB44\uC5B4 +Bass=\uBC14\uC0AC\uC5B4 +Batk=\uBC14\uD0C0\uD06C \uBB38\uC790 +Beng=\uBCB5\uACE8 \uBB38\uC790 +Blis=\uBE14\uB9AC\uC2A4\uAE30\uD638 \uBB38\uC790 +Bopo=\uC8FC\uC74C\uBD80\uD638 +Brah=\uBE0C\uB77C\uBBF8 +Brai=\uBE0C\uB77C\uC720 \uC810\uC790 +Bugi=\uBD80\uAE30 \uBB38\uC790 +Buhd=\uBD80\uD788\uB4DC \uBB38\uC790 +Cakm=\uCC28\uD06C\uB9C8\uC5B4 +Cans=\uD1B5\uD569 \uCE90\uB098\uB2E4 \uD1A0\uCC29\uC5B4 +Cari=\uCE74\uB9AC \uBB38\uC790 +Cham=\uCE78 \uACE0\uC5B4 +Cher=\uCCB4\uB85C\uD0A4 \uBB38\uC790 +Cirt=\uD0A4\uB974\uC4F0 +Copt=\uCF65\uD2B8 \uBB38\uC790 +Cprt=\uD0A4\uD504\uB85C\uC2A4 \uBB38\uC790 +Cyrl=\uD0A4\uB9B4 \uBB38\uC790 +Cyrs=\uACE0\uB300\uAD50\uD68C\uC2AC\uB77C\uBE0C\uC5B4 \uD0A4\uB9B4\uBB38\uC790 +Deva=\uB370\uBC14\uB098\uAC00\uB9AC \uBB38\uC790 +Dsrt=\uB514\uC800\uB81B \uBB38\uC790 +Dupl=\uB4C0\uD50C\uB85C\uC774\uC548 \uC18D\uAE30 +Egyd=\uACE0\uB300 \uC774\uC9D1\uD2B8 \uBBFC\uC911\uBB38\uC790 +Egyh=\uACE0\uB300 \uC774\uC9D1\uD2B8 \uC2E0\uAD00\uBB38\uC790 +Egyp=\uACE0\uB300 \uC774\uC9D1\uD2B8 \uC2E0\uC131\uBB38\uC790 +Elba=\uC5D8\uBC14\uC0B0\uC5B4 +Ethi=\uC5D0\uD2F0\uC624\uD53C\uC544 \uBB38\uC790 +Geok=\uCFE0\uCD94\uB9AC\uC5B4 +Geor=\uADF8\uB8E8\uC9C0\uC57C \uBB38\uC790 +Glag=\uAE00\uB77C\uACE8 \uBB38\uC790 +Goth=\uACE0\uD2B8 \uBB38\uC790 +Gran=\uADF8\uB780\uD0C0\uC5B4 +Grek=\uADF8\uB9AC\uC2A4 \uBB38\uC790 +Gujr=\uAD6C\uC790\uB77C\uD2B8 \uBB38\uC790 +Guru=\uAD6C\uB974\uBB34\uD0A4 \uBB38\uC790 +Hang=\uD55C\uAE00 +Hani=\uD55C\uC790 +Hano=\uD558\uB204\uB204 \uBB38\uC790 +Hans=\uD55C\uC790(\uAC04\uCCB4) +Hant=\uD55C\uC790(\uBC88\uCCB4) +Hebr=\uD788\uBE0C\uB9AC \uBB38\uC790 +Hira=\uD788\uB77C\uAC00\uB098 +Hmng=\uD30C\uD654 \uD750\uBABD +Hrkt=\uAC00\uD0C0\uCE74\uB098/\uD788\uB77C\uAC00\uB098 +Hung=\uACE0\uB300 \uD5DD\uAC00\uB9AC \uBB38\uC790 +Inds=\uC778\uB354\uC2A4 \uBB38\uC790 +Ital=\uACE0\uB300 \uC774\uD0C8\uB9AC\uC544 \uBB38\uC790 +Java=\uC790\uBC14 \uBB38\uC790 +Jpan=\uC77C\uBCF8 \uBB38\uC790 +Kali=\uCE74\uC57C \uB9AC \uBB38\uC790 +Kana=\uAC00\uD0C0\uCE74\uB098 +Khar=\uCE74\uB85C\uC288\uD2F0 \uBB38\uC790 +Khmr=\uD06C\uBA54\uB974 \uBB38\uC790 +Knda=\uCE78\uB098\uB2E4 \uBB38\uC790 +Kore=\uD55C\uAD6D\uC5B4 +Kpel=\uD06C\uD3A0\uB808\uC5B4 +Kthi=\uCE74\uC774\uD2F0\uC5B4 +Lana=\uB780\uB098 \uBB38\uC790 +Laoo=\uB77C\uC624 \uBB38\uC790 +Latf=\uB3C5\uC77C\uC2DD \uB85C\uB9C8\uC790 +Latg=\uC544\uC77C\uB79C\uB4DC\uC2DD \uB85C\uB9C8\uC790 +Latn=\uB85C\uB9C8\uC790 +Lepc=\uB819\uCC28 \uBB38\uC790 +Limb=\uB9BC\uBD80 \uBB38\uC790 +Lina=\uC120\uD615 \uBB38\uC790 A +Linb=\uC120\uD615 \uBB38\uC790 B +Lisu=\uB9AC\uC218\uC5B4 +Loma=\uB85C\uB9C8\uC5B4 +Lyci=\uB9AC\uD0A4\uC544 \uBB38\uC790 +Lydi=\uB9AC\uB514\uC544 \uBB38\uC790 +Mand=\uB9CC\uB2E4\uC774\uC544 \uBB38\uC790 +Mani=\uB9C8\uB2C8\uC5B4 +Maya=\uB9C8\uC57C \uC0C1\uD615 \uBB38\uC790 +Mend=\uBA58\uB370\uC5B4 +Merc=\uBA54\uB85C\uC5D0 \uBB38\uC790 \uD758\uB9BC +Mero=\uBA54\uB85C\uC5D0 \uBB38\uC790 +Mlym=\uB9D0\uB77C\uC584\uB78C \uBB38\uC790 +Mong=\uBABD\uACE8 \uBB38\uC790 +Moon=\uBB38\uC2DD \uC120\uBB38\uC790 +Mtei=\uBA54\uC774\uD14C\uC774\uC5B4 +Mymr=\uBBF8\uC580\uB9C8 \uBB38\uC790 +Narb=\uACE0\uB300 \uBD81\uC544\uB77C\uBE44\uC544\uC5B4 +Nbat=\uB098\uBC14\uD2F0\uC544\uC5B4 +Nkgb=\uB098\uC2DC \uAC8C\uBC14\uC5B4 +Nkoo=\uC751\uCF54\uC5B4 +Ogam=\uC624\uAC80 \uBB38\uC790 +Olck=\uC62C\uCE58\uD0A4\uC5B4 +Orkh=\uC624\uB974\uD63C\uC5B4 +Orya=\uC624\uB9AC\uC57C \uBB38\uC790 +Osma=\uC624\uC2A4\uB9C8\uB2C8\uC544 \uBB38\uC790 +Palm=\uD314\uBBF8\uB77C\uC5B4 +Perm=\uACE0\uB300 \uD398\uB984 \uBB38\uC790 +Phag=\uD30C\uC2A4\uD30C\uC5B4 +Phli=\uCD08\uAE30 \uD314\uB808\uBE44\uC5B4 +Phlp=\uC911\uAE30 \uD314\uB808\uBE44\uC5B4 +Phlv=\uD6C4\uAE30 \uD314\uB808\uBE44\uC5B4 +Phnx=\uD398\uB2C8\uD0A4\uC544\uC5B4 +Plrd=\uBA00\uC624\uC5B4 +Prti=\uD30C\uB974\uD2F0\uC544 \uBB38\uC790 +Rjng=\uB808\uC7A5\uC5B4 +Roro=\uB871\uACE0\uB871\uACE0\uC5B4 +Runr=\uB8EC \uBB38\uC790 +Samr=\uC0AC\uB9C8\uB9AC\uC544\uC5B4 +Sara=\uC0AC\uB77C\uD2F0\uC5B4 +Sarb=\uACE0\uB300 \uB0A8\uC544\uB77C\uBE44\uC544\uC5B4 +Saur=\uC0AC\uC6B0\uB77C\uC288\uD2B8\uB77C\uC5B4 +Sgnw=\uC218\uD654 \uBB38\uC790 +Shaw=\uC0E4\uBE44\uC548 \uBB38\uC790 +Sind=\uC2E0\uB514\uC5B4 +Sinh=\uC2A4\uB9AC\uB791\uCE74\uC5B4 +Sund=\uC21C\uB2E8\uC5B4 +Sylo=\uC2E4\uD5E4\uD2F0 \uB098\uAC00\uB9AC +Syrc=\uC2DC\uB9AC\uC544 \uBB38\uC790 +Syre=\uC5D0\uC2A4\uD2B8\uB791\uAC94\uB85C\uC2DD \uC2DC\uB9AC\uC544 \uBB38\uC790 +Syrj=\uC11C\uBD80 \uC2DC\uB9AC\uC544 \uBB38\uC790 +Syrn=\uB3D9\uBD80 \uC2DC\uB9AC\uC544 \uBB38\uC790 +Tagb=\uD0C0\uADF8\uBC18\uC640 \uBB38\uC790 +Tale=\uD0C0\uC774 \uB808 \uBB38\uC790 +Talu=\uC2E0 \uD0C0\uC774 \uB8E8\uC5D0 +Taml=\uD0C0\uBC00 \uBB38\uC790 +Tavt=\uD0C0\uC774 \uBE44\uC5E3\uC5B4 +Telu=\uD154\uB8E8\uAD6C \uBB38\uC790 +Teng=\uD161\uACFC\uB974 \uBB38\uC790 +Tfng=\uD2F0\uD53C\uB098\uADF8 \uBB38\uC790 +Tglg=\uD0C0\uAC08\uB85C\uADF8 \uBB38\uC790 +Thaa=\uD0C0\uB098 \uBB38\uC790 +Thai=\uD0C0\uC774 \uBB38\uC790 +Tibt=\uD2F0\uBCA0\uD2B8 \uBB38\uC790 +Ugar=\uC6B0\uAC00\uB9AC\uD2B8 \uBB38\uC790 +Vaii=\uBC14\uC774 \uBB38\uC790 +Visp=\uC2DC\uD654 \uBB38\uC790 +Wara=\uC640\uB8FD \uC2DC\uD2F0\uC5B4 +Xpeo=\uACE0\uB300 \uD398\uB974\uC2DC\uC544 \uBB38\uC790 +Xsux=\uC218\uBA54\uB974-\uC544\uCE74\uB4DC \uC124\uD615 \uBB38\uC790 +Yiii=\uC774 \uBB38\uC790 +Zinh=\uC0C1\uC18D \uBB38\uC790 +Zmth=\uC218\uD559 \uD45C\uAE30 +Zsym=\uAE30\uD638 +Zxxx=\uC791\uC131\uB418\uC9C0 \uC54A\uC74C +Zyyy=\uC77C\uBC18 \uBB38\uC790 +Zzzz=\uAE30\uB85D\uB418\uC9C0 \uC54A\uC740 \uBB38\uC790(\uAD6C\uC804) + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=\ub9c8\uc694\ud2f0 ZA=\ub0a8\uc544\ud504\ub9ac\uce74 ZM=\uc7a0\ube44\uc544 ZW=\uc9d0\ubc14\ube0c\uc6e8 + +# territory names +# key is UN M.49 country and area code + +001=\uC138\uACC4 +002=\uC544\uD504\uB9AC\uCE74 +003=\uBD81\uC544\uBA54\uB9AC\uCE74 +005=\uB0A8\uC544\uBA54\uB9AC\uCE74[\uB0A8\uBBF8] +009=\uC624\uC138\uC544\uB2C8\uC544, \uB300\uC591\uC8FC +011=\uC11C\uC544\uD504\uB9AC\uCE74 +013=\uC911\uC559 \uC544\uBA54\uB9AC\uCE74 +014=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 +015=\uBD81\uBD80 \uC544\uD504\uB9AC\uCE74 +017=\uC911\uBD80 \uC544\uD504\uB9AC\uCE74 +018=\uB0A8\uBD80 \uC544\uD504\uB9AC\uCE74 +019=\uC544\uBA54\uB9AC\uCE74 \uB300\uB959 +021=\uBD81\uBD80 \uC544\uBA54\uB9AC\uCE74 +029=\uCE74\uB9AC\uBE0C \uD574 \uC81C\uB3C4 +030=\uB3D9\uC544\uC2DC\uC544 +034=\uB0A8\uC544\uC2DC\uC544 +035=\uB3D9\uB0A8 \uC544\uC2DC\uC544 +039=\uB0A8\uC720\uB7FD +053=\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544\uC640 \uB274\uC9C8\uB79C\uB4DC +054=\uBA5C\uB77C\uB124\uC2DC\uC544 +057=\uB9C8\uC774\uD06C\uB85C\uB124\uC2DC\uC544 \uC9C0\uC5ED +061=\uD3F4\uB9AC\uB124\uC2DC\uC544 +142=\uC544\uC2DC\uC544 +143=\uC911\uC559 \uC544\uC2DC\uC544 +145=\uC11C\uC544\uC2DC\uC544 +150=\uC720\uB7FD +151=\uB3D9\uC720\uB7FD +154=\uBD81\uC720\uB7FD +155=\uC11C\uC720\uB7FD +419=\uB77C\uD2F4 \uC544\uBA54\uB9AC\uCE74 \uBC0F \uCE74\uB9AC\uBE0C \uD574 \uC81C\uB3C4 diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_sv.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_sv.properties index ae8b89def99..d3674d8c81a 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_sv.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_sv.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,6 +227,643 @@ za=zhuang zh=kinesiska zu=zulu +# key is ISO 639.2 language code +aar=Afar +abk=Abchasiska +ace=Acehnesiska +ach=Acoli +ada=Adangme +ady=Adygeiska +afa=Afroasiatiskt spr\u00E5k +afh=Afrihili +afr=Afrikaans +ain=Ainu +aka=Akan +akk=Akkadiska +alb=Albanska +ale=Aleutiska +alg=Algonkinska +alt=Sydaltaiska +amh=Amhariska +ang=Fornengelska (ca.450-1100) +anp=Angika +apa=Apache +ara=Arabiska +arc=Officiell arameiska (700-300 f.Kr.) +arg=Aragonsk spanska +arm=Armeniska +arn=Mapudungun +arp=Arapaho +art=Artificiellt +arw=Arawakiska +asm=Assamesiska +ast=Asturiska +ath=Athabaskiska +aus=Australiska +ava=Avariskt spr\u00E5k +ave=Avestiska +awa=Awadhi +aym=Aymara +aze=Azerbajdzjanska +bad=Banda +bai=Bamileke +bak=Basjkiriska +bal=Baluchi +bam=Bambara +ban=Balinesiska +baq=Baskiska +bas=Basa +bat=Baltiskt spr\u00E5k +bej=Beyja +bel=Vitryska +bem=Bemba +ben=Bengali +ber=Berberspr\u00E5k +bho=Bhojpuri +bih=Bihari +bik=Bikol +bin=(Edo) Bini +bis=Bislama +bla=Svartfotindianernas spr\u00E5k (Siksika) +bnt=Bantuspr\u00E5k +bos=Bosniska +bra=Braj +bre=Bretonska +btk=Batak +bua=Burjatiska +bug=Buginesiska +bul=Bulgariska +bur=Burmesiska +byn=Blin +cad=Caddo +cai=Centralamerikanskt indianspr\u00E5k +car=Galibi Carib +cat=Katalanska +cau=Kaukasiskt spr\u00E5k +ceb=Cebuano +cel=Keltiskt spr\u00E5k +cha=Chamorro +chb=Chibcha +che=Tjetjenska +chg=Chagatai +chi=Kinesiska +chk=Truk +chm=Mari (Tjeremissiska) +chn=Chinook +cho=Choctaw +chp=Chopi +chr=Cherokesiska +chu=Kyrkoslaviska +chv=Tjuvasjiska +chy=Cheyenne +cmc=Chamic +cop=Koptiska +cor=Korniska +cos=Korsikanska +cpe=Kreol-/Pidginspr\u00E5k, engelskbaserade +cpf=Kreol-/Pidginspr\u00E5k, franskbaserade +cpp=Kreol-/Pidginspr\u00E5k, portugisiskbaserade +cre=Cree +crh=Krimtatariska +crp=Kreol-/Pidginspr\u00E5k +csb=Kashubiska +cus=Kusjitiskt spr\u00E5k +cze=Tjeckiska +dak=Dakota +dan=Danska +dar=Darginska +day=Land Dayak +del=Delaware +den=Slave (Athapaskiska) +dgr=Dogrib +din=Dinka +div=Divehi +doi=Dogri +dra=Dravidiskt spr\u00E5k +dsb=L\u00E5gsorbiska +dua=Duala +dum=Medelnederl\u00E4ndska (ca.1050-1350) +dut=Nederl\u00E4ndska +dyu=Dyula +dzo=Bhutanesiska (Dzongkha) +efi=Efik +egy=Fornegyptiska +eka=Ekajuk +elx=Elamitiska +eng=Engelska +enm=Medelengelska (1100-1500) +epo=Esperanto +est=Estniska +ewe=Ewe +ewo=Ewondo +fan=Fang +fao=F\u00E4r\u00F6iska +fat=Fanti +fij=Fidjianska +fil=Filipino +fin=Finska +fiu=Finsk-ugriskt spr\u00E5k +fon=Fon +fre=Franska +frm=Medelfranska (ca.1400-1600) +fro=Fornfranska (842-ca.1400) +frr=Nordfrisiska +frs=\u00D6stfrisiska +fry=V\u00E4stfrisiska +ful=Fulani +fur=Friuliska +gaa=Ga +gay=Gayo +gba=Gbaya +gem=Germanska +geo=Georgiska +ger=Tyska +gez=Geez +gil=Gilbertesiska +gla=Gaeliska +gle=Iriska +glg=Galiciska +glv=Manx +gmh=Medelh\u00F6gtyska (ca.1050-1500) +goh=Fornh\u00F6gtyska (ca.750-1050) +gon=Gondi +gor=Gorontalo +got=Gotiska +grb=Grebo +grc=Grekiska, klassisk (-1453) +gre=Nygrekiska (1453-) +grn=Guarani +gsw=Schweizertyska +guj=Gujarati +gwi=Gwichin +hai=Haida +hat=Haitiska +hau=Haussa +haw=Hawaiian +heb=Hebreiska +her=Herero +hil=Hiligaynon +him=Pahari (Himachali) +hin=Hindi +hit=Hettitiskt spr\u00E5k +hmn=Hmongspr\u00E5k +hmo=Hirimotu +hrv=Kroatiska +hsb=H\u00F6gsorbiska +hun=Ungerska +hup=Hupa +iba=Iban +ibo=Ibo (Igbo) +ice=Isl\u00E4ndska +ido=Ido +iii=Sichuan Yi +ijo=Ijo +iku=Inuktitut +ile=Interlingue +ilo=Iloko +ina=Interlingua (International Auxiliary Language Association) +inc=Indo-ariskt spr\u00E5k +ind=Indonesiska +ine=Indoeuropeiskt spr\u00E5k +inh=Ingusj +ipk=Inupiaq +ira=Iranska +iro=Irokesiska spr\u00E5k +ita=Italienska +jav=Javanesiska +jbo=Lojban +jpn=Japanska +jpr=Judepersiska +jrb=Judearabiska +kaa=Karakalpakiska +kab=Kabyliska +kac=Kachin +kal=Kalaallisut +kam=Kamba +kan=Kannada +kar=Karen +kas=Kashmiri +kau=Kanuri +kaw=Fornjavanska (Kawi) +kaz=Kazakiska +kbd=Kabardinska (\u00D6sttjerkessiska) +kha=Khasi +khi=Khoisanspr\u00E5k +khm=Central-Khmer +kho=Sakiska (Khotanesiska) +kik=Kikuyu +kin=Rwanda +kir=Kirgisiska +kmb=Mbundu (Kimbundu) +kok=Konkani +kom=Komi +kon=Kikongo +kor=Koreanska +kos=Kusaie +kpe=Kpelle +krc=Karachay-Balkar +krl=Karelska +kro=Kru-spr\u00E5k +kru=Kurukh +kua=Ovambo +kum=Kumyk +kur=Kurdiska +kut=Kutenai +lad=Ladino +lah=Lahnda +lam=Lamba +lao=Laotiska +lat=Latin +lav=Lettiska +lez=Lezginska +lim=Limburgisch +lin=Lingala +lit=Litauiska +lol=Lolo (Mongo) +loz=Lozi +ltz=Luxemburgiska +lua=Luba-Lulua +lub=Luba-Katanga +lug=Luganda +lui=Luiseno +lun=Lunda +luo=Luo (Kenya och Tanzania) +lus=Lushai +mac=Makedonska +mad=Madurese +mag=Magahi +mah=Marshallesiska +mai=Maithili +mak=Makasar +mal=Malayalam +man=Mande +mao=Maori +map=Austronesiskt spr\u00E5k +mar=Marathi +mas=Massajiska +may=Malajiska +mdf=Moksja +mdr=Mandar +men=Mende +mga=Medeliriska (900-1200) +mic=Mi'kmaq +min=Minangkabau +mis=Okodat +mkh=Mon-khmerspr\u00E5k +mlg=Malagassiska +mlt=Maltesiska +mnc=Manchu +mni=Manipuri +mno=Manobo +moh=Mohawk +mon=Mongoliska +mos=Mossi +mul=Flera +mun=Munda +mus=Muskogee +mwl=Mirandesiska +mwr=Marwari +myn=Maya-spr\u00E5k +myv=Erzya +nah=Nahuatl +nai=Nordamerikanskt indianspr\u00E5k +nap=Neapolitansk italienska +nau=Nauru +nav=Navajo +nbl=Ndebele (syd) +nde=Ndebele (nord) +ndo=Ndonga +nds=L\u00E5gtyska +nep=Nepali +new=Newari +nia=Nias +nic=Niger-/Kongospr\u00E5k +niu=Niuiska +nno=Norska (Nynorska) +nob=Bokm\u00E5l, norska +nog=Nogaiska +non=Fornisl\u00E4ndska +nor=Norska +nqo=N'Ko +nso=Pedi +nub=Nubiska +nwc=Klassisk newari +nya=Chichewa +nym=Nyamwezi +nyn=Nyankole +nyo=Nyoro +nzi=Nzima +oci=Occitanska (efter 1500) +oji=Odjibwa (Chippewa) +ori=Oriya +orm=Oromo +osa=Osage +oss=Ossetiska +ota=Ottomanska (1500-1928) +oto=Otomi +paa=Papuanskt spr\u00E5k +pag=Pangasinan +pal=Pahlavi (Medelpersiska) +pam=Pampanga +pan=Panjabi +pap=Papiamento +pau=Palauan +peo=Fornpersiska (ca.600-400 fK) +per=Persiska +phi=Filippinska +phn=Feniciska +pli=Pali +pol=Polska +pon=Pohnpeiska +por=Portugisiska +pra=Prakrit +pro=Fornprovensalska (-1500) +pus=Pashto +que=Quechua +raj=Rajasthani +rap=Rapanui +rar=Rarotongan +roa=Romanska +roh=R\u00E4toromanska +rom=Romani +rum=Rum\u00E4nska +run=Rundi +rup=Arumanska +rus=Ryska +sad=Sandawe +sag=Sango +sah=Jakutiska +sai=Sydamerikanskt indianspr\u00E5k +sal=Saliska +sam=Samaritanska +san=Sanskrit +sas=Sasak +sat=Santali +scn=Sicilianska +sco=Skotsk gaeliska +sel=Selkup +sem=Semitiskt spr\u00E5k +sga=Forniriska (-900) +sgn=Teckenspr\u00E5k +shn=Shan +sid=Sidami +sin=Singalesiska +sio=Sioux-spr\u00E5k +sit=Sino-tibetanskt spr\u00E5k +sla=Slaviskt spr\u00E5k +slo=Slovakiska +slv=Slovenska +sma=Sydsamiska +sme=Nordsamiska +smi=Samiska +smj=Lulesamiska +smn=Enaresamiska +smo=Samoanska +sms=Skoltsamiska +sna=Shona +snd=Sindhi +snk=Soninke +sog=Sogdiska +som=Somaliska +son=Songhai +sot=Sotho, syd- +spa=Spanska +srd=Sardiska +srn=Sranan tongo +srp=Serbiska +srr=Serer +ssa=Nilo-sahariskt spr\u00E5k +ssw=Swazi +suk=Sukuma +sun=Sundanesiska +sus=Susu +sux=Sumeriska +swa=Swahili +swe=Svenska +syc=Klassisk syriska +syr=Syriska +tah=Tahitiska +tai=Thaispr\u00E5k +tam=Tamil +tat=Tatariska +tel=Telugo +tem=Temne +ter=Tereno +tet=Tetum +tgk=Tadzjikiska +tgl=Tagalog +tha=Thail\u00E4ndska +tib=Tibetanska +tig=Tigr\u00E9 +tir=Tigrinja +tiv=Tivi +tkl=Tokelau\u00F6arna +tlh=Klingon +tli=Tlingit +tmh=Tamashek +tog=Tonga (Nyasa) +ton=Tonga (Tonga\u00F6arna) +tpi=Tok Pisin +tsi=Tsimshian +tsn=Tswana +tso=Tsonga +tuk=Turkmeniska +tum=Tumbuka +tup=Tupi +tur=Turkiska +tut=Altaiskt spr\u00E5k +tvl=Tuvalu +twi=Twi +tyv=Tuvinska +udm=Udmurtiska (Votjakiska) +uga=Ugaritiska +uig=Uiguriska +ukr=Ukrainska +umb=Umbundu +und=Obest\u00E4md +urd=Urdu +uzb=Uzbekiska +vai=Vai +ven=Venda +vie=Vietnamesiska +vol=Volap\u00FCk +vot=Votiska +wak=Wakusjiska +wal=Wolaitta +war=Waray +was=Washo +wel=Kymriska +wen=Sorbiska +wln=Vallonska +wol=Wolof +xal=Kalmuckiska +xho=Xhosa +yao=Yao +yap=Yap +yid=Jiddisch +yor=Yoruba +ypk=Yupik +zap=Zapotek +zbl=Blissymboler +zen=Zenaga +zha=Zhuang +znd=Zande +zul=Zulu +zun=Zuni +zxx=Icke-spr\u00E5kligt medium +zza=Zaza + +# script names +# key is ISO 15924 script code + +Arab=Arabiska +Armi=Riksarameiska +Armn=Armeniska +Avst=Avestiska +Bali=Balinesiska +Bamu=Bamum +Bass=Bassa vah +Batk=Batak +Beng=Bengali +Blis=Blissymboler +Bopo=Bopomofo +Brah=Brahmi +Brai=Braille-skrift +Bugi=Buginesiska +Buhd=Buhid +Cakm=Chakma +Cans=Unified Canadian Aboriginal Syllabics +Cari=Kariska +Cham=Cham +Cher=Cherokesiska +Cirt=Cirth +Copt=Koptiska +Cprt=Cypriotiska +Cyrl=Kyrilliska +Cyrs=Fornkyrkoslaviska +Deva=Devanagari +Dsrt=Deseret +Dupl=Duployan-stenografi +Egyd=Egyptisk demotisk +Egyh=Egyptisk hieratisk +Egyp=Egyptiska hieroglyfer +Elba=Elbasiska +Ethi=Etiopiska +Geok=Khutsuri +Geor=Georgiska +Glag=Glagolitiska +Goth=Gotiska +Gran=Grantha +Grek=Grekiska +Gujr=Gujarati +Guru=Gurmukhi +Hang=Hangul +Hani=Han +Hano=Hanunoo +Hans=F\u00F6renklad han +Hant=Traditionell han +Hebr=Hebreiska +Hira=Hiragana +Hmng=Pahawh hmong +Hrkt=Katakana eller hiragana +Hung=Ungerska runor +Inds=Indusskrift +Ital=Etruskiska +Java=Javanesiska +Jpan=Japanska +Kali=Kayah Li +Kana=Katakana +Khar=Kharoshthi +Khmr=Kambodjanska (Khmer) +Knda=Kannada +Kore=Koreanska +Kpel=Kpelle +Kthi=Kaithi +Lana=Tai tham +Laoo=Laotiska +Latf=Frakturlatin +Latg=Gaelisk latin +Latn=Latin +Lepc=Lepcha +Limb=Limbu +Lina=Linear A +Linb=Linear B +Lisu=Lisu +Loma=Loma +Lyci=Lykiska +Lydi=Lydiska +Mand=Mandeiska +Mani=Manikeiska +Maya=Mayaskrift +Mend=Mende +Merc=Meroitisk skrift +Mero=Meroitisk +Mlym=Malayalam +Mong=Mongoliska +Moon=M\u00E5nspr\u00E5k +Mtei=Meitei mayek +Mymr=Myanmar +Narb=Nordlig fornarabiska +Nbat=Nabataeiska +Nkgb=Nakhi geba +Nkoo=N'Ko +Ogam=Ogham +Olck=Ol chiki +Orkh=Orkhon +Orya=Oriya +Osma=Osmanya +Palm=Palmyreniska +Perm=Fornpermiska +Phag=Phags-pa +Phli=Pahlavi (Medelpersiska) +Phlp=Psalter pahlavi +Phlv=Bok-pahlavi +Phnx=Feniciska +Plrd=Miao +Prti=Partiska +Rjng=Rejang +Roro=Rongorongo +Runr=Runor +Samr=Samaritanska +Sara=Sarati +Sarb=Sydlig fornarabiska +Saur=Saurashtra +Sgnw=Teckenskrift +Shaw=Shavian +Sind=Sindhi +Sinh=Singalesiska +Sund=Sundanesiska +Sylo=Syloti nagri +Syrc=Syriska +Syre=Estrangelo-syriska +Syrj=V\u00E4stsyriska +Syrn=\u00D6stsyriska +Tagb=Tagbanwa +Tale=Tai le +Talu=Ny tai l\u00FC +Taml=Tamil +Tavt=Tai viet +Telu=Telugo +Teng=Tengwar +Tfng=Tifinagh +Tglg=Tagalog +Thaa=Thaana +Thai=Thail\u00E4ndska +Tibt=Tibetanska +Ugar=Ugaritiska +Vaii=Vai +Visp=Visible speech +Wara=Varang kshiti +Xpeo=Fornpersiska +Xsux=Sumerisk-akkadisk kilskrift +Yiii=Yi +Zinh=\u00C4rvd skrift +Zmth=Matematisk notation +Zsym=Symboler +Zxxx=Oskrivna +Zyyy=Inte fastst\u00E4lld skrift +Zzzz=Okodad skrift + # country names # key is ISO 3166 country code @@ -472,3 +1109,37 @@ YT=Mayotte ZA=Sydafrika ZM=Zambia ZW=Zimbabwe + +# territory names +# key is UN M.49 country and area code + +001=V\u00E4rlden +002=Afrika +003=Nordamerika +005=Sydamerika +009=Oceanien +011=V\u00E4stafrika +013=Centralamerika +014=\u00D6stafrika +015=Nordafrika +017=Mellanafrika +018=S\u00F6dra Afrika +019=Nord-/Sydamerika +021=Norra Amerika +029=Karibiska \u00F6v\u00E4rlden +030=\u00D6stra Asien +034=S\u00F6dra Asien +035=Syd\u00F6stra Asien +039=S\u00F6dra Europa +053=Australien och Nya Zeeland +054=Melanesien +057=Mikronesiska regionen +061=Polynesien +142=Asien +143=Centralasien +145=V\u00E4stra Asien +150=Europa +151=\u00D6stra Europa +154=Norra Europa +155=V\u00E4stra Europa +419=Latinamerika och Karibien diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_zh.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_zh.properties index 30c450c6cfd..40f3d90aca3 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_zh.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_zh.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,11 +227,642 @@ za=\u85cf\u6587 zh=\u4e2d\u6587 zu=\u7956\u9c81\u6587 +# key is ISO 639.2 language code +aar=\u963F\u6CD5\u5C14\u6587 +abk=\u963F\u5E03\u54C8\u897F\u4E9A\u6587 +ace=\u4E9A\u9F50\u6587 +ach=\u963F\u4E54\u5229\u6587 +ada=\u963F\u5F53\u6885\u6587 +ady=\u963F\u8FEA\u4F55\u6587 +afa=\u4E9A\u975E\u8BF8\u8BED\u8A00 +afh=\u963F\u5F17\u91CC\u5E0C\u5229\u6587 +afr=\u5357\u975E\u8377\u5170\u6587 +ain=\u963F\u4F0A\u52AA\u6587 +aka=\u5E93\u963F\u6587 +akk=\u963F\u5361\u5FB7\u6587 +alb=\u963F\u5C14\u5DF4\u5C3C\u4E9A\u6587 +ale=\u963F\u7559\u7533\u6587 +alg=\u5176\u4ED6\u963F\u5C14\u8D21\u8BED\u7CFB +alt=\u5357\u963F\u5C14\u6CF0\u6587 +amh=\u963F\u59C6\u54C8\u62C9\u6587 +ang=\u53E4\u82F1\u6587 +anp=\u6602\u52A0\u8BED +apa=\u963F\u5E15\u5207\u6587 +ara=\u963F\u62C9\u4F2F\u6587 +arc=\u963F\u62C9\u7C73\u6587 +arg=\u963F\u62C9\u8D21\u6587 +arm=\u4E9A\u7F8E\u5C3C\u4E9A\u6587 +arn=\u9A6C\u666E\u5207\u6587 +arp=\u963F\u62C9\u5E15\u970D\u6587 +art=\u5176\u4ED6\u4EBA\u5DE5\u8BED\u7CFB +arw=\u963F\u62C9\u74E6\u514B\u6587 +asm=\u963F\u8428\u59C6\u6587 +ast=\u963F\u65AF\u56FE\u91CC\u4E9A\u601D\u7279\u6587 +ath=\u963F\u8428\u5E15\u65AF\u574E\u8BED\u7CFB +aus=\u6FB3\u5927\u5229\u4E9A\u8BED\u7CFB +ava=\u963F\u74E6\u5C14\u6587 +ave=\u963F\u7EF4\u65AF\u9640\u6587 +awa=\u963F\u74E6\u4E54\u6587 +aym=\u827E\u9A6C\u62C9\u6587 +aze=\u963F\u585E\u62DC\u7586\u6587 +bad=\u73ED\u8FBE\u6587 +bai=\u5DF4\u7C73\u7D2F\u514B\u8BED\u7CFB +bak=\u5DF4\u4EC0\u5BA2\u5C14\u6587 +bal=\u4FFE\u8DEF\u652F\u6587 +bam=\u73ED\u5DF4\u62C9\u6587 +ban=\u5DF4\u5398\u8BED +baq=\u5DF4\u65AF\u514B\u6587 +bas=\u5DF4\u8428\u6587 +bat=\u5176\u4ED6\u6CE2\u7F57\u7684\u8BED\u7CFB +bej=\u522B\u672D\u6587 +bel=\u767D\u4FC4\u7F57\u65AF\u6587 +bem=\u522B\u59C6\u5DF4\u6587 +ben=\u5B5F\u52A0\u62C9\u6587 +ber=\u67CF\u67CF\u5C14\u6587 +bho=\u535A\u6770\u666E\u5C14\u6587 +bih=\u6BD4\u54C8\u5C14\u6587 +bik=\u6BD5\u5E93\u5C14\u6587 +bin=\u6BD4\u5C3C\u6587 +bis=\u6BD4\u65AF\u62C9\u9A6C\u6587 +bla=\u53F8\u514B\u53F8\u5361\u6587 +bnt=\u73ED\u56FE\u6587 +bos=\u6CE2\u65AF\u5C3C\u4E9A\u6587 +bra=\u5E03\u62C9\u6770\u6587 +bre=\u5E03\u91CC\u591A\u5C3C\u6587 +btk=\u5DF4\u5854\u514B\u8BED +bua=\u5E03\u91CC\u4E9A\u7279\u6587 +bug=\u5E03\u5409\u8BED +bul=\u4FDD\u52A0\u5229\u4E9A\u6587 +bur=\u7F05\u7538\u6587 +byn=\u5E03\u6797\u6587 +cad=\u5361\u591A\u6587 +cai=\u5176\u4ED6\u4E2D\u7F8E\u5370\u7B2C\u5B89\u8BED\u7CFB +car=\u5DF4\u52D2\u6BD4\u6587 +cat=\u52A0\u6CF0\u7F57\u5C3C\u4E9A\u6587 +cau=\u5176\u4ED6\u9AD8\u52A0\u7D22\u8BED\u7CFB +ceb=\u5BBF\u52A1\u6587 +cel=\u5176\u4ED6\u51EF\u5C14\u7279\u8BED\u7CFB +cha=\u67E5\u83AB\u7F57\u6587 +chb=\u5951\u5E03\u5361\u6587 +che=\u8F66\u81E3\u6587 +chg=\u67E5\u52A0\u6587 +chi=\u4E2D\u6587 +chk=\u695A\u543E\u514B\u6587 +chm=\u9A6C\u91CC\u6587 +chn=\u5951\u52AA\u514B\u6587 +cho=\u4E54\u514B\u6258\u6587 +chp=\u4F69\u74E6\u626C\u6587 +chr=\u5F7B\u7F57\u57FA\u6587 +chu=\u6559\u4F1A\u65AF\u62C9\u592B\u6587 +chv=\u695A\u74E6\u4EC0\u6587 +chy=\u590F\u5EF6\u6587 +cmc=\u67E5\u7C73\u514B\u6587 +cop=\u79D1\u666E\u7279\u6587 +cor=\u5EB7\u6C83\u5C14\u6587 +cos=\u79D1\u897F\u5609\u6587 +cpe=\u5176\u4ED6\u4EE5\u82F1\u6587\u4E3A\u57FA\u7840\u7684\u514B\u91CC\u5965\u5C14\u6DF7\u5408\u8BED\u7CFB +cpf=\u5176\u4ED6\u4EE5\u6CD5\u6587\u4E3A\u57FA\u7840\u7684\u514B\u91CC\u5965\u5C14\u6DF7\u5408\u8BED\u7CFB +cpp=\u5176\u4ED6\u4EE5\u8461\u8404\u7259\u6587\u4E3A\u57FA\u7840\u7684\u514B\u91CC\u5965\u5C14\u6DF7\u5408\u8BED\u7CFB +cre=\u514B\u91CC\u6587 +crh=\u514B\u91CC\u7C73\u4E9A\u5854\u5854\u6587 +crp=\u5176\u4ED6\u514B\u91CC\u5965\u5C14\u6DF7\u5408\u8BED\u7CFB +csb=\u5361\u8212\u6587 +cus=\u5176\u4ED6\u5E93\u65BD\u7279\u8BED\u7CFB +cze=\u6377\u514B\u6587 +dak=\u8FBE\u79D1\u4ED6\u6587 +dan=\u4E39\u9EA6\u6587 +dar=\u8FBE\u5C14\u683C\u74E6\u6587 +day=\u8FBE\u96C5\u514B\u6587 +del=\u7279\u62C9\u534E\u6587 +den=\u53F8\u96F7\u592B\u6587 (\u963F\u8428\u5E15\u65AF\u574E\u8BF8\u8BED\u8A00) +dgr=\u591A\u683C\u91CC\u5E03\u6587 +din=\u4E01\u5361\u6587 +div=\u8FEA\u7EF4\u5E0C\u6587 +doi=\u591A\u683C\u62C9\u6587 +dra=\u5176\u4ED6\u5FB7\u62C9\u7EF4\u8BED\u7CFB +dsb=\u4E0B\u7D22\u5E03\u6587 +dua=\u90FD\u963F\u62C9\u6587 +dum=\u4E2D\u53E4\u8377\u5170\u6587 +dut=\u8377\u5170\u6587 +dyu=\u8FEA\u5C24\u62C9\u6587 +dzo=\u4E0D\u4E39\u6587 +efi=\u57C3\u83F2\u514B\u6587 +egy=\u53E4\u57C3\u53CA\u6587 +eka=\u57C3\u514B\u4E18\u514B\u6587 +elx=\u827E\u62C9\u7C73\u7279\u6587 +eng=\u82F1\u6587 +enm=\u4E2D\u53E4\u82F1\u6587 +epo=\u4E16\u754C\u6587 +est=\u7231\u6C99\u5C3C\u4E9A\u6587 +ewe=\u57C3\u7EF4\u6587 +ewo=\u65FA\u675C\u6587 +fan=\u82B3\u683C\u6587 +fao=\u6CD5\u7F57\u6587 +fat=\u82B3\u8482\u6587 +fij=\u6590\u6D4E\u6587 +fil=\u83F2\u5F8B\u5BBE\u6587 +fin=\u82AC\u5170\u6587 +fiu=\u5176\u4ED6\u82AC\u5170\u4E4C\u6208\u5C14\u8BED\u7CFB +fon=\u4E30\u6587 +fre=\u6CD5\u6587 +frm=\u4E2D\u53E4\u6CD5\u6587 +fro=\u53E4\u6CD5\u6587 +frr=\u5317\u5F17\u91CC\u897F\u4E9A\u8BED +frs=\u4E1C\u5F17\u91CC\u897F\u4E9A\u6587 +fry=\u897F\u5F17\u91CC\u65AF\u5170\u8BED +ful=\u5BCC\u62C9\u6587 +fur=\u5F17\u7559\u5229\u6587 +gaa=\u52A0\u6587 +gay=\u8FE6\u7EA6\u6587 +gba=\u845B\u5DF4\u4E9A\u6587 +gem=\u5176\u4ED6\u65E5\u5C14\u66FC\u8BED\u7CFB +geo=\u683C\u9C81\u5409\u4E9A\u6587 +ger=\u5FB7\u6587 +gez=\u5409\u5179\u6587 +gil=\u5409\u5C14\u4F2F\u7279\u65AF\u6587 +gla=\u76D6\u5C14\u8BED +gle=\u7231\u5C14\u5170\u6587 +glg=\u52A0\u5229\u897F\u4E9A\u6587 +glv=\u9A6C\u6069\u6587 +gmh=\u4E2D\u53E4\u9AD8\u5730\u5FB7\u6587 +goh=\u53E4\u9AD8\u5730\u5FB7\u6587 +gon=\u5C97\u5FB7\u6587 +gor=\u79D1\u6D1B\u6D85\u8FBE\u7F57\u6587 +got=\u54E5\u7279\u6587 +grb=\u683C\u5217\u535A\u6587 +grc=\u53E4\u5E0C\u814A\u6587 +gre=\u5E0C\u814A\u8BED, \u73B0\u4EE3 (1453-) +grn=\u74DC\u62C9\u5C3C\u6587 +gsw=\u745E\u58EB\u5FB7\u6587 +guj=\u53E4\u52A0\u62C9\u63D0\u6587 +gwi=\u5409\u7EF4\u514B\u7434\u6587 +hai=\u6D77\u8FBE\u6587 +hat=\u6D77\u5730\u6587 +hau=\u8C6A\u6492\u6587 +haw=\u590F\u5A01\u5937\u6587 +heb=\u5E0C\u4F2F\u6765\u6587 +her=\u8D6B\u96F7\u7F57\u6587 +hil=\u5E0C\u5229\u76D6\u519C\u6587 +him=\u8D6B\u9A6C\u67E5\u5229\u6587 +hin=\u5370\u5730\u6587 +hit=\u8D6B\u68AF\u6587 +hmn=\u8D6B\u8499\u6587 +hmo=\u65B0\u91CC\u6728\u6258\u6587 +hrv=\u514B\u7F57\u5730\u4E9A\u6587 +hsb=\u4E0A\u7D22\u5E03\u6587 +hun=\u5308\u7259\u5229\u6587 +hup=\u80E1\u5E15\u6587 +iba=\u4F0A\u73ED\u6587 +ibo=\u4F0A\u535A\u6587 +ice=\u51B0\u5C9B\u6587 +ido=\u4F0A\u591A\u6587 +iii=\u56DB\u5DDD\u5F5D\u6587 +ijo=\u4F0A\u4E54\u6587 +iku=\u7231\u65AF\u57FA\u6469\u6587 +ile=\u62C9\u4E01\u56FD\u9645\u6587 +ilo=\u4F0A\u6D1B\u5E72\u8BFA\u6587 +ina=\u62C9\u4E01\u56FD\u9645\u8BED (\u56FD\u9645\u8F85\u52A9\u8BED\u8054\u76DF) +inc=\u5176\u4ED6\u5370\u5EA6\u8BED\u7CFB +ind=\u5370\u5EA6\u5C3C\u897F\u4E9A\u6587 +ine=\u5176\u4ED6\u5370\u6B27\u8BED\u7CFB +inh=\u5370\u53E4\u4EC0\u6587 +ipk=\u4F9D\u5974\u76AE\u7EF4\u514B\u6587 +ira=\u4F0A\u6717\u6587 +iro=\u4F0A\u6D1B\u9B41\u8BED\u7CFB +ita=\u610F\u5927\u5229\u6587 +jav=\u722A\u54C7\u6587 +jbo=\u903B\u8F91\u6587 +jpn=\u65E5\u6587 +jpr=\u72B9\u592A\u6CE2\u65AF\u6587 +jrb=\u72B9\u592A\u963F\u62C9\u4F2F\u6587 +kaa=\u5361\u62C9\u5361\u5C14\u5E15\u514B\u6587 +kab=\u5361\u6BD4\u5C14\u6587 +kac=\u5361\u7434\u6587 +kal=\u683C\u9675\u5170\u6587 +kam=\u5361\u59C6\u5DF4\u6587 +kan=\u5361\u7EB3\u5854\u514B\u8BED +kar=\u5580\u4F26\u6587 +kas=\u514B\u4EC0\u7C73\u5C14\u6587 +kau=\u5361\u52AA\u91CC\u6587 +kaw=\u5361\u5A01\u6587 +kaz=\u54C8\u8428\u514B\u6587 +kbd=\u5361\u5DF4\u5C14\u8FBE\u6587 +kha=\u5361\u897F\u6587 +khi=\u5176\u4ED6\u79D1\u4F0A\u6851\u8BED\u7CFB +khm=\u4E2D\u9AD8\u68C9\u8BED +kho=\u548C\u7530\u6587 +kik=\u5409\u5E93\u5C24\u6587 +kin=\u5362\u65FA\u8FBE\u6587 +kir=\u5409\u5C14\u5409\u65AF\u6587 +kmb=\u91D1\u90A6\u675C\u6587 +kok=\u521A\u5361\u5C3C\u6587 +kom=\u79D1\u7C73\u6587 +kon=\u521A\u679C\u6587 +kor=\u671D\u9C9C\u6587 +kos=\u79D1\u65AF\u62C9\u4F0A\u6587 +kpe=\u514B\u4F69\u52D2\u8BED +krc=\u5361\u62C9\u6070\u4F0A\u5DF4\u5C14\u5361\u5C14\u6587 +krl=\u5361\u7D2F\u5229\u963F\u6587 +kro=\u514B\u9C81\u6587 +kru=\u5E93\u9C81\u514B\u6587 +kua=\u5BBD\u4E9A\u739B\u8BED +kum=\u5E93\u6885\u514B\u6587 +kur=\u5E93\u5C14\u5FB7\u6587 +kut=\u5E93\u7279\u5185\u6587 +lad=\u62C9\u8FEA\u8BFA\u6587 +lah=\u62C9\u4EA8\u8FBE\u6587 +lam=\u5170\u5DF4\u6587 +lao=\u8001\u631D\u6587 +lat=\u62C9\u4E01\u6587 +lav=\u62C9\u6258\u7EF4\u4E9A\u6587 (\u5217\u6258) +lez=\u83B1\u5179\u4F9D\u6602\u6587 +lim=\u6797\u5821\u6587 +lin=\u6797\u52A0\u62C9\u6587 +lit=\u7ACB\u9676\u5B9B\u6587 +lol=\u8292\u6208\u6587 +loz=\u6D1B\u5179\u6587 +ltz=\u5362\u68EE\u5821\u6587 +lua=\u9C81\u5DF4\u9C81\u74E6\u6587 +lub=\u5362\u5DF4-\u52A0\u4E39\u52A0\u6587 +lug=\u5E72\u8FBE\u6587 +lui=\u8DEF\u6613\u585E\u8BFA\u6587 +lun=\u9686\u8FBE\u6587 +luo=\u5362\u5965\u6587 +lus=\u5362\u6652\u6587 +mac=\u9A6C\u5176\u987F\u6587 +mad=\u6469\u6D1B\u54E5\u8FEA\u62C9\u59C6 +mag=\u9A6C\u52A0\u4F0A\u6587 +mah=\u9A6C\u7ECD\u5C14\u6587 +mai=\u8FC8\u8482\u5229\u6587 +mak=\u671B\u52A0\u9521\u6587 +mal=\u9A6C\u6765\u4E9A\u62C9\u59C6\u6587 +man=\u66FC\u4E01\u54E5\u6587 +mao=\u6BDB\u5229\u6587 +map=\u6FB3\u65AF\u7279\u7F57\u5C3C\u897F\u4E9A\u8BED\u7CFB +mar=\u9A6C\u62C9\u5730\u6587 +mas=\u8428\u4F0A\u8BED +may=\u9A6C\u6765\u6587 +mdf=\u83AB\u514B\u6C99\u6587 +mdr=\u66FC\u8FBE\u5C14 +men=\u95E8\u8FEA\u6587 +mga=\u4E2D\u53E4\u7231\u5C14\u5170\u6587 +mic=\u7C73\u514B\u9A6C\u514B\u6587 +min=\u7C73\u5357\u5361\u4FDD\u6587 +mis=\u5404\u79CD\u4E0D\u540C\u8BED\u7CFB +mkh=\u5176\u4ED6\u5B5F\u9AD8\u68C9\u8BED\u7CFB +mlg=\u9A6C\u5C14\u52A0\u4EC0\u6587 +mlt=\u9A6C\u8033\u4ED6\u6587 +mnc=\u6EE1\u6587 +mni=\u66FC\u5C3C\u666E\u91CC\u6587 +mno=\u9A6C\u8BFA\u535A\u8BED\u7CFB +moh=\u6469\u970D\u514B\u6587 +mon=\u8499\u53E4\u6587 +mos=\u83AB\u897F\u6587 +mul=\u591A\u79CD\u8BED\u7CFB +mun=\u8499\u8FBE\u8BED\u7CFB +mus=\u514B\u91CC\u514B\u6587 +mwl=\u7C73\u5170\u5FB7\u65AF\u6587 +mwr=\u9A6C\u5C14\u74E6\u5229\u6587 +myn=\u739B\u96C5\u8BED\u7CFB +myv=\u4FC4\u65E5\u4E9A\u6587 +nah=\u7EB3\u74E6\u7279\u5C14\u6587 +nai=\u5176\u4ED6\u5317\u7F8E\u5370\u7B2C\u5B89\u8BED\u7CFB +nap=\u62FF\u6CE2\u91CC\u6587 +nau=\u7459\u9C81\u6587 +nav=\u7EB3\u74E6\u970D\u6587 +nbl=\u6069\u5FB7\u8D1D\u52D2\u8BED, \u5357\u90E8 +nde=\u6069\u5FB7\u8D1D\u52D2\u8BED, \u5317\u90E8 +ndo=\u6069\u4E1C\u52A0\u6587 +nds=\u4F4E\u5730\u5FB7\u6587; \u4F4E\u5730\u6492\u514B\u900A\u6587 +nep=\u5C3C\u6CCA\u5C14\u6587 +new=\u5C3C\u74E6\u5C14\u6587 +nia=\u5C3C\u4E9A\u65AF\u6587 +nic=\u5C3C\u52A0\u62C9\u74DC\u79D1\u591A\u5DF4 +niu=\u7EBD\u57C3\u6587 +nno=\u632A\u5A01\u5C3C\u8BFA\u65AF\u514B\u6587 +nob=\u632A\u5A01\u535A\u514B\u9A6C\u5C14\u8BED +nog=\u8BFA\u76D6\u6587 +non=\u53E4\u8BFA\u5C14\u65AF\u6587 +nor=\u632A\u5A01\u6587 +nqo=N\u2019Ko (\u897F\u975E\u4E66\u9762\u8BED\u8A00) +nso=\u5317\u7D22\u6258\u6587 +nub=\u52AA\u6BD4\u4E9A\u8BED\u7CFB +nwc=\u5C3C\u74E6\u5C14\u6587 +nya=\u9F50\u5207\u74E6\u8BED +nym=\u5C3C\u4E9A\u59C6\u97E6\u9F50\u6587 +nyn=\u5C3C\u6602\u79D1\u52D2\u6587 +nyo=\u5C3C\u7EA6\u7F57\u6587 +nzi=\u6069\u6D4E\u9A6C\u6587 +oci=\u5965\u897F\u5766\u6587 (1500 \u540E) +oji=\u5965\u5409\u5E03\u74E6\u6587 +ori=\u6B27\u91CC\u4E9A\u6587 +orm=\u963F\u66FC\u6587 +osa=\u5965\u8428\u683C\u8BED +oss=\u5965\u585E\u68AF\u6587 +ota=\u5965\u6258\u66FC\u571F\u8033\u5176\u6587 +oto=\u5965\u6258\u7C73\u8BED\u7CFB +paa=\u5176\u4ED6\u5DF4\u5E03\u4E9A\u6587 +pag=\u90A6\u963F\u897F\u6960\u8BED +pal=\u5E15\u62C9\u7EF4\u6587 +pam=\u90A6\u677F\u7259\u6587 +pan=\u65C1\u906E\u666E\u6587 +pap=\u5E15\u76AE\u4E9A\u95E8\u6258\u6587 +pau=\u5E15\u52B3\u6587 +peo=\u53E4\u8001\u6CE2\u65AF\u8BED +per=\u6CE2\u65AF\u6587 +phi=\u5176\u4ED6\u83F2\u5F8B\u5BBE\u8BED\u7CFB +phn=\u8153\u5C3C\u57FA\u6587 +pli=\u5DF4\u5229\u6587 +pol=\u6CE2\u5170\u6587 +pon=\u6CE2\u7EB3\u4F69\u6587 +por=\u8461\u8404\u7259\u6587 +pra=\u666E\u62C9\u514B\u91CC\u7279\u8BF8\u8BED\u8A00 +pro=\u666E\u7F57\u6587\u65AF\u6587 +pus=\u666E\u4EC0\u56FE\u6587 +que=\u76D6\u4E18\u4E9A\u6587 +raj=\u62C9\u8D3E\u65AF\u5766\u6587 +rap=\u62C9\u5E15\u52AA\u4F0A\u6587 +rar=\u62C9\u7F57\u6C64\u52A0\u6587 +roa=\u5176\u4ED6\u62C9\u4E01\u8BED\u7CFB +roh=\u7F57\u66FC\u4EC0\u8BED +rom=\u5409\u666E\u8D5B\u6587 +rum=\u7F57\u9A6C\u5C3C\u4E9A\u6587 +run=\u57FA\u9686\u8FEA\u6587 +rup=\u4E9A\u7F8E\u5C3C\u4E9A\u6587 +rus=\u4FC4\u6587 +sad=\u6563\u8FBE\u7EF4\u6587 +sag=\u6851\u6208\u6587 +sah=\u96C5\u5E93\u7279\u6587 +sai=\u5176\u4ED6\u5357\u7F8E\u5370\u7B2C\u5B89\u6587 +sal=\u8428\u5229\u4EC0\u6587 +sam=\u8428\u739B\u5229\u4E9A\u6587 +san=\u68B5\u6587 +sas=\u8428\u8428\u514B\u6587 +sat=\u6851\u5854\u5229\u6587 +scn=\u897F\u897F\u91CC\u6587 +sco=\u82CF\u683C\u5170\u6587 +sel=\u585E\u5C14\u5E93\u666E\u6587 +sem=\u5176\u4ED6\u95EA\u65CF\u8BED\u7CFB +sga=\u53E4\u7231\u5C14\u5170\u6587 +sgn=\u624B\u8BED +shn=\u63B8\u6587 +sid=\u6089\u8FBE\u6469\u6587 +sin=\u8F9B\u54C8\u62C9\u8BED +sio=\u82CF\u8BED\u8BF8\u8BED\u8A00 +sit=\u6C49\u85CF\u8BF8\u8BED\u8A00 +sla=\u5176\u4ED6\u65AF\u62C9\u592B\u8BED\u7CFB +slo=\u65AF\u6D1B\u4F10\u514B\u6587 +slv=\u65AF\u6D1B\u6587\u5C3C\u4E9A\u6587 +sma=\u5357\u8428\u7C73\u6587 +sme=\u5317\u6C99\u5BC6\u6587 +smi=\u5176\u4ED6\u8428\u7C73\u6587 +smj=\u5F8B\u52D2\u6B27\u8428\u83AB\u65AF\u8BED +smn=\u4F0A\u7EB3\u91CC\u8428\u7C73\u8BED +smo=\u8428\u6469\u4E9A\u6587 +sms=\u65AF\u79D1\u7279\u8428\u7C73\u6587 +sna=\u4FEE\u7EB3\u6587 +snd=\u4FE1\u5FB7\u6587 +snk=\u7D22\u5C3C\u57FA\u6587 +sog=\u53E4\u7C9F\u7279\u8BED +som=\u7D22\u9A6C\u91CC\u6587 +son=\u6851\u6D77\u6587 +sot=\u7D22\u6258\u8BED, \u5357\u90E8 +spa=\u897F\u73ED\u7259\u6587 +srd=\u6492\u4E01\u6587 +srn=Sranan Tongo (\u6E90\u4E8E\u514B\u91CC\u5965\u5C14\u8BED) +srp=\u585E\u5C14\u7EF4\u4E9A\u6587 +srr=\u8C22\u5217\u5C14\u6587 +ssa=\u975E\u6D32\u6492\u54C8\u62C9\u6C99\u6F20\u8FB9\u7F18\u5730\u5E26\u8BED\u8A00 +ssw=\u65AF\u74E6\u7279\u6587 +suk=\u82CF\u5E93\u9A6C\u6587 +sun=\u5DFD\u4ED6\u6587 +sus=\u82CF\u82CF\u6587 +sux=\u82CF\u9A6C\u6587 +swa=\u65AF\u74E6\u5E0C\u91CC\u6587 +swe=\u745E\u5178\u6587 +syc=\u53E4\u5178\u53D9\u5229\u4E9A\u8BED +syr=\u53D9\u5229\u4E9A\u8BED +tah=\u5854\u5E0C\u63D0\u6587 +tai=\u50A3\u8BED\u8BF8\u8BED\u8A00 (\u5176\u4ED6) +tam=\u6CF0\u7C73\u5C14\u6587 +tat=\u9791\u977C\u6587 +tel=\u6CF0\u5362\u56FA\u6587 +tem=\u6ED5\u5185\u8BED +ter=\u7279\u5217\u7EB3\u6587 +tet=\u7279\u5854\u59C6\u6587 +tgk=\u5854\u5409\u514B\u6587 +tgl=\u5854\u52A0\u8DEF\u65CF\u6587 +tha=\u6CF0\u6587 +tib=\u897F\u85CF\u6587 +tig=\u63D0\u683C\u96F7\u6587 +tir=\u63D0\u683C\u91CC\u5C3C\u4E9A\u6587 +tiv=\u8482\u592B\u6587 +tkl=\u6258\u514B\u52B3\u6587 +tlh=\u514B\u6797\u8D21\u6587 +tli=\u7279\u6797\u5409\u7279\u6587 +tmh=\u5854\u9A6C\u5947\u514B\u6587 +tog=\u6C64\u52A0\u6587 (\u5C3C\u4E9A\u8428\u5730\u533A) +ton=\u6C64\u52A0\u8BED (\u6C64\u52A0\u5C9B) +tpi=\u6258\u514B\u76AE\u8F9B\u6587 +tsi=\u8482\u59C6\u897F\u4E9A\u6587 +tsn=\u7A81\u5C3C\u65AF\u6587 +tso=\u7279\u677E\u52A0\u6587 +tuk=\u571F\u5E93\u66FC\u6587 +tum=\u901A\u5E03\u5361\u6587 +tup=\u56FE\u76AE\u8BED\u7CFB +tur=\u571F\u8033\u5176\u6587 +tut=\u963F\u5C14\u6CF0\u8BF8\u8BED\u8A00 (\u5176\u4ED6) +tvl=\u56FE\u74E6\u5362\u6587 +twi=\u5951\u7EF4\u6587 +tyv=\u56FE\u74E6\u6587 +udm=\u4E4C\u5FB7\u7A46\u5C14\u7279\u6587 +uga=\u4E4C\u52A0\u91CC\u7279\u6587 +uig=\u7EF4\u543E\u5C14\u6587 +ukr=\u4E4C\u514B\u5170\u6587 +umb=\u7FC1\u672C\u675C\u6587 +und=\u672A\u5B9A\u8BED\u79CD +urd=\u4E4C\u5C14\u90FD\u6587 +uzb=\u4E4C\u5179\u522B\u514B\u6587 +vai=\u74E6\u4F0A\u6587 +ven=\u6587\u8FBE\u6587 +vie=\u8D8A\u5357\u6587 +vol=\u6C83\u62C9\u666E\u514B\u6587 +vot=\u6C83\u63D0\u514B\u6587 +wak=\u74E6\u5361\u4EC0\u8BF8\u8BED\u8A00 +wal=\u74E6\u62C9\u83AB\u6587 +war=\u74E6\u8D56\u6587 +was=\u74E6\u7ECD\u6587 +wel=\u5A01\u5C14\u58EB\u6587 +wen=\u7D22\u5E03\u8BF8\u8BED\u8A00 +wln=\u74E6\u9F99\u6587 +wol=\u6C83\u5C14\u592B\u6587 +xal=\u5361\u5C14\u6885\u514B\u6587 +xho=\u73ED\u56FE\u6587 +yao=\u7476\u65CF\u6587 +yap=\u96C5\u6D66\u6587 +yid=\u4F9D\u5730\u6587 +yor=\u7EA6\u9C81\u5DF4\u6587 +ypk=\u5C24\u76AE\u514B\u8BF8\u8BED\u8A00 +zap=\u8428\u6CE2\u8482\u514B\u6587 +zbl=\u5E03\u5217\u65AF\u7B26\u53F7 +zen=\u6CFD\u7EB3\u52A0\u6587 +zha=\u58EE\u6587 +znd=\u8D5E\u5FB7\u6587 +zul=\u7956\u9C81\u6587 +zun=\u7956\u5C3C\u8BED +zxx=\u65E0\u8BED\u8A00\u5185\u5BB9 +zza=\u624E\u624E\u8BED + # script names # key is ISO 15924 script code -Hans=\u7b80\u4f53\u4e2d\u6587 -Hant=\u7e41\u4f53\u4e2d\u6587 +Arab=\u963F\u62C9\u4F2F\u6587 +Armi=\u7687\u5BB6\u4E9A\u62C9\u59C6\u8BED +Armn=\u4E9A\u7F8E\u5C3C\u4E9A\u6587 +Avst=\u963F\u7EF4\u65AF\u9640\u8BED +Bali=\u5DF4\u91CC\u6587 +Bamu=\u5DF4\u59C6\u7A46\u8BED +Bass=\u5DF4\u8428\u74E6\u8D6B\u8BED +Batk=\u5DF4\u5854\u514B\u6587 +Beng=\u5B5F\u52A0\u62C9\u6587 +Blis=\u5E03\u5217\u65AF\u7B26\u53F7 +Bopo=\u6C49\u8BED\u62FC\u97F3 +Brah=\u5A46\u7F57\u7C73\u6587\u5B57 +Brai=\u5E03\u83B1\u53F6\u76F2\u6587 +Bugi=\u5E03\u5409\u6587 +Buhd=\u5E03\u5E0C\u5FB7\u8BED +Cakm=\u67E5\u514B\u9A6C\u8BED +Cans=\u52A0\u62FF\u5927\u571F\u8457\u7EDF\u4E00\u7B26\u53F7\u8BED +Cari=\u5361\u91CC\u4E9A\u8BED +Cham=\u5360\u8BED +Cher=\u5F7B\u7F57\u57FA\u6587 +Cirt=\u8272\u65AF\u6587 +Copt=\u514B\u666E\u7279\u8BED +Cprt=\u585E\u6D66\u8DEF\u65AF\u8BED +Cyrl=\u897F\u91CC\u5C14\u8BED +Cyrs=\u897F\u91CC\u5C14\u6587\u5B57 (\u53E4\u6559\u4F1A\u65AF\u62C9\u592B\u8BED\u7684\u53D8\u4F53) +Deva=\u68B5\u6587 +Dsrt=\u5FB7\u585E\u83B1\u7279\u6587 +Dupl=Duployan \u901F\u8BB0 +Egyd=\u540E\u671F\u57C3\u53CA\u8BED +Egyh=\u53E4\u57C3\u53CA\u50E7\u4FA3\u4E66\u5199\u4F53 +Egyp=\u53E4\u57C3\u53CA\u8C61\u5F62\u6587 +Elba=\u7231\u5C14\u5DF4\u6851 +Ethi=\u57C3\u585E\u4FC4\u6BD4\u4E9A\u8BED +Geok=\u52AA\u65AF\u514B\u80E1\u91CC\u6587 +Geor=\u683C\u9C81\u5409\u4E9A\u6587 +Glag=\u683C\u62C9\u54E5\u91CC\u8BED +Goth=\u54E5\u7279\u6587 +Gran=\u5404\u5170\u7279\u54C8\u6587\u5B57 +Grek=\u5E0C\u814A\u6587 +Gujr=\u53E4\u52A0\u62C9\u63D0\u6587 +Guru=\u679C\u9C81\u7A46\u5947\u8BED +Hang=\u97E9\u6587 +Hani=\u6C49\u8BED +Hano=\u6C49\u5974\u7F57\u8BED +Hans=\u7B80\u4F53\u4E2D\u6587 +Hant=\u7E41\u4F53\u4E2D\u6587 +Hebr=\u5E0C\u4F2F\u6765\u6587 +Hira=\u5E73\u5047\u540D +Hmng=\u6768\u677E\u5F55\u82D7\u6587 +Hrkt=\u7247\u5047\u540D\u6216\u5E73\u5047\u540D +Hung=\u53E4\u5308\u7259\u5229\u8BED +Inds=\u5370\u5EA6\u6CB3\u6587\u5B57 +Ital=\u53E4\u610F\u5927\u5229\u8BED +Java=\u722A\u54C7\u6587 +Jpan=\u65E5\u6587 +Kali=\u514B\u8036\u674E\u6587\u5B57 +Kana=\u7247\u5047\u540D +Khar=\u5361\u7F57\u987B\u63D0\u6587 +Khmr=\u67EC\u57D4\u5BE8\u6587 +Knda=\u57C3\u7EB3\u5FB7\u6587 +Kore=\u97E9\u6587 +Kpel=\u514B\u4F69\u5217\u6587 +Kthi=\u5361\u7F57\u987B\u63D0\u8BED +Lana=\u5170\u62FF\u8BED +Laoo=\u8001\u631D\u8BED +Latf=\u62C9\u4E01\u6587 (\u54E5\u7279\u5F0F\u5B57\u4F53\u53D8\u4F53) +Latg=\u62C9\u4E01\u6587 (\u76D6\u5C14\u8BED\u53D8\u4F53) +Latn=\u62C9\u4E01\u6587 +Lepc=\u96F7\u5E03\u67E5\u8BED +Limb=\u6797\u5E03\u8BED +Lina=\u7EBF\u5F62\u6587\u5B57 A +Linb=\u7EBF\u5F62\u6587\u5B57 B +Lisu=\u5088\u50F3\u8BED +Loma=\u6D1B\u9A6C\u8BED +Lyci=\u5229\u897F\u4E9A\u8BED +Lydi=\u5415\u5E95\u4E9A\u8BED +Mand=\u66FC\u8FBE\u6587 +Mani=\u6469\u5C3C\u6559\u6587 +Maya=\u739B\u96C5\u5723\u7B26\u6587 +Mend=\u95E8\u8FEA\u6587 +Merc=\u9EA6\u82E5\u63D0\u514B\u6587\u8349\u4F53 +Mero=\u9EA6\u82E5\u63D0\u514B\u6587 +Mlym=\u9A6C\u6765\u4E9A\u62C9\u59C6\u6587 +Mong=\u8499\u53E4\u6587 +Moon=\u6708\u4EAE\u4F53 +Mtei=\u66FC\u5C3C\u666E\u5C14\u8BED +Mymr=\u7F05\u7538 +Narb=\u53E4\u5317\u963F\u62C9\u4F2F\u8BED +Nbat=\u7EB3\u5DF4\u6CF0\u8BED +Nkgb=\u7EB3\u897F\u54E5\u5DF4\u8BED +Nkoo=N\u2019Ko (\u897F\u975E\u4E66\u9762\u8BED\u8A00) +Ogam=\u6B27\u7518\u8BED +Olck=\u6851\u5854\u5229\u6587 +Orkh=\u9102\u5C14\u6D51\u6587 +Orya=\u5965\u8428\u683C\u6587 +Osma=\u5965\u65AF\u66FC\u4E9A\u8BED +Palm=\u5E15\u5C14\u8FC8\u62C9\u8BED +Perm=\u53E4\u5F7C\u5C14\u59C6\u8BF8\u8BED +Phag=\u516B\u601D\u5DF4\u6587 +Phli=\u7891\u94ED\u4F53\u5DF4\u5217\u7EF4\u8BED +Phlp=\u8BD7\u4F53\u5DF4\u5217\u7EF4\u8BED +Phlv=\u4E66\u4F53\u5DF4\u5217\u7EF4\u8BED +Phnx=\u8153\u5C3C\u57FA\u6587 +Plrd=\u82D7\u6587 +Prti=\u7891\u94ED\u4F53\u5E15\u63D0\u4E9A\u8BED +Rjng=\u62C9\u8BA9\u8BED +Roro=\u6717\u683C\u6717\u683C\u6587 +Runr=\u53E4\u4EE3\u5317\u6B27\u6587 +Samr=\u6492\u739B\u5229\u4E9A\u8BED +Sara=\u6C99\u62C9\u5824\u6587 +Sarb=\u53E4\u5357\u963F\u62C9\u4F2F\u8BED +Saur=\u7D22\u62C9\u4EC0\u7279\u62C9\u8BED +Sgnw=\u4E66\u5199\u7B26\u53F7 +Shaw=\u8427\u4F2F\u7EB3\u5F0F\u8BED +Sind=\u4FE1\u5FB7\u6587 +Sinh=\u8F9B\u54C8\u62C9\u8BED +Sund=\u5DFD\u4ED6\u6587 +Sylo=Syloti Nagri \u4E66\u5199\u4F53 +Syrc=\u53D9\u5229\u4E9A\u6587 +Syre=\u798F\u97F3\u4F53\u53D9\u5229\u4E9A\u6587 +Syrj=\u897F\u53D9\u5229\u4E9A\u8BED +Syrn=\u4E1C\u53D9\u5229\u4E9A\u8BED +Tagb=\u5854\u683C\u73ED\u74E6\u8BED +Tale=\u6CF0\u4E50\u8BED +Talu=\u65B0\u50A3\u6587 +Taml=\u6CF0\u7C73\u5C14\u6587 +Tavt=\u8D8A\u5357\u50A3\u8BED +Telu=\u6CF0\u5362\u56FA\u6587 +Teng=\u817E\u683C\u74E6\u6587\u5B57 +Tfng=\u63D0\u975E\u7EB3\u6587 +Tglg=\u5854\u52A0\u8DEF\u65CF\u6587 +Thaa=\u5854\u5B89\u5A1C\u8BED +Thai=\u6CF0\u6587 +Tibt=\u897F\u85CF\u6587 +Ugar=\u4E4C\u52A0\u91CC\u7279\u6587 +Vaii=\u74E6\u4F9D\u8BED +Visp=\u53EF\u89C1\u8BED\u8A00 +Wara=Warang Citi +Xpeo=\u53E4\u6CE2\u65AF\u8BED +Xsux=\u82CF\u7F8E\u5C14-\u963F\u5361\u5FB7\u6954\u5F62\u6587\u5B57 +Yiii=\u5F5D\u8BED +Zinh=\u9057\u4F20\u5B66\u672F\u8BED +Zmth=\u6570\u5B66\u8BB0\u53F7 +Zsym=\u7B26\u53F7 +Zxxx=\u64A4\u9500\u5199\u5165 +Zyyy=\u901A\u7528 +Zzzz=\u811A\u672C\u672A\u77E5\u6216\u8005\u65E0\u6548 # country names # key is ISO 3166 country code @@ -478,3 +1109,37 @@ YT=\u9a6c\u7ea6\u7279\u5c9b ZA=\u5357\u975e ZM=\u8d5e\u6bd4\u4e9a ZW=\u6d25\u5df4\u5e03\u97e6 + +# territory names +# key is UN M.49 country and area code + +001=\u4E16\u754C +002=\u975E\u6D32 +003=\u5317\u7F8E\u6D32 +005=\u5357\u7F8E\u6D32 +009=\u5927\u6D0B\u6D32 +011=\u897F\u975E +013=\u4E2D\u7F8E\u6D32 +014=\u4E1C\u975E +015=\u5317\u975E +017=\u4E2D\u975E +018=\u5357\u90E8\u975E\u6D32 +019=\u7F8E\u6D32 +021=\u7F8E\u6D32\u5317\u90E8 +029=\u52A0\u52D2\u6BD4\u6D77 +030=\u4E1C\u4E9A +034=\u5357\u4E9A +035=\u4E1C\u5357\u4E9A +039=\u5357\u6B27 +053=\u6FB3\u5927\u5229\u4E9A\u548C\u65B0\u897F\u5170 +054=\u7F8E\u62C9\u5C3C\u897F\u4E9A +057=\u5BC6\u514B\u7F57\u5C3C\u897F\u4E9A\u5730\u533A +061=\u6CE2\u5229\u5C3C\u897F\u4E9A +142=\u4E9A\u6D32 +143=\u4E2D\u4E9A +145=\u897F\u4E9A +150=\u6B27\u6D32 +151=\u4E1C\u6B27 +154=\u5317\u6B27 +155=\u897F\u6B27 +419=\u62C9\u4E01\u7F8E\u6D32\u548C\u52A0\u52D2\u6BD4\u6D77 diff --git a/jdk/src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties b/jdk/src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties index 95d598e967b..d827635fa74 100644 --- a/jdk/src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties +++ b/jdk/src/share/classes/sun/util/resources/LocaleNames_zh_TW.properties @@ -1,4 +1,4 @@ -# Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -227,11 +227,642 @@ za=\u58ef\u6587 zh=\u4e2d\u6587 zu=\u7956\u9b6f\u6587 +# key is ISO 639.2 language code +aar=\u963F\u6CD5\u6587 +abk=\u963F\u5E03\u54C8\u897F\u4E9E\u6587 +ace=\u4E9E\u9F4A\u6587 +ach=\u963F\u50D1\u5229\u6587 +ada=\u963F\u7576\u83AB\u6587 +ady=\u963F\u8FEA\u5404\u6587 +afa=\u4E9E\u975E\u8A9E\u7CFB +afh=\u963F\u5F17\u91CC\u5E0C\u5229\u6587 +afr=\u5357\u975E\u8377\u862D\u6587 +ain=\u963F\u4F0A\u52AA\u6587 +aka=\u963F\u5BD2\u6587 +akk=\u963F\u5361\u5FB7\u6587 +alb=\u963F\u723E\u5DF4\u5C3C\u4E9E\u6587 +ale=\u963F\u7559\u7533\u6587 +alg=\u963F\u723E\u5CA1\u6606\u8AF8\u8A9E\u8A00 +alt=\u5357\u963F\u723E\u6CF0\u6587 +amh=\u8863\u7D22\u6BD4\u4E9E\u6587 +ang=\u53E4\u82F1\u6587 (\u7D04\u897F\u5143 450-1100) +anp=\u6602\u52A0\u6587 +apa=\u963F\u5E15\u5207\u8AF8\u8A9E\u8A00 +ara=\u963F\u62C9\u4F2F\u6587 +arc=\u963F\u62C9\u7C73\u6587 (700-300 BCE) +arg=\u4E9E\u62C9\u5CA1\u6587 +arm=\u4E9E\u7F8E\u5C3C\u4E9E\u6587 +arn=\u963F\u52DE\u574E\u6587 +arp=\u963F\u62C9\u5E15\u970D\u6587 +art=\u4EBA\u5DE5\u8A9E\u8A00 +arw=\u963F\u62C9\u74E6\u514B\u6587 +asm=\u963F\u85A9\u59C6\u6587 +ast=\u963F\u65AF\u5716\u91CC\u4E9E\u6587 +ath=\u963F\u85A9\u5E15\u65AF\u574E\u8AF8\u8A9E\u8A00 +aus=\u6FB3\u6D32\u8AF8\u8A9E\u8A00 +ava=\u963F\u74E6\u96F7\u6587 +ave=\u963F\u672A\u65AF\u5854\u6587 +awa=\u963F\u74E6\u6587 +aym=\u4E9E\u6469\u62C9\u6587 +aze=\u4E9E\u585E\u62DC\u7136\u6587 +bad=\u73ED\u9054\u6587 +bai=\u5DF4\u7C73\u7D2F\u514B\u8AF8\u8A9E\u8A00 +bak=\u5DF4\u4EC0\u5580\u723E\u6587 +bal=\u4FFE\u8DEF\u652F\u6587 +bam=\u73ED\u5DF4\u62C9\u6587 +ban=\u5CC7\u91CC\u6587 +baq=\u5DF4\u65AF\u514B\u6587 +bas=\u5DF4\u85A9\u6587 +bat=\u6CE2\u7F85\u7684\u6D77\u8AF8\u8A9E\u8A00 +bej=\u8C9D\u624E\u6587 +bel=\u767D\u4FC4\u7F85\u65AF\u6587 +bem=\u5225\u59C6\u5DF4\u6587 +ben=\u5B5F\u52A0\u62C9\u6587 +ber=\u67CF\u67CF\u723E\u6587 +bho=\u535A\u5091\u666E\u723E\u6587 +bih=\u6BD4\u54C8\u723E\u6587 +bik=\u6BD4\u79D1\u723E\u6587 +bin=\u6BD4\u5C3C\u6587 +bis=\u6BD4\u65AF\u62C9\u99AC\u6587 +bla=\u932B\u514B\u932B\u5361\u6587 +bnt=\u73ED\u5716\u8AF8\u8A9E\u8A00 +bos=\u6CE2\u58EB\u5C3C\u4E9E\u6587 +bra=\u5E03\u62C9\u6770\u6587 +bre=\u4E0D\u5217\u5854\u5C3C\u6587 +btk=\u5DF4\u5854\u514B\u6587 +bua=\u5E03\u91CC\u963F\u7279\u6587 +bug=\u5E03\u5409\u65AF\u6587 +bul=\u4FDD\u52A0\u5229\u4E9E\u6587 +bur=\u7DEC\u7538\u6587 +byn=\u5E03\u6797\u6587 +cad=\u5361\u591A\u6587 +cai=\u4E2D\u7F8E\u5370\u7B2C\u5B89\u8AF8\u8A9E\u8A00 +car=\u5DF4\u52D2\u6BD4\u6587 +cat=\u5609\u6CF0\u7F85\u5C3C\u4E9E\u6587 +cau=\u9AD8\u52A0\u7D22\u8AF8\u8A9E\u8A00 +ceb=\u5BBF\u9727\u6587 +cel=\u51F1\u723E\u7279\u8AF8\u8A9E\u8A00 +cha=\u67E5\u6469\u6D1B\u6587 +chb=\u5947\u5E03\u67E5\u6587 +che=\u8ECA\u81E3\u6587 +chg=\u67E5\u52A0\u6587 +chi=\u4E2D\u6587 +chk=\u8655\u5947\u65AF\u6587 +chm=\u99AC\u91CC\u6587 +chn=\u5951\u5974\u514B\u6587 +cho=\u55AC\u514B\u6258\u6587 +chp=\u5947\u4F69\u74E6\u63DA\u6587 +chr=\u67F4\u7F85\u57FA\u6587 +chu=\u6559\u6703\u65AF\u62C9\u592B\u6587 +chv=\u695A\u74E6\u58EB\u6587 +chy=\u6C99\u4F0A\u5B89\u6587 +cmc=\u67E5\u7C73\u514B\u6587 +cop=\u79D1\u666E\u7279\u6587 +cor=\u5EB7\u74E6\u8033\u6587 +cos=\u79D1\u897F\u5609\u6587 +cpe=\u6B50\u6D32\u8154\u8ABF\u548C\u6D0B\u6D87\u6FF1\uFF0C\u6E90\u81EA\u82F1\u6587\u7684(\u5176\u4ED6) +cpf=\u6B50\u6D32\u8154\u8ABF\u548C\u6D0B\u6D87\u6FF1\uFF0C\u6E90\u81EA\u6CD5\u6587\u7684(\u5176\u4ED6) +cpp=\u6B50\u6D32\u8154\u8ABF\u548C\u6D0B\u6D87\u6FF1\uFF0C\u6E90\u81EA\u8461\u8404\u7259\u6587\u7684(\u5176\u4ED6) +cre=\u514B\u91CC\u6587 +crh=\u514B\u91CC\u7C73\u4E9E\u534A\u5CF6\u7684\u571F\u8033\u5176\u6587\uFF1B\u514B\u91CC\u7C73\u4E9E\u534A\u5CF6\u7684\u5854\u5854\u723E\u6587 +crp=\u5176\u4ED6\u514B\u91CC\u5967\u723E\u6DF7\u548C\u8A9E\u7CFB +csb=\u5361\u8212\u5E03\u6587 +cus=\u5EAB\u65BD\u7279\u8AF8\u8A9E\u8A00 +cze=\u6377\u514B\u6587 +dak=\u9054\u79D1\u4ED6\u6587 +dan=\u4E39\u9EA5\u6587 +dar=\u9054\u723E\u683C\u74E6\u6587 +day=\u8FEA\u96C5\u514B\u6587 +del=\u5FB7\u62C9\u74E6\u6587 +den=\u65AF\u62C9\u592B +dgr=\u591A\u683C\u91CC\u5E03\u6587 +din=\u4E01\u5361\u6587 +div=\u8FEA\u7DAD\u897F\u6587 +doi=\u591A\u683C\u4F86\u6587 +dra=\u5FB7\u62C9\u5A01\u8AF8\u8A9E\u8A00 +dsb=\u4E0B\u7D22\u5E03\u6587 +dua=\u675C\u4E9E\u62C9\u6587 +dum=\u4E2D\u53E4\u8377\u862D\u6587 (\u7D04 1050-1350) +dut=\u8377\u862D\u6587 +dyu=\u8FEA\u5C24\u62C9\u6587 +dzo=\u4E0D\u4E39\u6587 +efi=\u57C3\u83F2\u514B\u6587 +egy=\u53E4\u57C3\u53CA\u6587 +eka=\u827E\u5361\u6731\u514B\u6587 +elx=\u827E\u62C9\u7C73\u7279\u6587 +eng=\u82F1\u6587 +enm=\u4E2D\u53E4\u82F1\u6587 (1100-1500) +epo=\u4E16\u754C\u6587 +est=\u611B\u6C99\u5C3C\u4E9E\u6587 +ewe=\u57C3\u7DAD\u6587 +ewo=\u4F9D\u6C6A\u90FD\u6587 +fan=\u82B3\u65CF\u6587 +fao=\u6CD5\u7F85\u6587 +fat=\u82B3\u8482\u6587 +fij=\u6590\u6FDF\u6587 +fil=\u83F2\u5F8B\u8CD3\u6587 +fin=\u82AC\u862D\u6587 +fiu=\u82AC\u70CF\u8AF8\u8A9E\u8A00 +fon=\u8C50\u6587 +fre=\u6CD5\u6587 +frm=\u4E2D\u53E4\u6CD5\u6587 (\u7D04 1400-1600) +fro=\u53E4\u6CD5\u6587 (842-\u7D04 1400) +frr=\u5317\u5F17\u91CC\u897F\u4E9E\u6587 +frs=\u6771\u5F17\u91CC\u897F\u4E9E\u6587 +fry=\u897F\u5F17\u91CC\u897F\u4E9E\u6587 +ful=\u5BCC\u62C9\u6587 +fur=\u5F17\u7559\u5229\u6587 +gaa=\u52A0\u65CF\u6587 +gay=\u52A0\u7D04\u6587 +gba=\u845B\u5DF4\u4E9E\u6587 +gem=\u5176\u4ED6\u65E5\u8033\u66FC\u8A9E\u7CFB +geo=\u55AC\u6CBB\u4E9E\u6587 +ger=\u5FB7\u6587 +gez=\u5409\u8332\u6587 +gil=\u5409\u723E\u4F2F\u7279\u7FA4\u5CF6\u6587 +gla=\u84CB\u723E\u6587 +gle=\u611B\u723E\u862D\u6587 +glg=\u52A0\u91CC\u897F\u4E9E\u6587 +glv=\u66FC\u5CF6\u6587 +gmh=\u4E2D\u53E4\u9AD8\u5730\u5FB7\u6587 (\u7D04 1050-1500) +goh=\u53E4\u9AD8\u5730\u5FB7\u6587 (\u7D04 750-1050) +gon=\u5CA1\u5FB7\u6587 +gor=\u79D1\u9686\u9054\u7F85\u6587 +got=\u54E5\u5FB7\u6587 +grb=\u683C\u5217\u535A\u6587 +grc=\u53E4\u5E0C\u81D8\u6587 (\u76F4\u5230 1453) +gre=\u4E2D\u53E4\u5E0C\u81D8\u6587 (1453-) +grn=\u74DC\u62C9\u5C3C\u6587 +gsw=\u5FB7\u6587 (\u745E\u58EB) +guj=\u53E4\u5409\u62C9\u7279\u6587 +gwi=\u572D\u5951\u6587 +hai=\u6D77\u9054\u6587 +hat=\u6D77\u5730\u6587 +hau=\u8C6A\u85A9\u6587 +haw=\u590F\u5A01\u5937\u6587 +heb=\u5E0C\u4F2F\u4F86\u6587 +her=\u8D6B\u96F7\u7F85\u6587 +hil=\u5E0C\u5229\u84CB\u8FB2\u6587 +him=\u8D6B\u99AC\u67E5\u5229\u6587 +hin=\u5317\u5370\u5EA6\u6587 +hit=\u8D6B\u68AF\u6587 +hmn=\u5B5F\u6587 +hmo=\u65B0\u91CC\u6728\u6258\u6587 +hrv=\u514B\u7F85\u57C3\u897F\u4E9E\u6587 +hsb=\u4E0A\u7D22\u5E03\u6587 +hun=\u5308\u7259\u5229\u6587 +hup=\u80E1\u5E15\u6587 +iba=\u4F0A\u73ED\u6587 +ibo=\u4F0A\u5E03\u6587 +ice=\u51B0\u5CF6\u6587 +ido=\u4F0A\u591A\u6587 +iii=\u56DB\u5DDD\u5937\u6587 +ijo=\u4F0A\u55AC\u6587 +iku=\u4F0A\u52AA\u4F0A\u7279\u6587 +ile=\u4EBA\u5DE5\u570B\u969B\u6587 +ilo=\u4F0A\u6D1B\u95CA\u6587 +ina=\u4EBA\u5DE5\u570B\u969B\u6587 (\u570B\u969B\u8F14\u52A9\u8A9E\u8A00\u5354\u6703) +inc=\u5370\u5EA6\u8AF8\u8A9E\u8A00 +ind=\u5370\u5C3C\u6587 +ine=\u5370\u6B50\u8AF8\u8A9E\u8A00 +inh=\u5370\u53E4\u4EC0\u6587 +ipk=\u4F9D\u5974\u76AE\u7DAD\u514B\u6587 +ira=\u4F0A\u6717\u8AF8\u8A9E\u8A00 +iro=\u6613\u6D1B\u9B41\u6587 +ita=\u7FA9\u5927\u5229\u6587 +jav=\u722A\u54C7\u6587 +jbo=\u908F\u8F2F\u6587 +jpn=\u65E5\u6587 +jpr=\u7336\u592A\u6559-\u6CE2\u65AF\u6587 +jrb=\u7336\u592A\u963F\u62C9\u4F2F\u6587 +kaa=\u5361\u62C9\u5361\u723E\u5E15\u514B\u6587 +kab=\u5361\u6BD4\u723E\u6587 +kac=\u5361\u7434\u6587 +kal=\u683C\u9675\u862D\u6587 +kam=\u5361\u59C6\u5DF4\u6587 +kan=\u574E\u90A3\u9054\u6587 +kar=\u514B\u502B\u6587 +kas=\u5580\u4EC0\u7C73\u723E\u6587 +kau=\u5361\u52AA\u91CC\u6587 +kaw=\u5361\u5A01\u6587 +kaz=\u54C8\u85A9\u514B\u6587 +kbd=\u5361\u5DF4\u723E\u9054\u6587 +kha=\u5361\u897F\u6587 +khi=\u79D1\u4F9D\u6851\u8AF8\u8A9E\u8A00 +khm=\u4E2D\u592E\u67EC\u57D4\u5BE8\u6587 +kho=\u548C\u95D0\u6587 +kik=\u57FA\u5EAB\u7336\u6587 +kin=\u91D1\u63DA\u842C\u7B54\u6587 +kir=\u5409\u723E\u5409\u65AF\u6587 +kmb=\u91D1\u90A6\u675C\u6587 +kok=\u8CA2\u6839\u6587 +kom=\u79D1\u5BC6\u6587 +kon=\u525B\u679C\u6587 +kor=\u97D3\u6587 +kos=\u79D1\u65AF\u96F7\u6069\u6587 +kpe=\u514B\u4F69\u5217\u6587 +krc=\u5361\u62C9\u67F4-\u5305\u723E\u5361\u723E\u6587 +krl=\u5361\u7D2F\u5229\u963F\u6587 +kro=\u514B\u9B6F\u6587 +kru=\u5EAB\u9B6F\u79D1\u6587 +kua=\u95DC\u4E9E\u99AC\u6587 +kum=\u5EAB\u5BC6\u514B\u6587 +kur=\u5EAB\u5FB7\u6587 +kut=\u5EAB\u7279\u5948\u6587 +lad=\u62C9\u8FEA\u8AFE\u6587 +lah=\u62C9\u4EA8\u9054\u6587 +lam=\u862D\u5DF4\u6587 +lao=\u5BEE\u6587 +lat=\u62C9\u4E01\u6587 +lav=\u62C9\u812B\u7DAD\u4E9E\u6587 (\u5217\u7279\u6587) +lez=\u83DC\u8332\u4F9D\u6602\u6587 +lim=\u5229\u535A\u574E\u6587 +lin=\u9675\u52A0\u62C9\u6587 +lit=\u7ACB\u9676\u5B9B\u6587 +lol=\u8292\u6208\u6587 +loz=\u6D1B\u9F4A\u6587 +ltz=\u76E7\u68EE\u5821\u6587 +lua=\u9B6F\u5DF4\u9B6F\u9B6F\u4E9E\u6587 +lub=\u76E7\u5DF4-\u52A0\u4E39\u52A0\u6587 +lug=\u5E72\u9054\u6587 +lui=\u8DEF\u6613\u585E\u8AFE\u6587 +lun=\u76E7\u6069\u9054\u6587 +luo=\u76E7\u5967\u6587 (\u80AF\u4E9E\u8207\u5766\u5C1A\u5C3C\u4E9E) +lus=\u76E7\u6652\u6587 +mac=\u99AC\u5176\u9813\u6587 +mad=\u99AC\u90FD\u62C9\u6587 +mag=\u99AC\u52A0\u4F0A\u6587 +mah=\u99AC\u7D39\u723E\u7FA4\u5CF6\u6587 +mai=\u9081\u8482\u5229\u6587 +mak=\u671B\u52A0\u932B\u6587 +mal=\u99AC\u4F86\u4E9E\u62C9\u59C6\u6587 +man=\u66FC\u4E01\u54E5\u6587 +mao=\u6BDB\u5229\u6587 +map=\u5357\u5CF6\u8AF8\u8A9E\u8A00 +mar=\u99AC\u62C9\u5730\u6587 +mas=\u99AC\u8CFD\u6587 +may=\u99AC\u4F86\u6587 +mdf=\u83AB\u514B\u6C99\u6587 +mdr=\u66FC\u9054\u6587 +men=\u9580\u5FB7\u6587 +mga=\u4E2D\u53E4\u611B\u723E\u862D\u6587 (900-1200) +mic=\u7C73\u514B\u99AC\u514B\u6587 +min=\u7C73\u5357\u5361\u5821\u6587 +mis=\u6DF7\u96DC\u8A9E\u8AF8\u8A9E\u8A00 +mkh=\u5B5F\u9AD8\u68C9\u8AF8\u8A9E\u8A00 +mlg=\u99AC\u62C9\u52A0\u897F\u6587 +mlt=\u99AC\u723E\u4ED6\u6587 +mnc=\u6EFF\u65CF\u6587 +mni=\u66FC\u5C3C\u666E\u88E1\u6587 +mno=\u99AC\u8AFE\u535A\u8AF8\u8A9E\u8A00 +moh=\u83AB\u970D\u514B\u6587 +mon=\u8499\u53E4\u6587 +mos=\u83AB\u897F\u6587 +mul=\u591A\u7A2E\u8A9E\u8A00 +mun=\u8499\u9054\u8AF8\u8A9E\u8A00 +mus=\u514B\u91CC\u514B\u6587 +mwl=\u7C73\u862D\u5FB7\u65AF\u6587 +mwr=\u99AC\u723E\u5C3C\u88E1\u6587 +myn=\u99AC\u96C5\u8AF8\u8A9E\u8A00 +myv=\u5384\u723E\u8332\u4E9E\u6587 +nah=\u7D0D\u74E6\u7279\u6587 +nai=\u5317\u7F8E\u5370\u7B2C\u5B89\u8AF8\u8A9E\u8A00 +nap=\u62FF\u6CE2\u91CC\u6587 +nau=\u8AFE\u9B6F\u6587 +nav=\u7D0D\u74E6\u8377\u6587 +nbl=\u5357\u6069\u5FB7\u6BD4\u5229\u6587 +nde=\u5317\u6069\u5FB7\u6BD4\u5229\u6587 +ndo=\u6069\u6771\u52A0\u6587 +nds=\u4F4E\u5730\u5FB7\u6587; \u4F4E\u5730\u6492\u514B\u905C\u6587 +nep=\u5C3C\u6CCA\u723E\u6587 +new=\u5C3C\u74E6\u723E\u6587 +nia=\u5C3C\u4E9E\u65AF\u6587 +nic=\u5C3C\u52A0\u62C9\u74DC\u79D1\u591A\u5DF4 +niu=\u7D10\u57C3\u6587 +nno=\u632A\u5A01\u8010\u8AFE\u65AF\u514B\u6587 +nob=\u535A\u514B\u99AC\u723E\u6587\uFF0C\u632A\u5A01 +nog=\u8AFE\u84CB\u6587 +non=\u53E4\u8AFE\u723E\u65AF\u6587 +nor=\u632A\u5A01\u6587 +nqo=\u897F\u975E\u66F8\u9762\u8A9E\u8A00 (N'Ko) +nso=\u5317\u7D22\u6258\u6587 +nub=\u52AA\u6BD4\u4E9E\u8AF8\u8A9E\u8A00 +nwc=\u53E4\u5C3C\u74E6\u723E\u6587 +nya=\u9F4A\u5207\u74E6\u6587 +nym=\u5C3C\u63DA\u97CB\u9F4A\u6587 +nyn=\u5C3C\u63DA\u79D1\u840A\u6587 +nyo=\u5C3C\u5967\u56C9\u6587 +nzi=\u5C3C\u8332\u99AC\u6587 +oci=\u6B50\u897F\u5766\u6587 (\u524D 1500) +oji=\u5967\u6770\u5E03\u97CB\u6587 +ori=\u6B50\u5229\u4E9E\u6587 +orm=\u5967\u7F85\u8499\u6587 +osa=\u6B50\u585E\u5947\u6587 +oss=\u5967\u585E\u68AF\u6587 +ota=\u9102\u5716\u66FC\u571F\u8033\u5176\u6587 (1500-1928) +oto=\u5967\u6258\u7C73\u8AF8\u8A9E\u8A00 +paa=\u5DF4\u5E03\u4E9E\u8AF8\u8A9E\u8A00 +pag=\u6F58\u52A0\u8F9B\u6587 +pal=\u5DF4\u5217\u7DAD\u6587 +pam=\u6F58\u5E15\u5609\u6587 +pan=\u65C1\u906E\u666E\u6587 +pap=\u5E15\u76AE\u963F\u9580\u6258\u6587 +pau=\u5E1B\u7409\u6587 +peo=\u53E4\u6CE2\u65AF\u6587 (ca.600-400 B.C.) +per=\u6CE2\u65AF\u6587 +phi=\u83F2\u5F8B\u8CD3\u8AF8\u8A9E\u8A00 +phn=\u8153\u5C3C\u57FA\u6587 +pli=\u5E15\u91CC\u6587 +pol=\u6CE2\u862D\u6587 +pon=\u6CE2\u90A3\u8C9D\u6587 +por=\u8461\u8404\u7259\u6587 +pra=\u666E\u62C9\u514B\u91CC\u7279\u8AF8\u8A9E\u8A00 +pro=\u53E4\u666E\u7F85\u6587\u65AF\u6587 (\u76F4\u5230 1500) +pus=\u666E\u4EC0\u5716\u6587 +que=\u84CB\u695A\u74E6\u6587 +raj=\u62C9\u8CC8\u65AF\u5766\u8AF8\u6587 +rap=\u5FA9\u6D3B\u5CF6\u6587 +rar=\u62C9\u7F85\u901A\u52A0\u6587 +roa=\u7F85\u66FC\u8AF8\u8A9E\u8A00 +roh=\u7F85\u66FC\u4EC0\u6587 +rom=\u5409\u666E\u8CFD\u6587 +rum=\u7F85\u99AC\u5C3C\u4E9E\u6587 +run=\u79D1\u9686\u5730\u6587 +rup=\u7F85\u99AC\u5C3C\u4E9E\u8A9E\u7CFB +rus=\u4FC4\u6587 +sad=\u6851\u9054\u97CB\u6587 +sag=\u6851\u6208\u8A9E +sah=\u96C5\u5EAB\u7279\u6587 +sai=\u5176\u4ED6\u5357\u7F8E\u5370\u7B2C\u5B89\u6587 +sal=\u85A9\u5229\u4EC0\u8AF8\u8A9E\u8A00 +sam=\u85A9\u746A\u5229\u4E9E\u963F\u62C9\u59C6\u6587 +san=\u68B5\u6587\u5B57\u6BCD +sas=\u6492\u6492\u514B\u6587 +sat=\u6563\u5854\u5229\u6587 +scn=\u897F\u897F\u91CC\u6587 +sco=\u8607\u683C\u862D\u6587 +sel=\u745F\u723E\u5361\u666E\u6587 +sem=\u9583\u8A9E\u8AF8\u8A9E\u8A00 +sga=\u53E4\u611B\u723E\u862D\u6587 (\u81F3 900) +sgn=\u624B\u8A9E +shn=\u64A3\u6587 +sid=\u5E0C\u9054\u6469\u6587 +sin=\u932B\u862D\u6587 +sio=\u8607\u8A9E\u8AF8\u8A9E\u8A00 +sit=\u6F22\u85CF\u8A9E\u7CFB +sla=\u65AF\u62C9\u592B\u8AF8\u8A9E\u8A00 +slo=\u65AF\u6D1B\u4F10\u514B\u6587 +slv=\u65AF\u6D1B\u7DAD\u5C3C\u4E9E\u8A9E +sma=\u5357\u85A9\u7C73\u6587 +sme=\u5317\u6C99\u5BC6\u6587 +smi=\u85A9\u7C73\u8AF8\u8A9E\u8A00 +smj=\u9B6F\u52D2\u85A9\u7C73\u6587 +smn=\u4F0A\u7D0D\u88E1\u85A9\u7C73\u6587 +smo=\u85A9\u6469\u4E9E\u6587 +sms=\u65AF\u79D1\u7279\u85A9\u7C73\u6587 +sna=\u980C\u54C8\u6587 +snd=\u4FE1\u5FB7\u6587 +snk=\u7D22\u5C3C\u57FA\u6587 +sog=\u7D22\u683C\u5E95\u4E9E\u7D0D\u6587 +som=\u7D22\u99AC\u5229\u6587 +son=\u6851\u6D77\u6587 +sot=\u7D22\u6258\u6587, \u5357\u90E8 +spa=\u897F\u73ED\u7259\u6587 +srd=\u85A9\u4E01\u5C3C\u4E9E\u6587 +srn=Sranan Tongo (\u6E90\u65BC\u514B\u91CC\u5967\u723E\u8A9E) +srp=\u585E\u723E\u7DAD\u4E9E\u6587 +srr=\u585E\u96F7\u723E\u6587 +ssa=\u5C3C\u7F85\u6492\u54C8\u62C9\u8AF8\u8A9E\u8A00 +ssw=\u897F\u65AF\u74E6\u63D0\u6587 +suk=\u8607\u5EAB\u99AC\u6587 +sun=\u5DFD\u4E39\u6587 +sus=\u8607\u8607\u6587 +sux=\u8607\u7F8E\u6587 +swa=\u53F2\u74E6\u897F\u91CC\u6587 +swe=\u745E\u5178\u6587 +syc=\u53E4\u6558\u5229\u4E9E\u6587 +syr=\u6558\u5229\u4E9E\u6587 +tah=\u5927\u6EAA\u5730\u6587 +tai=\u50A3\u8A9E\u8AF8\u8A9E\u8A00 +tam=\u5766\u7C73\u723E\u6587 +tat=\u97C3\u977C\u6587 +tel=\u7279\u62C9\u53E4\u6587 +tem=\u63D0\u59C6\u6587 +ter=\u6CF0\u96F7\u8AFE\u6587 +tet=\u6CF0\u9813\u6587 +tgk=\u5854\u5409\u514B\u6587 +tgl=\u5854\u52A0\u62C9\u65CF\u6587 +tha=\u6CF0\u6587 +tib=\u897F\u85CF\u6587 +tig=\u8482\u683C\u96F7\u6587 +tir=\u63D0\u683C\u5229\u5C3C\u4E9E\u6587 +tiv=\u63D0\u592B\u6587 +tkl=\u6258\u514B\u52DE\u6587 +tlh=\u514B\u6797\u8CA2\u6587 +tli=\u7279\u6797\u57FA\u7279\u6587 +tmh=\u5854\u99AC\u5947\u514B\u6587 +tog=\u6771\u52A0\u6587(\u5C3C\u4E9E\u85A9\u6587) +ton=\u6771\u52A0\u6587 (\u6771\u52A0\u7FA4\u5CF6) +tpi=\u6258\u6BD4\u8F9B\u6587 +tsi=\u6B3D\u897F\u5B89\u6587 +tsn=\u585E\u8332\u74E6\u7D0D\u6587 +tso=\u980C\u52A0\u6587 +tuk=\u571F\u5EAB\u66FC\u6587 +tum=\u5716\u59C6\u5E03\u5361\u6587 +tup=\u5716\u76AE\u8AF8\u8A9E\u8A00 +tur=\u571F\u8033\u5176\u6587 +tut=\u963F\u723E\u6CF0\u8AF8\u8A9E\u8A00 (\u5176\u4ED6) +tvl=\u5410\u74E6\u9B6F\u6587 +twi=\u5951\u7DAD\u6587 +tyv=\u571F\u51E1\u6587 +udm=\u6C83\u8482\u827E\u514B\u6587 +uga=\u70CF\u52A0\u5217\u6587 +uig=\u7DAD\u543E\u723E\u6587 +ukr=\u70CF\u514B\u862D\u6587 +umb=\u59C6\u672C\u675C\u6587 +und=\u672A\u78BA\u5B9A\u7684 +urd=\u70CF\u90FD\u6587 +uzb=\u70CF\u8332\u5225\u514B\u6587 +vai=\u8D8A\u5357\u6587 Vai +ven=\u6587\u9054\u6587 +vie=\u8D8A\u5357\u6587 +vol=\u6C83\u62C9\u666E\u514B\u6587 +vot=\u6C83\u63D0\u514B\u6587 +wak=\u74E6\u5361\u4EC0\u8AF8\u8A9E\u8A00 +wal=\u74E6\u62C9\u83AB\u6587 +war=\u74E6\u745E\u6587 +was=\u74E6\u7D39\u6587 +wel=\u5A01\u723E\u65AF\u6587 +wen=\u7D22\u5E03\u8AF8\u8A9E\u8A00 +wln=\u83EF\u9686\u6587 +wol=\u6C83\u6D1B\u592B\u6587 +xal=\u5361\u723E\u6885\u514B\u6587 +xho=\u5ED3\u85A9\u6587 +yao=\u7464\u6587 +yap=\u96C5\u6D66\u6587 +yid=\u610F\u7B2C\u7DD2\u6587 +yor=\u512A\u9B6F\u5DF4\u6587 +ypk=\u5C24\u76AE\u514B\u8AF8\u8A9E\u8A00 +zap=\u85A9\u6CE2\u7279\u514B\u6587 +zbl=\u5E03\u5217\u65AF\u7B26\u865F +zen=\u6FA4\u7D0D\u52A0\u6587 +zha=\u58EF\u6587 +znd=\u8D0A\u5FB7\u6587 +zul=\u7956\u9B6F\u6587 +zun=\u7956\u5C3C\u6587 +zxx=\u7121\u8A9E\u8A00\u5167\u5BB9 +zza=\u624E\u624E\u6587 + # script names # key is ISO 15924 script code -Hans=\u7c21\u9ad4\u4e2d\u6587 -Hant=\u7e41\u9ad4\u4e2d\u6587 +Arab=\u963F\u62C9\u4F2F\u6587 +Armi=\u7687\u5BA4\u4E9E\u7F8E\u5C3C\u4E9E\u6587 +Armn=\u4E9E\u7F8E\u5C3C\u4E9E\u6587 +Avst=\u963F\u672A\u65AF\u5854\u6587 +Bali=\u5CC7\u91CC\u6587 +Bamu=\u5DF4\u66FC\u6587 +Bass=\u5DF4\u85A9\u4F10\u6587 +Batk=\u5DF4\u5854\u514B\u6587 +Beng=\u5B5F\u52A0\u62C9\u6587 +Blis=\u5E03\u5217\u65AF\u7B26\u865F +Bopo=\u6CE8\u97F3\u7B26\u865F +Brah=\u5A46\u7F85\u7C73\u6587 +Brai=\u76F2\u4EBA\u7528\u9EDE\u5B57\u6CD5 +Bugi=\u5E03\u5409\u65AF\u6587 +Buhd=\u5E03\u5E0C\u5FB7\u6587 +Cakm=\u67E5\u514B\u99AC\u6587 +Cans=\u52A0\u62FF\u5927\u539F\u4F4F\u6C11\u901A\u7528\u5B57\u7B26 +Cari=\u5361\u91CC\u4E9E\u6587 +Cham=\u5360\u6587 +Cher=\u67F4\u7F85\u57FA\u6587 +Cirt=\u8272\u65AF\u6587 +Copt=\u79D1\u666E\u7279\u6587 +Cprt=\u585E\u6D66\u8DEF\u65AF\u6587 +Cyrl=\u897F\u91CC\u4FC4\u8A9E +Cyrs=\u897F\u91CC\u723E\u6587 (\u53E4\u6559\u6703\u65AF\u62C9\u592B\u6587\u8B8A\u9AD4) +Deva=\u68B5\u6587 +Dsrt=\u5FB7\u745F\u96F7\u7279\u6587 +Dupl=Duployan \u901F\u8A18\u6CD5 +Egyd=\u53E4\u57C3\u53CA\u4E16\u4FD7\u9AD4 +Egyh=\u53E4\u57C3\u53CA\u50E7\u4FB6\u9AD4 +Egyp=\u53E4\u57C3\u53CA\u8C61\u5F62\u6587\u5B57 +Elba=\u611B\u723E\u5DF4\u6851\u6587 +Ethi=\u8863\u7D22\u5339\u4E9E\u6587 +Geok=\u683C\u9B6F\u5409\u4E9E\u8A9E\u7CFB (\u963F\u7D22\u4ED6\u8DEF\u91CC\u548C\u52AA\u65AF\u514B\u80E1\u91CC\u6587) +Geor=\u55AC\u6CBB\u4E9E\u6587 +Glag=\u683C\u62C9\u54E5\u91CC\u6587 +Goth=\u54E5\u5FB7\u6587 +Gran=\u683C\u862D\u85A9\u6587 +Grek=\u5E0C\u81D8\u6587 +Gujr=\u53E4\u5409\u62C9\u7279\u6587 +Guru=\u53E4\u723E\u7A46\u5947\u6587 +Hang=\u8AFA\u6587 +Hani=\u6F22\u8A9E +Hano=\u54C8\u52AA\u8AFE\u6587 +Hans=\u7C21\u9AD4\u4E2D\u6587 +Hant=\u7E41\u9AD4\u4E2D\u6587 +Hebr=\u5E0C\u4F2F\u4F86\u6587 +Hira=\u5E73\u5047\u540D +Hmng=\u694A\u677E\u9304\u82D7\u6587 +Hrkt=\u7247\u5047\u540D\u6216\u5E73\u5047\u540D +Hung=\u53E4\u5308\u7259\u5229\u6587 +Inds=\u5370\u5EA6\u6CB3\u6D41\u57DF (\u54C8\u62C9\u5E15\u6587) +Ital=\u53E4\u610F\u5927\u5229\u6587 +Java=\u722A\u54C7\u6587 +Jpan=\u65E5\u6587 +Kali=\u514B\u8036\u674E\u6587 +Kana=\u7247\u5047\u540D +Khar=\u5361\u7F85\u9808\u63D0\u6587 +Khmr=\u67EC\u57D4\u5BE8\u6587 +Knda=\u574E\u90A3\u9054\u6587 +Kore=\u97D3\u6587 +Kpel=\u514B\u4F69\u5217\u6587 +Kthi=\u5361\u5E1D\u6587 +Lana=\u85CD\u62FF\u6587 +Laoo=\u5BEE\u6587 +Latf=\u62C9\u4E01\u6587 (\u5C16\u89D2\u9AD4\u6D3B\u5B57\u8B8A\u9AD4) +Latg=\u62C9\u4E01\u6587 (\u84CB\u723E\u8A9E\u8B8A\u9AD4) +Latn=\u62C9\u4E01\u6587 +Lepc=\u96F7\u5E03\u67E5\u6587 +Limb=\u6797\u4F48\u6587 +Lina=\u7DDA\u6027\u6587\u5B57 A +Linb=\u7DDA\u6027\u6587\u5B57 B +Lisu=\u9ECE\u50F3\u6587 +Loma=\u6D1B\u99AC\u6587 +Lyci=\u5442\u897F\u4E9E\u8A9E +Lydi=\u91CC\u5E95\u4E9E\u8A9E +Mand=\u66FC\u5B89\u5E95\u6587 +Mani=\u6469\u5C3C\u6559\u6587 +Maya=\u746A\u96C5\u8C61\u5F62\u6587\u5B57 +Mend=\u9580\u8FEA\u8A9E +Merc=\u9EA5\u7F85\u57C3\u6587\u884C\u8349 +Mero=\u9EA5\u7F85\u57C3\u6587 +Mlym=\u99AC\u4F86\u4E9E\u62C9\u59C6\u6587 +Mong=\u8499\u53E4\u6587 +Moon=\u7A46\u6069\u9AD4\u76F2\u6587 +Mtei=\u66FC\u5C3C\u666E\u723E\u6587 +Mymr=\u7DEC\u7538\u6587 +Narb=\u5317\u963F\u62C9\u4F2F\u53E4\u6587 +Nbat=\u7D0D\u5DF4\u6CF0\u6587 +Nkgb=\u7D0D\u897F\u8FE6\u5DF4\u6587 +Nkoo=\u897F\u975E\u66F8\u9762\u8A9E\u8A00 (N'Ko) +Ogam=\u6B50\u7518\u6587 +Olck=\u6851\u5854\u5229\u6587 +Orkh=\u9102\u723E\u6E3E\u6587 +Orya=\u6B50\u5229\u4E9E\u6587 +Osma=\u6B50\u65AF\u66FC\u4E9E\u6587 +Palm=\u5E15\u7C73\u745E\u5C3C\u6587 +Perm=\u53E4\u5F7C\u723E\u59C6\u8AF8\u6587 +Phag=\u516B\u601D\u5DF4\u6587 +Phli=\u7891\u8A18\u6587\u6D3E\u9F8D\u7279\u6587 +Phlp=\u8A69\u7BC7\u96C6\u6D3E\u9F8D\u7279\u6587 +Phlv=\u66F8\u7C4D\u6D3E\u9F8D\u7279\u6587 +Phnx=\u8153\u5C3C\u57FA\u6587 +Plrd=\u67CF\u683C\u7406\u62FC\u97F3\u7B26 +Prti=\u7891\u8A18\u6587\u5DF4\u5E95\u4E9E\u6587 +Rjng=\u62C9\u8B93\u6587 +Roro=\u6717\u683C\u6717\u683C\u8C61\u5F62\u6587 +Runr=\u53E4\u5317\u6B50\u6587\u5B57 +Samr=\u6492\u99AC\u5229\u4E9E\u6587 +Sara=\u6C99\u62C9\u5824\u6587 +Sarb=\u5357\u963F\u62C9\u4F2F\u53E4\u6587 +Saur=\u7D22\u62C9\u4EC0\u7279\u62C9\u6587 +Sgnw=\u624B\u8A9E\u66F8\u5BEB\u7B26\u865F +Shaw=\u7C2B\u67CF\u7D0D\u5B57\u7B26 +Sind=\u4FE1\u5FB7\u6587 +Sinh=\u932B\u862D\u6587 +Sund=\u5DFD\u4E39\u6587 +Sylo=\u5E0C\u6D1B\u5F1F\u7D0D\u683C\u91CC\u6587 +Syrc=\u6558\u5229\u4E9E\u6587 +Syre=\u6558\u5229\u4E9E\u6587 (\u798F\u97F3\u9AD4\u6587\u5B57\u8B8A\u9AD4) +Syrj=\u6558\u5229\u4E9E\u6587 (\u897F\u65B9\u6587\u5B57\u8B8A\u9AD4) +Syrn=\u6558\u5229\u4E9E\u6587 (\u6771\u65B9\u6587\u5B57\u8B8A\u9AD4) +Tagb=\u5357\u5CF6\u6587 +Tale=\u50A3\u54EA\u6587 +Talu=\u65B0\u50A3\u6587 +Taml=\u5766\u7C73\u723E\u6587 +Tavt=\u50A3\u8D8A\u6587 +Telu=\u7279\u62C9\u53E4\u6587 +Teng=\u8AC7\u683C\u74E6\u6587 +Tfng=\u63D0\u975E\u7D0D (\u67CF\u67CF\u723E\u6587) +Tglg=\u5854\u52A0\u62C9\u65CF\u6587 +Thaa=\u5854\u5B89\u90A3\u6587 +Thai=\u6CF0\u6587 +Tibt=\u897F\u85CF\u6587 +Ugar=\u70CF\u52A0\u5217\u6587 +Vaii=\u8D8A\u5357\u6587 Vai +Visp=\u53EF\u898B\u8A9E\u8A00 +Wara=Warang Citi +Xpeo=\u53E4\u6CE2\u65AF\u6587 +Xsux=\u8607\u7C73\u9B6F\u4E9E\u7532\u6587\u6954\u5F62\u6587\u5B57 +Yiii=\u5F5D\u6587 +Zinh=\u907A\u50B3\u5B78\u8853\u8A9E +Zmth=\u6578\u5B78\u7B26\u865F +Zsym=\u7B26\u865F +Zxxx=\u64A4\u92B7\u5BEB\u5165 +Zyyy=\u4E00\u822C\u6587\u5B57 +Zzzz=\u8173\u672C\u672A\u77E5\u6216\u8005\u7121\u6548 # country names # key is ISO 3166 country code @@ -478,3 +1109,37 @@ YT=\u99ac\u7d04\u7279\u5cf6 ZA=\u5357\u975e ZM=\u5c1a\u6bd4\u4e9e ZW=\u8f9b\u5df4\u5a01 + +# territory names +# key is UN M.49 country and area code + +001=\u4E16\u754C +002=\u975E\u6D32 +003=\u5317\u7F8E\u6D32 +005=\u5357\u7F8E\u6D32 +009=\u5927\u6D0B\u6D32 +011=\u897F\u975E +013=\u4E2D\u7F8E\u6D32 +014=\u6771\u975E +015=\u5317\u975E +017=\u4E2D\u975E +018=\u975E\u6D32\u5357\u90E8 +019=\u7F8E\u6D32 +021=\u7F8E\u6D32\u5317\u90E8 +029=\u52A0\u52D2\u6BD4\u6D77 +030=\u6771\u4E9E +034=\u5357\u4E9E +035=\u6771\u5357\u4E9E +039=\u5357\u6B50 +053=\u6FB3\u6D32\u8207\u7D10\u897F\u862D +054=\u7F8E\u62C9\u5C3C\u897F\u4E9E +057=\u5BC6\u514B\u7F85\u5C3C\u897F\u4E9E +061=\u73BB\u91CC\u5C3C\u897F\u4E9E +142=\u4E9E\u6D32 +143=\u4E2D\u4E9E +145=\u897F\u4E9E +150=\u6B50\u6D32 +151=\u6771\u6B50 +154=\u5317\u6B50 +155=\u897F\u6B50 +419=\u62C9\u4E01\u7F8E\u6D32\u548C\u52A0\u52D2\u6BD4\u6D77 From 6df9bf9a412f430b779507de69d40be94d15a033 Mon Sep 17 00:00:00 2001 From: Michael Fang <mfang@openjdk.org> Date: Wed, 11 May 2011 14:12:50 -0700 Subject: [PATCH 145/147] 7044019: LocaleEnhanceTest.java needs to be updated for 7004603 Reviewed-by: naoto --- jdk/test/java/util/Locale/LocaleEnhanceTest.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/jdk/test/java/util/Locale/LocaleEnhanceTest.java b/jdk/test/java/util/Locale/LocaleEnhanceTest.java index 5cbcf2c9dc5..22e4e5b2b2e 100644 --- a/jdk/test/java/util/Locale/LocaleEnhanceTest.java +++ b/jdk/test/java/util/Locale/LocaleEnhanceTest.java @@ -45,7 +45,7 @@ import java.util.Set; /** * @test - * @bug 6875847 6992272 7002320 7015500 7023613 7032820 7033504 + * @bug 6875847 6992272 7002320 7015500 7023613 7032820 7033504 7004603 7044019 * @summary test API changes to Locale * @compile LocaleEnhanceTest.java * @run main/othervm -esa LocaleEnhanceTest @@ -616,11 +616,9 @@ public class LocaleEnhanceTest extends LocaleTestFmwk { assertEquals("latn US", "Latin", latnLocale.getDisplayScript()); assertEquals("hans US", "Simplified Han", hansLocale.getDisplayScript()); - // note, no localization data yet other than US - // this should break when we have localization data for DE Locale.setDefault(Locale.GERMANY); - assertEquals("latn DE", "Latin", latnLocale.getDisplayScript()); - assertEquals("hans DE", "Simplified Han", hansLocale.getDisplayScript()); + assertEquals("latn DE", "Lateinisch", latnLocale.getDisplayScript()); + assertEquals("hans DE", "Vereinfachte Chinesische Schrift", hansLocale.getDisplayScript()); Locale.setDefault(oldLocale); } @@ -632,10 +630,8 @@ public class LocaleEnhanceTest extends LocaleTestFmwk { assertEquals("latn US", "Latin", latnLocale.getDisplayScript(Locale.US)); assertEquals("hans US", "Simplified Han", hansLocale.getDisplayScript(Locale.US)); - // note, no localization data yet other than US - // this should break when we have localization data for DE - assertEquals("latn DE", "Latin", latnLocale.getDisplayScript(Locale.GERMANY)); - assertEquals("hans DE", "Simplified Han", hansLocale.getDisplayScript(Locale.GERMANY)); + assertEquals("latn DE", "Lateinisch", latnLocale.getDisplayScript(Locale.GERMANY)); + assertEquals("hans DE", "Vereinfachte Chinesische Schrift", hansLocale.getDisplayScript(Locale.GERMANY)); } public void testGetDisplayName() { From e15276198f25922790b40e37d0e864bf613ba400 Mon Sep 17 00:00:00 2001 From: "J. Duke" <duke@openjdk.org> Date: Wed, 5 Jul 2017 17:42:20 +0200 Subject: [PATCH 146/147] Added tag jdk7-b140 for changeset f4298bc3f4b6 --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 36c9e8850d1..9bca5c9a122 100644 --- a/.hgtags +++ b/.hgtags @@ -114,3 +114,4 @@ f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135 d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137 62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138 955488f34ca418f6cdab843d61c20d2c615637d9 jdk7-b139 +f4298bc3f4b6baa315643be06966f09684290068 jdk7-b140 From efaf0a01609c240de9e39318a5040529ec09014e Mon Sep 17 00:00:00 2001 From: "J. Duke" <duke@openjdk.org> Date: Wed, 5 Jul 2017 17:43:08 +0200 Subject: [PATCH 147/147] Added tag jdk7-b141 for changeset 5d86d0c7692e --- .hgtags | 1 + 1 file changed, 1 insertion(+) diff --git a/.hgtags b/.hgtags index 9bca5c9a122..dbc6b22ea68 100644 --- a/.hgtags +++ b/.hgtags @@ -115,3 +115,4 @@ d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137 62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138 955488f34ca418f6cdab843d61c20d2c615637d9 jdk7-b139 f4298bc3f4b6baa315643be06966f09684290068 jdk7-b140 +5d86d0c7692e8f4a58d430d68c03594e2d3403b3 jdk7-b141